Merge "ApiQueryRevisions: Remove bogus query optimization"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Sat, 13 Jun 2015 01:08:48 +0000 (01:08 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sat, 13 Jun 2015 01:08:48 +0000 (01:08 +0000)
1471 files changed:
.gitignore
.jshintrc
.mailmap [new file with mode: 0644]
CREDITS
Gemfile
Gemfile.lock
HISTORY
RELEASE-NOTES-1.25 [deleted file]
RELEASE-NOTES-1.26
api.php
autoload.php
composer.json
docs/extension.schema.json
docs/hooks.txt
docs/kss/styleguide-template/index.html
docs/kss/styleguide-template/public/kss.less
docs/memcached.txt
docs/scripts.txt
img_auth.php
includes/AjaxResponse.php
includes/Collation.php
includes/DefaultSettings.php
includes/EditPage.php
includes/Export.php
includes/FileDeleteForm.php
includes/GitInfo.php
includes/GlobalFunctions.php
includes/HistoryBlob.php
includes/Hooks.php
includes/Html.php
includes/HttpFunctions.php
includes/Import.php
includes/Linker.php
includes/MWTimestamp.php
includes/MediaWiki.php
includes/Message.php
includes/MimeMagic.php
includes/OutputPage.php
includes/PHPVersionCheck.php [new file with mode: 0644]
includes/PHPVersionError.php
includes/ProtectionForm.php
includes/Revision.php
includes/RevisionList.php
includes/Sanitizer.php
includes/Setup.php
includes/SquidPurgeClient.php
includes/StreamFile.php
includes/Title.php
includes/User.php
includes/UserRightsProxy.php
includes/WebRequest.php
includes/WebResponse.php
includes/Xml.php
includes/XmlSelect.php [new file with mode: 0644]
includes/ZhConversion.php
includes/actions/Action.php
includes/actions/DeleteAction.php
includes/actions/RawAction.php
includes/api/ApiBase.php
includes/api/ApiCreateAccount.php
includes/api/ApiEditPage.php
includes/api/ApiEmailUser.php
includes/api/ApiExpandTemplates.php
includes/api/ApiFormatBase.php
includes/api/ApiHelp.php
includes/api/ApiImageRotate.php
includes/api/ApiImport.php
includes/api/ApiLogin.php
includes/api/ApiMain.php
includes/api/ApiOpenSearch.php
includes/api/ApiOptions.php
includes/api/ApiPageSet.php
includes/api/ApiParamInfo.php
includes/api/ApiParse.php
includes/api/ApiQuery.php
includes/api/ApiQueryAllUsers.php
includes/api/ApiQueryBase.php
includes/api/ApiQueryCategoryMembers.php
includes/api/ApiQueryImageInfo.php
includes/api/ApiQuerySiteinfo.php
includes/api/ApiQueryWatchlistRaw.php
includes/api/ApiResult.php
includes/api/ApiSetNotificationTimestamp.php
includes/api/ApiStashEdit.php
includes/api/ApiUpload.php
includes/api/i18n/ba.json [new file with mode: 0644]
includes/api/i18n/bcl.json [new file with mode: 0644]
includes/api/i18n/be-tarask.json
includes/api/i18n/cs.json
includes/api/i18n/de.json
includes/api/i18n/el.json
includes/api/i18n/en-gb.json
includes/api/i18n/en.json
includes/api/i18n/es.json
includes/api/i18n/et.json [new file with mode: 0644]
includes/api/i18n/fr.json
includes/api/i18n/gl.json
includes/api/i18n/he.json
includes/api/i18n/hu.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/mk.json
includes/api/i18n/nb.json
includes/api/i18n/ne.json [new file with mode: 0644]
includes/api/i18n/nl.json
includes/api/i18n/pl.json
includes/api/i18n/ps.json
includes/api/i18n/pt-br.json
includes/api/i18n/qqq.json
includes/api/i18n/ru.json
includes/api/i18n/si.json
includes/api/i18n/sv.json
includes/api/i18n/tr.json
includes/api/i18n/zh-hans.json
includes/api/i18n/zh-hant.json
includes/cache/CacheDependency.php
includes/cache/FileCacheBase.php
includes/cache/LCStoreStaticArray.php [new file with mode: 0644]
includes/cache/LocalisationCache.php
includes/cache/MessageBlobStore.php
includes/cache/MessageCache.php
includes/cache/ResourceFileCache.php
includes/changes/RecentChange.php
includes/changetags/ChangeTags.php
includes/config/ConfigFactory.php
includes/content/ContentHandler.php
includes/content/WikitextContent.php
includes/db/Database.php
includes/db/DatabaseMssql.php
includes/db/DatabaseMysqlBase.php
includes/db/DatabaseOracle.php
includes/db/DatabasePostgres.php
includes/db/LBFactory.php
includes/db/LoadBalancer.php
includes/db/LoadMonitor.php
includes/debug/logger/LegacyLogger.php
includes/debug/logger/Shims.php [deleted file]
includes/debug/logger/monolog/Shims.php [deleted file]
includes/deferred/DeferredUpdates.php
includes/deferred/HTMLCacheUpdate.php
includes/deferred/LinksUpdate.php
includes/deferred/SiteStatsUpdate.php
includes/diff/DifferenceEngine.php
includes/diff/UnifiedDiffFormatter.php
includes/exception/BadTitleError.php
includes/exception/HttpError.php
includes/exception/MWException.php
includes/exception/MWExceptionHandler.php
includes/filebackend/FSFile.php
includes/filebackend/FileBackendGroup.php
includes/filebackend/FileBackendStore.php
includes/filebackend/FileOp.php
includes/filebackend/MemoryFileBackend.php
includes/filebackend/SwiftFileBackend.php
includes/filebackend/TempFSFile.php
includes/filebackend/lockmanager/FSLockManager.php
includes/filerepo/FileRepo.php
includes/filerepo/LocalRepo.php
includes/filerepo/file/File.php
includes/filerepo/file/ForeignAPIFile.php
includes/filerepo/file/LocalFile.php
includes/htmlform/HTMLAutoCompleteSelectField.php
includes/htmlform/HTMLButtonField.php
includes/htmlform/HTMLCheckField.php
includes/htmlform/HTMLCheckMatrix.php
includes/htmlform/HTMLForm.php
includes/htmlform/HTMLFormField.php
includes/htmlform/HTMLInfoField.php
includes/htmlform/HTMLSelectField.php
includes/htmlform/HTMLSelectNamespace.php
includes/htmlform/HTMLTextAreaField.php
includes/htmlform/HTMLTextField.php
includes/htmlform/OOUIHTMLForm.php [new file with mode: 0644]
includes/installer/DatabaseInstaller.php
includes/installer/Installer.php
includes/installer/LocalSettingsGenerator.php
includes/installer/SqliteInstaller.php
includes/installer/WebInstaller.php
includes/installer/WebInstallerOutput.php
includes/installer/WebInstallerPage.php
includes/installer/i18n/ar.json
includes/installer/i18n/ast.json
includes/installer/i18n/ba.json
includes/installer/i18n/bcl.json
includes/installer/i18n/be-tarask.json
includes/installer/i18n/bg.json
includes/installer/i18n/bs.json
includes/installer/i18n/ce.json
includes/installer/i18n/ckb.json
includes/installer/i18n/de.json
includes/installer/i18n/el.json
includes/installer/i18n/en.json
includes/installer/i18n/eo.json
includes/installer/i18n/es.json
includes/installer/i18n/et.json
includes/installer/i18n/fa.json
includes/installer/i18n/fy.json
includes/installer/i18n/gl.json
includes/installer/i18n/he.json
includes/installer/i18n/hu.json
includes/installer/i18n/ksh.json
includes/installer/i18n/ku-latn.json
includes/installer/i18n/mai.json
includes/installer/i18n/mk.json
includes/installer/i18n/nap.json
includes/installer/i18n/ne.json
includes/installer/i18n/nl.json
includes/installer/i18n/nn.json
includes/installer/i18n/pl.json
includes/installer/i18n/pms.json
includes/installer/i18n/ps.json
includes/installer/i18n/pt-br.json
includes/installer/i18n/sco.json
includes/installer/i18n/sd.json [new file with mode: 0644]
includes/installer/i18n/su.json
includes/installer/i18n/tr.json
includes/installer/i18n/uk.json
includes/installer/i18n/wuu.json
includes/installer/i18n/xmf.json [new file with mode: 0644]
includes/installer/i18n/yi.json
includes/installer/i18n/zh-hans.json
includes/installer/i18n/zh-hant.json
includes/interwiki/Interwiki.php
includes/jobqueue/Job.php
includes/jobqueue/JobQueue.php
includes/jobqueue/JobQueueDB.php
includes/jobqueue/JobQueueFederated.php
includes/jobqueue/JobQueueGroup.php
includes/jobqueue/JobQueueRedis.php
includes/jobqueue/JobRunner.php
includes/jobqueue/JobSpecification.php
includes/jobqueue/jobs/ActivityUpdateJob.php
includes/jobqueue/jobs/AssembleUploadChunksJob.php
includes/jobqueue/jobs/DoubleRedirectJob.php
includes/jobqueue/jobs/DuplicateJob.php
includes/jobqueue/jobs/EmaillingJob.php
includes/jobqueue/jobs/EnotifNotifyJob.php
includes/jobqueue/jobs/EnqueueJob.php
includes/jobqueue/jobs/HTMLCacheUpdateJob.php
includes/jobqueue/jobs/NullJob.php
includes/jobqueue/jobs/PublishStashedFileJob.php
includes/jobqueue/jobs/RecentChangesUpdateJob.php
includes/jobqueue/jobs/RefreshLinksJob.php
includes/jobqueue/jobs/ThumbnailRenderJob.php
includes/jobqueue/jobs/UploadFromUrlJob.php
includes/libs/CSSMin.php
includes/libs/HttpStatus.php
includes/libs/MapCacheLRU.php
includes/libs/ProcessCacheLRU.php
includes/libs/ReplacementArray.php
includes/libs/XmlTypeCheck.php
includes/libs/objectcache/BagOStuff.php
includes/libs/objectcache/ReplicatedBagOStuff.php
includes/libs/objectcache/WANObjectCache.php
includes/logging/LogEntry.php
includes/logging/LogFormatter.php
includes/logging/LogPager.php
includes/logging/PatrolLogFormatter.php
includes/mail/EmailNotification.php
includes/mail/UserMailer.php
includes/media/Bitmap.php
includes/media/BitmapMetadataHandler.php
includes/media/DjVu.php
includes/media/DjVuImage.php
includes/media/Exif.php
includes/media/ExifBitmap.php
includes/media/GIF.php
includes/media/GIFMetadataExtractor.php
includes/media/IPTC.php
includes/media/ImageHandler.php
includes/media/JpegMetadataExtractor.php
includes/media/MediaHandler.php
includes/media/PNG.php
includes/media/PNGMetadataExtractor.php
includes/media/SVG.php
includes/media/SVGMetadataExtractor.php
includes/media/TransformationalImageHandler.php
includes/media/XCF.php
includes/media/XMP.php
includes/media/XMPInfo.php
includes/media/XMPValidate.php
includes/mime.info
includes/objectcache/MemcachedClient.php
includes/objectcache/ObjectCache.php
includes/objectcache/RedisBagOStuff.php
includes/objectcache/SqlBagOStuff.php
includes/page/Article.php
includes/page/CategoryPage.php
includes/page/ImagePage.php
includes/page/WikiPage.php
includes/pager/ReverseChronologicalPager.php
includes/parser/CacheTime.php
includes/parser/MWTidy.php
includes/parser/Parser.php
includes/parser/ParserCache.php
includes/parser/ParserDiffTest.php
includes/parser/ParserOutput.php
includes/parser/Preprocessor_DOM.php
includes/parser/Preprocessor_Hash.php
includes/parser/StripState.php
includes/password/PasswordPolicyChecks.php [new file with mode: 0644]
includes/password/UserPasswordPolicy.php [new file with mode: 0644]
includes/profiler/Profiler.php
includes/profiler/ProfilerStub.php
includes/profiler/ProfilerXhprof.php
includes/profiler/TransactionProfiler.php
includes/profiler/output/ProfilerOutputStats.php
includes/rcfeed/MachineReadableRCFeedFormatter.php
includes/registration/ExtensionProcessor.php
includes/registration/ExtensionRegistry.php
includes/registration/Processor.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderContext.php
includes/resourceloader/ResourceLoaderEditToolbarModule.php
includes/resourceloader/ResourceLoaderFileModule.php
includes/resourceloader/ResourceLoaderImageModule.php
includes/resourceloader/ResourceLoaderJqueryMsgModule.php [new file with mode: 0644]
includes/resourceloader/ResourceLoaderLanguageDataModule.php
includes/resourceloader/ResourceLoaderLanguageNamesModule.php
includes/resourceloader/ResourceLoaderModule.php
includes/resourceloader/ResourceLoaderOOUIImageModule.php [new file with mode: 0644]
includes/resourceloader/ResourceLoaderRawFileModule.php [new file with mode: 0644]
includes/resourceloader/ResourceLoaderSkinModule.php
includes/resourceloader/ResourceLoaderSpecialCharacterDataModule.php
includes/resourceloader/ResourceLoaderStartUpModule.php
includes/resourceloader/ResourceLoaderUserCSSPrefsModule.php
includes/resourceloader/ResourceLoaderUserDefaultsModule.php
includes/resourceloader/ResourceLoaderUserOptionsModule.php
includes/resourceloader/ResourceLoaderWikiModule.php
includes/revisiondelete/RevDelItem.php
includes/revisiondelete/RevDelList.php
includes/revisiondelete/RevDelLogItem.php
includes/revisiondelete/RevDelRevisionItem.php
includes/revisiondelete/RevisionDeleter.php
includes/search/SearchMySQL.php
includes/search/SearchResultSet.php
includes/search/SearchSqlite.php
includes/skins/MediaWikiI18N.php
includes/skins/Skin.php
includes/skins/SkinTemplate.php
includes/specialpage/RedirectSpecialPage.php
includes/specialpage/SpecialPage.php
includes/specials/SpecialAllMessages.php
includes/specials/SpecialBlock.php
includes/specials/SpecialBlockList.php
includes/specials/SpecialContributions.php
includes/specials/SpecialDeletedContributions.php
includes/specials/SpecialDiff.php
includes/specials/SpecialEditTags.php
includes/specials/SpecialExport.php
includes/specials/SpecialImport.php
includes/specials/SpecialLinkSearch.php
includes/specials/SpecialLockdb.php
includes/specials/SpecialMediaStatistics.php
includes/specials/SpecialMergeHistory.php
includes/specials/SpecialMovepage.php
includes/specials/SpecialMyRedirectPages.php
includes/specials/SpecialNewimages.php
includes/specials/SpecialNewpages.php
includes/specials/SpecialPageLanguage.php
includes/specials/SpecialPreferences.php
includes/specials/SpecialRandomInCategory.php
includes/specials/SpecialRecentchanges.php
includes/specials/SpecialRecentchangeslinked.php
includes/specials/SpecialRevisiondelete.php
includes/specials/SpecialRunJobs.php
includes/specials/SpecialSpecialpages.php
includes/specials/SpecialStatistics.php
includes/specials/SpecialTags.php
includes/specials/SpecialUndelete.php
includes/specials/SpecialUnlockdb.php
includes/specials/SpecialUpload.php
includes/specials/SpecialUserlogin.php
includes/specials/SpecialUserrights.php
includes/specials/SpecialVersion.php
includes/specials/SpecialWatchlist.php
includes/specials/SpecialWhatlinkshere.php
includes/title/MalformedTitleException.php
includes/title/MediaWikiTitleCodec.php
includes/title/TitleValue.php
includes/upload/UploadBase.php
includes/utils/AutoloadGenerator.php
includes/utils/IP.php
includes/utils/MWCryptRand.php
includes/utils/MWFunction.php [deleted file]
includes/utils/UIDGenerator.php
index.php
jsduck.json
languages/ConverterRule.php
languages/Language.php
languages/LanguageConverter.php
languages/Names.php
languages/classes/LanguageEt.php
languages/i18n/ace.json
languages/i18n/af.json
languages/i18n/an.json
languages/i18n/ang.json
languages/i18n/ar.json
languages/i18n/arq.json
languages/i18n/as.json
languages/i18n/ast.json
languages/i18n/ba.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/bn.json
languages/i18n/bo.json
languages/i18n/br.json
languages/i18n/bs.json
languages/i18n/ca.json
languages/i18n/ce.json
languages/i18n/ckb.json
languages/i18n/cs.json
languages/i18n/cv.json
languages/i18n/da.json
languages/i18n/de.json
languages/i18n/diq.json
languages/i18n/dty.json [new file with mode: 0644]
languages/i18n/el.json
languages/i18n/en.json
languages/i18n/eo.json
languages/i18n/es.json
languages/i18n/et.json
languages/i18n/eu.json
languages/i18n/fa.json
languages/i18n/fi.json
languages/i18n/fr.json
languages/i18n/frp.json
languages/i18n/frr.json
languages/i18n/fy.json
languages/i18n/gl.json
languages/i18n/gom-deva.json [new file with mode: 0644]
languages/i18n/gu.json
languages/i18n/he.json
languages/i18n/hi.json
languages/i18n/hil.json
languages/i18n/ht.json
languages/i18n/hu.json
languages/i18n/hy.json
languages/i18n/id.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/ka.json
languages/i18n/ki.json
languages/i18n/kk-cyrl.json
languages/i18n/kn.json
languages/i18n/ko.json
languages/i18n/krc.json
languages/i18n/ksh.json
languages/i18n/ku-latn.json
languages/i18n/la.json
languages/i18n/lb.json
languages/i18n/lez.json
languages/i18n/lrc.json
languages/i18n/lt.json
languages/i18n/lv.json
languages/i18n/mai.json
languages/i18n/map-bms.json
languages/i18n/mg.json
languages/i18n/mhr.json
languages/i18n/mk.json
languages/i18n/ml.json
languages/i18n/mn.json
languages/i18n/ms.json
languages/i18n/mt.json
languages/i18n/my.json
languages/i18n/nah.json
languages/i18n/nap.json
languages/i18n/nb.json
languages/i18n/nds-nl.json
languages/i18n/ne.json
languages/i18n/nl.json
languages/i18n/nn.json
languages/i18n/or.json
languages/i18n/os.json
languages/i18n/pl.json
languages/i18n/pms.json
languages/i18n/pnb.json
languages/i18n/ps.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/qu.json
languages/i18n/ro.json
languages/i18n/roa-tara.json
languages/i18n/ru.json
languages/i18n/rue.json
languages/i18n/sa.json
languages/i18n/scn.json
languages/i18n/sco.json
languages/i18n/sd.json
languages/i18n/si.json
languages/i18n/sk.json
languages/i18n/sl.json
languages/i18n/so.json
languages/i18n/sq.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/su.json
languages/i18n/sv.json
languages/i18n/sw.json
languages/i18n/szl.json
languages/i18n/ta.json
languages/i18n/te.json
languages/i18n/tl.json
languages/i18n/tr.json
languages/i18n/uk.json
languages/i18n/ur.json
languages/i18n/vec.json
languages/i18n/vi.json
languages/i18n/vro.json
languages/i18n/wuu.json
languages/i18n/xmf.json
languages/i18n/yi.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
languages/messages/MessagesAs.php
languages/messages/MessagesAst.php
languages/messages/MessagesAvk.php
languages/messages/MessagesBg.php
languages/messages/MessagesBh.php [new file with mode: 0644]
languages/messages/MessagesCe.php
languages/messages/MessagesCv.php
languages/messages/MessagesDsb.php
languages/messages/MessagesIt.php
languages/messages/MessagesKl.php
languages/messages/MessagesLrc.php
languages/messages/MessagesMl.php
languages/messages/MessagesMr.php
languages/messages/MessagesMyv.php
languages/messages/MessagesMzn.php
languages/messages/MessagesSa.php
languages/messages/MessagesScn.php
languages/messages/MessagesSq.php
languages/messages/MessagesSu.php
languages/messages/MessagesTt_cyrl.php
languages/messages/MessagesYue.php
load.php
maintenance/Maintenance.php
maintenance/backup.inc
maintenance/backupTextPass.inc
maintenance/checkSyntax.php
maintenance/cleanupRemovedModules.php
maintenance/cleanupTable.inc
maintenance/convertExtensionToRegistration.php
maintenance/deleteArchivedFiles.inc [deleted file]
maintenance/deleteArchivedFiles.php
maintenance/deleteArchivedRevisions.inc [deleted file]
maintenance/deleteArchivedRevisions.php
maintenance/deleteImageMemcached.php [deleted file]
maintenance/importImages.php
maintenance/install.php
maintenance/jsduck/categories.json
maintenance/jsparse.php
maintenance/language/StatOutputs.php
maintenance/language/zhtable/simp2trad.manual
maintenance/language/zhtable/simp2trad_noconvert.manual
maintenance/language/zhtable/simpphrases.manual
maintenance/language/zhtable/simpphrases_exclude.manual
maintenance/language/zhtable/symme_supp.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/populateCategory.php
maintenance/rebuildFileCache.php
maintenance/rebuildImages.php
maintenance/resources/update-oojs-ui.sh
maintenance/sql.php
maintenance/sqlite.php
maintenance/storage/fixBug20757.php
maintenance/storage/recompressTracked.php
maintenance/update.php
maintenance/updateCollation.php
maintenance/validateRegistrationFile.php
maintenance/waitForSlave.php
mw-config/index.php
mw-config/index.php5 [deleted file]
package.json
resources/Resources.php
resources/ResourcesOOUI.php [new file with mode: 0644]
resources/lib/es5-shim/es5-shim.js
resources/lib/json2/json2.js
resources/lib/oojs-ui/i18n/as.json [new file with mode: 0644]
resources/lib/oojs-ui/i18n/be-tarask.json
resources/lib/oojs-ui/i18n/de.json
resources/lib/oojs-ui/i18n/en.json
resources/lib/oojs-ui/i18n/eo.json
resources/lib/oojs-ui/i18n/es.json
resources/lib/oojs-ui/i18n/eu.json
resources/lib/oojs-ui/i18n/fr.json
resources/lib/oojs-ui/i18n/gl.json
resources/lib/oojs-ui/i18n/gu.json
resources/lib/oojs-ui/i18n/he.json
resources/lib/oojs-ui/i18n/ksh.json
resources/lib/oojs-ui/i18n/ku-latn.json [new file with mode: 0644]
resources/lib/oojs-ui/i18n/lb.json
resources/lib/oojs-ui/i18n/mk.json
resources/lib/oojs-ui/i18n/mr.json
resources/lib/oojs-ui/i18n/ms.json
resources/lib/oojs-ui/i18n/nap.json
resources/lib/oojs-ui/i18n/pl.json
resources/lib/oojs-ui/i18n/pt.json
resources/lib/oojs-ui/i18n/qqq.json
resources/lib/oojs-ui/i18n/ro.json
resources/lib/oojs-ui/i18n/sa.json [new file with mode: 0644]
resources/lib/oojs-ui/i18n/te.json
resources/lib/oojs-ui/i18n/xmf.json [new file with mode: 0644]
resources/lib/oojs-ui/i18n/zh-hans.json
resources/lib/oojs-ui/oojs-ui-apex-noimages.css [new file with mode: 0644]
resources/lib/oojs-ui/oojs-ui-apex.js [new file with mode: 0644]
resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css
resources/lib/oojs-ui/oojs-ui-mediawiki.js
resources/lib/oojs-ui/oojs-ui.js
resources/lib/oojs-ui/themes/apex/icons-editing-advanced.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/icons-editing-core.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/icons-editing-list.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/icons-editing-styling.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/icons-moderation.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/icons-movement.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/icons.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/add.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/add.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/advanced.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/advanced.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/alert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/alert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/align-center.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/align-center.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/align-float-left.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/align-float-left.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/align-float-right.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/align-float-right.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/arched-arrow-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/arched-arrow-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/arched-arrow-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/arched-arrow-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/arrow-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/arrow-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/arrow-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/arrow-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bigger-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bigger-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bigger-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bigger-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/block.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/block.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-a.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-a.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-arab-ain.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-arab-ain.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-arab-dad.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-arab-dad.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-armn-to.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-armn-to.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-b.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-b.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-be.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-be.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-te.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-te.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-zhe.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-zhe.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-f.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-f.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-g.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-g.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-geor-man.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-geor-man.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-l.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-l.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-n.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-n.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-v.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bold-v.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/cancel.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/cancel.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/caret-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/caret-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/caret-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/caret-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/caretDown.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/caretDown.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/caretUp.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/caretUp.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/case-sensitive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/case-sensitive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/check.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/check.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/circle.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/circle.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/close.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/close.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/code.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/code.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/collapse.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/collapse.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/comment.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/comment.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/downTriangle.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/downTriangle.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/edit-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/edit-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/edit-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/edit-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/editLock-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/editLock-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/editLock-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/editLock-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/editUndo-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/editUndo-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/editUndo-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/editUndo-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/ellipsis.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/ellipsis.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/expand.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/expand.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/external-link-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/external-link-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/external-link-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/external-link-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/find-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/find-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/find-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/find-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/flag-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/flag-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/flag-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/flag-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/help-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/help-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/help-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/help-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/history.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/history.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/indent-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/indent-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/indent-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/indent-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/info.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/info.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/insert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/insert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-a.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-a.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-arab-keheh-jeem.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-arab-keheh-jeem.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-arab-meem.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-arab-meem.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-armn-sha.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-armn-sha.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-c.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-c.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-d.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-d.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-e.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-e.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-geor-kan.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-geor-kan.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-i.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-i.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-k.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-k.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-s.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/italic-s.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/language.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/language.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/layout-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/layout-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/layout-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/layout-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/link.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/link.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/listBullet-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/listBullet-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/listBullet-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/listBullet-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/listNumbered-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/listNumbered-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/listNumbered-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/listNumbered-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/lock.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/lock.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/menu.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/menu.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/move-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/move-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/move-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/move-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/move.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/move.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/newline-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/newline-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/newline-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/newline-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/outdent-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/outdent-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/outdent-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/outdent-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/outline-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/outline-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/outline-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/outline-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/picture.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/picture.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/puzzle-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/puzzle-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/puzzle-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/puzzle-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/quotes-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/quotes-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/quotes-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/quotes-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/quotesAdd-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/quotesAdd-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/quotesAdd-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/quotesAdd-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/redirect-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/redirect-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/redirect-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/redirect-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/regular-expression.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/regular-expression.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/remove.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/remove.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/search.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/search.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/secure-link.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/secure-link.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/settings.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/settings.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/smaller-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/smaller-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/smaller-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/smaller-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/specialCharacter.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/specialCharacter.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/star.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/star.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-a.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-a.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-s.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-s.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-y.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-y.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/subscript-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/subscript-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/subscript-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/subscript-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/superscript-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/superscript-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/superscript-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/superscript-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/table-caption.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/table-caption.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/table-insert-column-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/table-insert-column-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/table-insert-column-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/table-insert-column-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/table-insert-row-after.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/table-insert-row-after.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/table-insert-row-before.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/table-insert-row-before.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/table-merge-cells.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/table-merge-cells.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/table.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/table.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/tag.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/tag.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/templateAdd-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/templateAdd-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/templateAdd-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/templateAdd-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/text-dir-lefttoright.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/text-dir-lefttoright.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/text-dir-righttoleft.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/text-dir-righttoleft.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/text-style.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/text-style.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/translation-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/translation-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/translation-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/translation-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/trash.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/trash.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/unLock-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/unLock-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/unLock-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/unLock-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/unStar.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/unStar.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/underline-a.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/underline-a.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/underline-u.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/underline-u.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/upTriangle.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/upTriangle.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/wikiText.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/wikiText.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/window.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/window.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/indicators/alert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/indicators/alert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/indicators/arrow-down.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/indicators/arrow-down.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/indicators/arrow-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/indicators/arrow-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/indicators/arrow-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/indicators/arrow-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/indicators/arrow-up.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/indicators/arrow-up.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/indicators/required.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/indicators/required.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/indicators/search-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/indicators/search-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/indicators/search-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/indicators/search-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/textures/pending.gif [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/textures/transparency.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/textures/transparency.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/toolbar-shadow.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/indicators.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/textures.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons.json
resources/lib/oojs-ui/themes/mediawiki/images/icons/add-constructive.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/add-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/add.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/alert-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/alert-warning.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/alert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/align-center.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-left.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-right.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-ltr-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-rtl-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/article-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/article-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bell.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/block-destructive.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/block-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/block.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-a.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-ain.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-ain.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-dad.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-dad.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-armn-to.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-armn-to.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-b.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-be.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-be.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-te.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-zhe.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-zhe.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-f.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-g.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-g.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-geor-man.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-geor-man.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-l.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-n.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-v.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/book-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/book-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/caretDown.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/case-sensitive.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/case-sensitive.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/circle-constructive.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/circle-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/circle.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/clear.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/clock.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/close-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/close-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/code-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/code.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/collapse-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/collapse-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/collapse.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/collapse.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/comment-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/comment.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/die-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/die-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/downTriangle.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/download-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/download-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-progressive.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-progressive.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-progressive.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/expand-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/expand.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/eye.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/eye.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/find-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/find-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/find-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/find-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl-invert.svg
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.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/help-ltr-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/help-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/help-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/help-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/help-rtl-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/help-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/help-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/help-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/history-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/history-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/history.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/history.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/info-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/info-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/info.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/info.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/insert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-a.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-keheh-jeem.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-keheh-jeem.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-meem.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-meem.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-armn-sha.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-armn-sha.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-c.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-c.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-d.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-d.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-e.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-e.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-geor-kan.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-geor-kan.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-i.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-i.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-k.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-s.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-s.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/key-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/key-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/language.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/language.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaCommons.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/map-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/map-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPin.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/menu-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/menu-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/menu.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/menu.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/message-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/message-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/move-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/move-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/move-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/move-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/move.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/play-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/play-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/regular-expression.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/regular-expression.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-destructive.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/remove.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/secure-link-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/secure-link-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/secure-link.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/secure-link.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/settings-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/settings.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/specialCharacter.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/specialCharacter.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/star-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/star.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/stop.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-a.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-s.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-s.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-y.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-y.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-progressive.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-progressive.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-caption.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-after.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-before.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-merge-cells.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/table.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-constructive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-constructive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-destructive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-destructive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-progressive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-progressive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-warning.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-warning.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/tag.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/tag.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-lefttoright.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-righttoleft.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/text-style.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/text-style.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/trash-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/trash.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-a.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-u.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-u.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/upTriangle.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/userAvatar.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/window-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/window.svg
resources/lib/oojs-ui/themes/mediawiki/images/indicators/alert-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/indicators/alert.svg
resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-down-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-down-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-down.png
resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-down.svg
resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-ltr-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-rtl-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-up-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-up-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-up.png
resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-up.svg
resources/lib/oojs-ui/themes/mediawiki/images/indicators/required-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/indicators/required.svg
resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/textures/transparency.svg
resources/lib/phpjs-sha1/LICENSE.txt [new file with mode: 0644]
resources/lib/phpjs-sha1/sha1.js [new file with mode: 0644]
resources/lib/sinonjs/sinon-1.10.3.js [deleted file]
resources/lib/sinonjs/sinon-1.15.0.js [new file with mode: 0644]
resources/lib/sinonjs/sinon-ie-1.10.3.js [deleted file]
resources/lib/sinonjs/sinon-ie-1.15.0.js [new file with mode: 0644]
resources/src/jquery.tipsy/jquery.tipsy.js
resources/src/mediawiki.action/mediawiki.action.edit.collapsibleFooter.js
resources/src/mediawiki.action/mediawiki.action.edit.editWarning.js
resources/src/mediawiki.action/mediawiki.action.edit.js
resources/src/mediawiki.action/mediawiki.action.edit.preview.js
resources/src/mediawiki.action/mediawiki.action.edit.stash.js
resources/src/mediawiki.language/mediawiki.language.numbers.js
resources/src/mediawiki.less/mediawiki.ui/variables.less
resources/src/mediawiki.skinning/elements.css
resources/src/mediawiki.special/mediawiki.special.changeslist.css
resources/src/mediawiki.special/mediawiki.special.changeslist.legend.js
resources/src/mediawiki.special/mediawiki.special.preferences.js
resources/src/mediawiki.special/mediawiki.special.upload.js
resources/src/mediawiki.ui/components/checkbox.less
resources/src/mediawiki.ui/components/icons.less
resources/src/mediawiki.ui/components/images/ok.png [deleted file]
resources/src/mediawiki.ui/components/images/ok.svg [deleted file]
resources/src/mediawiki.widgets/AUTHORS.txt [new file with mode: 0644]
resources/src/mediawiki.widgets/LICENSE.txt [new file with mode: 0644]
resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.css [new file with mode: 0644]
resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js [new file with mode: 0644]
resources/src/mediawiki.widgets/mw.widgets.js [new file with mode: 0644]
resources/src/mediawiki/mediawiki.confirmCloseWindow.js
resources/src/mediawiki/mediawiki.cookie.js
resources/src/mediawiki/mediawiki.htmlform.ooui.css [new file with mode: 0644]
resources/src/mediawiki/mediawiki.htmlform.ooui.js [new file with mode: 0644]
resources/src/mediawiki/mediawiki.jqueryMsg.js
resources/src/mediawiki/mediawiki.js
resources/src/mediawiki/mediawiki.notification.common.css [new file with mode: 0644]
resources/src/mediawiki/mediawiki.notification.css
resources/src/mediawiki/mediawiki.searchSuggest.js
resources/src/mediawiki/mediawiki.template.mustache.js
resources/src/mediawiki/mediawiki.toc.js
resources/src/mediawiki/mediawiki.user.js
resources/src/startup.js
tests/browser/features/create_account.feature
tests/browser/features/step_definitions/create_account_steps.rb
tests/browser/features/support/pages/create_account_page.rb
tests/parser/parserTest.inc
tests/parser/parserTests.txt
tests/parserTests.php
tests/phpunit/MediaWikiTestCase.php
tests/phpunit/ResourceLoaderTestCase.php
tests/phpunit/data/import/ImportLinkCacheIntegrationTest.xml [new file with mode: 0644]
tests/phpunit/includes/FauxRequestTest.php
tests/phpunit/includes/FauxResponseTest.php
tests/phpunit/includes/GlobalFunctions/GlobalTest.php
tests/phpunit/includes/ImportLinkCacheIntegrationTest.php [new file with mode: 0644]
tests/phpunit/includes/MimeMagicTest.php
tests/phpunit/includes/SanitizerValidateEmailTest.php
tests/phpunit/includes/TitleArrayFromResultTest.php
tests/phpunit/includes/TitleMethodsTest.php
tests/phpunit/includes/UserTest.php
tests/phpunit/includes/XmlJsTest.php
tests/phpunit/includes/api/ApiResultTest.php
tests/phpunit/includes/api/ApiTestCase.php
tests/phpunit/includes/api/ApiUploadTest.php
tests/phpunit/includes/cache/MessageCacheTest.php
tests/phpunit/includes/changes/RecentChangeTest.php
tests/phpunit/includes/content/ContentHandlerTest.php
tests/phpunit/includes/debug/MWDebugTest.php
tests/phpunit/includes/deferred/DeferredUpdatesTest.php
tests/phpunit/includes/exception/HttpErrorTest.php [new file with mode: 0644]
tests/phpunit/includes/libs/ArrayUtilsTest.php
tests/phpunit/includes/libs/JavaScriptMinifierTest.php
tests/phpunit/includes/libs/ProcessCacheLRUTest.php
tests/phpunit/includes/logging/LogFormatterTestCase.php
tests/phpunit/includes/logging/MergeLogFormatterTest.php
tests/phpunit/includes/logging/NewUsersLogFormatterTest.php
tests/phpunit/includes/media/XMPValidateTest.php
tests/phpunit/includes/objectcache/WANObjectCacheTest.php
tests/phpunit/includes/parser/NewParserTest.php
tests/phpunit/includes/password/PasswordPolicyChecksTest.php [new file with mode: 0644]
tests/phpunit/includes/password/UserPasswordPolicyTest.php [new file with mode: 0644]
tests/phpunit/includes/registration/ExtensionProcessorTest.php
tests/phpunit/includes/registration/ExtensionRegistryTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderFileModuleTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderModuleTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderStartUpModuleTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderWikiModuleTest.php
tests/phpunit/includes/site/CachingSiteStoreTest.php
tests/phpunit/includes/site/SiteImporterTest.php
tests/phpunit/includes/utils/IPTest.php
tests/phpunit/includes/utils/MWFunctionTest.php [deleted file]
tests/phpunit/languages/LanguageTest.php
tests/phpunit/structure/AutoLoaderTest.php
tests/phpunit/structure/ResourcesTest.php
tests/phpunit/suites/UploadFromUrlTestSuite.php
tests/qunit/QUnitTestResources.php
tests/qunit/suites/resources/mediawiki/mediawiki.toc.test.js
tests/qunit/suites/resources/startup.test.js
thumb.php

index b1649df..01a11bf 100644 (file)
@@ -26,6 +26,7 @@ sftp-config.json
 /docs/js
 /images/[0-9a-f]
 /images/archive
+/images/cache
 /images/deleted
 /images/lockdir
 /images/temp
index 4bb2440..d72c31d 100644 (file)
--- a/.jshintrc
+++ b/.jshintrc
@@ -21,6 +21,7 @@
        "globals": {
                "mediaWiki": true,
                "JSON": true,
+               "OO": true,
                "jQuery": false,
                "QUnit": false,
                "sinon": false
diff --git a/.mailmap b/.mailmap
new file mode 100644 (file)
index 0000000..12ff31d
--- /dev/null
+++ b/.mailmap
@@ -0,0 +1,213 @@
+[BOT] Gerrit Patch Uploader <gerritpatchuploader@gmail.com>
+[BOT] Translation updater bot <l10n-bot@translatewiki.net>
+Aaron Schulz <aschulz@wikimedia.org>
+Aaron Schulz <aschulz@wikimedia.org> <aaron@users.mediawiki.org>
+Adam Roses Wight <awight@wikimedia.org>
+addshore <addshorewiki@gmail.com>
+Adrian Heine <adrian.heine@wikimedia.de>
+Alex Monk <krenair@gmail.com>
+Alex Monk <krenair@gmail.com> <krenair@wikimedia.org>
+Alexander Emsenhuber <ialex.wiki@gmail.com>
+Alexander Emsenhuber <ialex.wiki@gmail.com> <ialex@users.mediawiki.org>
+Alexander Emsenhuber <ialex.wiki@gmail.com> <mediawiki@emsenhuber.ch>
+Alexia E. Smith <washuu@gmail.com>
+Amir E. Aharoni <amir.aharoni@mail.huji.ac.il>
+Antoine Musso <hashar@free.fr>
+Antoine Musso <hashar@free.fr> <hashar@users.mediawiki.org>
+Arlo Breault <abreault@wikimedia.org>
+aude <aude.wiki@gmail.com>
+Audrey Tang <audreyt@audreyt.org>
+Audrey Tang <audreyt@audreyt.org> <au@localhost>
+ayush_garg <ayush.ce13@iitp.ac.in>
+Bahodir Mansurov <bmansurov@wikimedia.org>
+Bartosz Dziewoński <matma.rex@gmail.com>
+Bartosz Dziewoński <matma.rex@gmail.com> <matmarex@wikimedia.org>
+Bartosz Dziewoński <matma.rex@gmail.com> <bdziewonski@wikimedia.org>
+Bene <benestar.wikimedia@gmail.com>
+Brad Jorsch <bjorsch@wikimedia.org>
+Brian Wolff <bawolff+wn@gmail.com>
+Brion Vibber <brion@wikimedia.org>
+Brion Vibber <brion@wikimedia.org> <brion@pobox.com>
+Brion Vibber <brion@wikimedia.org> <brion@users.mediawiki.org>
+Bryan Davis <bd808@wikimedia.org>
+C. Scott Ananian <cscott@cscott.net>
+C. Scott Ananian <cscott@cscott.net> <cananian@wikimedia.org>
+cacycle@gerrit.wikimedia.org <cacyclewp@gmail.com>
+cenarium <cenarium.sysop@gmail.com>
+Chad Horohoe <chadh@wikimedia.org>
+Chiefwei <chiefwei1989@gmail.com>
+Chris McMahon <cmcmahon@wikimedia.org>
+Chris Steipp <csteipp@wikimedia.org>
+Christian Aistleitner <christian@quelltextlich.at>
+Christian Williams <orbit@framezero.com>
+Christian Williams <orbit@framezero.com> <christian@localhost>
+Christian Williams <orbit@framezero.com> <christian@wikia-inc.com>
+ckoerner <nobelx@gmail.com>
+Dan Duvall <dduvall@wikimedia.org>
+dan-nl <d_entous@yahoo.com>
+Daniel Kinzler <daniel.kinzler@wikimedia.de>
+Daniel A. R. Werner <daniel.a.r.werner@gmail.com>
+David Chan <david@sheetmusic.org.uk>
+Derk-Jan Hartman <hartman.wiki@gmail.com>
+Douglas Gardner <douglas@chippy.ch>
+DPStokesNZ <duncan.stokes@gmail.com>
+Ebrahim Byagowi <ebrahim@gnu.org>
+Ed Sanders <esanders@wikimedia.org>
+Elliott Eggleston <ejegg@ejegg.com>
+eranroz <eranroz89@gmail.com>
+Erik Bernhardson <ebernhardson@wikimedia.org>
+Erik Moeller <erik@wikimedia.org>
+Erik Moeller <erik@wikimedia.org> <erik@users.mediawiki.org>
+Erwin Dokter <erwin@darcoury.nl>
+Evan McIntire <mcintire.evan@gmail.com>
+Federico Leva <federicoleva@tiscali.it>
+Florianschmidtwelzow <florian.schmidt.welzow@t-online.de>
+Fomafix <fomafix@googlemail.com>
+FunPika <funpikawiki@gmail.com>
+Gabriel Wicke <gwicke@wikimedia.org>
+Gabriel Wicke <gwicke@wikimedia.org> <gwicke@users.mediawiki.org>
+Gabriel Wicke <gwicke@wikimedia.org> <wicke@wikidev.net>
+Geoffrey Mon <geofbot@gmail.com>
+Gergő Tisza <gtisza@wikimedia.org>
+Gergő Tisza <gtisza@wikimedia.org> <tgr.huwiki@gmail.com>
+Giftpflanze <gifti@tools.wmflabs.org>
+Gilles Dubuc <gdubuc@wikimedia.org>
+gladoscc <admin@glados.cc>
+glaisher <glaisher.wiki@gmail.com>
+Helder <he7d3r@gmail.com>
+Helder <he7d3r@gmail.com> <helder.wiki@gmail.com>
+Hoo man <hoo@online.de>
+Inez Korczyński <inez@wikia-inc.com>
+Inez Korczyński <inez@wikia-inc.com> <inez@users.mediawiki.org>
+isarra <s@zaori.org>
+Jack Phoenix <jack@countervandalism.net>
+Jackmcbarn <jackmcbarn@gmail.com>
+Jackmcbarn <jackmcbarn@users.noreply.github.com>
+jagori <jagori79@gmail.com>
+James D. Forrester <jforrester@wikimedia.org>
+Jan Zerebecki <jan.wikimedia@zerebecki.de>
+Jaroslav Škarvada <jskarvad@redhat.com>
+jarrettmunton <jmuntjmunt@gmail.com>
+Jeff Hall <jeffreyehall@gmail.com>
+Jeff Hall <jeffreyehall@gmail.com> <jhall@wikimedia.org>
+Jeff Janes <jeff.janes@gmail.com>
+jeroendedauw <jeroendedauw@gmail.com>
+Jesús Martínez Novo <martineznovo@gmail.com>
+Jiabao <jiabao.foss@gmail.com>
+Jon Robson <jrobson@wikimedia.org>
+Jon Robson <jrobson@wikimedia.org> <jdlrobson@gmail.com>
+Juliusz Gonera <jgonera@gmail.com>
+Juliusz Gonera <jgonera@gmail.com> <jgonera@wikimedia.org>
+JuneHyeon Bae <devunt@gmail.com>
+Kevin Israel <pleasestand@live.com>
+Kunal Mehta <legoktm@gmail.com>
+Kunal Mehta <legoktm@gmail.com> <legoktm.wikipedia@gmail.com>
+lekshmi <andnlnbn18@gmail.com>
+Liangent <liangent@gmail.com>
+Ljudusika <plo2000@i.ua>
+Luis Felipe Schenone <schenonef@gmail.com>
+m4tx <m4tx@m4tx.pl>
+Marielle Volz <marielle.volz@gmail.com>
+Marius Hoch <hoo@online.de>
+Mark A. Hershberger <mah@everybody.org>
+Mark A. Hershberger <mah@everybody.org> <mah@nichework.com>
+Mark A. Hershberger <mah@everybody.org> <mah@users.mediawiki.org>
+Mark Holmquist <mtraceur@member.fsf.org>
+Marko Obrovac <mobrovac@wikimedia.org>
+Matthew Flaschen <mflaschen@wikimedia.org>
+Matthias Mullie <git@mullie.eu>
+Max Semenik <maxsem.wiki@gmail.com>
+mgooley <g0013y@gmail.com>
+mjbmr <mjbmri@gmail.com>
+Moriel Schottlender <mschottlender@wikimedia.org>
+Moriel Schottlender <mschottlender@wikimedia.org> <moriel@gmail.com>
+Mormegil <mormegil@centrum.cz>
+Mukunda Modell <mmodell@wikimedia.org>
+MZMcBride <g@mzmcbride.com>
+Namit <namit.ohri@gmail.com>
+Nemo bis <federicoleva@tiscali.it>
+Nik Everett <neverett@wikimedia.org>
+Niklas Laxström <niklas.laxstrom@gmail.com>
+Nuria Ruiz <nuria@wikimedia.org>
+Ori.livneh <ori@wikimedia.org>
+paladox <thomasmulhall410@yahoo.com>
+Patrick Westerhoff <PatrickWesterhoff@gmail.com>
+Peter Coti <petercoti@gmail.com>
+Petr Kadlec <mormegil@centrum.cz>
+physikerwelt (Moritz Schubotz) <wiki@physikerwelt.de>
+PiRSquared17 <pirsquared@tools.wmflabs.org>
+PranavK <pranavmk98@gmail.com>
+Prateek Saxena <psaxena@wikimedia.org>
+Prateek Saxena <psaxena@wikimedia.org> <prtksxna@gmail.com>
+Purodha <purodha@blissenbach.org>
+Raimond Spekking <raimond.spekking@gmail.com>
+Raimond Spekking <raimond.spekking@gmail.com> <raymond@users.mediawiki.org>
+Reza <reza.energy@gmail.com>
+Ricordisamoa <ricordisamoa@openmailbox.org>
+rillke <rillke@wikipedia.de>
+rillke <rillke@wikipedia.de> <rainerrillke@hotmail.com>
+Roan Kattouw <roan.kattouw@gmail.com>
+Roan Kattouw <roan.kattouw@gmail.com> <catrope@users.mediawiki.org>
+Roan Kattouw <roan.kattouw@gmail.com> <roan@wikimedia.org>
+Rob Moen <rmoen@mediawiki.org>
+Rob Moen <rmoen@mediawiki.org> <rmoen@users.mediawiki.org>
+Rob Moen <rmoen@mediawiki.org> <rmoen@wikimedia.org>
+Robert Hoenig <indielives010@gmail.com>
+robinhood701 <robinhood70@live.ca>
+Rohan <rohan1395@yahoo.com>
+Rummana Yasmeen <ryasmeen@wikimedia.org>
+Ryan Kaldari <rkaldari@wikimedia.org>
+Ryan Kaldari <rkaldari@wikimedia.org> <kaldari@gmail.com>
+S Page <spage@wikimedia.org>
+Sam Reed <reedy@wikimedia.org>
+Sam Reed <reedy@wikimedia.org> <reedy@users.mediawiki.org>
+Sam Smith <git@samsmith.io>
+Santhosh Thottingal <santhosh.thottingal@gmail.com>
+saper <saper@saper.info>
+Schnark <listenleser@gmail.com>
+Scimonster <tehalmightyscimonster@gmail.com>
+Sean Pringle <springle@wikimedia.org>
+Seb35 <seb35wikipedia@gmail.com>
+Sergio Santoro <santoro.srg@gmail.com>
+Shahyar <shahyar@gmail.com>
+Siebrand Mazeland <s.mazeland@xs4all.nl>
+Siebrand Mazeland <s.mazeland@xs4all.nl> <siebrand@kitano.nl>
+Siebrand Mazeland <s.mazeland@xs4all.nl> <siebrand@users.mediawiki.org>
+Siebrand Mazeland <s.mazeland@xs4all.nl> <siebrand@wikimedia.org>
+Southparkfan <southparkfan223@hotmail.com>
+Stanislav Malyshev <smalyshev@gmail.com>
+Stephan Gambke <s7eph4n@gmail.com>
+Stephane Bisson <sbisson@wikimedia.org>
+Stephen Liang <github@stephenliang.pw>
+Steven Roddis <StevenRoddis@users.noreply.github.com>
+Subramanya Sastry <ssastry@wikimedia.org>
+Sucheta Ghoshal <sghoshal@wikimedia.org>
+Sumit Asthana <asthana.sumit23@gmail.com>
+Thalia Chan <thalia@cantorion.org>
+TheDJ <hartman.wiki@gmail.com>
+Thiemo Mättig (WMDE) <thiemo.maettig@wikimedia.de>
+This, that and the other <at.light@live.com.au>
+tholam <t.lam@lamsinfosystem.com>
+Tim Landscheidt <tim@tim-landscheidt.de>
+Tim Starling <tstarling@wikimedia.org>
+Timo Tijhof <krinklemail@gmail.com>
+Timo Tijhof <krinklemail@gmail.com> <timo@wikimedia.org>
+Timo Tijhof <krinklemail@gmail.com> <ttijhof@wikimedia.org>
+Tina Johnson <tinajohnson.1234@gmail.com>
+Tony Thomas <01tonythomas@gmail.com>
+Trevor Parscal <trevorparscal@gmail.com>
+Trevor Parscal <trevorparscal@gmail.com> <tparscal@users.mediawiki.org>
+Trevor Parscal <trevorparscal@gmail.com> <tparscal@wikimedia.org>
+Tyler Cipriani <tcipriani@wikimedia.org>
+Tyler Romeo <tylerromeo@gmail.com>
+umherirrender <umherirrender_de.wp@web.de>
+Vikas S Yaligar <vikasyaligar.it@gmail.com>
+Vivek Ghaisas <v.a.ghaisas@gmail.com>
+wctaiwan <wctaiwan@gmail.com>
+withoutaname <drevitchi@gmail.com>
+Yaroslav Melnychuk <yaroslavmelnuchuk@gmail.com>
+Yuri Astrakhan <yurik@wikimedia.org>
+Yusuke Matsubara <whym@whym.org>
+YuviPanda <yuvipanda@gmail.com>
+Željko Filipin <zeljko.filipin@gmail.com>
+Željko Filipin <zeljko.filipin@gmail.com> <zfilipin@wikimedia.org>
diff --git a/CREDITS b/CREDITS
index 7725034..22dee7b 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -240,6 +240,7 @@ following names for their contribution to the product.
 * Van de Bugger
 * Ville Stadista
 * Vitaliy Filippov
+* Vivek Ghaisas
 * Waldir Pimenta
 * William Demchick
 * Yusuke Matsubara
diff --git a/Gemfile b/Gemfile
index 6f9c053..392558c 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -3,5 +3,5 @@
 
 source 'https://rubygems.org'
 
-gem 'mediawiki_selenium', '~> 1.0.1'
+gem 'mediawiki_selenium', '~> 1.2.1'
 gem 'rubocop', require: false
index 0b360ae..7aa9dae 100644 (file)
@@ -5,7 +5,7 @@ GEM
     astrolabe (1.3.0)
       parser (>= 2.2.0.pre.3, < 3.0)
     builder (3.2.2)
-    childprocess (0.5.5)
+    childprocess (0.5.6)
       ffi (~> 1.0, >= 1.0.11)
     cucumber (1.3.19)
       builder (>= 2.1.2)
@@ -13,11 +13,11 @@ GEM
       gherkin (~> 2.12)
       multi_json (>= 1.7.5, < 2.0)
       multi_test (>= 0.1.2)
-    data_magic (0.20)
+    data_magic (0.21)
       faker (>= 1.1.2)
       yml_reader (>= 0.4)
     diff-lcs (1.2.5)
-    domain_name (0.5.23)
+    domain_name (0.5.24)
       unf (>= 0.0.5, < 1.0.0)
     faker (1.4.3)
       i18n (~> 0.5)
@@ -26,18 +26,18 @@ GEM
     faraday-cookie_jar (0.0.6)
       faraday (>= 0.7.4)
       http-cookie (~> 1.0.0)
-    ffi (1.9.6)
+    ffi (1.9.8)
     gherkin (2.12.2)
       multi_json (~> 1.3)
     headless (1.0.2)
     http-cookie (1.0.2)
       domain_name (~> 0.5)
     i18n (0.7.0)
-    json (1.8.2)
+    json (1.8.3)
     mediawiki_api (0.3.1)
       faraday (~> 0.9, >= 0.9.0)
       faraday-cookie_jar (~> 0.0, >= 0.0.6)
-    mediawiki_selenium (1.0.1)
+    mediawiki_selenium (1.2.1)
       cucumber (~> 1.3, >= 1.3.10)
       headless (~> 1.0, >= 1.0.1)
       json (~> 1.8, >= 1.8.1)
@@ -47,33 +47,34 @@ GEM
       rspec-expectations (~> 2.14, >= 2.14.4)
       syntax (~> 1.2, >= 1.2.0)
       thor (~> 0.19, >= 0.19.1)
-    mime-types (2.4.3)
+    mime-types (2.6.1)
     multi_json (1.11.0)
     multi_test (0.1.2)
     multipart-post (2.0.0)
     netrc (0.10.3)
-    page-object (1.0.3)
+    page-object (1.1.0)
       page_navigation (>= 0.9)
       selenium-webdriver (>= 2.44.0)
       watir-webdriver (>= 0.6.11)
     page_navigation (0.9)
       data_magic (>= 0.14)
-    parser (2.2.0.3)
+    parser (2.2.2.5)
       ast (>= 1.1, < 3.0)
-    powerpack (0.1.0)
+    powerpack (0.1.1)
     rainbow (2.0.0)
-    rest-client (1.7.3)
+    rest-client (1.8.0)
+      http-cookie (>= 1.0.2, < 2.0)
       mime-types (>= 1.16, < 3.0)
       netrc (~> 0.7)
     rspec-expectations (2.99.2)
       diff-lcs (>= 1.1.3, < 2.0)
-    rubocop (0.29.1)
+    rubocop (0.31.0)
       astrolabe (~> 1.3)
-      parser (>= 2.2.0.1, < 3.0)
+      parser (>= 2.2.2.1, < 3.0)
       powerpack (~> 0.1)
       rainbow (>= 1.99.1, < 3.0)
       ruby-progressbar (~> 1.4)
-    ruby-progressbar (1.7.1)
+    ruby-progressbar (1.7.5)
     rubyzip (1.1.7)
     selenium-webdriver (2.45.0)
       childprocess (~> 0.5)
@@ -84,15 +85,15 @@ GEM
     thor (0.19.1)
     unf (0.1.4)
       unf_ext
-    unf_ext (0.0.6)
+    unf_ext (0.0.7.1)
     watir-webdriver (0.7.0)
       selenium-webdriver (>= 2.45)
-    websocket (1.2.1)
+    websocket (1.2.2)
     yml_reader (0.5)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  mediawiki_selenium (~> 1.0.1)
+  mediawiki_selenium (~> 1.2.1)
   rubocop
diff --git a/HISTORY b/HISTORY
index 0cf6b08..07f0fac 100644 (file)
--- a/HISTORY
+++ b/HISTORY
@@ -1,5 +1,551 @@
 Change notes from older releases. For current info see RELEASE-NOTES-1.26.
 
+== MediaWiki 1.25 ==
+
+=== Configuration changes in 1.25 ===
+* $wgPageShowWatchingUsers was removed.
+* $wgLocalVirtualHosts has been added to replace $wgConf->localVHosts.
+* $wgAntiLockFlags was removed.
+* $wgJavaScriptTestConfig was removed.
+* Edit tokens returned from User::getEditToken may change on every call. Token
+  validity must be checked by passing the user-supplied token to
+  User::matchEditToken rather than by testing for equality with a
+  newly-generated token.
+* (T74951) The UserGetLanguageObject hook may be passed any IContextSource
+  for its $context parameter. Formerly it was documented as receiving a
+  RequestContext specifically.
+* Profiling was restructured and $wgProfiler now requires an 'output' parameter.
+  See StartProfiler.sample for details.
+* $wgMangleFlashPolicy was added to make MediaWiki's mangling of anything that
+  might be a flash policy directive configurable.
+* ApiOpenSearch now supports XML output. The OpenSearchXml extension should no
+  longer be used. If extracts and page images are desired, the TextExtracts and
+  PageImages extensions are required.
+* $wgOpenSearchTemplate is deprecated in favor of $wgOpenSearchTemplates.
+* Edits are now prepared via AJAX as users type edit summaries. This behavior
+  can be disabled via $wgAjaxEditStash.
+* (T46740) The temporary option $wgIncludejQueryMigrate was removed, along
+  with the jQuery Migrate library, as indicated when this option was provided in
+  MediaWiki 1.24.
+* ProfilerStandard and ProfilerSimpleTrace were removed. Make sure that any
+  StartProfiler.php config is updated to reflect this. Xhprof is available
+  for zend/hhvm. Also, for hhvm, one can consider using its xenon profiler.
+* Default value of $wgSVGConverters['rsvg'] now uses the 'rsvg-convert' binary
+  rather than 'rsvg'.
+* Default value of $wgSVGConverters['ImageMagick'] now uses transparent
+  background with white fallback color, rather than just white background.
+ * MediaWikiBagOStuff class removed, make sure any object cache config
+   uses SqlBagOStuff instead.
+* The 'daemonized' flag must be set to true in $wgJobTypeConf for any redis
+  job queues. This means that mediawiki/services/jobrunner service has to
+  be installed and running for any such queues to work.
+* $wgAutopromoteOnce no longer supports the 'view' event. For keeping some
+  compatibility, any 'view' event triggers will still trigger on 'edit'.
+* $wgExtensionDirectory was added for when your extensions directory is somewhere
+  other than $IP/extensions (as $wgStyleDirectory does with the skins directory).
+
+=== New features in 1.25 ===
+* (T64861) Updated plural rules to CLDR 26. Includes incompatible changes
+  for plural forms in Russian, Prussian, Tagalog, Manx and several languages
+  that fall back to Russian.
+* (T60139) ResourceLoaderFileModule now supports language fallback
+  for 'languageScripts'.
+* Added a new hook, "ContentAlterParserOutput", to allow extensions to modify the
+  parser output for a content object before links update.
+* (T37785) Enhanced recent changes and extended watchlist are now default.
+  Documentation: https://meta.wikimedia.org/wiki/Help:Enhanced_recent_changes
+  and https://www.mediawiki.org/wiki/Manual:$wgDefaultUserOptions.
+* (T69341) SVG images will no longer be base64-encoded when being embedded
+  in CSS. This results in slight size increase before gzip compression (due to
+  percent-encoding), but up to 20% decrease after it.
+* Update jStorage to v0.4.12.
+* MediaWiki now natively supports page status indicators: icons (or short text
+  snippets) usually displayed in the top-right corner of the page. They have
+  been in use on Wikipedia for a long time, implemented using templates and CSS
+  absolute positioning.
+  - Basic wikitext syntax: <indicator name="foo">[[File:Foo.svg|20px]]</indicator>
+  - Usage instructions: https://www.mediawiki.org/wiki/Help:Page_status_indicators
+  - Adjusting custom skins to support indicators:
+    https://www.mediawiki.org/wiki/Manual:Skinning#Page_status_indicators
+* Edit tokens may now be time-limited: passing a maximum age to
+  User::matchEditToken will reject any older tokens.
+* The debug logging internals have been overhauled, and are now using the
+  PSR-3 interfaces.
+* Update CSSJanus to v1.1.1.
+* Update lessphp to v0.5.0.
+* Added a hook, "ApiOpenSearchSuggest", to allow extensions to provide extracts
+  and images for ApiOpenSearch output. The semantics are identical to the
+  "OpenSearchXml" hook provided by the OpenSearchXml extension.
+* PrefixSearchBackend hook now has an $offset parameter. Combined with $limit,
+  this allows for pagination of prefix results. Extensions using this hook
+  should implement supporting behavior. Not doing so can result in undefined
+  behavior from API clients trying to continue through prefix results.
+* Update jQuery from v1.11.1 to v1.11.3.
+* External libraries installed via composer will now be displayed
+  on Special:Version in their own section. Extensions or skins that are
+  installed via composer will not be shown in this section as it is assumed
+  they will add the proper credits to the skins or extensions section. They
+  can also be accessed through the API via the new siprop=libraries to
+  ApiQuerySiteInfo.
+* Update QUnit from v1.14.0 to v1.16.0.
+* Update Moment.js from v2.8.3 to v2.8.4.
+* Special:Tags now allows for manipulating the list of user-modifiable change
+  tags.
+* Added 'managetags' user right and 'ChangeTagCanCreate', 'ChangeTagCanDelete',
+  and 'ChangeTagCanCreate' hooks to allow for managing user-modifiable change
+  tags.
+* Added 'ChangeTagsListActive' hook, to separate the concepts of "defined" and
+  "active" formerly conflated by the 'ListDefinedTags' hook.
+* Added TemplateParser class that provides a server-side interface to cachable
+  dynamically-compiled Mustache templates (currently uses lightncandy library).
+* Clickable anchors for each section heading in the content are now generated
+  and appear in the gutter on hovering over the heading.
+* Added 'CategoryViewer::doCategoryQuery' and 'CategoryViewer::generateLink' hooks
+  to allow extensions to override how links to pages are rendered within NS_CATEGORY
+* (T19665) Special:WantedPages only lists page which having at least one red link
+  pointing to it.
+* New hooks 'ApiMain::moduleManager' and 'ApiQuery::moduleManager', can be
+  used for conditional registration of API modules.
+* New hook 'EnhancedChangesList::getLogText' to alter, remove or add to the
+  links of a group of changes in EnhancedChangesList.
+* A full interface for StatsD metric reporting has been added to the context
+  interface, reachable via IContextSource::getStats().
+* Move the jQuery Client library from being mastered in MediaWiki as v0.1.0 to a
+  proper, published library, which is now tagged as v1.0.0.
+* A new message (defaulting to blank), 'editnotice-notext', can be shown to users
+  when they are editing if no edit notices apply to the page being edited.
+* (T94536) You can now make the sitenotice appear to logged-in users only by
+  editing MediaWiki:Anonnotice and replacing its content with "". Setting it to
+  "-" (default) will continue disable it and fallback to MediaWiki:Sitenotice.
+* Modifying the tagging of a revision or log entry is now available via
+  Special:EditTags, generally accessed via the revision-deletion-like interface
+  on history pages and Special:Log is likely to be more useful.
+* Added 'applychangetags' and 'changetags' user rights.
+* (T35235) LogFormatter subclasses are now responsible for formatting the
+  parameters for API log event output. Extensions should implement the new
+  getParametersForApi() method in their log formatters.
+
+==== External libraries ====
+* MediaWiki now requires certain external libraries to be installed. In the past
+  these were bundled inside the Git repository of MediaWiki core, but now they
+  need to be installed separately. For users using the tarball, this will be taken
+  care of and no action will be required. Users using Git will either need to use
+  composer to fetch dependencies or use the mediawiki/vendor repository which includes
+  all dependencies for MediaWiki core and ones used in Wikimedia deployment. Detailed
+  instructions can be found at:
+  https://www.mediawiki.org/wiki/Download_from_Git#Fetch_external_libraries
+* The following libraries are now required:
+** psr/log
+   This library provides the interfaces set by the PSR-3 standard (http://www.php-fig.org/psr/psr-3/)
+   which are used by MediaWiki internally via the
+   MediaWiki\Logger\LoggerFactory class.
+   See the structured logging RfC (https://www.mediawiki.org/wiki/Requests_for_comment/Structured_logging)
+   for more background information.
+** cssjanus/cssjanus
+   This library was formerly bundled with MediaWiki core and has been removed.
+   It automatically flips CSS for RTL support.
+** leafo/lessphp
+   This library was formerly bundled with MediaWiki core and has been removed.
+   It compiles LESS files into CSS.
+** wikimedia/cdb
+   This library was formerly a part of MediaWiki core, and has been moved into a separate library.
+   It provides CDB functions which are used in the Interwiki and Localization caches.
+   More information about the library can be found at https://www.mediawiki.org/wiki/CDB.
+** liuggio/statsd-php-client
+   This library provides a StatsD client API for logging application metrics to a remote server.
+
+=== Bug fixes in 1.25 ===
+* (T73003) No additional code will be generated to try to load CSS-embedded
+  SVG images in Internet Explorer 6 and 7, as they don't support them anyway.
+* (T69021) On Special:BookSources, corrected validation of ISBNs (both
+  10- and 13-digit forms) containing "X".
+* Page moving was refactored into a MovePage class. As part of that:
+** The AbortMove hook was removed.
+** MovePageIsValidMove is for extensions to specify whether a page
+   cannot be moved for technical reasons, and should not be overridden.
+** MovePageCheckPermissions is for checking whether the given user is
+   allowed to make the move.
+** Title::moveNoAuth() was deprecated. Use the MovePage class instead.
+** Title::moveTo() was deprecated. Use the MovePage class instead.
+** Title::isValidMoveOperation() broken down into MovePage::isValidMove()
+   and MovePage::checkPermissions().
+* (T18530) Multiple autocomments are now formatted in an edit summary.
+* (T70361) Autocomments containing "/*" are parsed correctly.
+* The Special:WhatLinksHere page linked from 'Number of redirects to this page'
+  on action=info about a file page does not list file links anymore.
+* (T78637) Search bar is not autofocused unless it is empty so that proper scrolling using arrow keys is possible.
+* (T50853) Database::makeList() modified to handle 'NULL' separately when building IN clause
+* (T85192) Captcha position modified in Usercreate template. As a result:
+** extrafields parameter added to Usercreate.php to insert additional data
+** 'extend' method added to QuickTemplate to append additional values to any field of data array
+* (T86974) Several Title methods now load from the database when necessary
+  (instead of returning incorrect results) even when the page ID is known.
+* (T74070) Duplicate search for archived files on file upload now omits the extension.
+  This requires the fa_sha1 field being populated.
+* Removed rel="archives" from the "View history" link, as it did not pass
+  HTML validation.
+* $wgUseTidy is now set when parserTests are run with the tidy option to match
+  output on wiki.
+* (T37472) update.php will purge ResourceLoader cache unless --nopurge is passed to it.
+* (T72109) mediawiki.language should respect $wgTranslateNumerals in convertNumber().
+
+=== Action API changes in 1.25 ===
+* (T67403) XML tag highlighting is now only performed for formats
+  "xmlfm" and "wddxfm".
+* action=paraminfo supports generalized submodules (modules=query+value),
+  querymodules and formatmodules are deprecated
+* action=paraminfo no longer outputs descriptions and other help text by
+  default. If needed, it may be requested using the new 'helpformat' parameter.
+* action=help has been completely rewritten, and outputs help in HTML
+  rather than plain text.
+* Hitting api.php without specifying an action now displays only the help for
+  the main module, with links to submodule help.
+* API help is no longer displayed on errors.
+* 'uselang' is now a recognized API parameter; "uselang=user" may be used to
+  explicitly select the language from the current user's preferences, and
+  "uselang=content" may be used to select the wiki's content language.
+* Default output format for the API is now jsonfm.
+* Simplified continuation will return a "batchcomplete" property in the result
+  when a batch of pages is complete.
+* Pretty-printed HTML output now has nicer formatting and (if available)
+  better syntax highlighting.
+* Deprecated list=deletedrevs in favor of newly-added prop=deletedrevisions and
+  list=alldeletedrevisions.
+* prop=revisions will gracefully continue when given too many revids or titles,
+  rather than just ignoring the extras.
+* prop=revisions will no longer die if rvcontentformat doesn't match a
+  revision's content model; it will instead warn and omit the content.
+* If the user has the 'deletedhistory' right, action=query's revids parameter
+  will now recognize deleted revids.
+* prop=revisions may be used as a generator, generating revids.
+* (T68776) format=json results will no longer be corrupted when
+  $wgMangleFlashPolicy is in effect. format=php results will cleanly return an
+  error instead of returning invalid serialized data.
+* Generators may now return data for the generated pages when used with
+  action=query.
+* Query page data for generator=search and generator=prefixsearch will now
+  include an "index" field, which may be used by the client for sorting the
+  search results.
+* ApiOpenSearch now supports XML output.
+* ApiOpenSearch will now output descriptions and URLs as array indexes 2 and 3
+  in JSON format.
+* (T76051) list=tags will now continue correctly.
+* (T76052) list=tags can now indicate whether a tag is defined.
+* (T75522) list=prefixsearch now supports continuation
+* (T78737) action=expandtemplates can now return page properties.
+* (T78690) list=allimages now accepts multiple pipe-separated values
+  for the 'aimime' parameter.
+* prop=info with inprop=protections will now return applicable protection types
+  with the 'restrictiontypes' key.
+* (T85417) When resolving redirects, ApiPageSet will now add the targets of
+  interwiki redirects to the list of interwiki titles.
+* (T85417) When outputting the list of redirect titles, a 'tointerwiki'
+  property (like the existing 'tofragment' property) will be set.
+* Added action=managetags to allow for managing the list of
+  user-modifiable change tags. Actually modifying the tagging of a revision or
+  log entry is not implemented yet.
+* list=tags has additional properties to indicate 'active' status and tag
+  sources.
+* siprop=libraries was added to ApiQuerySiteInfo to list installed external libraries.
+* (T88010) Added action=checktoken, to test a CSRF token's validity.
+* (T88010) Added intestactions to prop=info, to allow querying of
+  Title::userCan() via the API.
+* Default type param for query list=watchlist and list=recentchanges has
+  been changed from all types (e.g. including 'external') to 'edit|new|log'.
+* Added formatversion to format=json. Still "experimental" as further changes
+  to the output formatting might still be made.
+* (T73020) Log event details are now always under a 'params' subkey for
+  list=logevents, and a 'logparams' subkey for list=watchlist and
+  list=recentchanges.
+* Log event details are changing formatting:
+  * block events now report flags as an array rather than as a comma-separated
+    list.
+  * patrol events now report the 'auto' flag as a boolean (absent/empty string
+    for BC formats) rather than as an integer.
+  * rights events now report the old and new group lists as arrays rather than
+    as comma-separated lists.
+  * merge events use new-style formatting.
+  * delete/event and delete/revision events use new-style formatting.
+* The root node and various other nodes will now always be an object in formats
+  such as json that distinguish between arrays and objects.
+  * Except for action=opensearch where the spec requires an array.
+
+=== Action API internal changes in 1.25 ===
+* ApiHelp has been rewritten to support i18n and paginated HTML output.
+  Most existing modules should continue working without changes, but should do
+  the following:
+  * Add an i18n message "apihelp-{$moduleName}-description" to replace getDescription().
+  * Add i18n messages "apihelp-{$moduleName}-param-{$param}" for each parameter
+    to replace getParamDescription(). If necessary, the settings array returned
+    by getParams() can use the new ApiBase::PARAM_HELP_MSG key to override the
+    message.
+  * Implement getExamplesMessages() to replace getExamples().
+* Modules with submodules (like action=query) must have their submodules
+  override ApiBase::getParent() to return the correct parent object.
+* The 'APIGetDescription' and 'APIGetParamDescription' hooks are deprecated,
+  and will have no effect for modules using i18n messages. Use
+  'APIGetDescriptionMessages' and 'APIGetParamDescriptionMessages' instead.
+* Api formatters will no longer be asked to display the help screen on errors.
+* ApiMain::getCredits() was removed. The credits are available in the
+  'api-credits' i18n message.
+* ApiFormatBase has been changed to support i18n and syntax highlighting via
+  extensions with the new 'ApiFormatHighlight' hook. Core syntax highlighting
+  has been removed.
+* ApiFormatBase now always buffers. Output is done when
+  ApiFormatBase::closePrinter is called.
+* Much of the logic in ApiQueryRevisions has been split into ApiQueryRevisionsBase.
+* The 'revids' parameter supplied by ApiPageSet will now count deleted
+  revisions as "good" if the user has the 'deletedhistory' right. New methods
+  ApiPageSet::getLiveRevisionIDs() and ApiPageSet::getDeletedRevisionIDs() are
+  provided to access just the live or just the deleted revids.
+* Added ApiPageSet::setGeneratorData() and ApiPageSet::populateGeneratorData()
+  to allow generators to include data in the action=query result.
+* New hooks 'ApiMain::moduleManager' and 'ApiQuery::moduleManager', can be
+  used for conditional registration of API modules.
+* Added ApiBase::lacksSameOriginSecurity() to allow modules to easily check if
+  the current request was sent with the 'callback' parameter (or any future
+  method that breaks the same-origin policy).
+* Profiling methods in ApiBase are deprecated and no longer need to be called.
+* ApiResult was greatly overhauled. See inline documentation for details.
+* ApiResult will automatically convert objects to strings or arrays (depending
+  on whether a __toString() method exists on the object), and will refuse to
+  add unsupported value types.
+  * An informal interface, ApiSerializable, exists to override the default
+    object conversion.
+* ApiResult/ApiFormatBase "raw mode" is deprecated.
+* ApiFormatXml now assumes defaults and so on instead of throwing errors when
+  metadata isn't set.
+* (T35235) LogFormatter subclasses are now responsible for formatting log event
+  parameters for the API.
+* Many modules have changed result data formats. While this shouldn't affect
+  clients not using the experimental formatversion=2, code using
+  ApiResult::getResultData() without the transformations for backwards
+  compatibility may need updating, as will code that wasn't following the old
+  conventions for API boolean output.
+* The following methods have been deprecated and may be removed in a future
+  release:
+  * ApiBase::getDescription
+  * ApiBase::getParamDescription
+  * ApiBase::getExamples
+  * ApiBase::makeHelpMsg
+  * ApiBase::makeHelpArrayToString
+  * ApiBase::makeHelpMsgParameters
+  * ApiBase::getModuleProfileName
+  * ApiBase::profileIn
+  * ApiBase::profileOut
+  * ApiBase::safeProfileOut
+  * ApiBase::getProfileTime
+  * ApiBase::profileDBIn
+  * ApiBase::profileDBOut
+  * ApiBase::getProfileDBTime
+  * ApiBase::getResultData
+  * ApiFormatBase::setUnescapeAmps
+  * ApiFormatBase::getWantsHelp
+  * ApiFormatBase::setHelp
+  * ApiFormatBase::formatHTML
+  * ApiFormatBase::setBufferResult
+  * ApiFormatBase::getDescription
+  * ApiFormatBase::getNeedsRawData
+  * ApiMain::setHelp
+  * ApiMain::reallyMakeHelpMsg
+  * ApiMain::makeHelpMsgHeader
+  * ApiResult::setRawMode
+  * ApiResult::getIsRawMode
+  * ApiResult::getData
+  * ApiResult::setElement
+  * ApiResult::setContent
+  * ApiResult::setIndexedTagName_recursive
+  * ApiResult::setIndexedTagName_internal
+  * ApiResult::setParsedLimit
+  * ApiResult::beginContinuation
+  * ApiResult::setContinueParam
+  * ApiResult::setGeneratorContinueParam
+  * ApiResult::endContinuation
+  * ApiResult::size
+  * ApiResult::convertStatusToArray
+  * ApiQueryImageInfo::getPropertyDescriptions
+  * ApiQueryLogEvents::addLogParams
+* The following classes have been deprecated and may be removed in a future
+  release:
+  * ApiQueryDeletedrevs
+
+=== Languages updated in 1.25 ===
+
+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 Bugzilla reports.
+
+* Languages added:
+** awa (अवधी / Awadhi), thanks to translator 1AnuraagPandey;
+** bgn (بلوچی رخشانی / Western Balochi), thanks to translators
+   Baloch Afghanistan, Ibrahim khashrowdi and Rachitrali;
+** ses (Koyraboro Senni), thanks to translator Songhay.
+* (T66440) Kazakh (kk) wikis should no longer forcefully reset the user's
+  interface language to kk where unexpected.
+* The Chinese conversion table was substantially updated to fix a lot of
+  bugs and ensure better reading experience for different variants.
+
+=== Other changes in 1.25 ===
+* (T45591) Links to MediaWiki.org translatable help were added to indicators,
+  mostly in special pages. Local custom target titles can be placed in the
+  relevant '(namespace-X|action name|special page name)-helppage' system
+  message. Extensions can use the addHelpLink() function to do the same.
+* The skin autodiscovery mechanism, deprecated in MediaWiki 1.23, has been
+  removed. See https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery for
+  migration guide for creators and users of custom skins that relied on it.
+* Javascript variables 'wgFileCanRotate' and 'wgFileExtensions' now only
+  available on Special:Upload.
+* (T58257) Set site logo from mediawiki.skinning.interface module instead of
+  inline styles in the HTML.
+* Removed ApiQueryUsers::getAutoGroups(). (deprecated since 1.20)
+* Removed XmlDumpWriter::schemaVersion(). (deprecated since 1.20)
+* Removed LogEventsList::getDisplayTitle(). (deprecated since 1.20)
+* Removed Preferences::trySetUserEmail(). (deprecated since 1.20)
+* Removed mw.user.name() and mw.user.anonymous() methods. (deprecated since 1.20)
+* Removed 'ok' and 'err' parameters in the mediawiki.api modules. (deprecated
+  since 1.20)
+* Removed 'async' parameter from the  mw.Api#getCategories() method. (deprecated
+  since 1.20)
+* Removed 'jquery.json' module. (deprecated since 1.24)
+  Use the 'json' module and global JSON object instead.
+* Deprecated OutputPage::readOnlyPage() and OutputPage::rateLimited().
+  Also, the former will now throw an MWException if called with one or more
+  arguments.
+* Removed hitcounters and associated code.
+* The "temp" zone of the upload respository is now considered private. If it
+  already exists (such as under the images/ directory), please make sure that
+  the directory is not web readable (e.g. via a .htaccess file).
+* BREAKING CHANGE: In the XML dump format used by Special:Export and
+  dumpBackup.php, the <model> and <format> tags now apprear before the <text>
+  tag, instead of after the <text> and <sha1> tags.
+  The new schema version is 0.10, the new schema URI is:
+  https://www.mediawiki.org/xml/export-0.10.xsd
+* MWFunction::call() and MWFunction::callArray() were removed, having being
+  deprecated in 1.22.
+* Deprecated the getInternalLinkAttributes, getInternalLinkAttributesObj,
+  and getInternalLinkAttributes methods in Linker, and removed
+  getExternalLinkAttributes method, which was deprecated in MediaWiki 1.18.
+* Removed Sites class, which was deprecated in 1.21 and replaced by SiteSQLStore.
+* Added wgRelevantArticleId to the client-side config, for use on special pages.
+* Deprecated the TitleIsCssOrJsPage hook. Superseded by the
+  ContentHandlerDefaultModelFor hook since MediaWiki 1.21.
+* Deprecated the TitleIsWikitextPage hook. Superseded by the
+  ContentHandlerDefaultModelFor hook since MediaWiki 1.21.
+* Changed parsing of variables in schema (.sql) files:
+** The substituted values are no longer parsed. (Formerly, several passes
+   were made for each variable, so depending on the order in which variables
+   were defined, variables might have been found inside encoded values. This
+   is no longer the case.)
+** Variables are no longer string encoded when the /*$var*/ syntax is used.
+   If string encoding is necessary, use the '{$var}' syntax instead.
+** Variable names must only consist of one or more of the characters
+   "A-Za-z0-9_".
+** In source text of the form '{$A}'{$B}' or `{$A}`{$B}`, where variable A
+   does not exist yet variable B does, the latter may not be replaced.
+   However, this difference is unlikely to arise in practice.
+* (T67278) RFC, PMID, and ISBN "magic links" must be surrounded by non-word
+  characters on both sides.
+* The FormatAutocomments hook will now receive $pre and $post as booleans,
+  rather than as strings that must be prepended or appended to $comment.
+* (T30950, T31025) RFC, PMID, and ISBN "magic links" can no longer contain
+  newlines; but they can contain &nbsp; and other non-newline whitespace.
+* The 'mediawiki.action.edit' ResourceLoader module no longer generates the edit
+  toolbar, which has been moved to a separate 'mediawiki.toolbar' module. If you
+  relied on this behavior, update your scripts' dependencies.
+* HTMLForm's 'vform' display style has been separated to a subclass. Therefore:
+  * HTMLForm::isVForm() is now deprecated.
+  * You can no longer do this:
+      $form = new HTMLForm( … );
+      $form->setDisplayFormat( 'vform' ); // throws exception
+    Instead, do this:
+      $form = HTMLForm::factory( 'vform', … );
+* Deprecated Revision methods getRawUser(), getRawUserText() and getRawComment().
+* BREAKING CHANGE: mediawiki.user.generateRandomSessionId:
+  The alphabet of the prior string returned was A-Za-z0-9 and now it is 0-9A-F
+* (T87504) Avoid serving SVG background-images in CSS for Opera 12, which
+  renders them incorrectly when combined with border-radius or background-size.
+* Removed maintenance script dumpSisterSites.php.
+* DatabaseBase class constructors must be called using the array argument style.
+  Ideally, DatabaseBase:factory() should be used instead in most cases.
+* Deprecated ParserOutput::addSecondaryDataUpdate and ParserOutput::getSecondaryDataUpdates.
+  This is a hard deprecation, with getSecondaryDataUpdates returning an empty array and
+  addSecondaryDataUpdate throwing an exception. These functions will be removed in 1.26,
+  since they interfere with caching of ParserOutput objects.
+* Introduced new hook 'SecondaryDataUpdates' that allows extensions to inject custom updates.
+* Introduced new hook 'OpportunisticLinksUpdate' that allows extensions to perform
+  updates when a page is re-rendered.
+* EditPage::attemptSave has been modified not to call handleStatus itself and
+  instead just returns the Status object. Extension calling it should be aware of
+  this.
+* Removed class DBObject. (unused since 1.10)
+* wfDiff() is deprecated.
+* The -m (maximum replication lag) option of refreshLinks.php was removed.
+  It had no effect since MediaWiki 1.18 and should be removed from any cron
+  jobs or similar scripts you may have set up.
+* (T85864) The following messages no longer support raw html: redirectto,
+  thisisdeleted, viewdeleted, editlink, retrievedfrom, version-poweredby-others,
+  retrievedfrom, thisisdeleted, viewsourcelink, lastmodifiedat, laggedslavemode,
+  protect-summary-cascade
+* All BloomCache related code has been removed. This was largely experimental.
+* $wgResourceModuleSkinStyles no longer supports per-module local or remote paths. They
+  can only be set for the entire skin.
+* Removed global function swap(). (deprecated since 1.24)
+* Deprecated the ".php5" file extension entry points and the $wgScriptExtension
+  configuration variable. Refer to the ".php" files instead. If you want
+  ".php5" URLs to continue to work, set up redirects. In Apache, this can be
+  done by enabling mod_rewrite and adding the following rules to your
+  configuration:
+
+    RewriteEngine On
+    RewriteBase /
+    RewriteRule ^(.*)\.php5 $1.php [R=301,L]
+
+* The global importScriptURI and importStylesheetURI functions, as well as the
+  loadedScripts object, from wikibits.js (deprecated since 1.17) now emit
+  warnings through mw.log.warn when accessed.
+
+
+== Compatibility ==
+
+MediaWiki 1.25 requires PHP 5.3.3 or later. There is experimental support for
+HHVM 3.3.0.
+
+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.25 has several database changes since 1.24, 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.24.x and older releases, see HISTORY.
+
 == MediaWiki 1.24 ==
 
 === Configuration changes in 1.24 ===
@@ -194,6 +740,13 @@ Change notes from older releases. For current info see RELEASE-NOTES-1.26.
   Special:DeletedContributions
 * Added DeletedContributionsLineEnding hook allowing extensions to format
   Special:DeletedContributions lines
+* (T69525) You can now make MediaWiki speed up its thumbnail rendering by using
+  intermediary thumbnails. $wgThumbnailBuckets must be set to a list of target
+  thumbnail widths; when a new thumbnail needs to be rendered, MediaWiki will
+  find the smallest bucket smaller than the original but larger than the target
+  width + $wgThumbnailMinimumBucketDistance, and it will scale that thumbnail,
+  rather than the original, down to the target size at greater speed in return
+  for minor loss of fidelity.
 
 === Bug fixes in 1.24 ===
 * (bug 50572) MediaWiki:Blockip should support gender
diff --git a/RELEASE-NOTES-1.25 b/RELEASE-NOTES-1.25
deleted file mode 100644 (file)
index d844be2..0000000
+++ /dev/null
@@ -1,568 +0,0 @@
-Security reminder: If you have PHP's register_globals option set, you must
-turn it off. MediaWiki will not work with it enabled.
-
-== MediaWiki 1.25 ==
-
-THIS IS NOT A RELEASE YET
-
-MediaWiki 1.25 is an alpha-quality branch and is not recommended for use in
-production.
-
-=== Configuration changes in 1.25 ===
-* $wgPageShowWatchingUsers was removed.
-* $wgLocalVirtualHosts has been added to replace $wgConf->localVHosts.
-* $wgAntiLockFlags was removed.
-* $wgJavaScriptTestConfig was removed.
-* Edit tokens returned from User::getEditToken may change on every call. Token
-  validity must be checked by passing the user-supplied token to
-  User::matchEditToken rather than by testing for equality with a
-  newly-generated token.
-* (T74951) The UserGetLanguageObject hook may be passed any IContextSource
-  for its $context parameter. Formerly it was documented as receiving a
-  RequestContext specifically.
-* Profiling was restructured and $wgProfiler now requires an 'output' parameter.
-  See StartProfiler.sample for details.
-* $wgMangleFlashPolicy was added to make MediaWiki's mangling of anything that
-  might be a flash policy directive configurable.
-* ApiOpenSearch now supports XML output. The OpenSearchXml extension should no
-  longer be used. If extracts and page images are desired, the TextExtracts and
-  PageImages extensions are required.
-* $wgOpenSearchTemplate is deprecated in favor of $wgOpenSearchTemplates.
-* Edits are now prepared via AJAX as users type edit summaries. This behavior
-  can be disabled via $wgAjaxEditStash.
-* (T46740) The temporary option $wgIncludejQueryMigrate was removed, along
-  with the jQuery Migrate library, as indicated when this option was provided in
-  MediaWiki 1.24.
-* ProfilerStandard and ProfilerSimpleTrace were removed. Make sure that any
-  StartProfiler.php config is updated to reflect this. Xhprof is available
-  for zend/hhvm. Also, for hhvm, one can consider using its xenon profiler.
-* Default value of $wgSVGConverters['rsvg'] now uses the 'rsvg-convert' binary
-  rather than 'rsvg'.
-* Default value of $wgSVGConverters['ImageMagick'] now uses transparent
-  background with white fallback color, rather than just white background.
- * MediaWikiBagOStuff class removed, make sure any object cache config
-   uses SqlBagOStuff instead.
-* The 'daemonized' flag must be set to true in $wgJobTypeConf for any redis
-  job queues. This means that mediawiki/services/jobrunner service has to
-  be installed and running for any such queues to work.
-* $wgAutopromoteOnce no longer supports the 'view' event. For keeping some
-  compatibility, any 'view' event triggers will still trigger on 'edit'.
-
-=== New features in 1.25 ===
-* (T64861) Updated plural rules to CLDR 26. Includes incompatible changes
-  for plural forms in Russian, Prussian, Tagalog, Manx and several languages
-  that fall back to Russian.
-* (T60139) ResourceLoaderFileModule now supports language fallback
-  for 'languageScripts'.
-* Added a new hook, "ContentAlterParserOutput", to allow extensions to modify the
-  parser output for a content object before links update.
-* (T37785) Enhanced recent changes and extended watchlist are now default.
-  Documentation: https://meta.wikimedia.org/wiki/Help:Enhanced_recent_changes
-  and https://www.mediawiki.org/wiki/Manual:$wgDefaultUserOptions.
-* (T69341) SVG images will no longer be base64-encoded when being embedded
-  in CSS. This results in slight size increase before gzip compression (due to
-  percent-encoding), but up to 20% decrease after it.
-* Update jStorage to v0.4.12.
-* MediaWiki now natively supports page status indicators: icons (or short text
-  snippets) usually displayed in the top-right corner of the page. They have
-  been in use on Wikipedia for a long time, implemented using templates and CSS
-  absolute positioning.
-  - Basic wikitext syntax: <indicator name="foo">[[File:Foo.svg|20px]]</indicator>
-  - Usage instructions: https://www.mediawiki.org/wiki/Help:Page_status_indicators
-  - Adjusting custom skins to support indicators:
-    https://www.mediawiki.org/wiki/Manual:Skinning#Page_status_indicators
-* Edit tokens may now be time-limited: passing a maximum age to
-  User::matchEditToken will reject any older tokens.
-* The debug logging internals have been overhauled, and are now using the
-  PSR-3 interfaces.
-* Update CSSJanus to v1.1.1.
-* Update lessphp to v0.5.0.
-* Added a hook, "ApiOpenSearchSuggest", to allow extensions to provide extracts
-  and images for ApiOpenSearch output. The semantics are identical to the
-  "OpenSearchXml" hook provided by the OpenSearchXml extension.
-* PrefixSearchBackend hook now has an $offset parameter. Combined with $limit,
-  this allows for pagination of prefix results. Extensions using this hook
-  should implement supporting behavior. Not doing so can result in undefined
-  behavior from API clients trying to continue through prefix results.
-* Update jQuery from v1.11.1 to v1.11.3.
-* External libraries installed via composer will now be displayed
-  on Special:Version in their own section. Extensions or skins that are
-  installed via composer will not be shown in this section as it is assumed
-  they will add the proper credits to the skins or extensions section. They
-  can also be accessed through the API via the new siprop=libraries to
-  ApiQuerySiteInfo.
-* Update QUnit from v1.14.0 to v1.16.0.
-* Update Moment.js from v2.8.3 to v2.8.4.
-* Special:Tags now allows for manipulating the list of user-modifiable change
-  tags.
-* Added 'managetags' user right and 'ChangeTagCanCreate', 'ChangeTagCanDelete',
-  and 'ChangeTagCanCreate' hooks to allow for managing user-modifiable change
-  tags.
-* Added 'ChangeTagsListActive' hook, to separate the concepts of "defined" and
-  "active" formerly conflated by the 'ListDefinedTags' hook.
-* Added TemplateParser class that provides a server-side interface to cachable
-  dynamically-compiled Mustache templates (currently uses lightncandy library).
-* Clickable anchors for each section heading in the content are now generated
-  and appear in the gutter on hovering over the heading.
-* Added 'CategoryViewer::doCategoryQuery' and 'CategoryViewer::generateLink' hooks
-  to allow extensions to override how links to pages are rendered within NS_CATEGORY
-* (T19665) Special:WantedPages only lists page which having at least one red link
-  pointing to it.
-* New hooks 'ApiMain::moduleManager' and 'ApiQuery::moduleManager', can be
-  used for conditional registration of API modules.
-* New hook 'EnhancedChangesList::getLogText' to alter, remove or add to the
-  links of a group of changes in EnhancedChangesList.
-* A full interface for StatsD metric reporting has been added to the context
-  interface, reachable via IContextSource::getStats().
-* Move the jQuery Client library from being mastered in MediaWiki as v0.1.0 to a
-  proper, published library, which is now tagged as v1.0.0.
-* A new message (defaulting to blank), 'editnotice-notext', can be shown to users
-  when they are editing if no edit notices apply to the page being edited.
-* (T94536) You can now make the sitenotice appear to logged-in users only by
-  editing MediaWiki:Anonnotice and replacing its content with "". Setting it to
-  "-" (default) will continue disable it and fallback to MediaWiki:Sitenotice.
-* Modifying the tagging of a revision or log entry is now available via
-  Special:EditTags, generally accessed via the revision-deletion-like interface
-  on history pages and Special:Log is likely to be more useful.
-* Added 'applychangetags' and 'changetags' user rights.
-* (T35235) LogFormatter subclasses are now responsible for formatting the
-  parameters for API log event output. Extensions should implement the new
-  getParametersForApi() method in their log formatters.
-
-==== External libraries ====
-* MediaWiki now requires certain external libraries to be installed. In the past
-  these were bundled inside the Git repository of MediaWiki core, but now they
-  need to be installed separately. For users using the tarball, this will be taken
-  care of and no action will be required. Users using Git will either need to use
-  composer to fetch dependencies or use the mediawiki/vendor repository which includes
-  all dependencies for MediaWiki core and ones used in Wikimedia deployment. Detailed
-  instructions can be found at:
-  https://www.mediawiki.org/wiki/Download_from_Git#Fetch_external_libraries
-* The following libraries are now required:
-** psr/log
-   This library provides the interfaces set by the PSR-3 standard (http://www.php-fig.org/psr/psr-3/)
-   which are used by MediaWiki internally via the
-   MediaWiki\Logger\LoggerFactory class.
-   See the structured logging RfC (https://www.mediawiki.org/wiki/Requests_for_comment/Structured_logging)
-   for more background information.
-** cssjanus/cssjanus
-   This library was formerly bundled with MediaWiki core and has been removed.
-   It automatically flips CSS for RTL support.
-** leafo/lessphp
-   This library was formerly bundled with MediaWiki core and has been removed.
-   It compiles LESS files into CSS.
-** wikimedia/cdb
-   This library was formerly a part of MediaWiki core, and has been moved into a separate library.
-   It provides CDB functions which are used in the Interwiki and Localization caches.
-   More information about the library can be found at https://www.mediawiki.org/wiki/CDB.
-** liuggio/statsd-php-client
-   This library provides a StatsD client API for logging application metrics to a remote server.
-
-=== Bug fixes in 1.25 ===
-* (T73003) No additional code will be generated to try to load CSS-embedded
-  SVG images in Internet Explorer 6 and 7, as they don't support them anyway.
-* (T69021) On Special:BookSources, corrected validation of ISBNs (both
-  10- and 13-digit forms) containing "X".
-* Page moving was refactored into a MovePage class. As part of that:
-** The AbortMove hook was removed.
-** MovePageIsValidMove is for extensions to specify whether a page
-   cannot be moved for technical reasons, and should not be overridden.
-** MovePageCheckPermissions is for checking whether the given user is
-   allowed to make the move.
-** Title::moveNoAuth() was deprecated. Use the MovePage class instead.
-** Title::moveTo() was deprecated. Use the MovePage class instead.
-** Title::isValidMoveOperation() broken down into MovePage::isValidMove()
-   and MovePage::checkPermissions().
-* (T18530) Multiple autocomments are now formatted in an edit summary.
-* (T70361) Autocomments containing "/*" are parsed correctly.
-* The Special:WhatLinksHere page linked from 'Number of redirects to this page'
-  on action=info about a file page does not list file links anymore.
-* (T78637) Search bar is not autofocused unless it is empty so that proper scrolling using arrow keys is possible.
-* (T50853) Database::makeList() modified to handle 'NULL' separately when building IN clause
-* (T85192) Captcha position modified in Usercreate template. As a result:
-** extrafields parameter added to Usercreate.php to insert additional data
-** 'extend' method added to QuickTemplate to append additional values to any field of data array
-* (T86974) Several Title methods now load from the database when necessary
-  (instead of returning incorrect results) even when the page ID is known.
-* (T74070) Duplicate search for archived files on file upload now omits the extension.
-  This requires the fa_sha1 field being populated.
-* Removed rel="archives" from the "View history" link, as it did not pass
-  HTML validation.
-* $wgUseTidy is now set when parserTests are run with the tidy option to match
-  output on wiki.
-* (T37472) update.php will purge ResourceLoader cache unless --nopurge is passed to it.
-
-=== Action API changes in 1.25 ===
-* (T67403) XML tag highlighting is now only performed for formats
-  "xmlfm" and "wddxfm".
-* action=paraminfo supports generalized submodules (modules=query+value),
-  querymodules and formatmodules are deprecated
-* action=paraminfo no longer outputs descriptions and other help text by
-  default. If needed, it may be requested using the new 'helpformat' parameter.
-* action=help has been completely rewritten, and outputs help in HTML
-  rather than plain text.
-* Hitting api.php without specifying an action now displays only the help for
-  the main module, with links to submodule help.
-* API help is no longer displayed on errors.
-* 'uselang' is now a recognized API parameter; "uselang=user" may be used to
-  explicitly select the language from the current user's preferences, and
-  "uselang=content" may be used to select the wiki's content language.
-* Default output format for the API is now jsonfm.
-* Simplified continuation will return a "batchcomplete" property in the result
-  when a batch of pages is complete.
-* Pretty-printed HTML output now has nicer formatting and (if available)
-  better syntax highlighting.
-* Deprecated list=deletedrevs in favor of newly-added prop=deletedrevisions and
-  list=alldeletedrevisions.
-* prop=revisions will gracefully continue when given too many revids or titles,
-  rather than just ignoring the extras.
-* prop=revisions will no longer die if rvcontentformat doesn't match a
-  revision's content model; it will instead warn and omit the content.
-* If the user has the 'deletedhistory' right, action=query's revids parameter
-  will now recognize deleted revids.
-* prop=revisions may be used as a generator, generating revids.
-* (T68776) format=json results will no longer be corrupted when
-  $wgMangleFlashPolicy is in effect. format=php results will cleanly return an
-  error instead of returning invalid serialized data.
-* Generators may now return data for the generated pages when used with
-  action=query.
-* Query page data for generator=search and generator=prefixsearch will now
-  include an "index" field, which may be used by the client for sorting the
-  search results.
-* ApiOpenSearch now supports XML output.
-* ApiOpenSearch will now output descriptions and URLs as array indexes 2 and 3
-  in JSON format.
-* (T76051) list=tags will now continue correctly.
-* (T76052) list=tags can now indicate whether a tag is defined.
-* (T75522) list=prefixsearch now supports continuation
-* (T78737) action=expandtemplates can now return page properties.
-* (T78690) list=allimages now accepts multiple pipe-separated values
-  for the 'aimime' parameter.
-* prop=info with inprop=protections will now return applicable protection types
-  with the 'restrictiontypes' key.
-* (T85417) When resolving redirects, ApiPageSet will now add the targets of
-  interwiki redirects to the list of interwiki titles.
-* (T85417) When outputting the list of redirect titles, a 'tointerwiki'
-  property (like the existing 'tofragment' property) will be set.
-* Added action=managetags to allow for managing the list of
-  user-modifiable change tags. Actually modifying the tagging of a revision or
-  log entry is not implemented yet.
-* list=tags has additional properties to indicate 'active' status and tag
-  sources.
-* siprop=libraries was added to ApiQuerySiteInfo to list installed external libraries.
-* (T88010) Added action=checktoken, to test a CSRF token's validity.
-* (T88010) Added intestactions to prop=info, to allow querying of
-  Title::userCan() via the API.
-* Default type param for query list=watchlist and list=recentchanges has
-  been changed from all types (e.g. including 'external') to 'edit|new|log'.
-* Added formatversion to format=json, still experimental.
-* (T73020) Log event details are now always under a 'params' subkey for
-  list=logevents, and a 'logparams' subkey for list=watchlist and
-  list=recentchanges.
-* Log event details are changing formatting:
-  * block events now report flags as an array rather than as a comma-separated
-    list.
-  * patrol events now report the 'auto' flag as a boolean (absent/empty string
-    for BC formats) rather than as an integer.
-  * rights events now report the old and new group lists as arrays rather than
-    as comma-separated lists.
-  * merge events use new-style formatting.
-  * delete/event and delete/revision events use new-style formatting.
-* The root node and various other nodes will now always be an object in formats
-  such as json that distinguish between arrays and objects.
-  * Except for action=opensearch where the spec requires an array.
-
-=== Action API internal changes in 1.25 ===
-* ApiHelp has been rewritten to support i18n and paginated HTML output.
-  Most existing modules should continue working without changes, but should do
-  the following:
-  * Add an i18n message "apihelp-{$moduleName}-description" to replace getDescription().
-  * Add i18n messages "apihelp-{$moduleName}-param-{$param}" for each parameter
-    to replace getParamDescription(). If necessary, the settings array returned
-    by getParams() can use the new ApiBase::PARAM_HELP_MSG key to override the
-    message.
-  * Implement getExamplesMessages() to replace getExamples().
-* Modules with submodules (like action=query) must have their submodules
-  override ApiBase::getParent() to return the correct parent object.
-* The 'APIGetDescription' and 'APIGetParamDescription' hooks are deprecated,
-  and will have no effect for modules using i18n messages. Use
-  'APIGetDescriptionMessages' and 'APIGetParamDescriptionMessages' instead.
-* Api formatters will no longer be asked to display the help screen on errors.
-* ApiMain::getCredits() was removed. The credits are available in the
-  'api-credits' i18n message.
-* ApiFormatBase has been changed to support i18n and syntax highlighting via
-  extensions with the new 'ApiFormatHighlight' hook. Core syntax highlighting
-  has been removed.
-* ApiFormatBase now always buffers. Output is done when
-  ApiFormatBase::closePrinter is called.
-* Much of the logic in ApiQueryRevisions has been split into ApiQueryRevisionsBase.
-* The 'revids' parameter supplied by ApiPageSet will now count deleted
-  revisions as "good" if the user has the 'deletedhistory' right. New methods
-  ApiPageSet::getLiveRevisionIDs() and ApiPageSet::getDeletedRevisionIDs() are
-  provided to access just the live or just the deleted revids.
-* Added ApiPageSet::setGeneratorData() and ApiPageSet::populateGeneratorData()
-  to allow generators to include data in the action=query result.
-* New hooks 'ApiMain::moduleManager' and 'ApiQuery::moduleManager', can be
-  used for conditional registration of API modules.
-* Added ApiBase::lacksSameOriginSecurity() to allow modules to easily check if
-  the current request was sent with the 'callback' parameter (or any future
-  method that breaks the same-origin policy).
-* Profiling methods in ApiBase are deprecated and no longer need to be called.
-* ApiResult was greatly overhauled. See inline documentation for details.
-* ApiResult will automatically convert objects to strings or arrays (depending
-  on whether a __toString() method exists on the object), and will refuse to
-  add unsupported value types.
-  * An informal interface, ApiSerializable, exists to override the default
-    object conversion.
-* ApiResult/ApiFormatBase "raw mode" is deprecated.
-* ApiFormatXml now assumes defaults and so on instead of throwing errors when
-  metadata isn't set.
-* (T35235) LogFormatter subclasses are now responsible for formatting log event
-  parameters for the API.
-* Many modules have changed result data formats. While this shouldn't affect
-  clients not using the experimental formatversion=2015, code using
-  ApiResult::getResultData() and not using ApiResult::transformForBC() may need
-  updating.
-* The following methods have been deprecated and may be removed in a future
-  release:
-  * ApiBase::getDescription
-  * ApiBase::getParamDescription
-  * ApiBase::getExamples
-  * ApiBase::makeHelpMsg
-  * ApiBase::makeHelpArrayToString
-  * ApiBase::makeHelpMsgParameters
-  * ApiBase::getModuleProfileName
-  * ApiBase::profileIn
-  * ApiBase::profileOut
-  * ApiBase::safeProfileOut
-  * ApiBase::getProfileTime
-  * ApiBase::profileDBIn
-  * ApiBase::profileDBOut
-  * ApiBase::getProfileDBTime
-  * ApiBase::getResultData
-  * ApiFormatBase::setUnescapeAmps
-  * ApiFormatBase::getWantsHelp
-  * ApiFormatBase::setHelp
-  * ApiFormatBase::formatHTML
-  * ApiFormatBase::setBufferResult
-  * ApiFormatBase::getDescription
-  * ApiFormatBase::getNeedsRawData
-  * ApiMain::setHelp
-  * ApiMain::reallyMakeHelpMsg
-  * ApiMain::makeHelpMsgHeader
-  * ApiResult::setRawMode
-  * ApiResult::getIsRawMode
-  * ApiResult::getData
-  * ApiResult::setElement
-  * ApiResult::setContent
-  * ApiResult::setIndexedTagName_recursive
-  * ApiResult::setIndexedTagName_internal
-  * ApiResult::setParsedLimit
-  * ApiResult::beginContinuation
-  * ApiResult::setContinueParam
-  * ApiResult::setGeneratorContinueParam
-  * ApiResult::endContinuation
-  * ApiResult::size
-  * ApiResult::convertStatusToArray
-  * ApiQueryImageInfo::getPropertyDescriptions
-  * ApiQueryLogEvents::addLogParams
-* The following classes have been deprecated and may be removed in a future
-  release:
-  * ApiQueryDeletedrevs
-
-=== Languages updated in 1.25 ===
-
-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 Bugzilla reports.
-
-* Languages added:
-** awa (अवधी / Awadhi), thanks to translator 1AnuraagPandey;
-** bgn (بلوچی رخشانی / Western Balochi), thanks to translators
-   Baloch Afghanistan, Ibrahim khashrowdi and Rachitrali;
-** ses (Koyraboro Senni), thanks to translator Songhay.
-* (T66440) Kazakh (kk) wikis should no longer forcefully reset the user's
-  interface language to kk where unexpected.
-* The Chinese conversion table was substantially updated to fix a lot of
-  bugs and ensure better reading experience for different variants.
-
-=== Other changes in 1.25 ===
-* The skin autodiscovery mechanism, deprecated in MediaWiki 1.23, has been
-  removed. See https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery for
-  migration guide for creators and users of custom skins that relied on it.
-* Javascript variables 'wgFileCanRotate' and 'wgFileExtensions' now only
-  available on Special:Upload.
-* (T58257) Set site logo from mediawiki.skinning.interface module instead of
-  inline styles in the HTML.
-* Removed ApiQueryUsers::getAutoGroups(). (deprecated since 1.20)
-* Removed XmlDumpWriter::schemaVersion(). (deprecated since 1.20)
-* Removed LogEventsList::getDisplayTitle(). (deprecated since 1.20)
-* Removed Preferences::trySetUserEmail(). (deprecated since 1.20)
-* Removed mw.user.name() and mw.user.anonymous() methods. (deprecated since 1.20)
-* Removed 'ok' and 'err' parameters in the mediawiki.api modules. (deprecated
-  since 1.20)
-* Removed 'async' parameter from the  mw.Api#getCategories() method. (deprecated
-  since 1.20)
-* Removed 'jquery.json' module. (deprecated since 1.24)
-  Use the 'json' module and global JSON object instead.
-* Deprecated OutputPage::readOnlyPage() and OutputPage::rateLimited().
-  Also, the former will now throw an MWException if called with one or more
-  arguments.
-* Removed hitcounters and associated code.
-* The "temp" zone of the upload respository is now considered private. If it
-  already exists (such as under the images/ directory), please make sure that
-  the directory is not web readable (e.g. via a .htaccess file).
-* BREAKING CHANGE: In the XML dump format used by Special:Export and
-  dumpBackup.php, the <model> and <format> tags now apprear before the <text>
-  tag, instead of after the <text> and <sha1> tags.
-  The new schema version is 0.10, the new schema URI is:
-  https://www.mediawiki.org/xml/export-0.10.xsd
-* MWFunction::call() and MWFunction::callArray() were removed, having being
-  deprecated in 1.22.
-* Deprecated the getInternalLinkAttributes, getInternalLinkAttributesObj,
-  and getInternalLinkAttributes methods in Linker, and removed
-  getExternalLinkAttributes method, which was deprecated in MediaWiki 1.18.
-* Removed Sites class, which was deprecated in 1.21 and replaced by SiteSQLStore.
-* Added wgRelevantArticleId to the client-side config, for use on special pages.
-* Deprecated the TitleIsCssOrJsPage hook. Superseded by the
-  ContentHandlerDefaultModelFor hook since MediaWiki 1.21.
-* Deprecated the TitleIsWikitextPage hook. Superseded by the
-  ContentHandlerDefaultModelFor hook since MediaWiki 1.21.
-* Changed parsing of variables in schema (.sql) files:
-** The substituted values are no longer parsed. (Formerly, several passes
-   were made for each variable, so depending on the order in which variables
-   were defined, variables might have been found inside encoded values. This
-   is no longer the case.)
-** Variables are no longer string encoded when the /*$var*/ syntax is used.
-   If string encoding is necessary, use the '{$var}' syntax instead.
-** Variable names must only consist of one or more of the characters
-   "A-Za-z0-9_".
-** In source text of the form '{$A}'{$B}' or `{$A}`{$B}`, where variable A
-   does not exist yet variable B does, the latter may not be replaced.
-   However, this difference is unlikely to arise in practice.
-* (T67278) RFC, PMID, and ISBN "magic links" must be surrounded by non-word
-  characters on both sides.
-* The FormatAutocomments hook will now receive $pre and $post as booleans,
-  rather than as strings that must be prepended or appended to $comment.
-* (T30950, T31025) RFC, PMID, and ISBN "magic links" can no longer contain
-  newlines; but they can contain &nbsp; and other non-newline whitespace.
-* The 'mediawiki.action.edit' ResourceLoader module no longer generates the edit
-  toolbar, which has been moved to a separate 'mediawiki.toolbar' module. If you
-  relied on this behavior, update your scripts' dependencies.
-* HTMLForm's 'vform' display style has been separated to a subclass. Therefore:
-  * HTMLForm::isVForm() is now deprecated.
-  * You can no longer do this:
-      $form = new HTMLForm( … );
-      $form->setDisplayFormat( 'vform' ); // throws exception
-    Instead, do this:
-      $form = HTMLForm::factory( 'vform', … );
-* Deprecated Revision methods getRawUser(), getRawUserText() and getRawComment().
-* BREAKING CHANGE: mediawiki.user.generateRandomSessionId:
-  The alphabet of the prior string returned was A-Za-z0-9 and now it is 0-9A-F
-* (T87504) Avoid serving SVG background-images in CSS for Opera 12, which
-  renders them incorrectly when combined with border-radius or background-size.
-* Removed maintenance script dumpSisterSites.php.
-* DatabaseBase class constructors must be called using the array argument style.
-  Ideally, DatabaseBase:factory() should be used instead in most cases.
-* Deprecated ParserOutput::addSecondaryDataUpdate and ParserOutput::getSecondaryDataUpdates.
-  This is a hard deprecation, with getSecondaryDataUpdates returning an empty array and
-  addSecondaryDataUpdate throwing an exception. These functions will be removed in 1.26,
-  since they interfere with caching of ParserOutput objects.
-* Introduced new hook 'SecondaryDataUpdates' that allows extensions to inject custom updates.
-* Introduced new hook 'OpportunisticLinksUpdate' that allows extensions to perform
-  updates when a page is re-rendered.
-* EditPage::attemptSave has been modified not to call handleStatus itself and
-  instead just returns the Status object. Extension calling it should be aware of
-  this.
-* Removed class DBObject. (unused since 1.10)
-* wfDiff() is deprecated.
-* The -m (maximum replication lag) option of refreshLinks.php was removed.
-  It had no effect since MediaWiki 1.18 and should be removed from any cron
-  jobs or similar scripts you may have set up.
-* (T85864) The following messages no longer support raw html: redirectto,
-  thisisdeleted, viewdeleted, editlink, retrievedfrom, version-poweredby-others,
-  retrievedfrom, thisisdeleted, viewsourcelink, lastmodifiedat, laggedslavemode,
-  protect-summary-cascade
-* All BloomCache related code has been removed. This was largely experimental.
-* $wgResourceModuleSkinStyles no longer supports per-module local or remote paths. They
-  can only be set for the entire skin.
-* Removed global function swap(). (deprecated since 1.24)
-* Deprecated the ".php5" file extension entry points. Refer to the ".php" files
-  instead. If you want ".php5" URLs to continue to work, set up redirects. In
-  Apache, this can be done by enabling mod_rewrite and adding the following
-  rules to your configuration:
-
-    RewriteEngine On
-    RewriteBase /
-    RewriteRule ^(.*)\.php5 $1.php [R=301,L]
-
-* The global importScriptURI and importStylesheetURI functions, as well as the
-  loadedScripts object, from wikibits.js (deprecated since 1.17) now emit
-  warnings through mw.log.warn when accessed.
-
-
-== Compatibility ==
-
-MediaWiki 1.25 requires PHP 5.3.3 or later. There is experimental support for
-HHVM 3.3.0.
-
-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.25 has several database changes since 1.24, 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.24.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 8a08f02..cd89948 100644 (file)
@@ -9,12 +9,21 @@ MediaWiki 1.26 is an alpha-quality branch and is not recommended for use in
 production.
 
 === Configuration changes in 1.26 ===
+* $wgEnableParserCache was deprecated, set $wgParserCacheType to CACHE_NONE
+  instead if you want to disable the parser cache.
 
 === New features in 1.26 ===
 * Change tags can now be hidden in the interface by disabling the associated
   "tag-<id>" interface message.
+* ':' (colon) is now invalid in usernames for new accounts. Existing accounts
+  are not affected.
+* Added a new hook, 'LogException', to log exceptions in nonstandard ways.
 
 ==== External libraries ====
+* Update es5-shim from v4.0.0 to v4.1.5.
+* Update json2 from revision 2014-02-04 to 2015-05-03.
+* Update Sinon.JS from 1.10.3 to 1.15.0.
+* Added mediawiki/at-ease 1.0.0
 
 === Bug fixes in 1.26 ===
 * (bug 51283) load.php sometimes sends 304 response without full headers
@@ -35,21 +44,44 @@ 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 Bugzilla reports.
 
-* BREAKING CHANGE (T91240): Language code "bh" is not valid in ISO 639 and
-  was removed, so it will no longer alias to "bho". If you used "bh" as your
-  wiki's $wgLanguageCode, you must update your configuration.
 
 === Other changes in 1.26 ===
 * ChangeTags::tagDescription() will return false if the interface message
   for the tag is disabled.
 * Added PageHistoryPager::doBatchLookups hook.
+* Added ParserCacheSaveComplete to ParserCache
 * supportsDirectEditing and supportsDirectApiEditing methods added to
-ContentHandler, to provide a way for ApiEditPage and EditPage to check
-if direct editing of content is allowed. These methods return false,
-by default for the ContentHandler base class and true for TextContentHandler
-and it's derivative classes (everything in core). For Content types that
-do not support direct editing, an alternative mechanism should be provided
-for editing, such as action overrides or specific api modules.
+  ContentHandler, to provide a way for ApiEditPage and EditPage to check
+  if direct editing of content is allowed. These methods return false,
+  by default for the ContentHandler base class and true for TextContentHandler
+  and it's derivative classes (everything in core). For Content types that
+  do not support direct editing, an alternative mechanism should be provided
+  for editing, such as action overrides or specific api modules.
+* mediaWiki.confirmCloseWindow now returns an object of functions, instead of
+  one function. The callback can't be called directly any more. The callback
+  function is replaced with confirmCloseWindow.release().
+* BREAKING CHANGE: Added an optional ResouceLoaderContext parameter to
+  ResourceLoaderModule::getDependencies(). Extension classes that override that
+  method should be updated. If they aren't updated, PHP Strict standards
+  warnings will appear when E_STRICT error reporting is enabled. Note: in the
+  near future, this parameter will probably become non-optional.
+* Removed maintenance script deleteImageMemcached.php.
+* MWFunction::newObj() was removed (deprecated in 1.25).
+  ObjectFactory::getObjectFromSpec() should be used instead.
+* The parser will no longer randomize the string it uses to mark the place of
+  items that were stripped during parsing. It will use a fixed string instead.
+  This causes the parser to re-use the regular expressions it uses to search
+  and replace markers rather than generate novel expressions on each parse.
+  Re-using regular expressions will improve performance on HHVM and the
+  forthcoming PHP 7. The interfaces changes accompanying this change are:
+  - Parser::getRandomString() and Parser::uniqPrefix() have been deprecated.
+  - The $uniq_prefix argument for Parser::extractTagsAndParams() and the
+    $prefix argument for StripState::_construct() are deprecated and their
+    value is ignored.
+* wfSuppressWarnings() and wfRestoreWarnings() were split into a separate library,
+  mediawiki/at-ease, and are now deprecated. Callers should use
+  MediaWiki\suppressWarnings() and MediaWiki\restoreWarnings() directly.
+
 
 == Compatibility ==
 
diff --git a/api.php b/api.php
index 7775158..af7c452 100644 (file)
--- a/api.php
+++ b/api.php
@@ -35,12 +35,10 @@ use MediaWiki\Logger\LegacyLogger;
 // So extensions (and other code) can check whether they're running in API mode
 define( 'MW_API', true );
 
-// Bail if PHP is too low
-if ( !function_exists( 'version_compare' ) || version_compare( PHP_VERSION, '5.3.3' ) < 0 ) {
-       // We need to use dirname( __FILE__ ) here cause __DIR__ is PHP5.3+
-       require dirname( __FILE__ ) . '/includes/PHPVersionError.php';
-       wfPHPVersionError( 'api.php' );
-}
+// 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+.
+require_once dirname( __FILE__ ) . '/includes/PHPVersionCheck.php';
+wfEntryPointCheck( 'api.php' );
 
 require __DIR__ . '/includes/WebStart.php';
 
@@ -90,18 +88,9 @@ if ( $processor ) {
        $processor->execute();
 }
 
-if ( function_exists( 'fastcgi_finish_request' ) ) {
-       fastcgi_finish_request();
-}
-
-// Execute any deferred updates
-DeferredUpdates::doUpdates();
-
 // Log what the user did, for book-keeping purposes.
 $endtime = microtime( true );
 
-wfLogProfilingData();
-
 // Log the request
 if ( $wgAPIRequestLog ) {
        $items = array(
@@ -130,7 +119,5 @@ if ( $wgAPIRequestLog ) {
        wfDebug( "Logged API request to $wgAPIRequestLog\n" );
 }
 
-// Shut down the database.  foo()->bar() syntax is not supported in PHP4: we won't ever actually
-// get here to worry about whether this should be = or =&, but the file has to parse properly.
-$lb = wfGetLBFactory();
-$lb->shutdown();
+$mediawiki = new MediaWiki();
+$mediawiki->doPostOutputShutdown( 'fast' );
index 6c623a3..26d954a 100644 (file)
@@ -8,6 +8,7 @@ $wgAutoloadLocalClasses = array(
        'AbstractContent' => __DIR__ . '/includes/content/AbstractContent.php',
        'Action' => __DIR__ . '/includes/actions/Action.php',
        'ActiveUsersPager' => __DIR__ . '/includes/specials/SpecialActiveusers.php',
+       'ActivityUpdateJob' => __DIR__ . '/includes/jobqueue/jobs/ActivityUpdateJob.php',
        'AjaxDispatcher' => __DIR__ . '/includes/AjaxDispatcher.php',
        'AjaxResponse' => __DIR__ . '/includes/AjaxResponse.php',
        'AllMessagesTablePager' => __DIR__ . '/includes/specials/SpecialAllMessages.php',
@@ -60,6 +61,7 @@ $wgAutoloadLocalClasses = array(
        'ApiModuleManager' => __DIR__ . '/includes/api/ApiModuleManager.php',
        'ApiMove' => __DIR__ . '/includes/api/ApiMove.php',
        'ApiOpenSearch' => __DIR__ . '/includes/api/ApiOpenSearch.php',
+       'ApiOpenSearchFormatJson' => __DIR__ . '/includes/api/ApiOpenSearch.php',
        'ApiOptions' => __DIR__ . '/includes/api/ApiOptions.php',
        'ApiPageSet' => __DIR__ . '/includes/api/ApiPageSet.php',
        'ApiParamInfo' => __DIR__ . '/includes/api/ApiParamInfo.php',
@@ -309,14 +311,11 @@ $wgAutoloadLocalClasses = array(
        'DeferredUpdates' => __DIR__ . '/includes/deferred/DeferredUpdates.php',
        'DeleteAction' => __DIR__ . '/includes/actions/DeleteAction.php',
        'DeleteArchivedFiles' => __DIR__ . '/maintenance/deleteArchivedFiles.php',
-       'DeleteArchivedFilesImplementation' => __DIR__ . '/maintenance/deleteArchivedFiles.inc',
        'DeleteArchivedRevisions' => __DIR__ . '/maintenance/deleteArchivedRevisions.php',
-       'DeleteArchivedRevisionsImplementation' => __DIR__ . '/maintenance/deleteArchivedRevisions.inc',
        'DeleteBatch' => __DIR__ . '/maintenance/deleteBatch.php',
        'DeleteDefaultMessages' => __DIR__ . '/maintenance/deleteDefaultMessages.php',
        'DeleteEqualMessages' => __DIR__ . '/maintenance/deleteEqualMessages.php',
        'DeleteFileOp' => __DIR__ . '/includes/filebackend/FileOp.php',
-       'DeleteImageCache' => __DIR__ . '/maintenance/deleteImageMemcached.php',
        'DeleteLogFormatter' => __DIR__ . '/includes/logging/DeleteLogFormatter.php',
        'DeleteOldRevisions' => __DIR__ . '/maintenance/deleteOldRevisions.php',
        'DeleteOrphanedRevisions' => __DIR__ . '/maintenance/deleteOrphanedRevisions.php',
@@ -608,6 +607,7 @@ $wgAutoloadLocalClasses = array(
        'LCStoreCDB' => __DIR__ . '/includes/cache/LocalisationCache.php',
        'LCStoreDB' => __DIR__ . '/includes/cache/LocalisationCache.php',
        'LCStoreNull' => __DIR__ . '/includes/cache/LocalisationCache.php',
+       'LCStoreStaticArray' => __DIR__ . '/includes/cache/LCStoreStaticArray.php',
        'LangMemUsage' => __DIR__ . '/maintenance/language/langmemusage.php',
        'Language' => __DIR__ . '/languages/Language.php',
        'LanguageAr' => __DIR__ . '/languages/classes/LanguageAr.php',
@@ -707,20 +707,8 @@ $wgAutoloadLocalClasses = array(
        'MWDocGen' => __DIR__ . '/maintenance/mwdocgen.php',
        'MWException' => __DIR__ . '/includes/exception/MWException.php',
        'MWExceptionHandler' => __DIR__ . '/includes/exception/MWExceptionHandler.php',
-       'MWFunction' => __DIR__ . '/includes/utils/MWFunction.php',
        'MWHookException' => __DIR__ . '/includes/Hooks.php',
        'MWHttpRequest' => __DIR__ . '/includes/HttpFunctions.php',
-       'MWLogger' => __DIR__ . '/includes/debug/logger/Shims.php',
-       'MWLoggerFactory' => __DIR__ . '/includes/debug/logger/Shims.php',
-       'MWLoggerLegacyLogger' => __DIR__ . '/includes/debug/logger/Shims.php',
-       'MWLoggerLegacySpi' => __DIR__ . '/includes/debug/logger/Shims.php',
-       'MWLoggerMonologHandler' => __DIR__ . '/includes/debug/logger/monolog/Shims.php',
-       'MWLoggerMonologLegacyFormatter' => __DIR__ . '/includes/debug/logger/monolog/Shims.php',
-       'MWLoggerMonologProcessor' => __DIR__ . '/includes/debug/logger/monolog/Shims.php',
-       'MWLoggerMonologSpi' => __DIR__ . '/includes/debug/logger/monolog/Shims.php',
-       'MWLoggerMonologSyslogHandler' => __DIR__ . '/includes/debug/logger/monolog/Shims.php',
-       'MWLoggerNullSpi' => __DIR__ . '/includes/debug/logger/Shims.php',
-       'MWLoggerSpi' => __DIR__ . '/includes/debug/logger/Shims.php',
        'MWMemcached' => __DIR__ . '/includes/objectcache/MemcachedClient.php',
        'MWMessagePack' => __DIR__ . '/includes/libs/MWMessagePack.php',
        'MWNamespace' => __DIR__ . '/includes/MWNamespace.php',
@@ -824,6 +812,7 @@ $wgAutoloadLocalClasses = array(
        'NullJob' => __DIR__ . '/includes/jobqueue/jobs/NullJob.php',
        'NullLockManager' => __DIR__ . '/includes/filebackend/lockmanager/LockManager.php',
        'NullRepo' => __DIR__ . '/includes/filerepo/NullRepo.php',
+       'OOUIHTMLForm' => __DIR__ . '/includes/htmlform/OOUIHTMLForm.php',
        'ORAField' => __DIR__ . '/includes/db/DatabaseOracle.php',
        'ORAResult' => __DIR__ . '/includes/db/DatabaseOracle.php',
        'ORMIterator' => __DIR__ . '/includes/db/ORMIterator.php',
@@ -886,6 +875,7 @@ $wgAutoloadLocalClasses = array(
        'Password' => __DIR__ . '/includes/password/Password.php',
        'PasswordError' => __DIR__ . '/includes/password/PasswordError.php',
        'PasswordFactory' => __DIR__ . '/includes/password/PasswordFactory.php',
+       'PasswordPolicyChecks' => __DIR__ . '/includes/password/PasswordPolicyChecks.php',
        'PatchSql' => __DIR__ . '/maintenance/patchSql.php',
        'PathRouter' => __DIR__ . '/includes/PathRouter.php',
        'PathRouterPatternReplacer' => __DIR__ . '/includes/PathRouter.php',
@@ -1005,9 +995,12 @@ $wgAutoloadLocalClasses = array(
        'ResourceLoaderFilePath' => __DIR__ . '/includes/resourceloader/ResourceLoaderFilePath.php',
        'ResourceLoaderImage' => __DIR__ . '/includes/resourceloader/ResourceLoaderImage.php',
        'ResourceLoaderImageModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderImageModule.php',
+       'ResourceLoaderJqueryMsgModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderJqueryMsgModule.php',
        'ResourceLoaderLanguageDataModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderLanguageDataModule.php',
        'ResourceLoaderLanguageNamesModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderLanguageNamesModule.php',
        'ResourceLoaderModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderModule.php',
+       'ResourceLoaderOOUIImageModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderOOUIImageModule.php',
+       'ResourceLoaderRawFileModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderRawFileModule.php',
        'ResourceLoaderSiteModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderSiteModule.php',
        'ResourceLoaderSkinModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderSkinModule.php',
        'ResourceLoaderSpecialCharacterDataModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderSpecialCharacterDataModule.php',
@@ -1304,6 +1297,7 @@ $wgAutoloadLocalClasses = array(
        'UserMailer' => __DIR__ . '/includes/mail/UserMailer.php',
        'UserNotLoggedIn' => __DIR__ . '/includes/exception/UserNotLoggedIn.php',
        'UserOptions' => __DIR__ . '/maintenance/userOptions.inc',
+       'UserPasswordPolicy' => __DIR__ . '/includes/password/UserPasswordPolicy.php',
        'UserRightsProxy' => __DIR__ . '/includes/UserRightsProxy.php',
        'UsercreateTemplate' => __DIR__ . '/includes/templates/Usercreate.php',
        'UserloginTemplate' => __DIR__ . '/includes/templates/Userlogin.php',
@@ -1374,7 +1368,7 @@ $wgAutoloadLocalClasses = array(
        'Xml' => __DIR__ . '/includes/Xml.php',
        'XmlDumpWriter' => __DIR__ . '/includes/Export.php',
        'XmlJsCode' => __DIR__ . '/includes/Xml.php',
-       'XmlSelect' => __DIR__ . '/includes/Xml.php',
+       'XmlSelect' => __DIR__ . '/includes/XmlSelect.php',
        'XmlTypeCheck' => __DIR__ . '/includes/libs/XmlTypeCheck.php',
        'ZhConverter' => __DIR__ . '/languages/classes/LanguageZh.php',
        'ZipDirectoryReader' => __DIR__ . '/includes/utils/ZipDirectoryReader.php',
index 6dc72e7..fba1a82 100644 (file)
                "ext-iconv": "*",
                "leafo/lessphp": "0.5.0",
                "liuggio/statsd-php-client": "1.0.12",
-               "oojs/oojs-ui": "0.11.1",
+               "mediawiki/at-ease": "1.0.0",
+               "oojs/oojs-ui": "0.11.4",
                "php": ">=5.3.3",
                "psr/log": "1.0.0",
                "wikimedia/cdb": "1.0.1",
-               "wikimedia/composer-merge-plugin": "1.0.0",
+               "wikimedia/assert": "0.2.2",
+               "wikimedia/composer-merge-plugin": "1.1.0",
                "wikimedia/utfnormal": "1.0.2",
-               "zordius/lightncandy": "0.18"
+               "zordius/lightncandy": "0.21"
        },
        "require-dev": {
                "jakub-onderka/php-parallel-lint": "~0.8",
                "justinrainbow/json-schema": "~1.3",
-               "phpunit/phpunit": "~4.5",
+               "phpunit/phpunit": "3.7.37",
                "mediawiki/mediawiki-codesniffer": "0.1.0"
        },
        "suggest": {
@@ -49,7 +51,7 @@
        },
        "scripts": {
                "lint": "parallel-lint --exclude vendor",
-               "phpcs": "phpcs $PHPCS_ARGS -s --standard=vendor/mediawiki/mediawiki-codesniffer/MediaWiki --ignore=vendor --encoding=utf-8 --extensions=php,php5,inc,sample",
+               "phpcs": "phpcs $PHPCS_ARGS -s --standard=vendor/mediawiki/mediawiki-codesniffer/MediaWiki --ignore=vendor,node_modules --encoding=utf-8 --extensions=php,php5,inc,sample",
                "test": [
                        "composer lint",
                        "composer phpcs"
index 8e8b23b..d7d9e47 100644 (file)
@@ -3,6 +3,11 @@
        "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.",
                "type": {
                        "type": "string",
                        "description": "The extension's type, as an index to $wgExtensionCredits.",
-                       "default": "other",
-                       "enum": [
-                               "api",
-                               "antispam",
-                               "datavalues",
-                               "media",
-                               "parserhook",
-                               "semantic",
-                               "skin",
-                               "specialpage",
-                               "variable",
-                               "other"
-                       ]
+                       "default": "other"
                },
                "author": {
                        "type": [
@@ -37,8 +30,7 @@
                        "description": "Extension's authors.",
                        "items": {
                                "type": "string"
-                       },
-                       "additionalItems": false
+                       }
                },
                "version": {
                        "type": "string",
                                }
                        }
                },
-               "ResourceLoaderModules": {
+               "ResourceModules": {
                        "type": "object",
                        "description": "ResourceLoader modules to register",
                        "additionalProperties": false,
                        "patternProperties": {
-                               "^[a-zA-Z0-9\\.]+$": {
+                               "^[a-zA-Z0-9-\\.]+$": {
                                        "type": "object",
                                        "description": "A single ResourceLoader module descriptor",
                                        "properties": {
                                                        "description": "Equivalent of remoteBasePath, but relative to $wgExtensionAssetsPath"
                                                },
                                                "scripts": {
-                                                       "type": "array",
+                                                       "type": ["string", "array"],
                                                        "description": "Scripts to always include (array of file paths)",
                                                        "items": {
                                                                "type": "string"
                                                        }
                                                },
                                                "debugScripts": {
-                                                       "type": "array",
+                                                       "type": ["string", "array"],
                                                        "description": "Scripts to include in debug contexts",
                                                        "items": {
                                                                "type": "string"
                                                        }
                                                },
                                                "loaderScripts": {
-                                                       "type": "array",
+                                                       "type": ["string", "array"],
                                                        "description": "Scripts to include in the startup module",
                                                        "items": {
                                                                "type": "string"
                                                        }
                                                },
                                                "dependencies": {
-                                                       "type": "array",
+                                                       "type": ["string", "array"],
                                                        "description": "Modules which must be loaded before this module",
                                                        "items": {
                                                                "type": "string"
                                                        }
                                                },
                                                "styles": {
-                                                       "type": "array",
+                                                       "type": ["string", "array", "object"],
                                                        "description": "Styles to always load",
                                                        "items": {
                                                                "type": "string"
                                                        }
                                                },
                                                "messages": {
-                                                       "type": "array",
+                                                       "type": ["string", "array"],
                                                        "description": "Messages to always load",
                                                        "items": {
                                                                "type": "string"
                        "type": "object",
                        "description": "Rate limits"
                },
-               "ParserTestFiles": {
-                       "type": "array",
-                       "description": "Parser test files to run"
-               },
                "RecentChangesFlags": {
                        "type": "object",
                        "description": "Flags (letter symbols) shown on RecentChanges pages"
                        "type": "object",
                        "description": "SpecialPages implemented in this extension (mapping of page name to class name)"
                },
-               "SpecialPageGroups": {
-                       "type": "object",
-                       "description": "Mapping of special page name to group it belongs to"
-               },
                "AutoloadClasses": {
                        "type": "object"
                },
                "ValidSkinNames": {
                        "type": "object"
                },
+               "SkinOOUIThemes": {
+                       "type": "object"
+               },
                "callback": {
                        "type": [
                                "array",
index 6e00363..fda00f9 100644 (file)
@@ -52,8 +52,8 @@ An extension writer, or a local admin, will often add custom code to the
 function -- with or without a global variable. For example, someone wanting
 email notification when an article is shown may add:
 
-    function showAnArticle( $article ) {
-        global $wgReverseTitle, $wgCapitalizeTitle, $wgNotifyArticle;
+       function showAnArticle( $article ) {
+               global $wgReverseTitle, $wgCapitalizeTitle, $wgNotifyArticle;
 
                if ( $wgReverseTitle ) {
                        wfReverseTitle( $article );
@@ -247,6 +247,12 @@ $user: the User object about to be created (read-only, incomplete)
 $autoblockip: The IP going to be autoblocked.
 $block: The block from which the autoblock is coming.
 
+'AbortChangePassword': Return false to cancel password change.
+$user: the User object to which the password change is occuring
+$mOldpass: the old password provided by the user
+$newpass: the new password provided by the user
+&$abortMsg: the message identifier for abort reason
+
 'AbortDiffCache': Can be used to cancel the caching of a diff.
 &$diffEngine: DifferenceEngine object
 
@@ -259,32 +265,24 @@ $rc: The current RecentChange object.
 $user: the User object being authenticated against
 $password: the password being submitted, not yet checked for validity
 &$retval: a LoginForm class constant to return from authenticateUserData();
-          default is LoginForm::ABORTED. Note that the client may be using
-          a machine API rather than the HTML user interface.
-&$msg: the message identifier for abort reason (new in 1.18, not available before 1.18)
+  default is LoginForm::ABORTED. Note that the client may be using a machine
+  API rather than the HTML user interface.
+&$msg: the message identifier for abort reason (new in 1.18, not available
+  before 1.18)
 
 'AbortNewAccount': Return false to cancel explicit account creation.
 $user: the User object about to be created (read-only, incomplete)
 &$msg: out parameter: HTML to display on abort
-&$status: out parameter: Status object to return, replaces the older $msg param (added in 1.23)
-          Create the object with Status::newFatal() to ensure proper API error messages
-          are returned when creating account through API clients.
+&$status: out parameter: Status object to return, replaces the older $msg param
+  (added in 1.23)
+  Create the object with Status::newFatal() to ensure proper API error
+  messages are returned when creating account through API clients.
 
-'AbortTalkPageEmailNotification': Return false to cancel talk page email notification
+'AbortTalkPageEmailNotification': Return false to cancel talk page email
+notification
 $targetUser: the user whom to send talk page email notification
 $title: the page title
 
-'SendWatchlistEmailNotification': Return true to send watchlist email notification
-$targetUser: the user whom to send watchlist email notification
-$title: the page title
-$enotif: EmailNotification object
-
-'AbortChangePassword': Return false to cancel password change.
-$user: the User object to which the password change is occuring
-$mOldpass: the old password provided by the user
-$newpass: the new password provided by the user
-&$abortMsg: the message identifier for abort reason
-
 'ActionBeforeFormDisplay': Before executing the HTMLForm object.
 $name: name of the action
 &$form: HTMLForm object
@@ -300,7 +298,8 @@ $article: Article object
 $user: the User object that was created. (Parameter added in 1.7)
 $byEmail: true when account was created "by email" (added in 1.12)
 
-'AddNewAccountApiForm': Allow modifying internal login form when creating an account via API.
+'AddNewAccountApiForm': Allow modifying internal login form when creating an
+account via API.
 $apiModule: the ApiCreateAccount module calling
 $loginForm: the LoginForm used
 
@@ -326,7 +325,7 @@ $pageInfo: associative array of page information
 just before adding its HTML to parser output.
 $parser: Parser object that called the hook
 $ig: Gallery, an object of one of the gallery classes (inheriting from
-ImageGalleryBase)
+  ImageGalleryBase)
 $html: HTML generated by the gallery
 
 'AlternateEdit': Before checking if a user can edit a page and before showing
@@ -335,12 +334,12 @@ $editPage: the EditPage object
 
 'AlternateEditPreview': Before generating the preview of the page when editing
 ( EditPage::getPreviewText() ).
+Return false and set $previewHTML and $parserOutput to output custom page
+preview HTML.
 $editPage: the EditPage object
 &$content: the Content object for the text field from the edit page
 &$previewHTML: Text to be placed into the page for the preview
 &$parserOutput: the ParserOutput object for the preview
-return false and set $previewHTML and $parserOutput to output custom page
-preview HTML.
 
 'AlternateUserMailer': Called before mail is sent so that mail could be logged
 (or something else) instead of using PEAR or PHP's mail(). Return false to skip
@@ -366,25 +365,26 @@ false and set a message to cancel the request.
 $module: Module object
 $user: Current user
 &$message: API usage message to die with, as a message key or array
-as accepted by ApiBase::dieUsageMsg.
+  as accepted by ApiBase::dieUsageMsg.
 
 'APIEditBeforeSave': 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.
-$editPage : the EditPage object
-$text : the new text of the article (has yet to be saved)
-&$resultArr : data in this array will be added to the API result
+$editPage: the EditPage object
+$text: the new text of the article (has yet to be saved)
+&$resultArr: data in this array will be added to the API result
 
 'ApiFeedContributions::feedItem': Called to convert the result of ContribsPager
 into a FeedItem instance that ApiFeedContributions can consume. Implementors of
 this hook may cancel the hook to signal that the item is not viewable in the
 provided context.
-$row: A row of data from ContribsPager.  The set of data returned by ContribsPager
- can be adjusted by handling the ContribsPager::reallyDoQuery hook.
+$row: A row of data from ContribsPager.  The set of data returned by
+  ContribsPager can be adjusted by handling the ContribsPager::reallyDoQuery
+  hook.
 $context: An IContextSource implementation.
-&$feedItem: Set this to a FeedItem instance if the callback can handle the provided
- row. This is provided to the hook as a null, if it is non null then another callback
- has already handled the hook.
+&$feedItem: Set this to a FeedItem instance if the callback can handle the
+  provided row. This is provided to the hook as a null, if it is non null then
 another callback has already handled the hook.
 
 'ApiFormatHighlight': Use to syntax-highlight API pretty-printed output. When
 highlighting, add output to $context->getOutput() and return false.
@@ -407,12 +407,14 @@ Use this hook to modify a module's description.
 $module: ApiBase Module object
 &$msg: Array of Message objects
 
-'APIGetParamDescription': DEPRECATED! Use APIGetParamDescriptionMessages instead.
+'APIGetParamDescription': DEPRECATED! Use APIGetParamDescriptionMessages
+instead.
 Use this hook to modify a module's parameter descriptions.
 &$module: ApiBase Module object
 &$desc: Array of parameter descriptions
 
-'APIGetParamDescriptionMessages': Use this hook to modify a module's parameter descriptions.
+'APIGetParamDescriptionMessages': Use this hook to modify a module's parameter
+descriptions.
 $module: ApiBase Module object
 &$msg: Array of arrays of Message objects
 
@@ -420,23 +422,30 @@ $module: ApiBase Module object
 $module: ApiBase Module object
 &$help: Array of HTML strings to be joined for the output.
 $options: Array Options passed to ApiHelp::getHelp
+&$tocData: Array If a TOC is being generated, this array has keys as anchors in
+  the page and values as for Linker::generateTOC().
 
 'ApiMain::moduleManager': Called when ApiMain has finished initializing its
 module manager. Can be used to conditionally register API modules.
 $moduleManager: ApiModuleManager Module manager instance
 
+'ApiMain::onException': Called by ApiMain::executeActionWithErrorHandling() when
+an exception is thrown during API action execution.
+$apiMain: Calling ApiMain instance.
+$e: Exception object.
+
 '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
-array:
-  - title: Title object.
-  - redirect from: Title or null.
-  - extract: Description for this result.
-  - extract trimmed: If truthy, the extract will not be trimmed to
-    $wgOpenSearchDescriptionLength.
-  - image: Thumbnail for this result. Value is an array with subkeys 'source'
-    (url), 'width', 'height', 'alt', 'align'.
-  - url: Url for the given title.
+  array:
+    - title: Title object.
+    - redirect from: Title or null.
+    - extract: Description for this result.
+    - extract trimmed: If truthy, the extract will not be trimmed to
+      $wgOpenSearchDescriptionLength.
+    - image: Thumbnail for this result. Value is an array with subkeys 'source'
+      (url), 'width', 'height', 'alt', 'align'.
+    - url: Url for the given title.
 
 'ApiQuery::moduleManager': Called when ApiQuery has finished initializing its
 module manager. Can be used to conditionally register API query modules.
@@ -462,6 +471,19 @@ just add your callback to the $tokenFunctions array and return true (returning
 false makes no sense).
 $tokenFunctions: array(action => callback)
 
+'APIQueryRecentChangesTokens': DEPRECATED! Use ApiQueryTokensRegisterTypes
+instead.
+Use this hook to add custom tokens to list=recentchanges. Every token has an
+action, which will be used in the rctoken parameter and in the output
+(actiontoken="..."), and a callback function which should return the token, or
+false if the user isn't allowed to obtain it. The prototype of the callback
+function is func($pageid, $title, $rc), where $pageid is the page ID of the
+page associated to the revision the token is requested for, $title the
+associated Title object and $rc the associated RecentChange object. In the
+hook, just add your callback to the $tokenFunctions array and return true
+(returning false makes no sense).
+$tokenFunctions: array(action => callback)
+
 'APIQueryRevisionsTokens': DEPRECATED! Use ApiQueryTokensRegisterTypes instead.
 Use this hook to add custom tokens to prop=revisions. Every token has an
 action, which will be used in the rvtoken parameter and in the output
@@ -474,18 +496,6 @@ just add your callback to the $tokenFunctions array and return true (returning
 false makes no sense).
 $tokenFunctions: array(action => callback)
 
-'APIQueryRecentChangesTokens': DEPRECATED! Use ApiQueryTokensRegisterTypes instead.
-Use this hook to add custom tokens to list=recentchanges. Every token has an
-action, which will be used in the rctoken parameter and in the output
-(actiontoken="..."), and a callback function which should return the token, or
-false if the user isn't allowed to obtain it. The prototype of the callback
-function is func($pageid, $title, $rc), where $pageid is the page ID of the
-page associated to the revision the token is requested for, $title the
-associated Title object and $rc the associated RecentChange object. In the
-hook, just add your callback to the $tokenFunctions array and return true
-(returning false makes no sense).
-$tokenFunctions: array(action => callback)
-
 'APIQuerySiteInfoGeneralInfo': Use this hook to add extra information to the
 sites general information.
 $module: the current ApiQuerySiteInfo module
@@ -510,11 +520,6 @@ your callback to the $tokenFunctions array and return true (returning false
 makes no sense).
 $tokenFunctions: array(action => callback)
 
-'ApiMain::onException': Called by ApiMain::executeActionWithErrorHandling() when
-an exception is thrown during API action execution.
-$apiMain: Calling ApiMain instance.
-$e: Exception object.
-
 'ApiRsdServiceApis': Add or remove APIs from the RSD services list. Each service
 should have its own entry in the $apis array and have a unique name, passed as
 key for the array that represents the service data. In this data array, the
@@ -524,17 +529,18 @@ key-value-pair identified by the apiLink key is required.
 'ApiTokensGetTokenTypes': DEPRECATED! Use ApiQueryTokensRegisterTypes instead.
 Use this hook to extend action=tokens with new token types.
 &$tokenTypes: supported token types in format 'type' => callback function
-used to retrieve this type of tokens.
+  used to retrieve this type of tokens.
 
 'Article::MissingArticleConditions': Before fetching deletion & move log entries
 to display a message of a non-existing page being deleted/moved, give extensions
 a chance to hide their (unrelated) log entries.
 &$conds: Array of query conditions (all of which have to be met; conditions will
-AND in the final query)
+  AND in the final query)
 $logTypes: Array of log types being queried
 
-'ArticleAfterFetchContent': After fetching content of an article from the
-database. DEPRECATED, use ArticleAfterFetchContentObject instead.
+'ArticleAfterFetchContent': DEPRECATED! Use ArticleAfterFetchContentObject
+instead.
+After fetching content of an article from the database.
 $article: the article (object) being loaded from the database
 &$content: the content (string) of the article
 
@@ -554,6 +560,13 @@ this to change the content in this area or how it is loaded.
 $diffEngine: the DifferenceEngine
 $output: the OutputPage object
 
+'ArticleContentViewCustom': Allows to output the text of the article in a
+different format than wikitext. Note that it is preferable to implement proper
+handing for a custom data type using the ContentHandler facility.
+$content: content of the page, as a Content object
+$title: title of the page
+$output: reference to $wgOut
+
 'ArticleDelete': Before an article is deleted.
 $wikiPage: the WikiPage (object) being deleted
 $user: the user (object) deleting the article
@@ -584,7 +597,7 @@ $recipient: User (object) who's talk page was edited
 article has been changed.
 $wikiPage: the WikiPage (object)
 $editInfo: data holder that includes the parser output ($editInfo->output) for
-that page after the change
+  that page after the change
 $changed: bool for if the page was changed
 
 'ArticleEditUpdatesDeleteFromRecentchanges': Before deleting old entries from
@@ -597,8 +610,8 @@ $title: Title (object) used to create the article object
 $article: Article (object) that will be returned
 $context: IContextSource (object)
 
-'ArticleInsertComplete': After a new article is created. DEPRECATED, use
-PageContentInsertComplete.
+'ArticleInsertComplete': DEPRECATED! Use PageContentInsertComplete.
+After a new article is created.
 $wikiPage: WikiPage created
 $user: User creating the article
 $text: New content
@@ -642,23 +655,23 @@ $moveonly: boolean whether it was for move only or not
 'ArticlePurge': Before executing "&action=purge".
 $wikiPage: WikiPage (object) to purge
 
-'ArticleRevisionVisibilitySet': Called when changing visibility of one or more
-revisions of an article.
-&$title: Title object of the article
-
 'ArticleRevisionUndeleted': After an article revision is restored.
 $title: the article title
 $revision: the revision
 $oldPageID: the page ID of the revision when archived (may be null)
 
+'ArticleRevisionVisibilitySet': Called when changing visibility of one or more
+revisions of an article.
+&$title: Title object of the article
+
 'ArticleRollbackComplete': After an article rollback is completed.
 $wikiPage: the WikiPage that was edited
 $user: the user who did the rollback
 $revision: the revision the page was reverted back to
 $current: the reverted revision
 
-'ArticleSave': Before an article is saved. DEPRECATED, use PageContentSave
-instead.
+'ArticleSave': DEPRECATED! Use PageContentSave instead.
+Before an article is saved.
 $wikiPage: the WikiPage (object) being saved
 $user: the user (object) saving the article
 $text: the new article text
@@ -667,8 +680,8 @@ $isminor: minor flag
 $iswatch: watch flag
 $section: section #
 
-'ArticleSaveComplete': After an article has been updated. DEPRECATED, use
-PageContentSaveComplete instead.
+'ArticleSaveComplete': DEPRECATED! Use PageContentSaveComplete instead.
+After an article has been updated.
 $wikiPage: WikiPage modified
 $user: User performing the modification
 $text: New content
@@ -699,6 +712,14 @@ the user is redirected back to the page.
 &$sectionanchor: The section anchor link (e.g. "#overview" )
 &$extraq: Extra query parameters which can be added via hooked functions
 
+'ArticleViewCustom': DEPRECATED! Use ArticleContentViewCustom instead.
+Allows to output the text of the article in a different format than wikitext.
+Note that it is preferable to implement proper handing for a custom data type
+using the ContentHandler facility.
+$text: text of the page
+$title: title of the page
+$output: reference to $wgOut
+
 'ArticleViewFooter': After showing the footer section of an ordinary page view
 $article: Article object
 $patrolFooterShown: boolean whether patrol footer is shown
@@ -707,28 +728,14 @@ $patrolFooterShown: boolean whether patrol footer is shown
 viewing.
 &$article: the article
 &$pcache: whether to try the parser cache or not
-&$outputDone: whether the output for this page finished or not. Set to a ParserOutput
-object to both indicate that the output is done and what parser output was used.
+&$outputDone: whether the output for this page finished or not. Set to
+  a ParserOutput object to both indicate that the output is done and what
+  parser output was used.
 
 'ArticleViewRedirect': Before setting "Redirected from ..." subtitle when a
 redirect was followed.
 $article: target article (object)
 
-'ArticleViewCustom': Allows to output the text of the article in a different
-format than wikitext. DEPRECATED, use ArticleContentViewCustom instead. Note
-that it is preferable to implement proper handing for a custom data type using
-the ContentHandler facility.
-$text: text of the page
-$title: title of the page
-$output: reference to $wgOut
-
-'ArticleContentViewCustom': Allows to output the text of the article in a
-different format than wikitext. Note that it is preferable to implement proper
-handing for a custom data type using the ContentHandler facility.
-$content: content of the page, as a Content object
-$title: title of the page
-$output: reference to $wgOut
-
 'AuthPluginAutoCreate': Called when creating a local account for an user logged
 in from an external authentication method.
 $user: User object created locally
@@ -743,16 +750,16 @@ $args: arguments
 $user: user
 $result: result of checking autopromote condition
 
-'BacklinkCacheGetPrefix': Allows to set prefix for a specific link table.
-$table: table name
-&$prefix: prefix
-
 'BacklinkCacheGetConditions': Allows to set conditions for query when links to
 certain title are fetched.
 $table: table name
 $title: title of the page to which backlinks are sought
 &$conds: query conditions
 
+'BacklinkCacheGetPrefix': Allows to set prefix for a specific link table.
+$table: table name
+&$prefix: prefix
+
 'BadImage': When checking against the bad image list. Change $bad and return
 false to override. If an image is "bad", it is not rendered inline in wiki
 pages or galleries in category pages.
@@ -765,10 +772,27 @@ $template BaseTemplate
 $portlet: string portlet name
 &$html: string
 
+'BaseTemplateToolbox': Called by BaseTemplate when building the $toolbox array
+and returning it for the skin to output. You can add items to the toolbox while
+still letting the skin make final decisions on skin-specific markup conventions
+using this hook.
+&$sk: The BaseTemplate base skin template
+&$toolbox: An array of toolbox items, see BaseTemplate::getToolbox and
+  BaseTemplate::makeListItem for details on the format of individual items
+  inside of this array.
+
 'BeforeDisplayNoArticleText': Before displaying message key "noarticletext" or
 "noarticletext-nopermission" at Article::showMissingArticle().
 $article: article object
 
+'BeforeHttpsRedirect': Prior to forcing HTTP->HTTPS redirect. Gives a chance to
+override how the redirect is output by modifying, or by returning false, and
+letting standard HTTP rendering take place.
+ATTENTION: This hook is likely to be removed soon due to overall design of the
+system.
+$context: IContextSource object
+&$redirect: string URL, modifiable
+
 'BeforeInitialize': Before anything is initialized in
 MediaWiki::performRequest().
 &$title: Title being used for request
@@ -782,13 +806,6 @@ $mediaWiki: Mediawiki object
 &$out: OutputPage object
 &$skin: Skin object
 
-'BeforeHttpsRedirect': Prior to forcing HTTP->HTTPS redirect. Gives a chance to
-override how the redirect is output by modifying, or by returning false, and
-letting standard HTTP rendering take place.
-ATTENTION: This hook is likely to be removed soon due to overall design of the system.
-$context: IContextSource object
-&$redirect: string URL, modifiable
-
 'BeforePageRedirect': Prior to sending an HTTP redirect. Gives a chance to
 override how the redirect is output by modifying, or by returning false and
 taking over the output.
@@ -820,13 +837,6 @@ newly created user.
 &$injected_html: Any HTML to inject after the "logged in" message of a newly
   created user account
 
-'BitmapHandlerTransform': before a file is transformed, gives extension the
-possibility to transform it themselves
-$handler: BitmapHandler
-$image: File
-&$scalerParams: Array with scaler parameters
-&$mto: null, set to a MediaTransformOutput
-
 'BitmapHandlerCheckImageArea': By BitmapHandler::normaliseParams, after all
 normalizations have been performed, except for the $wgMaxImageArea check.
 $image: File
@@ -834,10 +844,12 @@ $image: File
 &$checkImageAreaHookResult: null, set to true or false to override the
   $wgMaxImageArea check result.
 
-'PerformRetroactiveAutoblock': Called before a retroactive autoblock is applied
-to a user.
-$block: Block object (which is set to be autoblocking)
-&$blockIds: Array of block IDs of the autoblock
+'BitmapHandlerTransform': before a file is transformed, gives extension the
+possibility to transform it themselves
+$handler: BitmapHandler
+$image: File
+&$scalerParams: Array with scaler parameters
+&$mto: null, set to a MediaTransformOutput
 
 'BlockIp': Before an IP address or user is blocked.
 $block: the Block object about to be saved
@@ -856,7 +868,7 @@ $output: OutputPage object in use
 to be able to access the wiki via HTTPS.
 $ip: The IP address in human-readable form
 &$canDo: This reference should be set to false if the client may not be able
-to use HTTPS
+  to use HTTPS
 
 'CanonicalNamespaces': For extensions adding their own namespaces or altering
 the defaults.
@@ -893,13 +905,18 @@ $type: The category type. Either 'page', 'img' or 'subcat'
 $title: Title object for the categorized page
 $html: Requested html content of anchor
 &$link: Returned value. When set to a non-null value by a hook subscriber
-this value will be used as the anchor instead of Linker::link
+  this value will be used as the anchor instead of Linker::link
 
 'ChangePasswordForm': For extensions that need to add a field to the
 ChangePassword form via the Preferences form.
 &$extraFields: An array of arrays that hold fields like would be passed to the
   pretty function.
 
+'ChangesListInitRows': Batch process change list rows prior to rendering.
+$changesList: ChangesList instance
+$rows: The data that will be rendered. May be a ResultWrapper instance or
+  an array.
+
 'ChangesListInsertArticleLink': Override or augment link to article in RC list.
 &$changesList: ChangesList instance.
 &$articlelink: HTML of link to article (already filled-in).
@@ -908,18 +925,17 @@ ChangePassword form via the Preferences form.
 $unpatrolled: Whether or not we are showing unpatrolled changes.
 $watched: Whether or not the change is watched by the user.
 
-'ChangesListInitRows': Batch process change list rows prior to rendering.
-$changesList: ChangesList instance
-$rows: The data that will be rendered. May be a ResultWrapper instance or
-  an array.
-
-'ChangesListSpecialPageFilters': Called after building form options on pages inheriting from ChangesListSpecialPage (in core: RecentChanges, RecentChangesLinked and Watchlist).
+'ChangesListSpecialPageFilters': Called after building form options on pages
+inheriting from ChangesListSpecialPage (in core: RecentChanges,
+RecentChangesLinked and Watchlist).
 $special: ChangesListSpecialPage instance
 &$filters: associative array of filter definitions. The keys are the HTML
   name/URL parameters. Each key maps to an associative array with a 'msg'
   (message key) and a 'default' value.
 
-'ChangesListSpecialPageQuery': Called when building SQL query on pages inheriting from ChangesListSpecialPage (in core: RecentChanges, RecentChangesLinked and Watchlist).
+'ChangesListSpecialPageQuery': Called when building SQL query on pages
+inheriting from ChangesListSpecialPage (in core: RecentChanges,
+RecentChangesLinked and Watchlist).
 $name: name of the special page, e.g. 'Watchlist'
 &$tables: array of tables to be queried
 &$fields: array of columns to select
@@ -960,14 +976,6 @@ $user: user initiating the action
 uses are in active use.
 &$tags: list of all active tags. Append to this array.
 
-'LoginUserMigrated': Called during login to allow extensions the opportunity to
-inform a user that their username doesn't exist for a specific reason, instead
-of letting the login form give the generic error message that the account does
-not exist. For example, when the account has been renamed or deleted.
-$user: the User object being authenticated against.
-&$msg: the message identifier for abort reason, or an array to pass a message
-  key and parameters.
-
 'Collation::factory': Called if $wgCategoryCollation is an unknown collation.
 $collationName: Name of the collation in question
 &$collationObject: Null. Replace with a subclass of the Collation class that
@@ -977,24 +985,14 @@ $collationName: Name of the collation in question
 successfully.
 $user: user (object) whose email is being confirmed
 
-'ContentHandlerDefaultModelFor': Called when the default content model is determined
-for a given title. May be used to assign a different model for that title.
-$title: the Title in question
-&$model: the model name. Use with CONTENT_MODEL_XXX constants.
-
-'ContentHandlerForModelID': Called when a ContentHandler is requested for a given
-content model name, but no entry for that model exists in $wgContentHandlers.
-$modeName: the requested content model name
-&$handler: set this to a ContentHandler object, if desired.
-
-'ContentModelCanBeUsedOn': Called to determine whether that content model can
-be used on a given page. This is especially useful to prevent some content models
-to be used in some special location.
-$contentModel: ID of the content model in question
-$title: the Title in question.
-&$ok: Output parameter, whether it is OK to use $contentModel on $title.
-Handler functions that modify $ok should generally return false to prevent further
-hooks from further modifying $ok.
+'ContentAlterParserOutput': Modify parser output for a given content object.
+Called by Content::getParserOutput after parsing has finished. Can be used
+for changes that depend on the result of the parsing but have to be done
+before LinksUpdate is called (such as adding tracking categories based on
+the rendered HTML).
+$content: The Content to render
+$title: Title of the page, as context
+$parserOutput: ParserOutput to manipulate
 
 'ContentGetParserOutput': Customize parser output for a given content object,
 called by AbstractContent::getParserOutput. May be used to override the normal
@@ -1003,36 +1001,40 @@ $content: The Content to render
 $title: Title of the page, as context
 $revId: The revision ID, as context
 $options: ParserOptions for rendering. To avoid confusing the parser cache,
-the output can only depend on parameters provided to this hook function, not on global state.
-$generateHtml: boolean, indicating whether full HTML should be generated. If false,
-generation of HTML may be skipped, but other information should still be present in the
-ParserOutput object.
+  the output can only depend on parameters provided to this hook function, not
+  on global state.
+$generateHtml: boolean, indicating whether full HTML should be generated. If
+  false, generation of HTML may be skipped, but other information should still
+  be present in the ParserOutput object.
 &$output: ParserOutput, to manipulate or replace
 
-'ContentAlterParserOutput': Modify parser output for a given content object.
-Called by Content::getParserOutput after parsing has finished. Can be used
-for changes that depend on the result of the parsing but have to be done
-before LinksUpdate is called (such as adding tracking categories based on
-the rendered HTML).
-$content: The Content to render
-$title: Title of the page, as context
-$parserOutput: ParserOutput to manipulate
+'ContentHandlerDefaultModelFor': Called when the default content model is
+determined for a given title. May be used to assign a different model for that
+title.
+$title: the Title in question
+&$model: the model name. Use with CONTENT_MODEL_XXX constants.
 
-'ConvertContent': Called by AbstractContent::convert when a conversion to another
-content model is requested.
-$content: The Content object to be converted.
-$toModel: The ID of the content model to convert to.
-$lossy:   boolean indicating whether lossy conversion is allowed.
-&$result: Output parameter, in case the handler function wants to provide a
-converted Content object. Note that $result->getContentModel() must return $toModel.
-Handler functions that modify $result should generally return false to further
-attempts at conversion.
+'ContentHandlerForModelID': Called when a ContentHandler is requested for
+a given content model name, but no entry for that model exists in
+$wgContentHandlers.
+$modeName: the requested content model name
+&$handler: set this to a ContentHandler object, if desired.
+
+'ContentModelCanBeUsedOn': Called to determine whether that content model can
+be used on a given page. This is especially useful to prevent some content
+models to be used in some special location.
+$contentModel: ID of the content model in question
+$title: the Title in question.
+&$ok: Output parameter, whether it is OK to use $contentModel on $title.
+  Handler functions that modify $ok should generally return false to prevent
+  further hooks from further modifying $ok.
 
 'ContribsPager::getQueryInfo': Before the contributions query is about to run
 &$pager: Pager object for contributions
 &$queryInfo: The query for the contribs Pager
 
-'ContribsPager::reallyDoQuery': Called before really executing the query for My Contributions
+'ContribsPager::reallyDoQuery': Called before really executing the query for My
+Contributions
 &$data: an array of results of all contribs queries
 $pager: The ContribsPager object hooked into
 $offset: Index offset, inclusive
@@ -1050,18 +1052,28 @@ $id: User identifier
 $title: User page title
 &$tools: Array of tool links
 
+'ConvertContent': Called by AbstractContent::convert when a conversion to
+another content model is requested.
+Handler functions that modify $result should generally return false to disable
+further attempts at conversion.
+$content: The Content object to be converted.
+$toModel: The ID of the content model to convert to.
+$lossy:   boolean indicating whether lossy conversion is allowed.
+&$result: Output parameter, in case the handler function wants to provide a
+  converted Content object. Note that $result->getContentModel() must return
+  $toModel.
+
 'CustomEditor': When invoking the page editor
+Return true to allow the normal editor to be used, or false if implementing
+a custom editor, e.g. for a special namespace, etc.
 $article: Article being edited
 $user: User performing the edit
 
-Return true to allow the normal editor to be used, or false
-if implementing a custom editor, e.g. for a special namespace,
-etc.
-
 'DatabaseOraclePostInit': Called after initialising an Oracle database
 &$db: the DatabaseOracle object
 
-'DeletedContribsPager::reallyDoQuery': Called before really executing the query for Special:DeletedContributions
+'DeletedContribsPager::reallyDoQuery': Called before really executing the query
+for Special:DeletedContributions
 Similar to ContribsPager::reallyDoQuery
 &$data: an array of results of all contribs queries
 $pager: The DeletedContribsPager object hooked into
@@ -1069,29 +1081,14 @@ $offset: Index offset, inclusive
 $limit: Exact query limit
 $descending: Query direction, false for ascending, true for descending
 
-'DeletedContributionsLineEnding': Called before a DeletedContributions HTML line is finished.
+'DeletedContributionsLineEnding': Called before a DeletedContributions HTML line
+is finished.
 Similar to ContributionsLineEnding
 $page: SpecialPage object for DeletedContributions
 &$ret: the HTML line
 $row: the DB row for this line
 &$classes: the classes to add to the surrounding <li>
 
-'NewDifferenceEngine': Called when a new DifferenceEngine object is made
-$title: the diff page title (nullable)
-&$oldId: the actual old Id to use in the diff
-&$newId: the actual new Id to use in the diff (0 means current)
-$old: the ?old= param value from the url
-$new: the ?new= param value from the url
-
-'GetDifferenceEngine': Called when getting a new difference engine interface object
-Return false for valid object in $differenceEngine or true for the default difference engine
-$context: IContextSource context to be used for diff
-$old: Revision ID to show and diff with
-$new: Either a revision ID or one of the strings 'cur', 'prev' or 'next'
-$refreshCache: If set, refreshes the diff cache
-$unhide: If set, allow viewing deleted revs
-&$differenceEngine: output parameter, difference engine object to be used for diff
-
 'DiffRevisionTools': Override or extend the revision tools available from the
 diff view, i.e. undo, etc.
 $newRev: Revision object of the "new" revision
@@ -1108,8 +1105,8 @@ an article
 $article: article (object) being viewed
 $oldid: oldid (int) being viewed
 
-'DoEditSectionLink': Override the HTML generated for section edit links
-* Deprecated in favour of SkinEditSectionLinks hook *
+'DoEditSectionLink': DEPRECATED! Use SkinEditSectionLinks instead.
+Override the HTML generated for section edit links
 $skin: Skin object rendering the UI
 $title: Title object for the title being linked to (may not be the same as
   the page title, if the section is included from a template)
@@ -1128,20 +1125,21 @@ $section: Section being edited
 &$error: Error message to return
 $summary: Edit summary for page
 
-'EditFilterMerged': Post-section-merge edit filter.
-DEPRECATED, use EditFilterMergedContent instead.
+'EditFilterMerged': DEPRECATED! Use EditFilterMergedContent instead.
+Post-section-merge edit filter.
 $editor: EditPage instance (object)
 $text: content of the edit box
 &$error: error message to return
 $summary: Edit summary for page
 
 'EditFilterMergedContent': Post-section-merge edit filter.
-This may be triggered by the EditPage or any other facility that modifies page content.
-Use the $status object to indicate whether the edit should be allowed, and to provide
-a reason for disallowing it. Return false to abort the edit, and true to continue.
-Returning true if $status->isOK() returns false means "don't save but continue user
-interaction", e.g. show the edit form. $status->apiHookResult can be set to an array
-to be returned by api.php action=edit. This is used to deliver captchas.
+This may be triggered by the EditPage or any other facility that modifies page
+content. Use the $status object to indicate whether the edit should be allowed,
+and to provide a reason for disallowing it. Return false to abort the edit, and
+true to continue. Returning true if $status->isOK() returns false means "don't
+save but continue user interaction", e.g. show the edit form.
+$status->apiHookResult can be set to an array to be returned by api.php
+action=edit. This is used to deliver captchas.
 $context: object implementing the IContextSource interface.
 $content: content of the edit box, as a Content object.
 $status: Status object to represent errors, etc.
@@ -1149,15 +1147,15 @@ $summary: Edit summary for page
 $user: the User object representing the user whois performing the edit.
 $minoredit: whether the edit was marked as minor by the user.
 
+'EditFormInitialText': Allows modifying the edit form when editing existing
+pages
+$editPage: EditPage object
+
 'EditFormPreloadText': Allows population of the edit form when creating
 new pages
 &$text: Text to preload with
 &$title: Title object representing the page being created
 
-'EditFormInitialText': Allows modifying the edit form when editing existing
-pages
-$editPage: EditPage    object
-
 'EditPage::attemptSave': Called before an article is
 saved, that is before WikiPage::doEditContent() is called
 $editpage_Obj: the current EditPage object
@@ -1174,31 +1172,30 @@ $request: Webrequest
 return value is ignored (should always return true)
 
 'EditPage::showEditForm:fields': allows injection of form field into edit form
+Return value is ignored (should always return true)
 $editor: the EditPage instance for reference
 $out: an OutputPage instance to write to
-return value is ignored (should always return true)
 
 'EditPage::showEditForm:initial': before showing the edit form
-$editor: EditPage instance (object)
-$out: an OutputPage instance to write to
-
 Return false to halt editing; you'll need to handle error messages, etc.
 yourself. Alternatively, modifying $error and returning true will cause the
 contents of $error to be echoed at the top of the edit form as wikitext.
 Return true without altering $error to allow the edit to proceed.
+$editor: EditPage instance (object)
+$out: an OutputPage instance to write to
 
 'EditPage::showReadOnlyForm:initial': similar to EditPage::showEditForm:initial
 but for the read-only 'view source' variant of the edit form.
+Return value is ignored (should always return true)
 $editor: EditPage instance (object)
 &$out: an OutputPage instance to write to
-return value is ignored (should always return true)
 
 'EditPage::showStandardInputs:options': allows injection of form fields into
 the editOptions area
+Return value is ignored (should always be true)
 $editor: EditPage instance (object)
 $out: an OutputPage instance to write to
 &$tabindex: HTML tabindex of the last edit check/button
-return value is ignored (should always be true)
 
 'EditPageBeforeConflictDiff': allows modifying the EditPage object and output
 when there's an edit conflict.  Return false to halt normal diff output; in
@@ -1230,25 +1227,18 @@ $title: title of page being edited
 &$msg: localization message name, overridable. Default is either
   'copyrightwarning' or 'copyrightwarning2'.
 
-'EditPageGetDiffText': DEPRECATED. Use EditPageGetDiffContent instead. Allow
-modifying the wikitext that will be used in "Show changes". Note that it is
-preferable to implement diff handling for different data types using the
-ContentHandler facility.
-$editPage: EditPage object
-&$newtext: wikitext that will be used as "your version"
-
 'EditPageGetDiffContent': Allow modifying the wikitext that will be used in
 "Show changes". Note that it is preferable to implement diff handling for
 different data types using the ContentHandler facility.
 $editPage: EditPage object
 &$newtext: wikitext that will be used as "your version"
 
-'EditPageGetPreviewText': DEPRECATED. Use EditPageGetPreviewContent instead.
-Allow modifying the wikitext that will be previewed. Note that it is preferable
-to implement previews for different data types using the ContentHandler
-facility.
+'EditPageGetDiffText': DEPRECATED! Use EditPageGetDiffContent instead.
+Allow modifying the wikitext that will be used in "Show changes". Note that it
+is preferable to implement diff handling for different data types using the
+ContentHandler facility.
 $editPage: EditPage object
-&$toparse: wikitext that will be parsed
+&$newtext: wikitext that will be used as "your version"
 
 'EditPageGetPreviewContent': Allow modifying the wikitext that will be
 previewed. Note that it is preferable to implement previews for different data
@@ -1256,7 +1246,15 @@ types using the ContentHandler facility.
 $editPage: EditPage object
 &$content: Content object to be previewed (may be replaced by hook function)
 
-'EditPageNoSuchSection': When a section edit request is given for an non-existent section
+'EditPageGetPreviewText': DEPRECATED! Use EditPageGetPreviewContent instead.
+Allow modifying the wikitext that will be previewed. Note that it is preferable
+to implement previews for different data types using the ContentHandler
+facility.
+$editPage: EditPage object
+&$toparse: wikitext that will be parsed
+
+'EditPageNoSuchSection': When a section edit request is given for an
+non-existent section
 &$editpage: The current EditPage object
 &$res: the HTML of the error text
 
@@ -1267,10 +1265,10 @@ $title: title of page being edited
 &$msg: localization message name, overridable. Default is 'editpage-tos-summary'
 
 'EmailConfirmed': When checking that the user's email address is "confirmed".
-$user: User being checked
-$confirmed: Whether or not the email address is confirmed
 This runs before the other checks, such as anonymity and the real check; return
 true to allow those checks to occur, and false if checking is done.
+$user: User being checked
+$confirmed: Whether or not the email address is confirmed
 
 'EmailUser': Before sending email from one user to another.
 $to: address of receiving user
@@ -1314,11 +1312,12 @@ $ip: The ip address of the user
 change the tables headers.
 &$extTypes: associative array of extensions types
 
-'ExtractThumbParameters': Called when extracting thumbnail parameters from a
-thumbnail file name.
-DEPRECATED: Media handler should override MediaHandler::parseParamString instead.
+'ExtractThumbParameters': DEPRECATED! Media handler should override
+MediaHandler::parseParamString instead.
+Called when extracting thumbnail parameters from a thumbnail file name.
 $thumbname: the base name of the thumbnail file
-&$params: the currently extracted params (has source name, temp or archived zone)
+&$params: the currently extracted params (has source name, temp or archived
+zone)
 
 'FetchChangesList': When fetching the ChangesList derivative for a particular
 user.
@@ -1341,6 +1340,12 @@ $thumb: the MediaTransformOutput object
 $tmpThumbPath: The temporary file system path of the transformed file
 $thumbPath: The permanent storage path of the transformed file
 
+'FileUndeleteComplete': When a file is undeleted
+$title: title object to the file
+$fileVersions: array of undeleted versions. Empty if all versions were restored
+$user: user who performed the undeletion
+$reason: reason
+
 'FileUpload': When a file upload occurs.
 $file : Image object representing the file that was uploaded
 $reupload : Boolean indicating if there was a previously another image there or
@@ -1348,26 +1353,20 @@ $reupload : Boolean indicating if there was a previously another image there or
 $hasDescription : Boolean indicating that there was already a description page
   and a new one from the comment wasn't created (since 1.17)
 
-'FileUndeleteComplete': When a file is undeleted
-$title: title object to the file
-$fileVersions: array of undeleted versions. Empty if all versions were restored
-$user: user who performed the undeletion
-$reason: reason
-
 'FormatAutocomments': When an autocomment is formatted by the Linker.
- &$comment: Reference to the accumulated comment. Initially null, when set the
-   default code will be skipped.
- $pre: Boolean, true if there is text before this autocomment
- $auto: The extracted part of the parsed comment before the call to the hook.
- $post: Boolean, true if there is text after this autocomment
- $title: An optional title object used to links to sections. Can be null.
- $local: Boolean indicating whether section links should refer to local page.
+&$comment: Reference to the accumulated comment. Initially null, when set the
+  default code will be skipped.
+$pre: Boolean, true if there is text before this autocomment
+$auto: The extracted part of the parsed comment before the call to the hook.
+$post: Boolean, true if there is text after this autocomment
+$title: An optional title object used to links to sections. Can be null.
+$local: Boolean indicating whether section links should refer to local page.
 
 'GalleryGetModes': Get list of classes that can render different modes of a
- gallery
+gallery.
 &$modeArray: An associative array mapping mode names to classes that implement
- that mode. It is expected all registered classes are a subclass of
- ImageGalleryBase.
 that mode. It is expected all registered classes are a subclass of
 ImageGalleryBase.
 
 'GetAutoPromoteGroups': When determining which autopromote groups a user is
 entitled to be in.
@@ -1392,18 +1391,32 @@ $query: query options passed to Title::getCanonicalURL()
 $title: Title object that we need to get a sortkey for
 &$sortkey: Sortkey to use.
 
-'GetDoubleUnderscoreIDs': Modify the list of behavior switch (double
-underscore) magic words. Called by MagicWord.
+'GetDifferenceEngine': Called when getting a new difference engine interface
+object Return false for valid object in $differenceEngine or true for the
+default difference engine.
+$context: IContextSource context to be used for diff
+$old: Revision ID to show and diff with
+$new: Either a revision ID or one of the strings 'cur', 'prev' or 'next'
+$refreshCache: If set, refreshes the diff cache
+$unhide: If set, allow viewing deleted revs
+&$differenceEngine: output parameter, difference engine object to be used for
+  diff
+
+'GetDoubleUnderscoreIDs': Modify the list of behavior switch (double
+underscore) magic words. Called by MagicWord.
 &$doubleUnderscoreIDs: array of strings
 
 'GetExtendedMetadata': Get extended file metadata for the API
-&$combinedMeta: Array of the form: 'MetadataPropName' => array(
-'value' => prop value, 'source' => 'name of hook' ).
+&$combinedMeta: Array of the form:
+       'MetadataPropName' => array(
+               value' => prop value,
+               'source' => 'name of hook'
+       ).
 $file: File object of file in question
 $context: RequestContext (including language to use)
 $single: Only extract the current language; if false, the prop value should
-be in the metadata multi-language array format:
-mediawiki.org/wiki/Manual:File_metadata_handling#Multi-language_array_format
+  be in the metadata multi-language array format:
+  mediawiki.org/wiki/Manual:File_metadata_handling#Multi-language_array_format
 &$maxCacheTime: how long the results can be cached
 
 'GetFullURL': Modify fully-qualified URLs used in redirects/export/offsite data.
@@ -1411,9 +1424,9 @@ $title: Title object of page
 $url: string value as output (out parameter, can modify)
 $query: query options passed to Title::getFullURL()
 
-'GetHumanTimestamp': Pre-emptively override the human-readable timestamp generated
-by MWTimestamp::getHumanTimestamp(). Return false in this hook to use the custom
-output.
+'GetHumanTimestamp': Pre-emptively override the human-readable timestamp
+generated by MWTimestamp::getHumanTimestamp(). Return false in this hook to use
+the custom output.
 &$output: string for the output timestamp
 $timestamp: MWTimestamp object of the current (user-adjusted) timestamp
 $relativeTo: MWTimestamp object of the relative (user-adjusted) timestamp
@@ -1430,7 +1443,7 @@ $query: query options passed to Title::getInternalURL()
 
 'GetLinkColours': modify the CSS class of an array of page links.
 $linkcolour_ids: array of prefixed DB keys of the pages linked to,
-       indexed by page_id.
+  indexed by page_id.
 &$colours: (output) array of CSS classes, indexed by prefixed DB keys
 
 'GetLocalURL': Modify local URLs as output into page links. Note that if you are
@@ -1442,15 +1455,15 @@ $title: Title object of page
 &$url: string value as output (out parameter, can modify)
 $query: query options passed to Title::getLocalURL()
 
-'GetLocalURL::Internal': Modify local URLs to internal pages.
+'GetLocalURL::Article': Modify local URLs specifically pointing to article paths
+without any fancy queries or variants.
 $title: Title object of page
 &$url: string value as output (out parameter, can modify)
-$query: query options passed to Title::getLocalURL()
 
-'GetLocalURL::Article': Modify local URLs specifically pointing to article paths
-without any fancy queries or variants.
+'GetLocalURL::Internal': Modify local URLs to internal pages.
 $title: Title object of page
 &$url: string value as output (out parameter, can modify)
+$query: query options passed to Title::getLocalURL()
 
 'GetLogTypesOnUser': Add log types where the target is a userpage
 &$types: Array of log types
@@ -1465,9 +1478,10 @@ the media handler metadata output.
 
 'GetNewMessagesAlert': Disable or modify the new messages alert
 &$newMessagesAlert: An empty string by default. If the user has new talk page
-messages, this should be populated with an alert message to that effect
-$newtalks: An empty array if the user has no new messages or an array containing
-links and revisions if there are new messages (See User::getNewMessageLinks)
+  messages, this should be populated with an alert message to that effect
+$newtalks: An empty array if the user has no new messages or an array
+  containing links and revisions if there are new messages (See
+  User::getNewMessageLinks)
 $user: The user object of the user who is loading the page
 $out: OutputPage object (to check what type of page the user is on)
 
@@ -1476,8 +1490,8 @@ $user: User whose preferences are being modified.
 &$preferences: Preferences description array, to be fed to an HTMLForm object
 
 'GetRelativeTimestamp': Pre-emptively override the relative timestamp generated
-by MWTimestamp::getRelativeTimestamp(). Return false in this hook to use the custom
-output.
+by MWTimestamp::getRelativeTimestamp(). Return false in this hook to use the
+custom output.
 &$output: string for the output timestamp
 &$diff: DateInterval representing the difference between the timestamps
 $timestamp: MWTimestamp object of the current (user-adjusted) timestamp
@@ -1493,7 +1507,7 @@ should be plain text with no special coloring, bolding, etc. to show that
 they're errors; presenting them properly to the user as errors is done by the
 caller.
 $title: Title object being checked against
-$user : Current user object
+$user: Current user object
 $action: Action being checked
 $result: User permissions error to add. If none, return true.
 
@@ -1504,9 +1518,8 @@ populate $result with the reason in the form of array( messagename, param1,
 param2, ... ). For consistency, error messages should be plain text with no
 special coloring, bolding, etc. to show that they're errors; presenting them
 properly to the user as errors is done by the caller.
-
 $title: Title object being checked against
-$user : Current user object
+$user: Current user object
 $action: Action being checked
 $result: User permissions error to add. If none, return true.
 
@@ -1521,7 +1534,8 @@ $rev: Revision object
 
 'HTMLFileCache::useFileCache': Override whether a page should be cached in file
 cache.
-$context: An IContextSource object with information about the request being served.
+$context: An IContextSource object with information about the request being
+  served.
 
 'ImageBeforeProduceHTML': Called before producing the HTML created by a wiki
 image insertion. You can skip the default logic entirely by returning false, or
@@ -1536,7 +1550,6 @@ just modify a few things using call-by-reference.
 &$time: Timestamp of file in 'YYYYMMDDHHIISS' string form, or false for current
 &$res: Final HTML output, used if you return false
 
-
 'ImageOpenShowImageInlineBefore': Call potential extension just before showing
 the image on an image page.
 $imagePage: ImagePage object ($this)
@@ -1576,29 +1589,29 @@ using img_auth.php.
   header message cannot receive/use parameters.
 
 'ImportHandleLogItemXMLTag': When parsing a XML tag in a log item.
+Return false to stop further processing of the tag
 $reader: XMLReader object
 $logInfo: Array of information
-Return false to stop further processing of the tag
 
 'ImportHandlePageXMLTag': When parsing a XML tag in a page.
+Return false to stop further processing of the tag
 $reader: XMLReader object
 $pageInfo: Array of information
-Return false to stop further processing of the tag
 
 'ImportHandleRevisionXMLTag': When parsing a XML tag in a page revision.
+Return false to stop further processing of the tag
 $reader: XMLReader object
 $pageInfo: Array of page information
 $revisionInfo: Array of revision information
-Return false to stop further processing of the tag
 
 'ImportHandleToplevelXMLTag': When parsing a top level XML tag.
-$reader: XMLReader object
 Return false to stop further processing of the tag
+$reader: XMLReader object
 
 'ImportHandleUploadXMLTag': When parsing a XML tag in a file upload.
+Return false to stop further processing of the tag
 $reader: XMLReader object
 $revisionInfo: Array of information
-Return false to stop further processing of the tag
 
 'InfoAction': When building information to display on the action=info page.
 $context: IContextSource object
@@ -1611,11 +1624,11 @@ $ignoreRedirect: boolean to skip redirect check
 $target: Title/string of redirect target
 $article: Article object
 
-'InterwikiLoadPrefix': When resolving if a given prefix is an interwiki or not.
-Return true without providing an interwiki to continue interwiki search.
-$prefix: interwiki prefix we are looking for.
-&$iwData: output array describing the interwiki with keys iw_url, iw_local,
-  iw_trans and optionally iw_api and iw_wikiid.
+'InternalParseBeforeLinks': during Parser's internalParse method before links
+but after nowiki/noinclude/includeonly/onlyinclude and other processings.
+&$parser: Parser object
+&$text: string containing partially parsed text
+&$stripState: Parser's internal StripState object
 
 'InternalParseBeforeSanitize': during Parser's internalParse method just before
 the parser removes unwanted/dangerous HTML tags and after nowiki/noinclude/
@@ -1625,11 +1638,11 @@ template/parser function execution which respect nowiki and HTML-comments.
 &$text: string containing partially parsed text
 &$stripState: Parser's internal StripState object
 
-'InternalParseBeforeLinks': during Parser's internalParse method before links
-but after nowiki/noinclude/includeonly/onlyinclude and other processings.
-&$parser: Parser object
-&$text: string containing partially parsed text
-&$stripState: Parser's internal StripState object
+'InterwikiLoadPrefix': When resolving if a given prefix is an interwiki or not.
+Return true without providing an interwiki to continue interwiki search.
+$prefix: interwiki prefix we are looking for.
+&$iwData: output array describing the interwiki with keys iw_url, iw_local,
+  iw_trans and optionally iw_api and iw_wikiid.
 
 'InvalidateEmailComplete': Called after a user's email has been invalidated
 successfully.
@@ -1666,18 +1679,18 @@ $user: User the password is being validated for
 $code: The language code or the language we're looking for a messages file for
 &$file: The messages file path, you can override this to change the location.
 
-'LanguageGetNamespaces': Provide custom ordering for namespaces or
-remove namespaces. Do not use this hook to add namespaces. Use
-CanonicalNamespaces for that.
-&$namespaces: Array of namespaces indexed by their numbers
-
-'LanguageGetMagic': DEPRECATED, use $magicWords in a file listed in
+'LanguageGetMagic': DEPRECATED! Use $magicWords in a file listed in
 $wgExtensionMessagesFiles instead.
 Use this to define synonyms of magic words depending of the language
 $magicExtensions: associative array of magic words synonyms
 $lang: language code (string)
 
-'LanguageGetSpecialPageAliases': DEPRECATED, use $specialPageAliases in a file
+'LanguageGetNamespaces': Provide custom ordering for namespaces or
+remove namespaces. Do not use this hook to add namespaces. Use
+CanonicalNamespaces for that.
+&$namespaces: Array of namespaces indexed by their numbers
+
+'LanguageGetSpecialPageAliases': DEPRECATED! Use $specialPageAliases in a file
 listed in $wgExtensionMessagesFiles instead.
 Use to define aliases of special pages names depending of the language
 $specialPageAliases: associative array of magic words synonyms
@@ -1685,7 +1698,7 @@ $lang: language code (string)
 
 'LanguageGetTranslatedLanguageNames': Provide translated language names.
 &$names: array of language code => language name
-$code language of the preferred translations
+$code: language of the preferred translations
 
 'LanguageLinks': Manipulate a page's language links. This is called
 in various places to allow extensions to define the effective language
@@ -1710,8 +1723,9 @@ $target: the Title that the link is pointing to
 &$html: the contents that the <a> tag should have (raw HTML); null means
   "default".
 &$customAttribs: the HTML attributes that the <a> tag should have, in
-associative array form, with keys and values unescaped.  Should be merged with
-default values, with a value of false meaning to suppress the attribute.
+  associative array form, with keys and values unescaped.  Should be merged
+  with default values, with a value of false meaning to suppress the
+  attribute.
 &$query: the query string to add to the generated URL (the bit after the "?"),
   in associative array form, with keys and values unescaped.
 &$options: array of options.  Can include 'known', 'broken', 'noclasses'.
@@ -1773,7 +1787,7 @@ including delete and insert, has completed for all link tables
 &$tags: The list of tags.
 
 'LoadExtensionSchemaUpdates': Called during database installation and updates.
-&updater: A DatabaseUpdater subclass
+&$updater: A DatabaseUpdater subclass
 
 'LocalFile::getHistory': Called before file history query performed.
 $file: the File object
@@ -1792,7 +1806,8 @@ cache.
 $cache: The LocalisationCache object
 $code: language code
 &$alldata: The localisation data from core and extensions
-&purgeBlobs: whether to purge/update the message blobs via MessageBlobStore::clear()
+&$purgeBlobs: whether to purge/update the message blobs via
+  MessageBlobStore::clear()
 
 'LocalisationCacheRecacheFallback': Called for each language when merging
 fallback data into the cache.
@@ -1808,16 +1823,15 @@ localisation checks.
 
 'LocalisationIgnoredOptionalMessages': When fetching the list of ignored and
 optional localisation messages
-&$ignored Array of ignored message keys
-&$optional Array of optional message keys
+&$ignored: Array of ignored message keys
+&$optional: Array of optional message keys
 
-'LogEventsListGetExtraInputs': When getting extra inputs to display on Special:Log
-for a specific log type
+'LogEventsListGetExtraInputs': When getting extra inputs to display on
+Special:Log for a specific log type
 $type: String of log type being displayed
 $logEventsList: LogEventsList object for context and access to the WebRequest
 &$input: string HTML of an input element
 
-
 'LogEventsListShowLogExtract': Called before the string is added to OutputPage.
 Returning false will prevent the string from being added to the OutputPage.
 &$s: html string to show for the log extract
@@ -1840,6 +1854,13 @@ $param: Associative Array with the following additional options:
     "&lt;div ...>$1&lt;/div>").
   - flags Integer display flags (NO_ACTION_LINK,NO_EXTRA_USER_LINKS)
 
+'LogException': Called before an exception (or PHP error) is logged. This is
+meant for integration with external error aggregation services; returning false
+will NOT prevent logging.
+$e: The exception (in case of a plain old PHP error, a wrapping ErrorException)
+$suppressed: true if the error was suppressed via
+  error_reporting()/wfSuppressWarnings()
+
 'LoginAuthenticateAudit': A login attempt for a valid user account either
 succeeded or failed. No return data is accepted; this hook is for auditing only.
 $user: the User object being authenticated against
@@ -1847,11 +1868,26 @@ $password: the password being submitted and found wanting
 $retval: a LoginForm class constant with authenticateUserData() return
   value (SUCCESS, WRONG_PASS, etc.).
 
-'LoginPasswordResetMessage': User is being requested to reset their password on login.
-Use this hook to change the Message that will be output on Special:ChangePassword.
+'LoginFormValidErrorMessages': Called in LoginForm when a function gets valid
+error messages. Allows to add additional error messages (except messages already
+in LoginForm::$validErrorMessages).
+&$messages: Already added messages (inclusive messages from
+  LoginForm::$validErrorMessages)
+
+'LoginPasswordResetMessage': User is being requested to reset their password on
+login. Use this hook to change the Message that will be output on
+Special:ChangePassword.
 &$msg: Message object that will be shown to the user
 $username: Username of the user who's password was expired.
 
+'LoginUserMigrated': Called during login to allow extensions the opportunity to
+inform a user that their username doesn't exist for a specific reason, instead
+of letting the login form give the generic error message that the account does
+not exist. For example, when the account has been renamed or deleted.
+$user: the User object being authenticated against.
+&$msg: the message identifier for abort reason, or an array to pass a message
+  key and parameters.
+
 'LogLine': Processes a single log entry on Special:Log.
 $log_type: string for the type of log entry (e.g. 'move'). Corresponds to
   logging.log_type database field.
@@ -1872,13 +1908,13 @@ Special:LonelyPages.
 &$conds: conditions for the query
 &$joinConds: join conditions for the query
 
+'MagicWordwgVariableIDs': When defining new magic words IDs.
+$variableIDs: array of strings
+
 'MaintenanceRefreshLinksInit': before executing the refreshLinks.php maintenance
 script.
 $refreshLinks: RefreshLinks object
 
-'MagicWordwgVariableIDs': When defining new magic words IDs.
-$variableIDs: array of strings
-
 'MakeGlobalVariablesScript': Called at end of OutputPage::getJSVars.
 Ideally, this hook should only be used to add variables that depend on
 the current page/request; static configuration should be added through
@@ -1909,10 +1945,6 @@ $user: $wgUser
 $request: $wgRequest
 $mediaWiki: The $mediawiki object
 
-'MessagesPreLoad': When loading a message from the database.
-$title: title of the message (string)
-$message: value (string), change it to the message you want to define
-
 'MessageCache::get': When fetching a message. Can be used to override the key
 for customisations. Given and returned message key must be in special format:
 1) first letter must be in lower case according to the content language.
@@ -1924,15 +1956,17 @@ caches.
 $title: name of the page changed.
 $text: new contents of the page.
 
-'MimeMagicInit': Before processing the list mapping MIME types to media types
-and the list mapping MIME types to file extensions.
-As an extension author, you are encouraged to submit patches to MediaWiki's
-core to add new MIME types to mime.types.
+'MessagesPreLoad': When loading a message from the database.
+$title: title of the message (string)
+$message: value (string), change it to the message you want to define
+
+'MimeMagicGuessFromContent': Allows MW extensions guess the MIME by content.
 $mimeMagic: Instance of MimeMagic.
-  Use $mimeMagic->addExtraInfo( $stringOfInfo );
-  for adding new MIME info to the list.
-  Use $mimeMagic->addExtraTypes( $stringOfTypes );
-  for adding new MIME types to the list.
+&$head: First 1024 bytes of the file in a string (in - Do not alter!).
+&$tail: More or equal than last 65558 bytes of the file in a string
+  (in - Do not alter!).
+$file: File path.
+&$mime: MIME type (out).
 
 'MimeMagicImproveFromExtension': Allows MW extensions to further improve the
 MIME type detected by considering the file extension.
@@ -1940,13 +1974,15 @@ $mimeMagic: Instance of MimeMagic.
 $ext: File extension.
 &$mime: MIME type (in/out).
 
-'MimeMagicGuessFromContent': Allows MW extensions guess the MIME by content.
+'MimeMagicInit': Before processing the list mapping MIME types to media types
+and the list mapping MIME types to file extensions.
+As an extension author, you are encouraged to submit patches to MediaWiki's
+core to add new MIME types to mime.types.
 $mimeMagic: Instance of MimeMagic.
-&$head: First 1024 bytes of the file in a string (in - Do not alter!).
-&$tail: More or equal than last 65558 bytes of the file in a string
-  (in - Do not alter!).
-$file: File path.
-&$mime: MIME type (out).
+  Use $mimeMagic->addExtraInfo( $stringOfInfo );
+  for adding new MIME info to the list.
+  Use $mimeMagic->addExtraTypes( $stringOfTypes );
+  for adding new MIME types to the list.
 
 'ModifyExportQuery': Modify the query used by the exporter.
 $db: The database object to be queried.
@@ -1955,27 +1991,20 @@ $db: The database object to be queried.
 &$opts: Options for the query.
 &$join_conds: Join conditions for the query.
 
-'MovePageCheckPermissions': Specify whether the user is allowed to move the page.
+'MovePageCheckPermissions': Specify whether the user is allowed to move the
+page.
 $oldTitle: Title object of the current (old) location
 $newTitle: Title object of the new location
 $user: User making the move
 $reason: string of the reason provided by the user
 $status: Status object to pass error messages to
 
-'MovePageIsValidMove': Specify whether a page can be moved for technical reasons.
+'MovePageIsValidMove': Specify whether a page can be moved for technical
+reasons.
 $oldTitle: Title object of the current (old) location
 $newTitle: Title object of the new location
 $status: Status object to pass error messages to
 
-'BaseTemplateToolbox': Called by BaseTemplate when building the $toolbox array
-and returning it for the skin to output. You can add items to the toolbox while
-still letting the skin make final decisions on skin-specific markup conventions
-using this hook.
-&$sk: The BaseTemplate base skin template
-&$toolbox: An array of toolbox items, see BaseTemplate::getToolbox and
-  BaseTemplate::makeListItem for details on the format of individual items
-  inside of this array.
-
 'NamespaceIsMovable': Called when determining if it is possible to pages in a
 namespace.
 $index: Integer; the index of the namespace being checked.
@@ -1983,6 +2012,13 @@ $result: Boolean; whether MediaWiki currently thinks that pages in this
   namespace are movable. Hooks may change this value to override the return
   value of MWNamespace::isMovable().
 
+'NewDifferenceEngine': Called when a new DifferenceEngine object is made
+$title: the diff page title (nullable)
+&$oldId: the actual old Id to use in the diff
+&$newId: the actual new Id to use in the diff (0 means current)
+$old: the ?old= param value from the url
+$new: the ?new= param value from the url
+
 'NewRevisionFromEditComplete': Called when a revision was inserted due to an
 edit.
 $wikiPage: the WikiPage edited
@@ -2044,11 +2080,7 @@ $sk: The Skin that called OutputPage::headElement
 'OutputPageCheckLastModified': when checking if the page has been modified
 since the last visit.
 &$modifiedTimes: array of timestamps.
-       The following keys are set: page, user, epoch
-
-'OutputPageParserOutput': after adding a parserOutput to $wgOut
-$out: OutputPage instance (object)
-$parserOutput: parserOutput instance being added in $out
+  The following keys are set: page, user, epoch
 
 'OutputPageMakeCategoryLinks': Links are about to be generated for the page's
 categories. Implementations should return false if they generate the category
@@ -2059,6 +2091,10 @@ $categories: associative array, keys are category names, values are category
 $links: array, intended to hold the result. Must be an associative array with
   category types as keys and arrays of HTML links as values.
 
+'OutputPageParserOutput': after adding a parserOutput to $wgOut
+$out: OutputPage instance (object)
+$parserOutput: parserOutput instance being added in $out
+
 'PageContentInsertComplete': After a new article is created.
 $wikiPage: WikiPage created
 $user: User creating the article
@@ -2094,7 +2130,8 @@ $isMinor: Whether or not the edit was marked as minor
 $isWatch: (No longer used)
 $section: (No longer used)
 $flags: Flags passed to WikiPage::doEditContent()
-$revision: New Revision of the article (can be null for edits that change nothing)
+$revision: New Revision of the article (can be null for edits that change
+  nothing)
 $status: Status object about to be returned by doEditContent()
 $baseRevId: the rev ID (or false) this edit was based on
 
@@ -2107,11 +2144,6 @@ $row: the revision row for this line
 $s: the string representing this parsed line
 $classes: array containing the <li> element classes
 
-'PageHistoryPager::getQueryInfo': when a history pager query parameter set is
-constructed.
-$pager: the pager
-$queryInfo: the query parameters
-
 'PageHistoryPager::doBatchLookups': Called after the pager query was run, before
 any output is generated, to allow batch lookups for prefetching information
 needed for display. If the hook handler returns false, the regular behavior of
@@ -2119,6 +2151,11 @@ doBatchLookups() is skipped.
 $pager: the PageHistoryPager
 $result: a ResultWrapper representing the query result
 
+'PageHistoryPager::getQueryInfo': when a history pager query parameter set is
+constructed.
+$pager: the pager
+$queryInfo: the query parameters
+
 'PageRenderingHash': Alter the parser cache option hash key. A parser extension
 which depends on user options should install this hook and append its values to
 the key.
@@ -2147,6 +2184,11 @@ $stripState: stripState used (object)
 $parser: Parser object being used
 $text: text that will be returned
 
+'ParserAfterUnstrip': Called after the first unstripGeneral() in
+Parser::internalParseHalfParsed()
+$parser: Parser object being used
+$text: text that will be returned
+
 'ParserBeforeInternalParse': Called at the beginning of Parser::internalParse().
 $parser: Parser object
 $text: text to parse
@@ -2162,6 +2204,14 @@ $stripState: stripState used (object)
 $parser: Parser object being used
 $text: actual text
 
+'ParserCacheSaveComplete': Called after a ParserOutput has been committed to
+the parser cache.
+$parserCache: ParserCache object $parserOutput was stored in
+$parserOutput: ParserOutput object that was stored
+$title: Title of the page that was parsed to generate $parserOutput
+$popts: ParserOptions used for generating $parserOutput
+$revId: ID of the revision that was parsed to create $parserOutput
+
 'ParserClearState': Called at the end of Parser::clearState().
 $parser: Parser object being cleared
 
@@ -2175,7 +2225,7 @@ $parser: Newly-cloned Parser object
 custom magic word
 $parser: Parser object
 $varCache: array to store the value in case of multiples calls of the
-       same magic word
+  same magic word
 $index: index (string) of the magic
 $ret: value of the magic word (the hook should set it)
 $frame: PPFrame object to use for expanding any template variables
@@ -2190,7 +2240,7 @@ cache or return false to not use it.
 $parser: Parser object
 $varCache: variable cache (array)
 
-'ParserLimitReport': DEPRECATED, use ParserLimitReportPrepare and
+'ParserLimitReport': DEPRECATED! Use ParserLimitReportPrepare and
 ParserLimitReportFormat instead.
 Called at the end of Parser:parse() when the parser will
 include comments about size of the text parsed.
@@ -2205,11 +2255,11 @@ $key: Key for the limit report item (string)
 &$value: Value of the limit report item
 &$report: String onto which to append the data
 $isHTML: If true, $report is an HTML table with two columns; if false, it's
-       text intended for display in a monospaced font.
+  text intended for display in a monospaced font.
 $localize: If false, $report should be output in English.
 
-'ParserLimitReportPrepare': Called at the end of Parser:parse() when the parser will
-include comments about size of the text parsed. Hooks should use
+'ParserLimitReportPrepare': Called at the end of Parser:parse() when the parser
+will include comments about size of the text parsed. Hooks should use
 $output->setLimitReportData() to populate data. Functions for this hook should
 not use $wgLang; do that in ParserLimitReportFormat instead.
 $parser: Parser object
@@ -2232,39 +2282,49 @@ $section: the section number, zero-based, but section 0 is usually empty
 &$sectionContent: ref to the content of the section. modify this.
 $showEditLinks: boolean describing whether this section has an edit link
 
-'ParserTestParser': Called when creating a new instance of Parser in
-tests/parser/parserTest.inc.
-$parser: Parser object created
-
 'ParserTestGlobals': Allows to define globals for parser tests.
 &$globals: Array with all the globals which should be set for parser tests.
   The arrays keys serve as the globals names, its values are the globals values.
 
+'ParserTestParser': Called when creating a new instance of Parser in
+tests/parser/parserTest.inc.
+$parser: Parser object created
+
 'ParserTestTables': Alter the list of tables to duplicate when parser tests are
 run. Use when page save hooks require the presence of custom tables to ensure
 that tests continue to run properly.
 &$tables: array of table names
 
+'PasswordPoliciesForUser': Alter the effective password policy for a user.
+$user: User object whose policy you are modifying
+&$effectivePolicy: Array of policy statements that apply to this user
+
+'PerformRetroactiveAutoblock': Called before a retroactive autoblock is applied
+to a user.
+$block: Block object (which is set to be autoblocking)
+&$blockIds: Array of block IDs of the autoblock
+
 'PersonalUrls': Alter the user-specific navigation links (e.g. "my page,
 my talk page, my contributions" etc).
 &$personal_urls: Array of link specifiers (see SkinTemplate.php)
 &$title: Title object representing the current page
-$skin: SkinTemplate object providing context (e.g. to check if the user is logged in, etc.)
+$skin: SkinTemplate object providing context (e.g. to check if the user is
+  logged in, etc.)
 
 'PingLimiter': Allows extensions to override the results of User::pingLimiter().
-&$user : User performing the action
-$action : Action being performed
-&$result : Whether or not the action should be prevented
-Change $result and return false to give a definitive answer, otherwise
-the built-in rate limiting checks are used, if enabled.
+&$user: User performing the action
+$action: Action being performed
+&$result: Whether or not the action should be prevented
+  Change $result and return false to give a definitive answer, otherwise
+  the built-in rate limiting checks are used, if enabled.
 $incrBy: Amount to increment counter by
 
 'PlaceNewSection': Override placement of new sections. Return false and put the
 merged text into $text to override the default behavior.
-$wikipage : WikiPage object
-$oldtext : the text of the article before editing
-$subject : subject of the new section
-&$text : text of the new section
+$wikipage: WikiPage object
+$oldtext: the text of the article before editing
+$subject: subject of the new section
+&$text: text of the new section
 
 'PostLoginRedirect': Modify the post login redirect behavior.
 Occurs after signing up or logging in, allows for interception of redirect.
@@ -2276,32 +2336,33 @@ Occurs after signing up or logging in, allows for interception of redirect.
   success: display a return to link using $wgRedirectOnLogin if needed
   successredirect: send an HTTP redirect using $wgRedirectOnLogin if needed
 
+'PreferencesFormPreSave': Override preferences being saved
+$formData: array of user submitted data
+$form: PreferencesForm object, also a ContextSource
+$user: User object with preferences to be saved set
+&$result: boolean indicating success
+
 'PreferencesGetLegend': Override the text used for the <legend> of a
 preferences section.
 $form: the PreferencesForm object. This is a ContextSource as well
 $key: the section name
-&$legend: the legend text. Defaults to wfMessage( "prefs-$key" )->text() but may be overridden
-
-'PreferencesFormPreSave': Override preferences being saved
- $formData: array of user submitted data
- $form: PreferencesForm object, also a ContextSource
- $user: User object with preferences to be saved set
- &$result: boolean indicating success
+&$legend: the legend text. Defaults to wfMessage( "prefs-$key" )->text() but may
+  be overridden
 
 'PrefixSearchBackend': Override the title prefix search used for OpenSearch and
 AJAX search suggestions. Put results into &$results outparam and return false.
-$ns : array of int namespace keys to search in
-$search : search term (not guaranteed to be conveniently normalized)
-$limit : maximum number of results to return
-&$results : out param: array of page names (strings)
-$offset : number of results to offset from the beginning
+$ns: array of int namespace keys to search in
+$search: search term (not guaranteed to be conveniently normalized)
+$limit: maximum number of results to return
+&$results: out param: array of page names (strings)
+$offset: number of results to offset from the beginning
 
 'PrefixSearchExtractNamespace': Called if core was not able to extract a
 namespace from the search string so that extensions can attempt it.
-$namespaces : array of int namespace keys to search in (change this if you can
-extract namespaces)
-$search : search term (replace this with term without the namespace if you can
-extract one)
+$namespaces: array of int namespace keys to search in (change this if you can
+  extract namespaces)
+$search: search term (replace this with term without the namespace if you can
+  extract one)
 
 'PrefsEmailAudit': Called when user changes their email address.
 $user: User (object) changing his email address
@@ -2344,7 +2405,7 @@ such as Special:MyPage and Special:MyTalk.
 'RequestContextCreateSkin': Called when RequestContext::getSkin creates a skin
 instance. Can be used by an extension override what skin is used in certain
 contexts.
-IContextSource $context: The RequestContext the skin is being created for.
+$context: (IContextSource) The RequestContext the skin is being created for.
 &$skin: A variable reference you may set a Skin instance or string key on to
   override the skin that will be used for the context.
 
@@ -2362,8 +2423,9 @@ configuration variables to JavaScript. Things that depend on the current page
 or request state must be added through MakeGlobalVariablesScript instead.
 &$vars: array( variable name => value )
 
-'ResourceLoaderGetLessVars': Called in ResourceLoader::getLessVars after variables
-from $wgResourceLoaderLESSVars are added. Can be used to add context-based variables.
+'ResourceLoaderGetLessVars': Called in ResourceLoader::getLessVars after
+variables from $wgResourceLoaderLESSVars are added. Can be used to add
+context-based variables.
 &$lessVars: array of variables already added
 
 'ResourceLoaderRegisterModules': Right before modules information is required,
@@ -2373,17 +2435,16 @@ loader request or generating HTML output.
 
 'ResourceLoaderTestModules': Let you add new JavaScript testing modules. This is
 called after the addition of 'qunit' and MediaWiki testing resources.
-&testModules: array of JavaScript testing modules. The 'qunit' framework,
+&$testModules: array of JavaScript testing modules. The 'qunit' framework,
   included in core, is fed using tests/qunit/QUnitTestResources.php.
-&ResourceLoader object
-
-To add a new qunit module named 'myext.tests':
-testModules['qunit']['myext.tests'] = array(
-       'script' => 'extension/myext/tests.js',
-       'dependencies' => <any module dependency you might have>
-);
-For QUnit framework, the mediawiki.tests.qunit.testrunner dependency will be
-added to any module.
+  To add a new qunit module named 'myext.tests':
+       $testModules['qunit']['myext.tests'] = array(
+               'script' => 'extension/myext/tests.js',
+               'dependencies' => <any module dependency you might have>
+       );
+  For QUnit framework, the mediawiki.tests.qunit.testrunner dependency will be
+  added to any module.
+&$ResourceLoader: object
 
 'RevisionInsertComplete': Called after a revision is inserted into the database.
 &$revision: the Revision
@@ -2394,35 +2455,35 @@ $data: the data stored in old_text.  The meaning depends on $flags: if external
 $flags: a comma-delimited list of strings representing the options used.  May
   include: utf8 (this will always be set for new revisions); gzip; external.
 
-'SearchGetNearMatchBefore': Perform exact-title-matches in "go" searches before
-the normal operations.
-$allSearchTerms : Array of the search terms in all content languages
-&$titleResult : Outparam; the value to return. A Title object or null.
+'SearchableNamespaces': An option to modify which namespaces are searchable.
+&$arr: Array of namespaces ($nsId => $name) which will be used.
 
 'SearchAfterNoDirectMatch': If there was no match for the exact result. This
 runs before lettercase variants are attempted, whereas 'SearchGetNearMatch'
 runs after.
-$term : Search term string
-&$title : Outparam; set to $title object and return false for a match
+$term: Search term string
+&$title: Outparam; set to $title object and return false for a match
 
 'SearchGetNearMatch': An extra chance for exact-title-matches in "go" searches
 if nothing was found.
-$term : Search term string
-&$title : Outparam; set to $title object and return false for a match
+$term: Search term string
+&$title: Outparam; set to $title object and return false for a match
+
+'SearchGetNearMatchBefore': Perform exact-title-matches in "go" searches before
+the normal operations.
+$allSearchTerms: Array of the search terms in all content languages
+&$titleResult: Outparam; the value to return. A Title object or null.
 
 'SearchGetNearMatchComplete': A chance to modify exact-title-matches in "go"
 searches.
-$term : Search term string
-&$title : Current Title object that is being returned (null if none found).
+$term: Search term string
+&$title: Current Title object that is being returned (null if none found).
 
 'SearchResultInitFromTitle': Set the revision used when displaying a page in
 search results.
-$title : Current Title object being displayed in search results.
+$title: Current Title object being displayed in search results.
 &$id: Revision ID (default is false, for latest)
 
-'SearchableNamespaces': An option to modify which namespaces are searchable.
-&$arr : Array of namespaces ($nsId => $name) which will be used.
-
 'SecondaryDataUpdates': Allows modification of the list of DataUpdates to
 perform when page content is modified. Currently called by
 AbstractContent::getSecondaryDataUpdates.
@@ -2443,24 +2504,23 @@ $nt: the Title object
 &$prefix: optional text to display after $html
 &$ret: the value to return if your hook returns false
 
+'SendWatchlistEmailNotification': Return true to send watchlist email
+notification
+$targetUser: the user whom to send watchlist email notification
+$title: the page title
+$enotif: EmailNotification object
+
 'SetupAfterCache': Called in Setup.php, after cache objects are set
 
 'ShowMissingArticle': Called when generating the output for a non-existent page.
 $article: The article object corresponding to the page
 
-'ShowRawCssJs': Customise the output of raw CSS and JavaScript in page views.
-DEPRECATED, use the ContentGetParserOutput hook instead!
+'ShowRawCssJs': DEPRECATED! Use the ContentGetParserOutput hook instead.
+Customise the output of raw CSS and JavaScript in page views.
 $text: Text being shown
 $title: Title of the custom script/stylesheet page
 $output: Current OutputPage object
 
-'ShowSearchHitTitle': Customise display of search hit title/link.
-&$title: Title to link to
-&$text: Text to use for the link
-$result: The search result
-$terms: The search terms entered
-$page: The SpecialSearch object.
-
 'ShowSearchHit': Customize display of search hit.
 $searchPage: The SpecialSearch instance.
 $result: The SearchResult to show
@@ -2477,17 +2537,31 @@ $terms: Search terms, for highlighting
   hit. Must include the <li> ... </li> tags. Will only be used if the hook
   function returned false.
 
-'SiteNoticeBefore': Before the sitenotice/anonnotice is composed. Return true to
-allow the normal method of notice selection/rendering to work, or change the
-value of $siteNotice and return false to alter it.
-&$siteNotice: HTML returned as the sitenotice
+'ShowSearchHitTitle': Customise display of search hit title/link.
+&$title: Title to link to
+&$text: Text to use for the link
+$result: The search result
+$terms: The search terms entered
+$page: The SpecialSearch object.
+
+'SidebarBeforeOutput': Allows to edit sidebar just before it is output by skins.
+Warning: This hook is run on each display. You should consider to use
+'SkinBuildSidebar' that is aggressively cached.
 $skin: Skin object
+&$bar: Sidebar content
+  Modify $bar to add or modify sidebar portlets.
 
 'SiteNoticeAfter': After the sitenotice/anonnotice is composed.
 &$siteNotice: HTML sitenotice. Alter the contents of $siteNotice to add to/alter
   the sitenotice/anonnotice.
 $skin: Skin object
 
+'SiteNoticeBefore': Before the sitenotice/anonnotice is composed. Return true to
+allow the normal method of notice selection/rendering to work, or change the
+value of $siteNotice and return false to alter it.
+&$siteNotice: HTML returned as the sitenotice
+$skin: Skin object
+
 'SkinAfterBottomScripts': At the end of Skin::bottomScripts().
 $skin: Skin object
 &$text: bottomScripts Text. Append to $text to add additional text/scripts after
@@ -2504,12 +2578,6 @@ $skin: Skin object
 &$bar: Sidebar contents
 Modify $bar to add or modify sidebar portlets.
 
-'SidebarBeforeOutput': Allows to edit sidebar just before its output by skins.
-$skin Skin object
-&$bar: Sidebar content
-Modify $bar to add or modify sidebar portlets.
-Warning: This hook is run on each display. You should consider to use 'SkinBuildSidebar' that is aggressively cached.
-
 'SkinCopyrightFooter': Allow for site and per-namespace customization of
 copyright notice.
 $title: displayed page title
@@ -2517,8 +2585,8 @@ $type: 'normal' or 'history' for old/diff views
 &$msg: overridable message; usually 'copyright' or 'history_copyright'. This
   message must be in HTML format, not wikitext!
 &$link: overridable HTML link to be passed into the message as $1
-&$forContent: overridable flag if copyright footer is shown in content language.
-  This parameter is deprecated.
+&$forContent: DEPRECATED! overridable flag if copyright footer is shown in
+  content language.
 
 'SkinEditSectionLinks': Modify the section edit links
 $skin: Skin object rendering the UI
@@ -2528,18 +2596,18 @@ $section: The designation of the section being pointed to, to be included in
   the link, like "&section=$section"
 $tooltip: The default tooltip.  Escape before using.
   By default, this is wrapped in the 'editsectionhint' message.
-&$result: Array containing all link detail arrays. Each link detail array should contain
-  the following keys:
-  * targetTitle - Target Title object
-  * text - String for the text
-  * attribs - Array of attributes
-  * query - Array of query parameters to add to the URL
-  * options - Array of options for Linker::link
+&$result: Array containing all link detail arrays. Each link detail array should
+  contain the following keys:
+    - targetTitle - Target Title object
+    - text - String for the text
+    - attribs - Array of attributes
+    - query - Array of query parameters to add to the URL
+    - options - Array of options for Linker::link
 $lang: The language code to use for the link in the wfMessage function
 
 'SkinGetPoweredBy': TODO
 &$text: additional 'powered by' icons in HTML. Note: Modern skin does not use
-the MediaWiki icon but plain text instead.
+  the MediaWiki icon but plain text instead.
 $skin: Skin object
 
 'SkinPreloadExistence': Supply titles that should be added to link existence
@@ -2548,13 +2616,13 @@ cache before the page is rendered.
 $skin: Skin object
 
 'SkinSubPageSubtitle': At the beginning of Skin::subPageSubtitle().
-&$subpages: Subpage links HTML
-$skin: Skin object
-$out: OutputPage object
 If false is returned $subpages will be used instead of the HTML
 subPageSubtitle() generates.
 If true is returned, $subpages will be ignored and the rest of
 subPageSubtitle() will run.
+&$subpages: Subpage links HTML
+$skin: Skin object
+$out: OutputPage object
 
 'SkinTemplateBuildNavUrlsNav_urlsAfterPermalink': After creating the "permanent
 link" tab.
@@ -2569,13 +2637,18 @@ $languageLinkTitle: Title object belonging to the external language link.
 $title: Title object of the page the link belongs to.
 $outputPage: The OutputPage object the links are built from.
 
-To alter the structured navigation links in SkinTemplates, there are three
-hooks called in different spots:
-
 'SkinTemplateNavigation': Called on content pages after the tabs have been
 added, but before variants have been added.
+&$sktemplate: SkinTemplate object
+&$links: Structured navigation links. This is used to alter the navigation for
+  skins which use buildNavigationUrls such as Vector.
+
 'SkinTemplateNavigation::SpecialPage': Called on special pages after the special
 tab is added but before variants have been added.
+&$sktemplate: SkinTemplate object
+&$links: Structured navigation links. This is used to alter the navigation for
+  skins which use buildNavigationUrls such as Vector.
+
 'SkinTemplateNavigation::Universal': Called on both content and special pages
 after variants have been added.
 &$sktemplate: SkinTemplate object
@@ -2617,10 +2690,6 @@ software.
 $software: The array of software in format 'name' => 'version'. See
   SpecialVersion::softwareInformation().
 
-'SpecialPageBeforeFormDisplay': Before executing the HTMLForm object.
-$name: name of the special page
-&$form: HTMLForm object
-
 'SpecialBlockModifyFormFields': Add more fields to Special:Block
 $sp: SpecialPage object, for context
 &$fields: Current HTMLForm fields
@@ -2670,7 +2739,7 @@ Special:NewPages.
 &$special: NewPagesPager object (subclass of ReverseChronologicalPager)
 $opts: FormOptions object containing special page options
 &$conds: array of WHERE conditionals for query
-&tables: array of tables to be queried
+&$tables: array of tables to be queried
 &$fields: array of columns to select
 &$join_conds: join conditions for the tables
 
@@ -2680,8 +2749,8 @@ $special: the special page object
   name/URL parameters. Each key maps to an associative array with a 'msg'
   (message key) and a 'default' value.
 
-'SpecialPage_initList': Called when setting up SpecialPageFactory::$list, use this
-hook to remove a core special page or conditionally register special pages.
+'SpecialPage_initList': Called when setting up SpecialPageFactory::$list, use
+this hook to remove a core special page or conditionally register special pages.
 $list: list (array) of core special pages
 
 'SpecialPageAfterExecute': Called after SpecialPage::execute.
@@ -2692,6 +2761,10 @@ $subPage: the subpage string or null if no subpage was specified
 $special: the SpecialPage object
 $subPage: the subpage string or null if no subpage was specified
 
+'SpecialPageBeforeFormDisplay': Before executing the HTMLForm object.
+$name: name of the special page
+&$form: HTMLForm object
+
 'SpecialPasswordResetOnSubmit': When executing a form submission on
 Special:PasswordReset.
 $users: array of User objects.
@@ -2709,8 +2782,9 @@ use this to change some selection criteria or substitute a different title.
 &$title: If the hook returns false, a Title object to use instead of the
   result from the normal query
 
-'SpecialRecentChangesFilters': Called after building form options at
-RecentChanges. Deprecated, use ChangesListSpecialPageFilters instead.
+'SpecialRecentChangesFilters': DEPRECATED! Use ChangesListSpecialPageFilters
+instead.
+Called after building form options at RecentChanges.
 $special: the special page object
 &$filters: associative array of filter definitions. The keys are the HTML
   name/URL parameters. Each key maps to an associative array with a 'msg'
@@ -2721,9 +2795,10 @@ SpecialRecentChanges.
 &$extraOpts: array of added items, to which can be added
 $opts: FormOptions for this request
 
-'SpecialRecentChangesQuery': Called when building SQL query for
-SpecialRecentChanges and SpecialRecentChangesLinked. Deprecated, use
-ChangesListSpecialPageQuery instead.
+'SpecialRecentChangesQuery': DEPRECATED! Use ChangesListSpecialPageQuery
+instead.
+Called when building SQL query for SpecialRecentChanges and
+SpecialRecentChangesLinked.
 &$conds: array of WHERE conditionals for query
 &$tables: array of tables to be queried
 &$join_conds: join conditions for the tables
@@ -2734,7 +2809,10 @@ $opts: FormOptions for this request
 'SpecialResetTokensTokens': Called when building token list for
 SpecialResetTokens.
 &$tokens: array of token information arrays in the format of
-  array( 'preference' => '<preference-name>', 'label-message' => '<message-key>' )
+       array(
+               'preference' => '<preference-name>',
+               'label-message' => '<message-key>',
+       )
 
 'SpecialSearchCreateLink': Called when making the message to create a page or
 go to the existing page.
@@ -2751,9 +2829,6 @@ the advanced form, a.k.a. power search box.
 $term: the search term (not a title object)
 $opts: an array of hidden options (containing 'redirs' and 'profile')
 
-'SpecialSearchProfiles': Allows modification of search profiles.
-&$profiles: profiles, which can be modified.
-
 'SpecialSearchProfileForm': Allows modification of search profile forms.
 $search: special page object
 &$form: String: form html
@@ -2761,10 +2836,13 @@ $profile: String: current search profile
 $term: String: search term
 $opts: Array: key => value of hidden options for inclusion in custom forms
 
-'SpecialSearchSetupEngine': Allows passing custom data to search engine.
-$search: SpecialSearch special page object
-$profile: String: current search profile
-$engine: the search engine
+'SpecialSearchProfiles': Allows modification of search profiles.
+&$profiles: profiles, which can be modified.
+
+'SpecialSearchResults': Called before search result display
+$term: string of search term
+&$titleMatches: empty or SearchResultSet object
+&$textMatches: empty or SearchResultSet object
 
 'SpecialSearchResultsPrepend': Called immediately before returning HTML
 on the search results page.  Useful for including an external search
@@ -2774,14 +2852,20 @@ $specialSearch: SpecialSearch object ($this)
 $output: $wgOut
 $term: Search term specified by the user
 
-'SpecialSearchResults': Called before search result display
-$term: string of search term
-&$titleMatches: empty or SearchResultSet object
-&$textMatches: empty or SearchResultSet object
+'SpecialSearchSetupEngine': Allows passing custom data to search engine.
+$search: SpecialSearch special page object
+$profile: String: current search profile
+$engine: the search engine
 
 'SpecialStatsAddExtra': Add extra statistic at the end of Special:Statistics.
 &$extraStats: Array to save the new stats
-  ( $extraStats['<name of statistic>'] => <value>; )
+       $extraStats['<name of statistic>'] => <value>;
+  <value> can be an array with the keys "name" and "number":
+  "name" is the HTML to be displayed in the name column
+  "number" is the number to be displayed.
+  or, <value> can be the number to be displayed and <name> is the
+  message key to use in the name column,
+$context: IContextSource object
 
 'SpecialUploadComplete': Called after successfully uploading a file from
 Special:Upload.
@@ -2791,26 +2875,27 @@ $form: The SpecialUpload object
 $wgVersion: Current $wgVersion for you to use
 &$versionUrl: Raw url to link to (eg: release notes)
 
-'SpecialWatchlistFilters': Called after building form options at Watchlist.
-Deprecated, use ChangesListSpecialPageFilters instead.
+'SpecialWatchlistFilters': DEPRECATED! Use ChangesListSpecialPageFilters
+instead.
+Called after building form options at Watchlist.
 $special: the special page object
 &$filters: associative array of filter definitions. The keys are the HTML
   name/URL parameters. Each key maps to an associative array with a 'msg'
   (message key) and a 'default' value.
 
-'SpecialWatchlistQuery': Called when building sql query for SpecialWatchlist.
-Deprecated, use ChangesListSpecialPageQuery instead.
+'SpecialWatchlistGetNonRevisionTypes': Called when building sql query for
+SpecialWatchlist. Allows extensions to register custom values they have
+inserted to rc_type so they can be returned as part of the watchlist.
+&$nonRevisionTypes: array of values in the rc_type field of recentchanges table
+
+'SpecialWatchlistQuery': DEPRECATED! Use ChangesListSpecialPageQuery instead.
+Called when building sql query for SpecialWatchlist.
 &$conds: array of WHERE conditionals for query
 &$tables: array of tables to be queried
 &$join_conds: join conditions for the tables
 &$fields: array of query fields
 $opts: A FormOptions object with watchlist options for the current request
 
-'SpecialWatchlistGetNonRevisionTypes': Called when building sql query for
-SpecialWatchlist. Allows extensions to register custom values they have
-inserted to rc_type so they can be returned as part of the watchlist.
-&$nonRevisionTypes: array of values in the rc_type field of recentchanges table
-
 'TestCanonicalRedirect': Called when about to force a redirect to a canonical
 URL for a title when we have no other parameters on the URL. Gives a chance for
 extensions that alter page view behavior radically to abort that redirect or
@@ -2834,32 +2919,17 @@ $res: database result used to create the object
 $title: The title being tested.
 &$exists: Whether the title exists.
 
-'TitleQuickPermissions': Called from Title::checkQuickPermissions to add to
-or override the quick permissions check.
-$title: The Title object being accessed
-$user: The User performing the action
-$action: Action being performed
-&$errors: Array of errors
-$doExpensiveQueries: Whether to do expensive DB queries
-$short: Whether to return immediately on first error
-
 'TitleGetEditNotices': Allows extensions to add edit notices
 $title: The Title object for the page the edit notices are for
 $oldid: Revision ID that the edit notices are for (or 0 for latest)
-&$notices: Array of notices. Keys are i18n message keys, values are parseAsBlock()ed messages.
+&$notices: Array of notices. Keys are i18n message keys, values are
+parseAsBlock()ed messages.
 
 'TitleGetRestrictionTypes': Allows extensions to modify the types of protection
 that can be applied.
 $title: The title in question.
 &$types: The types of protection available.
 
-'TitleIsCssOrJsPage': DEPRECATED! Use ContentHandlerDefaultModelFor instead.
-Called when determining if a page is a CSS or JS page.
-$title: Title object that is being checked
-$result: Boolean; whether MediaWiki currently thinks this is a CSS/JS page.
-  Hooks may change this value to override the return value of
-  Title::isCssOrJsPage().
-
 'TitleIsAlwaysKnown': Called when determining if a page exists. Allows
 overriding default behavior for determining if a page exists. If $isKnown is
 kept as null, regular checks happen. If it's a boolean, this value is returned
@@ -2867,6 +2937,13 @@ by the isKnown method.
 $title: Title object that is being checked
 &$isKnown: Boolean|null; whether MediaWiki currently thinks this page is known
 
+'TitleIsCssOrJsPage': DEPRECATED! Use ContentHandlerDefaultModelFor instead.
+Called when determining if a page is a CSS or JS page.
+$title: Title object that is being checked
+$result: Boolean; whether MediaWiki currently thinks this is a CSS/JS page.
+  Hooks may change this value to override the return value of
+  Title::isCssOrJsPage().
+
 'TitleIsMovable': Called when determining if it is possible to move a page. Note
 that this hook is not called for interwiki pages or pages in immovable
 namespaces: for these, isMovable() always returns false.
@@ -2896,6 +2973,15 @@ $pageid: database ID of the page that's been moved
 $redirid: database ID of the created redirect
 $reason: reason for the move
 
+'TitleQuickPermissions': Called from Title::checkQuickPermissions to add to
+or override the quick permissions check.
+$title: The Title object being accessed
+$user: The User performing the action
+$action: Action being performed
+&$errors: Array of errors
+$doExpensiveQueries: Whether to do expensive DB queries
+$short: Whether to return immediately on first error
+
 'TitleReadWhitelist': Called at the end of read permissions checks, just before
 adding the default error message if nothing allows the user to read the page. If
 a handler wants a title to *not* be whitelisted, it should also return false.
@@ -2928,16 +3014,16 @@ $title: Title object of the page that we're about to undelete
 $title: title object related to the revision
 $rev: revision (object) that will be viewed
 
-'UnknownAction': An unknown "action" has occurred (useful for defining your own
-actions).
-$action: action name
-$article: article "acted on"
-
 'UnitTestsList': Called when building a list of paths containing PHPUnit tests.
 Since 1.24: Paths pointing to a directory will be recursively scanned for
 test case files matching the suffix "Test.php".
 &$paths: list of test cases and directories to search.
 
+'UnknownAction': An unknown "action" has occurred (useful for defining your own
+actions).
+$action: action name
+$article: article "acted on"
+
 'UnwatchArticle': Before a watch is removed from an article.
 $user: user watching
 $page: WikiPage object to be removed
@@ -2950,10 +3036,13 @@ $page: WikiPage object that was watched
 'UpdateUserMailerFormattedPageStatus': Before notification email gets sent.
 $formattedPageStatus: list of valid page states
 
-'UploadForm:initial': Before the upload form is generated. You might set the
-member-variables $uploadFormTextTop and $uploadFormTextAfterSummary to inject
-text (HTML) either before or after the editform.
-$form: UploadForm object
+'UploadComplete': Upon completion of a file upload.
+$uploadBase: UploadBase (or subclass) object. File can be accessed by
+  $uploadBase->getLocalFile().
+
+'UploadCreateFromRequest': When UploadBase::createFromRequest has been called.
+$type: (string) the requested upload type
+&$className: the class name of the Upload instance to be created
 
 'UploadForm:BeforeProcessing': At the beginning of processUpload(). Lets you
 poke at member variables like $mUploadDescription before the file is saved. Do
@@ -2962,12 +3051,10 @@ blank form with no error message; use UploadVerification and UploadVerifyFile
 instead.
 $form: UploadForm object
 
-'UploadCreateFromRequest': When UploadBase::createFromRequest has been called.
-$type: (string) the requested upload type
-&$className: the class name of the Upload instance to be created
-
-'UploadComplete': when Upload completes an upload.
-&$upload: an UploadBase child instance
+'UploadForm:initial': Before the upload form is generated. You might set the
+member-variables $uploadFormTextTop and $uploadFormTextAfterSummary to inject
+text (HTML) either before or after the editform.
+$form: UploadForm object
 
 'UploadFormInitDescriptor': After the descriptor for the upload form as been
 assembled.
@@ -2979,25 +3066,21 @@ $descriptor: (array) the HTMLForm descriptor
 
 'UploadVerification': Additional chances to reject an uploaded file. Consider
 using UploadVerifyFile instead.
-string $saveName: destination file name
-string $tempName: filesystem path to the temporary file for checks
-string &$error: output: message key for message to show if upload canceled by
+$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
   returning false. May also be an array, where the first element is the message
   key and the remaining elements are used as parameters to the message.
 
 'UploadVerifyFile': extra file verification, based on MIME type, etc. Preferred
 in most cases over UploadVerification.
-object $upload: an instance of UploadBase, with all info about the upload
-string $mime: The uploaded file's MIME type, as detected by MediaWiki. Handlers
-  will typically only apply for specific MIME types.
-object &$error: output: true if the file is valid. Otherwise, an indexed array
+$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.
 
-'UploadComplete': Upon completion of a file upload.
-$uploadBase: UploadBase (or subclass) object. File can be accessed by
-  $uploadBase->getLocalFile().
-
 'User::mailPasswordInternal': before creation and mailing of a user's new
 temporary password
 $user: the user who sent the message out
@@ -3017,7 +3100,7 @@ $res: database result used to create the object
 'userCan': To interrupt/advise the "user can do X to Y article" check. If you
 want to display an error message, try getUserPermissionsErrors.
 $title: Title object being checked against
-$user : Current user object
+$user: Current user object
 $action: Action being checked
 $result: Pointer to result returned if hook returns false. If null is returned,
   userCan checks are continued by internal code.
@@ -3058,7 +3141,8 @@ $user: User object
 &$timestamp: timestamp, change this to override local email authentication
   timestamp
 
-'UserGetImplicitGroups': DEPRECATED, called in User::getImplicitGroups().
+'UserGetImplicitGroups': DEPRECATED!
+Called in User::getImplicitGroups().
 &$groups: List of implicit (automatically-assigned) groups
 
 'UserGetLanguageObject': Called when getting user's interface language object.
@@ -3128,16 +3212,16 @@ $user: the user object _after_ logout (won't have name, ID, etc.)
 $inject_html: Any HTML to inject after the "logged out" message.
 $oldName: name of the user before logout (string)
 
+'UserMailerChangeReturnPath': Called to generate a VERP return address
+when UserMailer sends an email, with a bounce handling extension.
+$to: Array of MailAddress objects for the recipients
+&$returnPath: The return address string
+
 'UserRemoveGroup': Called when removing a group; return false to override stock
 group removal.
 $user: the user object that is to have a group removed
 &$group: the group to be removed, can be modified
 
-'UserRights': After a user's group memberships are changed.
-$user  : User object that was changed
-$add   : Array of strings corresponding to groups added
-$remove: Array of strings corresponding to groups removed
-
 'UserRequiresHTTPS': Called to determine whether a user needs
 to be switched to HTTPS.
 $user: User in question.
@@ -3158,13 +3242,18 @@ message(s).
 $user: user retrieving new talks messages
 $talks: array of new talks page(s)
 
-'UserSaveSettings': Called when saving user settings.
-$user: User object
+'UserRights': After a user's group memberships are changed.
+$user: User object that was changed
+$add: Array of strings corresponding to groups added
+$remove: Array of strings corresponding to groups removed
 
 'UserSaveOptions': Called just before saving user preferences/options.
 $user: User object
 &$options: Options, modifiable
 
+'UserSaveSettings': Called when saving user settings.
+$user: User object
+
 'UserSetCookies': Called when setting user cookies.
 $user: User object
 &$session: session array, will be added to $_SESSION
@@ -3192,16 +3281,6 @@ invalidated and GetExtendedMetadata hook called again).
 $timestamp: The timestamp metadata was generated
 $file: The file the metadata is for
 
-'UserMailerChangeReturnPath': Called to generate a VERP return address
-when UserMailer sends an email, with a bounce handling extension.
-$to: Array of MailAddress objects for the recipients
-&$returnPath: The return address string
-
-'LoginFormValidErrorMessages': Called in LoginForm when a function gets valid error
-messages. Allows to add additional error messages (except messages already in
-LoginForm::$validErrorMessages).
-&$messages Already added messages (inclusive messages from LoginForm::$validErrorMessages)
-
 'WantedPages::getQueryInfo': Called in WantedPagesPage::getQueryInfo(), can be
 used to alter the SQL query which gets the list of wanted pages.
 &$wantedPages: WantedPagesPage object
@@ -3240,6 +3319,17 @@ Return false to prevent setting of the cookie.
 &$expire: Cookie expiration, as for PHP's setcookie()
 $options: Options passed to WebResponse::setcookie()
 
+'wfShellWikiCmd': Called when generating a shell-escaped command line string to
+run a MediaWiki cli script.
+&$script: MediaWiki cli script path
+&$parameters: Array of arguments and options to the script
+&$options: Associative array of options, may contain the 'php' and 'wrapper'
+  keys
+
+'wgQueryPages': Called when initialising list of QueryPage subclasses, use this
+to add new query pages to be updated with maintenance/updateSpecialPages.php.
+$qp: The list of QueryPages
+
 'WhatLinksHereProps': Allows annotations to be added to WhatLinksHere
 $row: The DB row of the entry.
 $title: The Title of the page where the link comes FROM
@@ -3260,17 +3350,6 @@ $page: the WikiPage
 $content: the Content to generate updates for
 &$updates: the array of DataUpdate objects. Hook function may want to add to it.
 
-'wfShellWikiCmd': Called when generating a shell-escaped command line string to
-run a MediaWiki cli script.
-&$script: MediaWiki cli script path
-&$parameters: Array of arguments and options to the script
-&$options: Associative array of options, may contain the 'php' and 'wrapper'
-  keys
-
-'wgQueryPages': Called when initialising list of QueryPage subclasses, use this
-to add new query pages to be updated with maintenance/updateSpecialPages.php.
-$qp: The list of QueryPages
-
 'XmlDumpWriterOpenPage': Called at the end of XmlDumpWriter::openPage, to allow
 extra metadata to be added.
 $obj: The XmlDumpWriter object.
@@ -3285,16 +3364,5 @@ $obj: The XmlDumpWriter object.
 $row: The database row for the revision.
 $text: The revision text.
 
-'XMPGetInfo': Called when obtaining the list of XMP tags to extract. Can be used
-to add additional tags to extract.
-&$items: Array containing information on which items to extract. See XMPInfo for
-  details on the format.
-
-'XMPGetResults': Called just before returning the results array of parsing xmp
-data. Can be used to post-process the results.
-&$data: Array of metadata sections (such as $data['xmp-general']) each section
-  is an array of metadata tags returned (each tag is either a value, or an array
-  of values).
-
 More hooks might be available but undocumented, you can execute
 "php maintenance/findHooks.php" to find hidden ones.
index 933260e..d1ae26a 100644 (file)
                                        {{else}}
                                                {{#whenDepth 2}}
                                                <a name="section-{{ reference }}"></a>
-                                               <h2>{{ reference }} {{ header }}</h2>
+                                               <h2><a href="#section-{{ reference }}">{{ reference }} {{ header }}</a></h2>
                                                {{/whenDepth}}
                                                {{#whenDepth 3}}
-                                               <h3>{{ reference }} {{ header }}</h3>
+                                               <a name="section-{{ reference }}"></a>
+                                               <h3><a href="#section-{{ reference }}">{{ reference }} {{ header }}</a></h3>
                                                {{/whenDepth}}
                                        {{/whenDepth}}
                                        {{#ifAny markup modifiers}}
index eeea1a8..3727694 100644 (file)
@@ -106,6 +106,11 @@ nav {
 
        h1, h2, h3, h4, h5, h6, p {
                margin-left: 20px;
+
+               a {
+                       text-decoration: none;
+                       color: #000;
+               }
        }
 
        p {
index d18b199..ad2307f 100644 (file)
@@ -152,7 +152,6 @@ Newtalk:
 
 Parser Cache:
        stored in: $parserMemc
-       controlled by: $wgEnableParserCache
        key: $wgDBname:pcache:idhash:$pageid-$renderkey!$hash
                $pageid: id of the page
                $renderkey: 1 if action=render, 0 otherwise
index 178bb15..53dff36 100644 (file)
@@ -49,7 +49,4 @@ Primary scripts:
 
 There is also a file with a .php5 extension for each script. They can be used if
 the web server needs a .php5 to run the file with the PHP 5 engine and runs .php
-scripts with PHP 4. To use these files, you have to modify $wgScriptExtension to
-'.php5' is LocalSettings.php but it is already done by the config script if you
-used mw-config/index.php5 for installation.
-
+scripts with PHP 4. You should not use them anymore.
index 22fd401..8859141 100644 (file)
@@ -46,11 +46,9 @@ $wgArticlePath = false; # Don't let a "/*" article path clober our action path
 $wgActionPaths = array( "$wgUploadPath/" );
 
 wfImageAuthMain();
-wfLogProfilingData();
-// Commit and close up!
-$factory = wfGetLBFactory();
-$factory->commitMasterChanges();
-$factory->shutdown();
+
+$mediawiki = new MediaWiki();
+$mediawiki->doPostOutputShutdown( 'fast' );
 
 function wfImageAuthMain() {
        global $wgImgAuthUrlPathMap;
@@ -197,7 +195,7 @@ function wfForbidden( $msg1, $msg2 ) {
                        wfMessage( $msg2, $args )->inLanguage( 'en' )->text()
        );
 
-       header( 'HTTP/1.0 403 Forbidden' );
+       HttpStatus::header( 403 );
        header( 'Cache-Control: no-cache' );
        header( 'Content-Type: text/html; charset=utf-8' );
        echo <<<ENDS
index 8e9f490..2984c33 100644 (file)
@@ -86,7 +86,7 @@ class AjaxResponse {
 
                $this->mDisabled = false;
                $this->mText = '';
-               $this->mResponseCode = '200 OK';
+               $this->mResponseCode = 200;
                $this->mLastModified = false;
                $this->mContentType = 'application/x-wiki';
 
@@ -158,8 +158,12 @@ class AjaxResponse {
         */
        function sendHeaders() {
                if ( $this->mResponseCode ) {
-                       $n = preg_replace( '/^ *(\d+)/', '\1', $this->mResponseCode );
-                       header( "Status: " . $this->mResponseCode, true, (int)$n );
+                       // For back-compat, it is supported that mResponseCode be a string like " 200 OK"
+                       // (with leading space and the status message after). Cast response code to an integer
+                       // to take advantage of PHP's conversion rules which will turn "  200 OK" into 200.
+                       // http://php.net/string#language.types.string.conversion
+                       $n = intval( trim( $this->mResponseCode ) );
+                       HttpStatus::header( $n );
                }
 
                header ( "Content-Type: " . $this->mContentType );
@@ -246,7 +250,7 @@ class AjaxResponse {
                                $ismodsince >= $wgCacheEpoch
                        ) {
                                ini_set( 'zlib.output_compression', 0 );
-                               $this->setResponseCode( "304 Not Modified" );
+                               $this->setResponseCode( 304 );
                                $this->disable();
                                $this->mLastModified = $lastmod;
 
index 481d8e7..c1f0b38 100644 (file)
@@ -320,16 +320,16 @@ class IcuCollation extends Collation {
                // intl extension produces non null-terminated
                // strings. Appending '' fixes it so that it doesn't generate
                // a warning on each access in debug php.
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $key = $this->mainCollator->getSortKey( $string ) . '';
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                return $key;
        }
 
        function getPrimarySortKey( $string ) {
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $key = $this->primaryCollator->getSortKey( $string ) . '';
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                return $key;
        }
 
index 51e807c..d278c59 100644 (file)
@@ -154,12 +154,15 @@ $wgUsePathInfo = ( strpos( PHP_SAPI, 'cgi' ) === false ) &&
        ( strpos( PHP_SAPI, 'isapi' ) === false );
 
 /**
- * The extension to append to script names by default. This can either be .php
- * or .php5.
+ * The extension to append to script names by default.
+ *
+ * Some hosting providers used PHP 4 for *.php files, and PHP 5 for *.php5.
+ * This variable was provided to support those providers.
  *
- * Some hosting providers use PHP 4 for *.php files, and PHP 5 for *.php5. This
- * variable is provided to support those providers.
  * @since 1.11
+ * @deprecated since 1.25; support for '.php5' is being phased out of MediaWiki
+ *  proper. Backward-compatibility can be maintained by configuring your web
+ *  server to rewrite URLs. See RELEASE-NOTES for details.
  */
 $wgScriptExtension = '.php';
 
@@ -220,12 +223,19 @@ $wgLocalStylePath = false;
  */
 $wgExtensionAssetsPath = false;
 
+/**
+ * Filesystem extensions directory.
+ * Defaults to "{$IP}/extensions".
+ * @since 1.25
+ */
+$wgExtensionDirectory = "{$IP}/extensions";
+
 /**
  * Filesystem stylesheets directory.
  * Defaults to "{$IP}/skins".
  * @since 1.3
  */
-$wgStyleDirectory = false;
+$wgStyleDirectory = "{$IP}/skins";
 
 /**
  * The URL path for primary article page views. This path should contain $1,
@@ -2150,7 +2160,7 @@ $wgObjectCaches = array(
 );
 
 /**
- * Main cache Wide-Area-Network cache type. This should be a cache with fast access,
+ * Main Wide-Area-Network cache type. This should be a cache with fast access,
  * but it may have limited space. By default, it is disabled, since the basic stock
  * cache is not fast enough to make it worthwhile. For single data-center setups, this can
  * simply be pointed to a cache in $wgWANObjectCaches that uses a local $wgObjectCaches
@@ -2161,7 +2171,8 @@ $wgObjectCaches = array(
  *                       a relayer (only matters if there are multiple data-centers)
  *   - CACHE_NONE:       Do not cache
  *   - (other):          A string may be used which identifies a cache
- *                       configuration in $wgWANObjectCaches.
+ *                       configuration in $wgWANObjectCaches
+ * @since 1.26
  */
 $wgMainWANCache = false;
 
@@ -2177,6 +2188,8 @@ $wgMainWANCache = false;
  * a cache identifier from $wgObjectCaches. The "relayerConfig" parameter is an
  * array used to construct an EventRelayer object. The "pool" parameter is a
  * string that is used as a PubSub channel prefix.
+ *
+ * @since 1.26
  */
 $wgWANObjectCaches = array(
        CACHE_NONE => array(
@@ -2195,6 +2208,21 @@ $wgWANObjectCaches = array(
        */
 );
 
+/**
+ * Main object stash type. This should be a fast storage system for storing
+ * lightweight data like hit counters and user activity. Sites with multiple
+ * data-centers should have this use a store that replicates all writes. The
+ * store should have enough consistency for CAS operations to be usable.
+ *
+ * The options are:
+ *   - db:      Store cache objects in the DB
+ *   - (other): A string may be used which identifies a cache
+ *              configuration in $wgObjectCaches
+ *
+ * @since 1.26
+ */
+$wgMainStash = 'db';
+
 /**
  * The expiry time for the parser cache, in seconds.
  * The default is 86400 (one day).
@@ -2269,11 +2297,13 @@ $wgAdaptiveMessageCache = false;
  * Localisation cache configuration. Associative array with keys:
  * class:       The class to use. May be overridden by extensions.
  *
- * store:       The location to store cache data. May be 'files', 'db' or
+ * store:       The location to store cache data. May be 'files', 'array', 'db' or
  *              'detect'. If set to "files", data will be in CDB files. If set
  *              to "db", data will be stored to the database. If set to
  *              "detect", files will be used if $wgCacheDirectory is set,
  *              otherwise the database will be used.
+ *              "array" is an experimental option that uses PHP files that
+ *              store static arrays.
  *
  * storeClass:  The class name for the underlying storage. If set to a class
  *              name, it overrides the "store" setting.
@@ -2341,13 +2371,8 @@ $wgUseFileCache = false;
 $wgFileCacheDepth = 2;
 
 /**
- * Keep parsed pages in a cache (objectcache table or memcached)
- * to speed up output of the same page viewed by another user with the
- * same options.
- *
- * This can provide a significant speedup for medium to large pages,
- * so you probably want to keep it on. Extensions that conflict with the
- * parser cache should disable the cache on a per-page basis instead.
+ * Kept for extension compatibility; see $wgParserCacheType
+ * @deprecated 1.26
  */
 $wgEnableParserCache = true;
 
@@ -4227,6 +4252,59 @@ $wgActiveUserDays = 30;
  * @{
  */
 
+/**
+ * Password policy for local wiki users. A user's effective policy
+ * is the superset of all policy statements from the policies for the
+ * groups where the user is a member. If more than one group policy
+ * include the same policy statement, the value is the max() of the
+ * values. Note true > false. The 'default' policy group is required,
+ * and serves as the minimum policy for all users. New statements can
+ * be added by appending to $wgPasswordPolicy['checks'].
+ * Statements:
+ *     - MinimalPasswordLength - minimum length a user can set
+ *     - MinimumPasswordLengthToLogin - passwords shorter than this will
+ *             not be allowed to login, regardless if it is correct.
+ *     - MaximalPasswordLength - maximum length password a user is allowed
+ *             to attempt. Prevents DoS attacks with pbkdf2.
+ *     - PasswordCannotMatchUsername - Password cannot match username to
+ *     - PasswordCannotMatchBlacklist - Username/password combination cannot
+ *             match a specific, hardcoded blacklist.
+ * @since 1.26
+ */
+$wgPasswordPolicy = array(
+       'policies' => array(
+               'bureaucrat' => array(
+                       'MinimalPasswordLength' => 8,
+                       'MinimumPasswordLengthToLogin' => 1,
+                       'PasswordCannotMatchUsername' => true,
+               ),
+               'sysop' => array(
+                       'MinimalPasswordLength' => 8,
+                       'MinimumPasswordLengthToLogin' => 1,
+                       'PasswordCannotMatchUsername' => true,
+               ),
+               'bot' => array(
+                       'MinimalPasswordLength' => 8,
+                       'MinimumPasswordLengthToLogin' => 1,
+                       'PasswordCannotMatchUsername' => true,
+               ),
+               'default' => array(
+                       'MinimalPasswordLength' => 1,
+                       'PasswordCannotMatchUsername' => true,
+                       'PasswordCannotMatchBlacklist' => true,
+                       'MaximalPasswordLength' => 4096,
+               ),
+       ),
+       'checks' => array(
+               'MinimalPasswordLength' => 'PasswordPolicyChecks::checkMinimalPasswordLength',
+               'MinimumPasswordLengthToLogin' => 'PasswordPolicyChecks::checkMinimumPasswordLengthToLogin',
+               'PasswordCannotMatchUsername' => 'PasswordPolicyChecks::checkPasswordCannotMatchUsername',
+               'PasswordCannotMatchBlacklist' => 'PasswordPolicyChecks::checkPasswordCannotMatchBlacklist',
+               'MaximalPasswordLength' => 'PasswordPolicyChecks::checkMaximalPasswordLength',
+       ),
+);
+
+
 /**
  * For compatibility with old installations set to false
  * @deprecated since 1.24 will be removed in future
@@ -4236,8 +4314,9 @@ $wgPasswordSalt = true;
 /**
  * Specifies the minimal length of a user password. If set to 0, empty pass-
  * words are allowed.
+ * @deprecated since 1.26, use $wgPasswordPolicy's MinimalPasswordLength.
  */
-$wgMinimalPasswordLength = 1;
+$wgMinimalPasswordLength = false;
 
 /**
  * Specifies the maximal length of a user password (T64685).
@@ -4248,8 +4327,9 @@ $wgMinimalPasswordLength = 1;
  *
  * @warning Unlike other password settings, user with passwords greater than
  *      the maximum will not be able to log in.
+ * @deprecated since 1.26, use $wgPasswordPolicy's MaximalPasswordLength.
  */
-$wgMaximalPasswordLength = 4096;
+$wgMaximalPasswordLength = false;
 
 /**
  * Specifies if users should be sent to a password-reset form on login, if their
@@ -4428,7 +4508,7 @@ $wgHiddenPrefs = array();
  * This is used in a regular expression character class during
  * registration (regex metacharacters like / are escaped).
  */
-$wgInvalidUsernameCharacters = '@';
+$wgInvalidUsernameCharacters = '@:';
 
 /**
  * Character used as a delimiter when testing for interwiki userrights
@@ -5313,12 +5393,27 @@ $wgDebugDumpSqlLength = 500;
  */
 $wgTrxProfilerLimits = array(
        // Basic GET and POST requests
-       'GET'  => array( 'masterConns' => 0, 'writes' => 0, 'readQueryTime' => 5 ),
-       'POST' => array( 'maxAffected' => 500, 'readQueryTime' => 5, 'writeQueryTime' => 1 ),
+       'GET' => array(
+               'masterConns' => 0,
+               'writes' => 0,
+               'readQueryTime' => 5
+       ),
+       'POST' => array(
+               'readQueryTime' => 5,
+               'writeQueryTime' => 1,
+               'maxAffected' => 500
+       ),
        // Background job runner
-       'JobRunner' => array( 'maxAffected' => 500, 'readQueryTime' => 30, 'writeQueryTime' => 5 ),
+       'JobRunner' => array(
+               'readQueryTime' => 30,
+               'writeQueryTime' => 5,
+               'maxAffected' => 500
+       ),
        // Command-line scripts
-       'Maintenance' => array( 'maxAffected' => 1000, 'writeQueryTime' => 5 )
+       'Maintenance' => array(
+               'writeQueryTime' => 5,
+               'maxAffected' => 1000
+       )
 );
 
 /**
index b0da562..ee67d01 100644 (file)
@@ -1958,11 +1958,13 @@ class EditPage {
 
                if ( $this->changeTags && isset( $doEditStatus->value['revision'] ) ) {
                        // If a revision was created, apply any change tags that were requested
-                       ChangeTags::addTags(
-                               $this->changeTags,
-                               isset( $doEditStatus->value['rc'] ) ? $doEditStatus->value['rc']->mAttribs['rc_id'] : null,
-                               $doEditStatus->value['revision']->getId()
-                       );
+                       $addTags = $this->changeTags;
+                       $revId = $doEditStatus->value['revision']->getId();
+                       // Defer this both for performance and so that addTags() sees the rc_id
+                       // since the recentchange entry addition is deferred first (bug T100248)
+                       DeferredUpdates::addCallableUpdate( function() use ( $addTags, $revId ) {
+                               ChangeTags::addTags( $addTags, null, $revId );
+                       } );
                }
 
                return $status;
@@ -3462,6 +3464,8 @@ HTML
                global $wgOut, $wgUser, $wgRawHtml, $wgLang;
                global $wgAllowUserCss, $wgAllowUserJs;
 
+               $stats = $wgOut->getContext()->getStats();
+
                if ( $wgRawHtml && !$this->mTokenOk ) {
                        // Could be an offsite preview attempt. This is very unsafe if
                        // HTML is enabled, as it could be an attack.
@@ -3473,6 +3477,7 @@ HTML
                                $parsedNote = $wgOut->parse( "<div class='previewnote'>" .
                                        wfMessage( 'session_fail_preview_html' )->text() . "</div>", true, /* interface */true );
                        }
+                       $stats->increment( 'edit.failures.session_loss' );
                        return $parsedNote;
                }
 
@@ -3496,11 +3501,16 @@ HTML
                        if ( $this->mTriedSave && !$this->mTokenOk ) {
                                if ( $this->mTokenOkExceptSuffix ) {
                                        $note = wfMessage( 'token_suffix_mismatch' )->plain();
+                                       $stats->increment( 'edit.failures.bad_token' );
                                } else {
                                        $note = wfMessage( 'session_fail_preview' )->plain();
+                                       $stats->increment( 'edit.failures.session_loss' );
                                }
                        } elseif ( $this->incompleteForm ) {
                                $note = wfMessage( 'edit_form_incomplete' )->plain();
+                               if ( $this->mTriedSave ) {
+                                       $stats->increment( 'edit.failures.incomplete_form' );
+                               }
                        } else {
                                $note = wfMessage( 'previewnote' )->plain() . ' ' . $continueEditing;
                        }
index 4600feb..0d55d7d 100644 (file)
@@ -1191,7 +1191,7 @@ class Dump7ZipOutput extends DumpPipeOutput {
         * @return string
         */
        function setup7zCommand( $file ) {
-               $command = "7za a -bd -si " . wfEscapeShellArg( $file );
+               $command = "7za a -bd -si -mx=4 " . wfEscapeShellArg( $file );
                // Suppress annoying useless crap from p7zip
                // Unfortunately this could suppress real error messages too
                $command .= ' >' . wfGetNull() . ' 2>&1';
index c1d14db..6d74af2 100644 (file)
@@ -296,7 +296,7 @@ class FileDeleteForm {
                        Xml::closeElement( 'form' );
 
                        if ( $wgUser->isAllowed( 'editinterface' ) ) {
-                               $title = Title::makeTitle( NS_MEDIAWIKI, 'Filedelete-reason-dropdown' );
+                               $title = wfMessage( 'filedelete-reason-dropdown' )->inContentLanguage()->getTitle();
                                $link = Linker::link(
                                        $title,
                                        wfMessage( 'filedelete-edit-reasonlist' )->escaped(),
index fb298cf..7f05bb0 100644 (file)
@@ -281,9 +281,9 @@ class GitInfo {
                        $config = "{$this->basedir}/config";
                        $url = false;
                        if ( is_readable( $config ) ) {
-                               wfSuppressWarnings();
+                               MediaWiki\suppressWarnings();
                                $configArray = parse_ini_file( $config, true );
-                               wfRestoreWarnings();
+                               MediaWiki\restoreWarnings();
                                $remote = false;
 
                                // Use the "origin" remote repo if available or any other repo if not.
index 23a8bbb..7a9b27b 100644 (file)
@@ -170,13 +170,13 @@ if ( !function_exists( 'hash_equals' ) ) {
  * This queues an extension to be loaded through
  * the ExtensionRegistry system.
  *
- * @param string $name Name of the extension to load
+ * @param string $ext Name of the extension to load
  * @param string|null $path Absolute path of where to find the extension.json file
  */
-function wfLoadExtension( $name, $path = null ) {
+function wfLoadExtension( $ext, $path = null ) {
        if ( !$path ) {
-               global $IP;
-               $path = "$IP/extensions/$name/extension.json";
+               global $wgExtensionDirectory;
+               $path = "$wgExtensionDirectory/$ext/extension.json";
        }
        ExtensionRegistry::getInstance()->queue( $path );
 }
@@ -194,10 +194,10 @@ function wfLoadExtension( $name, $path = null ) {
  * @param string[] $exts Array of extension names to load
  */
 function wfLoadExtensions( array $exts ) {
-       global $IP;
+       global $wgExtensionDirectory;
        $registry = ExtensionRegistry::getInstance();
        foreach ( $exts as $ext ) {
-               $registry->queue( "$IP/extensions/$ext/extension.json" );
+               $registry->queue( "$wgExtensionDirectory/$ext/extension.json" );
        }
 }
 
@@ -205,13 +205,13 @@ function wfLoadExtensions( array $exts ) {
  * Load a skin
  *
  * @see wfLoadExtension
- * @param string $name Name of the extension to load
+ * @param string $skin Name of the extension to load
  * @param string|null $path Absolute path of where to find the skin.json file
  */
-function wfLoadSkin( $name, $path = null ) {
+function wfLoadSkin( $skin, $path = null ) {
        if ( !$path ) {
-               global $IP;
-               $path = "$IP/skins/$name/skin.json";
+               global $wgStyleDirectory;
+               $path = "$wgStyleDirectory/$skin/skin.json";
        }
        ExtensionRegistry::getInstance()->queue( $path );
 }
@@ -223,10 +223,10 @@ function wfLoadSkin( $name, $path = null ) {
  * @param string[] $skins Array of extension names to load
  */
 function wfLoadSkins( array $skins ) {
-       global $IP;
+       global $wgStyleDirectory;
        $registry = ExtensionRegistry::getInstance();
        foreach ( $skins as $skin ) {
-               $registry->queue( "$IP/skins/$skin/skin.json" );
+               $registry->queue( "$wgStyleDirectory/$skin/skin.json" );
        }
 }
 
@@ -860,9 +860,9 @@ function wfParseUrl( $url ) {
        if ( $wasRelative ) {
                $url = "http:$url";
        }
-       wfSuppressWarnings();
+       MediaWiki\suppressWarnings();
        $bits = parse_url( $url );
-       wfRestoreWarnings();
+       MediaWiki\restoreWarnings();
        // parse_url() returns an array without scheme for some invalid URLs, e.g.
        // parse_url("%0Ahttp://example.com") == array( 'host' => '%0Ahttp', 'path' => 'example.com' )
        if ( !$bits || !isset( $bits['scheme'] ) ) {
@@ -2129,15 +2129,14 @@ function wfVarDump( $var ) {
  */
 function wfHttpError( $code, $label, $desc ) {
        global $wgOut;
-       header( "HTTP/1.0 $code $label" );
-       header( "Status: $code $label" );
+       HttpStatus::header( $code );
        if ( $wgOut ) {
                $wgOut->disable();
                $wgOut->sendCacheControl();
        }
 
        header( 'Content-type: text/html; charset=utf-8' );
-       print "<!doctype html>" .
+       print '<!DOCTYPE html>' .
                '<html><head><title>' .
                htmlspecialchars( $label ) .
                '</title></head><body><h1>' .
@@ -2323,40 +2322,19 @@ function wfNegotiateType( $cprefs, $sprefs ) {
 /**
  * Reference-counted warning suppression
  *
+ * @deprecated since 1.26, use MediaWiki\suppressWarnings() directly
  * @param bool $end
  */
 function wfSuppressWarnings( $end = false ) {
-       static $suppressCount = 0;
-       static $originalLevel = false;
-
-       if ( $end ) {
-               if ( $suppressCount ) {
-                       --$suppressCount;
-                       if ( !$suppressCount ) {
-                               error_reporting( $originalLevel );
-                       }
-               }
-       } else {
-               if ( !$suppressCount ) {
-                       $originalLevel = error_reporting( E_ALL & ~(
-                               E_WARNING |
-                               E_NOTICE |
-                               E_USER_WARNING |
-                               E_USER_NOTICE |
-                               E_DEPRECATED |
-                               E_USER_DEPRECATED |
-                               E_STRICT
-                       ) );
-               }
-               ++$suppressCount;
-       }
+       MediaWiki\suppressWarnings( $end );
 }
 
 /**
+ * @deprecated since 1.26, use MediaWiki\restoreWarnings() directly
  * Restore error level to previous value
  */
 function wfRestoreWarnings() {
-       wfSuppressWarnings( true );
+       MediaWiki\suppressWarnings( true );
 }
 
 # Autodetect, convert and provide timestamps of various types
@@ -2537,9 +2515,9 @@ function wfMkdirParents( $dir, $mode = null, $caller = null ) {
        }
 
        // Turn off the normal warning, we're doing our own below
-       wfSuppressWarnings();
+       MediaWiki\suppressWarnings();
        $ok = mkdir( $dir, $mode, true ); // PHP5 <3
-       wfRestoreWarnings();
+       MediaWiki\restoreWarnings();
 
        if ( !$ok ) {
                //directory may have been created on another request since we last checked
@@ -3034,9 +3012,9 @@ function wfMerge( $old, $mine, $yours, &$result ) {
 
        # This check may also protect against code injection in
        # case of broken installations.
-       wfSuppressWarnings();
+       MediaWiki\suppressWarnings();
        $haveDiff3 = $wgDiff3 && file_exists( $wgDiff3 );
-       wfRestoreWarnings();
+       MediaWiki\restoreWarnings();
 
        if ( !$haveDiff3 ) {
                wfDebug( "diff3 not found\n" );
@@ -3113,9 +3091,9 @@ function wfDiff( $before, $after, $params = '-u' ) {
        }
 
        global $wgDiff;
-       wfSuppressWarnings();
+       MediaWiki\suppressWarnings();
        $haveDiff = $wgDiff && file_exists( $wgDiff );
-       wfRestoreWarnings();
+       MediaWiki\restoreWarnings();
 
        # This check may also protect against code injection in
        # case of broken installations.
@@ -3353,7 +3331,7 @@ function wfBaseConvert( $input, $sourceBase, $destBase, $pad = 1,
                // Removing leading zeros works around broken base detection code in
                // some PHP versions (see <https://bugs.php.net/bug.php?id=50175> and
                // <https://bugs.php.net/bug.php?id=55398>).
-               $result = gmp_strval( gmp_init( ltrim( $input, '0' ), $sourceBase ), $destBase );
+               $result = gmp_strval( gmp_init( ltrim( $input, '0' ) ?: '0', $sourceBase ), $destBase );
        } elseif ( extension_loaded( 'bcmath' ) && ( $engine == 'auto' || $engine == 'bcmath' ) ) {
                $decimal = '0';
                foreach ( str_split( strtolower( $input ) ) as $char ) {
@@ -3492,9 +3470,9 @@ function wfSetupSession( $sessionId = false ) {
        } else {
                wfFixSessionID();
        }
-       wfSuppressWarnings();
+       MediaWiki\suppressWarnings();
        session_start();
-       wfRestoreWarnings();
+       MediaWiki\restoreWarnings();
 }
 
 /**
@@ -3847,15 +3825,15 @@ function wfMemoryLimit() {
                $conflimit = wfShorthandToInteger( $wgMemoryLimit );
                if ( $conflimit == -1 ) {
                        wfDebug( "Removing PHP's memory limit\n" );
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        ini_set( 'memory_limit', $conflimit );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        return $conflimit;
                } elseif ( $conflimit > $memlimit ) {
                        wfDebug( "Raising PHP's memory limit to $conflimit bytes\n" );
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        ini_set( 'memory_limit', $conflimit );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        return $conflimit;
                }
        }
@@ -4000,9 +3978,9 @@ function wfUnpack( $format, $data, $length = false ) {
                }
        }
 
-       wfSuppressWarnings();
+       MediaWiki\suppressWarnings();
        $result = unpack( $format, $data );
-       wfRestoreWarnings();
+       MediaWiki\restoreWarnings();
 
        if ( $result === false ) {
                // If it cannot extract the packed data.
index 69f1120..494cbfa 100644 (file)
@@ -522,9 +522,9 @@ class DiffHistoryBlob implements HistoryBlob {
        function diff( $t1, $t2 ) {
                # Need to do a null concatenation with warnings off, due to bugs in the current version of xdiff
                # "String is not zero-terminated"
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $diff = xdiff_string_rabdiff( $t1, $t2 ) . '';
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                return $diff;
        }
 
@@ -535,9 +535,9 @@ class DiffHistoryBlob implements HistoryBlob {
         */
        function patch( $base, $diff ) {
                if ( function_exists( 'xdiff_string_bpatch' ) ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $text = xdiff_string_bpatch( $base, $diff ) . '';
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        return $text;
                }
 
index dffc7bc..036d65c 100644 (file)
@@ -135,9 +135,6 @@ class Hooks {
         *   returning null) is equivalent to returning true.
         */
        public static function run( $event, array $args = array(), $deprecatedVersion = null ) {
-               $profiler = Profiler::instance();
-               $eventPS = $profiler->scopedProfileIn( 'hook: ' . $event );
-
                foreach ( self::getHandlers( $event ) as $hook ) {
                        // Turn non-array values into an array. (Can't use casting because of objects.)
                        if ( !is_array( $hook ) ) {
@@ -196,8 +193,6 @@ class Hooks {
                        $badhookmsg = null;
                        $hook_args = array_merge( $hook, $args );
 
-                       // Profile first in case the Profiler causes errors
-                       $funcPS = $profiler->scopedProfileIn( $func );
                        set_error_handler( 'Hooks::hookErrorHandler' );
 
                        // mark hook as deprecated, if deprecation version is specified
@@ -215,7 +210,6 @@ class Hooks {
                        }
 
                        restore_error_handler();
-                       $profiler->scopedProfileOut( $funcPS );
 
                        // Process the return value.
                        if ( is_string( $retval ) ) {
index 6907245..235096d 100644 (file)
@@ -104,8 +104,8 @@ class Html {
        /**
         * Modifies a set of attributes meant for button elements
         * and apply a set of default attributes when $wgUseMediaWikiUIEverywhere enabled.
-        * @param array $attrs
-        * @param string[] $modifiers to add to the button
+        * @param array $attrs HTML attributes in an associative array
+        * @param string[] $modifiers classes to add to the button
         * @see https://tools.wmflabs.org/styleguide/desktop/index.html for guidance on available modifiers
         * @return array $attrs A modified attribute array
         */
@@ -115,16 +115,15 @@ class Html {
                        if ( isset( $attrs['class'] ) ) {
                                if ( is_array( $attrs['class'] ) ) {
                                        $attrs['class'][] = 'mw-ui-button';
-                                       $attrs = array_merge( $attrs, $modifiers );
+                                       $attrs['class'] = array_merge( $attrs['class'], $modifiers );
                                        // ensure compatibility with Xml
                                        $attrs['class'] = implode( ' ', $attrs['class'] );
                                } else {
                                        $attrs['class'] .= ' mw-ui-button ' . implode( ' ', $modifiers );
                                }
                        } else {
-                               $attrs['class'] = array( 'mw-ui-button' );
                                // ensure compatibility with Xml
-                               $attrs['class'] = implode( ' ', array_merge( $attrs['class'], $modifiers ) );
+                               $attrs['class'] = 'mw-ui-button ' . implode( ' ', $modifiers );
                        }
                }
                return $attrs;
@@ -162,7 +161,7 @@ class Html {
         * @param array $attrs Associative array of attributes, e.g., array(
         *   'href' => 'http://www.mediawiki.org/' ). See expandAttributes() for
         *   further documentation.
-        * @param string[] $modifiers to add to the button
+        * @param string[] $modifiers classes to add to the button
         * @see http://tools.wmflabs.org/styleguide/desktop/index.html for guidance on available modifiers
         * @return string Raw HTML
         */
@@ -182,7 +181,7 @@ class Html {
         * @param array $attrs Associative array of attributes, e.g., array(
         *   'href' => 'http://www.mediawiki.org/' ). See expandAttributes() for
         *   further documentation.
-        * @param string[] $modifiers to add to the button
+        * @param string[] $modifiers classes to add to the button
         * @see http://tools.wmflabs.org/styleguide/desktop/index.html for guidance on available modifiers
         * @return string Raw HTML
         */
@@ -716,6 +715,9 @@ class Html {
                if ( in_array( $type, array( 'text', 'search', 'email', 'password', 'number' ) ) ) {
                        $attribs = self::getTextInputAttributes( $attribs );
                }
+               if ( in_array( $type, array( 'button', 'reset', 'submit' ) ) ) {
+                       $attribs = self::buttonAttributes( $attribs );
+               }
                return self::element( 'input', $attribs );
        }
 
index 8e05f59..825cd06 100644 (file)
@@ -792,14 +792,14 @@ class CurlHttpRequest extends MWHttpRequest {
                }
 
                if ( $this->followRedirects && $this->canFollowRedirects() ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        if ( !curl_setopt( $curlHandle, CURLOPT_FOLLOWLOCATION, true ) ) {
                                wfDebug( __METHOD__ . ": Couldn't set CURLOPT_FOLLOWLOCATION. " .
                                        "Probably safe_mode or open_basedir is set.\n" );
                                // Continue the processing. If it were in curl_setopt_array,
                                // processing would have halted on its entry
                        }
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                }
 
                if ( $this->profiler ) {
@@ -938,9 +938,9 @@ class PhpHttpRequest extends MWHttpRequest {
                }
                do {
                        $reqCount++;
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $fh = fopen( $url, "r", false, $context );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
 
                        if ( !$fh ) {
                                break;
index c2fae30..214bc4e 100644 (file)
@@ -1570,8 +1570,7 @@ class WikiRevision {
                }
 
                // avoid memory leak...?
-               $linkCache = LinkCache::singleton();
-               $linkCache->clear();
+               Title::clearCaches();
 
                $page = WikiPage::factory( $this->title );
                $page->loadPageData( 'fromdbmaster' );
@@ -1858,9 +1857,9 @@ class ImportStreamSource implements ImportSource {
         * @return Status
         */
        static function newFromFile( $filename ) {
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $file = fopen( $filename, 'rt' );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( !$file ) {
                        return Status::newFatal( "importcantopen" );
                }
index b58daba..4a1aa87 100644 (file)
@@ -1709,9 +1709,10 @@ class Linker {
         * Currently unused.
         *
         * @param array $tree Return value of ParserOutput::getSections()
+        * @param string|Language|bool $lang Language for the toc title, defaults to user language
         * @return string HTML fragment
         */
-       public static function generateTOC( $tree ) {
+       public static function generateTOC( $tree, $lang = false ) {
                $toc = '';
                $lastLevel = 0;
                foreach ( $tree as $section ) {
@@ -1730,7 +1731,7 @@ class Linker {
                        $lastLevel = $section['toclevel'];
                }
                $toc .= self::tocLineEnd();
-               return self::tocList( $toc );
+               return self::tocList( $toc, $lang );
        }
 
        /**
index ea91470..f2bd6ba 100644 (file)
@@ -199,42 +199,19 @@ class MWTimestamp {
         *
         * @since 1.20
         * @since 1.22 Uses Language::getHumanTimestamp to produce the timestamp
+        * @deprecated since 1.26 Use Language::getHumanTimestamp directly
         *
-        * @param MWTimestamp|null $relativeTo The base timestamp to compare to
-        *   (defaults to now).
-        * @param User|null $user User the timestamp is being generated for (or null
-        *   to use main context's user).
-        * @param Language|null $lang Language to use to make the human timestamp
-        *   (or null to use main context's language).
+        * @param MWTimestamp|null $relativeTo The base timestamp to compare to (defaults to now)
+        * @param User|null $user User the timestamp is being generated for (or null to use main context's user)
+        * @param Language|null $lang Language to use to make the human timestamp (or null to use main context's language)
         * @return string Formatted timestamp
         */
-       public function getHumanTimestamp( MWTimestamp $relativeTo = null,
-               User $user = null, Language $lang = null
-       ) {
-               if ( $relativeTo === null ) {
-                       $relativeTo = new self();
-               }
-               if ( $user === null ) {
-                       $user = RequestContext::getMain()->getUser();
-               }
+       public function getHumanTimestamp( MWTimestamp $relativeTo = null, User $user = null, Language $lang = null ) {
                if ( $lang === null ) {
                        $lang = RequestContext::getMain()->getLanguage();
                }
 
-               // Adjust for the user's timezone.
-               $offsetThis = $this->offsetForUser( $user );
-               $offsetRel = $relativeTo->offsetForUser( $user );
-
-               $ts = '';
-               if ( Hooks::run( 'GetHumanTimestamp', array( &$ts, $this, $relativeTo, $user, $lang ) ) ) {
-                       $ts = $lang->getHumanTimestamp( $this, $relativeTo, $user );
-               }
-
-               // Reset the timezone on the objects.
-               $this->timestamp->sub( $offsetThis );
-               $relativeTo->timestamp->sub( $offsetRel );
-
-               return $ts;
+               return $lang->getHumanTimestamp( $this, $relativeTo, $user );
        }
 
        /**
index b1d0738..7a0d7b7 100644 (file)
@@ -114,7 +114,7 @@ class MediaWiki {
                        // If we get here, we definitely don't have a valid title; throw an exception.
                        // Try to get detailed invalid title exception first, fall back to MalformedTitleException.
                        Title::newFromTextThrow( $title );
-                       throw new MalformedTitleException( null, $title );
+                       throw new MalformedTitleException( 'badtitletext', $title );
                }
 
                return $ret;
@@ -422,8 +422,7 @@ class MediaWiki {
        }
 
        /**
-        * Run the current MediaWiki instance
-        * index.php just calls this
+        * Run the current MediaWiki instance; index.php just calls this
         */
        public function run() {
                try {
@@ -434,16 +433,68 @@ class MediaWiki {
                                // Bug 62091: while exceptions are convenient to bubble up GUI errors,
                                // they are not internal application faults. As with normal requests, this
                                // should commit, print the output, do deferred updates, jobs, and profiling.
-                               wfGetLBFactory()->commitMasterChanges();
+                               $this->doPreOutputCommit();
                                $e->report(); // display the GUI error
                        }
+               } catch ( Exception $e ) {
+                       MWExceptionHandler::handleException( $e );
+               }
+
+               $this->doPostOutputShutdown( 'normal' );
+       }
+
+       /**
+        * This function commits all DB changes as needed before
+        * the user can receive a response (in case commit fails)
+        *
+        * @since 1.26
+        */
+       public function doPreOutputCommit() {
+               // Either all DBs should commit or none
+               ignore_user_abort( true );
+               wfGetLBFactory()->commitMasterChanges();
+       }
+
+       /**
+        * This function does work that can be done *after* the
+        * user gets the HTTP response so they don't block on it
+        *
+        * @param string $mode Use 'fast' to always skip job running
+        * @since 1.26
+        */
+       public function doPostOutputShutdown( $mode = 'normal' ) {
+               // Show profiling data if enabled
+               Profiler::instance()->logDataPageOutputOnly();
+
+               $that = $this;
+               $callback = function () use ( $that, $mode ) {
+                       try {
+                               // Assure deferred updates are not in the main transaction
+                               wfGetLBFactory()->commitMasterChanges();
+                               // Run jobs occasionally, if enabled
+                               if ( $mode === 'normal' ) {
+                                       $that->triggerJobs();
+                               }
+                               // Do deferred updates and job insertion and final commit
+                               $that->restInPeace();
+                       } catch ( Exception $e ) {
+                               MWExceptionHandler::handleException( $e );
+                       }
+               };
+
+               if ( function_exists( 'register_postsend_function' ) ) {
+                       // https://github.com/facebook/hhvm/issues/1230
+                       register_postsend_function( $callback );
+               } else {
                        if ( function_exists( 'fastcgi_finish_request' ) ) {
                                fastcgi_finish_request();
+                       } else {
+                               // Either all DB and deferred updates should happen or none.
+                               // The later should not be cancelled due to client disconnect.
+                               ignore_user_abort( true );
                        }
-                       $this->triggerJobs();
-                       $this->restInPeace();
-               } catch ( Exception $e ) {
-                       MWExceptionHandler::handleException( $e );
+
+                       $callback();
                }
        }
 
@@ -458,7 +509,7 @@ class MediaWiki {
                        list( $host, $lag ) = wfGetLB()->getMaxLag();
                        if ( $lag > $maxLag ) {
                                $resp = $this->context->getRequest()->response();
-                               $resp->header( 'HTTP/1.1 503 Service Unavailable' );
+                               $resp->statusHeader( 503 );
                                $resp->header( 'Retry-After: ' . max( intval( $maxLag ), 5 ) );
                                $resp->header( 'X-Database-Lag: ' . intval( $lag ) );
                                $resp->header( 'Content-Type: text/plain' );
@@ -582,16 +633,13 @@ class MediaWiki {
                // Actually do the work of the request and build up any output
                $this->performRequest();
 
-               // Either all DB and deferred updates should happen or none.
-               // The later should not be cancelled due to client disconnect.
-               ignore_user_abort( true );
                // Now commit any transactions, so that unreported errors after
-               // output() don't roll back the whole DB transaction
-               wfGetLBFactory()->commitMasterChanges();
+               // output() don't roll back the whole DB transaction and so that
+               // we avoid having both success and error text in the response
+               $this->doPreOutputCommit();
 
                // Output everything!
                $this->context->getOutput()->output();
-
        }
 
        /**
@@ -605,6 +653,9 @@ class MediaWiki {
                // Do any deferred jobs
                DeferredUpdates::doUpdates( 'commit' );
 
+               // Make sure any lazy jobs are pushed
+               JobQueueGroup::pushLazyJobs();
+
                // Log profiling data, e.g. in the database or UDP
                wfLogProfilingData();
 
@@ -621,7 +672,7 @@ class MediaWiki {
         * to run a specified number of jobs. This registers a callback to cleanup
         * the socket once it's done.
         */
-       protected function triggerJobs() {
+       public function triggerJobs() {
                $jobRunRate = $this->config->get( 'JobRunRate' );
                if ( $jobRunRate <= 0 || wfReadOnly() ) {
                        return;
@@ -664,7 +715,7 @@ class MediaWiki {
 
                $errno = $errstr = null;
                $info = wfParseUrl( $this->config->get( 'Server' ) );
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $sock = fsockopen(
                        $info['host'],
                        isset( $info['port'] ) ? $info['port'] : 80,
@@ -674,7 +725,7 @@ class MediaWiki {
                        // is a problem elsewhere.
                        0.1
                );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( !$sock ) {
                        $runJobsLogger->error( "Failed to start cron API (socket error $errno): $errstr" );
                        // Fall back to running the job here while the user waits
index 4935e33..329d97a 100644 (file)
@@ -364,6 +364,31 @@ class Message implements MessageSpecifier {
                return new self( $keys );
        }
 
+       /**
+        * Get a title object for a mediawiki message, where it can be found in the mediawiki namespace.
+        * The title will be for the current language, if the message key is in
+        * $wgForceUIMsgAsContentMsg it will be append with the language code (except content
+        * language), because Message::inContentLanguage will also return in user language.
+        *
+        * @see $wgForceUIMsgAsContentMsg
+        * @return Title
+        * @since 1.26
+        */
+       public function getTitle() {
+               global $wgContLang, $wgForceUIMsgAsContentMsg;
+
+               $code = $this->language->getCode();
+               $title = $this->key;
+               if (
+                       $wgContLang->getCode() !== $code
+                       && in_array( $this->key, (array)$wgForceUIMsgAsContentMsg )
+               ) {
+                       $title .= '/' . $code;
+               }
+
+               return Title::makeTitle( NS_MEDIAWIKI, $wgContLang->ucfirst( strtr( $title, ' ', '_' ) ) );
+       }
+
        /**
         * Adds parameters to the parameter list of this message.
         *
index ebe98a3..0d907b7 100644 (file)
@@ -624,9 +624,9 @@ class MimeMagic {
         */
        private function doGuessMimeType( $file, $ext ) { // TODO: remove $ext param
                // Read a chunk of the file
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $f = fopen( $file, 'rb' );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( !$f ) {
                        return 'unknown/unknown';
@@ -780,9 +780,9 @@ class MimeMagic {
                        return $this->detectZipType( $head, $tail, $ext );
                }
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $gis = getimagesize( $file );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( $gis && isset( $gis['mime'] ) ) {
                        $mime = $gis['mime'];
index 8f9f9c6..b3720a4 100644 (file)
@@ -20,6 +20,8 @@
  * @file
  */
 
+use MediaWiki\Logger\LoggerFactory;
+
 /**
  * This class should be covered by a general architecture document which does
  * not exist as of January 2011.  This is one of the Core classes and should
@@ -162,9 +164,6 @@ class OutputPage extends ContextSource {
        /** @var array */
        protected $mModuleStyles = array();
 
-       /** @var array */
-       protected $mModuleMessages = array();
-
        /** @var ResourceLoader */
        protected $mResourceLoader;
 
@@ -305,6 +304,11 @@ class OutputPage extends ContextSource {
         */
        private $mEnableSectionEditLinks = true;
 
+       /**
+        * @var string|null The URL to send in a <link> element with rel=copyright
+        */
+       private $copyrightUrl;
+
        /**
         * Constructor for OutputPage. This should not be called directly.
         * Instead a new RequestContext should be created and it will implicitly create
@@ -341,6 +345,18 @@ class OutputPage extends ContextSource {
                return $this->mRedirect;
        }
 
+       /**
+        * Set the copyright URL to send with the output.
+        * Empty string to omit, null to reset.
+        *
+        * @since 1.26
+        *
+        * @param string|null $url
+        */
+       public function setCopyrightUrl( $url ) {
+               $this->copyrightUrl = $url;
+       }
+
        /**
         * Set the HTTP status code to send with the output.
         *
@@ -594,6 +610,19 @@ class OutputPage extends ContextSource {
         * @return array Array of module names
         */
        public function getModuleStyles( $filter = false, $position = null ) {
+               // T97420
+               $resourceLoader = $this->getResourceLoader();
+
+               foreach ( $this->mModuleStyles as $val ) {
+                       $module = $resourceLoader->getModule( $val );
+
+                       if ( $module instanceof ResourceLoaderModule && $module->isPositionDefault() ) {
+                               $warning = __METHOD__ . ': style module should define its position explicitly: ' . $val . ' ' . get_class( $module );
+                               wfDebugLog( 'resourceloader', $warning );
+                               wfLogWarning( $warning );
+                       }
+               }
+
                return $this->getModules( $filter, $position, 'mModuleStyles' );
        }
 
@@ -613,24 +642,24 @@ class OutputPage extends ContextSource {
        /**
         * Get the list of module messages to include on this page
         *
+        * @deprecated since 1.26 Obsolete
         * @param bool $filter
         * @param string|null $position
-        *
         * @return array Array of module names
         */
        public function getModuleMessages( $filter = false, $position = null ) {
-               return $this->getModules( $filter, $position, 'mModuleMessages' );
+               wfDeprecated( __METHOD__, '1.26' );
+               return array();
        }
 
        /**
-        * Add only messages of one or more modules recognized by the resource loader.
-        * Module messages added through this function will be loaded by the resource
-        * loader when the page loads.
+        * Load messages of one or more ResourceLoader modules.
         *
+        * @deprecated since 1.26 Use addModules() instead
         * @param string|array $modules Module name (string) or array of module names
         */
        public function addModuleMessages( $modules ) {
-               $this->mModuleMessages = array_merge( $this->mModuleMessages, (array)$modules );
+               wfDeprecated( __METHOD__, '1.26' );
        }
 
        /**
@@ -797,9 +826,9 @@ class OutputPage extends ContextSource {
                # this breaks strtotime().
                $clientHeader = preg_replace( '/;.*$/', '', $clientHeader );
 
-               wfSuppressWarnings(); // E_STRICT system time bitching
+               MediaWiki\suppressWarnings(); // E_STRICT system time bitching
                $clientHeaderTime = strtotime( $clientHeader );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( !$clientHeaderTime ) {
                        wfDebug( __METHOD__
                                . ": unable to parse the client's If-Modified-Since header: $clientHeader\n" );
@@ -826,10 +855,10 @@ class OutputPage extends ContextSource {
                }
 
                # Not modified
-               # Give a 304 response code and disable body output
+               # Give a 304 Not Modified response code and disable body output
                wfDebug( __METHOD__ . ": NOT MODIFIED, $info\n", 'log' );
                ini_set( 'zlib.output_compression', 0 );
-               $this->getRequest()->response()->header( "HTTP/1.1 304 Not Modified" );
+               $this->getRequest()->response()->statusHeader( 304 );
                $this->sendCacheControl();
                $this->disable();
 
@@ -1401,8 +1430,10 @@ class OutputPage extends ContextSource {
 
        /**
         * Adds help link with an icon via page indicators.
-        * @param string $to
-        * @param bool $overrideBaseUrl
+        * Link target can be overridden by a local message containing a wikilink:
+        * the message key is: lowercase action or special page name + '-helppage'.
+        * @param string $to Target MediaWiki.org page title or encoded URL.
+        * @param bool $overrideBaseUrl Whether $url is a full URL, to avoid MW.o.
         * @since 1.25
         */
        public function addHelpLink( $to, $overrideBaseUrl = false ) {
@@ -1415,6 +1446,7 @@ class OutputPage extends ContextSource {
                        $toUrlencoded = wfUrlencode( str_replace( ' ', '_', $to ) );
                        $helpUrl = "//www.mediawiki.org/wiki/Special:MyLanguage/$toUrlencoded";
                }
+
                $link = Html::rawElement(
                        'a',
                        array(
@@ -1758,7 +1790,6 @@ class OutputPage extends ContextSource {
                $this->addModules( $parserOutput->getModules() );
                $this->addModuleScripts( $parserOutput->getModuleScripts() );
                $this->addModuleStyles( $parserOutput->getModuleStyles() );
-               $this->addModuleMessages( $parserOutput->getModuleMessages() );
                $this->addJsConfigVars( $parserOutput->getJsConfigVars() );
                $this->mPreventClickjacking = $this->mPreventClickjacking
                        || $parserOutput->preventClickjacking();
@@ -1805,7 +1836,6 @@ class OutputPage extends ContextSource {
                $this->addModules( $parserOutput->getModules() );
                $this->addModuleScripts( $parserOutput->getModuleScripts() );
                $this->addModuleStyles( $parserOutput->getModuleStyles() );
-               $this->addModuleMessages( $parserOutput->getModuleMessages() );
 
                $this->addJsConfigVars( $parserOutput->getJsConfigVars() );
        }
@@ -2207,8 +2237,7 @@ class OutputPage extends ContextSource {
                        if ( Hooks::run( "BeforePageRedirect", array( $this, &$redirect, &$code ) ) ) {
                                if ( $code == '301' || $code == '303' ) {
                                        if ( !$config->get( 'DebugRedirects' ) ) {
-                                               $message = HttpStatus::getMessage( $code );
-                                               $response->header( "HTTP/1.1 $code $message" );
+                                               $response->statusHeader( $code );
                                        }
                                        $this->mLastModified = wfTimestamp( TS_RFC2822 );
                                }
@@ -2230,10 +2259,7 @@ class OutputPage extends ContextSource {
 
                        return;
                } elseif ( $this->mStatusCode ) {
-                       $message = HttpStatus::getMessage( $this->mStatusCode );
-                       if ( $message ) {
-                               $response->header( 'HTTP/1.1 ' . $this->mStatusCode . ' ' . $message );
-                       }
+                       $response->statusHeader( $this->mStatusCode );
                }
 
                # Buffer output; final headers may depend on later processing
@@ -2726,7 +2752,10 @@ class OutputPage extends ContextSource {
         */
        public function getResourceLoader() {
                if ( is_null( $this->mResourceLoader ) ) {
-                       $this->mResourceLoader = new ResourceLoader( $this->getConfig() );
+                       $this->mResourceLoader = new ResourceLoader(
+                               $this->getConfig(),
+                               LoggerFactory::getInstance( 'resourceloader' )
+                       );
                }
                return $this->mResourceLoader;
        }
@@ -2869,13 +2898,7 @@ class OutputPage extends ContextSource {
                                // and we shouldn't be putting timestamps in Squid-cached HTML
                                $version = null;
                                if ( $group === 'user' ) {
-                                       // Get the maximum timestamp
-                                       $timestamp = 1;
-                                       foreach ( $grpModules as $module ) {
-                                               $timestamp = max( $timestamp, $module->getModifiedTime( $context ) );
-                                       }
-                                       // Add a version parameter so cache will break when things change
-                                       $query['version'] = wfTimestamp( TS_ISO_8601_BASIC, $timestamp );
+                                       $query['version'] = $resourceLoader->getCombinedVersion( $context, array_keys( $grpModules ) );
                                }
 
                                $query['modules'] = ResourceLoader::makePackedModulesString( array_keys( $grpModules ) );
@@ -2976,15 +2999,12 @@ class OutputPage extends ContextSource {
                // Load embeddable private modules before any loader links
                // This needs to be TYPE_COMBINED so these modules are properly wrapped
                // in mw.loader.implement() calls and deferred until mw.user is available
-               $embedScripts = array( 'user.options', 'user.tokens' );
+               $embedScripts = array( 'user.options' );
                $links[] = $this->makeResourceLoaderLink( $embedScripts, ResourceLoaderModule::TYPE_COMBINED );
+               // Separate user.tokens as otherwise caching will be allowed (T84960)
+               $links[] = $this->makeResourceLoaderLink( 'user.tokens', ResourceLoaderModule::TYPE_COMBINED );
 
                // Scripts and messages "only" requests marked for top inclusion
-               // Messages should go first
-               $links[] = $this->makeResourceLoaderLink(
-                       $this->getModuleMessages( true, 'top' ),
-                       ResourceLoaderModule::TYPE_MESSAGES
-               );
                $links[] = $this->makeResourceLoaderLink(
                        $this->getModuleScripts( true, 'top' ),
                        ResourceLoaderModule::TYPE_SCRIPTS
@@ -3018,19 +3038,20 @@ class OutputPage extends ContextSource {
         * @return string
         */
        function getScriptsForBottomQueue( $inHead ) {
-               // Scripts and messages "only" requests marked for bottom inclusion
+               // Scripts "only" requests marked for bottom inclusion
                // If we're in the <head>, use load() calls rather than <script src="..."> tags
-               // Messages should go first
                $links = array();
-               $links[] = $this->makeResourceLoaderLink( $this->getModuleMessages( true, 'bottom' ),
-                       ResourceLoaderModule::TYPE_MESSAGES, /* $useESI = */ false, /* $extraQuery = */ array(),
-                       /* $loadCall = */ $inHead
-               );
+
                $links[] = $this->makeResourceLoaderLink( $this->getModuleScripts( true, 'bottom' ),
                        ResourceLoaderModule::TYPE_SCRIPTS, /* $useESI = */ false, /* $extraQuery = */ array(),
                        /* $loadCall = */ $inHead
                );
 
+               $links[] = $this->makeResourceLoaderLink( $this->getModuleStyles( true, 'bottom' ),
+                       ResourceLoaderModule::TYPE_STYLES, /* $useESI = */ false, /* $extraQuery = */ array(),
+                       /* $loadCall = */ $inHead
+               );
+
                // Modules requests - let the client calculate dependencies and batch requests as it likes
                // Only load modules that have marked themselves for loading at the bottom
                $modules = $this->getModules( true, 'bottom' );
@@ -3088,6 +3109,9 @@ class OutputPage extends ContextSource {
         * @return string
         */
        function getBottomScripts() {
+               // In case the skin wants to add bottom CSS
+               $this->getSkin()->setupSkinUserCss( $this );
+
                // Optimise jQuery ready event cross-browser.
                // This also enforces $.isReady to be true at </body> which fixes the
                // mw.loader bug in Firefox with using document.write between </body>
@@ -3425,17 +3449,21 @@ class OutputPage extends ContextSource {
                }
 
                # Copyright
-               $copyright = '';
-               if ( $config->get( 'RightsPage' ) ) {
-                       $copy = Title::newFromText( $config->get( 'RightsPage' ) );
+               if ( $this->copyrightUrl !== null ) {
+                       $copyright = $this->copyrightUrl;
+               } else {
+                       $copyright = '';
+                       if ( $config->get( 'RightsPage' ) ) {
+                               $copy = Title::newFromText( $config->get( 'RightsPage' ) );
 
-                       if ( $copy ) {
-                               $copyright = $copy->getLocalURL();
+                               if ( $copy ) {
+                                       $copyright = $copy->getLocalURL();
+                               }
                        }
-               }
 
-               if ( !$copyright && $config->get( 'RightsUrl' ) ) {
-                       $copyright = $config->get( 'RightsUrl' );
+                       if ( !$copyright && $config->get( 'RightsUrl' ) ) {
+                               $copyright = $config->get( 'RightsUrl' );
+                       }
                }
 
                if ( $copyright ) {
@@ -3599,7 +3627,7 @@ class OutputPage extends ContextSource {
                $otherTags = ''; // Tags to append after the normal <link> tags
                $resourceLoader = $this->getResourceLoader();
 
-               $moduleStyles = $this->getModuleStyles();
+               $moduleStyles = $this->getModuleStyles( true, 'top' );
 
                // Per-site custom styles
                $moduleStyles[] = 'site';
diff --git a/includes/PHPVersionCheck.php b/includes/PHPVersionCheck.php
new file mode 100644 (file)
index 0000000..d11d021
--- /dev/null
@@ -0,0 +1,157 @@
+<?php
+/**
+ * Check PHP Version, as well as for composer dependencies in entry points,
+ * and display something vaguely comprehensible in the event of a totally
+ * unrecoverable error.
+ *
+ * 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
+ */
+
+/**
+ * Check php version and that external dependencies are installed, and
+ * display an informative error if either condition is not satisfied.
+ */
+function wfEntryPointCheck( $entryPoint ) {
+       if ( !function_exists( 'version_compare' )
+               || version_compare( PHP_VERSION, '5.3.3' ) < 0
+               || !file_exists( dirname( __FILE__ ) . '/../vendor/autoload.php' )
+       ) {
+               wfPHPVersionError( $entryPoint );
+       }
+}
+
+/**
+ * Display something vaguely comprehensible in the event of a totally unrecoverable error.
+ * Does not assume access to *anything*; no globals, no autoloader, no database, no localisation.
+ * Safe for PHP4 (and putting this here means that WebStart.php and GlobalSettings.php
+ * no longer need to be).
+ *
+ * Calling this function kills execution immediately.
+ *
+ * @param string $type Which entry point we are protecting. One of:
+ *   - index.php
+ *   - load.php
+ *   - api.php
+ *   - mw-config/index.php
+ *   - cli
+ *
+ * @note Since we can't rely on anything, the minimum PHP versions and MW current
+ * version are hardcoded here
+ */
+function wfPHPVersionError( $type ) {
+       $mwVersion = '1.26';
+       $minimumVersionPHP = '5.3.3';
+
+       $phpVersion = PHP_VERSION;
+       $protocol = isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0';
+       $message = "MediaWiki $mwVersion requires at least "
+               . "PHP version $minimumVersionPHP, you are using PHP $phpVersion. Installing some "
+               . " external dependencies (e.g. via composer) is also required.";
+
+       if ( $type == 'cli' ) {
+               $finalOutput = "Error: You are missing some external dependencies or are using on older PHP version. \n"
+                       . "MediaWiki $mwVersion needs PHP $minimumVersionPHP or higher.\n\n"
+                       . "Check if you have a newer php executable with a different name, such as php5.\n\n"
+                       . "MediaWiki now also has some external dependencies that need to be installed\n"
+                       . "via composer or from a separate git repo. Please see\n"
+                       . "https://www.mediawiki.org/wiki/Download_from_Git#Fetch_external_libraries\n"
+                       . "for help on installing the required components.";
+       } elseif ( $type == 'index.php' || $type == 'mw-config/index.php' ) {
+               $pathinfo = pathinfo( $_SERVER['SCRIPT_NAME'] );
+               if ( $type == 'mw-config/index.php' ) {
+                       $dirname = dirname( $pathinfo['dirname'] );
+               } else {
+                       $dirname = $pathinfo['dirname'];
+               }
+               $encLogo = htmlspecialchars(
+                       str_replace( '//', '/', $dirname . '/' ) .
+                       'resources/assets/mediawiki.png'
+               );
+
+               header( "$protocol 500 MediaWiki configuration Error" );
+               header( 'Content-type: text/html; charset=UTF-8' );
+               // Don't cache error pages!  They cause no end of trouble...
+               header( 'Cache-control: none' );
+               header( 'Pragma: no-cache' );
+
+               $finalOutput = <<<HTML
+<!DOCTYPE html>
+<html lang="en" dir="ltr">
+       <head>
+               <meta charset="UTF-8" />
+               <title>MediaWiki {$mwVersion}</title>
+               <style media='screen'>
+                       body {
+                               color: #000;
+                               background-color: #fff;
+                               font-family: sans-serif;
+                               padding: 2em;
+                               text-align: center;
+                       }
+                       p, img, h1, h2 {
+                               text-align: left;
+                               margin: 0.5em 0 1em;
+                       }
+                       h1 {
+                               font-size: 120%;
+                       }
+                       h2 {
+                               font-size: 110%;
+                       }
+               </style>
+       </head>
+       <body>
+               <img src="{$encLogo}" alt='The MediaWiki logo' />
+               <h1>MediaWiki {$mwVersion} internal error</h1>
+               <div class='error'>
+               <p>
+                       {$message}
+               </p>
+               <h2>Supported PHP versions</h2>
+               <p>
+                       Please consider <a href="http://www.php.net/downloads.php">upgrading your copy of PHP</a>.
+                       PHP versions less than 5.3.0 are no longer supported by the PHP Group and will not receive
+                       security or bugfix updates.
+               </p>
+               <p>
+                       If for some reason you are unable to upgrade your PHP version, you will need to
+                       <a href="https://www.mediawiki.org/wiki/Download">download</a> an older version
+                       of MediaWiki from our website.  See our
+                       <a href="https://www.mediawiki.org/wiki/Compatibility#PHP">compatibility page</a>
+                       for details of which versions are compatible with prior versions of PHP.
+               </p>
+               <h2>External dependencies</h2>
+               <p>
+                       MediaWiki now also has some external dependencies that need to be installed via
+                       composer or from a separate git repo. Please see
+                       <a href="https://www.mediawiki.org/wiki/Download_from_Git#Fetch_external_libraries">mediawiki.org</a>
+                       for help on installing the required components.
+               </p>
+               </div>
+       </body>
+</html>
+HTML;
+       // Handle everything that's not index.php
+       } else {
+               // So nothing thinks this is JS or CSS
+               $finalOutput = ( $type == 'load.php' ) ? "/* $message */" : $message;
+               header( "$protocol 500 MediaWiki configuration Error" );
+       }
+       echo "$finalOutput\n";
+       die( 1 );
+}
index 3a2f9f8..007ea89 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 /**
- * Display something vaguely comprehensible in the event of a totally unrecoverable error.
+ * 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
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @deprecated 1.25
  * @file
  */
-
-/**
- * Display something vaguely comprehensible in the event of a totally unrecoverable error.
- * Does not assume access to *anything*; no globals, no autoloader, no database, no localisation.
- * Safe for PHP4 (and putting this here means that WebStart.php and GlobalSettings.php
- * no longer need to be).
- *
- * Calling this function kills execution immediately.
- *
- * @param string $type Which entry point we are protecting. One of:
- *   - index.php
- *   - load.php
- *   - api.php
- *   - mw-config/index.php
- *   - cli
- *
- * @note Since we can't rely on anything, the minimum PHP versions and MW current
- * version are hardcoded here
- */
-function wfPHPVersionError( $type ) {
-       $mwVersion = '1.26';
-       $minimumVersionPHP = '5.3.3';
-
-       $phpVersion = PHP_VERSION;
-       $protocol = isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0';
-       $message = "MediaWiki $mwVersion requires at least "
-               . "PHP version $minimumVersionPHP, you are using PHP $phpVersion.";
-
-       if ( $type == 'cli' ) {
-               $finalOutput = "You are using PHP version $phpVersion "
-                       . "but MediaWiki $mwVersion needs PHP $minimumVersionPHP or higher. ABORTING.\n"
-                       . "Check if you have a newer php executable with a different name, such as php5.\n";
-       } elseif ( $type == 'index.php' || $type == 'mw-config/index.php' ) {
-               $pathinfo = pathinfo( $_SERVER['SCRIPT_NAME'] );
-               if ( $type == 'mw-config/index.php' ) {
-                       $dirname = dirname( $pathinfo['dirname'] );
-               } else {
-                       $dirname = $pathinfo['dirname'];
-               }
-               $encLogo = htmlspecialchars(
-                       str_replace( '//', '/', $dirname . '/' ) .
-                       'resources/assets/mediawiki.png'
-               );
-
-               header( "$protocol 500 MediaWiki configuration Error" );
-               header( 'Content-type: text/html; charset=UTF-8' );
-               // Don't cache error pages!  They cause no end of trouble...
-               header( 'Cache-control: none' );
-               header( 'Pragma: no-cache' );
-
-               $finalOutput = <<<HTML
-<!DOCTYPE html>
-<html lang="en" dir="ltr">
-       <head>
-               <meta charset="UTF-8" />
-               <title>MediaWiki {$mwVersion}</title>
-               <style media='screen'>
-                       body {
-                               color: #000;
-                               background-color: #fff;
-                               font-family: sans-serif;
-                               padding: 2em;
-                               text-align: center;
-                       }
-                       p, img, h1 {
-                               text-align: left;
-                               margin: 0.5em 0;
-                       }
-                       h1 {
-                               font-size: 120%;
-                       }
-               </style>
-       </head>
-       <body>
-               <img src="{$encLogo}" alt='The MediaWiki logo' />
-               <h1>MediaWiki {$mwVersion} internal error</h1>
-               <div class='error'>
-               <p>
-                       {$message}
-               </p>
-               <p>
-                       Please consider <a href="http://www.php.net/downloads.php">upgrading your copy of PHP</a>.
-                       PHP versions less than 5.3.0 are no longer supported by the PHP Group and will not receive
-                       security or bugfix updates.
-               </p>
-               <p>
-                       If for some reason you are unable to upgrade your PHP version, you will need to
-                       <a href="https://www.mediawiki.org/wiki/Download">download</a> an older version
-                       of MediaWiki from our website.  See our
-                       <a href="https://www.mediawiki.org/wiki/Compatibility#PHP">compatibility page</a>
-                       for details of which versions are compatible with prior versions of PHP.
-               </p>
-               </div>
-       </body>
-</html>
-HTML;
-       // Handle everything that's not index.php
-       } else {
-               // So nothing thinks this is JS or CSS
-               $finalOutput = ( $type == 'load.php' ) ? "/* $message */" : $message;
-               header( "$protocol 500 MediaWiki configuration Error" );
-       }
-       echo "$finalOutput\n";
-       die( 1 );
-}
+require_once dirname( __FILE__ ) . '/PHPVersionCheck.php';
index c546de7..69b64dd 100644 (file)
@@ -541,9 +541,8 @@ class ProtectionForm {
                $out .= Xml::closeElement( 'fieldset' );
 
                if ( $user->isAllowed( 'editinterface' ) ) {
-                       $title = Title::makeTitle( NS_MEDIAWIKI, 'Protect-dropdown' );
                        $link = Linker::link(
-                               $title,
+                               $context->msg( 'protect-dropdown' )->inContentLanguage()->getTitle(),
                                $context->msg( 'protect-edit-reasonlist' )->escaped(),
                                array(),
                                array( 'action' => 'edit' )
index 3ba6157..9bb4d16 100644 (file)
@@ -1284,8 +1284,14 @@ class Revision implements IDBAccessObject {
 
                if ( $wgCompressRevisions ) {
                        if ( function_exists( 'gzdeflate' ) ) {
-                               $text = gzdeflate( $text );
-                               $flags[] = 'gzip';
+                               $deflated = gzdeflate( $text );
+
+                               if ( $deflated === false ) {
+                                       wfLogWarning( __METHOD__ . ': gzdeflate() failed' );
+                               } else {
+                                       $text = $deflated;
+                                       $flags[] = 'gzip';
+                               }
                        } else {
                                wfDebug( __METHOD__ . " -- no zlib support, not compressing\n" );
                        }
@@ -1306,6 +1312,11 @@ class Revision implements IDBAccessObject {
                        # This can be done periodically via maintenance/compressOld.php, and
                        # as pages are saved if $wgCompressRevisions is set.
                        $text = gzinflate( $text );
+
+                       if ( $text === false ) {
+                               wfLogWarning( __METHOD__ . ': gzinflate() failed' );
+                               return false;
+                       }
                }
 
                if ( in_array( 'object', $flags ) ) {
index 1cb43f7..e417473 100644 (file)
@@ -30,6 +30,7 @@ abstract class RevisionListBase extends ContextSource {
        /** @var array */
        protected $ids;
 
+       /** @var ResultWrapper|bool */
        protected $res;
 
        /** @var bool|object */
index 96193a7..677d5a4 100644 (file)
@@ -359,20 +359,13 @@ class Sanitizer {
        }
 
        /**
-        * Cleans up HTML, removes dangerous tags and attributes, and
-        * removes HTML comments
-        * @param string $text
-        * @param callable $processCallback Callback to do any variable or parameter
-        *   replacements in HTML attribute values
-        * @param array|bool $args Arguments for the processing callback
+        * Return the various lists of recognized tags
         * @param array $extratags For any extra tags to include
         * @param array $removetags For any tags (default or extra) to exclude
-        * @return string
+        * @return array
         */
-       public static function removeHTMLtags( $text, $processCallback = null,
-               $args = array(), $extratags = array(), $removetags = array()
-       ) {
-               global $wgUseTidy, $wgAllowMicrodataAttributes, $wgAllowImageTag;
+       public static function getRecognizedTagData( $extratags = array(), $removetags = array() ) {
+               global $wgAllowMicrodataAttributes, $wgAllowImageTag;
 
                static $htmlpairsStatic, $htmlsingle, $htmlsingleonly, $htmlnest, $tabletags,
                        $htmllist, $listtags, $htmlsingleallowed, $htmlelementsStatic, $staticInitialised;
@@ -431,12 +424,44 @@ class Sanitizer {
                        }
                        $staticInitialised = $globalContext;
                }
+
                # Populate $htmlpairs and $htmlelements with the $extratags and $removetags arrays
                $extratags = array_flip( $extratags );
                $removetags = array_flip( $removetags );
                $htmlpairs = array_merge( $extratags, $htmlpairsStatic );
                $htmlelements = array_diff_key( array_merge( $extratags, $htmlelementsStatic ), $removetags );
 
+               return array(
+                       'htmlpairs' => $htmlpairs,
+                       'htmlsingle' => $htmlsingle,
+                       'htmlsingleonly' => $htmlsingleonly,
+                       'htmlnest' => $htmlnest,
+                       'tabletags' => $tabletags,
+                       'htmllist' => $htmllist,
+                       'listtags' => $listtags,
+                       'htmlsingleallowed' => $htmlsingleallowed,
+                       'htmlelements' => $htmlelements,
+               );
+       }
+
+       /**
+        * Cleans up HTML, removes dangerous tags and attributes, and
+        * removes HTML comments
+        * @param string $text
+        * @param callable $processCallback Callback to do any variable or parameter
+        *   replacements in HTML attribute values
+        * @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
+        * @return string
+        */
+       public static function removeHTMLtags( $text, $processCallback = null,
+               $args = array(), $extratags = array(), $removetags = array()
+       ) {
+               global $wgUseTidy;
+
+               extract( self::getRecognizedTagData( $extratags, $removetags ) );
+
                # Remove HTML comments
                $text = Sanitizer::removeHTMLcomments( $text );
                $bits = explode( '<', $text );
@@ -463,9 +488,9 @@ class Sanitizer {
                                                $badtag = true;
                                        } elseif ( $slash ) {
                                                # Closing a tag... is it the one we just opened?
-                                               wfSuppressWarnings();
+                                               MediaWiki\suppressWarnings();
                                                $ot = array_pop( $tagstack );
-                                               wfRestoreWarnings();
+                                               MediaWiki\restoreWarnings();
 
                                                if ( $ot != $t ) {
                                                        if ( isset( $htmlsingleallowed[$ot] ) ) {
@@ -473,32 +498,32 @@ class Sanitizer {
                                                                # and see if we find a match below them
                                                                $optstack = array();
                                                                array_push( $optstack, $ot );
-                                                               wfSuppressWarnings();
+                                                               MediaWiki\suppressWarnings();
                                                                $ot = array_pop( $tagstack );
-                                                               wfRestoreWarnings();
+                                                               MediaWiki\restoreWarnings();
                                                                while ( $ot != $t && isset( $htmlsingleallowed[$ot] ) ) {
                                                                        array_push( $optstack, $ot );
-                                                                       wfSuppressWarnings();
+                                                                       MediaWiki\suppressWarnings();
                                                                        $ot = array_pop( $tagstack );
-                                                                       wfRestoreWarnings();
+                                                                       MediaWiki\restoreWarnings();
                                                                }
                                                                if ( $t != $ot ) {
                                                                        # No match. Push the optional elements back again
                                                                        $badtag = true;
-                                                                       wfSuppressWarnings();
+                                                                       MediaWiki\suppressWarnings();
                                                                        $ot = array_pop( $optstack );
-                                                                       wfRestoreWarnings();
+                                                                       MediaWiki\restoreWarnings();
                                                                        while ( $ot ) {
                                                                                array_push( $tagstack, $ot );
-                                                                               wfSuppressWarnings();
+                                                                               MediaWiki\suppressWarnings();
                                                                                $ot = array_pop( $optstack );
-                                                                               wfRestoreWarnings();
+                                                                               MediaWiki\restoreWarnings();
                                                                        }
                                                                }
                                                        } else {
-                                                               wfSuppressWarnings();
+                                                               MediaWiki\suppressWarnings();
                                                                array_push( $tagstack, $ot );
-                                                               wfRestoreWarnings();
+                                                               MediaWiki\restoreWarnings();
 
                                                                # <li> can be nested in <ul> or <ol>, skip those cases:
                                                                if ( !isset( $htmllist[$ot] ) || !isset( $listtags[$t] ) ) {
index 9a91156..70c935d 100644 (file)
@@ -74,9 +74,6 @@ if ( $wgStylePath === false ) {
 if ( $wgLocalStylePath === false ) {
        $wgLocalStylePath = "$wgScriptPath/skins";
 }
-if ( $wgStyleDirectory === false ) {
-       $wgStyleDirectory = "$IP/skins";
-}
 if ( $wgExtensionAssetsPath === false ) {
        $wgExtensionAssetsPath = "$wgScriptPath/extensions";
 }
@@ -108,6 +105,10 @@ if ( $wgGitInfoCacheDirectory === false && $wgCacheDirectory !== false ) {
        $wgGitInfoCacheDirectory = "{$wgCacheDirectory}/gitinfo";
 }
 
+if ( $wgEnableParserCache === false ) {
+       $wgParserCacheType = CACHE_NONE;
+}
+
 // Fix path to icon images after they were moved in 1.24
 if ( $wgRightsIcon ) {
        $wgRightsIcon = str_replace(
@@ -433,9 +434,9 @@ if ( !$wgHtml5Version && $wgAllowRdfaAttributes ) {
 $wgFileExtensions = array_values( array_diff ( $wgFileExtensions, $wgFileBlacklist ) );
 
 if ( $wgInvalidateCacheOnLocalSettingsChange ) {
-       // @codingStandardsIgnoreStart Generic.PHP.NoSilencedErrors.Discouraged - No GlobalFunction here yet.
-       $wgCacheEpoch = max( $wgCacheEpoch, gmdate( 'YmdHis', @filemtime( "$IP/LocalSettings.php" ) ) );
-       // @codingStandardsIgnoreEnd
+       MediaWiki\suppressWarnings();
+       $wgCacheEpoch = max( $wgCacheEpoch, gmdate( 'YmdHis', filemtime( "$IP/LocalSettings.php" ) ) );
+       MediaWiki\restoreWarnings();
 }
 
 if ( $wgNewUserLog ) {
@@ -469,6 +470,15 @@ if ( $wgProfileOnly ) {
        $wgDebugLogFile = '';
 }
 
+// Backwards compatibility with old password limits
+if ( $wgMinimalPasswordLength !== false ) {
+       $wgPasswordPolicy['policies']['default']['MinimalPasswordLength'] = $wgMinimalPasswordLength;
+}
+
+if ( $wgMaximalPasswordLength !== false ) {
+       $wgPasswordPolicy['policies']['default']['MaximalPasswordLength'] = $wgMaximalPasswordLength;
+}
+
 Profiler::instance()->scopedProfileOut( $ps_default );
 
 // Disable MWDebug for command line mode, this prevents MWDebug from eating up
@@ -488,8 +498,8 @@ require_once "$IP/includes/libs/normal/UtfNormalUtil.php";
 
 $ps_default2 = Profiler::instance()->scopedProfileIn( $fname . '-defaults2' );
 
-if ( defined( 'MW_ENTRY_PHP5' ) ) {
-       wfWarn( 'The ".php5" entry point files are deprecated. Use ".php" instead.' );
+if ( $wgScriptExtension !== '.php' || defined( 'MW_ENTRY_PHP5' ) ) {
+       wfWarn( 'Script extensions other than ".php" are deprecated.' );
 }
 
 if ( $wgCanonicalServer === false ) {
@@ -555,9 +565,9 @@ wfMemoryLimit();
  * explicitly set. Inspired by phpMyAdmin's treatment of the problem.
  */
 if ( is_null( $wgLocaltimezone ) ) {
-       wfSuppressWarnings();
+       MediaWiki\suppressWarnings();
        $wgLocaltimezone = date_default_timezone_get();
-       wfRestoreWarnings();
+       MediaWiki\restoreWarnings();
 }
 
 date_default_timezone_set( $wgLocaltimezone );
index 824dd06..ca8f11a 100644 (file)
@@ -95,9 +95,9 @@ class SquidPurgeClient {
                }
                $this->socket = socket_create( AF_INET, SOCK_STREAM, SOL_TCP );
                socket_set_nonblock( $this->socket );
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $ok = socket_connect( $this->socket, $ip, $this->port );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( !$ok ) {
                        $error = socket_last_error( $this->socket );
                        if ( $error !== self::EINPROGRESS ) {
@@ -153,12 +153,12 @@ class SquidPurgeClient {
                        } elseif ( IP::isIPv6( $this->host ) ) {
                                throw new MWException( '$wgSquidServers does not support IPv6' );
                        } else {
-                               wfSuppressWarnings();
+                               MediaWiki\suppressWarnings();
                                $this->ip = gethostbyname( $this->host );
                                if ( $this->ip === $this->host ) {
                                        $this->ip = false;
                                }
-                               wfRestoreWarnings();
+                               MediaWiki\restoreWarnings();
                        }
                }
                return $this->ip;
@@ -178,11 +178,11 @@ class SquidPurgeClient {
         */
        public function close() {
                if ( $this->socket ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        socket_set_block( $this->socket );
                        socket_shutdown( $this->socket );
                        socket_close( $this->socket );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                }
                $this->socket = null;
                $this->readBuffer = '';
@@ -252,9 +252,9 @@ class SquidPurgeClient {
                        $buf = substr( $this->writeBuffer, 0, self::BUFFER_SIZE );
                        $flags = 0;
                }
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $bytesSent = socket_send( $socket, $buf, strlen( $buf ), $flags );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( $bytesSent === false ) {
                        $error = socket_last_error( $socket );
@@ -278,9 +278,9 @@ class SquidPurgeClient {
                }
 
                $buf = '';
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $bytesRead = socket_recv( $socket, $buf, self::BUFFER_SIZE, 0 );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( $bytesRead === false ) {
                        $error = socket_last_error( $socket );
                        if ( $error != self::EAGAIN && $error != self::EINTR ) {
@@ -442,9 +442,9 @@ class SquidPurgeClientPool {
                        }
                        $exceptSockets = null;
                        $timeout = min( $startTime + $this->timeout - microtime( true ), 1 );
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $numReady = socket_select( $readSockets, $writeSockets, $exceptSockets, $timeout );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        if ( $numReady === false ) {
                                wfDebugLog( 'squid', __METHOD__ . ': Error in stream_select: ' .
                                        socket_strerror( socket_last_error() ) . "\n" );
index a52b25b..bac4db6 100644 (file)
@@ -44,9 +44,9 @@ class StreamFile {
                        throw new MWException( __FUNCTION__ . " given storage path '$fname'." );
                }
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $stat = stat( $fname );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                $res = self::prepareForStream( $fname, $stat, $headers, $sendErrors );
                if ( $res == self::NOT_MODIFIED ) {
@@ -78,7 +78,7 @@ class StreamFile {
        ) {
                if ( !is_array( $info ) ) {
                        if ( $sendErrors ) {
-                               header( 'HTTP/1.0 404 Not Found' );
+                               HttpStatus::header( 404  );
                                header( 'Cache-Control: no-cache' );
                                header( 'Content-Type: text/html; charset=utf-8' );
                                $encFile = htmlspecialchars( $path );
@@ -126,7 +126,7 @@ class StreamFile {
                        $modsince = preg_replace( '/;.*$/', '', $_SERVER['HTTP_IF_MODIFIED_SINCE'] );
                        if ( wfTimestamp( TS_UNIX, $info['mtime'] ) <= strtotime( $modsince ) ) {
                                ini_set( 'zlib.output_compression', 0 );
-                               header( "HTTP/1.0 304 Not Modified" );
+                               HttpStatus::header( 304 );
                                return self::NOT_MODIFIED; // ok
                        }
                }
index 509fc27..7aa4113 100644 (file)
@@ -265,6 +265,7 @@ class Title {
                if ( is_object( $text ) ) {
                        throw new InvalidArgumentException( '$text must be a string.' );
                } elseif ( !is_string( $text ) ) {
+                       wfDebugLog( 'T76305', wfGetAllCallers( 5 ) );
                        wfWarn( __METHOD__ . ': $text must be a string. This will throw an InvalidArgumentException in future.', 2 );
                }
 
@@ -3308,6 +3309,14 @@ class Title {
                $this->mIsBigDeletion = null;
        }
 
+       public static function clearCaches() {
+               $linkCache = LinkCache::singleton();
+               $linkCache->clear();
+
+               $titleCache = self::getTitleCache();
+               $titleCache->clear();
+       }
+
        /**
         * Capitalize a text string for a title if it belongs to a namespace that capitalizes
         *
@@ -4371,9 +4380,10 @@ class Title {
        /**
         * Updates page_touched for this page; called from LinksUpdate.php
         *
+        * @param integer $purgeTime TS_MW timestamp [optional]
         * @return bool True if the update succeeded
         */
-       public function invalidateCache() {
+       public function invalidateCache( $purgeTime = null ) {
                if ( wfReadOnly() ) {
                        return false;
                }
@@ -4385,11 +4395,13 @@ class Title {
                $method = __METHOD__;
                $dbw = wfGetDB( DB_MASTER );
                $conds = $this->pageCond();
-               $dbw->onTransactionIdle( function () use ( $dbw, $conds, $method ) {
+               $dbw->onTransactionIdle( function () use ( $dbw, $conds, $method, $purgeTime ) {
+                       $dbTimestamp = $dbw->timestamp( $purgeTime ?: time() );
+
                        $dbw->update(
                                'page',
-                               array( 'page_touched' => $dbw->timestamp() ),
-                               $conds,
+                               array( 'page_touched' => $dbTimestamp ),
+                               $conds + array( 'page_touched < ' . $dbw->addQuotes( $dbTimestamp ) ),
                                $method
                        );
                } );
index 429ae0e..10763ea 100644 (file)
@@ -410,15 +410,14 @@ class User implements IDBAccessObject {
         * @since 1.25
         */
        protected function loadFromCache() {
-               global $wgMemc;
-
                if ( $this->mId == 0 ) {
                        $this->loadDefaults();
                        return false;
                }
 
+               $cache = ObjectCache::getMainWANInstance();
                $key = wfMemcKey( 'user', 'id', $this->mId );
-               $data = $wgMemc->get( $key );
+               $data = $cache->get( $key );
                if ( !is_array( $data ) || $data['mVersion'] < self::VERSION ) {
                        // Object is expired
                        return false;
@@ -440,8 +439,6 @@ class User implements IDBAccessObject {
         * This method should not be called outside the User class
         */
        public function saveToCache() {
-               global $wgMemc;
-
                $this->load();
                $this->loadGroups();
                $this->loadOptions();
@@ -451,6 +448,8 @@ class User implements IDBAccessObject {
                        return;
                }
 
+               $cache = ObjectCache::getMainWANInstance();
+
                // The cache needs good consistency due to its high TTL, so the user
                // should have been loaded from the master to avoid lag amplification.
                if ( !( $this->queryFlagsUsed & self::READ_LATEST ) ) {
@@ -465,7 +464,7 @@ class User implements IDBAccessObject {
                $data['mVersion'] = self::VERSION;
                $key = wfMemcKey( 'user', 'id', $this->mId );
 
-               $wgMemc->set( $key, $data );
+               $cache->set( $key, $data );
        }
 
        /** @name newFrom*() static factory methods */
@@ -845,15 +844,14 @@ class User implements IDBAccessObject {
         * @since 1.23
         */
        public function checkPasswordValidity( $password ) {
-               global $wgMinimalPasswordLength, $wgMaximalPasswordLength, $wgContLang;
+               global $wgPasswordPolicy;
 
-               static $blockedLogins = array(
-                       'Useruser' => 'Passpass', 'Useruser1' => 'Passpass1', # r75589
-                       'Apitestsysop' => 'testpass', 'Apitestuser' => 'testpass' # r75605
+               $upp = new UserPasswordPolicy(
+                       $wgPasswordPolicy['policies'],
+                       $wgPasswordPolicy['checks']
                );
 
                $status = Status::newGood();
-
                $result = false; //init $result to false for the internal checks
 
                if ( !Hooks::run( 'isValidPassword', array( $password, &$result, $this ) ) ) {
@@ -862,28 +860,8 @@ class User implements IDBAccessObject {
                }
 
                if ( $result === false ) {
-                       if ( strlen( $password ) < $wgMinimalPasswordLength ) {
-                               $status->error( 'passwordtooshort', $wgMinimalPasswordLength );
-                               return $status;
-                       } elseif ( strlen( $password ) > $wgMaximalPasswordLength ) {
-                               // T64685: Password too long, might cause DoS attack
-                               $status->fatal( 'passwordtoolong', $wgMaximalPasswordLength );
-                               return $status;
-                       } elseif ( $wgContLang->lc( $password ) == $wgContLang->lc( $this->mName ) ) {
-                               $status->error( 'password-name-match' );
-                               return $status;
-                       } elseif ( isset( $blockedLogins[$this->getName()] )
-                               && $password == $blockedLogins[$this->getName()]
-                       ) {
-                               $status->error( 'password-login-forbidden' );
-                               return $status;
-                       } else {
-                               //it seems weird returning a Good status here, but this is because of the
-                               //initialization of $result to false above. If the hook is never run or it
-                               //doesn't modify $result, then we will likely get down into this if with
-                               //a valid password.
-                               return $status;
-                       }
+                       $status->merge( $upp->checkUserPassword( $this, $password ) );
+                       return $status;
                } elseif ( $result === true ) {
                        return $status;
                } else {
@@ -1230,7 +1208,7 @@ class User implements IDBAccessObject {
                        self::selectFields(),
                        array( 'user_id' => $this->mId ),
                        __METHOD__,
-                       ( $flags & self::READ_LOCKING == self::READ_LOCKING )
+                       ( ( $flags & self::READ_LOCKING ) == self::READ_LOCKING )
                                ? array( 'LOCK IN SHARE MODE' )
                                : array()
                );
@@ -2302,11 +2280,10 @@ class User implements IDBAccessObject {
         * Called implicitly from invalidateCache() and saveSettings().
         */
        public function clearSharedCache() {
-               global $wgMemc;
-
-               $this->load();
-               if ( $this->mId ) {
-                       $wgMemc->delete( wfMemcKey( 'user', 'id', $this->mId ) );
+               $id = $this->getId();
+               if ( $id ) {
+                       $key = wfMemcKey( 'user', 'id', $id );
+                       ObjectCache::getMainWANInstance()->delete( $key );
                }
        }
 
@@ -2333,15 +2310,11 @@ class User implements IDBAccessObject {
         * @since 1.25
         */
        public function touch() {
-               global $wgMemc;
-
-               $this->load();
-
-               if ( $this->mId ) {
-                       $key = wfMemcKey( 'user-quicktouched', 'id', $this->mId );
-                       $timestamp = $this->newTouchedTimestamp();
-                       $wgMemc->set( $key, $timestamp );
-                       $this->mQuickTouched = $timestamp;
+               $id = $this->getId();
+               if ( $id ) {
+                       $key = wfMemcKey( 'user-quicktouched', 'id', $id );
+                       ObjectCache::getMainWANInstance()->touchCheckKey( $key );
+                       $this->mQuickTouched = null;
                }
        }
 
@@ -2359,16 +2332,16 @@ class User implements IDBAccessObject {
         * @return string TS_MW Timestamp
         */
        public function getTouched() {
-               global $wgMemc;
-
                $this->load();
 
                if ( $this->mId ) {
                        if ( $this->mQuickTouched === null ) {
+                               $cache = ObjectCache::getMainWANInstance();
                                $key = wfMemcKey( 'user-quicktouched', 'id', $this->mId );
-                               $timestamp = $wgMemc->get( $key );
+
+                               $timestamp = $cache->getCheckKeyTime( $key );
                                if ( $timestamp ) {
-                                       $this->mQuickTouched = $timestamp;
+                                       $this->mQuickTouched = wfTimestamp( TS_MW, (int)$timestamp );
                                } else {
                                        # Set the timestamp to get HTTP 304 cache hits
                                        $this->touch();
@@ -2386,7 +2359,7 @@ class User implements IDBAccessObject {
         * @return string TS_MW Timestamp
         * @since 1.26
         */
-       protected function getDBTouched() {
+       public function getDBTouched() {
                $this->load();
 
                return $this->mTouched;
index 1b9e4b6..a19f698 100644 (file)
@@ -278,8 +278,8 @@ class UserRightsProxy {
                        array( 'user_id' => $this->id ),
                        __METHOD__ );
 
-               global $wgMemc;
+               $cache = ObjectCache::getMainWANInstance();
                $key = wfForeignMemcKey( $this->database, false, 'user', 'id', $this->id );
-               $wgMemc->delete( $key );
+               $cache->delete( $key );
        }
 }
index 054eceb..6bdcc87 100644 (file)
 class WebRequest {
        protected $data, $headers = array();
 
+       /**
+        * Flag to make WebRequest::getHeader return an array of values.
+        * @since 1.26
+        */
+       const GETHEADER_LIST = 1;
+
        /**
         * Lazy-init response object
         * @var WebResponse
@@ -98,9 +104,9 @@ class WebRequest {
                        if ( !preg_match( '!^https?://!', $url ) ) {
                                $url = 'http://unused' . $url;
                        }
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $a = parse_url( $url );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        if ( $a ) {
                                $path = isset( $a['path'] ) ? $a['path'] : '';
 
@@ -894,19 +900,28 @@ class WebRequest {
        }
 
        /**
-        * Get a request header, or false if it isn't set
-        * @param string $name Case-insensitive header name
+        * Get a request header, or false if it isn't set.
         *
-        * @return string|bool False on failure
-        */
-       public function getHeader( $name ) {
+        * @param string $name Case-insensitive header name
+        * @param int $flags Bitwise combination of:
+        *   WebRequest::GETHEADER_LIST  Treat the header as a comma-separated list
+        *                               of values, as described in RFC 2616 § 4.2.
+        *                               (since 1.26).
+        * @return string|array|bool False if header is unset; otherwise the
+        *  header value(s) as either a string (the default) or an array, if
+        *  WebRequest::GETHEADER_LIST flag was set.
+        */
+       public function getHeader( $name, $flags = 0 ) {
                $this->initHeaders();
                $name = strtoupper( $name );
-               if ( isset( $this->headers[$name] ) ) {
-                       return $this->headers[$name];
-               } else {
+               if ( !isset( $this->headers[$name] ) ) {
                        return false;
                }
+               $value = $this->headers[$name];
+               if ( $flags & self::GETHEADER_LIST ) {
+                       $value = array_map( 'trim', explode( ',', $value ) );
+               }
+               return $value;
        }
 
        /**
@@ -1374,13 +1389,8 @@ class FauxRequest extends WebRequest {
                return $this->protocol;
        }
 
-       /**
-        * @param string $name The name of the header to get (case insensitive).
-        * @return bool|string
-        */
-       public function getHeader( $name ) {
-               $name = strtoupper( $name );
-               return isset( $this->headers[$name] ) ? $this->headers[$name] : false;
+       private function initHeaders() {
+               return;
        }
 
        /**
@@ -1488,8 +1498,8 @@ class DerivativeRequest extends FauxRequest {
                return $this->base->checkSessionCookie();
        }
 
-       public function getHeader( $name ) {
-               return $this->base->getHeader( $name );
+       public function getHeader( $name, $flags = 0 ) {
+               return $this->base->getHeader( $name, $flags );
        }
 
        public function getAllHeaders() {
index ab34931..1b6947c 100644 (file)
@@ -28,7 +28,7 @@
 class WebResponse {
 
        /**
-        * Output a HTTP header, wrapper for PHP's header()
+        * Output an HTTP header, wrapper for PHP's header()
         * @param string $string Header to output
         * @param bool $replace Replace current similar header
         * @param null|int $http_response_code Forces the HTTP response code to the specified value.
@@ -53,6 +53,15 @@ class WebResponse {
                return null;
        }
 
+       /**
+        * Output an HTTP status code header
+        * @since 1.26
+        * @param int $code Status code
+        */
+       public function statusHeader( $code ) {
+               HttpStatus::header( $code );
+       }
+
        /**
         * Set the browser cookie
         * @param string $name The name of the cookie.
@@ -162,6 +171,14 @@ class FauxResponse extends WebResponse {
                }
        }
 
+       /**
+        * @since 1.26
+        * @param int $code Status code
+        */
+       public function statusHeader( $code ) {
+               $this->code = intval( $code );
+       }
+
        /**
         * @param string $key The name of the header to get (case insensitive).
         * @return string|null The header value (if set); null otherwise.
index f0bd70b..c356c6d 100644 (file)
@@ -871,112 +871,6 @@ class Xml {
        }
 }
 
-class XmlSelect {
-       protected $options = array();
-       protected $default = false;
-       protected $attributes = array();
-
-       public function __construct( $name = false, $id = false, $default = false ) {
-               if ( $name ) {
-                       $this->setAttribute( 'name', $name );
-               }
-
-               if ( $id ) {
-                       $this->setAttribute( 'id', $id );
-               }
-
-               if ( $default !== false ) {
-                       $this->default = $default;
-               }
-       }
-
-       /**
-        * @param string $default
-        */
-       public function setDefault( $default ) {
-               $this->default = $default;
-       }
-
-       /**
-        * @param string $name
-        * @param array $value
-        */
-       public function setAttribute( $name, $value ) {
-               $this->attributes[$name] = $value;
-       }
-
-       /**
-        * @param string $name
-        * @return array|null
-        */
-       public function getAttribute( $name ) {
-               if ( isset( $this->attributes[$name] ) ) {
-                       return $this->attributes[$name];
-               } else {
-                       return null;
-               }
-       }
-
-       /**
-        * @param string $name
-        * @param bool $value
-        */
-       public function addOption( $name, $value = false ) {
-               // Stab stab stab
-               $value = $value !== false ? $value : $name;
-
-               $this->options[] = array( $name => $value );
-       }
-
-       /**
-        * This accepts an array of form
-        * label => value
-        * label => ( label => value, label => value )
-        *
-        * @param array $options
-        */
-       public function addOptions( $options ) {
-               $this->options[] = $options;
-       }
-
-       /**
-        * This accepts an array of form
-        * label => value
-        * label => ( label => value, label => value )
-        *
-        * @param array $options
-        * @param bool $default
-        * @return string
-        */
-       static function formatOptions( $options, $default = false ) {
-               $data = '';
-
-               foreach ( $options as $label => $value ) {
-                       if ( is_array( $value ) ) {
-                               $contents = self::formatOptions( $value, $default );
-                               $data .= Html::rawElement( 'optgroup', array( 'label' => $label ), $contents ) . "\n";
-                       } else {
-                               $data .= Xml::option( $label, $value, $value === $default ) . "\n";
-                       }
-               }
-
-               return $data;
-       }
-
-       /**
-        * @return string
-        */
-       public function getHTML() {
-               $contents = '';
-
-               foreach ( $this->options as $options ) {
-                       $contents .= self::formatOptions( $options, $this->default );
-               }
-
-               return Html::rawElement( 'select', $this->attributes, rtrim( $contents ) );
-       }
-}
-
 /**
  * A wrapper class which causes Xml::encodeJsVar() and Xml::encodeJsCall() to
  * interpret a given string as being a JavaScript expression, instead of string
diff --git a/includes/XmlSelect.php b/includes/XmlSelect.php
new file mode 100644 (file)
index 0000000..1cd04ae
--- /dev/null
@@ -0,0 +1,130 @@
+<?php
+/**
+ * Class to generate XML <select>.
+ *
+ * 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
+ */
+
+/**
+ * Module of static functions for generating XML <select> elements
+ */
+class XmlSelect {
+       protected $options = array();
+       protected $default = false;
+       protected $attributes = array();
+
+       public function __construct( $name = false, $id = false, $default = false ) {
+               if ( $name ) {
+                       $this->setAttribute( 'name', $name );
+               }
+
+               if ( $id ) {
+                       $this->setAttribute( 'id', $id );
+               }
+
+               if ( $default !== false ) {
+                       $this->default = $default;
+               }
+       }
+
+       /**
+        * @param string $default
+        */
+       public function setDefault( $default ) {
+               $this->default = $default;
+       }
+
+       /**
+        * @param string $name
+        * @param array $value
+        */
+       public function setAttribute( $name, $value ) {
+               $this->attributes[$name] = $value;
+       }
+
+       /**
+        * @param string $name
+        * @return array|null
+        */
+       public function getAttribute( $name ) {
+               if ( isset( $this->attributes[$name] ) ) {
+                       return $this->attributes[$name];
+               } else {
+                       return null;
+               }
+       }
+
+       /**
+        * @param string $name
+        * @param bool $value
+        */
+       public function addOption( $name, $value = false ) {
+               // Stab stab stab
+               $value = $value !== false ? $value : $name;
+
+               $this->options[] = array( $name => $value );
+       }
+
+       /**
+        * This accepts an array of form
+        * label => value
+        * label => ( label => value, label => value )
+        *
+        * @param array $options
+        */
+       public function addOptions( $options ) {
+               $this->options[] = $options;
+       }
+
+       /**
+        * This accepts an array of form
+        * label => value
+        * label => ( label => value, label => value )
+        *
+        * @param array $options
+        * @param bool $default
+        * @return string
+        */
+       static function formatOptions( $options, $default = false ) {
+               $data = '';
+
+               foreach ( $options as $label => $value ) {
+                       if ( is_array( $value ) ) {
+                               $contents = self::formatOptions( $value, $default );
+                               $data .= Html::rawElement( 'optgroup', array( 'label' => $label ), $contents ) . "\n";
+                       } else {
+                               $data .= Xml::option( $label, $value, $value === $default ) . "\n";
+                       }
+               }
+
+               return $data;
+       }
+
+       /**
+        * @return string
+        */
+       public function getHTML() {
+               $contents = '';
+
+               foreach ( $this->options as $options ) {
+                       $contents .= self::formatOptions( $options, $this->default );
+               }
+
+               return Html::rawElement( 'select', $this->attributes, rtrim( $contents ) );
+       }
+}
index ba9f448..b59be8c 100644 (file)
@@ -46,7 +46,6 @@ $zh2Hant = array(
 '㱮' => '殨',
 '㲿' => '瀇',
 '㳔' => '濧',
-'㳕' => '灡',
 '㳠' => '澾',
 '㳡' => '濄',
 '㳢' => '𣾷',
@@ -79,7 +78,6 @@ $zh2Hant = array(
 '䍁' => '繸',
 '䎬' => '䎱',
 '䏝' => '膞',
-'䓕' => '薳',
 '䓖' => '藭',
 '䗖' => '螮',
 '䘛' => '𧝞',
@@ -1476,7 +1474,6 @@ $zh2Hant = array(
 '虑' => '慮',
 '虚' => '虛',
 '虫' => '蟲',
-'虬' => '虯',
 '虮' => '蟣',
 '虽' => '雖',
 '虾' => '蝦',
@@ -3077,6 +3074,7 @@ $zh2Hant = array(
 '9余' => '9餘',
 '·范' => '·范',
 '’s ' => '’s',
+'、面点' => '、麵點',
 '。个中' => '。箇中',
 '〇周后' => '〇周後',
 '〇年' => '〇年',
@@ -3974,8 +3972,6 @@ $zh2Hant = array(
 '内斗' => '內鬥',
 '内哄' => '內鬨',
 '全干' => '全乾',
-'全面包围' => '全面包圍',
-'全面包裹' => '全面包裹',
 '两个' => '兩個',
 '两周后' => '兩周後',
 '两天后' => '兩天後',
@@ -4347,6 +4343,7 @@ $zh2Hant = array(
 '吃姜' => '吃薑',
 '吃里扒外' => '吃裡扒外',
 '吃里爬外' => '吃裡爬外',
+'吃面' => '吃麵',
 '各辟' => '各闢',
 '各类钟' => '各類鐘',
 '合伙人' => '合伙人',
@@ -4408,7 +4405,6 @@ $zh2Hant = array(
 '吾为之范我驰驱' => '吾爲之範我馳驅',
 '吕后' => '呂后',
 '呂后' => '呂后',
-'呆呆兽' => '呆呆獸',
 '呆致致' => '呆緻緻',
 '呆里呆气' => '呆裡呆氣',
 '告札' => '告劄',
@@ -4852,6 +4848,7 @@ $zh2Hant = array(
 '对表达' => '對表達',
 '导游' => '導遊',
 '小丑' => '小丑',
+'小井里' => '小井里',
 '小价' => '小价',
 '小仆' => '小僕',
 '小几' => '小几',
@@ -5343,7 +5340,6 @@ $zh2Hant = array(
 '忠人之托' => '忠人之托',
 '忠仆' => '忠僕',
 '忠于' => '忠於',
-'快干' => '快幹',
 '快快当当' => '快快當當',
 '快冲' => '快衝',
 '怒于' => '怒於',
@@ -5807,6 +5803,7 @@ $zh2Hant = array(
 '支干' => '支幹',
 '支配欲' => '支配慾',
 '收获' => '收穫',
+'改制成' => '改制成',
 '改征' => '改徵',
 '改采' => '改採',
 '放懞挣' => '放懞掙',
@@ -5878,25 +5875,40 @@ $zh2Hant = array(
 '方志' => '方誌',
 '于0' => '於0',
 '于1' => '於1',
+'于1天' => '於1天',
 '于2' => '於2',
+'于2天' => '於2天',
 '于3' => '於3',
+'于3天' => '於3天',
 '于4' => '於4',
+'于4天' => '於4天',
 '于5' => '於5',
+'于5天' => '於5天',
 '于6' => '於6',
+'于6天' => '於6天',
 '于7' => '於7',
+'于7天' => '於7天',
 '于8' => '於8',
+'于8天' => '於8天',
 '于9' => '於9',
+'于9天' => '於9天',
 '于一' => '於一',
+'于一天' => '於一天',
 '于一役' => '於一役',
 '于七' => '於七',
+'于七天' => '於七天',
 '于三' => '於三',
+'于三天' => '於三天',
 '于世' => '於世',
 '于之' => '於之',
 '于乎' => '於乎',
 '于九' => '於九',
+'于九天' => '於九天',
 '于事' => '於事',
 '于二' => '於二',
+'于二天' => '於二天',
 '于五' => '於五',
+'于五天' => '於五天',
 '于人' => '於人',
 '于今' => '於今',
 '于他' => '於他',
@@ -5904,14 +5916,18 @@ $zh2Hant = array(
 '于何' => '於何',
 '于你' => '於你',
 '于八' => '於八',
+'于八天' => '於八天',
 '于六' => '於六',
+'于六天' => '於六天',
 '于前' => '於前',
 '于劣' => '於劣',
 '于勤' => '於勤',
 '于十' => '於十',
+'于十天' => '於十天',
 '于半' => '於半',
 '于呼哀哉' => '於呼哀哉',
 '于四' => '於四',
+'于四天' => '於四天',
 '于国' => '於國',
 '于坏' => '於坏',
 '于垂' => '於垂',
@@ -6108,6 +6124,7 @@ $zh2Hant = array(
 '未干涉' => '未干涉',
 '未干預' => '未干預',
 '未干预' => '未干預',
+'本庄' => '本庄',
 '本征' => '本徵',
 '本出戏' => '本齣戲',
 '术赤' => '朮赤',
@@ -6164,6 +6181,7 @@ $zh2Hant = array(
 '柜上' => '柜上',
 '柜子' => '柜子',
 '柜柳' => '柜柳',
+'查封后' => '查封後',
 '柱梁' => '柱樑',
 '柳斌杰' => '柳斌杰',
 '柳诒征' => '柳詒徵',
@@ -6189,6 +6207,7 @@ $zh2Hant = array(
 '杆秤' => '桿秤',
 '杆菌' => '桿菌',
 '梁上君子' => '梁上君子',
+'梁启超' => '梁啓超',
 '条干' => '條幹',
 '梨干' => '梨乾',
 '梯冲' => '梯衝',
@@ -6343,7 +6362,6 @@ $zh2Hant = array(
 '汤卤' => '汤滷',
 '汲于' => '汲於',
 '决斗' => '決鬥',
-'沈海蓉' => '沈海蓉',
 '沈淀' => '沈澱',
 '沈郁' => '沈鬱',
 '沉淀' => '沉澱',
@@ -6439,6 +6457,7 @@ $zh2Hant = array(
 '涂长望' => '涂長望',
 '涂鴻欽' => '涂鴻欽',
 '涂鸿钦' => '涂鴻欽',
+'涌水塘' => '涌水塘',
 '涳蒙' => '涳濛',
 '涸干' => '涸乾',
 '凉席' => '涼蓆',
@@ -6476,6 +6495,7 @@ $zh2Hant = array(
 '涌入' => '湧入',
 '涌出' => '湧出',
 '涌向' => '湧向',
+'涌水' => '湧水',
 '涌泉' => '湧泉',
 '涌现' => '湧現',
 '涌起' => '湧起',
@@ -6604,8 +6624,8 @@ $zh2Hant = array(
 '沈抚' => '瀋撫',
 '沈水' => '瀋水',
 '沈河' => '瀋河',
-'沈海' => '瀋海',
 '沈海铁路' => '瀋海鐵路',
+'沈海高速' => '瀋海高速',
 '沈阳' => '瀋陽',
 '泸州大曲' => '瀘州大麯',
 '潇洒' => '瀟洒',
@@ -6769,7 +6789,6 @@ $zh2Hant = array(
 '由于' => '由於',
 '甲胄' => '甲冑',
 '甲后路' => '甲后路',
-'电影后' => '电影後',
 '男仆' => '男僕',
 '界里' => '界裡',
 '畏于' => '畏於',
@@ -6897,6 +6916,7 @@ $zh2Hant = array(
 '看钟' => '看鐘',
 '真凶' => '真兇',
 '真个' => '真箇',
+'真丑' => '真醜',
 '眼干' => '眼乾',
 '眼帘' => '眼帘',
 '眼眶里' => '眼眶裡',
@@ -7058,7 +7078,6 @@ $zh2Hant = array(
 '空蒙' => '空濛',
 '空荡' => '空蕩',
 '空荡荡' => '空蕩蕩',
-'空谷回音' => '空谷回音',
 '空钟' => '空鐘',
 '空余' => '空餘',
 '窒欲' => '窒慾',
@@ -7138,6 +7157,7 @@ $zh2Hant = array(
 '节欲' => '節慾',
 '节目里' => '節目裡',
 '节余' => '節餘',
+'范亭' => '範亭',
 '范例' => '範例',
 '范围' => '範圍',
 '范字' => '範字',
@@ -7335,7 +7355,6 @@ $zh2Hant = array(
 '羁系' => '羈繫',
 '美容美发' => '美容美髮',
 '美于' => '美於',
-'美制' => '美製',
 '美丑' => '美醜',
 '美发学' => '美髮學',
 '美发师' => '美髮師',
@@ -7370,6 +7389,8 @@ $zh2Hant = array(
 '聊斋志异' => '聊齋志異',
 '圣人历' => '聖人曆',
 '圣后' => '聖后',
+'圣马尔谷日' => '聖馬爾谷日',
+'聖馬爾谷日' => '聖馬爾谷日',
 '聘雇' => '聘僱',
 '聚药雄蕊' => '聚葯雄蕊',
 '闻风后' => '聞風後',
@@ -7816,13 +7837,7 @@ $zh2Hant = array(
 '复利' => '複利',
 '复印' => '複印',
 '复句' => '複句',
-'复合函数' => '複合函數',
-'复合制' => '複合制',
-'复合式' => '複合式',
-'复合弓' => '複合弓',
-'复合材' => '複合材',
-'复合物' => '複合物',
-'复合体' => '複合體',
+'复合' => '複合',
 '复壁' => '複壁',
 '复姓' => '複姓',
 '复字键' => '複字鍵',
@@ -7832,6 +7847,7 @@ $zh2Hant = array(
 '复平面' => '複平面',
 '复式' => '複式',
 '复数' => '複數',
+'复方' => '複方',
 '复本' => '複本',
 '复查' => '複查',
 '复次' => '複次',
@@ -7865,6 +7881,7 @@ $zh2Hant = array(
 '复韵' => '複韻',
 '褒赞' => '褒讚',
 '衬里' => '襯裡',
+'西井里' => '西井里',
 '西周钟' => '西周鐘',
 '西昆' => '西崑',
 '西岳' => '西嶽',
@@ -7892,6 +7909,7 @@ $zh2Hant = array(
 '角落里' => '角落裡',
 '觚棱' => '觚稜',
 '解雇' => '解僱',
+'解封后' => '解封後',
 '解铃仍须系铃人' => '解鈴仍須繫鈴人',
 '解铃还须系铃人' => '解鈴還須繫鈴人',
 '解发佯狂' => '解髮佯狂',
@@ -7934,7 +7952,6 @@ $zh2Hant = array(
 '托附' => '託附',
 '许愿起经' => '許愿起經',
 '許聖杰' => '許聖杰',
-'许虬' => '許虬',
 '注上' => '註上',
 '注册' => '註冊',
 '注失' => '註失',
@@ -8187,11 +8204,16 @@ $zh2Hant = array(
 '迥然回异' => '迥然迴異',
 '迫于' => '迫於',
 '回光返照' => '迴光返照',
-'回向' => '迴向',
 '回圈' => '迴圈',
 '回廊' => '迴廊',
 '回形夹' => '迴形夾',
-'回文' => '迴文',
+'回文序列' => '迴文序列',
+'回文数' => '迴文數',
+'回文构词' => '迴文構詞',
+'回文结构' => '迴文結構',
+'回文联' => '迴文聯',
+'回文诗' => '迴文詩',
+'回文锦' => '迴文錦',
 '回旋' => '迴旋',
 '回环' => '迴環',
 '回纹针' => '迴紋針',
@@ -8206,7 +8228,6 @@ $zh2Hant = array(
 '回递性' => '迴遞性',
 '回避' => '迴避',
 '回銮' => '迴鑾',
-'回音' => '迴音',
 '回响' => '迴響',
 '回风' => '迴風',
 '迷于' => '迷於',
@@ -8404,7 +8425,6 @@ $zh2Hant = array(
 '丑女' => '醜女',
 '丑女效颦' => '醜女效顰',
 '丑奴儿' => '醜奴兒',
-'丑婆子' => '醜婆子',
 '丑妇' => '醜婦',
 '丑媳' => '醜媳',
 '丑媳妇' => '醜媳婦',
@@ -8743,6 +8763,7 @@ $zh2Hant = array(
 '雪里蕻' => '雪裡蕻',
 '云吞' => '雲吞',
 '云笈七签' => '雲笈七籤',
+'云里雾里' => '雲裡霧裡',
 '云游' => '雲遊',
 '云须' => '雲鬚',
 '零个' => '零個',
@@ -8754,6 +8775,7 @@ $zh2Hant = array(
 '电子表格' => '電子表格',
 '电子钟' => '電子鐘',
 '电子钟表' => '電子鐘錶',
+'电影后' => '電影後',
 '电梯里' => '電梯裡',
 '电波钟' => '電波鐘',
 '电码表' => '電碼表',
@@ -8785,6 +8807,7 @@ $zh2Hant = array(
 '面包管' => '面包管',
 '面包扎' => '面包紮',
 '面包罗' => '面包羅',
+'面包着' => '面包著',
 '面包藏' => '面包藏',
 '面包装' => '面包裝',
 '面包裹' => '面包裹',
@@ -9014,6 +9037,7 @@ $zh2Hant = array(
 '香山庄' => '香山庄',
 '马干' => '馬乾',
 '馬占山' => '馬占山',
+'马德钟' => '馬德鐘',
 '马斯垂克期' => '馬斯垂克期',
 '馬格里布' => '馬格里布',
 '马格里布' => '馬格里布',
@@ -9151,6 +9175,7 @@ $zh2Hant = array(
 '斗剑' => '鬥劍',
 '斗力' => '鬥力',
 '斗劲' => '鬥勁',
+'斗勇' => '鬥勇',
 '斗胜' => '鬥勝',
 '斗口' => '鬥口',
 '斗合' => '鬥合',
@@ -9359,6 +9384,8 @@ $zh2Hant = array(
 '面饺' => '麵餃',
 '面饼' => '麵餅',
 '面馆' => '麵館',
+'面点、' => '麵點、',
+'面点师' => '麵點師',
 '麻将席' => '麻將蓆',
 '麻酱面' => '麻醬麵',
 '黄干黑瘦' => '黃乾黑瘦',
@@ -10631,7 +10658,6 @@ $zh2Hans = array(
 '灙' => '𣺼',
 '灝' => '灏',
 '灠' => '漤',
-'灡' => '㳕',
 '灣' => '湾',
 '灤' => '滦',
 '灧' => '滟',
@@ -11414,7 +11440,6 @@ $zh2Hans = array(
 '薟' => '莶',
 '薦' => '荐',
 '薩' => '萨',
-'薳' => '䓕',
 '薴' => '苧',
 '薺' => '荠',
 '藍' => '蓝',
@@ -12100,6 +12125,7 @@ $zh2Hans = array(
 '鈿' => '钿',
 '鉀' => '钾',
 '鉁' => '𨱅',
+'鉄' => '铁',
 '鉅' => '钜',
 '鉆' => '钻',
 '鉈' => '铊',
@@ -13724,6 +13750,8 @@ $zh2Hans = array(
 '穀旦' => '穀旦',
 '穀梁' => '穀梁',
 '穀水' => '穀水',
+'穀阳' => '穀阳',
+'穀陽' => '穀阳',
 '穿著者' => '穿着者',
 '竹昇' => '竹升',
 '答覆' => '答复',
@@ -13758,6 +13786,7 @@ $zh2Hans = array(
 '著者' => '著者',
 '著身' => '著身',
 '著述' => '著述',
+'蔡孝乾' => '蔡孝乾',
 '蔡絛' => '蔡絛',
 '行餘' => '行馀',
 '覆蓋' => '覆盖',
@@ -13972,7 +14001,7 @@ $zh2TW = array(
 '叱咤叱' => '叱咤叱',
 '叱咤咤' => '叱咤咤',
 '叱咤樂壇' => '叱咤樂壇',
-'斯坦福' => '史丹福',
+'斯坦福大学' => '史丹福大學',
 '斯皮尔伯格' => '史匹柏',
 '斯特劳斯' => '史特勞斯',
 '斯威士兰' => '史瓦濟蘭',
@@ -14013,6 +14042,7 @@ $zh2TW = array(
 '坦桑尼亞' => '坦尚尼亞',
 '端口' => '埠',
 '首席执行官' => '執行長',
+'报道' => '報導',
 '塞舌尔' => '塞席爾',
 '塞舌爾' => '塞席爾',
 '萨拉热窝' => '塞拉耶佛',
@@ -14087,6 +14117,7 @@ $zh2TW = array(
 '勃蘭登堡' => '布蘭登堡',
 '布里斯托尔' => '布里斯托',
 '布隆方丹' => '布隆泉',
+'希拉莉' => '希拉蕊',
 '希拉里' => '希拉蕊',
 '希特拉' => '希特勒',
 '巴尔米拉环礁' => '帕邁拉環礁',
@@ -14177,7 +14208,9 @@ $zh2TW = array(
 '迪拜' => '杜拜',
 '东盟' => '東協',
 '亚细安' => '東協',
-'东南亚国家联盟' => '東南亞國協',
+'東盟' => '東協',
+'东南亚国家联盟' => '東南亞國家協會',
+'東南亞國家聯盟' => '東南亞國家協會',
 '柏林墙' => '柏林圍牆',
 '柏林牆' => '柏林圍牆',
 '乍得' => '查德',
@@ -14251,7 +14284,9 @@ $zh2TW = array(
 '铁托' => '狄托',
 '塞拉利昂' => '獅子山',
 '独联体' => '獨立國協',
+'獨聯體' => '獨立國協',
 '独立国家联合体' => '獨立國家國協',
+'獨立國家聯合體' => '獨立國家國協',
 '波利尼西亚' => '玻里尼西亞',
 '波利尼西亞' => '玻里尼西亞',
 '本傑明' => '班傑明',
@@ -14480,6 +14515,7 @@ $zh2TW = array(
 '集装箱' => '貨櫃',
 '数据库' => '資料庫',
 '數據庫' => '資料庫',
+'信息时代' => '資訊時代',
 '信息论' => '資訊理論',
 '乔布斯' => '賈伯斯',
 '宾西法尼亚' => '賓夕法尼亞',
@@ -14570,6 +14606,7 @@ $zh2TW = array(
 '计算机程序' => '電腦程式',
 '荷尔斯泰因' => '霍爾斯坦',
 '荷爾斯泰因' => '霍爾斯坦',
+'面包着' => '面包著',
 '朝鲜战争' => '韓戰',
 '声卡' => '音效卡',
 '缺省' => '預設',
@@ -14675,7 +14712,6 @@ $zh2HK = array(
 '代表著者' => '代表著者',
 '代表著述' => '代表著述',
 '代表著錄' => '代表著錄',
-'伊斯坦堡' => '伊斯坦布爾',
 '伊斯蘭瑪巴德' => '伊斯蘭堡',
 '埃博拉' => '伊波拉',
 '伏著' => '伏着',
@@ -14890,7 +14926,8 @@ $zh2HK = array(
 '占总' => '佔總',
 '占總' => '佔總',
 '占缺' => '佔缺',
-'占美' => '佔美',
+'占美国' => '佔美國',
+'占美國' => '佔美國',
 '占耕' => '佔耕',
 '占至多' => '佔至多',
 '占至少' => '佔至少',
@@ -15044,6 +15081,8 @@ $zh2HK = array(
 '恺撒' => '凱撒',
 '函数里' => '函數裏',
 '分布' => '分佈',
+'分佈著' => '分佈着',
+'分布著' => '分佈着',
 '分占' => '分佔',
 '錢尼' => '切尼',
 '切尔诺贝利' => '切爾諾貝爾',
@@ -15164,7 +15203,7 @@ $zh2HK = array(
 '叫著錄' => '叫著錄',
 '古柯鹼' => '可卡因',
 '叱吒' => '叱咤',
-'斯坦福' => '史丹福',
+'斯坦福大学' => '史丹福大學',
 '史匹柏' => '史匹堡',
 '斯皮尔伯格' => '史匹堡',
 '史蒂芬·史匹柏' => '史提芬·史匹堡',
@@ -15281,6 +15320,7 @@ $zh2HK = array(
 '困著者' => '困著者',
 '困著述' => '困著述',
 '困著錄' => '困著錄',
+'固著' => '固着',
 '圈占' => '圈佔',
 '圈里' => '圈裏',
 '西洋棋' => '國際象棋',
@@ -15489,7 +15529,7 @@ $zh2HK = array(
 '布里斯托尔' => '布里斯托',
 '蒲隆地' => '布隆迪',
 '席哈克' => '希拉克',
-'希拉蕊' => '希拉',
+'希拉蕊' => '希拉',
 '希特勒' => '希特拉',
 '帛琉' => '帕勞',
 '巴尔米拉环礁' => '帕邁拉環礁',
@@ -15943,6 +15983,8 @@ $zh2HK = array(
 '敞著述' => '敞著述',
 '敞著錄' => '敞著錄',
 '散布' => '散佈',
+'散佈著' => '散佈着',
+'散布著' => '散佈着',
 '數著' => '數着',
 '数字技术' => '數碼技術',
 '數位技術' => '數碼技術',
@@ -16061,6 +16103,7 @@ $zh2HK = array(
 '村里' => '村裏',
 '杜塞道夫' => '杜塞爾多夫',
 '迪拜' => '杜拜',
+'東南亞國家協會' => '東南亞國家聯盟',
 '亚细安' => '東盟',
 '東協' => '東盟',
 '板著臉' => '板着臉',
@@ -16358,6 +16401,8 @@ $zh2HK = array(
 '独占' => '獨佔',
 '獨占' => '獨佔',
 '獨著' => '獨着',
+'獨立國家國協' => '獨立國家聯合體',
+'獨立國協' => '獨聯體',
 '獨著作' => '獨著作',
 '獨著名' => '獨著名',
 '獨著書' => '獨著書',
@@ -16373,6 +16418,7 @@ $zh2HK = array(
 '獲著者' => '獲著者',
 '獲著述' => '獲著述',
 '獲著錄' => '獲著錄',
+'班固著' => '班固著',
 '班里' => '班裏',
 '球台' => '球枱',
 '卢塞恩' => '琉森',
@@ -16656,6 +16702,7 @@ $zh2HK = array(
 '箱里' => '箱裏',
 '节目里' => '節目裏',
 '簽著' => '簽着',
+'篮板球' => '籃板球',
 '籃板球' => '籃板球',
 '迈克尔' => '米高',
 '麦克尔' => '米高',
@@ -16974,7 +17021,6 @@ $zh2HK = array(
 '里边' => '裏邊',
 '里间' => '裏間',
 '里面' => '裏面',
-'里面包' => '裏面包',
 '里头' => '裏頭',
 '裝著' => '裝着',
 '裝著作' => '裝著作',
@@ -17088,10 +17134,11 @@ $zh2HK = array(
 '貞著述' => '貞著述',
 '貞著錄' => '貞著錄',
 '負著' => '負着',
-'貢寮國' => '貢寮國',
+'貢寮' => '貢寮',
 '買凶' => '買兇',
 '費占' => '費佔',
 '费占' => '費佔',
+'信息时代' => '資訊時代',
 '赌台' => '賭枱',
 '尚比亞' => '贊比亞',
 '西臺人' => '赫梯人',
@@ -17479,6 +17526,7 @@ $zh2HK = array(
 '冰淇淋' => '雪糕',
 '冰激凌' => '雪糕',
 '雪里' => '雪裏',
+'云里雾里' => '雲裏霧裏',
 '莱特湾' => '雷伊泰灣',
 '萊特灣' => '雷伊泰灣',
 '晶体管' => '電晶體',
@@ -17500,6 +17548,7 @@ $zh2HK = array(
 '靠著述' => '靠著述',
 '靠著录' => '靠著錄',
 '靠著錄' => '靠著錄',
+'面包著' => '面包着',
 '鞋里' => '鞋裏',
 '鞭辟入里' => '鞭辟入裏',
 '朝鲜战争' => '韓戰',
@@ -17713,6 +17762,7 @@ $zh2CN = array(
 '邱吉爾' => '丘吉尔',
 'C型肝炎' => '丙型肝炎',
 'C肝' => '丙肝',
+'東南亞國家協會' => '东南亚国家联盟',
 '亚细安' => '东盟',
 '東協' => '东盟',
 '臨著' => '临着',
@@ -17780,7 +17830,6 @@ $zh2CN = array(
 '網際網路' => '互联网',
 '亞歷山卓' => '亚历山大',
 '雅穆索戈' => '亚穆苏克罗',
-'互動式' => '交互式',
 '交帳' => '交账',
 '亮著' => '亮着',
 '亮著書' => '亮著书',
@@ -17875,6 +17924,7 @@ $zh2CN = array(
 '保障著稱' => '保障著称',
 '保障著者' => '保障著者',
 '保障著述' => '保障著述',
+'資訊時代' => '信息时代',
 '資訊理論' => '信息论',
 '信著' => '信着',
 '信著書' => '信著书',
@@ -18010,6 +18060,8 @@ $zh2CN = array(
 '嘉芙蓮' => '凯瑟琳',
 '份內' => '分内',
 '份外' => '分外',
+'分佈著' => '分布着',
+'分布著' => '分布着',
 '解像度' => '分辨率',
 '解析度' => '分辨率',
 '份量' => '分量',
@@ -18291,6 +18343,7 @@ $zh2CN = array(
 '圍著者' => '围著者',
 '圍著述' => '围著述',
 '韌體' => '固件',
+'固著' => '固着',
 '土魯斯' => '图卢兹',
 '吐瓦魯' => '图瓦卢',
 '原子筆' => '圆珠笔',
@@ -18458,6 +18511,8 @@ $zh2CN = array(
 '布隆泉' => '布隆方丹',
 '蒲隆地' => '布隆迪',
 '席哈克' => '希拉克',
+'希拉莉' => '希拉里',
+'希拉蕊' => '希拉里',
 '希特拉' => '希特勒',
 '帛琉' => '帕劳',
 '派屈克' => '帕特里克',
@@ -18915,6 +18970,8 @@ $zh2CN = array(
 '敞著稱' => '敞著称',
 '敞著者' => '敞著者',
 '敞著述' => '敞著述',
+'散佈著' => '散布着',
+'散布著' => '散布着',
 '數位訊號' => '数字信号',
 '數碼訊號' => '数字信号',
 '數位技術' => '数字技术',
@@ -18947,7 +19004,7 @@ $zh2CN = array(
 '斥著稱' => '斥著称',
 '斥著者' => '斥著者',
 '斥著述' => '斥著述',
-'史丹福' => '斯坦福',
+'史丹福大學' => '斯坦福大学',
 '史達林' => '斯大林',
 '史瓦濟蘭' => '斯威士兰',
 '斯洛維尼亞' => '斯洛文尼亚',
@@ -19283,6 +19340,8 @@ $zh2CN = array(
 '千里達托貝哥' => '特立尼达和托巴哥',
 '狗隻' => '犬只',
 '獨著' => '独着',
+'獨立國家國協' => '独立国家联合体',
+'獨立國協' => '独联体',
 '獨著書' => '独著书',
 '獨著作' => '独著作',
 '獨著名' => '独著名',
@@ -19299,6 +19358,7 @@ $zh2CN = array(
 '猜著者' => '猜著者',
 '猜著述' => '猜著述',
 '玩著' => '玩着',
+'班固著' => '班固著',
 '溫納圖' => '瓦努阿图',
 '萬那杜' => '瓦努阿图',
 '華勒沙' => '瓦文萨',
@@ -19850,6 +19910,7 @@ $zh2CN = array(
 '見著稱' => '见著称',
 '見著者' => '见著者',
 '見著述' => '见著述',
+'規畫' => '规划',
 '視著' => '视着',
 '視著名' => '视著名',
 '占士邦' => '詹姆斯·邦德',
@@ -19911,7 +19972,7 @@ $zh2CN = array(
 '貞著者' => '贞著者',
 '貞著述' => '贞著述',
 '負著' => '负着',
-'貢寮國' => '贡寮国',
+'貢寮' => '贡寮',
 '帳上' => '账上',
 '帳冊' => '账册',
 '帳務' => '账务',
@@ -20377,6 +20438,8 @@ $zh2CN = array(
 '髭著稱' => '髭著称',
 '髭著者' => '髭著者',
 '髭著述' => '髭著述',
+'魚雷射' => '鱼雷射',
+'鱼雷射' => '鱼雷射',
 '咪高峰' => '麦克风',
 '黏著' => '黏着',
 '黏著書' => '黏著书',
index aca4363..bb6a4d5 100644 (file)
@@ -376,6 +376,28 @@ abstract class Action {
                return $this->msg( strtolower( $this->getName() ) )->escaped();
        }
 
+       /**
+        * Adds help link with an icon via page indicators.
+        * Link target can be overridden by a local message containing a wikilink:
+        * the message key is: lowercase action name + '-helppage'.
+        * @param string $to Target MediaWiki.org page title or encoded URL.
+        * @param bool $overrideBaseUrl Whether $url is a full URL, to avoid MW.o.
+        * @since 1.25
+        */
+       public function addHelpLink( $to, $overrideBaseUrl = false ) {
+               global $wgContLang;
+               $msg = wfMessage( $wgContLang->lc(
+                       Action::getActionName( $this->getContext() )
+                       ) . '-helppage' );
+
+               if ( !$msg->isDisabled() ) {
+                       $helpUrl = Skin::makeUrl( $msg->plain() );
+                       $this->getOutput()->addHelpLink( $helpUrl, true );
+               } else {
+                       $this->getOutput()->addHelpLink( $to, $overrideBaseUrl );
+               }
+       }
+
        /**
         * The main action entry point.  Do all output for display and send it to the context
         * output.  Do not use globals $wgOut, $wgRequest, etc, in implementations; use
index 82424eb..be21a6f 100644 (file)
@@ -48,7 +48,7 @@ class DeleteAction extends FormlessAction {
                                'mediawiki.ui.checkbox',
                        ) );
                }
-               $out->addHelpLink( 'Help:Sysop deleting and undeleting' );
+               $this->addHelpLink( 'Help:Sysop deleting and undeleting' );
                $this->page->delete();
        }
 }
index 727bed2..b04ffbe 100644 (file)
@@ -109,12 +109,12 @@ class RawAction extends FormlessAction {
 
                $text = $this->getRawText();
 
+               // Don't return a 404 response for CSS or JavaScript;
+               // 404s aren't generally cached and it would create
+               // extra hits when user CSS/JS are on and the user doesn't
+               // have the pages.
                if ( $text === false && $contentType == 'text/x-wiki' ) {
-                       # Don't return a 404 response for CSS or JavaScript;
-                       # 404s aren't generally cached and it would create
-                       # extra hits when user CSS/JS are on and the user doesn't
-                       # have the pages.
-                       $response->header( 'HTTP/1.x 404 Not Found' );
+                       $response->statusHeader( 404 );
                }
 
                if ( !Hooks::run( 'RawPageViewBeforeOutput', array( &$this, &$text ) ) ) {
index 2a449df..55f9677 100644 (file)
@@ -85,6 +85,15 @@ abstract class ApiBase extends ContextSource {
        // $msg for ApiBase::makeMessage(). Any value not having a mapping will use
        // apihelp-{$path}-paramvalue-{$param}-{$value} is used.
        const PARAM_HELP_MSG_PER_VALUE = 14;
+       /// @since 1.26
+       // When PARAM_TYPE is 'submodule', map parameter values to submodule paths.
+       // Default is to use all modules in $this->getModuleManager() in the group
+       // matching the parameter name.
+       const PARAM_SUBMODULE_MAP = 15;
+       /// @since 1.26
+       // When PARAM_TYPE is 'submodule', used to indicate the 'g' prefix added by
+       // ApiQueryGeneratorBase (and similar if anything else ever does that).
+       const PARAM_SUBMODULE_PARAM_PREFIX = 16;
 
        const LIMIT_BIG1 = 500; // Fast query, std user limit
        const LIMIT_BIG2 = 5000; // Fast query, bot/sysop limit
@@ -838,7 +847,11 @@ abstract class ApiBase extends ContextSource {
                                $type = MWNamespace::getValidNamespaces();
                        }
                        if ( isset( $value ) && $type == 'submodule' ) {
-                               $type = $this->getModuleManager()->getNames( $paramName );
+                               if ( isset( $paramSettings[self::PARAM_SUBMODULE_MAP] ) ) {
+                                       $type = array_keys( $paramSettings[self::PARAM_SUBMODULE_MAP] );
+                               } else {
+                                       $type = $this->getModuleManager()->getNames( $paramName );
+                               }
                        }
                }
 
@@ -859,6 +872,8 @@ abstract class ApiBase extends ContextSource {
                                        case 'NULL': // nothing to do
                                                break;
                                        case 'string':
+                                       case 'text':
+                                       case 'password':
                                                if ( $required && $value === '' ) {
                                                        $this->dieUsageMsg( array( 'missingparam', $paramName ) );
                                                }
@@ -1078,6 +1093,24 @@ abstract class ApiBase extends ContextSource {
         * @return string Validated and normalized parameter
         */
        protected function validateTimestamp( $value, $encParamName ) {
+               // Confusing synonyms for the current time accepted by wfTimestamp()
+               // (wfTimestamp() also accepts various non-strings and the string of 14
+               // ASCII NUL bytes, but those can't get here)
+               if ( !$value ) {
+                       $this->logFeatureUsage( 'unclear-"now"-timestamp' );
+                       $this->setWarning(
+                               "Passing '$value' for timestamp parameter $encParamName has been deprecated." .
+                                       ' If for some reason you need to explicitly specify the current time without' .
+                                       ' calculating it client-side, use "now".'
+                       );
+                       return wfTimestamp( TS_MW );
+               }
+
+               // Explicit synonym for the current time
+               if ( $value === 'now' ) {
+                       return wfTimestamp( TS_MW );
+               }
+
                $unixTimestamp = wfTimestamp( TS_UNIX, $value );
                if ( $unixTimestamp === false ) {
                        $this->dieUsage(
@@ -2302,8 +2335,10 @@ abstract class ApiBase extends ContextSource {
         *
         * @param string[] &$help Array of help data
         * @param array $options Options passed to ApiHelp::getHelp
+        * @param array &$tocData If a TOC is being generated, this array has keys
+        *   as anchors in the page and values as for Linker::generateTOC().
         */
-       public function modifyHelp( array &$help, array $options ) {
+       public function modifyHelp( array &$help, array $options, array &$tocData ) {
        }
 
        /**@}*/
@@ -2670,7 +2705,11 @@ abstract class ApiBase extends ContextSource {
                                        }
 
                                        if ( $type === 'submodule' ) {
-                                               $type = $this->getModuleManager()->getNames( $paramName );
+                                               if ( isset( $paramSettings[self::PARAM_SUBMODULE_MAP] ) ) {
+                                                       $type = array_keys( $paramSettings[self::PARAM_SUBMODULE_MAP] );
+                                               } else {
+                                                       $type = $this->getModuleManager()->getNames( $paramName );
+                                               }
                                                sort( $type );
                                        }
                                        if ( is_array( $type ) ) {
index 455540b..57f96c6 100644 (file)
@@ -186,7 +186,9 @@ class ApiCreateAccount extends ApiBase {
                                ApiBase::PARAM_TYPE => 'user',
                                ApiBase::PARAM_REQUIRED => true
                        ),
-                       'password' => null,
+                       'password' => array(
+                               ApiBase::PARAM_TYPE => 'password',
+                       ),
                        'domain' => null,
                        'token' => null,
                        'email' => array(
index 6ab8483..aad71b9 100644 (file)
@@ -281,16 +281,16 @@ class ApiEditPage extends ApiBase {
                        $requestArray['wpUndidRevision'] = $params['undo'];
                }
 
-               // Watch out for basetimestamp == ''
-               // wfTimestamp() treats it as NOW, almost certainly causing an edit conflict
-               if ( !is_null( $params['basetimestamp'] ) && $params['basetimestamp'] != '' ) {
-                       $requestArray['wpEdittime'] = wfTimestamp( TS_MW, $params['basetimestamp'] );
+               // Watch out for basetimestamp == '' or '0'
+               // It gets treated as NOW, almost certainly causing an edit conflict
+               if ( $params['basetimestamp'] !== null && (bool)$this->getMain()->getVal( 'basetimestamp' ) ) {
+                       $requestArray['wpEdittime'] = $params['basetimestamp'];
                } else {
                        $requestArray['wpEdittime'] = $pageObj->getTimestamp();
                }
 
-               if ( !is_null( $params['starttimestamp'] ) && $params['starttimestamp'] != '' ) {
-                       $requestArray['wpStarttime'] = wfTimestamp( TS_MW, $params['starttimestamp'] );
+               if ( $params['starttimestamp'] !== null ) {
+                       $requestArray['wpStarttime'] = $params['starttimestamp'];
                } else {
                        $requestArray['wpStarttime'] = wfTimestampNow(); // Fake wpStartime
                }
@@ -543,7 +543,9 @@ class ApiEditPage extends ApiBase {
                        'sectiontitle' => array(
                                ApiBase::PARAM_TYPE => 'string',
                        ),
-                       'text' => null,
+                       'text' => array(
+                               ApiBase::PARAM_TYPE => 'text',
+                       ),
                        'summary' => null,
                        'tags' => array(
                                ApiBase::PARAM_TYPE => ChangeTags::listExplicitlyDefinedTags(),
@@ -552,8 +554,12 @@ class ApiEditPage extends ApiBase {
                        'minor' => false,
                        'notminor' => false,
                        'bot' => false,
-                       'basetimestamp' => null,
-                       'starttimestamp' => null,
+                       'basetimestamp' => array(
+                               ApiBase::PARAM_TYPE => 'timestamp',
+                       ),
+                       'starttimestamp' => array(
+                               ApiBase::PARAM_TYPE => 'timestamp',
+                       ),
                        'recreate' => false,
                        'createonly' => false,
                        'nocreate' => false,
@@ -575,8 +581,12 @@ class ApiEditPage extends ApiBase {
                                ),
                        ),
                        'md5' => null,
-                       'prependtext' => null,
-                       'appendtext' => null,
+                       'prependtext' => array(
+                               ApiBase::PARAM_TYPE => 'text',
+                       ),
+                       'appendtext' => array(
+                               ApiBase::PARAM_TYPE => 'text',
+                       ),
                        'undo' => array(
                                ApiBase::PARAM_TYPE => 'integer'
                        ),
index 15eb475..efb9769 100644 (file)
@@ -95,7 +95,7 @@ class ApiEmailUser extends ApiBase {
                        ),
                        'subject' => null,
                        'text' => array(
-                               ApiBase::PARAM_TYPE => 'string',
+                               ApiBase::PARAM_TYPE => 'text',
                                ApiBase::PARAM_REQUIRED => true
                        ),
                        'ccme' => false,
index 6d064eb..966af53 100644 (file)
@@ -111,8 +111,9 @@ class ApiExpandTemplates extends ApiBase {
                                // the old way
                                ApiResult::setContentValue( $retval, 'wikitext', $wikitext );
                        } else {
+                               $p_output = $wgParser->getOutput();
                                if ( isset( $prop['categories'] ) ) {
-                                       $categories = $wgParser->getOutput()->getCategories();
+                                       $categories = $p_output->getCategories();
                                        if ( $categories ) {
                                                $categories_result = array();
                                                foreach ( $categories as $category => $sortkey ) {
@@ -126,7 +127,7 @@ class ApiExpandTemplates extends ApiBase {
                                        }
                                }
                                if ( isset( $prop['properties'] ) ) {
-                                       $properties = $wgParser->getOutput()->getProperties();
+                                       $properties = $p_output->getProperties();
                                        if ( $properties ) {
                                                ApiResult::setArrayType( $properties, 'BCkvp', 'name' );
                                                ApiResult::setIndexedTagName( $properties, 'property' );
@@ -142,6 +143,27 @@ class ApiExpandTemplates extends ApiBase {
                                if ( isset( $prop['wikitext'] ) ) {
                                        $retval['wikitext'] = $wikitext;
                                }
+                               if ( isset( $prop['modules'] ) ) {
+                                       $retval['modules'] = array_values( array_unique( $p_output->getModules() ) );
+                                       $retval['modulescripts'] = array_values( array_unique( $p_output->getModuleScripts() ) );
+                                       $retval['modulestyles'] = array_values( array_unique( $p_output->getModuleStyles() ) );
+                               }
+                               if ( isset( $prop['jsconfigvars'] ) ) {
+                                       $retval['jsconfigvars'] =
+                                               ApiResult::addMetadataToResultVars( $p_output->getJsConfigVars() );
+                               }
+                               if ( isset( $prop['encodedjsconfigvars'] ) ) {
+                                       $retval['encodedjsconfigvars'] = FormatJson::encode(
+                                               $p_output->getJsConfigVars(), false, FormatJson::ALL_OK
+                                       );
+                                       $retval[ApiResult::META_SUBELEMENTS][] = 'encodedjsconfigvars';
+                               }
+                               if ( isset( $prop['modules'] ) &&
+                                       !isset( $prop['jsconfigvars'] ) && !isset( $prop['encodedjsconfigvars'] ) ) {
+                                       $this->setWarning( "Property 'modules' was set but not 'jsconfigvars' " .
+                                               "or 'encodedjsconfigvars'. Configuration variables are necessary " .
+                                               "for proper module usage.");
+                               }
                        }
                }
                ApiResult::setSubelementsList( $retval, array( 'wikitext', 'parsetree' ) );
@@ -154,7 +176,7 @@ class ApiExpandTemplates extends ApiBase {
                                ApiBase::PARAM_DFLT => 'API',
                        ),
                        'text' => array(
-                               ApiBase::PARAM_TYPE => 'string',
+                               ApiBase::PARAM_TYPE => 'text',
                                ApiBase::PARAM_REQUIRED => true,
                        ),
                        'revid' => array(
@@ -167,9 +189,13 @@ class ApiExpandTemplates extends ApiBase {
                                        'properties',
                                        'volatile',
                                        'ttl',
+                                       'modules',
+                                       'jsconfigvars',
+                                       'encodedjsconfigvars',
                                        'parsetree',
                                ),
                                ApiBase::PARAM_ISMULTI => true,
+                               ApiBase::PARAM_HELP_MSG_PER_VALUE => array(),
                        ),
                        'includecomments' => false,
                        'generatexml' => array(
index d078dc4..47c8128 100644 (file)
@@ -173,6 +173,7 @@ abstract class ApiFormatBase extends ApiBase {
                $mime = $this->getMimeType();
                if ( $this->getIsHtml() && $mime !== null ) {
                        $format = $this->getFormat();
+                       $lcformat = strtolower( $format );
                        $result = $this->getBuffer();
 
                        $context = new DerivativeContext( $this->getMain() );
@@ -184,9 +185,14 @@ abstract class ApiFormatBase extends ApiBase {
                        $out->addModules( 'mediawiki.apipretty' );
                        $out->setPageTitle( $context->msg( 'api-format-title' ) );
 
-                       $header = $context->msg( 'api-format-prettyprint-header' )
-                               ->params( $format, strtolower( $format ) )
-                               ->parseAsBlock();
+                       // When the format without suffix 'fm' is defined, there is a non-html version
+                       if ( $this->getMain()->getModuleManager()->isDefined( $lcformat, 'format' ) ) {
+                               $msg = $context->msg( 'api-format-prettyprint-header' )->params( $format, $lcformat );
+                       } else {
+                               $msg = $context->msg( 'api-format-prettyprint-header-only-html' )->params( $format );
+                       }
+
+                       $header = $msg->parseAsBlock();
                        $out->addHTML(
                                Html::rawElement( 'div', array( 'class' => 'api-pretty-header' ),
                                        ApiHelp::fixHelpLinks( $header )
index 1e30616..f6d124f 100644 (file)
@@ -45,6 +45,7 @@ class ApiHelp extends ApiBase {
                $context->setLanguage( $this->getMain()->getLanguage() );
                $context->setTitle( SpecialPage::getTitleFor( 'ApiHelp' ) );
                $out = new OutputPage( $context );
+               $out->setCopyrightUrl( 'https://www.mediawiki.org/wiki/Special:MyLanguage/Copyright' );
                $context->setOutput( $out );
 
                self::getHelp( $context, $modules, $params );
@@ -82,6 +83,7 @@ class ApiHelp extends ApiBase {
         *  - submodules: (bool) Include help for submodules of the current module
         *  - recursivesubmodules: (bool) Include help for submodules recursively
         *  - helptitle: (string) Title to link for additional modules' help. Should contain $1.
+        *  - toc: (bool) Include a table of contents
         *
         * @param IContextSource $context
         * @param ApiBase[]|ApiBase $modules
@@ -97,6 +99,9 @@ class ApiHelp extends ApiBase {
 
                $out = $context->getOutput();
                $out->addModules( 'mediawiki.apihelp' );
+               if ( !empty( $options['toc'] ) ) {
+                       $out->addModules( 'mediawiki.toc' );
+               }
                $out->setPageTitle( $context->msg( 'api-help-title' ) );
 
                $cacheKey = null;
@@ -107,6 +112,7 @@ class ApiHelp extends ApiBase {
                        if ( $cacheHelpTimeout > 0 ) {
                                // Get help text from cache if present
                                $cacheKey = wfMemcKey( 'apihelp', $modules[0]->getModulePath(),
+                                       (int)!empty( $options['toc'] ),
                                        str_replace( ' ', '_', SpecialVersion::getVersion( 'nodb' ) ) );
                                $cached = $wgMemc->get( $cacheKey );
                                if ( $cached ) {
@@ -133,7 +139,11 @@ class ApiHelp extends ApiBase {
                }
 
                $haveModules = array();
-               $out->addHTML( self::getHelpInternal( $context, $modules, $options, $haveModules ) );
+               $html = self::getHelpInternal( $context, $modules, $options, $haveModules );
+               if ( !empty( $options['toc'] ) && $haveModules ) {
+                       $out->addHTML( Linker::generateTOC( $haveModules, $context->getLanguage() ) );
+               }
+               $out->addHTML( $html );
 
                $helptitle = isset( $options['helptitle'] ) ? $options['helptitle'] : null;
                $html = self::fixHelpLinks( $out->getHTML(), $helptitle, $haveModules );
@@ -150,7 +160,7 @@ class ApiHelp extends ApiBase {
         *
         * @param string $html
         * @param string|null $helptitle Title to link to rather than api.php, must contain '$1'
-        * @param array $localModules Modules to link within the current page
+        * @param array $localModules Keys are modules to link within the current page, values are ignored
         * @return string
         */
        public static function fixHelpLinks( $html, $helptitle = null, $localModules = array() ) {
@@ -212,11 +222,16 @@ class ApiHelp extends ApiBase {
        ) {
                $out = '';
 
-               $level = min( 6, empty( $options['headerlevel'] ) ? 2 : $options['headerlevel'] );
-               $options['headerlevel'] = $level;
+               $level = empty( $options['headerlevel'] ) ? 2 : $options['headerlevel'];
+               if ( empty( $options['tocnumber'] ) ) {
+                       $tocnumber = array( 2 => 0 );
+               } else {
+                       $tocnumber = &$options['tocnumber'];
+               }
 
                foreach ( $modules as $module ) {
-                       $haveModules[$module->getModulePath()] = true;
+                       $tocnumber[$level]++;
+                       $path = $module->getModulePath();
                        $module->setContext( $context );
                        $help = array(
                                'header' => '',
@@ -228,8 +243,13 @@ class ApiHelp extends ApiBase {
                                'submodules' => '',
                        );
 
-                       if ( empty( $options['noheader'] ) ) {
-                               $path = $module->getModulePath();
+                       if ( empty( $options['noheader'] ) || !empty( $options['toc'] ) ) {
+                               $anchor = $path;
+                               $i = 1;
+                               while ( isset( $haveModules[$anchor] ) ) {
+                                       $anchor = $path . '|' . ++$i;
+                               }
+
                                if ( $module->isMain() ) {
                                        $header = $context->msg( 'api-help-main-header' )->parse();
                                } else {
@@ -241,10 +261,22 @@ class ApiHelp extends ApiBase {
                                                        $context->msg( 'parentheses', $module->getModulePrefix() )->parse();
                                        }
                                }
-                               $help['header'] .= Html::element( "h$level",
-                                       array( 'id' => $path, 'class' => 'apihelp-header' ),
-                                       $header
+                               $haveModules[$anchor] = array(
+                                       'toclevel' => count( $tocnumber ),
+                                       'level' => $level,
+                                       'anchor' => $anchor,
+                                       'line' => $header,
+                                       'number' => join( '.', $tocnumber ),
+                                       'index' => false,
                                );
+                               if ( empty( $options['noheader'] ) ) {
+                                       $help['header'] .= Html::element( 'h' . min( 6, $level ),
+                                               array( 'id' => $anchor, 'class' => 'apihelp-header' ),
+                                               $header
+                                       );
+                               }
+                       } else {
+                               $haveModules[$path] = true;
                        }
 
                        $links = array();
@@ -459,14 +491,23 @@ class ApiHelp extends ApiBase {
                                                        switch ( $type ) {
                                                                case 'submodule':
                                                                        $groups[] = $name;
-                                                                       $submodules = $module->getModuleManager()->getNames( $name );
+                                                                       if ( isset( $settings[ApiBase::PARAM_SUBMODULE_MAP] ) ) {
+                                                                               $map = $settings[ApiBase::PARAM_SUBMODULE_MAP];
+                                                                               ksort( $map );
+                                                                               $submodules = array();
+                                                                               foreach ( $map as $v => $m ) {
+                                                                                       $submodules[] = "[[Special:ApiHelp/{$m}|{$v}]]";
+                                                                               }
+                                                                       } else {
+                                                                               $submodules = $module->getModuleManager()->getNames( $name );
+                                                                               sort( $submodules );
+                                                                               $prefix = $module->isMain()
+                                                                                       ? '' : ( $module->getModulePath() . '+' );
+                                                                               $submodules = array_map( function ( $name ) use ( $prefix ) {
+                                                                                       return "[[Special:ApiHelp/{$prefix}{$name}|{$name}]]";
+                                                                               }, $submodules );
+                                                                       }
                                                                        $count = count( $submodules );
-                                                                       sort( $submodules );
-                                                                       $prefix = $module->isMain()
-                                                                               ? '' : ( $module->getModulePath() . '+' );
-                                                                       $submodules = array_map( function ( $name ) use ( $prefix ) {
-                                                                               return "[[Special:ApiHelp/{$prefix}{$name}|{$name}]]";
-                                                                       }, $submodules );
                                                                        $info[] = $context->msg( 'api-help-param-list' )
                                                                                ->params( $multi ? 2 : 1 )
                                                                                ->params( $context->getLanguage()->commaList( $submodules ) )
@@ -533,6 +574,7 @@ class ApiHelp extends ApiBase {
                                                                        break;
 
                                                                case 'string':
+                                                               case 'text':
                                                                        // Displaying a type message here would be useless.
                                                                        $type = null;
                                                                        break;
@@ -542,6 +584,7 @@ class ApiHelp extends ApiBase {
                                                // Add type. Messages for grep: api-help-param-type-limit
                                                // api-help-param-type-integer api-help-param-type-boolean
                                                // api-help-param-type-timestamp api-help-param-type-user
+                                               // api-help-param-type-password
                                                if ( is_string( $type ) ) {
                                                        $msg = $context->msg( "api-help-param-type-$type" );
                                                        if ( !$msg->isDisabled() ) {
@@ -641,6 +684,15 @@ class ApiHelp extends ApiBase {
                                $help['examples'] .= Html::closeElement( 'div' );
                        }
 
+                       $subtocnumber = $tocnumber;
+                       $subtocnumber[$level + 1] = 0;
+                       $suboptions = array(
+                               'submodules' => $options['recursivesubmodules'],
+                               'headerlevel' => $level + 1,
+                               'tocnumber' => &$subtocnumber,
+                               'noheader' => false,
+                       ) + $options;
+
                        if ( $options['submodules'] && $module->getModuleManager() ) {
                                $manager = $module->getModuleManager();
                                $submodules = array();
@@ -651,16 +703,13 @@ class ApiHelp extends ApiBase {
                                                $submodules[] = $manager->getModule( $name );
                                        }
                                }
-                               $help['submodules'] .= self::getHelpInternal( $context, $submodules, array(
-                                       'submodules' => $options['recursivesubmodules'],
-                                       'headerlevel' => $level + 1,
-                                       'noheader' => false,
-                               ) + $options, $haveModules );
+                               $help['submodules'] .= self::getHelpInternal( $context, $submodules, $suboptions, $haveModules );
+                               $numSubmodules = count( $submodules );
                        }
 
-                       $module->modifyHelp( $help, $options );
+                       $module->modifyHelp( $help, $suboptions, $haveModules );
 
-                       Hooks::run( 'APIHelpModifyOutput', array( $module, &$help, $options ) );
+                       Hooks::run( 'APIHelpModifyOutput', array( $module, &$help, $suboptions, &$haveModules ) );
 
                        $out .= join( "\n", $help );
                }
index 865d39f..c8390b6 100644 (file)
@@ -60,7 +60,7 @@ class ApiImageRotate extends ApiBase {
 
                $result = array();
 
-               self::addValues( $result, $pageSet->getInvalidTitles(), 'invalid', 'title' );
+               self::addValues( $result, $pageSet->getInvalidTitlesAndReasons(), 'invalid' );
                self::addValues( $result, $pageSet->getSpecialTitles(), 'special', 'title' );
                self::addValues( $result, $pageSet->getMissingPageIDs(), 'missing', 'pageid' );
                self::addValues( $result, $pageSet->getMissingRevisionIDs(), 'missing', 'revid' );
index 40cf6e2..4154083 100644 (file)
@@ -35,6 +35,8 @@ class ApiImport extends ApiBase {
                $user = $this->getUser();
                $params = $this->extractRequestParams();
 
+               $this->requireMaxOneParameter( $params, 'namespace', 'rootpage' );
+
                $isUpload = false;
                if ( isset( $params['interwikisource'] ) ) {
                        if ( !$user->isAllowed( 'import' ) ) {
index 5480d94..d8b390c 100644 (file)
@@ -179,7 +179,9 @@ class ApiLogin extends ApiBase {
        public function getAllowedParams() {
                return array(
                        'name' => null,
-                       'password' => null,
+                       'password' => array(
+                               ApiBase::PARAM_TYPE => 'password',
+                       ),
                        'domain' => null,
                        'token' => null,
                );
index 2ec3aa8..a8db20c 100644 (file)
@@ -577,8 +577,7 @@ class ApiMain extends ApiBase {
                if ( !in_array( $originParam, $origins ) ) {
                        // origin parameter set but incorrect
                        // Send a 403 response
-                       $message = HttpStatus::getMessage( 403 );
-                       $response->header( "HTTP/1.1 403 $message", true, 403 );
+                       $response->statusHeader( 403 );
                        $response->header( 'Cache-Control: no-cache' );
                        echo "'origin' parameter does not match Origin header\n";
 
@@ -1307,7 +1306,7 @@ class ApiMain extends ApiBase {
                );
        }
 
-       public function modifyHelp( array &$help, array $options ) {
+       public function modifyHelp( array &$help, array $options, array &$tocData ) {
                // Wish PHP had an "array_insert_before". Instead, we have to manually
                // reindex the array to get 'permissions' in the right place.
                $oldHelp = $help;
@@ -1353,19 +1352,46 @@ class ApiMain extends ApiBase {
 
                // Fill 'datatypes' and 'credits', if applicable
                if ( empty( $options['nolead'] ) ) {
-                       $help['datatypes'] .= Html::rawelement( 'h' . min( 6, $options['headerlevel'] + 1 ),
+                       $level = $options['headerlevel'];
+                       $tocnumber = &$options['tocnumber'];
+
+                       $header = $this->msg( 'api-help-datatypes-header' )->parse();
+                       $help['datatypes'] .= Html::rawelement( 'h' . min( 6, $level ),
                                array( 'id' => 'main/datatypes', 'class' => 'apihelp-header' ),
                                Html::element( 'span', array( 'id' => Sanitizer::escapeId( 'main/datatypes' ) ) ) .
-                               $this->msg( 'api-help-datatypes-header' )->parse()
+                               $header
                        );
                        $help['datatypes'] .= $this->msg( 'api-help-datatypes' )->parseAsBlock();
+                       if ( !isset( $tocData['main/datatypes'] ) ) {
+                               $tocnumber[$level]++;
+                               $tocData['main/datatypes'] = array(
+                                       'toclevel' => count( $tocnumber ),
+                                       'level' => $level,
+                                       'anchor' => 'main/datatypes',
+                                       'line' => $header,
+                                       'number' => join( '.', $tocnumber ),
+                                       'index' => false,
+                               );
+                       }
 
-                       $help['credits'] .= Html::rawelement( 'h' . min( 6, $options['headerlevel'] + 1 ),
+                       $header = $this->msg( 'api-credits-header' )->parse();
+                       $help['credits'] .= Html::rawelement( 'h' . min( 6, $level ),
                                array( 'id' => 'main/credits', 'class' => 'apihelp-header' ),
                                Html::element( 'span', array( 'id' => Sanitizer::escapeId( 'main/credits' ) ) ) .
-                               $this->msg( 'api-credits-header' )->parse()
+                               $header
                        );
                        $help['credits'] .= $this->msg( 'api-credits' )->useDatabase( false )->parseAsBlock();
+                       if ( !isset( $tocData['main/credits'] ) ) {
+                               $tocnumber[$level]++;
+                               $tocData['main/credits'] = array(
+                                       'toclevel' => count( $tocnumber ),
+                                       'level' => $level,
+                                       'anchor' => 'main/credits',
+                                       'line' => $header,
+                                       'number' => join( '.', $tocnumber ),
+                                       'index' => false,
+                               );
+                       }
                }
        }
 
index 36026c2..0adb464 100644 (file)
@@ -61,7 +61,9 @@ class ApiOpenSearch extends ApiBase {
        public function getCustomPrinter() {
                switch ( $this->getFormat() ) {
                        case 'json':
-                               return $this->getMain()->createPrinterByName( 'json' . $this->fm );
+                               return new ApiOpenSearchFormatJson(
+                                       $this->getMain(), $this->fm, $this->getParameter( 'warningsaserror' )
+                               );
 
                        case 'xml':
                                $printer = $this->getMain()->createPrinterByName( 'xml' . $this->fm );
@@ -212,7 +214,7 @@ class ApiOpenSearch extends ApiBase {
                switch ( $this->getFormat() ) {
                        case 'json':
                                // http://www.opensearch.org/Specifications/OpenSearch/Extensions/Suggestions/1.1
-                               $result->addArrayType( null, 'BCarray' );
+                               $result->addArrayType( null, 'array' );
                                $result->addValue( null, 0, strval( $search ) );
                                $terms = array();
                                $descriptions = array();
@@ -286,7 +288,8 @@ class ApiOpenSearch extends ApiBase {
                        'format' => array(
                                ApiBase::PARAM_DFLT => 'json',
                                ApiBase::PARAM_TYPE => array( 'json', 'jsonfm', 'xml', 'xmlfm' ),
-                       )
+                       ),
+                       'warningsaserror' => false,
                );
        }
 
@@ -370,3 +373,38 @@ class ApiOpenSearch extends ApiBase {
                }
        }
 }
+
+class ApiOpenSearchFormatJson extends ApiFormatJson {
+       private $warningsAsError = false;
+
+       public function __construct( ApiMain $main, $fm, $warningsAsError ) {
+               parent::__construct( $main, "json$fm" );
+               $this->warningsAsError = $warningsAsError;
+       }
+
+       public function execute() {
+               if ( !$this->getResult()->getResultData( 'error' ) ) {
+                       $result = $this->getResult();
+
+                       // Ignore warnings or treat as errors, as requested
+                       $warnings = $result->removeValue( 'warnings', null );
+                       if ( $this->warningsAsError && $warnings ) {
+                               $this->dieUsage(
+                                       'Warnings cannot be represented in OpenSearch JSON format', 'warnings', 0,
+                                       array( 'warnings' => $warnings )
+                               );
+                       }
+
+                       // Ignore any other unexpected keys (e.g. from $wgDebugToolbar)
+                       $remove = array_keys( array_diff_key(
+                               $result->getResultData(),
+                               array( 0 => 'search', 1 => 'terms', 2 => 'descriptions', 3 => 'urls' )
+                       ) );
+                       foreach ( $remove as $key ) {
+                               $result->removeValue( $key, null );
+                       }
+               }
+
+               parent::execute();
+       }
+}
index 8ef0629..436f22a 100644 (file)
@@ -75,11 +75,17 @@ class ApiOptions extends ApiBase {
                $prefs = Preferences::getPreferences( $user, $this->getContext() );
                $prefsKinds = $user->getOptionKinds( $this->getContext(), $changes );
 
+               $htmlForm = null;
                foreach ( $changes as $key => $value ) {
                        switch ( $prefsKinds[$key] ) {
                                case 'registered':
                                        // Regular option.
+                                       if ( $htmlForm === null ) {
+                                               // We need a dummy HTMLForm for the validate callback...
+                                               $htmlForm = new HTMLForm( array(), $this );
+                                       }
                                        $field = HTMLForm::loadInputFromParameters( $key, $prefs[$key] );
+                                       $field->mParent = $htmlForm;
                                        $validation = $field->validate( $value, $user->getOptions() );
                                        break;
                                case 'registered-multiselect':
index e6f218d..d67b184 100644 (file)
@@ -58,7 +58,7 @@ class ApiPageSet extends ApiBase {
        private $mGoodTitles = array();
        private $mMissingPages = array(); // [ns][dbkey] => fake page_id
        private $mMissingTitles = array();
-       private $mInvalidTitles = array();
+       private $mInvalidTitles = array(); // [fake_page_id] => array( 'title' => $title, 'invalidreason' => $reason )
        private $mMissingPageIDs = array();
        private $mRedirectTitles = array();
        private $mSpecialTitles = array();
@@ -396,9 +396,22 @@ class ApiPageSet extends ApiBase {
        /**
         * Titles that were deemed invalid by Title::newFromText()
         * The array's index will be unique and negative for each item
+        * @deprecated since 1.26, use self::getInvalidTitlesAndReasons()
         * @return string[] Array of strings (not Title objects)
         */
        public function getInvalidTitles() {
+               wfDeprecated( __METHOD__, '1.26' );
+               return array_map( function ( $t ) {
+                       return $t['title'];
+               }, $this->mInvalidTitles );
+       }
+
+       /**
+        * Titles that were deemed invalid by Title::newFromText()
+        * The array's index will be unique and negative for each item
+        * @return array[] Array of arrays with 'title' and 'invalidreason' properties
+        */
+       public function getInvalidTitlesAndReasons() {
                return $this->mInvalidTitles;
        }
 
@@ -552,7 +565,7 @@ class ApiPageSet extends ApiBase {
         *
         * @param array $invalidChecks List of types of invalid titles to include.
         *   Recognized values are:
-        *   - invalidTitles: Titles from $this->getInvalidTitles()
+        *   - invalidTitles: Titles and reasons from $this->getInvalidTitlesAndReasons()
         *   - special: Titles from $this->getSpecialTitles()
         *   - missingIds: ids from $this->getMissingPageIDs()
         *   - missingRevIds: ids from $this->getMissingRevisionIDs()
@@ -566,7 +579,7 @@ class ApiPageSet extends ApiBase {
        ) {
                $result = array();
                if ( in_array( "invalidTitles", $invalidChecks ) ) {
-                       self::addValues( $result, $this->getInvalidTitles(), 'invalid', 'title' );
+                       self::addValues( $result, $this->getInvalidTitlesAndReasons(), 'invalid' );
                }
                if ( in_array( "special", $invalidChecks ) ) {
                        self::addValues( $result, $this->getSpecialTitles(), 'special', 'title' );
@@ -1077,17 +1090,21 @@ class ApiPageSet extends ApiBase {
 
                foreach ( $titles as $title ) {
                        if ( is_string( $title ) ) {
-                               $titleObj = Title::newFromText( $title, $this->mDefaultNamespace );
+                               try {
+                                       $titleObj = Title::newFromTextThrow( $title, $this->mDefaultNamespace );
+                               } catch ( MalformedTitleException $ex ) {
+                                       // Handle invalid titles gracefully
+                                       $this->mAllPages[0][$title] = $this->mFakePageId;
+                                       $this->mInvalidTitles[$this->mFakePageId] = array(
+                                               'title' => $title,
+                                               'invalidreason' => $ex->getMessage(),
+                                       );
+                                       $this->mFakePageId--;
+                                       continue; // There's nothing else we can do
+                               }
                        } else {
                                $titleObj = $title;
                        }
-                       if ( !$titleObj ) {
-                               // Handle invalid titles gracefully
-                               $this->mAllPages[0][$title] = $this->mFakePageId;
-                               $this->mInvalidTitles[$this->mFakePageId] = $title;
-                               $this->mFakePageId--;
-                               continue; // There's nothing else we can do
-                       }
                        $unconvertedTitle = $titleObj->getPrefixedText();
                        $titleWasConverted = false;
                        if ( $titleObj->isExternal() ) {
@@ -1287,8 +1304,8 @@ class ApiPageSet extends ApiBase {
                        ),
                        'generator' => array(
                                ApiBase::PARAM_TYPE => null,
-                               ApiBase::PARAM_VALUE_LINKS => array(),
                                ApiBase::PARAM_HELP_MSG => 'api-pageset-param-generator',
+                               ApiBase::PARAM_SUBMODULE_PARAM_PREFIX => 'g',
                        ),
                        'redirects' => array(
                                ApiBase::PARAM_DFLT => false,
@@ -1314,10 +1331,8 @@ class ApiPageSet extends ApiBase {
                if ( !$this->mAllowGenerator ) {
                        unset( $result['generator'] );
                } elseif ( $flags & ApiBase::GET_VALUES_FOR_HELP ) {
-                       foreach ( $this->getGenerators() as $g ) {
-                               $result['generator'][ApiBase::PARAM_TYPE][] = $g;
-                               $result['generator'][ApiBase::PARAM_VALUE_LINKS][$g] = "Special:ApiHelp/query+$g";
-                       }
+                       $result['generator'][ApiBase::PARAM_TYPE] = 'submodule';
+                       $result['generator'][ApiBase::PARAM_SUBMODULE_MAP] = $this->getGenerators();
                }
 
                return $result;
@@ -1338,13 +1353,14 @@ class ApiPageSet extends ApiBase {
                                $query = $this->getMain()->getModuleManager()->getModule( 'query' );
                        }
                        $gens = array();
+                       $prefix = $query->getModulePath() . '+';
                        $mgr = $query->getModuleManager();
                        foreach ( $mgr->getNamesWithClasses() as $name => $class ) {
                                if ( is_subclass_of( $class, 'ApiQueryGeneratorBase' ) ) {
-                                       $gens[] = $name;
+                                       $gens[$name] = $prefix . $name;
                                }
                        }
-                       sort( $gens );
+                       ksort( $gens );
                        self::$generators = $gens;
                }
 
index 25069d9..8a4ef49 100644 (file)
@@ -291,14 +291,20 @@ class ApiParamInfo extends ApiBase {
                        if ( isset( $settings[ApiBase::PARAM_DFLT] ) ) {
                                switch ( $settings[ApiBase::PARAM_TYPE] ) {
                                        case 'boolean':
-                                               $item['default'] = ( $settings[ApiBase::PARAM_DFLT] ? 'true' : 'false' );
+                                               $item['default'] = (bool)$settings[ApiBase::PARAM_DFLT];
                                                break;
                                        case 'string':
+                                       case 'text':
+                                       case 'password':
                                                $item['default'] = strval( $settings[ApiBase::PARAM_DFLT] );
                                                break;
                                        case 'integer':
+                                       case 'limit':
                                                $item['default'] = intval( $settings[ApiBase::PARAM_DFLT] );
                                                break;
+                                       case 'timestamp':
+                                               $item['default'] = wfTimestamp( TS_ISO_8601, $settings[ApiBase::PARAM_DFLT] );
+                                               break;
                                        default:
                                                $item['default'] = $settings[ApiBase::PARAM_DFLT];
                                                break;
@@ -320,9 +326,23 @@ class ApiParamInfo extends ApiBase {
 
                        if ( isset( $settings[ApiBase::PARAM_TYPE] ) ) {
                                if ( $settings[ApiBase::PARAM_TYPE] === 'submodule' ) {
-                                       $item['type'] = $module->getModuleManager()->getNames( $name );
-                                       sort( $item['type'] );
-                                       $item['submodules'] = true;
+                                       if ( isset( $settings[ApiBase::PARAM_SUBMODULE_MAP] ) ) {
+                                               ksort( $settings[ApiBase::PARAM_SUBMODULE_MAP] );
+                                               $item['type'] = array_keys( $settings[ApiBase::PARAM_SUBMODULE_MAP] );
+                                               $item['submodules'] = $settings[ApiBase::PARAM_SUBMODULE_MAP];
+                                       } else {
+                                               $item['type'] = $module->getModuleManager()->getNames( $name );
+                                               sort( $item['type'] );
+                                               $prefix = $module->isMain()
+                                                       ? '' : ( $module->getModulePath() . '+' );
+                                               $item['submodules'] = array();
+                                               foreach ( $item['type'] as $v ) {
+                                                       $item['submodules'][$v] = $prefix.$v;
+                                               }
+                                       }
+                                       if ( isset( $settings[ApiBase::PARAM_SUBMODULE_PARAM_PREFIX] ) ) {
+                                               $item['submoduleparamprefix'] = $settings[ApiBase::PARAM_SUBMODULE_PARAM_PREFIX];
+                                       }
                                } else {
                                        $item['type'] = $settings[ApiBase::PARAM_TYPE];
                                }
@@ -341,6 +361,9 @@ class ApiParamInfo extends ApiBase {
                        if ( isset( $settings[ApiBase::PARAM_MIN] ) ) {
                                $item['min'] = $settings[ApiBase::PARAM_MIN];
                        }
+                       if ( !empty( $settings[ApiBase::PARAM_RANGE_ENFORCE] ) ) {
+                               $item['enforcerange'] = true;
+                       }
 
                        if ( !empty( $settings[ApiBase::PARAM_HELP_MSG_INFO] ) ) {
                                $item['info'] = array();
index a917c54..1833434 100644 (file)
@@ -71,7 +71,9 @@ class ApiParse extends ApiBase {
                if ( isset( $params['section'] ) ) {
                        $this->section = $params['section'];
                        if ( !preg_match( '/^((T-)?\d+|new)$/', $this->section ) ) {
-                               $this->dieUsage( "The section parameter must be a valid section id or 'new'", "invalidsection" );
+                               $this->dieUsage(
+                                       "The section parameter must be a valid section id or 'new'", "invalidsection"
+                               );
                        }
                } else {
                        $this->section = false;
@@ -89,7 +91,10 @@ class ApiParse extends ApiBase {
 
                if ( !is_null( $oldid ) || !is_null( $pageid ) || !is_null( $page ) ) {
                        if ( $this->section === 'new' ) {
-                                       $this->dieUsage( 'section=new cannot be combined with oldid, pageid or page parameters. Please use text', 'params' );
+                                       $this->dieUsage(
+                                               'section=new cannot be combined with oldid, pageid or page parameters. ' .
+                                               'Please use text', 'params'
+                                       );
                        }
                        if ( !is_null( $oldid ) ) {
                                // Don't use the parser cache
@@ -350,7 +355,28 @@ class ApiParse extends ApiBase {
                        $result_array['modules'] = array_values( array_unique( $p_result->getModules() ) );
                        $result_array['modulescripts'] = array_values( array_unique( $p_result->getModuleScripts() ) );
                        $result_array['modulestyles'] = array_values( array_unique( $p_result->getModuleStyles() ) );
-                       $result_array['modulemessages'] = array_values( array_unique( $p_result->getModuleMessages() ) );
+                       // To be removed in 1.27
+                       $result_array['modulemessages'] = array();
+                       $this->setWarning( 'modulemessages is deprecated since MediaWiki 1.26' );
+               }
+
+               if ( isset( $prop['jsconfigvars'] ) ) {
+                       $result_array['jsconfigvars'] =
+                               ApiResult::addMetadataToResultVars( $p_result->getJsConfigVars() );
+               }
+
+               if ( isset( $prop['encodedjsconfigvars'] ) ) {
+                       $result_array['encodedjsconfigvars'] = FormatJson::encode(
+                               $p_result->getJsConfigVars(), false, FormatJson::ALL_OK
+                       );
+                       $result_array[ApiResult::META_SUBELEMENTS][] = 'encodedjsconfigvars';
+               }
+
+               if ( isset( $prop['modules'] ) &&
+                       !isset( $prop['jsconfigvars'] ) && !isset( $prop['encodedjsconfigvars'] ) ) {
+                       $this->setWarning( "Property 'modules' was set but not 'jsconfigvars' " .
+                               "or 'encodedjsconfigvars'. Configuration variables are necessary " .
+                               "for proper module usage.");
                }
 
                if ( isset( $prop['indicators'] ) ) {
@@ -507,12 +533,13 @@ class ApiParse extends ApiBase {
                $sectionTitle = !is_null( $params['sectiontitle'] ) ? $params['sectiontitle'] : '';
 
                if ( $this->section === 'new' && ( $sectionTitle === '' || $summary === '' ) ) {
-                       if( $sectionTitle !== '' ) {
+                       if ( $sectionTitle !== '' ) {
                                $summary = $params['sectiontitle'];
                        }
                        if ( $summary !== '' ) {
-                               $summary = wfMessage( 'newsectionsummary' )->rawParams( $wgParser->stripSectionName( $summary ) )
-                                       ->inContentLanguage()->text();
+                               $summary = wfMessage( 'newsectionsummary' )
+                                       ->rawParams( $wgParser->stripSectionName( $summary ) )
+                                               ->inContentLanguage()->text();
                        }
                }
                return Linker::formatComment( $summary, $title, $this->section === 'new' );
@@ -679,7 +706,9 @@ class ApiParse extends ApiBase {
        public function getAllowedParams() {
                return array(
                        'title' => null,
-                       'text' => null,
+                       'text' => array(
+                               ApiBase::PARAM_TYPE => 'text',
+                       ),
                        'summary' => null,
                        'page' => null,
                        'pageid' => array(
@@ -708,13 +737,16 @@ class ApiParse extends ApiBase {
                                        'headitems',
                                        'headhtml',
                                        'modules',
+                                       'jsconfigvars',
+                                       'encodedjsconfigvars',
                                        'indicators',
                                        'iwlinks',
                                        'wikitext',
                                        'properties',
                                        'limitreportdata',
                                        'limitreporthtml',
-                               )
+                               ),
+                               ApiBase::PARAM_HELP_MSG_PER_VALUE => array(),
                        ),
                        'pst' => false,
                        'onlypst' => false,
index bfe3205..304d0f0 100644 (file)
@@ -407,8 +407,8 @@ class ApiQuery extends ApiBase {
                        $pages[$fakeId] = $vals;
                }
                // Report any invalid titles
-               foreach ( $pageSet->getInvalidTitles() as $fakeId => $title ) {
-                       $pages[$fakeId] = array( 'title' => $title, 'invalid' => true );
+               foreach ( $pageSet->getInvalidTitlesAndReasons() as $fakeId => $data ) {
+                       $pages[$fakeId] = $data + array( 'invalid' => true );
                }
                // Report any missing page ids
                foreach ( $pageSet->getMissingPageIDs() as $pageid ) {
index faaf1fd..05daa7a 100644 (file)
@@ -275,16 +275,19 @@ class ApiQueryAllUsers extends ApiQueryBase {
                                if ( $fld_groups ) {
                                        $data['groups'] = $groups;
                                        ApiResult::setIndexedTagName( $data['groups'], 'g' );
+                                       ApiResult::setArrayType( $data['groups'], 'array' );
                                }
 
                                if ( $fld_implicitgroups ) {
                                        $data['implicitgroups'] = $implicitGroups;
                                        ApiResult::setIndexedTagName( $data['implicitgroups'], 'g' );
+                                       ApiResult::setArrayType( $data['implicitgroups'], 'array' );
                                }
 
                                if ( $fld_rights ) {
                                        $data['rights'] = User::getGroupPermissions( $groups );
                                        ApiResult::setIndexedTagName( $data['rights'], 'r' );
+                                       ApiResult::setArrayType( $data['rights'], 'array' );
                                }
                        }
 
index 89e92b8..c66e21b 100644 (file)
@@ -504,7 +504,7 @@ abstract class ApiQueryBase extends ApiBase {
         * capitalization settings.
         *
         * @param string $titlePart Title part
-        * @param int $defaultNamespace Namespace of the title
+        * @param int $namespace Namespace of the title
         * @return string DBkey (no namespace prefix)
         */
        public function titlePartToKey( $titlePart, $namespace = NS_MAIN ) {
@@ -525,6 +525,24 @@ abstract class ApiQueryBase extends ApiBase {
                return substr( $t->getDbKey(), 0, -1 );
        }
 
+       /**
+        * Convert an input title or title prefix into a namespace constant and dbkey.
+        *
+        * @since 1.26
+        * @param string $titlePart Title part
+        * @param int $defaultNamespace Default namespace if none is given
+        * @return array (int, string) Namespace number and DBkey
+        */
+       public function prefixedTitlePartToKey( $titlePart, $defaultNamespace = NS_MAIN ) {
+               $t = Title::newFromText( $titlePart . 'x', $defaultNamespace );
+               if ( !$t || $t->hasFragment() || $t->isExternal() ) {
+                       // Invalid title (e.g. bad chars) or contained a '#'.
+                       $this->dieUsageMsg( array( 'invalidtitle', $titlePart ) );
+               }
+
+               return array( $t->getNamespace(), substr( $t->getDbKey(), 0, -1 ) );
+       }
+
        /**
         * Gets the personalised direction parameter description
         *
index ec0c1d1..4042bd7 100644 (file)
@@ -158,7 +158,9 @@ class ApiQueryCategoryMembers extends ApiQueryGeneratorBase {
                                        }
                                        $startsortkey = pack( 'H*', $params['starthexsortkey'] );
                                } else {
-                                       $this->logFeatureUsage( 'list=categorymembers&cmstartsortkey' );
+                                       if ( $params['startsortkey'] !== null ) {
+                                               $this->logFeatureUsage( 'list=categorymembers&cmstartsortkey' );
+                                       }
                                        $startsortkey = $params['startsortkey'];
                                }
                                if ( $params['endsortkeyprefix'] !== null ) {
@@ -169,7 +171,9 @@ class ApiQueryCategoryMembers extends ApiQueryGeneratorBase {
                                        }
                                        $endsortkey = pack( 'H*', $params['endhexsortkey'] );
                                } else {
-                                       $this->logFeatureUsage( 'list=categorymembers&cmendsortkey' );
+                                       if ( $params['endsortkey'] !== null ) {
+                                               $this->logFeatureUsage( 'list=categorymembers&cmendsortkey' );
+                                       }
                                        $endsortkey = $params['endsortkey'];
                                }
 
index 02846dc..bcd3c32 100644 (file)
@@ -523,9 +523,9 @@ class ApiQueryImageInfo extends ApiQueryBase {
                }
 
                if ( $meta ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $metadata = unserialize( $file->getMetadata() );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        if ( $metadata && $version !== 'latest' ) {
                                $metadata = $file->convertMetadataVersion( $metadata, $version );
                        }
index 98c2201..1dc9985 100644 (file)
@@ -176,6 +176,7 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                $data['linktrail'] = $linktrail ?: '';
 
                $data['legaltitlechars'] = Title::legalChars();
+               $data['invalidusernamechars'] = $config->get( 'InvalidUsernameCharacters' );
 
                global $IP;
                $git = SpecialVersion::getGitHeadSha1( $IP );
index 493c192..f45d7d7 100644 (file)
@@ -83,6 +83,28 @@ class ApiQueryWatchlistRaw extends ApiQueryGeneratorBase {
                        );
                }
 
+               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)"
+                       );
+               }
+
+               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)"
+                       );
+               }
+
                $sort = ( $params['dir'] == 'descending' ? ' DESC' : '' );
                // Don't ORDER BY wl_namespace if it's constant in the WHERE clause
                if ( count( $params['namespace'] ) == 1 ) {
@@ -172,6 +194,12 @@ class ApiQueryWatchlistRaw extends ApiQueryGeneratorBase {
                                ),
                                ApiBase::PARAM_HELP_MSG => 'api-help-param-direction',
                        ),
+                       'fromtitle' => array(
+                               ApiBase::PARAM_TYPE => 'string'
+                       ),
+                       'totitle' => array(
+                               ApiBase::PARAM_TYPE => 'string'
+                       ),
                );
        }
 
index 044b6e0..f0c7430 100644 (file)
@@ -302,10 +302,14 @@ class ApiResult implements ApiSerializable {
                                $arr[$name] += $value;
                        } else {
                                $keys = join( ', ', array_keys( $conflicts ) );
-                               throw new RuntimeException( "Conflicting keys ($keys) when attempting to merge element $name" );
+                               throw new RuntimeException(
+                                       "Conflicting keys ($keys) when attempting to merge element $name"
+                               );
                        }
                } else {
-                       throw new RuntimeException( "Attempting to add element $name=$value, existing value is {$arr[$name]}" );
+                       throw new RuntimeException(
+                               "Attempting to add element $name=$value, existing value is {$arr[$name]}"
+                       );
                }
        }
 
@@ -703,7 +707,9 @@ class ApiResult implements ApiSerializable {
         * @param string $kvpKeyName See ApiResult::META_KVP_KEY_NAME
         */
        public static function setArrayType( array &$arr, $type, $kvpKeyName = null ) {
-               if ( !in_array( $type, array( 'default', 'array', 'assoc', 'kvp', 'BCarray', 'BCassoc', 'BCkvp' ), true ) ) {
+               if ( !in_array( $type, array(
+                               'default', 'array', 'assoc', 'kvp', 'BCarray', 'BCassoc', 'BCkvp'
+                               ), true ) ) {
                        throw new InvalidArgumentException( 'Bad type' );
                }
                $arr[self::META_TYPE] = $type;
@@ -832,11 +838,13 @@ class ApiResult implements ApiSerializable {
                                isset( $metadata[self::META_BC_SUBELEMENTS] )
                        ) {
                                foreach ( $metadata[self::META_BC_SUBELEMENTS] as $k ) {
-                                       $data[$k] = array(
-                                               '*' => $data[$k],
-                                               self::META_CONTENT => '*',
-                                               self::META_TYPE => 'assoc',
-                                       );
+                                       if ( isset( $data[$k] ) ) {
+                                               $data[$k] = array(
+                                                       '*' => $data[$k],
+                                                       self::META_CONTENT => '*',
+                                                       self::META_TYPE => 'assoc',
+                                               );
+                                       }
                                }
                        }
 
@@ -1033,7 +1041,8 @@ class ApiResult implements ApiSerializable {
        /**
         * Get the 'real' size of a result item. This means the strlen() of the item,
         * or the sum of the strlen()s of the elements if the item is an array.
-        * @note Once the deprecated public self::size is removed, we can rename this back to a less awkward name.
+        * @note Once the deprecated public self::size is removed, we can rename
+        *       this back to a less awkward name.
         * @param mixed $value
         * @return int
         */
@@ -1094,6 +1103,61 @@ class ApiResult implements ApiSerializable {
                return $ret;
        }
 
+       /**
+        * Add the correct metadata to an array of vars we want to export through
+        * the API.
+        *
+        * @param array $vars
+        * @param boolean $forceHash
+        * @return array
+        */
+       public static function addMetadataToResultVars( $vars, $forceHash = true ) {
+               // Process subarrays and determine if this is a JS [] or {}
+               $hash = $forceHash;
+               $maxKey = -1;
+               $bools = array();
+               foreach ( $vars as $k => $v ) {
+                       if ( is_array( $v ) || is_object( $v ) ) {
+                               $vars[$k] = ApiResult::addMetadataToResultVars( (array)$v, is_object( $v ) );
+                       } elseif ( is_bool( $v ) ) {
+                               // Better here to use real bools even in BC formats
+                               $bools[] = $k;
+                       }
+                       if ( is_string( $k ) ) {
+                               $hash = true;
+                       } elseif ( $k > $maxKey ) {
+                               $maxKey = $k;
+                       }
+               }
+               if ( !$hash && $maxKey !== count( $vars ) - 1 ) {
+                       $hash = true;
+               }
+
+               // Set metadata appropriately
+               if ( $hash ) {
+                       // Get the list of keys we actually care about. Unfortunately, we can't support
+                       // certain keys that conflict with ApiResult metadata.
+                       $keys = array_diff( array_keys( $vars ), array(
+                               ApiResult::META_TYPE, ApiResult::META_PRESERVE_KEYS, ApiResult::META_KVP_KEY_NAME,
+                               ApiResult::META_INDEXED_TAG_NAME, ApiResult::META_BC_BOOLS
+                       ) );
+
+                       return array(
+                               ApiResult::META_TYPE => 'kvp',
+                               ApiResult::META_KVP_KEY_NAME => 'key',
+                               ApiResult::META_PRESERVE_KEYS => $keys,
+                               ApiResult::META_BC_BOOLS => $bools,
+                               ApiResult::META_INDEXED_TAG_NAME => 'var',
+                       ) + $vars;
+               } else {
+                       return array(
+                               ApiResult::META_TYPE => 'array',
+                               ApiResult::META_BC_BOOLS => $bools,
+                               ApiResult::META_INDEXED_TAG_NAME => 'value',
+                       ) + $vars;
+               }
+       }
+
        /**@}*/
 
        /************************************************************************//**
index 86a3f6a..fa6fabf 100644 (file)
@@ -112,9 +112,7 @@ class ApiSetNotificationTimestamp extends ApiBase {
                                : wfTimestamp( TS_ISO_8601, $timestamp );
                } else {
                        // First, log the invalid titles
-                       foreach ( $pageSet->getInvalidTitles() as $title ) {
-                               $r = array();
-                               $r['title'] = $title;
+                       foreach ( $pageSet->getInvalidTitlesAndReasons() as $r ) {
                                $r['invalid'] = true;
                                $result[] = $r;
                        }
index c4b717c..1f469b8 100644 (file)
@@ -331,7 +331,7 @@ class ApiStashEdit extends ApiBase {
                        $content->getDefaultFormat(),
                        sha1( $content->serialize( $content->getDefaultFormat() ) ),
                        $user->getId() ?: md5( $user->getName() ), // account for user parser options
-                       $user->getId() ? $user->getTouched() : '-' // handle preference change races
+                       $user->getId() ? $user->getDBTouched() : '-' // handle preference change races
                ) ) );
 
                return wfMemcKey( 'prepared-edit', md5( $title->getPrefixedDBkey() ), $hash );
@@ -380,7 +380,7 @@ class ApiStashEdit extends ApiBase {
                                ApiBase::PARAM_TYPE => 'string'
                        ),
                        'text' => array(
-                               ApiBase::PARAM_TYPE => 'string',
+                               ApiBase::PARAM_TYPE => 'text',
                                ApiBase::PARAM_REQUIRED => true
                        ),
                        'contentmodel' => array(
index 74ae05a..54294c9 100644 (file)
@@ -735,7 +735,9 @@ class ApiUpload extends ApiBase {
                        'comment' => array(
                                ApiBase::PARAM_DFLT => ''
                        ),
-                       'text' => null,
+                       'text' => array(
+                               ApiBase::PARAM_TYPE => 'text',
+                       ),
                        'watch' => array(
                                ApiBase::PARAM_DFLT => false,
                                ApiBase::PARAM_DEPRECATED => true,
diff --git a/includes/api/i18n/ba.json b/includes/api/i18n/ba.json
new file mode 100644 (file)
index 0000000..bda2291
--- /dev/null
@@ -0,0 +1,13 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Рустам Нурыев"
+               ]
+       },
+       "apihelp-feedcontributions-param-toponly": "Һуңғы өлгө булған төҙәтеүҙәрҙе генә күрһәтергә",
+       "apihelp-feedcontributions-param-showsizediff": "Өлгәоәр араһыдағы күләм айырмаһын күрһәтергә",
+       "apihelp-feedrecentchanges-param-from": "Теге ваҡыттын булған үҙгәрештәрҙе күрһәтергә",
+       "apihelp-feedrecentchanges-param-target": "Был биттән һылтанған биттәрҙә һуңғы үҙгәртеүҙәрҙе күрһәтергә",
+       "apihelp-feedrecentchanges-example-simple": "Һуңғы үҙгәртеүҙәрҙе күрһәтергә.",
+       "apihelp-feedwatchlist-example-default": "Күҙәтеү каналын күрһәтергә"
+}
diff --git a/includes/api/i18n/bcl.json b/includes/api/i18n/bcl.json
new file mode 100644 (file)
index 0000000..420aded
--- /dev/null
@@ -0,0 +1,10 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Geopoet"
+               ]
+       },
+       "apihelp-expandtemplates-paramvalue-prop-categories": "Arinman na mga kategoriyang yaon sa pinapalaog na bakong representado sa laog kan wikitext na kinaluwasan.",
+       "apihelp-query+watchlistraw-param-fromtitle": "Titulo (may espasyong ngaran sa enotang panigmitan) sa pagpopoon kan gikanang pinagkuanan.",
+       "apihelp-query+watchlistraw-param-totitle": "Titulo (may espasyong ngaran sa enotang panigmitan) sa pagpapauntok kan gikanang pinaghalean."
+}
index a09cb5a..98485cf 100644 (file)
@@ -8,8 +8,8 @@
        "apihelp-main-param-action": "Дзеяньне для выкананьня.",
        "apihelp-main-param-format": "Фармат вываду.",
        "apihelp-main-param-maxlag": "Максымальная затрымка можа ўжывацца, калі MediaWiki ўсталяваная ў клястэр з рэплікаванай базай зьвестак. Дзеля захаваньня дзеяньняў, якія выклікаюць затрымку рэплікацыі, гэты парамэтар можа прымусіць кліента чакаць, пакуль затрымка рэплікацыі меншая за яго значэньне. У выпадку доўгай затрымкі, вяртаецца код памылкі <samp>maxlag</samp> з паведамленьнем кшталту <samp>Чаканьне $host: $lag сэкундаў затрымкі</samp>.<br />Глядзіце [[mw:Manual:Maxlag_parameter|Інструкцыя:Парамэтар maxlag]] дзеля дадатковай інфармацыі.",
-       "apihelp-main-param-smaxage": "Выстаўце загаловак <code>s-maxage</code> на зададзеную колькасьць сэкундаў. Памылкі ніколі не кэшуюцца.",
-       "apihelp-main-param-maxage": "Выстаўляе загаловак <code>max-age</code> на зададзеную колькасьць сэкундаў. Памылкі ніколі не кэшуюцца.",
+       "apihelp-main-param-smaxage": "Выстаўце HTTP-загаловак кантролю кэшу <code>s-maxage</code> на зададзеную колькасьць сэкундаў. Памылкі ніколі не кэшуюцца.",
+       "apihelp-main-param-maxage": "Выстаўляе HTTP-загаловак кантролю кэшу <code>max-age</code> на зададзеную колькасьць сэкундаў. Памылкі ніколі не кэшуюцца.",
        "apihelp-main-param-assert": "Упэўніцеся, што ўдзельнік увайшоў у сыстэму, калі зададзена <kbd>user</kbd>, або мае правы робата, калі зададзена <kbd>bot</kbd>.",
        "apihelp-main-param-requestid": "Любое значэньне, пададзенае тут, будзе ўключанае ў адказ. Можа быць выкарыстанае для адрозьненьня запытаў.",
        "apihelp-main-param-servedby": "Уключае ў вынік назву сэрвэра, які апрацаваў запыт.",
index 8ba597a..1ac6dc3 100644 (file)
        "apihelp-main-param-action": "Jaká akce se má provést.",
        "apihelp-main-param-format": "Formát výstupu.",
        "apihelp-main-param-maxlag": "Maximální zpoždění lze použít, když je MediaWiki nainstalováno na cluster s replikovanou databází. Abyste se vyhnuli zhoršování už tak špatného replikačního zpoždění, můžete tímto parametrem nechat klienta čekat, dokud replikační zpoždění neklesne pod uvedenou hodnotu. V případě příliš vysokého zpoždění se vrátí chybový kód „<samp>maxlag</samp>“ s hlášením typu „<samp>Waiting for $host: $lag seconds lagged</samp>“.<br />Více informací najdete v [[mw:Manual:Maxlag_parameter|příručce]].",
-       "apihelp-main-param-smaxage": "Nastaví hlavičku <code>s-maxage</code> na uvedený počet sekund. Chyby se nekešují nikdy.",
-       "apihelp-main-param-maxage": "Nastaví hlavičku <code>max-age</code> na uvedený počet sekund. Chyby se nekešují nikdy.",
+       "apihelp-main-param-smaxage": "Nastaví HTTP hlavičku pro řízení kešování <code>s-maxage</code> na uvedený počet sekund. Chyby se nekešují nikdy.",
+       "apihelp-main-param-maxage": "Nastaví HTTP hlavičku pro řízení kešování <code>max-age</code> na uvedený počet sekund. Chyby se nekešují nikdy.",
        "apihelp-main-param-assert": "Pokud je nastaveno na „<kbd>user</kbd>“, ověří, že je uživatel přihlášen, pokud je nastaveno na „<kbd>bot</kbd>“, ověří, že má oprávnění „bot“.",
        "apihelp-main-param-requestid": "Libovolná zde uvedená hodnota bude zahrnuta v odpovědi. Lze použít pro rozlišení požadavků.",
        "apihelp-main-param-servedby": "Zahrnout do odpovědi název hostitele, který požadavek obsloužil.",
        "apihelp-main-param-curtimestamp": "Zahrnout do odpovědi aktuální časové razítko.",
-       "apihelp-main-param-origin": "Pokud k API přistupujete pomocí mezidoménového AJAXového požadavku (CORS), nastavte tento parametr na doménu původu. Musí být součástí všech předběžných požadavků, takže musí být součástí URI požadavku (nikoli těla POSTu). Hodnota musí přesně odpovídat jednomu z původů v hlavičce Origin:, takže musí být nastavena na něco jako http://en.wikipedia.org nebo https://meta.wikimedia.org. Pokud parametr neodpovídá hlavičce Origin:, bude vrácena odpověď 403. Pokud parametr odpovídá hlavičce Origin: a tento původ je na bílé listině, bude nastavena hlavička Access-Control-Allow-Origin.",
+       "apihelp-main-param-origin": "Pokud k API přistupujete pomocí mezidoménového AJAXového požadavku (CORS), nastavte tento parametr na doménu původu. Musí být součástí všech předběžných požadavků, takže musí být součástí URI požadavku (nikoli těla POSTu). Hodnota musí přesně odpovídat jednomu z původů v hlavičce <code>Origin</code>, takže musí být nastavena na něco jako <kbd>https://en.wikipedia.org</kbd> nebo <kbd>https://meta.wikimedia.org</kbd>. Pokud parametr neodpovídá hlavičce <code>Origin</code>, bude vrácena odpověď 403. Pokud parametr odpovídá hlavičce <code>Origin</code> a tento původ je na bílé listině, bude nastavena hlavička <code>Access-Control-Allow-Origin</code>.",
        "apihelp-main-param-uselang": "Jazyk, který se má použít pro překlad hlášení. Seznam kódů lze načíst z <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> se <kbd>siprop=languages</kbd>, nebo zadejte „<kbd>user</kbd>“ pro použití předvoleného jazyka aktuálního uživatele či „<kbd>content</kbd>“ pro použití jazyka obsahu této wiki.",
        "apihelp-block-description": "Zablokovat uživatele.",
        "apihelp-block-param-user": "Uživatelské jméno, IP adresa nebo rozsah IP adres, které chcete zablokovat.",
@@ -33,7 +33,9 @@
        "apihelp-block-param-watchuser": "Sledovat stránku uživatele nebo IP adresy a jejich diskuzní stránky.",
        "apihelp-block-example-ip-simple": "Na tři dny zablokovat IP adresu <kbd>192.0.2.5</kbd> s odůvodněním <kbd>First strike</kbd>.",
        "apihelp-block-example-user-complex": "Trvale zablokovat uživatele <kbd>Vandal</kbd> s odůvodněním <kbd>Vandalism</kbd> a zabránit vytváření nových účtů a odesílání e-mailů.",
-       "apihelp-compare-description": "Vrátí rozdíl dvou stránek.\n\nVe „from“ a „to“ musíte zadat číslo revize, název stránky nebo ID stránky.",
+       "apihelp-checktoken-param-type": "Typ testovaného tokenu.",
+       "apihelp-checktoken-param-token": "Token, který se má otestovat.",
+       "apihelp-compare-description": "Vrátí rozdíl dvou stránek.\n\nVe „from“ i „to“ musíte zadat číslo revize, název stránky nebo ID stránky.",
        "apihelp-compare-param-fromtitle": "Název první stránky k porovnání.",
        "apihelp-compare-param-fromid": "ID první stránky k porovnání.",
        "apihelp-compare-param-fromrev": "Číslo revize první stránky k porovnání.",
        "apihelp-edit-param-redirect": "Automaticky opravit přesměrování.",
        "apihelp-edit-example-edit": "Upravit stránku.",
        "apihelp-emailuser-description": "Poslat uživateli e-mail.",
+       "apihelp-emailuser-param-target": "Uživatel, kterému se má e-mail poslat.",
+       "apihelp-emailuser-param-subject": "Hlavička s předmětem.",
        "apihelp-emailuser-param-text": "Tělo zprávy.",
        "apihelp-emailuser-param-ccme": "Odeslat mi kopii této zprávy.",
+       "apihelp-emailuser-example-email": "Poslat e-mail uživateli <kbd>WikiSysop</kbd> s textem <kbd>Content</kbd>.",
        "apihelp-expandtemplates-description": "Rozbalí všechny šablony ve wikitextu.",
        "apihelp-expandtemplates-param-title": "Název stránky.",
        "apihelp-expandtemplates-param-text": "Wikitext k převedení.",
        "apihelp-feedcontributions-param-feedformat": "Formát kanálu.",
        "apihelp-feedcontributions-param-year": "Od roku (a dříve).",
        "apihelp-feedcontributions-param-month": "Od měsíce (a dříve)",
+       "apihelp-feedcontributions-param-tagfilter": "Filtrovat příspěvky, které mají tyto značky.",
        "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-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-feedrecentchanges-param-hideminor": "Skrýt drobné změny.",
        "apihelp-filerevert-param-filename": "Cílový název souboru, bez prefixu Soubor:",
        "apihelp-filerevert-param-comment": "Vložit komentář.",
        "apihelp-help-description": "Zobrazuje nápovědu k uvedeným modulům.",
-       "apihelp-help-param-modules": "Moduly, pro které se má zobrazit nápověda (hodnoty parametrů action= a format= nebo „main“). Submoduly lze zadávat pomocí „+“.",
+       "apihelp-help-param-modules": "Moduly, pro které se má zobrazit nápověda (hodnoty parametrů <var>action</var> a <var>format</var> anebo <kbd>main</kbd>). Submoduly lze zadávat pomocí <kbd>+</kbd>.",
        "apihelp-help-param-submodules": "Zahrnout nápovědu pro podmoduly uvedeného modulu.",
        "apihelp-help-param-recursivesubmodules": "Zahrnout nápovědu pro podmoduly rekurzivně.",
        "apihelp-help-param-helpformat": "Formát výstupu nápovědy.",
        "apihelp-imagerotate-example-generator": "Otočit všechny obrázky v <kbd>Category:Flip</kbd> o <kbd>180</kbd> stupňů.",
        "apihelp-import-param-summary": "Import shrnutí.",
        "apihelp-import-param-xml": "Nahraný XML soubor.",
-       "apihelp-import-param-namespace": "Importovat do tohoto jmenného prostoru. Přepíše parametr <kbd>$1rootpage</kbd>.",
-       "apihelp-import-param-rootpage": "Importovat jako podstránku k této stránce. Ignoruje se, pokud je k dispozici parametr <kbd>$1namespace</kbd>.",
+       "apihelp-import-param-namespace": "Importovat do tohoto jmenného prostoru. Nelze používat současně s parametrem <var>$1rootpage</var>.",
+       "apihelp-import-param-rootpage": "Importovat jako podstránku k této stránce. Nelze používat současně s parametrem <var>$1namespace</var>.",
        "apihelp-login-param-name": "Uživatelské jméno.",
        "apihelp-login-param-password": "Heslo.",
        "apihelp-login-param-domain": "Doména (volitelná)",
        "apihelp-move-param-watch": "Přidat stránku a přesměrování do sledovaných stránek aktuálního uživatele.",
        "apihelp-move-param-unwatch": "Odstranit stránku a přesměrování ze sledovaných stránek současného uživatele.",
        "apihelp-move-param-ignorewarnings": "Ignorovat všechna varování.",
+       "apihelp-opensearch-description": "Vyhledávání na wiki pomocí protokolu OpenSearch.",
        "apihelp-opensearch-param-search": "Hledaný řetězec.",
        "apihelp-opensearch-param-limit": "Maximální počet vrácených výsledků",
        "apihelp-opensearch-param-namespace": "Jmenné prostory pro vyhledávání.",
+       "apihelp-opensearch-param-suggest": "Pokud je <var>[[mw:Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var> vypnuto, nedělat nic.",
        "apihelp-opensearch-param-format": "Formát výstupu.",
        "apihelp-opensearch-example-te": "Najít stránky začínající na „<kbd>Te</kbd>“.",
+       "apihelp-options-param-reset": "Vrátit nastavení na výchozí hodnoty.",
        "apihelp-options-example-reset": "Vrátit všechna nastavení.",
+       "apihelp-parse-param-summary": "Shrnutí, které se má parsovat.",
+       "apihelp-parse-paramvalue-prop-displaytitle": "Přidává název parsovaného wikitextu.",
+       "apihelp-parse-param-preview": "Parsovat v režimu náhledu.",
        "apihelp-parse-example-page": "Parsovat stránku.",
        "apihelp-parse-example-text": "Parsovat wikitext.",
+       "apihelp-parse-example-summary": "Parsovat shrnutí.",
        "apihelp-patrol-example-revid": "Prověřit revizi.",
        "apihelp-protect-description": "Změnit úroveň zamčení stránky.",
        "apihelp-protect-param-reason": "Důvod pro odemčení.",
        "apihelp-protect-example-protect": "Zamknout stránku.",
+       "apihelp-query+allcategories-param-limit": "Kolik má být zobrazeno kategorií.",
        "apihelp-query+alldeletedrevisions-description": "Seznam všech smazaných revizí od konkrétního uživatele nebo v konkrétním jmenném prostoru.",
+       "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "Není možné užít s <var>$3user</var>.",
        "apihelp-query+alldeletedrevisions-example-user": "Seznam posledních 50 smazaných editací uživatele <kbd>Příklad<kbd>.",
        "apihelp-query+alldeletedrevisions-example-ns-main": "Seznam prvních 50 smazaných revizí v hlavním jmenném prostoru.",
        "apihelp-query+allfileusages-description": "Zobrazit seznam všech použití souboru, včetně neexistujících.",
        "apihelp-query+allfileusages-example-unique": "Zobrazit seznam unikátních názvů souborů.",
+       "apihelp-query+allimages-param-minsize": "Omezit na obrázky, které mají alespoň tento počet bajtů.",
+       "apihelp-query+allimages-param-maxsize": "Omezit na obrázky, které mají maximálně tento počet bajtů.",
+       "apihelp-query+allimages-param-limit": "Kolik má být celkem zobrazeno obrázků.",
        "apihelp-query+alllinks-example-generator": "Získat stránky obsahující odkazy.",
        "apihelp-query+allpages-param-filterredir": "Které stránky uvést na seznam.",
        "apihelp-query+allpages-param-minsize": "Omezit na stránky s určitým počtem bajtů.",
        "apihelp-query+allredirects-description": "Seznam všech přesměrování pro jmenný prostor.",
        "apihelp-query+allredirects-example-unique": "Seznam unikátních cílových stránek.",
        "apihelp-query+allredirects-example-generator": "Získat stránky obsahující přesměrování.",
+       "apihelp-query+alltransclusions-param-limit": "Kolik položek zobrazit celkem.",
        "apihelp-query+alltransclusions-example-unique": "Seznam unikátně vložených titulů.",
+       "apihelp-query+allusers-example-Y": "Zobrazit uživatele počínaje písmenem <kbd>Y</kbd>.",
+       "apihelp-query+backlinks-description": "Najít všechny stránky, které odkazují na danou stránku.",
        "apihelp-query+backlinks-example-simple": "Zobrazit odkazy na <kbd>Hlavní stránka</kbd>",
+       "apihelp-query+blocks-example-simple": "Vypsat zablokování.",
+       "apihelp-query+blocks-example-users": "Seznam bloků uživatelů <kbd>Alice</kbd> a <kbd>Bob</kbd>.",
+       "apihelp-query+categories-description": "Zobrazit všechny kategorie, do kterých je stránka zařazena.",
+       "apihelp-query+categories-param-limit": "Kolik kategorií má být zobrazeno.",
        "apihelp-query+categorymembers-description": "Seznam všech stránek v dané kategorii.",
+       "apihelp-query+categorymembers-param-limit": "Maximální počet stránek k zobrazení.",
+       "apihelp-query+categorymembers-example-simple": "Zobrazit prvních 10 stránek v <kbd>Category:Physics</kbd>",
+       "apihelp-query+categorymembers-example-generator": "Získat informace o prvních 10 stránkách v <kbd>Category:Physics</kbd>",
+       "apihelp-query+contributors-description": "Zobrazit seznam registrovaných a počet anonymních přispěvatelů stránky.",
+       "apihelp-query+contributors-param-limit": "Kolik přispěvatelů má být zobrazeno.",
+       "apihelp-query+contributors-example-simple": "Zobrazit přispěvatele stránky <kbd>Main Page</kbd>.",
        "apihelp-query+deletedrevisions-param-limit": "Maximální počet revizí pro zobrazení v seznamu.",
+       "apihelp-query+deletedrevs-param-excludeuser": "Nezahrnovat revize od tohoto uživatele.",
+       "apihelp-query+deletedrevs-param-namespace": "Zahrnout pouze stránky z tohoto jmenného prostoru.",
+       "apihelp-query+deletedrevs-param-limit": "Maximální počet revizí k zobrazení.",
        "apihelp-query+embeddedin-example-simple": "Zobrazit stránky, které obahují <kbd>Template:Stub</kbd>.",
        "apihelp-query+filearchive-example-simple": "Zobrazit seznam všech smazaných souborů.",
        "apihelp-query+filerepoinfo-example-simple": "Získat informace o souborových repozitářích.",
+       "apihelp-query+iwbacklinks-param-prefix": "Prefix pro interwiki",
+       "apihelp-query+iwlinks-param-limit": "Počet interwiki odkazů k zobrazení.",
+       "apihelp-query+iwlinks-param-prefix": "Zobrazit pouze interwiki odkazy s tímto prefixem.",
+       "apihelp-query+iwlinks-param-title": "Interwiki odkaz, který se má hledat. Musí se použít spolu s <var>$1prefix</var>.",
+       "apihelp-query+langbacklinks-param-lang": "Jazyk pro jazykový odkaz.",
+       "apihelp-query+langbacklinks-example-simple": "Zobrazit stránky odkazující na [[:fr:Test]]",
+       "apihelp-query+langbacklinks-example-generator": "Získat informace o stránkách odkazujících na [[:fr:Test]].",
+       "apihelp-query+langlinks-description": "Zobrazit všechny mezijazykové odkazy z daných stránek.",
+       "apihelp-query+langlinks-param-lang": "Zobrazit pouze jazykové odkazy s tímto kódem jazyka.",
        "apihelp-query+linkshere-example-generator": "Získat informace o stránkách, které odkazují na [[Hlavní Stránka|Hlavní stránku]].",
+       "apihelp-query+recentchanges-param-excludeuser": "Nezobrazovat změny od tohoto uživatele.",
        "apihelp-query+recentchanges-example-simple": "Seznam posledních změn.",
+       "apihelp-query+redirects-param-limit": "Počet přesměrování, který má být zobrazen.",
+       "apihelp-query+redirects-example-simple": "Zobrazit seznam přesměrování na stránku [[Main Page]].",
+       "apihelp-query+search-example-simple": "Hledat <kbd>meaning</kbd>",
        "apihelp-query+tags-example-simple": "Získat seznam dostupných tagů.",
        "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-watch-example-watch": "Sledovat stránku <kbd>Hlavní stránka</kbd>.",
        "apihelp-watch-example-generator": "Zobrazit prvních několik stránek z hlavního jmenného prostoru.",
        "apihelp-format-example-generic": "Výsledek dotazu vypsat ve formátu $1.",
-       "apihelp-dbg-description": "Vypisuje data ve formátu funkce var_export() z PHP.",
-       "apihelp-dbgfm-description": "Vypisuje data ve formátu funkce var_export() z PHP (v čitelné HTML podobě).",
-       "apihelp-dump-description": "Vypisuje data ve formátu funkce var_dump() z PHP.",
-       "apihelp-dumpfm-description": "Vypisuje data ve formátu funkce var_dump() z PHP (v čitelné HTML podobě).",
+       "apihelp-dbg-description": "Vypisuje data ve formátu funkce <code>var_export()</code> z PHP.",
+       "apihelp-dbgfm-description": "Vypisuje data ve formátu funkce <code>var_export()</code> z PHP (v čitelné HTML podobě).",
+       "apihelp-dump-description": "Vypisuje data ve formátu funkce <code>var_dump()</code> z PHP.",
+       "apihelp-dumpfm-description": "Vypisuje data ve formátu funkce <code>var_dump()</code> z PHP (v čitelné HTML podobě).",
        "apihelp-json-description": "Vypisuje data ve formátu JSON.",
        "apihelp-json-param-callback": "Pokud je uvedeno, obalí výstup do zadaného volání funkce. Z bezpečnostních důvodů budou omezena všechna data specifická pro uživatele.",
-       "apihelp-json-param-utf8": "Pokud je uvedeno, bude většina ne-ASCII znaků (ale ne všechny) kódována v UTF-8 místo nahrazení hexadecimálními escape sekvencemi.",
+       "apihelp-json-param-utf8": "Pokud je uvedeno, bude většina ne-ASCII znaků (ale ne všechny) kódována v UTF-8 místo nahrazení hexadecimálními escape sekvencemi. Implicitní chování, pokud není <var>formatversion</var> nastaveno na <kbd>1</kbd>.",
        "apihelp-jsonfm-description": "Vypisuje data ve formátu JSON (v čitelné HTML podobě).",
        "apihelp-none-description": "Nevypisuje nic.",
        "apihelp-php-description": "Vypisuje data v serializačním formátu PHP.",
        "apihelp-phpfm-description": "Vypisuje data v serializačním formátu PHP (v čitelné HTML podobě).",
        "apihelp-rawfm-description": "Vypisuje data s ladicími prvky ve formátu JSON (v čitelné HTML podobě).",
-       "apihelp-txt-description": "Vypisuje data ve formátu funkce print_r() z PHP.",
-       "apihelp-txtfm-description": "Vypisuje data ve formátu funkce print_r() z PHP (v čitelné HTML podobě).",
+       "apihelp-txt-description": "Vypisuje data ve formátu funkce <code>print_r()</code> z PHP.",
+       "apihelp-txtfm-description": "Vypisuje data ve formátu funkce <code>print_r()</code> z PHP (v čitelné HTML podobě).",
        "apihelp-wddx-description": "Vypisuje data ve formátu WDDX.",
        "apihelp-wddxfm-description": "Vypisuje data ve formátu WDDX (v čitelné HTML podobě).",
        "apihelp-xml-description": "Vypisuje data ve formátu XML.",
-       "apihelp-xml-param-xslt": "Pokud je uvedeno, přidá stylopis &lt;xslt&gt;. Měla by jím být wikistránka v jmenném prostoru MediaWiki, jejíž název končí na „.xsl“.",
+       "apihelp-xml-param-xslt": "Pokud je uvedeno, přidá uvedenou stránku jako stylopis XSL. Hodnotou musí být název stránky ve jmenném prostoru MediaWiki, jejíž název končí na <code>.xsl</code>.",
        "apihelp-xml-param-includexmlnamespace": "Pokud je uvedeno, přidá jmenný prostor XML.",
        "apihelp-xmlfm-description": "Vypisuje data ve formátu XML (v čitelné HTML podobě).",
        "apihelp-yaml-description": "Vypisuje data ve formátu YAML.",
        "apihelp-yamlfm-description": "Vypisuje data ve formátu YAML (v čitelné HTML podobě).",
        "api-format-title": "Odpověď z MediaWiki API",
-       "api-format-prettyprint-header": "Díváte se na HTML reprezentaci formátu $1. HTML se hodí pro ladění, ale pro aplikační použití je nevhodné.\n\nPro změnu výstupního formátu uveďte parametr format. Abyste viděli ne-HTML reprezentaci formátu $1, nastavte format=$2.\n\nVíce informací najdete v [https://www.mediawiki.org/wiki/Special:MyLanguage/API:Main_page úplné dokumentaci] nebo [[Special:ApiHelp/main|nápovědě k API]].",
+       "api-format-prettyprint-header": "Toto je HTML reprezentace formátu $1. HTML se hodí pro ladění, ale pro aplikační použití je nevhodné.\n\nPro změnu výstupního formátu uveďte parametr <var>format</var>. Abyste viděli ne-HTML reprezentaci formátu $1, nastavte <kbd>format=$2</kbd>.\n\nVíce informací najdete v [[mw:Special:MyLanguage/API:Main page|úplné dokumentaci]] nebo v [[Special:ApiHelp/main|nápovědě k API]].",
+       "api-format-prettyprint-header-only-html": "Toto je HTML reprezentace určená pro ladění, která není vhodná pro použití v aplikacích.\n\nVíce informací najdete v [[mw:API|úplné dokumentaci]] nebo [[Special:ApiHelp/main|dokumentaci API]].",
        "api-help-title": "Nápověda k MediaWiki API",
        "api-help-lead": "Toto je automaticky generovaná dokumentační stránka k MediaWiki API.\n\nDokumentace a příklady: https://www.mediawiki.org/wiki/API",
        "api-help-main-header": "Hlavní modul",
        "api-help-flag-writerights": "Tento modul vyžaduje oprávnění k zápisu.",
        "api-help-flag-mustbeposted": "Tento modul přijímá pouze požadavky POST.",
        "api-help-flag-generator": "Tento modul lze využívat jako generátor.",
+       "api-help-source": "Zdroj: $1",
+       "api-help-license": "Licence: [[$1|$2]]",
+       "api-help-license-noname": "Licence: [[$1|Vizte odkaz]]",
+       "api-help-license-unknown": "Licence: <span class=\"apihelp-unknown\">neznámá</span>",
        "api-help-parameters": "{{PLURAL:$1|Parametr|Parametry}}:",
        "api-help-param-deprecated": "Zastaralý.",
        "api-help-param-required": "Tento parametr je povinný.",
-       "api-help-param-list": "{{PLURAL:$1|1=Jedna hodnota|2=Hodnoty (oddělené „{{!}}“)}}: $2",
+       "api-help-datatypes-header": "Datové typy",
+       "api-help-datatypes": "Některé typy parametrů v API potřebují bližší vysvětlení:\n;boolean\n:Booleovské parametry fungují jako zaškrtávací políčka v HTML: pokud je parametr uveden, bez ohledu na hodnotu, je považován za pravdivý. Pro nepravdivou hodnotu parametr zcela vynechte.\n;časová značka\n:Časové značky lze uvádět v několika formátech. Doporučuje se datum a čas podle ISO 8601. Všechny časy jsou v UTC a obsažené časové pásmo je ignorováno.\n:* Datum a čas podle ISO 8601, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd> (interpunkce a <kbd>Z</kbd> jsou nepovinné)\n:* Datum a čas podle ISO 8601 s (ignorovaným) zlomkem sekundy, <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> (pomlčky, dvojtečky a <kbd>Z</kbd> jsou nepovinné)\n:* Formát MediaWiki, <kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* Obecný číselný formát, <kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd> (nepovinné časové pásmo <kbd>GMT</kbd>, <kbd>+<var>##</var></kbd> nebo <kbd>-<var>##</var></kbd> se ignoruje)\n:* Formát EXIF, <kbd><var>2001</var>:<var>01</var>:<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Formát podle RFC 2822 (časové pásmo lze vynechat), <kbd><var>Mon</var>, <var>15</var> <var>Jan</var> <var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Formát podle RFC 850 (časové pásmo lze vynechat), <kbd><var>Monday</var>, <var>15</var>-<var>Jan</var>-<var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Formát podle céčkové funkce 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:* Sekundy od 1970-01-01T00:00:00Z jako celé číslo o 1–13 číslicích (s výjimkou <kbd>0</kbd>)\n:* Řetězec <kbd>now</kbd>",
+       "api-help-param-type-boolean": "Typ: boolean ([[Special:ApiHelp/main#main/datatypes|podrobnosti]])",
+       "api-help-param-list": "{{PLURAL:$1|1=Jedna hodnota|2=Hodnoty (oddělené <kbd>{{!}}</kbd>)}}: $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Musí být prázdné|Může být prázdné nebo $2}}",
        "api-help-param-limit": "Není dovoleno více než $1.",
        "api-help-param-limit2": "Není dovoleno více než $1 ($2 pro boty).",
        "api-help-param-integer-max": "{{PLURAL:$1|1=Hodnota nesmí|2=Hodnoty nesmějí}} být vyšší než $3.",
        "api-help-param-integer-minmax": "{{PLURAL:$1|1=Hodnota|2=Hodnoty}} musí ležet mezi $2 a $3.",
        "api-help-param-upload": "Musí se odeslat POST požadavkem jako načítaný soubor pomocí multipart/form-data.",
-       "api-help-param-multi-separate": "Hodnoty oddělujte pomocí „|“.",
+       "api-help-param-multi-separate": "Hodnoty oddělujte pomocí <kbd>|</kbd>.",
        "api-help-param-multi-max": "Maximální počet hodnot je {{PLURAL:$1|$1}} (pro boty {{PLURAL:$2|$2}}).",
        "api-help-param-default": "Implicitní hodnota: $1",
        "api-help-param-default-empty": "Implicitní hodnota: <span class=\"apihelp-empty\">(prázdné)</span>",
index 0ddbd2b..5d3d095 100644 (file)
                        "Se4598",
                        "Purodha",
                        "Andreasburmeister",
-                       "Anomie"
+                       "Anomie",
+                       "Duder"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page/de|Dokumentation]]\n* [[mw:API:FAQ/de|Häufig gestellte Fragen]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Mailingliste]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API-Ankündigungen]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Fehlerberichte und Anfragen]\n</div>\n<strong>Status:</strong> Alle auf dieser Seite gezeigten Funktionen sollten funktionieren, allerdings ist die API in aktiver Entwicklung und kann sich zu jeder Zeit ändern. Abonniere die [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ MediaWiki-API-Ankündigungs-Mailingliste], um über Aktualisierungen informiert zu werden.\n\n<strong>Fehlerhafte Anfragen:</strong> Wenn fehlerhafte Anfragen an die API gesendet werden, wird ein HTTP-Header mit dem Schlüssel „MediaWiki-API-Error“ gesendet. Der Wert des Headers und der Fehlercode werden auf den gleichen Wert gesetzt. Für weitere Informationen siehe [[mw:API:Errors_and_warnings|API: Fehler und Warnungen]].",
        "apihelp-main-param-action": "Auszuführende Aktion.",
        "apihelp-main-param-format": "Format der Ausgabe.",
        "apihelp-main-param-maxlag": "maxlag kann verwendet werden, wenn MediaWiki auf einem datenbankreplizierten Cluster installiert ist. Um weitere Replikationsrückstände zu verhindern, lässt dieser Parameter den Client warten, bis der Replikationsrückstand kleiner als der angegebene Wert (in Sekunden) ist. Bei einem größerem Rückstand wird der Fehlercode <samp>maxlag</samp> zurückgegeben mit einer Nachricht wie <samp>Waiting for $host: $lag seconds lagged</samp>.<br />Siehe [[mw:Manual:Maxlag_parameter|Handbuch: Maxlag parameter]] für weitere Informationen.",
-       "apihelp-main-param-smaxage": "Den <code>s-maxage</code>-Header auf diese Anzahl Sekunden festlegen. Fehler werden niemals gecacht.",
-       "apihelp-main-param-maxage": "Den <code>max-age</code>-Header auf diese Anzahl Sekunden festlegen. Fehler werden niemals gecacht.",
+       "apihelp-main-param-smaxage": "Den <code>s-maxage</code>-HTTP-Cache-Control-Header auf diese Anzahl Sekunden festlegen. Fehler werden niemals gecacht.",
+       "apihelp-main-param-maxage": "Den <code>max-age</code>-HTTP-Cache-Control-Header auf diese Anzahl Sekunden festlegen. Fehler werden niemals gecacht.",
        "apihelp-main-param-assert": "Sicherstellen, dass der Benutzer eingeloggt ist, wenn auf <kbd>user</kbd> gesetzt, oder Bot ist, wenn auf <kbd>bot</kbd> gesetzt.",
        "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-import-param-interwikipage": "Für Interwiki-Importe: zu importierende Seite.",
        "apihelp-import-param-fullhistory": "Für Interwiki-Importe: importiere die komplette Versionsgeschichte, nicht nur die aktuelle Version.",
        "apihelp-import-param-templates": "Für Interwiki-Importe: importiere auch alle eingebundenen Vorlagen.",
-       "apihelp-import-param-namespace": "In diesen Namensraum importieren. Überschreibt den Parameter <kbd>$1rootpage</kbd>.",
-       "apihelp-import-param-rootpage": "Als Unterseite dieser Seite importieren. Wird ignoriert, falls der Parameter <kbd>$1namespace</kbd> angegeben ist.",
-       "apihelp-import-example-import": "Importiere [[meta:Help:Parserfunctions]] mit der kompletten Versionsgeschichte in den Namensraum 100.",
+       "apihelp-import-param-namespace": "In diesen Namensraum importieren. Kann nicht zusammen mit <var>$1rootpage</var> verwendet werden.",
+       "apihelp-import-param-rootpage": "Als Unterseite dieser Seite importieren. Kann nicht zusammen mit <var>$1namespace</var> verwendet werden.",
+       "apihelp-import-example-import": "Importiere [[meta:Help:ParserFunctions]] mit der kompletten Versionsgeschichte in den Namensraum 100.",
        "apihelp-login-description": "Anmelden und Authentifizierungs-Cookies beziehen.\n\nFalls das Anmelden erfolgreich war, werden die benötigten Cookies im Header der HTTP-Antwort des Servers übermittelt. Bei fehlgeschlagenen Anmeldeversuchen können weitere Versuche gedrosselt werden, um automatische Passwortermittlungsattacken zu verhinden.",
        "apihelp-login-param-name": "Benutzername.",
        "apihelp-login-param-password": "Passwort.",
        "apihelp-query+alldeletedrevisions-param-user": "Nur Versionen von diesem Benutzer auflisten.",
        "apihelp-query+alldeletedrevisions-param-excludeuser": "Schließt Bearbeitungen des angegebenen Benutzers aus.",
        "apihelp-query+alldeletedrevisions-param-namespace": "Nur Seiten in diesem Namensraum auflisten.",
+       "apihelp-query+allfileusages-param-from": "Titel der Datei, bei der die Aufzählung beginnen soll.",
+       "apihelp-query+allfileusages-param-to": "Titel der Datei, bei der die Aufzählung enden soll.",
        "apihelp-query+allfileusages-param-limit": "Wie viele Gesamtobjekte zurückgegeben werden sollen.",
+       "apihelp-query+allfileusages-param-dir": "Aufzählungsrichtung.",
        "apihelp-query+allfileusages-example-unique": "Einheitliche Dateititel auflisten",
+       "apihelp-query+allfileusages-example-unique-generator": "Ruft alle Dateititel ab und markiert die fehlenden.",
        "apihelp-query+allfileusages-example-generator": "Seiten abrufen, die die Dateien enthalten",
        "apihelp-query+allimages-description": "Alle Bilder nacheinander auflisten.",
+       "apihelp-query+allimages-param-sort": "Eigenschaft, nach der sortiert werden soll.",
+       "apihelp-query+allimages-param-dir": "Aufzählungsrichtung.",
        "apihelp-query+allimages-param-sha1": "SHA1-Hash des Bildes. Überschreibt $1sha1base36.",
        "apihelp-query+allimages-param-sha1base36": "SHA1-Hash des Bildes (Basis 36; verwendet in MediaWiki).",
        "apihelp-query+allimages-param-limit": "Wie viele Gesamtbilder zurückgegeben werden sollen.",
index d4d239f..1279f59 100644 (file)
@@ -1,12 +1,81 @@
 {
        "@metadata": {
                "authors": [
-                       "Glavkos"
+                       "Glavkos",
+                       "Protnet"
                ]
        },
+       "apihelp-main-param-format": "Η μορφή των δεδομένων εξόδου.",
        "apihelp-block-description": "Φραγή χρήστη",
        "apihelp-block-param-user": "Όνομα χρήστη, διεύθυνση IP ή εύρος διευθύνσεων IP που θέλετε να επιβάλετε φραγή.",
        "apihelp-block-param-reason": "Λόγος φραγής.",
+       "apihelp-block-param-nocreate": "Αποτροπή δημιουργίας λογαριασμού.",
        "apihelp-createaccount-param-name": "Όνομα χρήστη.",
-       "apihelp-delete-description": "Διαγραφή σελίδας."
+       "apihelp-createaccount-param-email": "Διεύθυνση ηλεκτρονικού ταχυδρομείου χρήστη (προαιρετικό).",
+       "apihelp-createaccount-param-realname": "Πραγματικό όνομα χρήστη (προαιρετικό).",
+       "apihelp-createaccount-param-mailpassword": "Εάν οριστεί σε οποιαδήποτε τιμή, ένας τυχαίος κωδικός πρόσβασης θα αποσταλεί μέσω ηλεκτρονικού ταχυδρομείου στο χρήστη.",
+       "apihelp-delete-description": "Διαγραφή σελίδας.",
+       "apihelp-delete-example-simple": "Διαγραφή <kbd>Αρχικής Σελίδας</kbd>.",
+       "apihelp-edit-description": "Δημιουργία και επεξεργασία σελίδων.",
+       "apihelp-edit-param-sectiontitle": "Ο τίτλος νέας ενότητας.",
+       "apihelp-edit-param-text": "Περιεχόμενο σελίδας.",
+       "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-edit-example-edit": "Επεξεργασία κάποιας σελίδας.",
+       "apihelp-emailuser-description": "Αποστολή μηνύματος ηλεκτρονικού ταχυδρομείου σε χρήστη.",
+       "apihelp-emailuser-param-target": "Χρήστης στον οποίον να σταλεί το μήνυμα ηλεκτρονικού ταχυδρομείου.",
+       "apihelp-emailuser-param-subject": "Κεφαλίδα θέματος.",
+       "apihelp-emailuser-param-text": "Σώμα μηνύματος.",
+       "apihelp-emailuser-param-ccme": "Αποστολή αντιγράφου αυτού του μηνύματος σε εμένα.",
+       "apihelp-expandtemplates-description": "Επεκτείνει όλα τα πρότυπα στον κώδικα wiki.",
+       "apihelp-expandtemplates-param-title": "Τίτλος σελίδας.",
+       "apihelp-expandtemplates-param-text": "Κώδικας wiki προς μετατροπή.",
+       "apihelp-feedcontributions-param-feedformat": "Η μορφή της ροής.",
+       "apihelp-feedcontributions-param-deletedonly": "Εμφάνιση μόνο διαγεγραμμένων συνεισφορών.",
+       "apihelp-feedcontributions-param-toponly": "Εμφάνιση μόνο των επεξεργασιών που είναι οι πιο πρόσφατες αναθεωρήσεις.",
+       "apihelp-feedcontributions-param-newonly": "Εμφάνιση μόνο των επεξεργασιών που είναι δημιουργία σελίδας.",
+       "apihelp-feedcontributions-param-showsizediff": "Εμφάνιση της διαφοράς μεγέθους μεταξύ αναθεωρήσεων.",
+       "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-param-target": "Εμφάνιση μόνο των αλλαγών σε σελίδες που συνδέονται με αυτή τη σελίδα.",
+       "apihelp-feedrecentchanges-example-simple": "Εμφάνιση πρόσφατων αλλαγών.",
+       "apihelp-feedrecentchanges-example-30days": "Εμφάνιση πρόσφατων αλλαγών για 30 ημέρες.",
+       "apihelp-feedwatchlist-description": "Επιστρέφει μια ροή λίστας παρακολούθησης.",
+       "apihelp-feedwatchlist-param-feedformat": "Η μορφή της ροής.",
+       "apihelp-filerevert-param-comment": "Σχόλιο ανεβάσματος.",
+       "apihelp-help-example-recursive": "Όλη η βοήθεια σε μια σελίδα.",
+       "apihelp-imagerotate-description": "Περιστροφή μίας ή περισσοτέρων εικόνων.",
+       "apihelp-imagerotate-param-rotation": "Μοίρες με τις οποίες να περιστραφεί η εικόνα ωρολογιακά.",
+       "apihelp-import-param-summary": "Εισαγωγή σύνοψης.",
+       "apihelp-login-param-name": "Όνομα χρήστη.",
+       "apihelp-login-param-password": "Κωδικός πρόσβασης.",
+       "apihelp-login-param-domain": "Τομέας (προαιρετικό).",
+       "apihelp-login-example-login": "Σύνδεση.",
+       "apihelp-logout-description": "Αποσύνδεση και διαγραφή δεδομένων περιόδου λειτουργίας.",
+       "apihelp-logout-example-logout": "Αποσύνδεση του τρέχοντα χρήστη.",
+       "apihelp-move-description": "Μετακίνηση σελίδας.",
+       "apihelp-move-param-reason": "Λόγος μετονομασίας.",
+       "apihelp-move-param-movetalk": "Μετονομασία της σελίδας συζήτησης, εάν υπάρχει.",
+       "apihelp-move-param-movesubpages": "Μετονομασία υποσελίδων, εφόσον συντρέχει περίπτωση.",
+       "apihelp-move-param-noredirect": "Να μην δημιουργηθεί ανακατεύθυνση.",
+       "apihelp-move-param-ignorewarnings": "Να αγνοηθούν τυχόν προειδοποιήσεις.",
+       "apihelp-opensearch-param-search": "Συμβολοσειρά αναζήτησης.",
+       "apihelp-opensearch-param-limit": "Μέγιστος αριθμός αποτελεσμάτων που θα επιστραφούν.",
+       "apihelp-opensearch-param-namespace": "Ονοματοχώροι προς αναζήτηση.",
+       "apihelp-opensearch-param-format": "Η μορφή των δεδομένων εξόδου.",
+       "apihelp-options-example-reset": "Επαναφορά όλων των προτιμήσεων.",
+       "apihelp-paraminfo-param-helpformat": "Μορφή των συμβολοσειρών βοήθειας.",
+       "apihelp-patrol-example-revid": "Περιπολία αναθεώρησης.",
+       "apihelp-protect-example-protect": "Προστασία σελίδας."
 }
index 929ec7e..374521e 100644 (file)
@@ -6,7 +6,7 @@
                ]
        },
        "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 Mailing list]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API Announcements]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bugs & requests]\n</div>\n<strong>Status:</strong> All features shown on this page should be working, but the API is still in active development, and may change at any time. Subscribe to [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ the mediawiki-api-announce mailing list] for notice of updates.\n\n<strong>Erroneous requests:</strong> When erroneous requests are sent to the API, an HTTP header will be sent with the key \"MediaWiki-API-Error\" and then both the value of the header and the error code sent back will be set to the same value. For more information see [[mw:API:Errors_and_warnings|API: Errors and warnings]].",
-       "apihelp-main-param-maxage": "Set the <code>max-age</code> header to this many seconds. Errors are never cached.",
+       "apihelp-main-param-maxage": "Set the <code>max-age</code> HTTP cache control header to this many seconds. Errors are never cached.",
        "apihelp-main-param-assert": "Verify the user is logged in if set to <kbd>user</kbd>, or has the bot userright if <kbd>bot</kbd>.",
        "apihelp-block-param-user": "Username, IP address, or IP range to block.",
        "apihelp-block-param-allowusertalk": "Allow the user to edit their own talk page (depends on <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
index 1e88909..caad49f 100644 (file)
@@ -10,8 +10,8 @@
        "apihelp-main-param-action": "Which action to perform.",
        "apihelp-main-param-format": "The format of the output.",
        "apihelp-main-param-maxlag": "Maximum lag can be used when MediaWiki is installed on a database replicated cluster. To save actions causing any more site replication lag, this parameter can make the client wait until the replication lag is less than the specified value. In case of excessive lag, error code <samp>maxlag</samp> is returned with a message like <samp>Waiting for $host: $lag seconds lagged</samp>.<br />See [[mw:Manual:Maxlag_parameter|Manual: Maxlag parameter]] for more information.",
-       "apihelp-main-param-smaxage": "Set the <code>s-maxage</code> header to this many seconds. Errors are never cached.",
-       "apihelp-main-param-maxage": "Set the <code>max-age</code> header to this many seconds. Errors are never cached.",
+       "apihelp-main-param-smaxage": "Set the <code>s-maxage</code> HTTP cache control header to this many seconds. Errors are never cached.",
+       "apihelp-main-param-maxage": "Set the <code>max-age</code> HTTP cache control header to this many seconds. Errors are never cached.",
        "apihelp-main-param-assert": "Verify the user is logged in if set to <kbd>user</kbd>, or has the bot userright if <kbd>bot</kbd>.",
        "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-expandtemplates-param-title": "Title of page.",
        "apihelp-expandtemplates-param-text": "Wikitext to convert.",
        "apihelp-expandtemplates-param-revid": "Revision ID, for <nowiki>{{REVISIONID}}</nowiki> and similar variables.",
-       "apihelp-expandtemplates-param-prop": "Which pieces of information to get:\n;wikitext:The expanded wikitext.\n;categories:Any categories present in the input that are not represented in the wikitext output.\n;properties:Page properties defined by expanded magic words in the wikitext.\n;volatile:Whether the output is volatile and should not be reused elsewhere within the page.\n;ttl:The maximum time after which caches of the result should be invalidated.\n;parsetree:The XML parse tree of the input.\nNote that if no values are selected, the result will contain the wikitext, but the output will be in a deprecated format.",
+       "apihelp-expandtemplates-param-prop": "Which pieces of information to get.\n\nNote that if no values are selected, the result will contain the wikitext, but the output will be in a deprecated format.",
+       "apihelp-expandtemplates-paramvalue-prop-wikitext": "The expanded wikitext.",
+       "apihelp-expandtemplates-paramvalue-prop-categories": "Any categories present in the input that are not represented in the wikitext output.",
+       "apihelp-expandtemplates-paramvalue-prop-properties": "Page properties defined by expanded magic words in the wikitext.",
+       "apihelp-expandtemplates-paramvalue-prop-volatile": "Whether the output is volatile and should not be reused elsewhere within the page.",
+       "apihelp-expandtemplates-paramvalue-prop-ttl": "The maximum time after which caches of the result should be invalidated.",
+       "apihelp-expandtemplates-paramvalue-prop-modules": "Any ResourceLoader modules that parser functions have requested be added to the output. Either <kbd>jsconfigvars</kbd> or <kbd>encodedjsconfigvars</kbd> must be requested jointly with <kbd>modules</kbd>.",
+       "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "Gives the JavaScript configuration variables specific to the page.",
+       "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "Gives the JavaScript configuration variables specific to the page as a JSON string.",
+       "apihelp-expandtemplates-paramvalue-prop-parsetree": "The XML parse tree of the input.",
        "apihelp-expandtemplates-param-includecomments": "Whether to include HTML comments in the output.",
        "apihelp-expandtemplates-param-generatexml": "Generate XML parse tree (replaced by $1prop=parsetree).",
        "apihelp-expandtemplates-example-simple": "Expand the wikitext <kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd>.",
        "apihelp-import-param-interwikipage": "For interwiki imports: page to import.",
        "apihelp-import-param-fullhistory": "For interwiki imports: import the full history, not just the current version.",
        "apihelp-import-param-templates": "For interwiki imports: import all included templates as well.",
-       "apihelp-import-param-namespace": "Import to this namespace. Overrides the <kbd>$1rootpage</kbd> parameter.",
-       "apihelp-import-param-rootpage": "Import as subpage of this page. Ignored if the <kbd>$1namespace</kbd> parameter is provided.",
-       "apihelp-import-example-import": "Import [[meta:Help:Parserfunctions]] to namespace 100 with full history.",
+       "apihelp-import-param-namespace": "Import to this namespace. Cannot be used together with <var>$1rootpage</var>.",
+       "apihelp-import-param-rootpage": "Import as subpage of this page. Cannot be used together with <var>$1namespace</var>.",
+       "apihelp-import-example-import": "Import [[meta:Help:ParserFunctions]] to namespace 100 with full history.",
 
        "apihelp-login-description": "Log in and get authentication cookies.\n\nIn the event of a successful log-in, the needed cookies will be included in the HTTP response headers. In the event of a failed log-in, further attempts may be throttled to limit automated password guessing attacks.",
        "apihelp-login-param-name": "User name.",
        "apihelp-opensearch-param-suggest": "Do nothing if <var>[[mw:Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var> is false.",
        "apihelp-opensearch-param-redirects": "How to handle redirects:\n;return:Return the redirect itself.\n;resolve:Return the target page. May return fewer than $1limit results.\nFor historical reasons, the default is \"return\" for $1format=json and \"resolve\" for other formats.",
        "apihelp-opensearch-param-format": "The format of the output.",
+       "apihelp-opensearch-param-warningsaserror": "If warnings are raised with <kbd>format=json</kbd>, return an API error instead of ignoring them.",
        "apihelp-opensearch-example-te": "Find pages beginning with <kbd>Te</kbd>.",
 
        "apihelp-options-description": "Change preferences of the current user.\n\nOnly options which are registered in core or in one of installed extensions, or options with keys prefixed with \"userjs-\" (intended to be used by user scripts), can be set.",
        "apihelp-parse-param-pageid": "Parse the content of this page. Overrides <var>$1page</var>.",
        "apihelp-parse-param-redirects": "If <var>$1page</var> or <var>$1pageid</var> is set to a redirect, resolve it.",
        "apihelp-parse-param-oldid": "Parse the content of this revision. Overrides <var>$1page</var> and <var>$1pageid</var>.",
-       "apihelp-parse-param-prop": "Which pieces of information to get:\n;text:Gives the parsed text of the wikitext.\n;langlinks:Gives the language links in the parsed wikitext.\n;categories:Gives the categories in the parsed wikitext.\n;categorieshtml:Gives the HTML version of the categories.\n;links:Gives the internal links in the parsed wikitext.\n;templates:Gives the templates in the parsed wikitext.\n;images:Gives the images in the parsed wikitext.\n;externallinks:Gives the external links in the parsed wikitext.\n;sections:Gives the sections in the parsed wikitext.\n;revid:Adds the revision ID of the parsed page.\n;displaytitle:Adds the title of the parsed wikitext.\n;headitems:Gives items to put in the &lt;head&gt; of the page.\n;headhtml:Gives parsed &lt;head&gt; of the page.\n;modules:Gives the ResourceLoader modules used on the page.\n;indicators:Gives the HTML of page status indicators used on the page.\n;iwlinks:Gives interwiki links in the parsed wikitext.\n;wikitext:Gives the original wikitext that was parsed.\n;properties:Gives various properties defined in the parsed wikitext.\n;limitreportdata:Gives the limit report in a structured way. Gives no data, when $1disablepp is set.\n;limitreporthtml:Gives the HTML version of the limit report. Gives no data, when $1disablepp is set.",
+       "apihelp-parse-param-prop": "Which pieces of information to get:",
+       "apihelp-parse-paramvalue-prop-text": "Gives the parsed text of the wikitext.",
+       "apihelp-parse-paramvalue-prop-langlinks": "Gives the language links in the parsed wikitext.",
+       "apihelp-parse-paramvalue-prop-categories": "Gives the categories in the parsed wikitext.",
+       "apihelp-parse-paramvalue-prop-categorieshtml": "Gives the HTML version of the categories.",
+       "apihelp-parse-paramvalue-prop-links": "Gives the internal links in the parsed wikitext.",
+       "apihelp-parse-paramvalue-prop-templates": "Gives the templates in the parsed wikitext.",
+       "apihelp-parse-paramvalue-prop-images": "Gives the images in the parsed wikitext.",
+       "apihelp-parse-paramvalue-prop-externallinks": "Gives the external links in the parsed wikitext.",
+       "apihelp-parse-paramvalue-prop-sections": "Gives the sections in the parsed wikitext.",
+       "apihelp-parse-paramvalue-prop-revid": "Adds the revision ID of the parsed page.",
+       "apihelp-parse-paramvalue-prop-displaytitle": "Adds the title of the parsed wikitext.",
+       "apihelp-parse-paramvalue-prop-headitems": "Gives items to put in the <code>&lt;head&gt;</code> of the page.",
+       "apihelp-parse-paramvalue-prop-headhtml": "Gives parsed <code>&lt;head&gt;</code> of the page.",
+       "apihelp-parse-paramvalue-prop-modules": "Gives the ResourceLoader modules used on the page. Either <kbd>jsconfigvars</kbd> or <kbd>encodedjsconfigvars</kbd> must be requested jointly with <kbd>modules</kbd>.",
+       "apihelp-parse-paramvalue-prop-jsconfigvars": "Gives the JavaScript configuration variables specific to the page.",
+       "apihelp-parse-paramvalue-prop-encodedjsconfigvars": "Gives the JavaScript configuration variables specific to the page as a JSON string.",
+       "apihelp-parse-paramvalue-prop-indicators": "Gives the HTML of page status indicators used on the page.",
+       "apihelp-parse-paramvalue-prop-iwlinks": "Gives interwiki links in the parsed wikitext.",
+       "apihelp-parse-paramvalue-prop-wikitext": "Gives the original wikitext that was parsed.",
+       "apihelp-parse-paramvalue-prop-properties": "Gives various properties defined in the parsed wikitext.",
+       "apihelp-parse-paramvalue-prop-limitreportdata": "Gives the limit report in a structured way. Gives no data, when <var>$1disablepp</var> is set.",
+       "apihelp-parse-paramvalue-prop-limitreporthtml": "Gives the HTML version of the limit report. Gives no data, when <var>$1disablepp</var> is set.",
        "apihelp-parse-param-pst": "Do a pre-save transform on the input before parsing it. Only valid when used with text.",
        "apihelp-parse-param-onlypst": "Do a pre-save transform (PST) on the input, but don't parse it. Returns the same wikitext, after a PST has been applied. Only valid when used with <var>$1text</var>.",
        "apihelp-parse-param-effectivelanglinks": "Includes language links supplied by extensions (for use with <kbd>$1prop=langlinks</kbd>).",
        "apihelp-query+imageinfo-description": "Returns file information and upload history.",
        "apihelp-query+imageinfo-param-prop": "Which file information to get:",
        "apihelp-query+imageinfo-paramvalue-prop-timestamp": "Adds timestamp for the uploaded version.",
-       "apihelp-query+imageinfo-paramvalue-prop-user":"Adds the user who uploaded each file version.",
-       "apihelp-query+imageinfo-paramvalue-prop-userid":"Add the user ID that uploaded each file version.",
-       "apihelp-query+imageinfo-paramvalue-prop-comment":"Comment on the version.",
-       "apihelp-query+imageinfo-paramvalue-prop-parsedcomment":"Parse the comment on the version.",
-       "apihelp-query+imageinfo-paramvalue-prop-canonicaltitle":"Adds the canonical title of the file.",
-       "apihelp-query+imageinfo-paramvalue-prop-url":"Gives URL to the file and the description page.",
-       "apihelp-query+imageinfo-paramvalue-prop-size":"Adds the size of the file in bytes and the height, width and page count (if applicable).",
-       "apihelp-query+imageinfo-paramvalue-prop-dimensions":"Alias for size.",
-       "apihelp-query+imageinfo-paramvalue-prop-sha1":"Adds SHA-1 hash for the file.",
-       "apihelp-query+imageinfo-paramvalue-prop-mime":"Adds MIME type of the file.",
-       "apihelp-query+imageinfo-paramvalue-prop-thumbmime":"Adds MIME type of the image thumbnail (requires url and param $1urlwidth).",
-       "apihelp-query+imageinfo-paramvalue-prop-mediatype":"Adds the media type of the file.",
-       "apihelp-query+imageinfo-paramvalue-prop-metadata":"Lists Exif metadata for the version of the file.",
-       "apihelp-query+imageinfo-paramvalue-prop-commonmetadata":"Lists file format generic metadata for the version of the file.",
-       "apihelp-query+imageinfo-paramvalue-prop-extmetadata":"Lists formatted metadata combined from multiple sources. Results are HTML formatted.",
-       "apihelp-query+imageinfo-paramvalue-prop-archivename":"Adds the filename of the archive version for non-latest versions.",
-       "apihelp-query+imageinfo-paramvalue-prop-bitdepth":"Adds the bit depth of the version.",
-       "apihelp-query+imageinfo-paramvalue-prop-uploadwarning":"Used by the Special:Upload page to get information about an existing file. Not intended for use outside MediaWiki core.",
+       "apihelp-query+imageinfo-paramvalue-prop-user": "Adds the user who uploaded each file version.",
+       "apihelp-query+imageinfo-paramvalue-prop-userid": "Add the user ID that uploaded each file version.",
+       "apihelp-query+imageinfo-paramvalue-prop-comment": "Comment on the version.",
+       "apihelp-query+imageinfo-paramvalue-prop-parsedcomment": "Parse the comment on the version.",
+       "apihelp-query+imageinfo-paramvalue-prop-canonicaltitle": "Adds the canonical title of the file.",
+       "apihelp-query+imageinfo-paramvalue-prop-url": "Gives URL to the file and the description page.",
+       "apihelp-query+imageinfo-paramvalue-prop-size": "Adds the size of the file in bytes and the height, width and page count (if applicable).",
+       "apihelp-query+imageinfo-paramvalue-prop-dimensions": "Alias for size.",
+       "apihelp-query+imageinfo-paramvalue-prop-sha1": "Adds SHA-1 hash for the file.",
+       "apihelp-query+imageinfo-paramvalue-prop-mime": "Adds MIME type of the file.",
+       "apihelp-query+imageinfo-paramvalue-prop-thumbmime": "Adds MIME type of the image thumbnail (requires url and param $1urlwidth).",
+       "apihelp-query+imageinfo-paramvalue-prop-mediatype": "Adds the media type of the file.",
+       "apihelp-query+imageinfo-paramvalue-prop-metadata": "Lists Exif metadata for the version of the file.",
+       "apihelp-query+imageinfo-paramvalue-prop-commonmetadata": "Lists file format generic metadata for the version of the file.",
+       "apihelp-query+imageinfo-paramvalue-prop-extmetadata": "Lists formatted metadata combined from multiple sources. Results are HTML formatted.",
+       "apihelp-query+imageinfo-paramvalue-prop-archivename": "Adds the filename of the archive version for non-latest versions.",
+       "apihelp-query+imageinfo-paramvalue-prop-bitdepth": "Adds the bit depth of the version.",
+       "apihelp-query+imageinfo-paramvalue-prop-uploadwarning": "Used by the Special:Upload page to get information about an existing file. Not intended for use outside MediaWiki core.",
        "apihelp-query+imageinfo-param-limit": "How many file revisions to return per file.",
        "apihelp-query+imageinfo-param-start": "Timestamp to start listing from.",
        "apihelp-query+imageinfo-param-end": "Timestamp to stop listing at.",
        "apihelp-query+revisions+base-param-contentformat": "Serialization format used for <var>$1difftotext</var> and expected for output of content.",
 
        "apihelp-query+search-description": "Perform a full text search.",
-       "apihelp-query+search-param-search": "Search for all page titles (or content) that have this value.",
+       "apihelp-query+search-param-search": "Search for page titles or content matching this value. You can use the search string to invoke special search features, depending on what the wiki's search backend implements.",
        "apihelp-query+search-param-namespace": "Search only within 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-backend": "Which search backend to use, if not the default.",
        "apihelp-query+search-example-simple": "Search for <kbd>meaning</kbd>.",
        "apihelp-query+search-example-text": "Search texts for <kbd>meaning</kbd>.",
-       "apihelp-query+search-example-generator": "Ger page info about the pages returned for a search for <kbd>meaning</kbd>.",
+       "apihelp-query+search-example-generator": "Get page info about the pages returned for a search for <kbd>meaning</kbd>.",
 
        "apihelp-query+siteinfo-description": "Return general information about the site.",
        "apihelp-query+siteinfo-param-prop": "Which information to get:\n;general:Overall system information.\n;namespaces:List of registered namespaces and their canonical names.\n;namespacealiases:List of registered namespace aliases.\n;specialpagealiases:List of special page aliases.\n;magicwords:List of magic words and their aliases.\n;statistics:Returns site statistics.\n;interwikimap:Returns interwiki map (optionally filtered, optionally localised by using <var>$1inlanguagecode</var>).\n;dbrepllag:Returns database server with the highest replication lag.\n;usergroups:Returns user groups and the associated permissions.\n;libraries:Returns libraries installed on the wiki.\n;extensions:Returns extensions installed on the wiki.\n;fileextensions:Returns list of file extensions allowed to be uploaded.\n;rightsinfo:Returns wiki rights (license) information if available.\n;restrictions:Returns information on available restriction (protection) types.\n;languages:Returns a list of languages MediaWiki supports (optionally localised by using <var>$1inlanguagecode</var>).\n;skins:Returns a list of all enabled skins (optionally localised by using <var>$1inlanguagecode</var>, otherwise in the content language).\n;extensiontags:Returns a list of parser extension tags.\n;functionhooks:Returns a list of parser function hooks.\n;showhooks:Returns a list of all subscribed hooks (contents of <var>[[mw:Manual:$wgHooks|$wgHooks]]</var>).\n;variables:Returns a list of variable IDs.\n;protocols:Returns a list of protocols that are allowed in external links.\n;defaultoptions:Returns the default values for user preferences.",
        "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-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-query+watchlistraw-example-generator": "Fetch page info for pages on the current user's watchlist.",
 
 
        "api-format-title": "MediaWiki API result",
        "api-format-prettyprint-header": "This is the HTML representation of the $1 format. HTML is good for debugging, but is unsuitable for application use.\n\nSpecify the <var>format</var> parameter to change the output format. To see the non-HTML representation of the $1 format, set <kbd>format=$2</kbd>.\n\nSee the [[mw:API|complete documentation]], or the [[Special:ApiHelp/main|API help]] for more information.",
+       "api-format-prettyprint-header-only-html": "This is an HTML representation intended for debugging, and is unsuitable for application use.\n\nSee the [[mw:API|complete documentation]], or the [[Special:ApiHelp/main|API help]] for more information.",
 
        "api-orm-param-props": "Fields to query.",
        "api-orm-param-limit": "Max amount of rows to return.",
        "api-help-param-deprecated": "Deprecated.",
        "api-help-param-required": "This parameter is required.",
        "api-help-datatypes-header": "Data types",
-       "api-help-datatypes": "Some API parameter types need further explanation:\n;boolean\n:Boolean parameters work like HTML checkboxes: if the parameter is specified, regardless of value, it is considered true. For a false value, omit the parameter entirely.\n;timestamp\n:Timestamps may be specified in several formats. ISO 8601 date and time is recommended. All times are in UTC, any included timezone is ignored.\n:* ISO 8601 date and time, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd> (punctuation and <kbd>Z</kbd> are optional)\n:* ISO 8601 date and time with (ignored) fractional seconds, <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> (dashes, colons, and <kbd>Z</kbd> are optional)\n:* MediaWiki format, <kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* Generic numeric format, <kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd> (optional timezone of <kbd>GMT</kbd>, <kbd>+<var>##</var></kbd>, or <kbd>-<var>##</var></kbd> is ignored)\n:* EXIF format, <kbd><var>2001</var>:<var>01</var>:<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:*RFC 2822 format (timezone may be omitted), <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 format (timezone may be omitted), <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 format, <kbd><var>Mon</var> <var>Jan</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>2001</var></kbd>\n:* Seconds since 1970-01-01T00:00:00Z as a 1 to 13 digit integer",
+       "api-help-datatypes": "Some parameter types in API requests need further explanation:\n;boolean\n:Boolean parameters work like HTML checkboxes: if the parameter is specified, regardless of value, it is considered true. For a false value, omit the parameter entirely.\n;timestamp\n:Timestamps may be specified in several formats. ISO 8601 date and time is recommended. All times are in UTC, any included timezone is ignored.\n:* ISO 8601 date and time, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd> (punctuation and <kbd>Z</kbd> are optional)\n:* ISO 8601 date and time with (ignored) fractional seconds, <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> (dashes, colons, and <kbd>Z</kbd> are optional)\n:* MediaWiki format, <kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* Generic numeric format, <kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd> (optional timezone of <kbd>GMT</kbd>, <kbd>+<var>##</var></kbd>, or <kbd>-<var>##</var></kbd> is ignored)\n:* EXIF format, <kbd><var>2001</var>:<var>01</var>:<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:*RFC 2822 format (timezone may be omitted), <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 format (timezone may be omitted), <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 format, <kbd><var>Mon</var> <var>Jan</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>2001</var></kbd>\n:* Seconds since 1970-01-01T00:00:00Z as a 1 to 13 digit integer (excluding <kbd>0</kbd>)\n:* The string <kbd>now</kbd>",
        "api-help-param-type-limit": "Type: integer or <kbd>max</kbd>",
        "api-help-param-type-integer": "Type: {{PLURAL:$1|1=integer|2=list of integers}}",
        "api-help-param-type-boolean": "Type: boolean ([[Special:ApiHelp/main#main/datatypes|details]])",
+       "api-help-param-type-password": "",
        "api-help-param-type-timestamp": "Type: {{PLURAL:$1|1=timestamp|2=list of timestamps}} ([[Special:ApiHelp/main#main/datatypes|allowed formats]])",
        "api-help-param-type-user": "Type: {{PLURAL:$1|1=user name|2=list of user names}}",
        "api-help-param-list": "{{PLURAL:$1|1=One value|2=Values (separate with <kbd>{{!}}</kbd>)}}: $2",
index 5705c48..97c38a6 100644 (file)
@@ -7,37 +7,77 @@
                        "Fitoschido",
                        "JasterTDC",
                        "Edslov",
-                       "Carlos Cristia"
+                       "Carlos Cristia",
+                       "Ryo567",
+                       "Csbotero"
                ]
        },
+       "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]].",
        "apihelp-main-param-action": "Qué acción se realizará.",
        "apihelp-main-param-format": "El formato de la salida.",
+       "apihelp-main-param-smaxage": "Establece el encabezado <code>s-maxage</code> durante estos segundos. Los errores nunca se almacenan en caché.",
+       "apihelp-main-param-maxage": "Establece el encabezado <code>max-age</code> durante estos segundos. Los errores nunca se almacenan en caché.",
+       "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-block-description": "Bloquear usuario",
        "apihelp-block-param-user": "El nombre de usuario, dirección IP o intervalo de IP que quieres bloquear.",
+       "apihelp-block-param-expiry": "Fecha de expiración. Puede ser relativa (por ejemplo, <kbd>5 meses</kbd> o <kbd>2 semanas</kbd>) o absoluta (por ejemplo, <kbd>2014-09-18T12:34:56Z</kbd>). Si se establece en <kbd>infinito</kbd>, <kbd>indefinido</kbd>, o <kbd>nunca</kbd>, el bloqueo será permanente.",
        "apihelp-block-param-reason": "Razón para el bloqueo.",
        "apihelp-block-param-anononly": "Bloquear solo usuarios anónimos (es decir, desactivar ediciones anónimas de esta dirección IP).",
        "apihelp-block-param-nocreate": "Prevenir la creación de cuentas.",
+       "apihelp-block-param-autoblock": "Bloquear automáticamente la última dirección IP y todas las direcciones IP que traten de iniciar sesión posteriormente.",
+       "apihelp-block-param-noemail": "Evitar que el usuario envíe correos a través de la wiki (es necesario el derecho <code>blockemail</code>).",
+       "apihelp-block-param-hidename": "Ocultar el nombre de usuario del registro de bloqueo (es necesario el derecho <coɗe>hideuser</code>).",
+       "apihelp-block-param-allowusertalk": "Permitir que el usuario edite su propia página de discusión (depende de <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "Si la cuenta ya está bloqueada, sobrescribir el bloqueo existente.",
        "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>Primer ataque</kbd>.",
+       "apihelp-block-example-user-complex": "Bloquear a usuario <kbd>vándalo</kbd> indefinidamente por el motivo <kbd>Vandalismo</kbd> y evitar que se cree nuevas cuentas o envíe correos.",
+       "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.",
+       "apihelp-checktoken-param-maxtokenage": "Duración máxima de la ficha, en segundos.",
+       "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-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.",
        "apihelp-compare-param-fromrev": "Primera revisión para comparar.",
        "apihelp-compare-param-totitle": "Segundo título para comparar.",
        "apihelp-compare-param-toid": "Segunda página de IDENTIFICACIÓN para comparar.",
        "apihelp-compare-param-torev": "Segunda revisión para comparar.",
+       "apihelp-compare-example-1": "Crear una diferencia entre las revisiones 1 y 2.",
        "apihelp-createaccount-description": "Crear una nueva cuenta de usuario.",
        "apihelp-createaccount-param-name": "Nombre de usuario.",
+       "apihelp-createaccount-param-password": "Contraseña (ignorada si está establecido <var>$1mailpassword</var>).",
+       "apihelp-createaccount-param-domain": "Dominio de autenticación externa (opcional).",
+       "apihelp-createaccount-param-token": "La clave de creación de cuenta se obtiene en la primera solicitud.",
        "apihelp-createaccount-param-email": "Dirección de correo electrónico del usuario (opcional).",
        "apihelp-createaccount-param-realname": "Nombre verdadero del usuario (opcional).",
+       "apihelp-createaccount-param-mailpassword": "Si está puesto cualquier valor se enviará una contraseña aleatoria al usuario.",
+       "apihelp-createaccount-param-reason": "Motivo opcional por el que crear una cuenta puesta en los registros.",
+       "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-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>.",
+       "apihelp-delete-param-reason": "Motivo de la eliminación. Si no se especifica, se generará uno automáticamente.",
        "apihelp-delete-param-watch": "Añadir esta página a la lista de seguimiento del usuario actual.",
        "apihelp-delete-param-unwatch": "Quitar la página de la lista de seguimiento del usuario actual.",
        "apihelp-delete-example-simple": "Borrar la <kbd>Página principal</kbd>",
+       "apihelp-delete-example-reason": "Eliminar <kbd>Página principal</kbd> por el motivo: <kbd>Preparando para moverla</kbd>.",
        "apihelp-disabled-description": "Se desactivó este módulo.",
        "apihelp-edit-description": "Crear y editar páginas.",
+       "apihelp-edit-param-title": "Título de la página a editar. No se puede utilizar junto a <var>$1pageid</var>.",
+       "apihelp-edit-param-pageid": "ID de la página a editar. No se puede utilizar junto a <var>$1title</var>.",
+       "apihelp-edit-param-section": "Número de la sección. <kbd>0</kbd> para una sección superior, <kbd>nuevo</kbd> para una nueva sección.",
        "apihelp-edit-param-sectiontitle": "El título de una sección nueva.",
        "apihelp-edit-param-text": "Contenido de la página.",
+       "apihelp-edit-param-summary": "Editar resumen. Además de la sección del título cuando $1section=new y $1sectiontitle no están establecidos.",
+       "apihelp-edit-param-tags": "Cambia las etiquetas para aplicarlas a la revisión.",
        "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-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-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-edit-param-undoafter": "Deshacer todas las revisiones desde $1undo a esta. Si no está establecido solo se deshace una revisión.",
+       "apihelp-edit-param-redirect": "Resolver redirecciones automáticamente.",
+       "apihelp-edit-param-contentformat": "Formato de serialización de contenido, utilizado para introducir texto.",
+       "apihelp-edit-param-contentmodel": "Modelo de contenido del nuevo contenido.",
+       "apihelp-edit-param-token": "La clave debe enviarse siempre como el último parámetro o, al menos, después del parámetro $1text.",
        "apihelp-edit-example-edit": "Editar una página",
        "apihelp-edit-example-prepend": "Anteponer <kbd>_&#95;NOTOC_&#95;</kbd> a una página.",
        "apihelp-edit-example-undo": "Deshacer intervalo de revisiones 13579-13585 con resumen automático",
        "apihelp-emailuser-param-subject": "Encabezamiento de asunto.",
        "apihelp-emailuser-param-text": "Cuerpo del mensaje.",
        "apihelp-emailuser-param-ccme": "Enviarme una copia de este mensaje.",
+       "apihelp-emailuser-example-email": "Enviar un correo al usuario <kbd>WikiSysop</kbd> con el texto <kbd>Contenido</kbd>.",
+       "apihelp-expandtemplates-description": "Expande todas las plantillas en wikitexto.",
        "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-paramvalue-prop-wikitext": "El wikitexto expandido.",
+       "apihelp-expandtemplates-paramvalue-prop-properties": "Propiedades de página definidas por palabras mágicas en el wikitexto.",
+       "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-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-feedformat": "El formato del canal.",
+       "apihelp-feedcontributions-param-user": "De qué usuarios recibir contribuciones.",
+       "apihelp-feedcontributions-param-namespace": "Espacio de nombre para filtrar las contribuciones.",
        "apihelp-feedcontributions-param-year": "A partir del año (y anteriores).",
        "apihelp-feedcontributions-param-month": "A partir del mes (y anteriores).",
        "apihelp-feedcontributions-param-tagfilter": "Filtrar las contribuciones que tienen estas etiquetas.",
        "apihelp-feedcontributions-example-simple": "Devolver las contribuciones del usuario <kbd>Ejemplo</kbd>.",
        "apihelp-feedrecentchanges-description": "Devuelve un canal de cambios recientes.",
        "apihelp-feedrecentchanges-param-feedformat": "El formato del canal.",
+       "apihelp-feedrecentchanges-param-namespace": "Espacio de nombres al cual limitar los resultados.",
        "apihelp-feedrecentchanges-param-invert": "Todos los espacios de nombres menos el que está seleccionado.",
        "apihelp-feedrecentchanges-param-associated": "Incluir el espacio de nombres asociado (discusión o principal).",
        "apihelp-feedrecentchanges-param-days": "Días a los que limitar los resultados.",
        "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-feedwatchlist-param-feedformat": "El formato del canal.",
+       "apihelp-feedwatchlist-param-hours": "Listar las páginas modificadas desde estas horas hasta ahora.",
        "apihelp-feedwatchlist-param-linktosections": "Enlazar directamente a las secciones cambiadas de ser posible.",
        "apihelp-feedwatchlist-example-default": "Mostrar el canal de la lista de seguimiento.",
        "apihelp-feedwatchlist-example-all6hrs": "Mostrar todos los cambios en páginas vigiladas en las últimas 6 horas.",
        "apihelp-filerevert-description": "Revertir el archivo a una versión anterior.",
        "apihelp-filerevert-param-filename": "Nombre de archivo final, sin el prefijo Archivo:",
        "apihelp-filerevert-param-comment": "Comentario de carga.",
+       "apihelp-filerevert-param-archivename": "Nombre del archivo de la revisión para deshacerla.",
+       "apihelp-filerevert-example-revert": "Devolver <kbd>Wiki.png</kbd> a la versión del <kbd>5 de marzo de 2011T15:27:40Z</kbd>.",
        "apihelp-help-description": "Mostrar la ayuda para los módulos especificados.",
+       "apihelp-help-param-modules": "Módulos para mostrar ayuda (valores de los parámetros <var>action</var> y <var>format</var> o <kbd>main</kbd>). Se puede especificar submódulos <kbd>+</kbd>.",
+       "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 la ayuda de salida.",
+       "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-recursive": "Toda la ayuda en una página",
        "apihelp-help-example-help": "Ayuda del módulo de ayuda en sí",
+       "apihelp-help-example-query": "Ayuda para dos submódulos de consulta.",
        "apihelp-imagerotate-description": "Girar una o más imágenes.",
        "apihelp-imagerotate-param-rotation": "Grados que rotar una imagen en sentido horario.",
        "apihelp-imagerotate-example-simple": "Rotar <kbd>File:Ejemplo.png</kbd> <kbd>90</kbd> grados.",
        "apihelp-imagerotate-example-generator": "Rotar todas las imágenes en la  <kbd>Categoría:Girar</kbd> <kbd>180</kbd> grados.",
        "apihelp-import-param-summary": "Resumen de importación.",
        "apihelp-import-param-xml": "Se cargó el archivo XML.",
-       "apihelp-import-param-rootpage": "Importar como subpágina de esta página. Se ignora si se proporciona el parámetro <kbd>$1namespace</kbd>.",
+       "apihelp-import-param-interwikisource": "Para importaciones interwiki: wiki desde la que importar.",
+       "apihelp-import-param-interwikipage": "Para importaciones interwiki: página a importar.",
+       "apihelp-import-param-fullhistory": "Para importaciones interwiki: importar todo el historial, no solo la versión actual.",
+       "apihelp-import-param-templates": "Para importaciones interwiki: importar también todas las plantillas incluidas.",
+       "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-login-param-name": "Nombre de usuario.",
        "apihelp-login-param-password": "Contraseña.",
        "apihelp-login-param-domain": "Dominio (opcional).",
+       "apihelp-login-param-token": "La clave de inicio de sesión se obtiene en la primera solicitud.",
+       "apihelp-login-example-gettoken": "Recuperar clave de inicio de sesión.",
        "apihelp-login-example-login": "Acceder",
        "apihelp-logout-description": "Salir y vaciar los datos de la sesión.",
        "apihelp-logout-example-logout": "Cerrar la sesión del usuario actual",
+       "apihelp-managetags-description": "Realizar tareas de administración relacionadas con el cambio de etiquetas.",
+       "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-example-create": "Crear una etiqueta llamada <kbd>spam</kbd> con el motivo <kbd>Para utilizar en patrullaje de edición</kbd>",
        "apihelp-managetags-example-delete": "Eliminar la etiqueta <kbd>vandlaismo</kbd> con el motivo <kbd>mal deletreado</kbd>",
+       "apihelp-managetags-example-activate": "Activar una etiqueta llamada <kbd>spam</kbd> con el motivo <kbd>Para utilizar en patrullaje de edición</kbd>",
+       "apihelp-managetags-example-deactivate": "Desactivar una etiqueta llamada <kbd>spam</kbd> con el motivo <kbd>Para utilizar en patrullaje de edición</kbd>",
        "apihelp-move-description": "Mover 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-to": "Título para cambiar el nombre de la página.",
        "apihelp-move-param-reason": "Motivo del cambio de nombre.",
        "apihelp-move-param-movetalk": "Renombrar la página de discusión si existe.",
        "apihelp-move-param-movesubpages": "Renombrar las subpáginas si procede.",
        "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-ignorewarnings": "Ignorar cualquier aviso.",
+       "apihelp-move-example-move": "Mover <kbd>Badtitle</kbd> a <kbd>Goodtitle</kbd> sin dejar una redirección.",
        "apihelp-opensearch-description": "Buscar en el wiki mediante el protocolo OpenSearch.",
        "apihelp-opensearch-param-search": "Buscar cadena.",
+       "apihelp-opensearch-param-limit": "Número máximo de resultados que devolver.",
+       "apihelp-opensearch-param-namespace": "Espacio de nombres que buscar.",
+       "apihelp-opensearch-param-suggest": "No hacer nada si <var>[[mw:Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var> es falso.",
+       "apihelp-opensearch-param-redirects": "Cómo manejar las redirecciones:\n;return: Volver a la propia redirección.\n;resolve: Volver a la página de destino. Puede devolver menos de $1limit resultados.\nPor motivos históricos, se utiliza \"return\" para $1format=json y \"resolve\" para otros formatos.",
+       "apihelp-opensearch-param-format": "El formato de salida.",
+       "apihelp-opensearch-param-warningsaserror": "Si las advertencias están planteadas con <kbd>format=json</kbd>, devolver un error de API en lugar de hacer caso omiso de ellas.",
+       "apihelp-opensearch-example-te": "Buscar páginas que empiecen por <kbd>Te</kbd>.",
+       "apihelp-options-description": "Cambiar preferencias del usuario actual.\n\nSolo se pueden establecer opciones que estén registradas en el núcleo o en una de las extensiones instaladas u opciones con claves predefinidas con \"usersjs-\" (diseñadas para utilizarse con scripts de usuario).",
+       "apihelp-options-param-reset": "Restablece las preferencias de la página web a sus valores predeterminados.",
+       "apihelp-options-param-resetkinds": "Lista de tipos de opciones a restablecer cuando la opción <var>$1reset</var> esté establecida.",
+       "apihelp-options-param-change": "Lista de cambios con el formato name=value (por ejemplo: skin=vector). El valor no puede contener caracteres de barras verticales. Si no se da ningún valor (ni siquiera un signo de igual), por ejemplo: optionname|otheroption|..., la opción se restablecerá a sus valores predeterminados.",
+       "apihelp-options-param-optionname": "Un nombre de una opción que debe establecerse en el valor dado por <var>$1optionvalue</var>.",
+       "apihelp-options-param-optionvalue": "Un valor de la opción especificada por <var>$1optionname</var>, puede contener barras verticales.",
        "apihelp-options-example-reset": "Restablecer todas las preferencias",
+       "apihelp-options-example-change": "Cambiar las preferencias <kbd>skin</kbd> y <kbd>hideminor</kbd>.",
+       "apihelp-options-example-complex": "Restablecer todas las preferencias y establecer <kbd>skin</kbd> y <kbd>nickname</kbd>.",
        "apihelp-paraminfo-description": "Obtener información acerca de los módulos de la API.",
+       "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-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-param-text": "Texto a analizar. Utiliza <var>$1title</var> or <var>$1contentmodel</var> para controlar el modelo del contenido.",
+       "apihelp-parse-param-summary": "Resumen a analizar.",
+       "apihelp-parse-param-page": "Analizar el contenido de esta página. No se puede utilizar con <var>$1text</var> y <var>$1title</var>.",
+       "apihelp-parse-param-pageid": "Analizar el contenido de esta página. Remplaza <var>$1page</var>.",
+       "apihelp-parse-param-redirects": "Si <var>$1page</var> o <var>$1pageid</var> contienen una redirección, soluciónalo.",
+       "apihelp-parse-param-oldid": "Analizar el contenido de esta revisión. Remplaza <var>$1page</var> y <var>$1pageid</var>.",
+       "apihelp-parse-param-prop": "Qué piezas de información obtener:",
+       "apihelp-parse-paramvalue-prop-text": "Da el texto analizado en wikitexto.",
+       "apihelp-parse-paramvalue-prop-langlinks": "Da el idioma de los enlaces en el wikitexto analizado.",
+       "apihelp-parse-paramvalue-prop-categories": "Da las categorías en el wikitexto analizado.",
+       "apihelp-parse-paramvalue-prop-categorieshtml": "Da la versión HTML de las categorías.",
+       "apihelp-parse-paramvalue-prop-links": "Da los enlaces internos del wikitexto analizado.",
+       "apihelp-parse-paramvalue-prop-templates": "Da las plantillas del wikitexto analizado.",
+       "apihelp-parse-paramvalue-prop-images": "Da las imágenes del wikitexto analizado.",
+       "apihelp-parse-paramvalue-prop-externallinks": "Da los enlaces externos del wikitexto analizado.",
+       "apihelp-parse-paramvalue-prop-sections": "Da las secciones del wikitexto analizado.",
+       "apihelp-parse-paramvalue-prop-revid": "Añade la ID de revisión de la página analizada.",
+       "apihelp-parse-paramvalue-prop-displaytitle": "Añade el título del wikitexto analizado.",
+       "apihelp-parse-paramvalue-prop-headitems": "Da elementos para colocar en el <code>&lt;encabezado&gt;</code> de la página.",
+       "apihelp-parse-paramvalue-prop-headhtml": "Da el <code>&lt;encabezado&gt;</code> analizado de la página.",
+       "apihelp-parse-paramvalue-prop-modules": "Da los módulos ResourceLoader utilizados en la página.",
+       "apihelp-parse-paramvalue-prop-jsconfigvars": "Da la configuración JavaScript de variables específica para la página.",
+       "apihelp-parse-paramvalue-prop-encodedjsconfigvars": "Da la configuración JavaScript de variables específica para la página como cadena JSON.",
+       "apihelp-parse-paramvalue-prop-indicators": "Da el HTML de los indicadores de estado utilizados en la página.",
+       "apihelp-parse-paramvalue-prop-iwlinks": "Da los enlaces interwiki del texto analizado.",
+       "apihelp-parse-paramvalue-prop-wikitext": "Da el wikitexto original que se había analizado.",
+       "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>$1disablepp</var> está establecido.",
+       "apihelp-parse-paramvalue-prop-limitreporthtml": "Da la versión HTML del informe del límite. No da datos si <var>$1disablepp</var> está establecido.",
+       "apihelp-parse-param-effectivelanglinks": "Incluye enlaces de idiomas proporcionados por las extensiones (para utilizar con <kbd>$1prop=langlinks</kbd>).",
+       "apihelp-parse-param-preview": "Analizar en modo de vista previa.",
+       "apihelp-parse-param-sectionpreview": "Analizar sección en modo de vista previa (activa el modo de vista previa).",
+       "apihelp-parse-param-disabletoc": "Desactivar la tabla de contenidos en la salida.",
+       "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-parse-example-summary": "Analizar un resumen.",
+       "apihelp-patrol-description": "Patrullar una página o revisión.",
        "apihelp-patrol-example-rcid": "Patrullar un cambio reciente",
        "apihelp-patrol-example-revid": "Patrullar una revisión",
+       "apihelp-protect-description": "Cambiar el nivel de protección de una página.",
+       "apihelp-protect-param-title": "Título de la página a (des)proteger. No se puede utilizar con $1pageid.",
+       "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-cascade": "Activar la protección en cascada (por ejemple, proteger páginas incluida esta). Se ignorará si todos los niveles de protección dados no 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>todos</kbd>.",
+       "apihelp-protect-example-unprotect2": "Desproteger una página anulando las restricciones.",
+       "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": "Depurar la <kbd>Página principal</kbd> y la página <kbd>API</kbd>.",
+       "apihelp-purge-example-generator": "Purgar las 10 primeras páginas del espacio de nombres principal.",
+       "apihelp-query-param-prop": "Qué propiedades obtener para las páginas consultadas.",
+       "apihelp-query-param-list": "Qué listas obtener.",
+       "apihelp-query-param-meta": "Qué metadatos obtener.",
+       "apihelp-query-param-indexpageids": "Incluir una sección de ID de páginas adicional en la que se muestran todas las ID de páginas.",
+       "apihelp-query-param-export": "Exportar las revisiones actuales de las páginas dadas o generadas.",
        "apihelp-query+allcategories-description": "Enumerar todas las categorías.",
+       "apihelp-query+allcategories-param-from": "La categoría para comenzar la enumeración",
+       "apihelp-query+allcategories-param-to": "La categoría para detener la enumeración",
+       "apihelp-query+allcategories-param-prefix": "Buscar todos los títulos de las categorías que comiencen con este valor.",
+       "apihelp-query+allcategories-param-dir": "Dirección de ordenamiento.",
+       "apihelp-query+allcategories-param-min": "Devolver solo categorías con al menos este número de miembros.",
+       "apihelp-query+allcategories-param-max": "Devolver solo categorías con como mucho este número de miembros.",
+       "apihelp-query+allcategories-param-limit": "Cuántas categorías se devolverán.",
+       "apihelp-query+allcategories-param-prop": "Qué propiedades se obtendrán:\n;size: Añade el número de páginas en la categorías.\n;hidden: Etiqueta las categorías que están ocultas con _&#95;HIDDENCAT_&#95;.",
+       "apihelp-query+allcategories-example-size": "Lista las categorías con información sobre el número de páginas de cada una.",
+       "apihelp-query+alldeletedrevisions-description": "Listar todas las revisiones eliminadas por un usuario o en un espacio de nombres.",
        "apihelp-query+alldeletedrevisions-paraminfo-useronly": "Solo puede usarse con <var>$3user</var>.",
        "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "No puede ser utilizado con <var>$3user</var>.",
+       "apihelp-query+alldeletedrevisions-param-start": "El sello de tiempo para comenzar la enumeración",
+       "apihelp-query+alldeletedrevisions-param-end": "El sello de tiempo para detener la enumeración",
        "apihelp-query+alldeletedrevisions-param-from": "Empezar a listar en este título.",
        "apihelp-query+alldeletedrevisions-param-to": "Terminar de listar en este título.",
        "apihelp-query+alldeletedrevisions-param-prefix": "Buscar todos los títulos de las páginas que comiencen con este valor.",
        "apihelp-query+alldeletedrevisions-example-user": "Listar las últimas 50 contribuciones borradas del usuario <kbd>Ejemplo<kbd>.",
        "apihelp-query+alldeletedrevisions-example-ns-main": "Listar las primeras 50 revisiones borradas en el espacio de nombres principal.",
        "apihelp-query+allfileusages-description": "Listar todos los usos del archivo, incluyendo los que no existen.",
+       "apihelp-query+allfileusages-param-from": "El título del archivo para comenzar la enumeración.",
+       "apihelp-query+allfileusages-param-to": "El título del archivo para detener la enumeración.",
+       "apihelp-query+allfileusages-param-prefix": "Buscar todos los títulos de los archivos que comiencen con este valor.",
+       "apihelp-query+allfileusages-param-limit": "Cuántos elementos en total se devolverán.",
+       "apihelp-query+allfileusages-param-dir": "La dirección en la que se listará.",
+       "apihelp-query+allfileusages-example-B": "Listar títulos de archivos, incluyendo los desaparecidos, con las ID de páginas a las que pertenecen, empezando por la <kbd>B</kbd>.",
+       "apihelp-query+allfileusages-example-unique": "Listar títulos de archivos únicos.",
+       "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-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+allimages-param-end": "El sello de tiempo para detener la enumeración. Solo puede utilizarse con $1sort=timestamp.",
+       "apihelp-query+allimages-param-prefix": "Buscar todos los títulos de imágenes que empiecen por este valor. Solo puede utilizarse con $1sort=name.",
+       "apihelp-query+allimages-param-minsize": "Limitar a imágenes con al menos este número de bytes.",
+       "apihelp-query+allimages-param-maxsize": "Limitar a imágenes con como mucho este número de bytes.",
        "apihelp-query+allimages-param-sha1": "Suma SHA1 de la imagen. Invalida $1sha1base36.",
        "apihelp-query+allimages-param-sha1base36": "Suma SHA1 de la imagen en base 36 (usada en MediaWiki).",
+       "apihelp-query+allimages-param-limit": "Cuántas imágenes en total se devolverán.",
+       "apihelp-query+allimages-example-B": "Mostrar una lista de archivos que empiecen por la letra <kbd>B</kbd>.",
+       "apihelp-query+allimages-example-recent": "Mostrar una lista de archivos subidos recientemente, similar a [[Special:NewFiles]].",
+       "apihelp-query+allimages-example-mimetypes": "Mostrar una lista de archivos tipo MIME <kbd>image/png</kbd> o <kbd>image/gif</kbd>",
+       "apihelp-query+allimages-example-generator": "Mostrar información acerca de 4 archivos que empiecen por la letra <kbd>T</kbd>.",
+       "apihelp-query+alllinks-description": "Enumerar todos los enlaces que apunten a un determinado espacio de nombres.",
+       "apihelp-query+alllinks-param-from": "El título del enlace para comenzar la enumeración.",
+       "apihelp-query+alllinks-param-to": "El título del enlace para detener la enumeración.",
+       "apihelp-query+alllinks-param-prefix": "Buscar todos los títulos vinculados que comiencen con este valor.",
+       "apihelp-query+alllinks-param-namespace": "El espacio de nombre a enumerar.",
+       "apihelp-query+alllinks-param-limit": "Cuántos elementos en total se devolverán.",
        "apihelp-query+alllinks-example-unique-generator": "Obtiene todos los títulos enlazados, marcando los que falten.",
+       "apihelp-query+allmessages-param-prop": "Qué propiedades se obtendrán.",
+       "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+allmessages-param-from": "Devolver mensajes que empiecen por este mensaje.",
+       "apihelp-query+allmessages-param-to": "Devolver mensajes que acaben por este mensaje.",
+       "apihelp-query+allmessages-param-prefix": "Devolver mensajes con este prefijo.",
+       "apihelp-query+allmessages-example-ipb": "Mostrar mensajes que empiecen por <kbd>ipb-</kbd>.",
+       "apihelp-query+allmessages-example-de": "Mostrar mensajes <kbd>august</kbd> y <kbd>mainpage</kbd> en alemán.",
+       "apihelp-query+allpages-description": "Enumerar todas las páginas secuencialmente en un espacio de nombres determinado.",
+       "apihelp-query+allpages-param-from": "El título de página para comenzar la enumeración",
+       "apihelp-query+allpages-param-to": "El título de página para detener la enumeración.",
+       "apihelp-query+allpages-param-prefix": "Buscar todos los títulos de las páginas que comiencen con este valor.",
+       "apihelp-query+allpages-param-namespace": "El espacio de nombre a enumerar.",
+       "apihelp-query+allpages-param-filterredir": "Qué páginas listar.",
+       "apihelp-query+allpages-param-minsize": "Limitar a páginas con al menos este número de bytes.",
+       "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-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-param-prefix": "Buscar todas las páginas de destino que empiecen con este valor.",
+       "apihelp-query+allredirects-param-limit": "Cuántos elementos se devolverán.",
+       "apihelp-query+alltransclusions-param-prefix": "Buscar todos los títulos transcluídos que comiencen con este valor.",
+       "apihelp-query+alltransclusions-example-unique-generator": "Obtiene todos los títulos transcluídos, marcando los que faltan.",
+       "apihelp-query+allusers-description": "Enumerar todos los usuarios registrados.",
+       "apihelp-query+allusers-param-prefix": "Buscar todos los usuarios que empiecen con este valor.",
+       "apihelp-query+allusers-param-group": "Incluir solo usuarios en los grupos dados.",
+       "apihelp-query+allusers-param-limit": "Cuántos nombres de usuario se devolverán.",
        "apihelp-query+allusers-param-activeusers": "Solo listar usuarios activos en {{PLURAL:$1|el último día|los $1 últimos días}}.",
+       "apihelp-query+allusers-example-Y": "Listar usuarios que empiecen por <kbd>Y</kbd>.",
        "apihelp-query+backlinks-param-pageid": "Identificador de página que buscar. No puede usarse junto con <var>$1title</var>",
        "apihelp-query+backlinks-example-simple": "Mostrar enlaces a la <kbd>Portada<kbd>.",
+       "apihelp-query+blocks-description": "Listar todos los usuarios y direcciones IP bloqueadas.",
+       "apihelp-query+blocks-param-users": "Lista de usuarios a buscar (opcional).",
        "apihelp-query+blocks-example-simple": "Listar bloques.",
+       "apihelp-query+categories-param-show": "Qué tipo de categorías mostrar.",
+       "apihelp-query+categories-param-limit": "Cuántas categorías se devolverán.",
+       "apihelp-query+categories-example-generator": "Obtener información acerca de todas las categorías utilizadas en la página <kbd>Albert Einstein</kbd>.",
+       "apihelp-query+categoryinfo-description": "Devuelve información acerca de las categorías dadas.",
        "apihelp-query+categoryinfo-example-simple": "Obtener información acerca de <kbd>Category:Foo</kbd> y <kbd>Category:Bar</kbd>",
+       "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 de la <kbd>Categoría:Física</kbd>",
        "apihelp-query+categorymembers-example-generator": "Obtener información sobre las primeras 10 páginas de la <kbd>Categoría:Física</kbd>",
+       "apihelp-query+contributors-param-limit": "Cuántas contribuyentes se devolverán.",
+       "apihelp-query+contributors-example-simple": "Mostrar los contribuyentes de la <kbd>página principal</kbd>.",
+       "apihelp-query+deletedrevisions-param-tag": "Listar solo las revisiones con esta etiqueta.",
+       "apihelp-query+deletedrevisions-param-user": "Listar solo las revisiones de este usuario.",
+       "apihelp-query+deletedrevisions-param-excludeuser": "No listar las revisiones de este usuario.",
+       "apihelp-query+deletedrevisions-param-limit": "La cantidad máxima de revisiones que listar.",
        "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|Modo|Modos}}: $2",
+       "apihelp-query+deletedrevs-param-from": "Empezar a listar en este título.",
+       "apihelp-query+deletedrevs-param-to": "Terminar de listar en este título.",
+       "apihelp-query+deletedrevs-param-prefix": "Buscar todas las páginas que empiecen con este valor.",
+       "apihelp-query+deletedrevs-param-unique": "Listar solo una revisión por cada página.",
+       "apihelp-query+deletedrevs-param-tag": "Listar solo las revisiones con esta etiqueta.",
+       "apihelp-query+deletedrevs-param-user": "Listar solo las revisiones de este usuario.",
+       "apihelp-query+deletedrevs-param-excludeuser": "No listar las revisiones de este usuario.",
+       "apihelp-query+deletedrevs-param-namespace": "Listar solo las páginas en este espacio de nombres.",
+       "apihelp-query+deletedrevs-param-limit": "La cantidad máxima de revisiones que listar.",
        "apihelp-query+deletedrevs-example-mode3-talk": "Listar las primeras 50 páginas en el espacio de nombres {{ns:talk}} (modo 3).",
+       "apihelp-query+disabled-description": "Se ha desactivado el módulo de consulta.",
        "apihelp-query+duplicatefiles-example-simple": "Buscar duplicados de [[:File:Alber Einstein Head.jpg]].",
        "apihelp-query+duplicatefiles-example-generated": "Buscar duplicados en todos los ficheros.",
+       "apihelp-query+embeddedin-description": "Encuentra todas las páginas que transcluyen el título dado.",
+       "apihelp-query+embeddedin-param-title": "Título a buscar. No puede usarse en conjunto con $1pageid.",
+       "apihelp-query+embeddedin-param-filterredir": "Cómo filtrar las redirecciones.",
+       "apihelp-query+embeddedin-param-limit": "Cuántas páginas se devolverán.",
+       "apihelp-query+extlinks-param-limit": "Cuántos enlaces se devolverán.",
+       "apihelp-query+exturlusage-param-limit": "Cuántas páginas se devolverán.",
        "apihelp-query+exturlusage-example-simple": "Mostrar páginas que enlacen con <kbd>http://www.mediawiki.org</kbd>.",
+       "apihelp-query+filearchive-param-from": "El título de imagen para comenzar la enumeración",
+       "apihelp-query+filearchive-param-to": "El título de imagen para detener la enumeración.",
+       "apihelp-query+filearchive-param-prefix": "Buscar todos los títulos de las imágenes que comiencen con este valor.",
+       "apihelp-query+filearchive-example-simple": "Mostrar una lista de todos los archivos eliminados.",
        "apihelp-query+filerepoinfo-example-simple": "Obtener información acerca de los repositorios de archivos.",
+       "apihelp-query+fileusage-param-limit": "Cuántos se devolverán.",
+       "apihelp-query+fileusage-example-simple": "Obtener una lista de páginas que utilicen [[:File:Example.jpg]].",
+       "apihelp-query+fileusage-example-generator": "Obtener información acerca de las páginas que utilicen [[:File:Example.jpg]].",
+       "apihelp-query+imageinfo-description": "Devuelve información del archivo y su historial de subida.",
+       "apihelp-query+imageinfo-param-prop": "Qué información del archivo se obtendrá:",
+       "apihelp-query+imageinfo-paramvalue-prop-user": "Añade el usuario que subió cada versión del archivo.",
+       "apihelp-query+imageinfo-paramvalue-prop-userid": "Añade la ID de usuario que subió cada versión del archivo.",
+       "apihelp-query+imageinfo-param-limit": "Cuántos revisiones de archivos se devolverán por perfil.",
+       "apihelp-query+imageinfo-param-urlheight": "Similar a $1urlwidth.",
+       "apihelp-query+imageinfo-param-localonly": "Buscar solo archivos en el repositorio local.",
        "apihelp-query+images-description": "Devuelve todos los archivos contenidos en las páginas dadas.",
+       "apihelp-query+images-param-limit": "Cuántos archivos se devolverán.",
        "apihelp-query+images-example-simple": "Obtener una lista de los archivos usados en la [[Main Page|Portada]].",
+       "apihelp-query+imageusage-param-title": "Título a buscar. No puede usarse en conjunto con $1pageid.",
+       "apihelp-query+imageusage-param-pageid": "ID de página a buscar. No puede usarse con $1title.",
+       "apihelp-query+imageusage-param-namespace": "El espacio de nombres que enumerar.",
        "apihelp-query+imageusage-example-simple": "Mostrar las páginas que usan [[:File:Albert Einstein Head.jpg]].",
        "apihelp-query+imageusage-example-generator": "Obtener información sobre las páginas que empleen [[:File:Albert Einstein Head.jpg]].",
+       "apihelp-query+info-description": "Obtener información básica de la página.",
+       "apihelp-query+info-param-prop": "Qué propiedades adicionales se obtendrán:",
+       "apihelp-query+info-paramvalue-prop-protection": "Listar el nivel de protección de cada página.",
+       "apihelp-query+info-paramvalue-prop-subjectid": "La ID de página de la página principal de cada página de discusión.",
+       "apihelp-query+info-paramvalue-prop-readable": "Si el usuario puede leer esta página.",
+       "apihelp-query+info-param-token": "Usa [[Special:ApiHelp/query+tokens|action=query&meta=tokens]] en su lugar.",
+       "apihelp-query+info-example-simple": "Obtener información acerca de la página <kbd>Main Page</kbd>.",
        "apihelp-query+info-example-protection": "Obtén información general y protección acerca de la página <kb>Página principal</kbd>.",
+       "apihelp-query+iwbacklinks-param-limit": "Cuántas páginas se devolverán.",
        "apihelp-query+iwbacklinks-example-simple": "Obtener las páginas enlazadas a [[wikibooks:Test]]",
+       "apihelp-query+langbacklinks-param-lang": "Idioma del enlace de idioma.",
+       "apihelp-query+langbacklinks-param-limit": "Cuántas páginas en total se devolverán.",
        "apihelp-query+langbacklinks-example-simple": "Obtener las páginas enlazadas a [[:fr:Test]]",
+       "apihelp-query+langbacklinks-example-generator": "Obtener información acerca de las páginas enlazadas a [[:fr:Test]].",
+       "apihelp-query+langlinks-param-lang": "Devolver solo enlaces de idioma con este código de idioma.",
+       "apihelp-query+links-param-limit": "Cuántos enlaces se devolverán.",
+       "apihelp-query+linkshere-param-limit": "Cuántos se devolverán.",
+       "apihelp-query+linkshere-example-simple": "Obtener una lista de páginas que enlacen a la [[Main Page]].",
        "apihelp-query+linkshere-example-generator": "Obtener información acerca de las páginas enlazadas a la [[Main Page|Portada]].",
+       "apihelp-query+pageswithprop-param-limit": "El máximo número de páginas que se devolverán.",
+       "apihelp-query+pageswithprop-example-simple": "Listar las 10 primeras páginas que utilicen <code>&#123;&#123;DISPLAYTITLE:&#125;&#125;</code>.",
+       "apihelp-query+pageswithprop-example-generator": "Obtener información acerca de las 10 primeras páginas que utilicen <code>_&#95;NOTOC_&#95;</code>.",
+       "apihelp-query+prefixsearch-param-search": "Buscar cadena.",
+       "apihelp-query+prefixsearch-param-namespace": "Espacio de nombres que buscar.",
+       "apihelp-query+prefixsearch-param-limit": "Número máximo de resultados que devolver.",
+       "apihelp-query+prefixsearch-param-offset": "Número de resultados que omitir.",
+       "apihelp-query+prefixsearch-example-simple": "Buscar títulos de páginas que empiecen con <kbd>meaning</kbd>.",
+       "apihelp-query+protectedtitles-param-namespace": "Listar solo los títulos en estos espacios de nombres.",
+       "apihelp-query+protectedtitles-param-level": "Listar solo títulos con estos niveles de protección.",
+       "apihelp-query+protectedtitles-param-limit": "Cuántas páginas se devolverán.",
+       "apihelp-query+protectedtitles-example-simple": "Listar títulos protegidos.",
        "apihelp-query+protectedtitles-example-generator": "Encuentra enlaces a títulos protegidos en el espacio de nombres principal.",
+       "apihelp-query+querypage-param-page": "El nombre de la página especial. Recuerda, es sensible a mayúsculas y minúsculas.",
+       "apihelp-query+querypage-param-limit": "Número de resultados que se devolverán.",
+       "apihelp-query+querypage-example-ancientpages": "Devolver resultados de [[Special:Ancientpages]].",
+       "apihelp-query+recentchanges-description": "Enumerar cambios recientes.",
+       "apihelp-query+recentchanges-param-start": "El sello de tiempo para comenzar la enumeración.",
+       "apihelp-query+recentchanges-param-end": "El sello de tiempo para finalizar la enumeración.",
+       "apihelp-query+recentchanges-param-user": "Listar solo los cambios de este usuario.",
+       "apihelp-query+recentchanges-param-excludeuser": "No listar cambios de este usuario.",
+       "apihelp-query+recentchanges-param-tag": "Listar solo los cambios con esta etiqueta.",
+       "apihelp-query+recentchanges-param-token": "Usa <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd> en su lugar.",
+       "apihelp-query+recentchanges-param-limit": "Cuántos cambios en total se devolverán.",
+       "apihelp-query+recentchanges-param-type": "Cuántos tipos de cambios se mostrarán.",
        "apihelp-query+recentchanges-example-simple": "Lista de cambios recientes.",
+       "apihelp-query+redirects-param-limit": "Cuántas redirecciones se devolverán.",
        "apihelp-query+redirects-example-simple": "Mostrar una lista de las redirecciones a la [[Main Page|Portada]]",
        "apihelp-query+revisions-example-last5": "Mostrar las últimas 5 revisiones de la <kbd>Portada</kbd>.",
        "apihelp-query+search-param-info": "Qué metadatos devolver.",
+       "apihelp-query+search-param-limit": "Cuántas páginas en total se devolverán.",
+       "apihelp-query+search-param-interwiki": "Incluir resultados interwiki en la búsqueda, si es posible.",
+       "apihelp-query+search-example-simple": "Buscar <kbd>significado</kbd>.",
        "apihelp-query+search-example-text": "Buscar <kbd>meaning</kbd> en los textos.",
+       "apihelp-query+search-example-generator": "Obtener información acerca de las páginas devueltas por una búsqueda de <kbd>meaning</kbd>.",
+       "apihelp-query+siteinfo-description": "Devolver información general acerca de la página web.",
        "apihelp-query+siteinfo-example-simple": "Obtener información del sitio.",
+       "apihelp-query+stashimageinfo-description": "Devuelve información del archivo para archivos escondidos.",
+       "apihelp-query+stashimageinfo-param-sessionkey": "Alias de $1filekey, para retrocompatibilidad.",
+       "apihelp-query+stashimageinfo-example-simple": "Devuelve información para un archivo escondido.",
+       "apihelp-query+stashimageinfo-example-params": "Devuelve las miniaturas de dos archivos escondidos.",
+       "apihelp-query+tags-param-limit": "El número máximo de etiquetas para enumerar.",
+       "apihelp-query+templates-description": "Devuelve todas las páginas transcluídas en las páginas dadas.",
+       "apihelp-query+templates-param-limit": "Cuántas plantillas se devolverán.",
+       "apihelp-query+transcludedin-description": "Encuentra todas las páginas que transcluyan las páginas dadas.",
+       "apihelp-query+transcludedin-param-limit": "Cuántos se devolverán.",
+       "apihelp-query+transcludedin-example-simple": "Obtener una lista de páginas transcluyendo <kbd>Main Page</kbd>.",
+       "apihelp-query+usercontribs-param-limit": "Número máximo de contribuciones que se devolverán.",
        "apihelp-query+usercontribs-example-user": "Mostrar contribuciones del usuario <kbd>Ejemplo</kbd>.",
        "apihelp-query+usercontribs-example-ipprefix": "Mostrar las contribuciones de todas las direcciones IP con el prefijo <kbd>192.0.2.</kbd>.",
        "apihelp-query+userinfo-description": "Obtener información sobre el usuario actual.",
+       "apihelp-query+userinfo-example-simple": "Obtener información sobre el usuario actual.",
+       "apihelp-query+userinfo-example-data": "Obtener información adicional sobre el usuario actual.",
+       "apihelp-query+users-description": "Obtener información sobre una lista de usuarios.",
+       "apihelp-query+users-example-simple": "Devolver información del usuario <kbd>Ejemplo</kbd>.",
+       "apihelp-query+watchlist-param-start": "El sello de tiempo para comenzar la enumeración",
+       "apihelp-query+watchlist-param-end": "El sello de tiempo para finalizar la enumeración.",
        "apihelp-query+watchlist-param-excludeuser": "No listar cambios de este usuario.",
        "apihelp-query+watchlistraw-param-show": "Sólo listar los elementos que cumplen estos criterios.",
+       "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-revisiondelete-description": "Eliminar y restaurar revisiones",
+       "apihelp-revisiondelete-param-hide": "Qué ocultar en cada revisión.",
+       "apihelp-revisiondelete-param-show": "Qué mostrar en cada revisión.",
+       "apihelp-revisiondelete-param-reason": "Motivo de la eliminación o restauración.",
+       "apihelp-rollback-param-summary": "Resumen de edición personalizado. Si se deja vacío se utilizará el predeterminado.",
        "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-log": "Eliminar la etiqueta <kbd>spam</kbd> de la entrada del registro con identificador 123 con el motivo <kbd>aplicada incorrectamente</kbd>",
+       "apihelp-unblock-description": "Desbloquear un usuario.",
+       "apihelp-unblock-param-reason": "Motivo del desbloqueo.",
        "apihelp-unblock-example-user": "Desbloquear al usuario <kbd>Bob</kbd> con el motivo <kbd>Lo siento, Bob</kbd>",
+       "apihelp-undelete-param-reason": "Motivo de la restauración.",
        "apihelp-undelete-example-revisions": "Restaurar dos revisiones de la página <kbd>Portada</kbd>.",
        "apihelp-upload-param-watch": "Vigilar la página.",
        "apihelp-upload-param-ignorewarnings": "Ignorar las advertencias.",
        "apihelp-upload-example-url": "Subir desde una URL.",
        "apihelp-userrights-param-user": "Nombre de usuario.",
+       "apihelp-userrights-param-userid": "ID de usuario.",
        "apihelp-userrights-param-add": "Agregar el usuario a estos grupos.",
        "apihelp-userrights-param-remove": "Eliminar el usuario de estos grupos.",
        "apihelp-userrights-param-reason": "Motivo del cambio.",
        "api-help-param-deprecated": "En desuso.",
        "api-help-param-required": "Este parámetro es obligatorio.",
        "api-help-datatypes-header": "Tipos de datos",
+       "api-help-datatypes": "Algunos tipos de parámetros en las solicitudes de API necesita más explicación:\n;booleano\n:Los parámetros booleanos trabajo como casillas de verificación HTML: si el parámetro se especifica, independientemente de su valor, se considera verdadero. Para un valor false, se omite el parámetro completo.\n;marca de tiempo\n:Las marcas de tiempo se puede especificar en varios formatos. ISO 8601 con la fecha y la hora, se recomienda. Todas las horas están en UTC, la inclusión de la zona horaria es ignorada.\n:* ISO 8601 con fecha y hora, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd> (signos de puntuación y <kbd>Z</kbd> son opcionales)\n:* ISO 8601 fecha y hora (se omite) fracciones de segundo, <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> (guiones, dos puntos y, <kbd>Z</kbd> son opcionales)\n:* Formato MediaWiki, <kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* Formato numérico genérico, <kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd> (opcional en la zona horaria <kbd>GMT</kbd>, <kbd>+<var>##</var></kbd>, o <kbd>-<var>##</var></kbd> se omite)\n:* Formato EXIF, <kbd><var>2001</var>:<var>01</var>:<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:*Formato RFC 2822 (zona horaria se puede omitir), <kbd><var>Mon</var>, <var>15</var> <var>Ene</var> <var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Formato RFC 850 (zona horaria se puede omitir), <kbd><var>lunes</var>, <var>15</var>-<var>enero</var>-<var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Formato C ctime, <kbd><var>lunes</var> <var>enero</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>de 2001</var></kbd>\n:* Segundos desde 1970-01-01T00:00:00Z como de 1 a 13, dígito entero",
        "api-help-param-type-limit": "Tipo: entero o <kbd>max</kbd>",
        "api-help-param-type-integer": "Tipo: {{PLURAL:$1|1=entero|2=lista de enteros}}",
        "api-help-param-type-boolean": "Tipo: booleano/lógico ([[Special:ApiHelp/main#main/datatypes|detalles]])",
        "api-help-param-type-user": "Tipo: {{PLURAL:$1|1=nombre de usuario|2=lista de nombres de usuarios}}",
        "api-help-param-list": "{{PLURAL:$1|1=Un valor|2=Valores (separados por <kbd>{{!}}</kbd>)}}: $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Debe estar vacío|Puede estar vacío, o $2}}",
+       "api-help-param-limit": "No se permite más de $1.",
+       "api-help-param-limit2": "No se permite más de $1 ($2 para los bots).",
+       "api-help-param-integer-min": "{{PLURAL:$1|1=El valor no debe ser menor|2=Los valores no deben ser menores}} a $2.",
+       "api-help-param-integer-max": "{{PLURAL:$1|1=El valor no debe ser mayor|2=Los valores no deben ser mayores}} a $3.",
+       "api-help-param-integer-minmax": "{{PLURAL:$1|1=El valor debe|2=Los valores deben}} estar entre $2 y $3.",
        "api-help-param-multi-separate": "Separar los valores con <kbd>|</kbd>.",
+       "api-help-param-multi-max": "El número máximo de los valores es {{PLURAL:$1|$1}} ({{PLURAL:$2|$2}} para los bots).",
        "api-help-param-default": "Predeterminado: $1",
        "api-help-param-default-empty": "Predeterminado: <span class=\"apihelp-empty\">(vacío)</span>",
+       "api-help-param-continue": "Cuando haya más resultados disponibles, utiliza esto para continuar.",
        "api-help-param-no-description": "<span class=\"apihelp-empty\">(sin descripción)</span>",
        "api-help-examples": "{{PLURAL:$1|Ejemplo|Ejemplos}}:",
        "api-help-permissions": "{{PLURAL:$1|Permiso|Permisos}}:",
diff --git a/includes/api/i18n/et.json b/includes/api/i18n/et.json
new file mode 100644 (file)
index 0000000..15ddb3a
--- /dev/null
@@ -0,0 +1,42 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Pikne"
+               ]
+       },
+       "apihelp-query+imageinfo-description": "Tagastab failiteabe ja üleslaadimisajaloo.",
+       "apihelp-query+imageinfo-param-prop": "Millist teavet faili kohta hankida:",
+       "apihelp-query+imageinfo-paramvalue-prop-timestamp": "Lisab üles laaditud versiooni ajatempli.",
+       "apihelp-query+imageinfo-paramvalue-prop-user": "Lisab kasutaja, kes iga failiversiooni üles laadis.",
+       "apihelp-query+imageinfo-paramvalue-prop-userid": "Lisab iga failiversiooni üles laadinud kasutaja identifikaatori.",
+       "apihelp-query+imageinfo-paramvalue-prop-comment": "Versioonikommentaar.",
+       "apihelp-query+imageinfo-paramvalue-prop-parsedcomment": "Parsib versioonikommentaari.",
+       "apihelp-query+imageinfo-paramvalue-prop-canonicaltitle": "Lisab faili kanoonilise pealkirja.",
+       "apihelp-query+imageinfo-paramvalue-prop-url": "Tagastab faili ja kirjelduslehekülje internetiaadressi.",
+       "apihelp-query+imageinfo-paramvalue-prop-size": "Lisab faili suuruse baitides, kõrguse ja laiuse ning lehekülgede arvu, kui see on kohane.",
+       "apihelp-query+imageinfo-paramvalue-prop-dimensions": "Elemendi \"size\" rööpnimi.",
+       "apihelp-query+imageinfo-paramvalue-prop-sha1": "Lisab faili SHA-1 räsiväärtuse.",
+       "apihelp-query+imageinfo-paramvalue-prop-mime": "Lisab faili MIME tüübi.",
+       "apihelp-query+imageinfo-paramvalue-prop-thumbmime": "Lisab faili pisipildi MIME tüübi (vaja elementi \"url\" ja parameetrit \"$1urlwidth\").",
+       "apihelp-query+imageinfo-paramvalue-prop-mediatype": "Lisab faili meediatüübi.",
+       "apihelp-query+imageinfo-paramvalue-prop-metadata": "Loetleb failiversiooni Exif-metaandmed.",
+       "apihelp-query+imageinfo-paramvalue-prop-commonmetadata": "Loetleb failiversiooni vormingu üldised metaandmed.",
+       "apihelp-query+imageinfo-paramvalue-prop-extmetadata": "Loetleb mitme allika vormindatud ühendmetaandmed. Tulemused on HTML-vormingus.",
+       "apihelp-query+imageinfo-paramvalue-prop-archivename": "Lisab praegusest versioonist vanemate arhiiviversioonide failinimed.",
+       "apihelp-query+imageinfo-paramvalue-prop-bitdepth": "Lisab versiooni bitisügavuse.",
+       "apihelp-query+imageinfo-paramvalue-prop-uploadwarning": "Kasutab lehekülg Special:Upload, et saada teavet olemasoleva faili kohta. Pole mõeldud kasutamiseks väljaspool MediaWiki keskosa.",
+       "apihelp-query+imageinfo-param-limit": "Kui palju redaktsioone faili kohta tagastada.",
+       "apihelp-query+imageinfo-param-start": "Ajatempel, millest loetlemist alustada.",
+       "apihelp-query+imageinfo-param-end": "Ajatempel, mille juures loetlemine lõpetada.",
+       "apihelp-query+imageinfo-param-urlwidth": "Kui $2prop=url on määratud, tagastatakse selle laiusega mastaabitud pildi internetiaadress.\nKui seda valikut kasutatakse, siis ei tagastata jõudluskaalutlusel rohkem kui $1 mastaabitud pilti.",
+       "apihelp-query+imageinfo-param-urlheight": "Analoogne parameetriga \"$1urlwidth\".",
+       "apihelp-query+imageinfo-param-metadataversion": "Kasutatavate metaandmete versioon. Kui määratud on <kbd>latest</kbd>, kasutatakse viimast versiooni. Vaikeväärtus on tagasiühilduvuse huvides <kbd>1</kbd>.",
+       "apihelp-query+imageinfo-param-extmetadatalanguage": "Millises keeles metaandmed välja võtta. Sellest oleneb väljavõtte tõlge, juhul kui saadaval on mitu tõlget, ning samuti numbrite ja muude väärtuste vorming.",
+       "apihelp-query+imageinfo-param-extmetadatamultilang": "Kui atribuudi \"extmetadata\" tõlked on saadaval, siis kasuta neid kõiki.",
+       "apihelp-query+imageinfo-param-extmetadatafilter": "Kui määratud ja mittetühi, tagastatakse atribuudi $1prop=extmetadata jaoks ainult need võtmed.",
+       "apihelp-query+imageinfo-param-urlparam": "Töötlusele omane parameetriväärtus. Näiteks PDF-i jaoks võib see olla <kbd>page15-100px</kbd>. Kasutatud peab olema atribuuti <var>$1urlwidth</var> ja see peab olema kooskõlas parameetriga <var>$1urlparam</var>.",
+       "apihelp-query+imageinfo-param-localonly": "Kaasa päringusse ainult kohaliku hoidla failid.",
+       "apihelp-query+imageinfo-example-simple": "Faili [[:File:Albert Einstein Head.jpg|Albert Einstein Head.jpg]] praeguse versiooni teabe väljavõtt.",
+       "apihelp-query+imageinfo-example-dated": "Faili [[:File:Test.jpg|Test.jpg]] teabe väljavõtt alates 2008. aasta versioonidest.",
+       "api-help-param-continue": "Kui saadaval on rohkem tulemusi, kasuta seda jätkamiseks."
+}
index 47f3b57..6cddc63 100644 (file)
@@ -13,7 +13,9 @@
                        "Arkanosis",
                        "Ltrlg",
                        "Crochet.david",
-                       "0x010C"
+                       "0x010C",
+                       "Lucky",
+                       "Freak2fast4u"
                ]
        },
        "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]].",
        "apihelp-import-param-templates": "Pour les importations interwiki : importer aussi tous les modèles inclus.",
        "apihelp-import-param-namespace": "Importer vers cet espace de noms. Écrase le paramètre <kbd>$1rootpage</kbd>.",
        "apihelp-import-param-rootpage": "Importer comme une sous-page de cette page. Ignoré si le paramètre <kbd>$1namespace</kbd> est fourni.",
-       "apihelp-import-example-import": "Importer [[meta:Help:Parserfunctions]] vers l’espace de noms 100 avec tout l’historique.",
+       "apihelp-import-example-import": "Importer [[meta:Help:ParserFunctions]] vers l’espace de noms 100 avec tout l’historique.",
        "apihelp-login-description": "Se connecter et obtenir les cookies d’authentification.\n\nDans le cas d’une connexion réussie, les cookies nécessaires seront inclus dans les entêtes de la réponse HTTP. Dans le cas d’une connexion en échec, les essais ultérieurs pourront être réduits afin de limiter les attaques automatisées de découverte du mot de passe.",
        "apihelp-login-param-name": "Nom d’utilisateur.",
        "apihelp-login-param-password": "Mot de passe.",
        "apihelp-managetags-param-reason": "Un motif facultatif pour créer, supprimer, activer ou désactiver la balise.",
        "apihelp-managetags-param-ignorewarnings": "S’il faut ignorer tout avertissement qui se produirait au cours de l’opération.",
        "apihelp-managetags-example-create": "Créer une balise nommée <kbd>pourriel</kbd> avec le motif <kbd>À utiliser lors de la revue des modifications</kbd>",
-       "apihelp-managetags-example-delete": "Supprimer la balise <kbd>vandlaisme</kbd> avec le motif <kbd>Mal épelé</kbd>",
+       "apihelp-managetags-example-delete": "Supprimer la balise <kbd>vandlaism</kbd> avec le motif <kbd>Misspelt</kbd>",
        "apihelp-managetags-example-activate": "Activer une balise nommée <kbd>pourriel</kbd> avec le motif <kbd>À utiliser dans la revue des modifications</kbd>",
        "apihelp-managetags-example-deactivate": "Désactiver une balise nommée <kbd>pourriel</kbd> avec le motif <kbd>Plus nécessaire</kbd>",
        "apihelp-move-description": "Déplacer une 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-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-query+watchlistraw-example-generator": "Chercher l’information sur les pages de la liste de suivi de l’utilisateur actuel",
        "apihelp-revisiondelete-description": "Supprimer et annuler la suppression des révisions.",
        "api-help-parameters": "{{PLURAL:$1|Paramètre|Paramètres}} :",
        "api-help-param-deprecated": "Obsolète.",
        "api-help-param-required": "Ce paramètre est obligatoire.",
+       "api-help-datatypes-header": "Type de données",
        "api-help-param-list": "{{PLURAL:$1|1=Une valeur|2=Valeurs (séparées par <kbd>{{!}}</kbd>)}} : $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Doit être vide|Peut être vide, ou $2}}",
        "api-help-param-limit": "Pas plus de $1 autorisé.",
index 7882da4..afd5347 100644 (file)
@@ -13,8 +13,8 @@
        "apihelp-main-param-action": "Que acción se realizará.",
        "apihelp-main-param-format": "O formato de saída.",
        "apihelp-main-param-maxlag": "O retardo máximo pode usarse cando MediaWiki está instalada nun cluster de base de datos replicadas. Para gardar accións que causen calquera retardo máis de replicación do sitio, este parámetro pode facer que o cliente espere ata que o retardo de replicación sexa menor que o valor especificado. No caso de retardo excesivo, é devolto o código de erro <samp>maxlag</samp> cunha mensaxe como <samp>esperando por $host: $lag segundos de retardo</samp>.<br />Para máis información, ver [[mw:Manual:Maxlag_parameter|Manual: Maxlag parameter]].",
-       "apihelp-main-param-smaxage": "Fixar a cabeceira <code>s-maxage</code> a esos segundos. Os erros nunca se gardan na caché.",
-       "apihelp-main-param-maxage": "Fixar a cabeceira <code>max-age</code> a esos segundos. Os erros nunca se gardan na caché.",
+       "apihelp-main-param-smaxage": "Fixar a cabeceira HTTP de control de caché <code>s-maxage</code> a esos segundos. Os erros nunca se gardan na caché.",
+       "apihelp-main-param-maxage": "Fixar a cabeceira HTTP de control de caché <code>max-age</code> a esos segundos. Os erros nunca se gardan na caché.",
        "apihelp-main-param-assert": "Verificar se o usuario está conectado como <kbd>usuario</kbd> ou ten a marca de <kbd>bot</kbd>.",
        "apihelp-main-param-requestid": "Calquera valor dado aquí será incluído na resposta. Pode usarse para distingir peticións.",
        "apihelp-main-param-servedby": "Inclúa o nome do servidor que servía a solicitude nos resultados.",
        "apihelp-expandtemplates-param-title": "Título da páxina.",
        "apihelp-expandtemplates-param-text": "Sintaxis wiki a converter.",
        "apihelp-expandtemplates-param-revid": "ID de revisión, para <nowiki>{{REVISIONID}}</nowiki> e variables similares.",
-       "apihelp-expandtemplates-param-prop": "Pezas de información a retornar:\n;wikitext:O texto wiki expandido.\n;categories:Calquer categoría presente na entrada que non estea representada na saída do texto wiki\n;properties:Propiedades da páxina definidas por palabras máxicas expandidas no texto wiki\n;volatile:Definir se a saída é volátil e se non debe usarse noutra parte da páxina.\n;ttl:Tempo máximo a partir do cal os cachés do resultado deben invalidarse.\n;parsetree:O análise sintáctico en árbore do XML de entrada.\nTeña en conta que se non se selecciona ningún valor o resultado conterá o texto wiki, pero a saída estará nun formato desprezado.",
+       "apihelp-expandtemplates-param-prop": "Pezas de información a retornar.\n\nTeña en conta que se non se selecciona ningún valor o resultado conterá o texto wiki, pero a saída estará nun formato obsoleto.",
+       "apihelp-expandtemplates-paramvalue-prop-wikitext": "O wikitexto expandido.",
+       "apihelp-expandtemplates-paramvalue-prop-categories": "Calquera categoría presente na entrada que non estea representada na saída do texto wiki.",
+       "apihelp-expandtemplates-paramvalue-prop-properties": "Propiedades da páxina definidas por palabras máxicas expandidas no texto wiki.",
+       "apihelp-expandtemplates-paramvalue-prop-volatile": "Definir se a saída é volátil e se non debe usarse noutra parte da páxina.",
+       "apihelp-expandtemplates-paramvalue-prop-ttl": "Tempo máximo a partir do cal os cachés do resultado deben invalidarse.",
+       "apihelp-expandtemplates-paramvalue-prop-modules": "Calquera módulo ResourceLoader que as funcións de análise teñan solicitado engadir á saída. <kbd>jsconfigvars</kbd> ou <kbd>encodedjsconfigvars</kbd> deben ser solicitadas xunto con <kbd>modules</kbd>.",
+       "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "Devolve as variables específicas de configuración JavaScript da páxina.",
+       "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "Devolve as variables específicas de configuración JavaScript da páxina como unha cadea de texto JSON.",
+       "apihelp-expandtemplates-paramvalue-prop-parsetree": "A árbore de análise XML da entrada.",
        "apihelp-expandtemplates-param-includecomments": "Cando queria incluír comentarios HTML na saída.",
        "apihelp-expandtemplates-param-generatexml": "Xenerar árbore de análise XML (reemprazado por $1prop=parsetree).",
        "apihelp-expandtemplates-example-simple": "Expandir o wikitexto <kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd>.",
        "apihelp-import-param-interwikipage": "Para importacións interwiki: páxina a importar.",
        "apihelp-import-param-fullhistory": "Para importacións interwiki: importar o historial completo, non só a versión actual.",
        "apihelp-import-param-templates": "Para importacións interwiki: importar tódolos modelos incluídos.",
-       "apihelp-import-param-namespace": "Importar a este espazo de nomes. Ignora o parámetro <kbd>$1rootpage</kbd>.",
-       "apihelp-import-param-rootpage": "Importar como subpáxina desta páxina. Ignorado se se proporciona o parámetro <kbd>$1namespace</kbd>.",
-       "apihelp-import-example-import": "Importar [[meta:Help:Parserfunctions]] ó espazo de nomes 100 con todo o historial.",
+       "apihelp-import-param-namespace": "Importar a este espazo de nomes. Non se pode usar de forma conxunta con  <var>$1rootpage</var>.",
+       "apihelp-import-param-rootpage": "Importar como subpáxina desta páxina. Non se pode usar de forma conxunta con <var>$1namespace</var>.",
+       "apihelp-import-example-import": "Importar [[meta:Help:ParserFunctions]] ó espazo de nomes 100 con todo o historial.",
        "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-param-name": "Nome de usuario.",
        "apihelp-login-param-password": "Contrasinal",
        "apihelp-opensearch-param-suggest": "Non facer nada se <var>[[mw:Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var> é falso.",
        "apihelp-opensearch-param-redirects": "Como xestionar as redireccións:\n;return:Devolve a mesma redirección.\n;resolve:Devolve a páxina á que apunta. Pode devolver menos de $1limit resultados.\nPor razóns históricas, o valor por defecto para $1format=json é \"return\" e \"resolve\" para outros formatos.",
        "apihelp-opensearch-param-format": "O formato de saída.",
+       "apihelp-opensearch-param-warningsaserror": "Se os avisos son recibidos con <kbd>format=json</kbd>, devolver un erro de API no canto de ignoralos.",
        "apihelp-opensearch-example-te": "Atopar páxinas que comezan por <kbd>Te</kbd>.",
        "apihelp-options-description": "Cambiar as preferencias do usuario actual.\n\nSó se poden cambiar opcións que estean rexistradas no núcleo ou nunha das extensións instaladas, ou opcións con claves prefixadas con \"userjs-\" (previstas para ser usadas por scripts de usuario).",
        "apihelp-options-param-reset": "Reiniciar preferencias ás iniciais do sitio.",
        "apihelp-parse-param-pageid": "Analizar o contido desta páxina. Ignora <var>$1page</var>.",
        "apihelp-parse-param-redirects": "Se <var>$1page</var> ou <var>$1pageid</var> apuntar a unha redirección, resólvea.",
        "apihelp-parse-param-oldid": "Analizar o contido desta revisión. Ignora <var>$1page</var> e <var>$1pageid</var>.",
-       "apihelp-parse-param-prop": "Que información obter:\n;text:Devolve o texto analizado do texto wiki.\n;langlinks:Devolve as ligazóns de idioma do texto wiki analizado\n;categories:Devolve as categorías do texto wiki analizado.\n;categorieshtml:Devolve a versión HTML das categorías.\n;links:Devolve as ligazóns internas do texto wiki analizado.\n;templates:Devolve os modelos no texto wiki analizado.\n;images:Devolve as imaxes no texto wiki analizado.\n;externallinks:Devolve as ligazóns externas no texto wiki analizado.\n;sections:Devolve as seccións no texto wiki analizado.\n;revid:Engade o identificador da revisión da páxina analizada.\n;displaytitle:Engade o título do texto wiki analizado.\n;headitems:Devolve os obxectos a poñer na &lt;cabeceira&gt; da páxina\n;headhtml:Devolve a &lt;cabeceira&gt; analizada da páxina.\n;modules:Devolve os módulos ResourceLoader usados na páxina.\n;indicators:Devolve o HTML dos indicadores de estado usados na páxina.\n;iwlinks:Devolve as ligazóns interwiki analizados no texto wiki.\n;wikitext:Devolve o texto wiki orixinal que foi analizado.\n;properties:Devolve varias propiedades definidas no texto wiki analizado.\n;limitreportdata:Devolve o informe de límite de forma estruturada. Non devolve datos cando está activo $1disablepp.\n;limitreporthtml:Devolve a versión HTML do informe de límite. Non devolve datos cando está activo $1disablepp.",
+       "apihelp-parse-param-prop": "Que información obter:",
+       "apihelp-parse-paramvalue-prop-text": "Devolve o texto analizado do texto wiki.",
+       "apihelp-parse-paramvalue-prop-langlinks": "Devolve as interwikis do texto analizado.",
+       "apihelp-parse-paramvalue-prop-categories": "Devolve as categoría do texto analizado.",
+       "apihelp-parse-paramvalue-prop-categorieshtml": "Devolve a versión HTML das categorías.",
+       "apihelp-parse-paramvalue-prop-links": "Devolve as ligazóns internas do texto wiki analizado.",
+       "apihelp-parse-paramvalue-prop-templates": "Devolve os modelos do texto wiki analizado.",
+       "apihelp-parse-paramvalue-prop-images": "Devolve as imaxes do texto wiki analizado.",
+       "apihelp-parse-paramvalue-prop-externallinks": "Devolve as ligazóns externas no texto wiki analizado.",
+       "apihelp-parse-paramvalue-prop-sections": "Devolve as seccións do texto wiki analizado.",
+       "apihelp-parse-paramvalue-prop-revid": "Engade o identificador de edición do texto wiki analizado.",
+       "apihelp-parse-paramvalue-prop-displaytitle": "Engade o título do texto wiki analizado.",
+       "apihelp-parse-paramvalue-prop-headitems": "Devolve os elementos a poñer na <code>&lt;cabeceira&gt;</code> da páxina.",
+       "apihelp-parse-paramvalue-prop-headhtml": "Devolve <code>&lt;cabeceira&gt;</code> analizada da páxina.",
+       "apihelp-parse-paramvalue-prop-modules": "Devolve os módulos ResourceLoader usados na páxina. <kbd>jsconfigvars</kbd> ou <kbd>encodedjsconfigvars</kbd> deben ser solicitados xunto con <kbd>modules</kbd>.",
+       "apihelp-parse-paramvalue-prop-jsconfigvars": "Devolve as variables específicas de configuración JavaScript da páxina.",
+       "apihelp-parse-paramvalue-prop-encodedjsconfigvars": "Devolve as variables específicas de configuración JavaScript da páxina como unha cadea de texto JSON.",
+       "apihelp-parse-paramvalue-prop-indicators": "Devolve o HTML dos indicadores de estado de páxina usados na páxina.",
+       "apihelp-parse-paramvalue-prop-iwlinks": "Devolve as ligazóns interwiki do texto wiki analizado.",
+       "apihelp-parse-paramvalue-prop-wikitext": "Devolve o texto wiki orixinal que foi analizado.",
+       "apihelp-parse-paramvalue-prop-properties": "Obter varias propiedades definidas no texto wiki analizado.",
+       "apihelp-parse-paramvalue-prop-limitreportdata": "Devolve o informe de límite de forma estruturada. Non devolve datos cando <var>$1disablepp</var> está fixado.",
+       "apihelp-parse-paramvalue-prop-limitreporthtml": "Devolve a versión HTML do informe de límite. Non devolve datos cando <var>$1disablepp</var> está fixado.",
        "apihelp-parse-param-pst": "Fai unha transformación antes de gardar a entrada antes de analizala. Válida unicamente para usar con texto.",
        "apihelp-parse-param-onlypst": "Facer unha transformación antes de gardar (PST) a entrada, pero sen analizala. Devolve o mesmo wikitexto, despois de que a PST foi aplicada. Só válida cando se usa con <var>$1text</var>.",
        "apihelp-parse-param-effectivelanglinks": "Inclúe ligazóns de idioma proporcionadas polas extensións (para usar con <kbd>$1prop=langlinks</kbd>).",
        "apihelp-query+recentchanges-param-user": "Só listar cambios deste usuario.",
        "apihelp-query+recentchanges-param-excludeuser": "Non listar cambios deste usuario.",
        "apihelp-query+recentchanges-param-tag": "Só listar cambios marcados con esta etiqueta.",
+       "apihelp-query+recentchanges-param-prop": "Inclúe información adicional:\n;user:Engade o usuario responsable da modificación e marca se é unha dirección IP.\n;userid:Engade o identificador do usuario responsable da edición.\n;comment:Engade o comentario da edición.\n;parsedcomment:Engade o comentario analizado da edición.\n;flags:Engade os indicadores da edición.\n;timestamp:Engade o selo de tempo da edición.\n;title:Engade o título da páxina da edición.\n;ids:Engade o identificador da páxina, o identificador dos cambios recentes e o identificador da versión nova e da vella.\n;sizes:Engade a lonxitude nova e vella da páxina en bytes.\n;redirect:Pon unha marca se a páxina é unha redirección.\n;patrolled:Marca as edicións vixiables como vixiadas ou non vixiadas.\n;loginfo:Engade información do rexistro (identificador de rexistro, tipo de rexistro, etc) nas entradas do rexistro.\n;tags:Lista as etiquetas da entrada.\n;sha1:Engade o control de contido para as entradas asociadas a unha revisión.",
        "apihelp-query+recentchanges-param-token": "Usar <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd> no canto diso.",
        "apihelp-query+recentchanges-param-show": "Só mostrar elementos que cumpran esos criterios. Por exemplo, para ver só edicións menores feitas por usuarios conectados, activar $1show=minor|!anon.",
        "apihelp-query+recentchanges-param-limit": "Número total de páxinas a devolver.",
        "apihelp-query+revisions+base-param-difftotext": "Texto co que comparar cada revisión. Só compara un número limitado de revisións. Ignora <var>$1diffto</var>.  Se <var>$1section</var> ten valor, só se comparará co texto esa sección.",
        "apihelp-query+revisions+base-param-contentformat": "Formato de serialización usado por <var>$1difftotext</var> e esperado para a saída do contido.",
        "apihelp-query+search-description": "Facer unha busca por texto completo.",
-       "apihelp-query+search-param-search": "Buscar tódolos títulos de páxina (ou contido) que teñan este valor.",
+       "apihelp-query+search-param-search": "Buscar os títulos de páxina ou contido que coincidan con este valor. Pode usar a cadea de busca para invocar funcións especiais de busca, dependendo do motor de busca que teña a wiki.",
        "apihelp-query+search-param-namespace": "Buscar só nestes espazos de nomes.",
        "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:\n;size:Engade o tamaño da páxina en bytes.\n;wordcount:Engade o número de palabras da páxina.\n;timestamp:Engade o selo de tempo da última vez que foi editada a páxina.\n;snippet:Engade o fragmento analizado da páxina.\n;titlesnippet:Engade un fragmento analizado do título da páxina.\n;redirectsnippet:Engade un fragmento analizado do título da redirección.\n;redirecttitle:Engade o título da redirección asociada.\n;sectionsnippet:Engade un fragmento analizado do título de sección asociado.\n;sectiontitle:Engade o título da sección asociada.\n;categorysnippet:Engade un fragmento analizado da categoría asociada.\n;isfilematch:Engade unha marca indicando se o resultado da busca é un ficheiro.\n;score:<span class=\"apihelp-deprecated\">Obsoleto e ignorado.</span>\n;hasrelated:<span class=\"apihelp-deprecated\">Obsoleto e ignorado.</span>",
        "apihelp-query+search-param-limit": "Número total de páxinas a devolver.",
        "apihelp-query+search-param-interwiki": "Incluir na busca resultados de interwikis, se é posible.",
        "apihelp-query+search-param-backend": "Que servidor de busca usar, se non se indica usa o que hai por defecto.",
        "apihelp-query+search-example-text": "Buscar texto por <kbd>significado</kbd>.",
        "apihelp-query+search-example-generator": "Obter información da páxina sobre as páxinas devoltas por unha busca por <kbd>significado</kbd>.",
        "apihelp-query+siteinfo-description": "Devolver información xeral sobre o sitio.",
+       "apihelp-query+siteinfo-param-prop": "Que información obter:\n;general:Información xeral do sistema.\n;namespaces:Lista dos espazos de nomes rexistrados e os seus nomes canónicos.\n;namespacealiases:Lista de alias de espazos de nomes rexistrados .\n;specialpagealiases:Lista de alias de páxinas especiais.\n;magicwords:Lista de palabras máxicas e os seus alias.\n;statistics:Devolve as estatísticas do sitio.\n;interwikimap:Devolve o mapa interwiki (opcionalmente filtrado, opcionalmente localizado usando <var>$1inlanguagecode</var>).\n;dbrepllag:Devolve o servidor de base de datos con maior retardo de replicación.\n;usergroups:Devolve os grupos de usuarios e os permisos que teñen asociados.\n;libraries:Devolve as bibliotecas de funcións software instaladas na wiki.\n;extensions:Devolve as extensións instaladas na wiki.\n;fileextensions:Devolve a lista de extenxións de ficheiro permitidas para subir ficheiros.\n;rightsinfo:Devolve a información dos dereitos (licenza) da wiki se está dispoñible.\n;restrictions:Devolve información dos tipos de restricións (protección) dispoñibles.\n;languages:Devolve unha lista dos idiomas que soporta Mediawiki (opcionalmente pode localizarse usando <var>$1inlanguagecode</var>).\n;skins:Devolve unha lista de todas as aparencias dispoñibles (opcionalmente pode localizarse usando <var>$1inlanguagecode</var>, noutro caso no idioma do contido).\n;extensiontags:Devolve unha lista de etiquetas de extensión de analizador.\n;functionhooks:Devolve unha lista de ganchos de función de analizador.\n;showhooks:Devolve unha lista de todos os ganchos subscritos (contido de <var>[[mw:Manual:$wgHooks|$wgHooks]]</var>).\n;variables:Devolve unha lista de identificadores de variable.\n;protocols:Devolve unha lista de protocolos que están permitidos nas ligazóns externas.\n;defaultoptions:Devolve os valores por defecto das preferencias de usuario.",
        "apihelp-query+siteinfo-param-filteriw": "Só devolver entradas locais ou só non locais da correspondencia interwiki.",
        "apihelp-query+siteinfo-param-showalldb": "Listar todos os servidores de base de datos, non só o que teña máis retardo.",
        "apihelp-query+siteinfo-param-numberingroup": "Listar o número de usuarios nos grupos de usuarios.",
        "apihelp-query+usercontribs-example-user": "Mostrar as contribucións do usuario <kbd>Exemplo</kbd>.",
        "apihelp-query+usercontribs-example-ipprefix": "Mostrar contribucións de tódalas direccións IP que comezan por <kbd>192.0.2.</kbd>.",
        "apihelp-query+userinfo-description": "Obter información sobre o usuario actual.",
+       "apihelp-query+userinfo-param-prop": "Que pezas de información incluír:\n;blockinfo:Marca se o usuario actual está bloqueado, por que, e por que razón.\n;hasmsg:Engade unha etiqueta <samp>message</samp> (mensaxe) se o usuario actual ten mensaxes pendentes.\n;groups:Lista todos os grupos ós que pertence o usuario actual.\n;implicitgroups:Lista todos so grupos dos que o usuario actual é membro automaticamente. \n;rights:Lista todos os dereitos que ten o usuario actual.\n;changeablegroups:Lista os grupos ós que o usuario pode engadir ou eliminar a outros usuarios.\n;options:Lista todas as preferencias que ten seleccionadas o usuario actual.\n;preferencestoken:<span class=\"apihelp-deprecated\">Obsoleto.</span>Obtén o identificador para cambiar as preferencias do usuario actual.\n;editcount:Engade o contador de edicións do usuario actual.\n;ratelimits:Lista todos o límites de rango aplicados ó usuario actual.\n;realname:Engade o nome real do usuario.\n;email:Engade a dirección de correo electrónico do usuario e a data de autenticación desa dirección.\n;acceptlang:Reenvía a cabeceira <code>Accept-Language</code> enviada polo cliente nun formato estruturado.\n;registrationdate:Engade a data de rexistro do usuario.\n;unreadcount:Engade o número de páxinas sen ler da lista de vixiancia do usuario (máximo $1; devolve <samp>$2</samp> se son máis).",
        "apihelp-query+userinfo-example-simple": "Obter información sobre o usuario actual.",
        "apihelp-query+userinfo-example-data": "Obter información adicional sobre o usuario actual.",
        "apihelp-query+users-description": "Obter información sobre unha lista de usuarios.",
        "apihelp-query+watchlist-param-user": "Só listar cambios deste usuario.",
        "apihelp-query+watchlist-param-excludeuser": "Non listar cambios deste usuario.",
        "apihelp-query+watchlist-param-limit": "Cantos resultados totais mostrar por petición.",
+       "apihelp-query+watchlist-param-prop": "Que elementos adicionais obter:\n;ids:Engade os identificadores das revisións e os identificadores das páxinas.\n;title:Engade o título da páxina.\n;flags:Engade etiquetas para a edición.\n;user:Engade o usuario que fixo a edición.\n;userid:Engade o identificador do usuario que fixo a edición.\n;comment:Engade o comentario da edición.\n;parsedcomment:Engade o comentario analizado da edición.\n;timestamp:Engade o selo de tempo da edición.\n;patrol:Marca edicións que están vixiadas.\n;sizes:Engade o tamaño antigo e novo da páxina.\n;notificationtimestamp:Engade o selo de tempo da última vez en que o usuario foi avisado dunha modificación.\n;loginfo:Engade información do rexistro cando sexa axeitado.",
        "apihelp-query+watchlist-param-show": "Só mostrar elementos que cumpran esos criterios. Por exemplo, para ver só edicións menores feitas por usuarios conectados, activar $1show=minor|!anon.",
        "apihelp-query+watchlist-param-type": "Que tipos de cambios mostrar:\n;edit:Modificacións normais de páxina.\n;external:Modificacións externas.\n;new:Creación de páxinas.\n;log:Entradas no rexistro.",
        "apihelp-query+watchlist-param-owner": "Usado con $1token para acceder á lista de páxinas de vixiancia doutro usuario.",
        "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-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-query+watchlistraw-example-generator": "Buscar a información de páxina das páxinas da lista de vixiancia do usuario actual.",
        "apihelp-revisiondelete-description": "Borrar e restaurar revisións.",
        "apihelp-yamlfm-description": "Datos de saída en formato YAML(impresión en HTML).",
        "api-format-title": "Resultado de API de MediaWiki",
        "api-format-prettyprint-header": "Esta é a representación HTML do formato $1. HTML é bó para depurar, pero non é axeitado para usar nunha aplicación.\n\nEspecifique o parámetro <var>format</var> para cambiar o formato de saída. Para ver a representación non-HTML do formato $1, fixe <kbd>format=$2</kbd>.\n\n\nRevise a [[mw:API|documentación completa]], ou a [[Special:ApiHelp/main|axuda da API]] para obter máis información.",
+       "api-format-prettyprint-header-only-html": "Esta é unha representación HTML empregada para a depuración de erros, e non é axeitada para o uso de aplicacións.\n\nVexa a [[mw:API|documentación completa]], ou a [[Special:ApiHelp/main|axuda da API]] para máis información.",
        "api-orm-param-props": "Campos a consultar.",
        "api-orm-param-limit": "Número máximo de filas a mostrar.",
        "api-pageset-param-titles": "Lista de títulos nos que traballar.",
        "api-help-param-deprecated": "Obsoleto.",
        "api-help-param-required": "Este parámetro é obrigatorio.",
        "api-help-datatypes-header": "Tipos de datos",
+       "api-help-datatypes": "Algúns tipos de parámetros nas solicitudes de API necesitan máis explicación:\n;boolean\n:Os parámetros booleanos traballan como caixas de verificación HTML: se o parámetro se especifica, independentemente do seu valor, considérase verdadeiro. Para un valor falso, omíta o parámetro completo.\n;timestamp\n:Os selos de tempo poden especificarse en varios formatos. Recoméndase o ISO 8601 coa data e a hora. Todas as horas están en UTC, a inclusión da zona horaria é ignorada.\n:* ISO 8601 con data e hora, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd> (signos de puntuación e <kbd>Z</kbd> son opcionais)\n:* ISO 8601 data e hora (omítense) fraccións de segundo, <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> (guións, dous puntos e, <kbd>Z</kbd> son opcionais)\n:* Formato MediaWiki, <kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* Formato numérico xenérico, <kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd> (opcional na zona horaria <kbd>GMT</kbd>, <kbd>+<var>##</var></kbd>, o <kbd>-<var>##</var></kbd> omítese)\n:* Formato EXIF, <kbd><var>2001</var>:<var>01</var>:<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:*Formato RFC 2822 (a zona horaria pódese omitir), <kbd><var>Mon</var>, <var>15</var> <var>Xan</var> <var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Formato RFC 850 (a zona horaria pódese omitir), <kbd><var>luns</var>, <var>15</var>-<var>xaneiro</var>-<var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Formato C ctime, <kbd><var>luns</var> <var>xaneiro</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>de 2001</var></kbd>\n:* Segundos desde 1970-01-01T00:00:00Z como de 1 a 13, díxitos enteiros (excluíndo o <kbd>0</kbd>)\n:* O texto <kbd>now</kbd> (agora)",
        "api-help-param-type-limit": "Tipo: enteiro ou <kbd>max</kbd>",
        "api-help-param-type-integer": "Tipo: {{PLURAL:$1|1=enteiro|2=lista de enteiros}}",
        "api-help-param-type-boolean": "Tipo: booleano ([[Special:ApiHelp/main#main/datatypes|detalles]])",
index 4002e54..b14fea3 100644 (file)
@@ -7,15 +7,21 @@
                        "Danny-w",
                        "YaronSh",
                        "ערן",
-                       "LaG roiL"
+                       "LaG roiL",
+                       "Elyashiv"
                ]
        },
        "apihelp-main-param-action": "איזו פעולה לבצע.",
        "apihelp-main-param-format": "התבנית של הפלט.",
+       "apihelp-main-param-smaxage": "הגדרת כותרת בקרת מטמון HTTP‏ <code>s-maxage</code> למספר כזה של שניות.",
+       "apihelp-main-param-maxage": "הגדרת כותרת בקרת מטמון HTTP‏ <code>max-age</code> למספר כזה של שניות.",
        "apihelp-main-param-curtimestamp": "הכללת חותמת הזמן הנוכחית בתוצאה.",
        "apihelp-block-description": "חסימת משתמש.",
        "apihelp-block-param-user": "שם משתמש, כתובת IP, או טווח IP שהנך רוצה לחסום.",
        "apihelp-block-param-reason": "סיבה לחסימה.",
+       "apihelp-block-param-anononly": "חסום משתמשים אנונימיים בלבד (דהיינו, השבתת עריכות אנונימיות מכתובת הIP הזאת)",
+       "apihelp-block-param-nocreate": "מניעת יצירת חשבונות",
+       "apihelp-block-param-autoblock": "חסימה אוטומטית גם של כתובת ה־IP האחרונה שהשתמש בה ושל כל כתובת IP שינסה להשתמש בה בעתיד.",
        "apihelp-compare-param-fromtitle": "כותרת ראשונה להשוואה.",
        "apihelp-compare-param-fromid": "מס׳ זיהוי של העמוד הראשון להשוואה.",
        "apihelp-compare-param-fromrev": "גרסה ראשונה להשוואה.",
        "apihelp-delete-param-pageid": "מס׳ הזיהוי של העמוד למחיקה. לא ניתן להשתמש בשילוב עם <var>$1title</var>.",
        "apihelp-delete-param-reason": "סיבת המחיקה. אם לא הוגדרה, תתווסף סיבה שנוצרה אוטומטית.",
        "apihelp-delete-param-watch": "הוספת העמוד לרשימת המעקב של המשתמש הנוכחי.",
+       "apihelp-delete-param-watchlist": "הוספה או הסרה של הדף ללא תנאי מרשימת המעקב של המשתמש הנוכחי, להשתמש בהעדפות או לא לשנות את המעקב.",
        "apihelp-delete-param-unwatch": "הסרת הדף מרשימת המעקב של של המשתמש הנוכחי.",
-       "apihelp-delete-example-simple": "מחיקת הדף הראשי",
+       "apihelp-delete-example-simple": "מחיקת <kbd>עמוד ראשי</kbd>.",
+       "apihelp-delete-example-reason": "מחיקת <kbd>עמוד ראשי</kbd>. סיבה: <kbd>הכנה להעברה</kbd>.",
+       "apihelp-edit-description": "יצירת ועריכת דפים.",
+       "apihelp-edit-param-title": "שם הדף לעריכה. לא לשימוש עם Delete <kbd>Main Page</kbd>.",
+       "apihelp-edit-param-pageid": "מזהה הדף לעריכה. לא לשימוש עם <var>$1title</var>.",
        "apihelp-edit-param-text": "תוכן הדף.",
        "apihelp-edit-param-tags": "אילו תגי שינוי להחיל על הגרסה.",
        "apihelp-edit-param-minor": "עריכה משנית.",
+       "apihelp-edit-param-notminor": "שינוי לא משני.",
+       "apihelp-edit-param-bot": "סימון עריכה זו כבוט.",
+       "apihelp-edit-param-watch": "הוספת העמוד לרשימת המעקב של המשתמש הנוכחי.",
+       "apihelp-edit-param-unwatch": "הסרת הדף מרשימת המעקב של של המשתמש הנוכחי.",
        "apihelp-edit-example-edit": "עריכת דף",
        "apihelp-emailuser-description": "שליחת דוא\"ל למשתמש.",
        "apihelp-expandtemplates-param-title": "כותרת הדף.",
+       "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "נותן משתני הגדרות של JavaScript שייחודיים לדף הזה.",
+       "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "נותן משתני הגדרות של JavaScript שייחודיים לדף הזה בתור מחרוזת JSON.",
+       "apihelp-feedcontributions-param-feedformat": "תסדיר ההזנה.",
        "apihelp-feedcontributions-param-year": "החל משנה (ולפני כן).",
        "apihelp-feedcontributions-param-month": "החל מחודש (ולפני כן).",
        "apihelp-feedcontributions-param-tagfilter": "סינון תרומות בעלות התגיות הבאות.",
        "apihelp-feedcontributions-param-deletedonly": "הצגת תרומות שנמחקו בלבד.",
        "apihelp-feedcontributions-param-toponly": "הצגת עריכות שהן הגרסה העדכנית ביותר בלבד.",
        "apihelp-feedcontributions-example-simple": "החזרת תרומות עבור המשתמש <kbd>Example</kbd>.",
+       "apihelp-feedrecentchanges-param-feedformat": "תסדיר ההזנה.",
        "apihelp-feedrecentchanges-param-hideminor": "הסתרת שינוים משניים.",
        "apihelp-feedrecentchanges-param-hidebots": "הסתרת שינויים שנעשו על ידי בוטים.",
        "apihelp-feedrecentchanges-param-hideanons": "הסתרת שינויים שנעשו על ידי אנונימים.",
@@ -64,6 +83,7 @@
        "apihelp-feedrecentchanges-param-target": "הצגת שינויים שנעשו בדפים המקושרים לדף זה בלבד.",
        "apihelp-feedrecentchanges-example-simple": "הצגת שינויים אחרונים.",
        "apihelp-feedrecentchanges-example-30days": "הצגת שינויים אחרונים עבור 30 ימים.",
+       "apihelp-feedwatchlist-param-feedformat": "תסדיר ההזנה.",
        "apihelp-help-description": "הצגת עזרה עבור היחידות שצוינו.",
        "apihelp-help-param-helpformat": "תסדיר פלט העזרה.",
        "apihelp-help-param-toc": "לכלול תוכן עניינים בפלט HTML.",
        "apihelp-logout-example-logout": "הוצאת המשתמש הנוכחי.",
        "apihelp-managetags-description": "ביצוע פעולות ניהוליות הקשורות בשינוי תגיות.",
        "apihelp-move-description": "העברת עמוד.",
+       "apihelp-move-param-watchlist": "הוספה או הסרה של הדף ללא תנאי מרשימת המעקב של המשתמש הנוכחי, להשתמש בהעדפות או לא לשנות את המעקב.",
+       "apihelp-move-param-ignorewarnings": "להתעלם מכל האזהרות.",
        "apihelp-opensearch-param-search": "מחרוזת לחיפוש.",
        "apihelp-opensearch-param-namespace": "שמות מתחם לחיפוש.",
        "apihelp-opensearch-param-format": "תסדיר הפלט.",
+       "apihelp-parse-paramvalue-prop-jsconfigvars": "נותן משתני הגדרות של JavaScript שייחודיים לדף הזה.",
+       "apihelp-parse-paramvalue-prop-encodedjsconfigvars": "נותן משתני הגדרות של JavaScript שייחודיים לדף הזה בתור מחרוזת JSON.",
+       "apihelp-protect-param-watchlist": "הוספה או הסרה של הדף ללא תנאי מרשימת המעקב של המשתמש הנוכחי, להשתמש בהעדפות או לא לשנות את המעקב.",
        "apihelp-protect-example-protect": "הגנה על דף.",
        "apihelp-query-param-list": "אילו רשימות לקבל.",
        "apihelp-query+allcategories-description": "מניין של כל הקטגוריות.",
        "apihelp-query+allcategories-param-from": "הקטגוריה ממנה להתחיל למנות.",
+       "apihelp-query+allcategories-param-dir": "באיזה כיוון למיין.",
+       "apihelp-query+allcategories-param-limit": "כמה קטגוריות להחזיר.",
+       "apihelp-query+alldeletedrevisions-param-start": "באיזה חותם זמן להתחיל לרשום.",
+       "apihelp-query+alldeletedrevisions-param-end": "באיזה חותם זמן להפסיק לרשום.",
+       "apihelp-query+alldeletedrevisions-param-from": "להתחיל את הרשימה בשם הזה.",
+       "apihelp-query+alldeletedrevisions-param-to": "להפסיק את הרשימה בכותרת הזאת.",
+       "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-param-limit": "כמה פריטים להחזיר בסך הכול.",
+       "apihelp-query+allfileusages-param-dir": "באיזה כיוון לרשום.",
+       "apihelp-query+allimages-param-sort": "לפי איזה מאפיין למיין.",
+       "apihelp-query+allimages-param-dir": "באיזה כיוון לרשום.",
+       "apihelp-query+allimages-param-start": "באיזה חותם זמן להתחיל לרשום. אפשר להשתמש בזה רק עם $1sort=timestamp.",
+       "apihelp-query+allimages-param-end": "באיזה חותם זמן להפסיק לרשום. אפשר להשתמש בזה רק עם $1sort=timestamp.",
+       "apihelp-query+allimages-param-maxsize": "להגביל לתמונות עם מספר כזה לכל היותר של בתים.",
        "apihelp-query+allimages-param-sha1": "גיבוב SHA1 של תמונה. דריסת $1sha1base36.",
        "apihelp-query+allimages-param-sha1base36": "גיבוב SHA1 של התמונה בבסיס 36 (הבסיס בו נעשה שימוש במדיה־ויקי).",
        "apihelp-query+allimages-param-limit": "כמה תמונות להחזיר בסך הכול.",
        "apihelp-query+allimages-example-B": "הצגת רשימה של קבצים שמתחילים באות <kbd>B</kbd>.",
        "apihelp-query+allimages-example-generator": "הצגת מידע על 4 קבצים המתחילים באות <kbd>T</kbd>.",
+       "apihelp-query+alllinks-param-namespace": "איזה מרחב שם לרשום.",
+       "apihelp-query+alllinks-param-limit": "כמה פריטים להחזיר בסך הכול.",
+       "apihelp-query+alllinks-param-dir": "באיזה כיוון לרשום.",
        "apihelp-query+allmessages-param-prop": "אלו מאפיינים לקבל.",
+       "apihelp-query+allpages-param-prefix": "חיפוש כל שמות הדפים שמתחילים בערך הזה.",
+       "apihelp-query+allpages-param-namespace": "איזה מרחב שם לרשום.",
+       "apihelp-query+allpages-param-minsize": "להגביל לדפים עם מספר כזה לפחות של בתים.",
        "apihelp-query+allpages-param-limit": "כמה דפים להחזיר בסך הכול.",
+       "apihelp-query+allpages-param-dir": "באיזה כיוון לרשום.",
+       "apihelp-query+allredirects-param-namespace": "איזה מרחב שם לרשום.",
        "apihelp-query+allredirects-param-limit": "כמה פריטים להחזיר בסך הכול.",
+       "apihelp-query+allredirects-param-dir": "באיזה כיוון לרשום.",
+       "apihelp-query+alltransclusions-param-namespace": "איזה מרחב שם לרשום.",
+       "apihelp-query+alltransclusions-param-limit": "כמה פריטים להחזיר בסך הכול.",
+       "apihelp-query+alltransclusions-param-dir": "באיזה כיוון לרשום.",
+       "apihelp-query+allusers-param-dir": "באיזה כיוון למיין.",
+       "apihelp-query+backlinks-description": "מציאת כל הדפים שמקשרים לדף הנתון.",
+       "apihelp-query+backlinks-param-title": "איזו כותרת לחפש. לא ניתן להשתמש בזה יחד עם <var>$1pageid</var>.",
+       "apihelp-query+backlinks-param-namespace": "איזה מרחב שם לרשום.",
+       "apihelp-query+backlinks-param-dir": "באיזה כיוון לרשום.",
+       "apihelp-query+blocks-param-start": "באיזה חותם זמן להתחיל לרשום.",
+       "apihelp-query+blocks-param-end": "באיזה חותם זמן להפסיק לרשום.",
        "apihelp-query+categories-param-limit": "כמה קטגוריות להחזיר.",
+       "apihelp-query+categories-param-dir": "באיזה כיוון לרשום.",
+       "apihelp-query+categorymembers-param-namespace": "לכלול רק דפים במרחבי השם האלה. יש לשים לב לכך ש־<kbd>$1type=subcat</kbd> או <kbd>$1type=file</kbd> יכולים לשמש במקום <kbd>$1namespace=14</kbd> או <kbd>6</kbd>.",
+       "apihelp-query+categorymembers-param-limit": "מספר הדפים המרבי שיוחזר.",
+       "apihelp-query+categorymembers-param-sort": "לפי איזה מאפיין למיין.",
+       "apihelp-query+categorymembers-param-dir": "באיזה כיוון למיין.",
        "apihelp-query+categorymembers-param-startsortkey": "כדאי להשתמש ב־$1starthexsortkey במקום.",
        "apihelp-query+categorymembers-param-endsortkey": "כדאי להשתמש ב־$1endhexsortkey במקום.",
        "apihelp-query+categorymembers-example-simple": "קבלת עשרת העמודים הראשונים שתחת <kbd>קטגוריה:פיזיקה</kbd>.",
        "apihelp-query+contributors-param-limit": "כמה תורמים להחזיר.",
        "apihelp-query+contributors-example-simple": "הצגת תורמים לדף <kbd>עמוד ראשי</kbd>.",
+       "apihelp-query+deletedrevisions-param-start": "באיזה חותם זמן להתחיל לרשום. לא תקף בעיבור רשימת מזהי גרסה.",
+       "apihelp-query+deletedrevisions-param-end": "באיזה חותם זמן להפסיק לרשום. לא תקף בעת עיבוד רשימת מזהי גרסה.",
+       "apihelp-query+deletedrevisions-param-tag": "לרשום רק גרסאות עם התג הזה.",
+       "apihelp-query+deletedrevisions-param-user": "לרשום רק גרסאות מאת המשתמש הזה.",
+       "apihelp-query+deletedrevisions-param-excludeuser": "לא לרשום גרסאות מאת המשתמש הזה.",
        "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+deletedrevs-param-to": "להפסיק את הרשימה בכותרת הזאת.",
+       "apihelp-query+deletedrevs-param-prefix": "חיפוש כל שמות הדפים שמתחילים בערך הזה.",
+       "apihelp-query+deletedrevs-param-tag": "לרשום רק גרסאות עם התג הזה.",
+       "apihelp-query+deletedrevs-param-user": "לרשום רק גרסאות מאת המשתמש הזה.",
+       "apihelp-query+deletedrevs-param-excludeuser": "לא לרשום גרסאות מאת המשתמש הזה.",
+       "apihelp-query+deletedrevs-param-namespace": "לרשום רק דפים במרחב השם הזה.",
        "apihelp-query+duplicatefiles-param-limit": "כמה קבצים כפולים להחזיר.",
+       "apihelp-query+duplicatefiles-param-dir": "באיזה כיוון לרשום.",
        "apihelp-query+duplicatefiles-param-localonly": "חיפוש אחר קבצים במאגר המקומי בלבד.",
        "apihelp-query+duplicatefiles-example-simple": "חיפוש אחר כפילויות של [[:קובץ:Albert Einstein Head.jpg]].",
        "apihelp-query+duplicatefiles-example-generated": "חיפוש אחר כפילויות בין כל הקבצים.",
+       "apihelp-query+embeddedin-param-title": "איזו כותרת לחפש. לא ניתן להשתמש בזה יחד עם $1pageid.",
+       "apihelp-query+embeddedin-param-namespace": "איזה מרחב שם לרשום.",
+       "apihelp-query+embeddedin-param-dir": "באיזה כיוון לרשום.",
+       "apihelp-query+embeddedin-param-limit": "כמה דפים להחזיר בסך הכול.",
        "apihelp-query+extlinks-param-limit": "כמה קישורים להחזיר.",
+       "apihelp-query+filearchive-param-dir": "באיזה כיוון לרשום.",
+       "apihelp-query+fileusage-param-namespace": "לכלול רק דפים במרחבי השם האלה.",
+       "apihelp-query+fileusage-param-limit": "כמה להחזיר.",
+       "apihelp-query+fileusage-param-show": "לחפש רק פריטים שמתאימים לאמות המידה הבאות:\n;redirect:להציג רק הפניות.\n;!redirect:לא להציג הפניות.",
        "apihelp-query+imageinfo-paramvalue-prop-comment": "תגובה על הגרסה.",
        "apihelp-query+imageinfo-param-localonly": "חיפוש אחר קבצים במאגר המקומי בלבד.",
        "apihelp-query+imageinfo-example-simple": "קבלת פרטים על הגרסה הנוכחית של [[:קובץ:Albert Einstein Head.jpg]].",
        "apihelp-query+images-param-limit": "כמה קבצים להחזיר.",
+       "apihelp-query+images-param-dir": "באיזה כיוון לרשום.",
+       "apihelp-query+imageusage-param-title": "איזו כותרת לחפש. לא ניתן להשתמש בזה יחד עם $1pageid.",
+       "apihelp-query+imageusage-param-namespace": "איזה מרחב שם לרשום.",
+       "apihelp-query+imageusage-param-dir": "באיזה כיוון לרשום.",
        "apihelp-query+info-paramvalue-prop-watchers": "מספר העוקבים, אם קיבלת הרשאה.",
        "apihelp-query+info-paramvalue-prop-readable": "האם המשתמש יכול להציג דף זה.",
+       "apihelp-query+iwbacklinks-param-title": "איזה קישור בינוויקי לחפש. צריך להשתמש בזה יחד עם <var>$1blprefix</var>.",
+       "apihelp-query+iwbacklinks-param-limit": "כמה דפים להחזיר בסך הכול.",
+       "apihelp-query+iwbacklinks-param-dir": "באיזה כיוון לרשום.",
+       "apihelp-query+iwlinks-param-title": "איזה קישור בינוויקי לחפש. צריך להשתמש בזה יחד עם <var>$1prefix</var>.",
+       "apihelp-query+iwlinks-param-dir": "באיזה כיוון לרשום.",
+       "apihelp-query+langbacklinks-param-limit": "כמה דפים להחזיר בסך הכול.",
+       "apihelp-query+langbacklinks-param-dir": "באיזה כיוון לרשום.",
        "apihelp-query+langlinks-param-title": "קישור לחיפוש. חובה להשתמש עם <var>$1lang</var>.",
+       "apihelp-query+langlinks-param-dir": "באיזה כיוון לרשום.",
+       "apihelp-query+langlinks-param-inlanguagecode": "קוד שפה ששמות שפות מתורגמות.",
        "apihelp-query+links-description": "החזרת כל הקישורים מהדפים שצוינו.",
+       "apihelp-query+links-param-limit": "כמה קישורים להחזיר.",
+       "apihelp-query+links-param-dir": "באיזה כיוון לרשום.",
+       "apihelp-query+linkshere-description": "מציאת כל הדפים שמקשרים לדפים הנתונים.",
+       "apihelp-query+linkshere-param-namespace": "לכלול רק דפים במרחבי השם האלה.",
        "apihelp-query+linkshere-param-limit": "כמה להחזיר.",
        "apihelp-query+linkshere-param-show": "הצגת פריטים שתואמים את הדרישות הללו בלבד:\n;redirect:הצגת הפניות בלבד.\n;!redirect:הצגת קישורים שאינם הפניות בלבד.",
        "apihelp-query+logevents-description": "קבלת אירועים מהרישומים.",
+       "apihelp-query+logevents-param-start": "באיזה חותם זמן להתחיל לרשום.",
+       "apihelp-query+logevents-param-end": "באיזה חותם זמן להפסיק לרשום.",
+       "apihelp-query+pageswithprop-param-limit": "מספר הדפים המרבי שיוחזר.",
        "apihelp-query+pageswithprop-param-dir": "באיזה כיוון לסדר.",
        "apihelp-query+pageswithprop-example-simple": "הצגת עשרת הדפים הראשונים שעושים שימוש ב־<code>&#123;&#123;DISPLAYTITLE:&#125;&#125;</code>.",
        "apihelp-query+pageswithprop-example-generator": "קבלת פרטיהם של עשרת הדפים הראשונים המשתמשים ב־<code>_&#95;NOTOC_&#95;</code>.",
        "apihelp-query+prefixsearch-param-search": "מחרוזת לחיפוש.",
+       "apihelp-query+prefixsearch-param-namespace": "שמות מתחם לחיפוש.",
        "apihelp-query+prefixsearch-param-limit": "מספר התוצאות המרבי להחזרה.",
        "apihelp-query+prefixsearch-param-offset": "מספר תוצאות לדילוג.",
+       "apihelp-query+protectedtitles-param-limit": "כמה דפים להחזיר בסך הכול.",
        "apihelp-query+querypage-param-limit": "מספר תוצאות להחזרה.",
        "apihelp-query+recentchanges-description": "מניית השינויים האחרונים.",
+       "apihelp-query+recentchanges-param-start": "באיזה חותם זמן להתחיל לרשום.",
+       "apihelp-query+recentchanges-param-end": "באיזה חותם זמן להפסיק לרשום.",
+       "apihelp-query+recentchanges-param-user": "לרשום רק שינויים של המשתמש הזה.",
+       "apihelp-query+recentchanges-param-excludeuser": "Don't list changes by this user",
        "apihelp-query+recentchanges-param-limit": "כמה שינויים להחזיר בסך הכול.",
        "apihelp-query+recentchanges-param-type": "אילו סוגים של שינויים להציג.",
+       "apihelp-query+recentchanges-param-toponly": "לרשום רק שינויים שהם הגרסה האחרונה.",
        "apihelp-query+recentchanges-example-simple": "הצגת השינויים האחרונים.",
+       "apihelp-query+redirects-param-namespace": "לכלול רק דפים במרחבי השם האלה.",
        "apihelp-query+redirects-param-limit": "כמה הפניות להחזיר.",
+       "apihelp-query+redirects-param-show": "לחפש רק פריטים שמתאימים לאמות המידה הבאות:\n;fragment:להציג רק הפניות עם מקטע.\n;!fragment:להציג רק הפניות ללא מקטע.",
+       "apihelp-query+revisions-param-tag": "לרשום רק גרסאות עם התג הזה.",
        "apihelp-query+revisions+base-param-limit": "הגבלת מספר הגרסאות שיוחזרו.",
+       "apihelp-query+search-param-limit": "כמה דפים להחזיר בסך הכול.",
+       "apihelp-query+siteinfo-param-inlanguagecode": "קוד שפה ששמות שפות מתורגמות (מאמץ טוב ביותר) ושמות עיצובים.",
+       "apihelp-query+stashimageinfo-param-filekey": "מפתח שמזהה העלאה קודמת שהונחה בצד באופן זמני.",
+       "apihelp-query+templates-param-dir": "באיזה כיוון לרשום.",
        "apihelp-query+tokens-example-types": "אחזור אסימון של רשימת המעקב ואסימון של ניטור",
+       "apihelp-query+transcludedin-param-namespace": "לכלול רק דפים במרחבי השם האלה.",
+       "apihelp-query+transcludedin-param-limit": "כמה להחזיר.",
+       "apihelp-query+transcludedin-param-show": "לחפש רק פריטים שמתאימים לאמות המידה הבאות:\n;redirect:להציג רק הפניות.\n;!redirect:לא להציג הפניות.",
+       "apihelp-query+usercontribs-param-tag": "לרשום רק גרסאות עם התג הזה.",
+       "apihelp-query+usercontribs-param-toponly": "לרשום רק שינויים שהם הגרסה האחרונה.",
+       "apihelp-query+watchlist-param-start": "באיזה חותם זמן להתחיל לרשום.",
+       "apihelp-query+watchlist-param-end": "באיזה חותם זמן להפסיק לרשום.",
+       "apihelp-query+watchlist-param-user": "לרשום רק שינויים של המשתמש הזה.",
+       "apihelp-query+watchlist-param-excludeuser": "Don't list changes by this user",
+       "apihelp-query+watchlist-param-limit": "כמה תוצאות סך הכול להחזיר בכל בקשה.",
+       "apihelp-query+watchlistraw-param-limit": "כמה תוצאות סך הכול להחזיר בכל בקשה.",
+       "apihelp-rollback-param-watchlist": "הוספה או הסרה של הדף ללא תנאי מרשימת המעקב של המשתמש הנוכחי, להשתמש בהעדפות או לא לשנות את המעקב.",
        "apihelp-tag-param-reason": "סיבה לשינוי.",
+       "apihelp-undelete-param-watchlist": "הוספה או הסרה של הדף ללא תנאי מרשימת המעקב של המשתמש הנוכחי, להשתמש בהעדפות או לא לשנות את המעקב.",
+       "apihelp-upload-param-watchlist": "הוספה או הסרה של הדף ללא תנאי מרשימת המעקב של המשתמש הנוכחי, להשתמש בהעדפות או לא לשנות את המעקב.",
+       "apihelp-upload-param-ignorewarnings": "להתעלם מכל האזהרות.",
+       "apihelp-upload-param-filekey": "מפתח שמזהה העלאה קודמת שהונחה בצד באופן זמני.",
+       "apihelp-userrights-param-user": "שם משתמש.",
+       "apihelp-userrights-param-reason": "סיבה לשינוי.",
+       "apihelp-dbg-description": "לפלוט נתונים בתסדיר <code dir=\"ltr\">var_export()</code> של PHP.",
+       "apihelp-dump-description": "לפלוט נתונים בתסדיר <code dir=\"ltr\">var_dump()</code> של PHP.",
+       "apihelp-json-description": "לפלוט נתונים בתסדיר JSON.",
+       "apihelp-jsonfm-description": "לפלוט נתונים בתסדיר JSON (עם הדפסה יפה ב־HTML).",
+       "apihelp-php-description": "לפלוט נתונים בתסדיר PHP מוסדר.",
+       "apihelp-phpfm-description": "לפלוט נתונים בתסדיר PHP מוסדר (עם הדפסה יפה ב־HTML).",
+       "apihelp-txt-description": "לפלוט נתונים בתסדיר <code dir=\"ltr\">print_r()</code> של PHP.",
+       "apihelp-wddx-description": "לפלוט נתונים בתסדיר WDDX.",
+       "apihelp-xml-description": "לפלוט נתונים בתסדיר XML.",
        "apihelp-xml-param-xslt": "אם צוין, יש להוסיף את שם הדף כגיליון עיצוב XSL. על הערך להיות כותרת ב {{ns:mediawiki}} במרחב שם המשתמש, המסתיים ב-  <code>.xsl</code>.",
+       "apihelp-xmlfm-description": "לפלוט נתונים בתסדיר XML (עם הדפסה יפה ב־HTML).",
+       "apihelp-yamlfm-description": "לפלוט נתונים בתסדיר YAML (עם הדפסה יפה ב־HTML).",
        "api-format-title": "תוצאה של API של מדיה־ויקי",
        "api-format-prettyprint-header": "זהו ייצוג ב־HTML של תסדיר $1. תסדיר HTML טוב לתיקון שגיאות, אבל אינו מתאים ליישומים.\n\nיש לציין את הפרמטר format כדי לשנות את תסדיר הפלט. כדי לראות ייצוג של תסדיר $1 לא ב־HTML יש לרשום format=$2.\n\nר' את [https://www.mediawiki.org/wiki/API התיעוד המלא], או את [[Special:ApiHelp/main|העזרה של API]] למידע נוסף.",
        "api-orm-param-props": "באילו שדות לעשות שאילתה.",
index 516d8c7..e36d585 100644 (file)
@@ -2,10 +2,18 @@
        "@metadata": {
                "authors": [
                        "Csega",
-                       "Dorgan"
+                       "Dorgan",
+                       "Tacsipacsi"
                ]
        },
+       "apihelp-main-param-action": "Milyen műveletet hajtson végre.",
+       "apihelp-main-param-format": "A kimenet formátuma.",
+       "apihelp-main-param-requestid": "Az itt megadott bármilyen érték szerepelni fog a válaszban. Több kérés megkülönböztetésére használható.",
+       "apihelp-main-param-servedby": "Tartalmazza a válasz kérést kiszolgáló gép nevét.",
+       "apihelp-main-param-curtimestamp": "Tartalmazza a válasz az aktuális időbélyeget.",
        "apihelp-block-description": "Szerkesztő blokkolása",
+       "apihelp-block-param-user": "Blokkolandó felhasználónév, IP-cím vagy IP-címtartomány.",
+       "apihelp-block-param-expiry": "Lejárat ideje. Lehet relatív (pl. <kbd>5 months</kbd>, <kbd>2 weeks</kbd>) vagy abszolút (pl. <kbd>2014-09-18T12:34:56Z</kbd>). Ha <kbd>infinite</kbd>-re, <kbd>indefinite</kbd>-re vagy <kbd>never</kbd>-re állítod, a blokk soha nem fog lejárni.",
        "apihelp-block-param-reason": "Blokkolás oka.",
        "apihelp-block-param-nocreate": "Új regisztráció megakadályozása",
        "apihelp-createaccount-param-name": "Felhasználónév.",
index a87861e..bd168cb 100644 (file)
@@ -4,7 +4,8 @@
                        "Beta16",
                        "Nivit",
                        "Toadino2",
-                       "Gianfranco"
+                       "Gianfranco",
+                       "Alexmar983"
                ]
        },
        "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 l'API è ancora in fase d'attivo sviluppo, e potrebbe cambiare in qualsiasi momenento. Iscriviti alla [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ the mediawiki-api-announce mailing list] per essere informato sugli aggiornamenti.\n\n<strong>Istruzioni sbagliate:</strong> quando vengono impartite all'API delle istruzioni sbagliate, un'intestazione HTTP verrà inviata col messaggio \"MediaWiki-API-Error\" e sia al valore dell'intestazione sia al codice d'errore verrà impostato lo stesso valore. Per maggiori informazioni leggi [[mw:API:Errors_and_warnings|API:Errori ed avvertimenti (in inglese)]].",
@@ -75,6 +76,9 @@
        "apihelp-expandtemplates-description": "Espandi tutti i template nel wikitesto.",
        "apihelp-expandtemplates-param-title": "Titolo della pagina.",
        "apihelp-expandtemplates-param-text": "Wikitesto da convertire.",
+       "apihelp-expandtemplates-param-prop": "Quale informazione ottenere.\n\nNota che se non è selezionato alcun valore, il risultato conterrà il codice wiki, ma l'output sarà in un formato obsoleto.",
+       "apihelp-expandtemplates-paramvalue-prop-wikitext": "Il wikitext espanso.",
+       "apihelp-expandtemplates-paramvalue-prop-volatile": "Se l'output sia volatile e non debba essere riutilizzato altrove all'interno della pagina.",
        "apihelp-query+recentchanges-example-simple": "Elenco modifiche recenti.",
        "apihelp-upload-example-url": "Carica da un URL.",
        "api-help-parameters": "{{PLURAL:$1|Parametro|Parametri}}:",
index a9bcf30..33de5d8 100644 (file)
        "apihelp-import-param-interwikipage": "ウィキ間の取り込みの場合: 取り込むページ。",
        "apihelp-import-param-fullhistory": "ウィキ間の取り込みの場合: 現在の版のみではなく完全な履歴を取り込む。",
        "apihelp-import-param-templates": "ウィキ間の取り込みの場合: 読み込まれているテンプレートも取り込む。",
-       "apihelp-import-param-namespace": "この名前空間に取り込む。<kbd>$1rootpage</kbd>パラメータをオーバーライドします。",
-       "apihelp-import-param-rootpage": "このページの下位ページとしてインポートする。",
-       "apihelp-import-example-import": "[[meta:Help:Parserfunctions]] をすべての履歴とともに名前空間100に取り込む。",
+       "apihelp-import-param-namespace": "この名前空間に取り込む。<var>$1rootpage</var>パラメータとは同時に使用できません。",
+       "apihelp-import-param-rootpage": "このページの下位ページとして取り込む。<var>$1namespace</var> パラメータとは同時に使用できません。",
+       "apihelp-import-example-import": "[[meta:Help:ParserFunctions]] をすべての履歴とともに名前空間100に取り込む。",
        "apihelp-login-param-name": "利用者名。",
        "apihelp-login-param-password": "パスワード。",
        "apihelp-login-param-token": "最初のリクエストで取得したログイントークンです。",
        "apihelp-query+deletedrevisions-param-limit": "一覧表示する版の最大数。",
        "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-param-from": "列挙の始点となるページ名。",
+       "apihelp-query+deletedrevs-param-to": "列挙の終点となるページ名。",
        "apihelp-query+disabled-description": "このクエリ モジュールは無効化されています。",
        "apihelp-query+embeddedin-param-title": "検索するページ名。$1pageid とは同時に使用できません。",
        "apihelp-query+embeddedin-param-pageid": "検索するページID. $1titleとは同時に使用できません。",
        "apihelp-query+links-example-generator": "<kbd>Main Page</kbd> からリンクされているページに関する情報を取得する。",
        "apihelp-query+links-example-namespaces": "<kbd>Main Page</kbd> からの {{ns:user}} および {{ns:template}} 名前空間へのリンクを取得する。",
        "apihelp-query+linkshere-example-simple": "[[Main Page]] にリンクしているページの一覧を取得する。",
-       "apihelp-query+linkshere-example-generator": "<kbd>[[Main page]]<kbd> にリンクしているページの情報を取得する。",
+       "apihelp-query+linkshere-example-generator": "<kbd>[[Main Page]]<kbd> にリンクしているページの情報を取得する。",
        "apihelp-query+logevents-param-start": "列挙の始点となるタイムスタンプ。",
        "apihelp-query+logevents-param-end": "列挙の終点となるタイムスタンプ。",
        "apihelp-query+logevents-param-user": "与えられた利用者による記録項目に絞り込む。",
        "apihelp-query+pagepropnames-description": "Wiki内で使用されているすべてのページプロパティ名を一覧表示します。",
        "apihelp-query+pagepropnames-param-limit": "返す名前の最大数。",
        "apihelp-query+pagepropnames-example-simple": "最初の10個のプロパティ名を取得する。",
-       "apihelp-query+pageprops-example-simple": "<kbd>Category:Foo</kbd> のプロパティを取得する。",
+       "apihelp-query+pageprops-example-simple": "ページ <kbd>Main Page</kbd> および <kbd>MeiaWiki</kbd> のプロパティを取得する。",
        "apihelp-query+pageswithprop-description": "与えられたページプロパティが使用されているすべてのページを一覧表示します。",
        "apihelp-query+pageswithprop-param-limit": "返すページの最大数。",
        "apihelp-query+pageswithprop-example-simple": "<code>&#123;&#123;DISPLAYTITLE:&#125;&#125;</code> を使用している最初の10ページを一覧表示する。",
        "apihelp-dumpfm-description": "データを PHP の <code>var_dump()</code> 形式 (HTML に埋め込んだ形式) で出力します。",
        "apihelp-json-description": "データを JSON 形式で出力します。",
        "apihelp-json-param-callback": "指定すると、指定した関数呼び出しで出力をラップします。安全のため、利用者固有のデータはすべて制限されます。",
-       "apihelp-json-param-utf8": "指定すると、大部分の非 ASCII 文字 (すべてではありません) を、16 進のエスケープ シーケンスに置換する代わりに UTF-8 として符号化します。",
+       "apihelp-json-param-utf8": "指定すると、大部分の非 ASCII 文字 (すべてではありません) を、16 進のエスケープ シーケンスに置換する代わりに UTF-8 として符号化します。<var>formatversion</var> が <kbd>1</kbd> でない場合は既定です。",
        "apihelp-jsonfm-description": "データを JSON 形式 (HTML に埋め込んだ形式) で出力します。",
        "apihelp-none-description": "何も出力しません。",
        "apihelp-php-description": "データを PHP のシリアル化した形式で出力します。",
index 540f64c..3ff138d 100644 (file)
@@ -3,7 +3,9 @@
                "authors": [
                        "Kwj2772",
                        "Twotwo2019",
-                       "아라"
+                       "아라",
+                       "LiteHell",
+                       "Ysjbserver"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [https://www.mediawiki.org/wiki/API:Main_page 설명문서]\n* [https://www.mediawiki.org/wiki/API:FAQ FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api 메일링 리스트]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API 공지 사항] * [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R 버그 및 요청] </div>\n<strong>상태:</strong> 이 페이지에 표시된 모든 기능은 정상 작동할 것이지만, API는 여전히 활발하게 개발되고 있으며, 언제든지 바뀔 수 있습니다. 업데이트 정보를 받아보려면 [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ the mediawiki-api-announce 메일링 리스트]를 구독하십시오.\n\n<strong>잘못된 요청:</strong> API에 잘못된 요청이 전송되면 HTTP 헤더에서 \"MediaWiki-API-Error\" 키를 보내고, 헤더 값과 오류 코드가 같게 설정됩니다. 자세한 정보에 대해서는 https://www.mediawiki.org/wiki/API:Errors_and_warnings 를 참고하십시오.",
        "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-user-complex": "사용자 <kbd>Vandal</kbd>을 <kbd>Vandalism</kbd>이라는 이유로 무기한 차단하며 계정 생성 및 이메일 발송을 막기",
+       "apihelp-createaccount-param-name": "사용자 이름",
+       "apihelp-delete-description": "문서 삭제",
        "apihelp-delete-example-simple": "<kbd>Main Page</kbd>를 삭제합니다.",
+       "apihelp-disabled-description": "이 모듈은 해제되었습니다.",
        "apihelp-edit-description": "문서를 만들고 편집합니다.",
        "apihelp-edit-param-sectiontitle": "새 문단을 위한 제목.",
        "apihelp-edit-param-text": "문서 내용.",
        "apihelp-edit-param-minor": "사소한 편집.",
        "apihelp-edit-param-notminor": "사소하지 않은 편집.",
        "apihelp-edit-param-bot": "이 편집을 봇으로 표시.",
+       "apihelp-edit-example-edit": "문서 편집",
+       "apihelp-expandtemplates-param-title": "문서 제목",
+       "apihelp-login-param-name": "계정 이름.",
+       "apihelp-login-param-password": "비밀번호.",
+       "apihelp-login-example-login": "로그인.",
+       "apihelp-move-description": "문서 이동하기.",
+       "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-readrights": "이 모듈은 read 권한을 요구합니다.",
+       "api-help-flag-writerights": "이 모듈은 write 권한을 요구합니다.",
+       "api-help-flag-mustbeposted": "이 모듈은 POST 요청만을 허용합니다.",
+       "api-help-source": "출처: $1",
+       "api-help-license": "라이선스: [[$1|$2]]",
+       "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-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 부터 흐른 시간(초)",
+       "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-default": "기본값: $1"
+       "api-help-param-default": "기본값: $1",
+       "api-help-param-default-empty": "기본값: <span class=\"apihelp-empty\">(비어 있음)</span>",
+       "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-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 a95bc11..b2b61f4 100644 (file)
@@ -7,8 +7,8 @@
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page/de|Dokemäntazjohn]]\n* [[mw:API:FAQ/de|Öff jefrohch]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Mäileng_Leß]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Aanköndejonge zom <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Application Programming Interface\">API</i>]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Jemäldte Fähler un Wönsch]\n</div>\n<strong>Status:</strong> Alle op heh dä Sigg aanjzeischte Ußwahle sullte donn, ävver et <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Application Programming Interface\">API</i> wee jrahd noch äntwekeld un et kann sesch alle Nahslangs jädd ändere. Holl Der de [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ Mäileng_Leß med Aanköndejonge], öm automattesch övver Neujeschkeite enfommehrt ze wähde.\n\n<strong>Kapodde Aanfrohe:</strong> Wam_mer kapodde Aanfroheaan et API <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Application Programming Interface\">API</i> schek, kritt mer ene <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"HyperText Transfer Protocol\">HTTP</i>-Kopp ußjejovve met däm Täx „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">MediaWiki-API-Error</code>“ dren, dä mer als ene Schlößel bedraachte kann. Mih dohzoh fengk met op dä Sigg [[mw:API:Errors_and_warnings|<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Application Programming Interface\">API</i>: Fähler un Warnonge]].",
        "apihelp-main-param-action": "Wat för en Aufjahb.",
        "apihelp-main-param-format": "Et Fommaht för ußzejävve.",
-       "apihelp-main-param-smaxage": "Säz <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">s-maxage</code> em Kobb obb esu vill Sekonde. Fähler wähde nit faßjehallde.",
-       "apihelp-main-param-maxage": "Säz <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">max-age</code> em Kobb obb esu vill Sekonde. Fähler wähde nit faßjehallde.",
+       "apihelp-main-param-smaxage": "Säz <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">max-age</code> en dä Kopp_Reihj <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">HTTP cache control</code> obb esu vill Sekonde. Fähler wähde nimmohls faßjehallde.",
+       "apihelp-main-param-maxage": "Säz <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">max-age</code> en dä Kopp_Reihj <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">HTTP cache control</code> obb esu vill Sekonde. Fähler wähde nimmohls faßjehallde.",
        "apihelp-main-param-assert": "Ställ sescher, dat dä Metmaacher enjelogg es (doh för jiff <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">user</kbd> en), udder ene Bot es (doh för jiff <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">bot</kbd> en).",
        "apihelp-main-param-requestid": "Jehde Aanjahb vun heh weed widder med ußjejovve. Esuh kam_mer einzel Affrohre ussenein hallde.",
        "apihelp-main-param-servedby": "Donn däm ẞööver, dä et jedonn hät, singe Nahme med ußjävve.",
        "apihelp-block-param-reblock": "Wann dä Metmaacher als jeschpächd es, donn dat övverschrihve.",
        "apihelp-block-param-watchuser": "Donn de Metmaachersigg un de Klaafsigg dohzoh op mig Oppaßleß säze.",
        "apihelp-block-example-ip-simple": "Donn de <i lang=\"en\" xmL:lang=\"en\" title=\"Internet Protocol\">IP</i>-Addräß <kbd>192.0.2.5</kbd> för drei ääsch schpärre mem Jrond: <kbd>Eestschlaach</kbd>.",
-       "apihelp-checktoken-param-type": "De Zoot Makehrong zom Pröhfe.",
-       "apihelp-checktoken-param-token": "De Makehrong zom Pröhve.",
-       "apihelp-checktoken-param-maxtokenage": "Et jrühßte zojelohße Allder fun dä Makehrong en Sekonde.",
-       "apihelp-checktoken-example-simple": "Pröhf de Jöltechkeit vun dä Makehrong „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">csrf</kbd>“.",
-       "apihelp-clearhasmsg-description": "Nemmp de Makehrong „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">hasmsg</code>“ fott vum aktoälle Metmaacher.",
-       "apihelp-clearhasmsg-example-1": "Nemm de Makehrong „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">hasmsg</code>“ fott vum aktoälle Metmaacher.",
+       "apihelp-checktoken-param-type": "De Zoot Makkehrong zom Pröhfe.",
+       "apihelp-checktoken-param-token": "De Makkehrong zom Pröhve.",
+       "apihelp-checktoken-param-maxtokenage": "Et jrühßte zojelohße Allder fun dä Makkehrong en Sekonde.",
+       "apihelp-checktoken-example-simple": "Pröhf de Jöltechkeit vun dä Makkehrong „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">csrf</kbd>“.",
+       "apihelp-clearhasmsg-description": "Nemmp de Makkehrong „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">hasmsg</code>“ fott vum aktoälle Metmaacher.",
+       "apihelp-clearhasmsg-example-1": "Nemm de Makkehrong „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">hasmsg</code>“ fott vum aktoälle Metmaacher.",
        "apihelp-compare-description": "Donn de Ongerscheide zwesche zwai Sigge beschtemme.\n\nDo moß derför jeweils en Väsjohn, en Övverschreff för di Sigg, odder ener Sigg iehr Kännong aanjävve, för de beide Sigge.",
        "apihelp-compare-param-fromtitle": "Der Tettel vun dä eezte Sigg zom verjlihsche.",
        "apihelp-compare-param-fromid": "De Kännong vun dä eezte Sigg zom verjlihsche.",
@@ -44,7 +44,7 @@
        "apihelp-createaccount-param-name": "Der Nahme för dä Metmaacher.",
        "apihelp-createaccount-param-password": "Et Paßwoot (Weed ävver it jebruc un övverjange, wann <code lang=\"en\" xml:lang=\"en\"><var>$1mailpassword</var></code> jesaz es)",
        "apihelp-createaccount-param-email": "Däm Metmaacher sing Adräß för de <i lang=\"en\" xml:lang=\"en\">e-mail</i>, kann och fott bliive.",
-       "apihelp-createaccount-param-realname": "Dämm Medmaacher singe reschtejje Nahme - kann fott blihve.",
+       "apihelp-createaccount-param-realname": "Dämm Metmaacher singe reeschtejje Nahme - kann fott blihve.",
        "apihelp-createaccount-param-mailpassword": "Wann heh jädd aanjejovve es, kritt dä Metmaacher e zohfällesch ußjesöhk neu Paßwood aan sing Adräß för de <i lang=\"en\" xml:lang=\"en\">e-mail</i> jescheck.",
        "apihelp-createaccount-param-reason": "Ene Jrond för dä Zojang aanzelähje, dä en de Logböhscher kütt.",
        "apihelp-createaccount-param-language": "Dat Schprohcheköözel, wadd als der Schtandatt för dä Metmaacher jesaz wähde sull. Kann läddesch blihve, dann es et di Schprohch vum Wikki.",
        "apihelp-delete-param-pageid": "De Kännong vun dä Sigg zom fottschmiiße. Kam_mer nit zersamme met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1title</var>“ bruche.",
        "apihelp-delete-param-reason": "Der Jrond för et Fottschmiiße. Wann dä nit aanjejovve es, weed ene automattesch usjräschnete Jrond jenumme.",
        "apihelp-delete-param-watch": "Donn di Sigg en däm aktoälle Metmaacher sing Oppaßleß opnämme.",
+       "apihelp-delete-param-watchlist": "Donn di Sigg op däm aktoälle Metmaacher sing Oppaßleß udder nemm se druß fott, donn de Enschtällonge nämme, udder donn de Oppaßleß jaa nit verändere.",
        "apihelp-delete-param-unwatch": "Schmihß di Sigg us däm aktoälle Metmaacher singe Oppaßless erus.",
        "apihelp-delete-param-oldimage": "Der Nahme vom ahle Beld zom fottschmiiße, wi hä vun [[Special:ApiHelp/query+imageinfo|action=query&prop=imageinfo&iiprop=archivename]] kütt.",
-       "apihelp-delete-example-simple": "Schmiiß de <kbd>Houpsigg</kbd> fott",
-       "apihelp-delete-example-reason": "Schmiiß de <kbd>Houpsigg</kbd> fott mem Jrond: <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Preparing for move</kbd>.",
+       "apihelp-delete-example-simple": "Schmiiß de Sigg „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Main Page</kbd>“ fott.",
+       "apihelp-delete-example-reason": "Schmiiß de „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Main Page</kbd>“ fott mem Jrond: <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Preparing for move</kbd>.",
        "apihelp-disabled-description": "Dat Moduhl wohd affjeschalldt.",
        "apihelp-edit-description": "Sigge aanlähje un verändere.",
        "apihelp-edit-param-title": "De Övverschreff vun dä Sigg zom Ändere. Kam_mer nit zesamme met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1pageid</var>“ bruche.",
        "apihelp-edit-param-section": "De Nommer vum Affschnedd. Nemm „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">0</kbd>“ för wat vör der eezde Övverschreff schteihd. Ene neue Affscnedd määt mer met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">new</var>“.",
        "apihelp-edit-param-sectiontitle": "De Övverschreff för ene neue Affschnett.",
        "apihelp-edit-param-text": "Dä Sigg ehre Ennhalld.",
+       "apihelp-edit-param-summary": "Dat Fäld för „{{int:summary}}“. Och en Öveschreff för ene Affschnedd wann „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1section=new</code>“ un „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1sectiontitle</code>“ nit jesaz es.",
        "apihelp-edit-param-tags": "De Mekhonge för op heh di väsjohn aanzewännde.",
        "apihelp-edit-param-minor": "En klein Änderong.",
        "apihelp-edit-param-notminor": "Kein klein Änderong.",
        "apihelp-edit-param-bot": "Makeer heh di Änderog als vun enem Bot jemaat.",
-       "apihelp-edit-param-recreate": "Övverjangk alle Fähler övver di Sigg, die en der Zweschezigg fott jeschneße wohd.",
+       "apihelp-edit-param-recreate": "Övverjangk alle Fähler övver di Sigg, di en der Zweschezigg fott jeschneße wohd.",
        "apihelp-edit-param-createonly": "Donn di Sigg nit ändere, wann se ald doh es.",
        "apihelp-edit-param-nocreate": "Mäld ene Fähler, wann di Sigg nit doh es.",
        "apihelp-edit-param-watch": "Donn di Sigg op dem aktälle Metmaacher sing Oppaßleß.",
        "apihelp-emailuser-example-email": "Donn en <i lang=\"en\" xml:lang=\"en\">e-mail</i> aan dä Metmaacher <kbd lang=\"en\" xml:lang=\"en\">WikiSysop</kbd> schecke mem Täx <kbd>Dä Enhalld</kbd> dren.",
        "apihelp-expandtemplates-description": "Deiht alle Schablohne en Wikkitäx ömsäze.",
        "apihelp-expandtemplates-param-title": "De Övverschreff vun dä Sigg.",
-       "apihelp-expandtemplates-param-text": "Dä Wikitäx zom ömwandelle.",
+       "apihelp-expandtemplates-param-text": "Dä Wikkitäx zom ömwandelle.",
        "apihelp-expandtemplates-param-revid": "De Kännong vun dä Väsjohn, för \n„<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\"><nowiki>{{REVISIONID}}</nowiki></code>“ un verwandte Wääte.",
+       "apihelp-expandtemplates-paramvalue-prop-categories": "Alle Saachjroppe en dä Quällesigg, di em Wikkitäx vun de ußjejovve Sigg nit vorkumme.",
+       "apihelp-expandtemplates-paramvalue-prop-properties": "De Sigge_Eijeschaffte, di vun de Zauberwööter em Wikkitäx faßjelaat wähde.",
+       "apihelp-expandtemplates-paramvalue-prop-modules": "Alle Moduhle vum <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Delivery system in MediaWiki for the optimized run-time loading and managing of modules\">ResourceLoader</i>, di noh de Paaserfonksjuhne en de Ußjahbe vörkumme sulle. Äntwehder „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">jsconfigvars</kbd>“ udder „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">encodedjsconfigvars</kbd>“ moß mer met „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">modules</kbd>“ zesamme aanforrdere.",
+       "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "Jitt de Varrejahble fun de Einschtällonge vun heh Sigg, di nur för di Sigg johd sin.",
+       "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "Jitt de Varrejahble fun de Einschtällonge vun heh Sigg, di nur för di Sigg johd sin, em <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"JavaScript Object Notation\">JSON</i>-Fommahd als en Reih vun Zeijsche.",
+       "apihelp-expandtemplates-paramvalue-prop-parsetree": "Dä Ennjahv iere Paaser_Boum em <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Extensible Markup Language\">XML</i>_Fommaht.",
        "apihelp-expandtemplates-param-includecomments": "Ov Aanmärkonge em <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"HyperText Markup Language\">HTML</i>-Fommaht med ußjejovve wähde sulle.",
        "apihelp-expandtemplates-param-generatexml": "Donn ene Boum vum <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Extensible Markup Language\">XML</i>-Paaser opboue. Es dorsch „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1prop=parsetree</code>“ ässäz.",
+       "apihelp-expandtemplates-example-simple": "Donn dä Wikkitäx <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\"><nowiki>{{Project:Sandbox}}</nowiki></kbd> en Täx wandelle.",
        "apihelp-feedcontributions-description": "Jidd ene Kannahl met de Beidräsch vun enem Metmaacher uß.",
        "apihelp-feedcontributions-param-feedformat": "Däm Kannahl sing Fommaht.",
        "apihelp-feedcontributions-param-user": "De Beijdrähsch för wat för en Metmaacher holle.",
        "apihelp-feedrecentchanges-param-hideliu": "Änderonge ußschlehße, di vun aanjemälldete Metmaacher jemaht wohde.",
        "apihelp-feedrecentchanges-param-hidepatrolled": "Nohjelohrte Änderonge övverjonn.",
        "apihelp-feedrecentchanges-param-hidemyself": "Änderonge vun heh dämm Metmaacher övverjonn.",
-       "apihelp-feedrecentchanges-param-tagfilter": "Noh Makehronge beschängke.",
+       "apihelp-feedrecentchanges-param-tagfilter": "Noh Makkehronge beschängke.",
        "apihelp-feedrecentchanges-param-target": "Zeijsch Änderonge aan Sigge, op di vun heh dä Sigg ene Lengk jeihd.",
        "apihelp-feedrecentchanges-param-showlinkedto": "Zeijsch Änderonge aan Sigge, op di vun dä ußjesöhk Sigg ene Lengk jeihd.",
        "apihelp-feedrecentchanges-example-simple": "Zeijsch de {{LCFIRST:{{int:recentchanges}}}}",
        "apihelp-filerevert-param-archivename": "Dä nahme vum Aschihv vun dä Väsjohn för wider drop zerök ze jon.",
        "apihelp-filerevert-example-revert": "Donn <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Wiki.png</kbd> op di Väsohn vum <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">2011-03-05T15:27:40Z</kbd> zerök säze.",
        "apihelp-help-description": "zeisch Hölp för de aanjejovve Moduhle.",
+       "apihelp-help-param-modules": "Moduhle, öm Hölp för de Wääte vun de „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">action</var>“ un „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">format</var>“ Parramehtere, udder „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">main</kbd>“. aanzezeije. Mer kann Ongermoduhle met „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">+</kbd>“ aanjävve.",
        "apihelp-help-param-submodules": "Donn Hölp för de Ongermoduhle vun dämm aanjejovve Moduhl enschschlehße.",
        "apihelp-help-param-recursivesubmodules": "Donn Hölp för de Ongermoduhle allesammp enschschlehße, esu deef, wi et jeiht.",
        "apihelp-help-param-helpformat": "Et Fommaht vun de Ußjahbe för de Hölp.",
        "apihelp-help-example-recursive": "Alle Hölp en eine Sigg.",
        "apihelp-help-example-help": "Alle Hölp övver de Hölp säälver.",
        "apihelp-help-example-query": "Hölp för zwei Ongermoduhle för Frohre.",
-       "apihelp-imagerotate-description": "Ein udder mieh Bellder driehje.",
+       "apihelp-imagerotate-description": "Ein udder mih Bellder driehje.",
        "apihelp-imagerotate-param-rotation": "Öm wi vill Jrahd sulle de Bellder noh de Uhr drieh wääde?",
        "apihelp-imagerotate-example-simple": "Drieh de <kbd>Dattei:Beijschpell.png</kbd> öm <kbd>90</kbd> Jrahd.",
        "apihelp-imagerotate-example-generator": "Drieh alle Bellder en dä <kbd>Saachjropp:Ömdriehje</kbd> öm <kbd>180</kbd> Jrahd.",
        "apihelp-import-param-interwikipage": "För et Empottehre us enem andere Wikki: De Sigg zom Empottehre.",
        "apihelp-import-param-fullhistory": "För et Empottehre us enem andere Wikki: Donn de jannze Verjangeheid empottehre, nit blohß de aktoälle Väsjohn.",
        "apihelp-import-param-templates": "För et Empottehre us enem andere Wikki: Donn all de nühdejje Schablohne met empottehre.",
-       "apihelp-import-param-namespace": "En heh dat Appachtemang emmpotehre. Övverjangk der Parramehter „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1rootpage</kbd>“ derbei.",
+       "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. Weed ävver övverjange, wann dä der Parramehter „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1namespace</kbd>“ derbei aanjejovve es.",
-       "apihelp-import-example-import": "Donn di Sigg „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[meta:Help:Parserfunctions]]</code>“ en et Appachtemang 100 empottehre, met alle älldere Väsjohne.",
+       "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-login-param-name": "Metmaacher_Nahme.",
        "apihelp-login-param-password": "Paßwoot.",
        "apihelp-login-param-domain": "De Domaijn (kann fott bliehve)",
        "apihelp-login-example-login": "Enlogge.",
        "apihelp-logout-description": "Donn ußlogge un maach de Dahte övver de Sezong fott.",
        "apihelp-logout-example-logout": "Donn dä aktoälle Metmaacher ußlogge.",
-       "apihelp-managetags-param-reason": "Ene Jrond för et Aanlähje, Fottschmiiße, Aanschallde un Ußschallde vun dä Makehrong, dä mer ävver nit aanjävve moß.",
-       "apihelp-managetags-param-ignorewarnings": "Ov alle Warnonge övverjange wöhde sull, die bei dämm Opdracht opkumme.",
+       "apihelp-managetags-description": "Verwalldongsaufjahbe em Zersammehang met Makkehronge vun Änderonge donn.",
+       "apihelp-managetags-param-reason": "Ene Jrond för et Aanlähje, Fottschmiiße, Aanschallde un Ußschallde vun dä Makkehrong, dä mer ävver nit aanjävve moß.",
+       "apihelp-managetags-param-ignorewarnings": "Ov alle Warnonge övverjange wähde sulle, di bei dämm Opdracht opkumme.",
        "apihelp-managetags-example-create": "Donn en Makkehrong aanlähje mem Nahme „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">spam</kbd>“ mem Jrond „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">For use in edit patrolling</kbd>“.",
        "apihelp-managetags-example-delete": "Schmiiß de Makkehrong mem Nahme „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">vandlaism</kbd>“ fott mem Jrond „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Misspelt</kbd>“.",
        "apihelp-managetags-example-activate": "Donn en Makkehrong aktevehre mem Nahme „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">spam</kbd>“ mem Jrond „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">For use in edit patrolling</kbd>“.",
        "apihelp-opensearch-param-format": "Et Fommaht zom Ußjävve.",
        "apihelp-opensearch-example-te": "Fengk Sigge, di met <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Te</kbd> aanfange.",
        "apihelp-options-param-reset": "Säz de Enschtällonge op dem Wikki singe Standatt.",
+       "apihelp-options-param-optionname": "Dä Nahme vun ene Enschtällong, di op dä Wäät jesaz wähde sulle, dä „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1optionvalue</var>“ aanjitt.",
+       "apihelp-options-param-optionvalue": "Ene Wäät vun dä Enschtällong, di vun „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1optionname</var>“ aanjejovve weed. Kann Sänkrääschte Schresche („|“) äänthallde.",
        "apihelp-options-example-reset": "Alle enschtälloonge retuur schtälle.",
+       "apihelp-options-example-complex": "Donn alle Enschtällonge op der Schtandatt säze, dann säz „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skin</kbd>“ un „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">nickname</kbd>“.",
        "apihelp-paraminfo-description": "Holl Aanjahbe övver dä <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Application Programming Interface\">API</i> ier Moduhle.",
        "apihelp-paraminfo-param-helpformat": "Et Fommaht vun de Täxe för Hölp.",
        "apihelp-paraminfo-param-formatmodules": "Leß met de Nahme vun de Moduhle zom Fommatehre (Wäät vum „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">format</var>“-Parramehter). Nemm schtatt dämm „<varlang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1modules</var>“.",
        "apihelp-paraminfo-example-1": "Zisch Aanjahbe övver <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[Special:ApiHelp/parse|action=parse]]</kbd>, <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[Special:ApiHelp/jsonfm|format=jsonfm]]</kbd>, <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[Special:ApiHelp/query+allpages|action=query&list=allpages]]</kbd>, un <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd>.",
        "apihelp-parse-param-summary": "De Zersammefaßong för ze pahse.",
+       "apihelp-parse-param-prop": "Wat för en Schtöker aan Ennfommazjuhne holle:",
+       "apihelp-parse-paramvalue-prop-text": "Jitt dä jepahßde Täx vum Wikkitäx uß.",
+       "apihelp-parse-paramvalue-prop-langlinks": "Jitt de Schprohche-Lengks em jepahßde Wikkitäx uß.",
+       "apihelp-parse-paramvalue-prop-categories": "Jitt de Saachjroppe em jepahßde Wikkitäx uß.",
+       "apihelp-parse-paramvalue-prop-categorieshtml": "Jitt de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"HyperText Markup Language\">HTML</i>-Fazung vun de Saachjroppe us.",
+       "apihelp-parse-paramvalue-prop-links": "Jitt de entärne Lengks em jepahßde Wikkitäx uß.",
+       "apihelp-parse-paramvalue-prop-templates": "Jitt de Schablohne em jepahßde Wikkitäx uß.",
+       "apihelp-parse-paramvalue-prop-images": "Jitt de Belder em jepahßde Wikkitäx uß.",
+       "apihelp-parse-paramvalue-prop-externallinks": "Jitt de Lengks, di noh ußerhallev vum Wikki jonn, em jepahßde Wikkitäx uß.",
+       "apihelp-parse-paramvalue-prop-sections": "Jitt de Affschnedde em jepahßde Wikkitäx uß.",
+       "apihelp-parse-paramvalue-prop-revid": "Deiht de Kännong vun de Väsjohn vun dä jepahßde Sigg derbei.",
+       "apihelp-parse-paramvalue-prop-displaytitle": "Deiht de Övverschreff vum jepahßde Wikkitäx derbei.",
+       "apihelp-parse-paramvalue-prop-modules": "Jitt dem <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Delivery system in MediaWiki for the optimized run-time loading and managing of modules\">ResourceLoader</i> sing Moduhle uß, di en dä Sigg jebruch wähde. Äntwehder „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">jsconfigvars</kbd>“ udder „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">encodedjsconfigvars</kbd>“ moß mer met „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">modules</kbd>“ zesamme aanforrdere.",
+       "apihelp-parse-paramvalue-prop-iwlinks": "Jitt de Engewikkilengks em jepahßde Wikkitäx uß.",
+       "apihelp-parse-paramvalue-prop-wikitext": "Jitt de der ojinahl Wikkitäx us, dä jepahß woode es.",
+       "apihelp-parse-paramvalue-prop-properties": "Jitt devärse Eijeschafte uß, di em jepahßde Wikkitäx faßjelaat woode sen.",
        "apihelp-parse-param-section": "Holl blohß dann der Ennhalld vun däm Affschnett met dä Nommer, udder wann „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">new</kbd>“ enjejovve es, maach ene neu Affschnett derbei.",
        "apihelp-parse-param-sectiontitle": "De Övverschreff för dä neuje Afschnet, wann <var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">section</var> = <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">new</kbd> es.\n\nAnders wi beim Beärbeide vun dä Sigg weed dä Parramehter nit dorsch de <var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">summary</var> ußjetuusch, wann hä fottjelohße udder läddesch es.",
        "apihelp-parse-param-disabletoc": "Donn et Ennhaldsverzeijscheneß en de Ußjahbe vottlohze.",
        "apihelp-protect-param-reason": "Der Jrond för et Schöze udder Freijävve.",
        "apihelp-protect-example-protect": "Donn en Sigg schöze.",
        "apihelp-purge-param-forcelinkupdate": "Bräng de Tabälle met de lengks obb ene neue Schtand.",
+       "apihelp-query-param-prop": "Wat för en Eijeschaffte holle för de affjerohchte Sigge.",
        "apihelp-query-param-list": "Wat för en Leßte holle.",
-       "apihelp-query-param-meta": "Wat för en Matta_Dahte ze holle.",
+       "apihelp-query-param-meta": "Wat för en Metta_Dahte ze holle.",
+       "apihelp-query-example-allpages": "Holl Väsjohne vun Sigge, di met „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">API</kbd>“ bejenne.",
        "apihelp-query+allcategories-description": "Alle Saachjroppe opzälle.",
        "apihelp-query+allcategories-param-from": "De Saachjropp, vun woh aan opzälle.",
        "apihelp-query+allcategories-param-to": "De Saachjropp, bes woh hen opzälle.",
+       "apihelp-query+allcategories-param-prefix": "Söhk noh Saachjroppe, woh de Övverschrevv esu aanfängk.",
        "apihelp-query+allcategories-param-dir": "De Reijefollsch zum Zotehre.",
+       "apihelp-query+allcategories-param-min": "Jiff blohß Saachjroppe us, di winneschsdens esu vill Metjlehder han.",
+       "apihelp-query+allcategories-param-max": "Jiff blohß Saachjroppe us, di et mihts esu vill Metjlehder han.",
        "apihelp-query+allcategories-param-limit": "Wi vell Saachjroppe ußjävve?",
        "apihelp-query+allcategories-param-prop": "Wat för en Eijeschaffte holle: \n;size:Deiht de Aanzahl Sigge en dä Saachjropp derbei.\n;hidden:Makehrt de veschtoche Sachjroppe met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">_&#95;HIDDENCAT_&#95;</code>“.",
        "apihelp-query+alldeletedrevisions-description": "Donn alle fottjeschmeße Väsjohne vun enem Metmaacher udder en enem Appachemang opleßte.",
        "apihelp-query+alldeletedrevisions-param-from": "Bejenn de Leß bei heh dä Överschreff.",
        "apihelp-query+alldeletedrevisions-param-to": "Hühr de Leß bei heh dä Överschreff oop.",
        "apihelp-query+alldeletedrevisions-param-prefix": "Söhk noh Sigge, woh de Övverschrevv esu aanfängk.",
+       "apihelp-query+alldeletedrevisions-param-tag": "Donn blohß Väsjohne met heh dä Makkehrong opleßte.",
        "apihelp-query+alldeletedrevisions-param-user": "Donn blohß Väsjohne vun heh däm Metmaacher opleßte.",
        "apihelp-query+alldeletedrevisions-param-excludeuser": "Donn kein Väsjohne vun heh däm Metmaacher opleßte.",
-       "apihelp-query+alldeletedrevisions-param-namespace": "Donn blohß Siegg en heh däm Appachtemang opleßte.",
-       "apihelp-query+alldeletedrevisions-param-generatetitles": "Wann als ene  Jenerahtor enjesaz, bräng Övverschreffte un kein Kännonge vu Väsjohne.",
+       "apihelp-query+alldeletedrevisions-param-namespace": "Donn blohß Sigge en heh däm Appachtemang opleßte.",
+       "apihelp-query+alldeletedrevisions-param-generatetitles": "Wann als ene  Jenerahtor enjesaz, brängk dat Övverschreffte un kein Kännonge vun Väsjohne.",
        "apihelp-query+alldeletedrevisions-example-user": "Donn de läzde fuffzisch fottjeschmeße Beijdrähsch vim Metmaacher „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Example<kbd>“ opleste.",
        "apihelp-query+alldeletedrevisions-example-ns-main": "Donn de läzde fuffzisch fottjeschmeße Väsjohne em Houp-Appachemang opleste.",
        "apihelp-query+allfileusages-description": "Donn alle Dattei_Oprohfe opleste, och vun Datteije, di (noch) nit doh sin.",
        "apihelp-query+allfileusages-param-from": "De Övverschreff vun dä Dattei, woh de Leß medd aanfange sull.",
        "apihelp-query+allfileusages-param-to": "De Övverschreff vun dä Dattei, woh de Leß medd ophühre sull.",
        "apihelp-query+allfileusages-param-prefix": "Söhk noh alle Övverschreffte, di met heh däm Täx aanfange.",
-       "apihelp-query+allfileusages-param-unique": "Donn blohß ongerscheidlijje Övverschreffte vun Datteije aanzeije. Kammer nit zesamme met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1prop=ids<code>“ bruche.\nWann als ene  Jenerahtor enjesaz, bräng Zihlsigge un kein Kwällsigge.",
+       "apihelp-query+allfileusages-param-unique": "Donn blohß ongerscheidlijje Övverschreffte vun Datteije aanzeije. Kammer nit zesamme met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1prop=ids<code>“ bruche.\nWann als ene Jenerahtor ennjesaz, brängk et Zihlsigge, un kein Kwällesigge.",
        "apihelp-query+allfileusages-param-prop": "Wat för en Aanjahbe ennschlehße:\n;ids:Deiht de Kännonge vun dä Sigge derbei, di dat bruche. Kam_mer nit zersamme met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1unique</code>“ bruche.\n;title:Deiht dä Dattei ehr Övverschreff derbei.",
        "apihelp-query+allfileusages-param-limit": "Wi vill sulle överhoup aanjezeisch wähde?",
        "apihelp-query+allfileusages-param-dir": "En wälsche Reijefollsch?",
        "apihelp-query+allfileusages-example-B": "Donn Övverschreffte vun Datteije aanzeije, och vun Datteije, di (noch) nit doh sin, zesame met dä Kännonge vun dä Sigge, woh se vun sin, aanjevange vun <kbd>B</kbd>.",
        "apihelp-query+allfileusages-example-unique": "Donn ongerscheidlejje Övverschreffte vun Datteije opleßte.",
+       "apihelp-query+allfileusages-example-unique-generator": "Hollt alle Övverschreffte vun Datteije, un makehr di (noch) nit doh sin.",
        "apihelp-query+allfileusages-example-generator": "Holl Sigge, woh Datteieje dren vorkumme.",
        "apihelp-query+allimages-description": "Donn alle Bellder der Reih noh opzälle.",
        "apihelp-query+allimages-param-sort": "De Eijeschavv öm dernoh ze zottehre.",
        "apihelp-query+allimages-param-sha1": "Dam Bld sing <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"secure hash algorithm\">SHA-1</i>-Pröhvsomm. Övverjeiht „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1sha1base36</code>“.",
        "apihelp-query+allimages-param-sha1base36": "Däm Beld sing <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"secure hash algorithm\">SHA-1</i>-Pröhvsomm op dä bahses 36. Weed em Mehdiajwikki jebruch.",
        "apihelp-query+allimages-param-user": "Jiv blohß de Datteije uß, di vun heh däm Metmaacher huh jelahde wohde sin. Kam_mer blohß met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1sort=timestamp</code>“ bruche.  Kam_mer nit met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1filterbots</code>“ zersamme bruche.",
+       "apihelp-query+allimages-param-filterbots": "Wi mer blohß de Datteije ußjitt, di vun Bots huh jelahde wohde sin. Kam_mer blohß met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1sort=timestamp</code>“ bruche. Kam_mer nit met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1user</code>“ zersamme bruche.",
+       "apihelp-query+allimages-param-mime": "Wat för ene <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Zoot ze Söhke, för e Beijschpell „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">image/jpeg</kbd>“.",
        "apihelp-query+allimages-param-limit": "Wi vell Bellder ennsjesamp ußjävve.",
        "apihelp-query+allimages-example-B": "Zeisch en Leß met Sigge un bejenn mem Bohchschtabe <kbd>B</kbd>.",
+       "apihelp-query+allimages-example-recent": "Zeijsch en Leß met de köözlesch huhjelahde Datteije, ähnlesch wi en [[Special:NewFiles]].",
+       "apihelp-query+allimages-example-mimetypes": "Zeijsch en Leß met dä <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Zoote „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">image/png</kbd>“ udder „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">image/gif</kbd>“.",
        "apihelp-query+allimages-example-generator": "Zeisch Aanjahbe övver veer Bellder un bejenn mem Bohchschtabe <kbd>T</kbd>.",
        "apihelp-query+alllinks-description": "Donn alle Lengk opzälle, di en e beschtemmpt Appachtemang jonn.",
        "apihelp-query+alllinks-param-from": "De Övverschreff vun däm Lengk, woh de Leß medd aanfange sull.",
        "apihelp-query+alllinks-param-to": "De Övverschreff vun dä Dattei, woh et Zälle ophühre sull.",
        "apihelp-query+alllinks-param-prefix": "Söhk noh alle verlengk Övverschreffte, di met heh däm Täx aanfange.",
+       "apihelp-query+alllinks-param-unique": "Zeijsch blohß de ongerscheidlijje verlengk Sigge ier Övverschreffte. Kam_mer nit zesamme met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1prop=ids</code>“ bruche. Wam_mer et als ene  Jenerahtor bruche deiht, kritt mer Zihlsiggge anschtatt vun Quällesigge.",
+       "apihelp-query+alllinks-param-prop": "Wat för en Aanjahbe ennschlehße:\n;ids:Deiht de Kännonge vun dä Sigge met däm Lengk derbei. Kam_mer nit zersamme met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1unique</code>“ bruche.\n;title:Deiht däm lengk sing Övverschreff derbei.",
        "apihelp-query+alllinks-param-namespace": "Dat Appachtemang zom opzälle.",
        "apihelp-query+alllinks-param-limit": "Wi vill sulle överhoup aanjezeisch wähde?",
        "apihelp-query+alllinks-param-dir": "En wälsche Reijefollsch?",
        "apihelp-query+alllinks-example-B": "Donn Övverschreffte aanzeije, woh Lengks drop jonnn, och di (noch) nit doh sin, zesame met dä Kännonge vun dä Sigge, woh se vun sin, aanjevange vun <kbd>B</kbd>.",
        "apihelp-query+alllinks-example-unique": "Leß ongerscheidlejje verlengk Övverschreffte.",
        "apihelp-query+alllinks-example-unique-generator": "Hollt alle Övverschreffte, woh Lengks drop jonnn un makehr di (noch) nit doh sin.",
-       "apihelp-query+alllinks-example-generator": "Holl Sigge, di di Lengks änthallde.",
+       "apihelp-query+alllinks-example-generator": "Holl Sigge, di Lengks änthallde.",
        "apihelp-query+allmessages-description": "Donn em Wikki sing Täxte un Nohreescht ußjävve.",
        "apihelp-query+allmessages-param-messages": "Wat för en Täxte un Nohreeschte usjävve. Der Schtandatt „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">*</kbd>“ bedügg alle Täxte un Nohreeschte.",
        "apihelp-query+allmessages-param-prop": "Wat för en Eijeschaffte holle.",
        "apihelp-query+allmessages-param-nocontent": "Wann dat ennjeschalld es, donn dä ennhalt vun de Täxte un Nohreeschte nit medd ußjävve.",
        "apihelp-query+allmessages-param-args": "De Parramehtere för en dä Täx udder en di Nohreesch enzeföhje.",
        "apihelp-query+allmessages-param-filter": "Jiv blohß de Täxte un Nohreesche uß, woh heh dat Täxschtöck dren änthallde es.",
-       "apihelp-query+allmessages-param-customised": "Jiv bloß de Täxte un Nohreesche en heh däm Zohschtand uß.",
+       "apihelp-query+allmessages-param-customised": "Jiv bloß de Täxte un Nohreesche en heh däm jewönschte Aanpaßongs_Zohschtand uß.",
        "apihelp-query+allmessages-param-lang": "Jiv de Täxte un Nohreesche en heh dä Schprohch uß.",
        "apihelp-query+allmessages-param-from": "Jiv de Täxte un Nohreesche vun heh aan uß.",
        "apihelp-query+allmessages-param-to": "Jiv de Täxte un Nohreesche bes heh uß.",
        "apihelp-query+allpages-param-minsize": "Bejränz op Sigge met winneschßdens esu vill Bytes dren.",
        "apihelp-query+allpages-param-maxsize": "Bejränz op Sigge met hüüschßdens esu vill Bytes dren.",
        "apihelp-query+allpages-param-prtype": "Bejränz op jeschöz Sigge.",
-       "apihelp-query+allpages-param-limit": "Wi vill Sigge zen aanzeije?",
+       "apihelp-query+allpages-param-limit": "Wi vill Sigge zem aanzeihje?",
        "apihelp-query+allpages-param-dir": "En wälsche Reijefollsch?",
+       "apihelp-query+allpages-param-filterlanglinks": "Blohß Sigge met Schprohchelengks opleßte. Opjepaß: Dat künnt Schprohchelengks övverjonn, di vun Zohsazprojramme beijschtührt wohde sin.",
        "apihelp-query+allpages-example-B": "Zeisch en Leß met Sigge un bejenn mem Bohchschtabe <kbd>B</kbd>.",
        "apihelp-query+allpages-example-generator": "Zeisch Aanjahbe övver veer Bellder un bejenn mem Bohchschtabe <kbd>T</kbd>.",
        "apihelp-query+allpages-example-generator-revisions": "Zeisch der Enhalld vu de eetsde zwai Sigg un bejenn bei <kbd>Re</kbd>.",
        "apihelp-query+allredirects-description": "Alle Ömleidonge op e beschtemmp Appachtemang opleßte.",
        "apihelp-query+allredirects-param-from": "De Övverschreff vun dä Ömleidong, woh de Leß medd ophühre sull.",
        "apihelp-query+allredirects-param-to": "De Övverschreff vun dä Sigg, woh et Zälle ophühre sull.",
-       "apihelp-query+allredirects-param-prefix": "Söhk not sigge, die esu aanfange.",
+       "apihelp-query+allredirects-param-prefix": "Söhk not Sigge, di esu aanfange.",
+       "apihelp-query+allredirects-param-unique": "Zeijsch blohß de ongerscheidlijje Zihl_Sigg. Kam_mer nit zesamme met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1prop=ids|fragment|interwiki</code>“ bruche. Wam_mer et als ene  Jenerahtor bruche deiht, kritt mer Zihlsiggge anschtatt vun Quällesigge.",
        "apihelp-query+allredirects-param-namespace": "Dat Appachtemang zom opzälle.",
        "apihelp-query+allredirects-param-limit": "Wi vill sulle överhoup aanjezeisch wääde?",
        "apihelp-query+allredirects-param-dir": "En wälsche Reijefollsch?",
        "apihelp-query+allredirects-example-B": "Zeisch Zihlsigge, och di et (noch) nit jitt, met dä Kännonge, wo se her sin, un bejenn mem Bohchschtabe <kbd>B</kbd>.",
        "apihelp-query+allredirects-example-unique": "Ongerscheidlijje Sigge opleste.",
+       "apihelp-query+allredirects-example-unique-generator": "Hollt alle Zihlsigge un makkehr di (noch) nit doh sin.",
        "apihelp-query+allredirects-example-generator": "Holl de Sigge met de Ömleidonge.",
+       "apihelp-query+alltransclusions-param-from": "De Övverschreff vun dä ennjeföhschte Sigg, woh de Leß medd aanfange sull.",
+       "apihelp-query+alltransclusions-param-to": "De Övverschreff vun dä ennjeföhschte Sigg, woh et Zälle ophühre sull.",
+       "apihelp-query+alltransclusions-param-prefix": "Söhk noh alle dä ennjeföhschte Sigge ier Övverschreffte, di met heh däm Täx aanfange.",
+       "apihelp-query+alltransclusions-param-unique": "Zeijsch blohß de ongerscheidlijje ennjeföhschte Sigge ier Övverschreffte. Kam_mer nit zesamme met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1prop=ids</code>“ bruche. Wam_mer et als ene  Jenerahtor bruche deiht, kritt mer Zihlsiggge anschtatt vun Quällesigge.!FUZZY!!",
+       "apihelp-query+alltransclusions-param-prop": "Wat för en Aanjahbe ennschlehße:\n;<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">ids</code>:Deiht de Kännonge vun dä Sigg derbei, di dat bruch. Kam_mer nit zersamme met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1unique</code>“ bruche.\n;<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">title</code>:Deiht de Övverschreff vun dä jebruchte Sigg derbei.",
        "apihelp-query+alltransclusions-param-namespace": "Dat Appachtemang zom opzälle.",
        "apihelp-query+alltransclusions-param-limit": "Wi vill sulle överhoup aanjezeisch wähde?",
        "apihelp-query+alltransclusions-param-dir": "En wälsche Reijefollsch?",
+       "apihelp-query+alltransclusions-example-B": "Donn Övverschreffte aanzeije, och vun Sigge, di (noch) nit doh sin, zesame met dä Kännonge vun dä Sigge, woh se vun sin, aanjevange vun <kbd>B</kbd>.",
+       "apihelp-query+alltransclusions-example-unique": "Donn de Övverschreffte vun ennjeföhschte Sigge opleßte, ävver jehde blohß eijmohl.",
+       "apihelp-query+alltransclusions-example-unique-generator": "Hollt alle Övverschreffte vun ennjeföhschte Sigge, un makehr di (noch) nit doh sin.",
+       "apihelp-query+alltransclusions-example-generator": "Holl Sigge, di Ennföhjonge änthallde.",
        "apihelp-query+allusers-description": "Donn alle aanjemälldte Metmaacher opzälle.",
        "apihelp-query+allusers-param-from": "Dä Metmaacher_Nahme vun woh aan opzälle.",
        "apihelp-query+allusers-param-to": "Dä Metmaacher_Nahme bes woh hen opzälle.",
        "apihelp-query+allusers-param-activeusers": "Donn blohß Metmaacher opleßte, di  {{PLURAL:$1|der läzde Daach|en de läzde $1 Dääsch|keine läzde Daach}} aktihf wohre.",
        "apihelp-query+allusers-example-Y": "Monn metmaacher opleßte, woh de Nahme vun met <kbd>Y</kbd> aanfange.",
        "apihelp-query+backlinks-description": "Fengk alle Sigge, di op de aanjejovve Sigg lengke.",
+       "apihelp-query+backlinks-param-title": "De Övverschreff för noh ze Söhke. Kam_mer nit zesamme met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1pageid</var>“ bruche.",
+       "apihelp-query+backlinks-param-pageid": "De Känong vun dä Sigg zom Söhke. Kam_mer nit zesamme met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1title</var>“ bruche.",
        "apihelp-query+backlinks-param-namespace": "Dat Appachtemang zom opzälle.",
        "apihelp-query+backlinks-param-dir": "En wälsche Reijefollsch?",
        "apihelp-query+backlinks-example-simple": "Zeijsch Lengks op de Sigg <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Main page<kbd>.",
+       "apihelp-query+backlinks-example-generator": "Holl Ennfommazjuhne övver Sigge, di op de Sigg „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Main Page</code>“ lengke donn.",
+       "apihelp-query+blocks-description": "Donn alle jeschpächte Metmaacher un <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Internet Protocol\">IP</i>-Adräße opleßte.",
        "apihelp-query+blocks-param-start": "Et Dattom un de Zigg vun woh aff opjezallt wähde sull.",
        "apihelp-query+blocks-param-end": "Et Dattom un de Zigg bes woh hen opjezallt wähde sull.",
+       "apihelp-query+blocks-param-ids": "Leß vun dä Kännonge vun Schpärre för dernoh ze söhke. Kann fott blihve.",
+       "apihelp-query+blocks-param-users": "Leß vun dä Metmaacher för dernoh ze söhke. Kann fott blihve.",
+       "apihelp-query+blocks-param-ip": "Holl alle Schpärre för heh di <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Internet Protocol\">IP</i>-Adräß udder heh dä <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Classless Inter-Domain Routing\">CIDR</i>-Berätt, och Schpärre vun Berätte. Kam_mer nit zesamme met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$3users</var>“ bruche. <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Classless Inter-Domain Routing\">CIDR</i>-Berätte vun mieh wi <code dir=\"ltr\">IPv4/$1</code> udder <code dir=\"ltr\">IPv6/$2</code> wähde nit aanjenumme.",
        "apihelp-query+blocks-param-limit": "De hühßde Aanzahl Spärre zom opleste.",
        "apihelp-query+blocks-param-prop": "Wat för en Eijeschaffte holle:\n;id:Deiht dä Spärr iehr Kännonge derbei.\n;user:Deiht dä Nahme vom jeschpächte Metmaacher derbei.\n;userid:Deiht de Kännong vum jeschpächte Metmaacher derbei.\n;by:Deiht dä Nahme vun däm Metmaacher derbei, dä jeschpächt hät.\n;byid:Deiht de Kännong vun däm Metmaacher derbei, dä jeschpächt hät.\n;timestamp:Deihd et Dattum un de Uhrzigg derbei, wann jeschpächt wood.\n;expiry:Deihd et Dattum un de Uhrzigg derbei, wann di Schparr eröm es.\n;reason:Deiht der Jrond för di Schparr derbei.\n;range:Deiht dä Berätt vun <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Internet Protocol\">IP</i>-Adräße för di Schparr derbei.\n;flags:makkehrt di Spärr met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">autoblock</code>“, „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">anononly</code>“, un esu.",
        "apihelp-query+blocks-example-simple": "Schpärre opleßte.",
        "apihelp-query+categories-param-prop": "Wat för en zohsäzlejje Eijeschaffte holle för jehde Saachjropp:\n;sortkey:Deiht dä Schlößel zom Zottehre vun dä Saachjropp derbei, en lange häxadezimahle Zahl, un der Schlößelvörsaz, woh ene Minsch jät med aanfange kann.\n;timestamp:Deihd en Dattom un en Zigg derbei, wann di Sachjrobb aanjelaat woode es.\n;hidden:Makehrt de veschtoche Sachjroppe met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">_&#95;HIDDENCAT_&#95;</code>“.",
        "apihelp-query+categories-param-show": "Wat för en Zoot Saachjroppe zeije.",
        "apihelp-query+categories-param-limit": "Wi vell Saachjroppe ußjävve?",
+       "apihelp-query+categories-param-categories": "Donn blohß heh di Saachjroppe opleßte. Dadd es johd, öm eruß ze fenge ovv en beschtemmpte Sigg en en beschtemmpte Saachjropp dren es.",
        "apihelp-query+categories-param-dir": "En wälsche Reijefollsch?",
        "apihelp-query+categories-example-simple": "Holl en Leß med alle Saachjroppe, woh di Sigg <kbd>Albert Einstein</kbd> dren es.",
        "apihelp-query+categories-example-generator": "Holl Aanjahbe övver alle Saachjroppe, di en dä Sigg <kbd>Albert Einstein</kbd> jebruch wähde.",
        "apihelp-query+categoryinfo-description": "Holl Aanjahbe övver de aanjejovve Saachjroppe.",
+       "apihelp-query+categoryinfo-example-simple": "Holl Enfomazjuhne övver „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Category:Foo</kbd>“ un „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Category:Bar</kbd>“.",
        "apihelp-query+categorymembers-description": "Donn alle Sigge en ener aanjejove saachjrobb opleste.",
+       "apihelp-query+categorymembers-param-title": "Wat för en Sachjropp opzälle. Moß aanjejovve sin. Moß der Vörsaz „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">{{ns:category}}:</kbd>“ änthallde. Kam_mer nit zesamme met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1pageid</var>“ bruche.",
+       "apihelp-query+categorymembers-param-pageid": "De Kännong vun dä Sigg zom opzälle. Kam_mer nit zersamme met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1title</var>“ bruche.",
        "apihelp-query+categorymembers-param-limit": "De jrüüßte Zahl Sigge för ußzejävve.",
        "apihelp-query+categorymembers-param-sort": "De Eijeschavv öm dernoh ze zottehre.",
        "apihelp-query+categorymembers-param-dir": "En wälsche Reihjefollsch opleßte.",
        "apihelp-query+categorymembers-param-endsortkey": "Söhk „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1endhexsortkey </code>“ schtatt dämm.",
        "apihelp-query+categorymembers-example-simple": "Holl de eezde zehn Sigge de dä <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Category:Physics</kbd>.",
        "apihelp-query+categorymembers-example-generator": "Holl anjahbe övver de eezde zehn Sigge de dä <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Category:Physics</kbd>.",
+       "apihelp-query+contributors-description": "Holl de Leß met de ennjelogg Schrihver un de Aanzahl nahmelohse Metschrihver aan ene Sigg.",
+       "apihelp-query+contributors-param-limit": "Wi vill Metschrihver ze livvere?",
+       "apihelp-query+contributors-example-simple": "Donn de Metschrihver aan dä Sigg „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">KMain PageBD</kbd>“ aanzeije.",
+       "apihelp-query+deletedrevisions-param-tag": "Donn blohß Väsjohne met heh dä Makkehrong opleßte.",
        "apihelp-query+deletedrevisions-param-user": "Donn blohß Väsjohne vun heh däm Metmaacher opleßte.",
        "apihelp-query+deletedrevisions-param-excludeuser": "Donn kein Väsjohne vun heh däm Metmaacher opleßte.",
        "apihelp-query+deletedrevisions-param-limit": "De hühßde Aanzahl Väsjohne för opzeleßte.",
        "apihelp-query+deletedrevs-param-to": "Hühr de Leß bei heh dä Överschreff oop.",
        "apihelp-query+deletedrevs-param-prefix": "Söhk noh Sigge, woh de Övverschrevv esu aanfängk.",
        "apihelp-query+deletedrevs-param-unique": "Donn blohß ein Väsjohn för jehde Sigg opleßte.",
-       "apihelp-query+deletedrevs-param-tag": "Donn blohß Väsjohne met heh dä Makehrong opleßte.",
+       "apihelp-query+deletedrevs-param-tag": "Donn blohß Väsjohne met heh dä Makkehrong opleßte.",
        "apihelp-query+deletedrevs-param-user": "Donn blohß Väsjohne vun heh däm Metmaacher opleßte.",
        "apihelp-query+deletedrevs-param-excludeuser": "Donn kein Väsjohne vun heh däm Metmaacher opleßte.",
        "apihelp-query+deletedrevs-param-namespace": "Donn blohß Sigge en heh däm Appachtemang opleßte.",
        "apihelp-query+duplicatefiles-example-simple": "Lohr noh Datteije, di dubbelte vun dä Dattei „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[:File:Albert Einstein Head.jpg]]</code>“ sin.",
        "apihelp-query+duplicatefiles-example-generated": "Lohr noh Dubbelte vun alle Datteije.",
        "apihelp-query+embeddedin-description": "Fengk alle Sigge, di di aanjejovve Dattei enneschlehße.",
+       "apihelp-query+embeddedin-param-title": "De Övverschreff för noh ze Söhke. Kam_mer nit zesamme met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1pageid</var>“ bruche.",
+       "apihelp-query+embeddedin-param-pageid": "De Känong vun dä Sigg zom noh Söhke. Kam_mer nit zesamme met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1title</var>“ bruche.",
+       "apihelp-query+embeddedin-param-namespace": "Dat Appachtemang zom opzälle.",
        "apihelp-query+embeddedin-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+embeddedin-param-filterredir": "Wi de Ömleijdonge ußzottehre?",
+       "apihelp-query+embeddedin-param-limit": "Wi vill Sigge ensjesammp zem ußjävve?",
+       "apihelp-query+extlinks-param-limit": "Wi vill Lengks ußjävve?",
+       "apihelp-query+exturlusage-param-limit": "Wi vill Sigge zem ußjävve?",
        "apihelp-query+filearchive-description": "Donn alle fottjeschmeße Datteije der Reih noh opzälle.",
        "apihelp-query+filearchive-param-from": "De Övverschreff vun däm Beld, woh de Leß medd aanfange sull.",
        "apihelp-query+filearchive-param-to": "De Övverschreff vun däm Beld, woh de Leß medd ophühre sull.",
        "apihelp-query+filearchive-param-prefix": "Söhk noh alle Övverschreffte vun Bellder, di met heh dämm Wäät bejenne.",
        "apihelp-query+filearchive-param-limit": "Wi vell Bellder ensjesamp zeröckjävve.",
        "apihelp-query+filearchive-param-dir": "En wälsche Reijefollsch opleßte.",
+       "apihelp-query+filearchive-param-sha1": "Däm Beld singe <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"secure hash algorithm\">SHA-1</i>-Pröhvsomm. Övverjeiht „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1sha1base36</code>“.",
+       "apihelp-query+filearchive-param-sha1base36": "Däm Beld singe <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"secure hash algorithm\">SHA-1</i>-Pröhvsomm em 36-jer Zahlesüßtehm. Weed em Mehdiajwikki jebruch.",
        "apihelp-query+filearchive-example-simple": "Zeijsch en leß met alle fottjeschmeße Datteije.",
+       "apihelp-query+filerepoinfo-example-simple": "Holl ennfommazjuhne övver de Reppossetohreje met Datteije.",
+       "apihelp-query+fileusage-description": "Fengk alle Sigge, di de aanjejovve Datteije bruche.",
+       "apihelp-query+fileusage-param-namespace": "Donn blohß Sigge en heh dä Appachtemangs metnämme.",
+       "apihelp-query+fileusage-param-limit": "Wi vill holle?",
+       "apihelp-query+fileusage-example-simple": "Holl Aanjahbe övver Sigge, di de Dattei „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[:File:Example.jpg]].</code>“ bruche.",
+       "apihelp-query+fileusage-example-generator": "Holl Aanjahbe övver Sigge, di de Dattei „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[:File:Example.jpg]].</code>“ bruche",
+       "apihelp-query+imageinfo-description": "Jidd Enfommazjuhne övver Datteije un de Verjangeheid vum Huhlahde aan.",
+       "apihelp-query+imageinfo-param-prop": "Wat för en Schtöker aan Ennfommazjuhne holle:",
+       "apihelp-query+imageinfo-paramvalue-prop-timestamp": "Deihd en dattom un en Zigg aan de huhjelahde Väsjohn.",
+       "apihelp-query+imageinfo-paramvalue-prop-user": "Deiht dä Metmaacher derbei, dä jehde Väsjohn vun dä Dattei huhjelahde hät.",
+       "apihelp-query+imageinfo-paramvalue-prop-userid": "Deiht de Kännong vun däm Metmaacher derbei, dä jehde Väsohn vun dä Dattei.",
+       "apihelp-query+imageinfo-paramvalue-prop-comment": "Aanmärkonge bei dä Väsjohn.",
+       "apihelp-query+imageinfo-paramvalue-prop-parsedcomment": "Donn di Aanmärkonge bei dä Väsjohn paase.",
+       "apihelp-query+imageinfo-paramvalue-prop-canonicaltitle": "Deiht de kannohnesche Överschreff vun dä Dattei derbei.",
+       "apihelp-query+imageinfo-paramvalue-prop-url": "Jitt dä <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Uniform Ressource Locator\">URL</i> för di Dattei un de Sigg met däh iere Äkliehrong uß.",
+       "apihelp-query+imageinfo-paramvalue-prop-size": "Deiht de Jrühße vun dä Dattei en \n<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Bytes</i>, de Hühde, de Breide, un, woh et se jitt, de Aanzahl Sigge derbei.",
+       "apihelp-query+imageinfo-paramvalue-prop-dimensions": "Et sällve, wi de Jrühße.",
+       "apihelp-query+imageinfo-paramvalue-prop-sha1": "Deiht de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"secure hash algorithm\">SHA-1</i>-Pröhvsomm för di Dattei derbei.",
+       "apihelp-query+imageinfo-paramvalue-prop-mime": "Deiht de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Zoot fun dä Dattei derbei.",
+       "apihelp-query+imageinfo-paramvalue-prop-thumbmime": "Deiht de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Zoot fun däm Minnibelldsche vun dä Dattei derbei. Bruch en <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Uniform Ressource Locator\">URL</i> un dä Parramehter „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1urlwidth</code>“.",
+       "apihelp-query+imageinfo-paramvalue-prop-mediatype": "Deiht de Mehdijje_Zoot vun dä Dattei derbei.",
+       "apihelp-query+imageinfo-paramvalue-prop-metadata": "Deiht de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Exchangeable image file format\">EXIF</i>-Mettadahte för di Väsjohn vun dä Dattei oplesßte.",
+       "apihelp-query+imageinfo-paramvalue-prop-commonmetadata": "Deiht de Mettadahte för heh di Väsjohn vun dä Dattei oplesßte, di alld schtandattmähßesch en däm Datteifommaht änthallde sin.",
+       "apihelp-query+imageinfo-param-limit": "Wi vill Väsjohne för jehde Dattei ußjävve.",
+       "apihelp-query+imageinfo-param-start": "Et Dattom un de Zigg, vun woh aan opleßte.",
+       "apihelp-query+imageinfo-param-end": "Et Dattom un de Zigg, vun woh aan opleßte.",
+       "apihelp-query+imageinfo-param-urlheight": "Ähnlesch wi „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1urlwidth</code>“.",
+       "apihelp-query+imageinfo-param-localonly": "Belohr blohß de Datteije em eije Wikki singe Sammlong.",
+       "apihelp-query+imageinfo-example-simple": "Holl Enformazjuhne övver de aktoälle Väsjohn fun dä Dattei „<code lang=\"mul\" xml:lang=\"mul\" dir=\"ltr\">[[:File:Albert Einstein Head.jpg]]</code>“",
+       "apihelp-query+imageinfo-example-dated": "Holl Enformazjuhne övver de Väsjohne fun dä Dattei „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[:File:Test.jpg]]</code>“ vum Johr 2008 un schpääder.",
+       "apihelp-query+images-description": "Jidd alle Datteije uß, di en dä aanjejovve Sigge sin.",
+       "apihelp-query+images-param-limit": "Wi vill Datteije holle?",
+       "apihelp-query+images-param-images": "Donn blohß heh di Datteije opleßte. Dadd es johd, öm eruß ze fenge ovv en en beschtemmpte Sigg beschtemmpte Datteije dren sin.",
        "apihelp-query+images-param-dir": "En wälsche Reijefollsch opleßte.",
+       "apihelp-query+images-example-simple": "Holl en Leß vun Datteije, di en de „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[Main Page]]</code>“.",
+       "apihelp-query+images-example-generator": "Holl Ennfommazjuhne övver alle Datteije, di en de „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[Main Page]]</code>“ jebruch wähde.",
+       "apihelp-query+imageusage-description": "Fengk alle Sigge, di en Beld medd ene bschtemmpte Övverschreff bruche.",
+       "apihelp-query+imageusage-param-title": "De Övverschreff för noh ze Söhke. Kam_mer nit zesamme met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1pageid</var>“ bruche.",
+       "apihelp-query+imageusage-param-pageid": "De Känong vun dä Sigg zom noh Söhke. Kam_mer nit zesamme met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1title</var>“ bruche.",
        "apihelp-query+imageusage-param-namespace": "Dat Appachtemang zom opzälle.",
        "apihelp-query+imageusage-param-dir": "En wälsche Reijefollsch opleßte.",
+       "apihelp-query+imageusage-example-simple": "Zeijsch Sigge, di di Dattei „<code lang=\"mul\" xml:lang=\"mul\" dir=\"ltr\">[[:File:Albert Einstein Head.jpg]]</code>“ bruche.",
+       "apihelp-query+imageusage-example-generator": "Holl Enformazjuhne övver de Sigge, di di Dattei „<code lang=\"mul\" xml:lang=\"mul\" dir=\"ltr\">[[:File:Albert Einstein Head.jpg]]</code>“ bruche.",
+       "apihelp-query+info-description": "Holl jrondlähje Ennfommazjuhne övver di Sigg.",
+       "apihelp-query+info-param-prop": "Wat för en zohsäzlejje Eijeschaffte holle:",
+       "apihelp-query+info-paramvalue-prop-protection": "Donn der Siggeschoz för jehde Sigg opleßte.",
+       "apihelp-query+info-paramvalue-prop-talkid": "De Kännong för de Klaafsigg för jehde Nit-Klaafsigg.",
+       "apihelp-query+info-paramvalue-prop-watched": "Donn der Zohschtand vum Oppaße för jehde Sigg opleßte.",
        "apihelp-query+info-paramvalue-prop-watchers": "De Aanzahl Oppaßer, wann zohjelohße.",
+       "apihelp-query+info-paramvalue-prop-subjectid": "De Kännong för de övverje'odente Sigg för jehde Klaafsigg.",
+       "apihelp-query+info-paramvalue-prop-url": "Jidd en kumplätte <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Uniform Ressource Locator\">URL</i>, en <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Uniform Ressource Locator\">URL</i> för et Beärbeide, un en kannohnesche <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Uniform Ressource Locator\">URL</i> för jehde Sigg uß.",
+       "apihelp-query+info-paramvalue-prop-readable": "Ov dä Metmaacher heh di Sigg lässe kann.",
+       "apihelp-query+iwbacklinks-param-prefix": "De Engerwikki_Vörsaz.",
+       "apihelp-query+iwbacklinks-param-title": "Der Engerwikki_Lengk för noh ze söhke. Moß met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1blprefix</var>“ zersamme jebruch wähde.",
+       "apihelp-query+iwbacklinks-param-limit": "Wi vill Sigge ensjesammp zem ußjävve?",
+       "apihelp-query+iwbacklinks-param-prop": "Wat för en Eijeschaffte holle:\n;iwprefix:Deiht dä Engerwikki_Vörsaz derbei.\n;iwtitle:Deiht de Engerwikki_Övverschreff derbei.",
        "apihelp-query+iwbacklinks-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+iwbacklinks-example-simple": "Holl Sigge, di op „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[wikibooks:Test]]</code>“ verlengke.",
+       "apihelp-query+iwbacklinks-example-generator": "Holl Ennfommazjuhne övver Sigge, di op „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[wikibooks:Test]]</code>“ verlengke.",
+       "apihelp-query+iwlinks-description": "Jiff alle Engerwikki_Lengks vun de aanjejovve Sigge uß.",
+       "apihelp-query+iwlinks-param-limit": "Wi vill Engerwikki_Lengks zem ußjävve?",
+       "apihelp-query+iwlinks-param-prefix": "Jiff blohß de Engerwikki_Lengks uß, di dermet aanfange.",
        "apihelp-query+iwlinks-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+langbacklinks-param-lang": "Schprohch för dä Schprohche_Lengk.",
+       "apihelp-query+langbacklinks-param-title": "Der Schprohche_Lengk för noh ze söhke. Moß zersamme met <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1lang</code> jebruch wähde.",
+       "apihelp-query+langbacklinks-param-limit": "Wi vill Sigge ensjesammp zem ußjävve?",
        "apihelp-query+langbacklinks-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+langbacklinks-example-simple": "Holl Sigge, di op „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[:fr:Test]]</code>“ verlengke.",
+       "apihelp-query+langbacklinks-example-generator": "Holl Ennfommazjuhne övver Sigge, di op „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[:fr:Test]]</code>“ verlengke.",
+       "apihelp-query+langlinks-description": "Jiff alle Schprohche_Lengks vun de aanjejovve Sigge uß.",
+       "apihelp-query+langlinks-param-limit": "Wi vill Schprohche_Lengks holle?",
+       "apihelp-query+langlinks-param-lang": "Donn blohß de Schprohche_Lengks met däm aanjejovve Schprohche_Köözel.",
        "apihelp-query+langlinks-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+links-description": "Jiff alle Lengks vun de aanjejovve Sigge uß.",
+       "apihelp-query+links-param-limit": "Wi vill Lengks ußjävve?",
+       "apihelp-query+links-param-titles": "Donn blohß e Lengks of heh di Övverschreffte opleßte. Dadd es johd, öm eruß ze fenge ovv en en beschtemmpte Sigg op ene beschtemmpte Övverschreff verlengk es.",
        "apihelp-query+links-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+linkshere-description": "Fengk alle Sigge, di op de aanjejovve Sigge lengke.",
+       "apihelp-query+linkshere-param-prop": "Wat för en Eijeschaffte holle:\n;pageid:Page ID of each page.\n;title:Title of each page.\n;redirect:Flag if the page is a redirect.",
+       "apihelp-query+linkshere-param-namespace": "Donn blohß Sigge en heh dä Appachtemangs metnämme.",
+       "apihelp-query+linkshere-param-limit": "Wi vill holle?",
+       "apihelp-query+linkshere-example-simple": "Holl en Leß vun Sigge, di op de Sigg „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[Main Page]]</code>“ lengke donn.",
+       "apihelp-query+linkshere-example-generator": "Holl Ennfommazjuhne övver Sigge, di op de Sigg „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[Main Page]]</code>“ lengke.",
+       "apihelp-query+logevents-description": "Holl Enndrähsch us de Logböhscher.",
+       "apihelp-query+logevents-param-type": "Söhk blohß heh di Zood Enndrähsch us de Logböhscher.",
+       "apihelp-query+logevents-param-start": "Et Dattom un de Zigg vun woh aff opjezallt wähde sull.",
+       "apihelp-query+logevents-param-end": "Dattum un Uhrzigg, bes wann opzälle.",
+       "apihelp-query+logevents-param-user": "Donn de Enndrähsch beschrängke ob di vun enem bechtemmpte Metmaacher.",
+       "apihelp-query+logevents-param-title": "Donn de Enndrähsch beschrängke ob di sesch obb_en beschtemmpte Sigg beträcke.",
+       "apihelp-query+logevents-param-namespace": "Donn de Enndrähsch beschrängke obb e besschtemmp Appachtemang.",
+       "apihelp-query+logevents-param-prefix": "Donn de Enndrähsch beschrängke ob di medd enem beschtemmpte Bejenn.",
+       "apihelp-query+logevents-param-tag": "Donn blohß Väsjohne met heh dä Makkehrong opleßte.",
+       "apihelp-query+logevents-param-limit": "Wi vill Enndrähsch enjesammp ußjävve?",
+       "apihelp-query+logevents-example-simple": "Donn de neußte Enndrähsch uß de Logböhscher opleßte.",
+       "apihelp-query+pagepropnames-description": "Donn alle Nahme vun Eijeschaffte vun Sigge heh em Wikki opleßte.",
        "apihelp-query+pagepropnames-param-limit": "De jrüüßte Zahl Nahme för ußzejävve.",
        "apihelp-query+pagepropnames-example-simple": "Holl de eezde zehn Nahme vun Eijeschaffte.",
+       "apihelp-query+pageprops-description": "Jitt devärse Eijeschafte uß, di em Ennhald vun dä Sigg faßjelaat wohde sen.",
        "apihelp-query+pageprops-example-simple": "Holl de Eijeschaffte för di Sigge „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Main Page</kbd>“ un „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">MediaWiki</kbd>“.",
+       "apihelp-query+pageswithprop-description": "Donn alle Sigge met bechtemmpte Sigge_Eijeschaff opleßte.",
        "apihelp-query+pageswithprop-param-limit": "De jrüüßte Zahl Sigge för ußzejävve.",
        "apihelp-query+pageswithprop-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+prefixsearch-description": "Söhk nohm Aanfang vun dä Övverschreffte vun de Sigge.",
+       "apihelp-query+prefixsearch-param-search": "Noh wat söhke?",
        "apihelp-query+prefixsearch-param-namespace": "En wällschem Appachtemang söhke.",
        "apihelp-query+prefixsearch-param-limit": "De hühßte Aanzahl vun Äjeebnesse för zeröck ze jävve",
+       "apihelp-query+prefixsearch-param-offset": "De Aanzahl vun Äjeebnesse för ze övverjonn.",
+       "apihelp-query+prefixsearch-example-simple": "Söhk noh Övverschreffte vun Sigge, di met \n„<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">meaning</kbd>“ bejenne.",
+       "apihelp-query+protectedtitles-description": "Donn alle Överschreffte vun Sigge opleßte, di verbodde sin, aanzelähje.",
+       "apihelp-query+protectedtitles-param-namespace": "Donn blohß Sigge en heh dä Appachtemangs opleßte.",
+       "apihelp-query+protectedtitles-param-level": "Donn blohß de Övverschreffte vun Sigge met heh dämm Nivoh vum Sigge_Schoz opeleßte.",
+       "apihelp-query+protectedtitles-param-limit": "Wi vill Sigge ensjesammp zem ußjävve?",
+       "apihelp-query+protectedtitles-example-simple": "Donn jeschöz Övverschreffte opleßte.",
+       "apihelp-query+protectedtitles-example-generator": "Fengk Lengks op jeschözde Övverschreffte em Houp_Appachemang.",
+       "apihelp-query+querypage-param-page": "Dä {{int:specialpage}} iere Name. Opjepaß: De Jruhs- un Kleinschreff schpelld en Roll.",
        "apihelp-query+querypage-param-limit": "De Aanzahl vun Äjeebnesse för zeröck ze jävve",
+       "apihelp-query+querypage-example-ancientpages": "Donn de Äjehbneße vun „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[Special:Ancientpages]]</code>“ ußjävve.",
+       "apihelp-query+random-param-namespace": "Jiff blohß sigge en heh dä Appachtemangs uß.",
        "apihelp-query+random-param-limit": "Wi vill zohfälleje Sigge sulle ußjejovve wähde?",
+       "apihelp-query+random-param-redirect": "Donn en zohfälleje Ömleijdong anschtatt vun ene zohfälleje Sigg lahde.",
+       "apihelp-query+random-example-simple": "Donn zwai zohfälleje Sigge vum Houb_Appachtemang ußjävve.",
+       "apihelp-query+random-example-generator": "Donn Ennfommazjuhne övver zwai zohfälleje Sigge vum Houb_Appachtemang ußjävve.",
+       "apihelp-query+recentchanges-description": "Donn de  neußte Änderonge opleßte.",
+       "apihelp-query+recentchanges-param-start": "Et Dattom un de Zigg vun woh aff opjezallt wähde sull.",
+       "apihelp-query+recentchanges-param-end": "Dattum un Uhrzigg, bes wann opzälle.",
+       "apihelp-query+recentchanges-param-user": "Donn blohß Änderonge vun heh däm Metmaacher opleßte.",
+       "apihelp-query+recentchanges-param-excludeuser": "Donn kein Änderonge vun heh däm Metmaacher opleßte.",
+       "apihelp-query+recentchanges-param-tag": "Donn blohß Änderonge met heh dä Makkehrong opleßte.",
+       "apihelp-query+recentchanges-param-limit": "Wi vill Änderonge ensjesammp zem aanzeije?",
+       "apihelp-query+recentchanges-param-type": "Wat för en Zoot Änneronge aanzeije?",
+       "apihelp-query+recentchanges-param-toponly": "Bloß Änderonge aanzeije, woh de neußte Väsjohn beij eruß kohm.",
+       "apihelp-query+recentchanges-example-simple": "Zeijsch de {{LCFIRST:{{int:recentchanges}}}}",
+       "apihelp-query+redirects-description": "Jiff alle Ömleijdonge noh dä aanjejovve Sigge uß.",
+       "apihelp-query+redirects-param-prop": "Wat för en Eijeschaffte holle:\n;<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">pageid</code>:De Sigge_Kännong för jehde Ömleijdong.\n;<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">title</code>:De Övverschreff för jehde Ömleijdong.\n;<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">fragment</code>:Der Fragmännd_Aandeijl för jehde Ömleijdong, wann eine doh es.",
+       "apihelp-query+redirects-param-namespace": "Donn blohß Sigge en heh dä Appachtemangs metnämme.",
+       "apihelp-query+redirects-param-limit": "Wi vell Ömeijdonge ußjävve?",
+       "apihelp-query+redirects-param-show": "Zeijsch blohß de Ömleijdonge:\n;<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">fragment</code>:med enem Fragmännd_Aandeijl.\n;<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">!fragment</code>:der ohne ene Fragmännd_Aandeijl.",
+       "apihelp-query+redirects-example-simple": "Holl en Leß met Ömleijdonge, di op de Sigg „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[Main Page]]</code>“ jonn.",
+       "apihelp-query+redirects-example-generator": "Holl Ennfommazjuhne övver alle Ömleijdonge op di Sigg „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[Main Page]]</code>“.",
+       "apihelp-query+revisions-paraminfo-singlepageonly": "Kam_mer blohß med en einzel Sigg bruche (mode #2)",
+       "apihelp-query+revisions-param-startid": "De Kännong vun dä Väsjohn vun woh aff opjezallt wähde sull.",
+       "apihelp-query+revisions-param-endid": "De Kännong vun dä Väsjohn bes woh hen opjezallt wähde sull.",
+       "apihelp-query+revisions-param-start": "Et Dattom un de Zigg vun dä Väsjohn vun woh aff opjezallt wähde sull.",
+       "apihelp-query+revisions-param-end": "Et Dattom un de Zigg bes woh hen opjezallt wähde sull.",
+       "apihelp-query+revisions-param-user": "Väsjohne vun däm Metmaache ennschlehße.",
+       "apihelp-query+revisions-param-excludeuser": "Väsjohne vun däm Metmaache ußschlehße.",
+       "apihelp-query+revisions-param-tag": "Donn blohß Väsjohne met heh dä Makkehrong opleßte.",
+       "apihelp-query+revisions-param-token": "Wat för en Makkehronge för jehde Väsjohn holle.",
+       "apihelp-query+revisions-example-content": "Holl Dahte med Ennhalld för de läzde Väsjohn vun Övverschreffte \n„<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">API</kbd>“ un \n„<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Main Page</kbd>“.",
+       "apihelp-query+revisions-example-last5": "Holl de läzde fönnef Väsjohne vun de „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Main Page</kbd>“.",
+       "apihelp-query+revisions-example-first5": "Holl de eezde fönnef Väsjohne vun de „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Main Page</kbd>“.",
+       "apihelp-query+revisions-example-first5-after": "Holl de eezde fönnef Väsjohne vun de „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Main Page</kbd>“, di noh em eezde Mai em Johr 2006 änschtannde sin.",
+       "apihelp-query+revisions-example-first5-not-localhost": "Holl de ehzde Väsjohne vun de „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Main Page</kbd>“ di nit vun dämm nahmelohse Metmaacher „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">127.0.0.1</kbd>“ jemaht wohde.",
+       "apihelp-query+revisions-example-first5-user": "Holl de eezde fönnef Väsjohne vun de „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Main Page</kbd>“, di vum Metmaacher „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">MediaWiki default</kbd>“ aanjelahd wohde.",
        "apihelp-query+revisions+base-param-limit": "Wi vill Väsjohne sulle ußjejovve wähde?",
+       "apihelp-query+revisions+base-param-section": "Holl blohß der Ennhald vun däm Affschnett met heh dä Nommer.",
+       "apihelp-query+search-description": "Söhk em jannze Täx.",
+       "apihelp-query+search-param-search": "Söhk noh alle Övverschreffte vun Sigge udder Ennhallde, woh dä Wäät drop paß. Mer kann heh met besönder Aufjahbe beim Söhke schtälle, jeh nohdämm wadd_em Wikki sing Projramm för et Söhke esu alles kann.",
+       "apihelp-query+search-param-namespace": "Söhk blohß en heh dä Appachtemangs.",
+       "apihelp-query+search-param-what": "Wat för en Aat ze Söhke?",
+       "apihelp-query+search-param-info": "Wat för en Metta_Dahte ußzejävve.",
+       "apihelp-query+search-param-limit": "Wi vill Sigge ensjesamp ußjävve?",
+       "apihelp-query+search-example-simple": "Söhk noh „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">meaning</kbd>“.",
+       "apihelp-query+search-example-text": "Söhk en Täxte noh „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">meaning</kbd>“.",
+       "apihelp-query+search-example-generator": "Holl anjahbe övver di Sigge, di jefonge wähde beim söhke noh \n„<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">meaning</kbd>“",
+       "apihelp-query+siteinfo-description": "Jiff alljemeine Ennfommazjuhne övver heh di ẞaid_uß.",
        "apihelp-query+siteinfo-param-numberingroup": "Donn de Aanzahl Metmaacher en de Jroppe vun Metmaacher opleßte.",
-       "apihelp-query+tags-param-limit": "De hühßde Aanzahl !!FUZY tags zom opleste.",
-       "apihelp-query+tags-param-prop": "Wat för en Eijschaffte holle:\n;name:Deiht dä Nahme vun dä Makehrong derbei.\n;displayname:Deiht der Täx vum Wikki för de Makehrong derbei.\n;description:Deiht dä Beschrievongstäx vun dä Makehrong derbei.\n;hitcount:Deiht de Aanzahl vun Väsjohne un Enndrähsch em Logbohch derbei, di di Makehrong han.\n;defined:Jivv aan, ov di Makehrong övverhoup doh es.\n;source:Hollt de Kwälle vun de Makehrong, dat kann ömfaße: „<samp lang=\"en\" xml:lang=\"en\" dir=\"ltr\">extension</samp>“ för Makehronge, di vun Zohsazprojramme faßjelaat wähde, un „<samp lang=\"en\" xml:lang=\"en\" dir=\"ltr\">manual</samp>“ för Makehronge, di vun de Metmaacher vun Hand verjovve wohde.\n;active:Ov de Makehrong emmer noch aktihv es.",
+       "apihelp-query+siteinfo-example-simple": "Holl Ennfommazjuhe övver heh di ẞait.",
+       "apihelp-query+tags-param-limit": "De hühßde Aanzahl  tags zom opleste.",
+       "apihelp-query+tags-param-prop": "Wat för en Eijschaffte holle:\n;<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">name</code>:Deiht dä Nahme vun dä Makkehrong derbei.\n;<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">displayname</code>:Deiht der Täx vum Wikki för de Makkehrong derbei.\n;<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">description</code>:Deiht dä Beschrievongstäx vun dä Makkehrong derbei.\n;<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">hitcount</code>:Deiht de Aanzahl vun Väsjohne un Enndrähsch em Logbohch derbei, di di Makkehrong han.\n;<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">defined</code>:Jivv aan, ov di Makkehrong övverhoup doh es.\n;<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">source</code>:Hollt de Kwälle vun de Makkehrong, dat kann ömfaße: „<samp lang=\"en\" xml:lang=\"en\" dir=\"ltr\">extension</samp>“ för Makkehronge, di vun Zohsazprojramme faßjelaat wähde, un „<samp lang=\"en\" xml:lang=\"en\" dir=\"ltr\">manual</samp>“ för Makkehronge, di vun de Metmaacher vun Hand verjovve wohde.\n;<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">active</code>:Ov de Makkehrong emmer noch aktihv es.",
+       "apihelp-query+tags-example-simple": "Leß de verföhschbahre Makkehronge op.",
+       "apihelp-query+templates-description": "Jidd alle Datteije uß, di en dä aanjejovve Sigge enjebonge sin.",
+       "apihelp-query+templates-param-namespace": "Zeijsch blohß de Schablohne en heh däm Appachtemang.",
        "apihelp-query+templates-param-limit": "Wi vill Schablohne sulle ußjejovve wähde?",
        "apihelp-query+templates-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+transcludedin-description": "Fengk alle Sigge, di di aanjejovve Sigge enneschlehße.",
+       "apihelp-query+transcludedin-param-namespace": "Donn blohß Sigge en heh dä Appachtemangs ennschlehße.",
+       "apihelp-query+transcludedin-param-limit": "Wi vill ußjävve.",
+       "apihelp-query+usercontribs-description": "Holl alle Änderonge vun enem Metmaacher.",
        "apihelp-query+usercontribs-param-limit": "De hühßte Aanzahl vun Meddeilonge för zeröck ze jävve",
+       "apihelp-query+usercontribs-param-user": "De Metmaacher för di mer Beijdrähsch holle welle.",
+       "apihelp-query+usercontribs-param-namespace": "Donn blohß Beijdrähsch en heh dä Appachtemangs opleßte.",
+       "apihelp-query+usercontribs-param-tag": "Donn blohß Väsjohne met heh dä Makehrong opleßte.",
+       "apihelp-query+usercontribs-param-toponly": "Bloß Änderonge aanzeije, woh de neußte Väsjohn beij eruß kohm.",
+       "apihelp-query+userinfo-description": "Holl Aanjahbe övver dä aktoälle Metmaacher.",
+       "apihelp-query+userinfo-example-simple": "Holl Aanjahbe övver dä aktoälle Metmaacher.",
+       "apihelp-query+userinfo-example-data": "Holl zohsäzlejje Aanjahbe övver dä aktoälle Metmaacher.",
+       "apihelp-query+users-description": "Holl Aanjahbe övver en Leß vun Metmaacher.",
+       "apihelp-query+users-param-users": "En Leß vun Metmaacher för Aanjahbe drövver ze holle.",
+       "apihelp-query+users-example-simple": "Holl Aanjahbe för dä Metmaacher <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Example</kbd>.",
+       "apihelp-query+watchlist-param-end": "Et Dattum un Uhrzigg, bes wann opzälle.",
+       "apihelp-query+watchlist-param-user": "Donn blohß Änderonge vun heh däm Metmaacher opleßte.",
+       "apihelp-query+watchlist-param-excludeuser": "Donn kein Änderonge vun heh däm Metmaacher opleßte.",
+       "apihelp-query+watchlistraw-description": "Donn alle Sigge uß dem aktälle Metmaacher sing Oppaßleß holle.",
+       "apihelp-query+watchlistraw-param-namespace": "Donn blohß Sigge en heh däm Appachtemang opleßte.",
+       "apihelp-query+watchlistraw-example-simple": "Donn alle Sigge uß dem aktälle Metmaacher sing Oppaßleß opleßte.",
+       "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-suppress": "Ov dat och för de Wiki-Köbesse verschtoche wähde sull, wie för jede Andere.",
+       "apihelp-rollback-param-title": "De Övverschreff vun dä Sigg för di_j_en vörrejje Väsjohn zeröckzeholle es. Kam_mer nit zersamme met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1pageid</var>“ bruche.",
+       "apihelp-rollback-param-pageid": "De Kännong vun dä Sigg för di_j_en vörrejje Väsjohn zeröckzeholle es. Kam_mer nit zersamme met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1title</var>“ bruche.",
+       "apihelp-setnotificationtimestamp-param-entirewatchlist": "Donn alle Sigge beärbeide, di en Oppaßleßte dren sin.",
        "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 mieh, woh di Makkehrong derbei jedonn udder fott jenumme wähde sull.",
+       "apihelp-tag-param-logid": "Ein Kännong udder mieh uß de neuste Änderonge, woh di Makkehrong derbei jedonn udder fott jenumme wähde sull.",
        "apihelp-tag-param-add": "De Makkehrong zom Zohföhje. Bloß de vun Hand aanjelaat Makkehronge künne heh zohjeföhsch wähde.",
+       "apihelp-tag-param-remove": "Makkehronge zom fott nämme. Blohß vun Hand jesaz un kumplätt onjesaz Makkehronge künne fott jenumme wähde.",
        "apihelp-tag-param-reason": "Dä Jrond för di Änderong.",
        "apihelp-tag-example-rev": "Donn de Makkehrong „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">vandalism</kbd>“ vun dä Väsjohn met dä Kännong „<kbd>123</kbd>“ fott nämme, der ohne ene Jrond ze nänne.",
        "apihelp-tag-example-log": "Donn de Makkehrong „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">spam</kbd>“ vun dämm Enndrahch met dä Kännong „<kbd>123</kbd>“ em Logbohch fott nämme un als Jrond draaach „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Wrongly applied</kbd>“ enn.",
+       "apihelp-unblock-description": "Don en Schpärr för ene Metmaacher ophävve.",
+       "apihelp-unblock-param-reason": "Der Jrond för de Schpärr opzehävve.",
+       "apihelp-undelete-param-title": "De Övverschreff vun dä Sigg zom zerök holle.",
+       "apihelp-undelete-param-reason": "Der Jrond för et Zerök holle.",
+       "apihelp-undelete-example-page": "Schmiiß de Sigg „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Main Page</kbd>“ fott.",
+       "apihelp-undelete-example-revisions": "Holl zwai Väsjohne vun dä Sigg „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Main Page</kbd>“ zerök.",
        "apihelp-upload-description": "Donn en Dattei huh lahde, udder holl der Zohschtand vun de onfähdesch huhjelahde Datteije .\n\nEt jitt ongerscheidlejje Metohde:\n* Donn de Ennhallde vun de Datteije tiräk huhlahde, övver der Parramehter „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1file</var>“.\n* Donn de Datteije en en Aanzahl Rötsche huhlahde, övver de Parramehter „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1filesize</var>“, „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1chunk</var>“, un „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1offset</var>“.\n* Lohß der ẞööver vum Wikki en Dattei vun enem <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Uniform Ressource Locator\">URL</i> holle, övver de Parramehter „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1url</var>“.\n* Lohß en Dattei fähdesch huhlahde, di zeläz nit fähdesch wohd, un met Warnonge schtonn jeblevve es övver de Parramehter „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1filekey</var>“.\nOpjepaß: dä „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">POST</code>“-Befähl vum <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"HyperText Transfer Protocol\">HTTP</i> moß als e Dattei-Huhlahde aanjeschtüßße wähde, allsu met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">multipart/form-data</code>“, wam_mer dä Parramehter „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1file</var>“ scheck.",
+       "apihelp-upload-param-filename": "Zihl-Dateiname.",
+       "apihelp-upload-param-watch": "Op di Sigg heh oppaßße.",
+       "apihelp-upload-param-watchlist": "Donn di Sigg op däm aktoälle Metmaacher sing Oppaßleß udder nemm se druß fott, donn de Enschtällonge nämme, udder donn de Oppaßleß jaa nit verändere.",
+       "apihelp-upload-param-ignorewarnings": "Donn alle Warnonge övverjonn.",
+       "apihelp-upload-param-file": "Dä Dattei ier Enhallde.",
+       "apihelp-upload-param-url": "Der <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Uniform Ressource Locator\">URL</i>, öm di Dattei dervun ze holle.",
+       "apihelp-upload-param-filesize": "De Datteijrühße vum jannze Huhlahde.",
+       "apihelp-upload-param-asyncdownload": "Maach dat Holle vun ene <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Uniform Ressource Locator\">URL</i> zoh ene andere Zigg.",
+       "apihelp-upload-example-url": "Vun enem <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Uniform Ressource Locator\">URL</i> huhlahde.",
+       "apihelp-upload-example-filekey": "Don et Huhlahde fähdesch maace, wat wähje Warnonge nit johd jejange wohr.",
+       "apihelp-userrights-param-user": "Metmaacher_Nahme.",
+       "apihelp-userrights-param-userid": "Enem Metmaacher sing Kännong.",
+       "apihelp-userrights-param-add": "Donn dä Metmaacher en heh di Jroppe eren.",
+       "apihelp-userrights-param-remove": "Donn dä Metmaacher us heh dä Jroppe eruß nämme.",
+       "apihelp-userrights-param-reason": "Dä Jrond för di Änderong.",
+       "apihelp-watch-description": "Donn di Sigg en däm aktoälle Metmaacher singe Oppaßless eren udder schmihß se erus.",
+       "apihelp-watch-example-watch": "Don di Sigg „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Main Page</kbd>“ en de Oppaßleß.",
+       "apihelp-watch-example-unwatch": "Schmiiß di Sigg „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Main Page</kbd>“ uß dä Oppaßleß erus.",
+       "apihelp-json-param-ascii": "Wann aanjejovve, deiht alle nit-<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"American Standard Code for Information Interchange\">ASCII</i>-Zeijsche met hexadezimahle !escape-Sequänze koddehre. Dadd es der Schtandatt, wann „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">formatversion</var>“ <kbd>1</kbd> es.",
+       "apihelp-jsonfm-description": "Dahte em <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"JavaScript Object Notation\">JSON</i>-Fommaht ußjävve un för schöhn en et <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"HyperText Markup Language\">HTML</i> wandele.",
+       "apihelp-none-description": "Donn nix ußjävve.",
+       "apihelp-php-description": "Dahte em hengernader jeschrevve <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"PHP Hypertext Preprocessor\">PHP</i>-Fommaht ußjävve.",
+       "apihelp-xml-description": "Donn de Dahte em <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Extensible Markup Language\">XML</i>-Fommahd ußjävve.",
+       "apihelp-xml-param-includexmlnamespace": "Wann aanjejovve, deihd en <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Extensible Markup Language\">XML</i>-Appachtemand derbei.",
+       "apihelp-yaml-description": "Donn de Dahte em <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"YAML Ain't Markup Language\">YAML</i>-Fommahd ußjävve.",
+       "apihelp-yamlfm-description": "Donn de Dahte em <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"YAML Ain't Markup Language\">YAML</i>-Fommahd schöhn met <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"HyperText Markup Language\">HTML</i> ußjävve.",
+       "api-format-title": "Wat et <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Application Programming Interface\">API</i> ußjohv.",
+       "api-format-prettyprint-header-only-html": "Dat heh es en <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"HyperText Markup Language\">HTML</i>_Daaschtällong un för et Fähersöhke jedaach. Dadd is för Aanwändongsprojramme nit ze bruche.\n\nEn de [[mw:API|complete Dokkemäntazjohn]] un de [[Special:ApiHelp/main|API Hölp_Sigg]] kam_mer doh mih drövver lässe.",
+       "api-orm-param-props": "De Fällder zom Affrohre.",
+       "api-orm-param-limit": "De jrühßte Aanzahl vun Reihje zom zeröckjävve.",
+       "api-pageset-param-titles": "En Leß vun Övverschreffte för ze beärbeide.",
+       "api-pageset-param-pageids": "En Leß vun Kännonge vun Sigge för ze beärbeide.",
+       "api-pageset-param-revids": "En Leß vun Kännonge vun Väsjohne för ze beärbeide.",
+       "api-help-title": "Hölp för de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Application Programming Interface\">API</i> vum MehdijaWikki.",
+       "api-help-main-header": "Houp_Moduhl",
+       "api-help-flag-deprecated": "Dat Moduhl es nimmih johd jeligge.",
+       "api-help-flag-readrights": "Heh da Modhul bruch et Rääsch zum Lässe.",
+       "api-help-flag-writerights": "Heh da Modhul bruch et Rääsch zom Schriive.",
+       "api-help-flag-mustbeposted": "Heh dat Modhul nemmp blohß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">POST</code>-Opdrähschd aan.",
+       "api-help-flag-generator": "Heh dat Modhul kam_mer als ene Jenerahtor ennsäze.",
        "api-help-source": "Quäll: $1",
        "api-help-source-unknown": "Quäll: <span class=\"apihelp-unknown\">onbikannt</span>",
        "api-help-license": "Lezänz: [[$1|$2]]",
        "api-help-license-noname": "Lezänz: [[$1|Loor noh dämm Lengk]]",
        "api-help-license-unknown": "Lezänz: <span class=\"apihelp-unknown\">onbikannt</span>",
+       "api-help-parameters": "{{PLURAL:$1|Parramehter|Parramehtere|Parramehter}}:",
+       "api-help-param-deprecated": "Meßjevällesch.",
+       "api-help-param-required": "Heh dä Parramehter es nühdesch.",
        "api-help-datatypes-header": "Zoote Dahte",
        "api-help-param-type-limit": "Zoot: en jannze Zahl udder „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">max</kbd>“",
        "api-help-param-type-integer": "Zoot: {{PLURAL:$1|1=en jannze Zahl|2=en Leß met jannze Zahle}}",
        "api-help-param-type-boolean": "Zoot: Boolsch ([[Special:ApiHelp/main#main/datatypes|Einjzelheijte]])",
        "api-help-param-type-timestamp": "Zoot: {{PLURAL:$1|1=en Dattomm un en Zigg|2=en Leß met Aanjahbe us Dattom un Zigg}} (de [[Special:ApiHelp/main#main/datatypes|zohjelohße Fommahte]])",
        "api-help-param-type-user": "Zoot: {{PLURAL:$1|1=ene Metmaacher_Nahme|2=en Leß met Metmaacher_Nahme}}",
+       "api-help-param-list": "{{PLURAL:$1|1=Eijne Wäät|2=Wääte met <kbd>{{!}}</kbd> derzwesche}}: $2",
+       "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Moß läddesch sin|Kann läddesch sin, udder $2}}",
+       "api-help-param-limit": "Nit mih wi $1 sin zohjelohße.",
+       "api-help-param-limit2": "Nit mih wi $1 sin zohjelohße, ävver $2 för de Bots.",
+       "api-help-param-integer-min": "{{PLURAL:$1|1=Dä Wäät darref|2=De Wääte dörrve}} nit kleijener wi $2 sin.",
+       "api-help-param-integer-max": "{{PLURAL:$1|1=Dä Wäät darref|2=De Wääte dörrve}} nit jrühßer wi $3 sin.",
+       "api-help-param-integer-minmax": "{{PLURAL:$1|1=Dä Wäät moß|2=De Wääte möße}} nit zwesche $2 un $3 lijje.",
+       "api-help-param-upload": "Moß als Datteij huhjelahde wähde met dä Eijeschaff „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">multipart/form-data</code>“.",
+       "api-help-param-multi-separate": "Donn de Wääte met <kbd>|</kbd> derzwesche tränne.",
+       "api-help-param-multi-max": "De jrühßte müjjelesche Zahl es {{PLURAL:$1|$1}}, un {{PLURAL:$2|$2}} för Botprojramme.",
        "api-help-param-default": "Schtandatt: $1",
        "api-help-param-default-empty": "Schtandatt: <span class=\"apihelp-empty\">(läddesch)</span>",
+       "api-help-param-disabled-in-miser-mode": "Dadd es wäje em [[mw:Manual:$wgMiserMode|miser mode]] affjeschalldt.",
        "api-help-param-limited-in-miser-mode": "<strong>opjepaß:</strong> Weil der  [[mw:Manual:$wgMiserMode|miser mode]] enjeschalld es, künne heh winnijer wi <var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1limit</var> Äjehpneße ußjejejovve wähde, vör em Wigger_Mache. En Jränzfäll künne et Noll sin.",
-       "api-help-param-direction": "En wälsche Reihjefollsch opleßte:\n;newer:De Ählsde et eez. Opjepaß: „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1start</code>“ moß fröhjer sin wi „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1end</code>“.\n;older:De Neuste et eez, der Schtanndatt. Opjepaß: „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1start</code>“ moß schpääder sin wi „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1end</code>“.",
+       "api-help-param-direction": "En wälsche Reihjefollsch opleßte:\n;<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">newer</code>:De Ählsde et eez. Opjepaß: „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1start</code>“ moß fröhjer sin wi „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1end</code>“.\n;<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">older</code>:De Neuste et eez, der Schtanndatt. Opjepaß: „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1start</code>“ moß schpääder sin wi „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1end</code>“.",
        "api-help-param-continue": "Wann mih ze holle es, nemm dat för wigger ze maache.",
        "api-help-param-no-description": "<span class=\"apihelp-empty\">(nix drövver bikannt)</span>",
        "api-help-examples": "{{PLURAL:$1|Beijschpell|Beijschpelle|Beijschpell}}:",
index 95c7e86..b625565 100644 (file)
@@ -4,11 +4,27 @@
                        "George Animal"
                ]
        },
+       "apihelp-block-description": "Bikarhênerekî asteng bike.",
        "apihelp-block-param-reason": "Sedemê bo astengkirinê.",
        "apihelp-createaccount-param-name": "Navê bikarhêner.",
        "apihelp-delete-description": "Rûpelekê jê bibe.",
+       "apihelp-delete-example-simple": "<kbd>Destpêk</kbd>ê Jê bibe.",
+       "apihelp-edit-param-sectiontitle": "Sernavê bo beşeke nû.",
        "apihelp-edit-param-text": "Naveroka rûpelê.",
+       "apihelp-edit-param-minor": "Guhertina biçûk.",
+       "apihelp-edit-param-createonly": "Heke ku rûpel hebe wê neguherîne.",
        "apihelp-edit-example-edit": "Rûpelekê biguherîne.",
+       "apihelp-emailuser-description": "Ji bikarhêner re e-nameyekê bişîne.",
+       "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-feedrecentchanges-example-simple": "Guherandinên dawî nîşan bide.",
+       "apihelp-feedrecentchanges-example-30days": "Guherandinên dawî yên 30 rojan nîşan bide",
+       "apihelp-help-example-recursive": "Hemû alîkarî di rûpelekê de.",
+       "apihelp-login-param-name": "Navê bikarhêner.",
+       "apihelp-login-param-password": "Şîfre.",
+       "apihelp-login-example-login": "Têkeve.",
+       "apihelp-move-param-reason": "Sedemê bo guherandina nav.",
+       "apihelp-move-param-ignorewarnings": "Guh nede hişyariyan.",
        "apihelp-tag-param-reason": "Sedemê bo guherandinê."
 }
index 3917e83..e0b3932 100644 (file)
@@ -12,6 +12,7 @@
        "apihelp-block-param-reblock": "Wann de Benotzer scho gespaart ass, déi aktuell Spär iwwerschreiwen.",
        "apihelp-block-param-watchuser": "Dem Benotzer oder der IP-Adress hier Benotzer- an Diskussiouns-Säiten iwwerwaachen.",
        "apihelp-compare-param-fromtitle": "Éischten Titel fir ze vergläichen.",
+       "apihelp-compare-param-torev": "Zweet Versioun fir ze vergläichen.",
        "apihelp-createaccount-description": "En neie Benotzerkont uleeën.",
        "apihelp-createaccount-param-name": "Benotzernumm.",
        "apihelp-createaccount-param-email": "E-Mail-Adress vum Benotzer (fakultativ).",
        "apihelp-delete-example-simple": "D'<kbd>Haaptsäit</kbd> läschen.",
        "apihelp-disabled-description": "Dëse Modul gouf ausgeschalt.",
        "apihelp-edit-param-sectiontitle": "Den Titel fir en neien Abschnitt.",
+       "apihelp-edit-param-text": "Säiteninhalt.",
        "apihelp-edit-param-minor": "Kleng Ännerung.",
        "apihelp-edit-param-bot": "Dës Ännerung als Bot-Ännerung markéieren.",
        "apihelp-edit-param-watch": "D'Säit op dem aktuelle Benotzer seng Iwwerwaachungslëscht dobäisetzen.",
        "apihelp-edit-example-edit": "Eng Säit änneren",
        "apihelp-expandtemplates-param-title": "Titel vun der Säit.",
+       "apihelp-expandtemplates-paramvalue-prop-ttl": "D'Maximalzäit no där den Tëschespäicher vum Resultat net méi valabel si soll.",
+       "apihelp-feedcontributions-param-year": "Vum Joer (a virdrun).",
+       "apihelp-feedcontributions-param-month": "Vum Mount (a virdrun).",
        "apihelp-feedrecentchanges-param-hideminor": "Kleng Ännerunge verstoppen.",
+       "apihelp-feedrecentchanges-param-hidebots": "Ännerunge vu Botte verstoppen.",
        "apihelp-feedrecentchanges-param-hideanons": "Ännerunge vun anonyme Benotzer verstoppen.",
        "apihelp-feedrecentchanges-param-hideliu": "Ännerunge vu registréierte Benotzer verstoppen.",
+       "apihelp-feedrecentchanges-param-hidemyself": "Ännerunge vum aktuelle Benotzer verstoppen.",
        "apihelp-feedrecentchanges-example-simple": "Rezent Ännerunge weisen",
        "apihelp-help-example-main": "Hëllef fir den Haaptmodul.",
        "apihelp-help-example-recursive": "All Hëllef op enger Säit",
        "apihelp-imagerotate-description": "Eent oder méi Biller dréinen.",
        "apihelp-imagerotate-example-generator": "All Biller an der <kbd>Category:Flip]]<kbd> ëm <kbd>180<kbd> Grad dréinen.",
        "apihelp-import-param-summary": "Resumé importéieren.",
+       "apihelp-import-param-xml": "Eropgeluedenen XML-Fichier.",
+       "apihelp-import-param-rootpage": "Als Ënnersäit vun dëser Säit importéieren. Kann net zesumme mam <var>$1namespace</var> benotzt ginn.",
        "apihelp-login-param-name": "Benotzernumm.",
        "apihelp-login-param-password": "Passwuert.",
        "apihelp-login-example-login": "Aloggen.",
        "apihelp-move-description": "Eng Säit réckelen.",
+       "apihelp-move-param-movetalk": "D'Diskussiounssäit ëmbenennen, wann et se gëtt.",
        "apihelp-move-param-ignorewarnings": "All Warnungen ignoréieren.",
        "apihelp-options-example-reset": "All Astellungen zrécksetzen",
        "apihelp-patrol-example-rcid": "Eng rezent Ännerung nokucken.",
        "apihelp-query+blocks-description": "Lëscht vun de gespaarte Benotzer an IP-Adressen.",
        "apihelp-query+blocks-example-simple": "Lëscht vun de Spären",
        "apihelp-query+categories-description": "All Kategorien opzielen zu deenen dës Säit gehéiert.",
+       "apihelp-query+categories-example-generator": "Informatioun iwwer all Kategorien, déi an der Säit <kbd>Albert Einstein</kbd> benotzt ginn, kréien.",
        "apihelp-query+categorymembers-description": "All Säiten aus enger bestëmmter Kategorie opzielen.",
        "apihelp-query+categorymembers-example-simple": "Déi éischt 10 Säiten aus der <kbd>Category:Physics</kbd> kréien.",
        "apihelp-query+deletedrevisions-param-excludeuser": "Versioune vun dësem Benotzer net opzielen.",
        "apihelp-query+deletedrevs-param-unique": "Nëmmen eng Versioun fir all Säit weisen.",
+       "apihelp-query+embeddedin-param-filterredir": "Wéi Viruleedungen gefiltert gi sollen.",
        "apihelp-query+filearchive-example-simple": "Eng Lëscht vun alle geläschte Fichiere weisen",
        "apihelp-query+imageinfo-paramvalue-prop-user": "Setzt fir all Versioun vum Fichier de Benotzer dobäi deen en eropgelueden huet.",
        "apihelp-query+imageinfo-paramvalue-prop-comment": "Bemierkung iwwert d'Versioun.",
        "apihelp-query+imageusage-example-simple": "Säite weisen déi [[:File:Albert Einstein Head.jpg]] benotzen",
        "apihelp-query+info-paramvalue-prop-readable": "Ob de Benotzer dës Säit liese kann.",
        "apihelp-query+langlinks-param-lang": "Nëmme Sproochlinke mat dësem Sproochcode zréckginn.",
+       "apihelp-query+links-param-namespace": "Nëmme Linken an dësen Nummräim weisen.",
        "apihelp-query+protectedtitles-param-namespace": "Nëmmen Titelen aus dësen Nummraim opzielen.",
+       "apihelp-query+random-param-redirect": "Eng zoufälleg Viruleedung lueden aplaz vun enger zoufälleger Säit.",
        "apihelp-query+recentchanges-param-user": "Nëmmen Ännerunge vun dësem Benotzer opzielen.",
        "apihelp-query+recentchanges-example-simple": "Rezent Ännerunge weisen",
        "apihelp-query+revisions-example-last5": "Déi lescht 5 Versioune vun der <kbd>Haaptsäit</kbd> kréien.",
+       "apihelp-query+search-param-namespace": "Nëmmen an dësen Nummräim sichen.",
        "apihelp-query+usercontribs-description": "All Ännerunge vun engem Benotzer kréien.",
        "apihelp-query+watchlist-param-user": "Nëmmen Ännerunge vun dësem Benotzer opzielen.",
        "apihelp-query+watchlist-param-excludeuser": "Ännerunge vun dësem Benotzer net opzielen.",
index 9315304..40cc121 100644 (file)
@@ -8,8 +8,8 @@
        "apihelp-main-param-action": "Кое дејство да се изврши.",
        "apihelp-main-param-format": "Формат на изводот.",
        "apihelp-main-param-maxlag": "Максималниот заостаток може да се користи кога МедијаВики е воспоставен на грозд умножен од базата. За да спречите дополнителни заостатоци од дејства, овој параметар му наложува на клиентот да почека додека заостатокот не се намали под укажаната вредност. Во случај на преголем заостаток, системт ја дава грешката со код <samp>maxlag</samp> со порака од обликот <samp>Го чекам $host: има заостаток од $lag секунди</samp>.<br />Погл. [[mw:Manual:Maxlag_parameter|Прирачник: Параметар Maxlag]]",
-       "apihelp-main-param-smaxage": "Задајте му олку секунди на заглавитето <code>s-maxage</code>. Грешките никогаш не се чуваат во меѓускладот.",
-       "apihelp-main-param-maxage": "Задајте му олку секунди на заглавитето <code>max-age</code>. Грешките никогаш не се чуваат во меѓускладот.",
+       "apihelp-main-param-smaxage": "Задајте му олку секунди на заглавието за контрола HTTP-меѓускладот <code>s-maxage</code>. Грешките никогаш не се чуваат во меѓускладот.",
+       "apihelp-main-param-maxage": "Задајте му олку секунди на заглавието за контрола HTTP-меѓускладот <code>s-maxage</code>. Грешките никогаш не се чуваат во меѓускладот.",
        "apihelp-main-param-assert": "Провери дали корисникот е најавен ако е зададено <kbd>user</kbd> или дали го има корисничкото право на бот, ако е зададено <kbd>bot</kbd>.",
        "apihelp-main-param-requestid": "Тука внесената вредност ќе биде вклучена во извештајот. Може да се користи за разликување на барањата.",
        "apihelp-main-param-servedby": "Вклучи го домаќинското име што го услужило барањето во резултатите.",
@@ -33,6 +33,8 @@
        "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-compare-description": "Добивање на разлика помеѓу две страници.\n\nМора да се даде бројот на преработката, насловот на страницата или пак нејзина назнака за „од“ и за „на“.",
@@ -73,6 +75,7 @@
        "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-import-param-templates": "За меѓујазични увози: увези ги и сите вклучени шаблони.",
        "apihelp-import-param-namespace": "Увези во овој именски простор. Се наметнува врз параметарот <kbd>$1rootpage</kbd>.",
        "apihelp-import-param-rootpage": "Увези како потстраница на страницава. Се занемарува ако е укажан параметарот <kbd>$1namespace</kbd>.",
-       "apihelp-import-example-import": "Увези [[meta:Help:Parserfunctions]] во именскиот простор 100 со целата историја.",
+       "apihelp-import-example-import": "Увези [[meta:Help:ParserFunctions]] во именскиот простор 100 со целата историја.",
        "apihelp-login-description": "Најавете се и добијте колачиња за заверка.\n\nВо случај кога ќе се најавите успешно, потребните колачиња ќе се придодадат кон заглавијата на HTTP-одѕивот. Во случај да не успеете да се најавите, понатамошните обиди може да се ограничат за да се ограничат нападите со автоматизирано погодување на лозинката.",
        "apihelp-login-param-name": "Корисничко име.",
        "apihelp-login-param-password": "Лозинка.",
index 6dcba40..ed665f2 100644 (file)
 {
        "@metadata": {
                "authors": [
-                       "Jeblad"
+                       "Jeblad",
+                       "Chameleon222"
                ]
        },
        "apihelp-main-param-action": "Hvilken handling skal utføres",
        "apihelp-main-param-format": "Resultatets format.",
        "apihelp-main-param-servedby": "Inkluder navnet på tjeneren som utførte forespørselen i resultatene.",
        "apihelp-main-param-curtimestamp": "Inkluder det nåværende tidsmerket i resultatet.",
+       "apihelp-block-description": "Blokker en bruker.",
+       "apihelp-block-param-user": "Brukernavn, IP-adresse eller IP-intervall som skal blokkeres.",
+       "apihelp-block-param-reason": "Årsak for blokkering.",
+       "apihelp-block-param-anononly": "Blokker bare anonyme brukere (dvs. hindre anonyme redigeringer fra denne IP-adressen).",
+       "apihelp-block-param-nocreate": "Hindre kontoopprettelse.",
+       "apihelp-block-param-autoblock": "Blokker automatisk sist brukte IP-adresse og alle etterfølgende IP-adresser de prøver å logge inn fra.",
+       "apihelp-block-param-noemail": "Hindre brukeren å sende e-post via wikien. (Krever rettigheten <code>blockemail</code>).",
+       "apihelp-block-param-hidename": "Skjul brukernavnet fra blokkeringsloggen. (Krever rettigheten <code>hideuser</code>).",
+       "apihelp-clearhasmsg-description": "Fjerner <code>hasmsg</code>-flagget for den aktuelle brukeren.",
+       "apihelp-clearhasmsg-example-1": "Fjern <code>hasmsg</code>-flagget for aktuell bruker.",
+       "apihelp-compare-description": "Hent forskjellen mellom to sider.\n\nEt revisjonsnummer, en sidetittel eller en side-ID for både «fra» og «til» må sendes.",
+       "apihelp-compare-param-fromtitle": "Første tittel å sammenligne.",
+       "apihelp-compare-param-fromid": "Første side-ID å sammenligne.",
+       "apihelp-compare-param-fromrev": "Første revisjon å sammenligne.",
+       "apihelp-compare-param-totitle": "Andre tittel å sammenligne.",
+       "apihelp-compare-param-toid": "Andre side-ID å sammenligne.",
+       "apihelp-compare-param-torev": "Andre revisjon å sammenligne.",
+       "apihelp-compare-example-1": "Lag en diff mellom revisjon 1 og 2.",
+       "apihelp-createaccount-description": "Opprett en ny brukerkonto.",
+       "apihelp-createaccount-param-name": "Brukernavn.",
+       "apihelp-createaccount-param-password": "Passord (ignorert dersom <var>$1mailpassword</var> er satt).",
+       "apihelp-createaccount-param-domain": "Domene for ekstern autentisering (valgfritt).",
+       "apihelp-createaccount-param-email": "Brukerens e-postadresse (valgfritt).",
+       "apihelp-createaccount-param-realname": "Brukerens virkelige navn (valgfritt).",
+       "apihelp-createaccount-param-mailpassword": "Dersom satt til en verdi vil et tilfeldig passord bli sendt med e-post til brukeren.",
+       "apihelp-createaccount-param-reason": "Valgfri grunn for å opprette kontoen for å legges i loggene.",
+       "apihelp-createaccount-param-language": "Språkkode å bruke som standard for brukeren (valgfritt, standardverdien er innholdsspråket).",
+       "apihelp-createaccount-example-pass": "Opprett bruker <kbd>testuser</kbd> med passordet <kbd>test123</kbd>.",
+       "apihelp-createaccount-example-mail": "Opprett bruker <kbd>testmailuser</kbd> og send et tilfeldig generert passord med e-post.",
+       "apihelp-delete-description": "Slett en side.",
+       "apihelp-delete-param-title": "Tittel til siden som skal slettes. Kan ikke brukes sammen med <var>$1pageid</var>.",
+       "apihelp-delete-param-pageid": "Side-ID til siden som skal slettes. Kan ikke brukes sammen med <var>$1title</var>.",
+       "apihelp-delete-param-reason": "Årsak for slettingen. Dersom ikke satt vil en automatisk generert årsak bli brukt.",
+       "apihelp-delete-param-watch": "Legg til siden til aktuell brukers overvåkningsliste.",
+       "apihelp-delete-param-unwatch": "Fjern siden fra aktuell brukers overvåkningsliste.",
+       "apihelp-delete-example-simple": "Slett <kbd>Hovedside</kbd>.",
+       "apihelp-delete-example-reason": "Slett <kbd>Hovedside</kbd> med grunnen <kbd>Forbereder flytting</kbd>.",
+       "apihelp-disabled-description": "Denne modulen har blitt deaktivert",
+       "apihelp-edit-description": "Opprett og rediger sider.",
+       "apihelp-edit-param-title": "Tittelen til siden som skal redigeres. Kan ikke brukes sammen med <var>$1pageid</var>.",
+       "apihelp-edit-param-pageid": "Side-ID til siden som skal redigeres. Kan ikke brukes sammen med <var>$1title</var>.",
+       "apihelp-edit-param-section": "Avsnittsnummer. <kbd>0</kbd> for det øverste avsnittet, <kbd>new</kbd> for et nytt avsnitt.",
+       "apihelp-edit-param-sectiontitle": "Tittelen for et nytt avsnitt.",
+       "apihelp-edit-param-text": "Sideinnhold.",
+       "apihelp-edit-param-minor": "Mindre redigering.",
+       "apihelp-edit-param-bot": "Merk denne redigeringen som en botendring.",
+       "apihelp-edit-param-createonly": "Ikke rediger siden dersom den finnes allerede.",
+       "apihelp-edit-param-nocreate": "Gi en feilmelding dersom dersom siden ikke finnes.",
+       "apihelp-edit-param-watch": "Legg til siden til aktuell brukers overvåkningsliste.",
+       "apihelp-edit-param-unwatch": "Fjern siden fra aktuell brukers overvåkningsliste.",
+       "apihelp-edit-param-prependtext": "Legg til denne teksten til starten av siden. Overstyrer $1text.",
+       "apihelp-edit-param-redirect": "Bestem omdirigeringer automatisk.",
+       "apihelp-edit-param-contentformat": "Innholdsserialiseringsformat brukt for inndatateksten.",
+       "apihelp-edit-param-contentmodel": "Det nye innholdets innholdsmodell.",
+       "apihelp-edit-example-edit": "Rediger en side.",
+       "apihelp-emailuser-description": "Send e-post til en bruker.",
+       "apihelp-emailuser-param-target": "Bruker som det skal sendes e-post til.",
+       "apihelp-emailuser-param-subject": "Emne.",
+       "apihelp-emailuser-param-text": "E-post innhold.",
+       "apihelp-emailuser-param-ccme": "Send en kopi av denne e-posten til meg.",
+       "apihelp-expandtemplates-description": "Ekspanderer alle maler i wikitekst.",
+       "apihelp-expandtemplates-param-title": "Sidetittel.",
+       "apihelp-expandtemplates-param-text": "Wikitekst som skal konverteres.",
+       "apihelp-feedcontributions-param-year": "Fra år (og tidligere).",
+       "apihelp-feedcontributions-param-month": "Fra måned (og tidligere).",
+       "apihelp-feedcontributions-param-tagfilter": "Filtrer bidrag som har disse merkene.",
+       "apihelp-feedcontributions-param-deletedonly": "Vis bare slettede bidrag.",
+       "apihelp-feedcontributions-param-toponly": "Vis kun redigeringer som er gjeldende revisjoner.",
+       "apihelp-feedcontributions-param-newonly": "Bare vis bidrag som er sideopprettinger.",
+       "apihelp-feedcontributions-param-showsizediff": "Vis størrelsesforskjellen mellom revisjoner.",
+       "apihelp-feedrecentchanges-param-from": "Vis endringer siden da.",
+       "apihelp-feedrecentchanges-param-hideminor": "Skjul mindre endringer.",
+       "apihelp-feedrecentchanges-param-hidebots": "Skjul botendringer.",
+       "apihelp-help-param-toc": "Inkluder en innholdsfortegnelse i HTML-utdataen.",
+       "apihelp-help-example-main": "Hjelp for hovedmodulen.",
+       "apihelp-help-example-recursive": "All hjelp på en side.",
+       "apihelp-help-example-help": "Hjelp for selve hjelpemodulen.",
+       "apihelp-help-example-query": "Hjelp for to utspørringsundermoduler.",
+       "apihelp-imagerotate-description": "Roter ett eller flere bilder.",
+       "apihelp-import-param-summary": "Importsammendrag.",
+       "apihelp-import-param-xml": "Opplastet XML-fil.",
+       "apihelp-login-param-name": "Brukernavn.",
+       "apihelp-login-param-password": "Passord.",
+       "apihelp-login-param-domain": "Domene (valgfritt).",
+       "apihelp-login-example-login": "Logg inn.",
+       "apihelp-logout-description": "Logg ut og fjern sesjonsdata.",
+       "apihelp-logout-example-logout": "Logg ut den aktuelle brukeren.",
+       "apihelp-move-description": "Flytt en side.",
        "apihelp-dbg-description": "Resultatdata i PHP's var_export() format.",
        "apihelp-dbgfm-description": "Resultatdata i PHP's var_export() format (pen utskrift i HTML).",
        "apihelp-dump-description": "Resultatdata i PHP's var_export() format.",
diff --git a/includes/api/i18n/ne.json b/includes/api/i18n/ne.json
new file mode 100644 (file)
index 0000000..f8718a5
--- /dev/null
@@ -0,0 +1,13 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Nirjal stha",
+                       "सरोज कुमार ढकाल"
+               ]
+       },
+       "apihelp-createaccount-param-name": "प्रयोगकर्ता नाम।",
+       "apihelp-edit-param-minor": "सामान्य सम्पादन।",
+       "apihelp-edit-example-edit": "पृष्ठ सम्पादन गर्नुहोस्।",
+       "apihelp-emailuser-description": "प्रयोगकर्तालाई इमेल गर्नुहोस्।",
+       "apihelp-parse-param-prop": "जानकारीको कुन भाग लिनेः"
+}
index 1b63f93..41443c6 100644 (file)
@@ -8,15 +8,17 @@
                        "Valhallasw",
                        "Sikjes",
                        "Macofe",
-                       "SPQRobin"
+                       "SPQRobin",
+                       "HanV",
+                       "Rangekill"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentatie]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api E-maillijst]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API-aankondigingen]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bugs & verzoeken]\n</div>\n<strong>Status:</strong> Alle functies die op deze pagina worden weergegeven horen te werken. Aan de API wordt actief gewerkt, en deze kan gewijzigd worden. Abonneer u op  de [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ e-maillijst mediawiki-api-announce] voor meldingen over aanpassingen.\n\n<strong>Foutieve verzoeken:</strong> als de API foutieve verzoeken ontvangt, wordt er geantwoord met een HTTP-header met de sleutel \"MediaWiki-API-Error\" en daarna worden de waarde van de header en de foutcode op dezelfde waarde ingesteld. Zie [[mw:API:Errors_and_warnings|API: Errors and warnings]] voor meer informatie.",
        "apihelp-main-param-action": "Welke handeling uit te voeren.",
        "apihelp-main-param-format": "De opmaak van de uitvoer.",
        "apihelp-main-param-maxlag": "De maximale vertraging kan gebruikt worden als MediaWiki is geïnstalleerd op een databasecluster die gebruik maakt van replicatie. Om te voorkomen dat handelingen nog meer databasereplicatievertraging veroorzaken, kan deze parameter er voor zorgen dat de client wacht totdat de replicatievertraging lager is dan de aangegeven waarde. In het geval van buitensporige vertraging, wordt de foutcode <samp>maxlag</samp> teruggegeven met een bericht als <samp>Waiting for $host: $lag seconds lagged</samp>.<br />Zie [[mw:Manual:Maxlag_parameter|Handboek: Maxlag parameter]] voor mee informatie.",
-       "apihelp-main-param-smaxage": "Stelt de header \"<code>s-maxage</code>\" in op het aangegeven aantal seconden. Foutmeldingen komen nooit in de cache.",
-       "apihelp-main-param-maxage": "Stelt de header \"<code>max-age</code>\" in op het aangegeven aantal seconden. Foutmeldingen komen nooit in de cache.",
+       "apihelp-main-param-smaxage": "Stelt de \"<code>s-maxage</code>\" HTTP cache controle header in op het aangegeven aantal seconden. Foutmeldingen komen nooit in de cache.",
+       "apihelp-main-param-maxage": "Stelt de <code>max-age</code> HTTP cache controle header in op het aangegeven aantal seconden. Foutmeldingen komen nooit in de cache.",
        "apihelp-main-param-assert": "Controleer of de gebruiker is aangemeld als <kbd>user</kbd> is meegegeven, en of de gebruiker het robotgebruikersrecht heeft als <kbd>bot</kbd> is meegegeven.",
        "apihelp-main-param-requestid": "Elke waarde die hier gegeven wordt, wordt aan het antwoord toegevoegd. Dit kan gebruikt worden om verzoeken te onderscheiden.",
        "apihelp-main-param-servedby": "Voeg de hostnaam van de server die de aanvraag heeft afgehandeld toe aan het antwoord.",
        "apihelp-delete-example-simple": "Verwijder <kbd>Hoofdpagina</kbd>.",
        "apihelp-delete-example-reason": "Verwijder <kbd>Hoofdpagina</kbd> met als reden <kbd>Voorbereiding voor verplaatsing</kbd>.",
        "apihelp-disabled-description": "Deze module is uitgeschakeld.",
+       "apihelp-edit-param-text": "Pagina-inhoud.",
        "apihelp-edit-param-minor": "Kleine bewerking.",
        "apihelp-edit-param-notminor": "Geen kleine bewerking.",
        "apihelp-edit-param-bot": "Markeer deze bewerking als bot.",
        "apihelp-edit-param-createonly": "Bewerk de pagina niet als die al bestaat.",
        "apihelp-edit-param-nocreate": "Geef een foutmelding als de pagina niet bestaat.",
-       "apihelp-edit-param-watch": "Voeg de pagina toe aan je volglijst.",
-       "apihelp-edit-param-unwatch": "Verwijder de pagina van je volglijst.",
+       "apihelp-edit-param-watch": "Voeg de pagina toe aan je huidige volglijst.",
+       "apihelp-edit-param-unwatch": "Verwijder de pagina van je huidige volglijst.",
        "apihelp-edit-example-edit": "Pagina bewerken",
        "apihelp-emailuser-description": "Gebruiker e-mailen.",
        "apihelp-emailuser-param-target": "Gebruiker naar wie de e-mail moet worden gestuurd.",
        "apihelp-expandtemplates-param-title": "Paginanaam.",
        "apihelp-feedcontributions-param-year": "Van jaar (en eerder).",
        "apihelp-feedcontributions-param-month": "Van maand (en eerder).",
+       "apihelp-import-param-namespace": "Importeren in deze naamruimte. Can niet samen gebruikt worden met <var>$1rootpage</var>.",
+       "apihelp-import-param-rootpage": "Importeren als subpagina van deze pagina. Kan niet samen met <var>$1namespace</var> gebruikt worden.",
        "apihelp-login-param-name": "Gebruikersnaam.",
        "apihelp-login-param-password": "Wachtwoord.",
        "apihelp-login-param-domain": "Domein (optioneel).",
        "apihelp-login-example-login": "Aanmelden",
        "apihelp-move-description": "Pagina hernoemen.",
+       "apihelp-move-param-watch": "Pagina en de omleiding toevoegen aan de volglijst van de huidige gebruiker.",
+       "apihelp-move-param-unwatch": "Verwijder de pagina en de doorverwijzing van de volglijst van de huidige gebruiker.",
+       "apihelp-move-param-watchlist": "De pagina onvoorwaardelijk toevoegen aan of verwijderen van de volglijst van de huidige gebruiker, gebruik voorkeuren of verander het volgen niet.",
+       "apihelp-move-param-ignorewarnings": "Eventuele waarschuwingen negeren.",
+       "apihelp-move-example-move": "Hernoem <kbd>Badtitle</kbd> naar <kbd>Goodtitle</kbd> zonder een doorverwijzing te laten staan.",
+       "apihelp-opensearch-description": "Zoeken in de wiki met het OpenSearchprotocol.",
+       "apihelp-opensearch-param-search": "Zoektekst.",
+       "apihelp-opensearch-param-limit": "Het maximaal aantal weer te geven resultaten.",
+       "apihelp-opensearch-param-namespace": "Te doorzoeken naamruimten.",
+       "apihelp-opensearch-param-suggest": "Niets doen als <var>[[mw:Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var> onwaar is.",
+       "apihelp-opensearch-param-redirects": "Hoe om te gaan met doorverwijzingen:\n;return:Geef de doorverwijzing terug.\n;resolve:Geef de doelpagina terug. Kan minder dan de limiet $1 resultaten teruggeven.\nOm historische redenen is de standaardinstelling \"return\" voor <code>$1format=json<code> en \"resolve\" voor andere formaten.",
+       "apihelp-opensearch-param-format": "Het uitvoerformaat.",
+       "apihelp-opensearch-param-warningsaserror": "Als er waarschuwingen zijn met <kbd>format=json</kbd>, geef dan een API-fout terug in plaats van deze te negeren.",
+       "apihelp-opensearch-example-te": "Pagina's vinden die beginnen met <kbd>Te</kbd>.",
+       "apihelp-options-description": "Voorkeuren van de huidige gebruiker wijzigen.\n\nAlleen opties die zijn geregistreerd in core of in een van de geïnstalleerde uitbreidingen, of opties met de toetsen aangeduid met \"userjs-\" (bedoeld om te worden gebruikt door gebruikersscripts), kunnen worden ingesteld.",
+       "apihelp-options-param-reset": "Zet de voorkeuren terug naar de standaard van de website.",
+       "apihelp-options-param-resetkinds": "Lijst van de optiestypes die opnieuw ingesteld worden wanneer de optie <var>$1reset</var> is ingesteld.",
+       "apihelp-options-param-change": "Lijst van wijzigingen, opgemaakt als <kbd>naam=waarde</kbd> (bijvoorbeeld <kbd>skin=vector</kbd>). De waarde kan geen sluistekens bevatten. Als er geen waarde wordt opgegeven (zelfs niet een is-gelijk teken), bijvoorbeeld, <kbd>optienaam|otheroption|...</kbd>, wordt de optie ingesteld op de standaardwaarde.",
+       "apihelp-options-param-optionname": "Een naam van een optie die moet worden ingesteld op de waarde gegeven door <var>$1optiewaarde</var>.",
+       "apihelp-options-param-optionvalue": "Een waarde van de optie opgegeven door <var>$1optienaam</var>, kan sluistekens (verticale streepjes) bevatten.",
+       "apihelp-options-example-reset": "Alle voorkeuren opnieuw instellen.",
+       "apihelp-options-example-change": "Voorkeuren veranderen voor <kbd>skin</kbd> en <kbd>hideminor</kbd>.",
+       "apihelp-parse-example-page": "Een pagina parseren.",
+       "apihelp-parse-example-text": "Wikitext parseren.",
+       "apihelp-parse-example-summary": "Een samenvatting parseren.",
+       "apihelp-protect-example-protect": "Een pagina beveiligen",
        "api-help-flag-readrights": "Voor deze module zijn leesrechten nodig.",
        "api-help-flag-writerights": "Voor deze module zijn schrijfrechten nodig.",
        "api-help-parameters": "{{PLURAL:$1|Parameter|Parameters}}:",
index 6b8b657..d8a3746 100644 (file)
        "apihelp-main-param-format": "Format danych wyjściowych.",
        "apihelp-main-param-maxlag": "Maksymalne opóźnienie mogą być używane kiedy MediaWiki jest zainstalowana w klastrze zreplikowanej bazy danych. By zapisać działania powodujące większe opóźnienie replikacji, ten parametr może wymusić czekanie u klienta, dopóki opóźnienie replikacji jest mniejsze niż określona wartość. W przypadku nadmiernego opóźnienia, kod błędu <samp>maxlag</samp> jest zwracany z wiadomością jak <samp>Oczekiwanie na $host: $lag sekund opóźnienia</samp>.<br />Zobacz [[mw:Manual:Maxlag_parameter|Podręcznik:Parametr Maxlag]] by uzyskać więcej informacji.",
        "apihelp-main-param-assert": "Sprawdź, czy użytkownik jest zalogowany jeżeli jest ustawiony na <kbd>użytkownik</kbd>, lub ma prawa bota jeśli <kbd>bot</kbd>.",
+       "apihelp-main-param-curtimestamp": "Dołącz obecny znacznik czasu do wyniku.",
        "apihelp-block-description": "Zablokuj użytkownika.",
        "apihelp-block-param-user": "Nazwa użytkownika, adres IP lub zakres adresów IP, które chcesz zablokować.",
        "apihelp-block-param-reason": "Powód blokady.",
        "apihelp-block-param-nocreate": "Zapobiegnij utworzeniu konta.",
+       "apihelp-block-param-reblock": "Jeżeli ten użytkownik jest już zablokowany, nadpisz blokadę.",
        "apihelp-block-param-watchuser": "Obserwuj stronę użytkownika i jego IP oraz ich strony dyskusji.",
        "apihelp-block-example-ip-simple": "Zablokuj IP <kbd>192.0.2.5</kbd> na 3 dni za <kbd>Pierwszy atak</kbd>.",
        "apihelp-block-example-user-complex": "Zablokuj użytkownika <kbd>Vandal</kbd> na zawsze za <kbd>Vandalism</kbd> i uniemożliwij utworzenie nowego konta oraz wysyłanie emaili.",
        "apihelp-checktoken-param-token": "Token do przetestowania.",
        "apihelp-checktoken-param-maxtokenage": "Maksymalny wiek tokenu, w sekundach.",
        "apihelp-compare-param-fromtitle": "Pierwszy tytuł do porównania.",
+       "apihelp-compare-param-fromid": "ID pierwszej strony do porównania.",
        "apihelp-compare-param-fromrev": "Pierwsza wersja do porównania.",
        "apihelp-compare-param-totitle": "Drugi tytuł do porównania.",
        "apihelp-compare-param-toid": "Numer drugiej strony do porównania.",
        "apihelp-compare-param-torev": "Druga wersja do porównania.",
        "apihelp-createaccount-description": "Utwórz nowe konto.",
        "apihelp-createaccount-param-name": "Nazwa użytkownika",
+       "apihelp-createaccount-param-password": "Hasło (ignorowane jeśli <var>$1mailpassword</var> jest ustawione).",
        "apihelp-createaccount-param-domain": "Domena uwierzytelniania zewnętrznego (opcjonalnie).",
        "apihelp-createaccount-param-token": "Token tworzenia konta uzyskany w pierwszym zapytaniu.",
        "apihelp-createaccount-param-email": "Adres email użytkownika (opcjonalne).",
        "apihelp-createaccount-param-realname": "Prawdziwe imię i nazwisko użytkownika (opcjonalne).",
        "apihelp-createaccount-param-reason": "Opcjionalny powód tworzenia konta (aby został umieszczony w logu).",
        "apihelp-createaccount-example-pass": "Utwórz użytkownika <kbd>testuser</kbd> z hasłem <kbd>test123</kbd>.",
+       "apihelp-createaccount-example-mail": "Utwórz użytkownika <kbd>testmailuser</kbd> i wyślij losowo wygenerowane hasło na emaila.",
        "apihelp-delete-description": "Usuń stronę.",
+       "apihelp-delete-param-reason": "Powód usuwania. Jeśli pozostaiwsz to pole puste, zostanie on wygenerowany automatycznie.",
        "apihelp-delete-param-watch": "Dodaj stronę do obecnej listy obserwowanych.",
        "apihelp-delete-param-unwatch": "Usuń stronę z obecnej listy obserwowanych.",
        "apihelp-delete-example-simple": "Usuń <kbd>Stronę Główną</kbd>.",
+       "apihelp-delete-example-reason": "Usuń <kbd>Stronę Główną</kbd> z powodem <kbd>Przygotowania do przenoszenia</kbd>.",
        "apihelp-disabled-description": "Ten moduł został wyłączony.",
        "apihelp-edit-description": "Utwórz i edytuj strony.;",
        "apihelp-edit-param-sectiontitle": "Tytuł nowej sekcji.",
        "apihelp-edit-param-text": "Zawartość strony.",
+       "apihelp-edit-param-tags": "Zmień tagi do przypisania do tej edycji.",
        "apihelp-edit-param-minor": "Drobna zmiana.",
        "apihelp-edit-param-notminor": "Nie drobna zmiana.",
        "apihelp-edit-param-bot": "Oznacz tę edycję jako edycję bota.",
        "apihelp-edit-param-createonly": "Nie edytuj strony, jesli już istnieje.",
+       "apihelp-edit-param-nocreate": "Zwróć błąd, jeśli strona nie istnieje.",
        "apihelp-edit-param-watch": "Dodaj stronę do aktualnej listy obserwacji użytkownika.",
        "apihelp-edit-param-unwatch": "Usuń stronę z aktualnej listy obserwacji użytkownika.",
        "apihelp-edit-param-redirect": "Automatycznie rozwiązuj przekierowania.",
        "apihelp-edit-example-edit": "Edytuj stronę",
        "apihelp-emailuser-description": "Wyślij e‐mail do użytkownika.",
        "apihelp-emailuser-param-target": "Użytkownik, do którego wysyłany jest e-mail.",
+       "apihelp-emailuser-param-subject": "Nagłówek tematu.",
        "apihelp-emailuser-param-text": "Treść emaila.",
        "apihelp-emailuser-param-ccme": "Wyślij kopię wiadomości do mnie.",
+       "apihelp-emailuser-example-email": "Wyślij e-mail do użytkownika <kbd>WikiSysop</kbd> z tekstem <kbd>treścią</kbd>.",
+       "apihelp-expandtemplates-description": "Rozwiń wszystkie szablony w wikitexcie.",
        "apihelp-expandtemplates-param-title": "Tytuł strony.",
        "apihelp-expandtemplates-param-text": "Wikitext do przekonwertowania.",
+       "apihelp-expandtemplates-paramvalue-prop-wikitext": "Rozszerzony wikitext.",
+       "apihelp-feedcontributions-param-year": "Od roku (i wcześniej).",
+       "apihelp-feedcontributions-param-month": "Od miesiąca (i wcześniej).",
+       "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-feedrecentchanges-param-namespace": "Przestrzeń nazw, do której ograniczone są wyniki.",
        "apihelp-feedrecentchanges-param-invert": "Wszystkie przestrzenie nazw oprócz wybranej.",
        "apihelp-feedrecentchanges-param-limit": "Maksymalna liczba zwracanych wyników.",
@@ -72,6 +90,7 @@
        "apihelp-feedrecentchanges-param-hidemyself": "Ukryj zmiany zrobione przez obecnego użytkownika.",
        "apihelp-feedrecentchanges-param-tagfilter": "Filtruj po znacznikach.",
        "apihelp-feedrecentchanges-example-simple": "Pokaż ostatnie zmiany.",
+       "apihelp-feedrecentchanges-example-30days": "Pokaż ostatnie zmiany z 30 dni.",
        "apihelp-filerevert-description": "Przywróć plik do starej wersji.",
        "apihelp-filerevert-param-filename": "Docelowa nazwa pliku bez prefiksu Plik:",
        "apihelp-filerevert-param-comment": "Prześlij komentarz.",
        "apihelp-help-example-help": "Pomoc dla modułu pomocy",
        "apihelp-imagerotate-description": "Obróć jeden lub wiecej obrazków.",
        "apihelp-imagerotate-param-rotation": "Stopni w prawo, aby obrócić zdjęcie.",
+       "apihelp-import-param-summary": "Podsumowanie importu.",
        "apihelp-import-param-xml": "Przesłany plik XML.",
+       "apihelp-import-param-interwikisource": "Dla importów mediawiki: źródłowa wiki.",
+       "apihelp-import-param-interwikipage": "Dla importów interwiki: strona do importu.",
+       "apihelp-import-param-fullhistory": "Dla importów interwiki: importuj całą historię, a nie tylko obecną wersję.",
+       "apihelp-import-param-templates": "Dla importów mediawiki: importuj też wszystkie użyte szablony.",
        "apihelp-login-param-name": "Nazwa użytkownika.",
        "apihelp-login-param-password": "Hasło.",
        "apihelp-login-param-domain": "Domena (opcjonalnie).",
        "apihelp-move-description": "Przenieś stronę.",
        "apihelp-move-param-reason": "Powód zmiany nazwy.",
        "apihelp-move-param-movetalk": "Zmień nazwę strony dyskusji, jeśli istnieje.",
+       "apihelp-move-param-movesubpages": "Zmień nazwy podstron, jeśli możliwe.",
        "apihelp-move-param-noredirect": "Nie twórz przekierowania.",
        "apihelp-move-param-ignorewarnings": "Ignoruj wszystkie ostrzeżenia.",
        "apihelp-opensearch-param-search": "Wyszukaj tekst.",
        "apihelp-opensearch-param-namespace": "Przestrzenie nazw do przeszukania.",
        "apihelp-opensearch-param-format": "Format danych wyjściowych.",
        "apihelp-opensearch-example-te": "Znajdź strony zaczynające się od <kbd>Te</kbd>.",
+       "apihelp-options-param-reset": "Resetuj preferencje do domyślnych.",
        "apihelp-options-example-reset": "Resetuj wszystkie preferencje.",
        "apihelp-paraminfo-description": "Zdobądź informacje o modułach API.",
+       "apihelp-paraminfo-param-helpformat": "Format tekstów pomocnicznych.",
+       "apihelp-parse-param-summary": "Powód do analizy.",
+       "apihelp-parse-paramvalue-prop-wikitext": "Zwróć oryginalny wikitext, który został przeanalizowany.",
+       "apihelp-parse-param-preview": "Analizuj w trybie podglądu.",
+       "apihelp-parse-example-page": "Przeanalizuj stronę.",
+       "apihelp-parse-example-text": "Analizuj wikitext.",
+       "apihelp-parse-example-summary": "Analizuj powód.",
        "apihelp-patrol-description": "Sprawdź stronę lub edycję.",
+       "apihelp-patrol-param-rcid": "ID ostatnich zmian do patrolowania.",
        "apihelp-patrol-param-revid": "Numer edycji do sprawdzenia.",
        "apihelp-patrol-example-rcid": "Sprawdź ostatnią zmianę.",
        "apihelp-patrol-example-revid": "Sprawdź edycje.",
+       "apihelp-protect-description": "Zmień poziom zabezpieczenia strony.",
        "apihelp-protect-param-reason": "Powód zabezpieczania/odbezpieczania.",
        "apihelp-protect-param-cascade": "Włacz ochronę kaskadową (chronione są wszystkie strony zawarte w tej stronie). Ignorowane jeśli wszystkie poziomy ochrony nie wspierają kaskadowania.",
        "apihelp-protect-example-protect": "Zabezpiecz stronę",
+       "apihelp-purge-param-forcelinkupdate": "Uaktualnij tabele linków.",
+       "apihelp-query+allcategories-description": "Emuluj wszystkie kategorie.",
+       "apihelp-query+allcategories-param-dir": "Kierunek sortowania.",
+       "apihelp-query+allcategories-param-limit": "Liczba kategorii do zwórcenia.",
+       "apihelp-query+alldeletedrevisions-paraminfo-useronly": "Może być użyte tylko z <var>$3user</var>.",
+       "apihelp-query+allfileusages-example-unique": "Lista unikatowych tytułów plików.",
+       "apihelp-query+allimages-example-recent": "Pokaż listę ostatnio przesłanych plików, podobnie do [[Special:NewFiles]].",
+       "apihelp-query+allimages-example-mimetypes": "Pokaż listę plików z typem MIME <kbd>image/png</kbd> lub <kbd>image/gif</kbd>",
+       "apihelp-query+alllinks-param-namespace": "Przestrzeń nazw do emulacji.",
+       "apihelp-query+alllinks-param-limit": "Łączna ilość obiektów do zwrócenia.",
+       "apihelp-query+allmessages-param-prop": "Właściwości do odczytu.",
+       "apihelp-query+allpages-param-prtype": "Ogranicz tylko do zabezpieczonych stron.",
+       "apihelp-query+allpages-param-limit": "Ilość stron do zwrócenia.",
        "apihelp-query+allpages-example-B": "Pokaż listę stron rozpoczynających się na literę <kbd>B</kbd>.",
        "apihelp-query+allredirects-description": "Lista wszystkich przekierowań do przestrzeni nazw.",
+       "apihelp-query+allredirects-param-namespace": "Przestrzeń nazw do emulacji.",
+       "apihelp-query+alltransclusions-param-namespace": "Przestrzeń nazw do emulacji.",
+       "apihelp-query+allusers-param-witheditsonly": "Tylko użytkownicy, którzy edytowali.",
+       "apihelp-query+backlinks-param-namespace": "Przestrzeń nazw do emulacji.",
+       "apihelp-query+blocks-param-limit": "Maksymalna liczba blokad do wylistowania.",
+       "apihelp-query+blocks-example-simple": "Listuj blokady.",
+       "apihelp-query+categories-param-limit": "Ilość kategorii do zwrócenia.",
        "apihelp-query+categorymembers-description": "Wszystkie strony w danej kategorii.",
+       "apihelp-query+categorymembers-param-limit": "Maksymalna liczba zwracanych wyników.",
+       "apihelp-query+categorymembers-param-sort": "Sortowanie według właściwości.",
+       "apihelp-query+deletedrevisions-param-tag": "Pokazuj tylko zmiany oznaczone tym tagiem.",
+       "apihelp-query+deletedrevisions-param-user": "Pokazuj tylko zmiany dokonane przez tego użytkownika.",
+       "apihelp-query+deletedrevisions-param-excludeuser": "Nie pokazuj zmian dokonanych przez tego użytkownika.",
+       "apihelp-query+deletedrevisions-param-limit": "Maksymalna ilość zmian do wylistowania.",
+       "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|Tryb|Tryby}}: $2",
+       "apihelp-query+deletedrevs-param-tag": "Pokazuj tylko zmiany oznaczone tym tagiem.",
+       "apihelp-query+deletedrevs-param-user": "Listuj tylko zmiany dokonane przez tego użytkownika.",
+       "apihelp-query+deletedrevs-param-excludeuser": "Nie listuj zmian dokonanych przez tego użytkownika.",
+       "apihelp-query+deletedrevs-param-namespace": "Listuj tylko strony z tej przestrzeni nazw.",
+       "apihelp-query+deletedrevs-param-limit": "Maksymalna ilość zmian do wylistowania.",
+       "apihelp-query+duplicatefiles-example-generated": "Szukaj duplikatów wszystkich plików.",
+       "apihelp-query+extlinks-param-limit": "Ilość linków do zwrócenia.",
+       "apihelp-query+exturlusage-param-limit": "Ilość stron do zwrócenia.",
        "apihelp-query+filearchive-example-simple": "Pokaż listę wszystkich usuniętych plików.",
+       "apihelp-query+filerepoinfo-example-simple": "Uzyskaj informacje na temat repozytoriów plików.",
+       "apihelp-query+fileusage-param-limit": "Ilość do zwrócenia.",
        "apihelp-query+imageinfo-paramvalue-prop-canonicaltitle": "Dodaje kanoniczny tytuł pliku.",
        "apihelp-query+imageinfo-paramvalue-prop-dimensions": "Alias rozmiaru.",
        "apihelp-query+imageinfo-paramvalue-prop-mime": "Dodaje typ MIME pliku.",
+       "apihelp-query+images-param-limit": "Ilość plików do zwrócenia.",
        "apihelp-query+info-paramvalue-prop-watchers": "Liczba obserwujących, jeśli jest to dozwolone.",
        "apihelp-query+info-paramvalue-prop-readable": "Czy użytkownik może przeczytać tę stronę.",
+       "apihelp-query+iwbacklinks-param-prefix": "Prefix interwiki.",
+       "apihelp-query+iwbacklinks-param-limit": "Łączna ilość stron do zwrócenia.",
+       "apihelp-query+links-param-limit": "Ilość linków do zwrócenia.",
+       "apihelp-query+linkshere-param-limit": "Ilość do zwrócenia.",
+       "apihelp-query+logevents-description": "Pobierz eventy z logu.",
        "apihelp-query+prefixsearch-param-offset": "Liczba wyników do pominięcia.",
        "apihelp-query+recentchanges-example-simple": "Lista ostatnich zmian.",
        "apihelp-query+search-description": "Wykonaj wyszukiwanie pełnotekstowe.",
index c8f1ffd..49df26b 100644 (file)
@@ -21,6 +21,8 @@
        "apihelp-query+search-example-simple": "د <kbd>مانا</kbd> پلټل.",
        "apihelp-query+search-example-text": "د <kbd>مانا</kbd> لپاره متنونه پلټل.",
        "apihelp-tag-param-reason": "د بدلون سبب.",
+       "apihelp-upload-param-watch": "مخ کتل.",
+       "apihelp-upload-param-file": "د دوتنې مېنځپانگه.",
        "apihelp-userrights-param-user": "کارن نوم.",
        "apihelp-userrights-param-userid": "کارن پېژند.",
        "api-help-source": "سرچينه: $1",
index 5af806d..82e05ff 100644 (file)
 {
        "@metadata": {
                "authors": [
-                       "Fasouzafreitas"
+                       "Fasouzafreitas",
+                       "Dianakc"
                ]
        },
+       "apihelp-main-param-action": "Qual ação executar.",
+       "apihelp-main-param-format": "O formato da saída.",
+       "apihelp-main-param-smaxage": "Define o cabeçalho <code>s-maxage</code> para esta quantidade de segundos. Os erros não são armazenados em cache.",
+       "apihelp-main-param-maxage": "Define o cabeçalho <code>max-age</code> para esta quantidade de segundos. Os erros não são armazenados em cache.",
        "apihelp-main-param-requestid": "Qualquer valor dado aqui será incluído na resposta. Pode ser usado para distinguir requisições.",
+       "apihelp-main-param-curtimestamp": "Inclui a data atual no resultado.",
        "apihelp-block-description": "Bloquear um usuário",
        "apihelp-block-param-user": "Nome de usuário, endereço IP ou faixa de IP para bloquear.",
+       "apihelp-block-param-reason": "Razão do bloqueio.",
+       "apihelp-block-param-anononly": "Bloqueia apenas usuários anônimos (ou seja desativa edições anônimas para este endereço IP).",
+       "apihelp-block-param-nocreate": "Prevenir a criação de conta.",
+       "apihelp-block-param-autoblock": "Bloquear automaticamente o endereço IP usado e quaisquer endereços IPs subseqüentes que tentarem acessar a partir deles.",
+       "apihelp-block-param-hidename": "Oculta o nome do usuário do ''log'' de bloqueio. (Requer o direito <code>hideuser</code>).",
+       "apihelp-block-param-reblock": "Se o usuário já estiver bloqueado, sobrescrever o bloqueio existente.",
+       "apihelp-block-example-ip-simple": "Bloquear endereço IP <kbd>192.0.2.5</kbd> por três dias com razão <kbd>Primeira medida</kbd>.",
+       "apihelp-block-example-user-complex": "Bloquear usuário <kbd>Vândalo</kbd> indefinidamente com razão <kbd>Vandalismo</kbd> e o impede de criar nova conta e envio de emails.",
+       "apihelp-compare-param-fromtitle": "Primeiro título para comparar.",
+       "apihelp-compare-param-fromid": "Primeiro ID de página para comparar.",
+       "apihelp-compare-param-fromrev": "Primeira revisão para comparar.",
+       "apihelp-compare-param-totitle": "Segundo título para comparar.",
+       "apihelp-compare-param-toid": "Segundo ID de página para comparar.",
+       "apihelp-compare-param-torev": "Segunda revisão para comparar.",
+       "apihelp-compare-example-1": "Criar um diff entre a revisão 1 e 2.",
+       "apihelp-createaccount-description": "Criar uma nova conta de usuário.",
+       "apihelp-createaccount-param-name": "Nome de usuário.",
+       "apihelp-createaccount-param-password": "Senha (ignorada se <var>$1mailpassword</var> está definida).",
+       "apihelp-createaccount-param-domain": "Domínio para autenticação externa (opcional).",
+       "apihelp-createaccount-param-email": "Endereço de email para o usuário (opcional).",
+       "apihelp-createaccount-param-realname": "Nome real do usuário (opcional).",
+       "apihelp-delete-description": "Excluir uma página.",
+       "apihelp-delete-param-title": "Título da página para excluir. Não pode ser usado em conjunto com <var>$1pageid</var>.",
+       "apihelp-delete-param-pageid": "ID da página para excluir. Não pode ser usada juntamente com <var>$1title</var>.",
+       "apihelp-delete-param-watch": "Adiciona a página para a lista de vigiados do usuário atual.",
+       "apihelp-delete-param-unwatch": "Remove a página para a lista de vigiados do usuário atual.",
+       "apihelp-delete-example-simple": "Excluir <kbd>Página principal</kbd>.",
+       "apihelp-disabled-description": "Este módulo foi desativado.",
+       "apihelp-edit-description": "Criar e editar páginas.",
+       "apihelp-edit-param-title": "Título da página para editar. Não pode ser usado em conjunto com <var>$1pageid</var>.",
+       "apihelp-edit-param-pageid": "ID da página para editar. Não pode ser usada juntamente com <var>$1title</var>.",
+       "apihelp-edit-param-sectiontitle": "O título para uma nova seção.",
+       "apihelp-edit-param-text": "Conteúdo da página",
+       "apihelp-edit-param-minor": "Edição menor.",
+       "apihelp-edit-param-bot": "Marcar esta edição como feita por bot.",
+       "apihelp-edit-param-createonly": "Não editar a página se já existir.",
+       "apihelp-edit-param-nocreate": "Mostra um erro se a página não existir.",
+       "apihelp-edit-param-watch": "Adiciona a página para a lista de vigiados do usuário atual.",
+       "apihelp-edit-param-unwatch": "Remove a página para a lista de vigiados do usuário atual.",
+       "apihelp-edit-param-watchlist": "Incondicionalmente adiciona ou página para a lista de vigiados do usuário atual, usa as preferências ou não modifica.",
+       "apihelp-edit-param-contentformat": "Formato de serialização de conteúdo usado para o texto de entrada.",
+       "apihelp-edit-param-contentmodel": "Modelo de conteúdo do novo conteúdo.",
+       "apihelp-edit-example-edit": "Edita uma página.",
+       "apihelp-edit-example-prepend": "Antecende <kbd>_&#95;NOTOC_&#95;</kbd> a página.",
+       "apihelp-emailuser-description": "Envia email para o usuário.",
+       "apihelp-emailuser-param-target": "Usuário a se enviar o email.",
+       "apihelp-emailuser-param-subject": "Cabeçalho do assunto.",
+       "apihelp-emailuser-param-text": "Corpo do email.",
+       "apihelp-emailuser-param-ccme": "Envie uma cópia deste email para mim.",
+       "apihelp-expandtemplates-description": "Expande todas a predefinições em wikitexto.",
+       "apihelp-expandtemplates-param-title": "Título da página.",
+       "apihelp-expandtemplates-param-text": "Wikitexto para converter.",
+       "apihelp-feedcontributions-description": "Retorna o feed de contribuições de um usuário.",
+       "apihelp-feedcontributions-param-feedformat": "O formato do feed.",
+       "apihelp-feedcontributions-param-namespace": "A partir de qual espaço nominal filtrar contribuições.",
+       "apihelp-feedcontributions-param-year": "Ano (inclusive anteriores):",
+       "apihelp-feedcontributions-param-month": "Mês (inclusive anteriores).",
+       "apihelp-feedcontributions-param-tagfilter": "Filtrar contribuições que têm essas tags.",
+       "apihelp-feedcontributions-param-deletedonly": "Mostrar apenas contribuições excluídas.",
+       "apihelp-feedcontributions-param-toponly": "Mostrar somente as edições que sejam a última revisão.",
+       "apihelp-feedcontributions-param-newonly": "Mostrar somente as edições que são criação de páginas.",
+       "apihelp-feedcontributions-param-showsizediff": "Mostrar a diferença de tamanho entre as revisões.",
+       "apihelp-feedrecentchanges-description": "Retorna um feed de alterações recentes.",
+       "apihelp-feedrecentchanges-param-feedformat": "O formato do feed.",
+       "apihelp-feedrecentchanges-param-namespace": "Espaço nominal a partir do qual limitar resultados.",
+       "apihelp-feedrecentchanges-param-invert": "Todos os espaços nominais, exceto o selecionado.",
+       "apihelp-feedrecentchanges-param-limit": "O número máximo a se retornar.",
+       "apihelp-feedrecentchanges-param-from": "Mostra modificações desde então.",
+       "apihelp-feedrecentchanges-param-hideminor": "Ocultar modificações menores.",
+       "apihelp-feedrecentchanges-param-hidebots": "Ocultar modificações menores feitas por bots.",
        "apihelp-feedrecentchanges-param-hidemyself": "Ocultar alterações feitas pelo usuário atual.",
+       "apihelp-feedrecentchanges-param-tagfilter": "Filtrar por tag.",
+       "apihelp-feedrecentchanges-example-simple": "Mostrar as mudanças recentes.",
        "apihelp-feedrecentchanges-example-30days": "Mostrar as alterações recentes por 30 dias.",
+       "apihelp-feedwatchlist-description": "Retornar um feed da lista de vigiados.",
+       "apihelp-feedwatchlist-param-feedformat": "O formato do feed.",
+       "apihelp-feedwatchlist-param-hours": "Lista páginas modificadas dentro dessa quantia de horas a partir de agora.",
+       "apihelp-feedwatchlist-param-linktosections": "Cria link diretamente para seções alteradas, se possível.",
+       "apihelp-feedwatchlist-example-default": "Mostra o feed de páginas vigiadas.",
+       "apihelp-filerevert-description": "Reverte um arquivo para uma versão antiga.",
+       "apihelp-filerevert-param-filename": "Nome do arquivo destino, sem o prefixo File:.",
+       "apihelp-filerevert-param-comment": "Enviar comentário.",
+       "apihelp-filerevert-param-archivename": "Nome do arquivo da revisão para qual reverter.",
+       "apihelp-filerevert-example-revert": "Reverter <kbd>Wiki.png</kbd> para a versão de <kbd>2011-03-05T15:27:40Z</kbd>.",
+       "apihelp-help-description": "Mostra a ajuda para os módulos especificados.",
+       "apihelp-help-param-submodules": "Inclui a ajuda para submódulos do módulo nomeado.",
+       "apihelp-help-param-recursivesubmodules": "Inclui a ajuda para submódulos de forma recursiva.",
+       "apihelp-help-param-helpformat": "Formato da saída da ajuda.",
+       "apihelp-help-param-wrap": "Encapsula a saída em uma estrutura de resposta da API padrão.",
+       "apihelp-help-param-toc": "Inclui uma tabela de conteúdo na saída HTML.",
+       "apihelp-help-example-main": "Ajuda para o módulo principal.",
+       "apihelp-help-example-recursive": "Toda ajuda em uma página.",
+       "apihelp-help-example-help": "Ajuda para o próprio módulo de ajuda",
+       "apihelp-imagerotate-description": "Gira uma ou mais imagens.",
+       "apihelp-imagerotate-param-rotation": "Graus para girar imagem no sentido horário.",
+       "apihelp-imagerotate-example-simple": "Girar <kbd>File:Example.png</kbd> em <kbd>90</kbd> graus.",
+       "apihelp-imagerotate-example-generator": "Girar todas as imagens em <kbd>Category:Flip</kbd> em <kbd>180</kbd> graus.",
+       "apihelp-import-param-summary": "Importar sumário.",
+       "apihelp-import-param-xml": "Enviar arquivo XML.",
+       "apihelp-import-param-namespace": "Importar para este espaço nominal. Não pode ser usado em conjunto com <var>$1rootpage</var>.",
+       "apihelp-import-param-rootpage": "Importar como subpágina para esta página. Não pode ser usada juntamente com <var>$1namespace</var>.",
+       "apihelp-login-param-name": "Nome de usuário.",
+       "apihelp-login-param-password": "Senha.",
+       "apihelp-login-param-domain": "Domínio (opcional).",
+       "apihelp-login-example-login": "Log in.",
+       "apihelp-move-description": "Mover uma página.",
+       "apihelp-move-param-from": "Título da página para renomear. Não pode ser usado em conjunto com <var>$1fromid</var>.",
+       "apihelp-move-param-fromid": "ID da página a se renomear. Não pode ser usado em conjunto com <var>$1from</var>.",
        "apihelp-move-param-movetalk": "Renomear a página de discussão, se existir.",
-       "apihelp-options-example-reset": "Resetar todas as preferências"
+       "apihelp-move-param-movesubpages": "Renomeia subpáginas, se aplicável.",
+       "apihelp-move-param-noredirect": "Não cria um redirecionamento.",
+       "apihelp-move-param-watch": "Adiciona a página e o redirecionamento para a lista de vigiados do usuário atual.",
+       "apihelp-move-param-unwatch": "Remove a página e o redirecionamento para a lista de vigiados do usuário atual.",
+       "apihelp-opensearch-param-limit": "O número máximo a se retornar.",
+       "apihelp-opensearch-param-namespace": "Espaço nominal para pesquisar.",
+       "apihelp-opensearch-example-te": "Encontra páginas começando com <kbd>Te</kbd>.",
+       "apihelp-options-param-reset": "Redefinir preferências para os padrões do site.",
+       "apihelp-options-example-reset": "Resetar todas as preferências",
+       "apihelp-options-example-complex": "Redefine todas as preferências, então define <kbd>skin</kbd> e <kbd>apelido</kbd>.",
+       "apihelp-paraminfo-description": "Obtém informações sobre módulos de API.",
+       "apihelp-parse-param-summary": "Sumário para analisar.",
+       "apihelp-parse-param-page": "Analisa o conteúdo desta página. Não pode ser usado em conjunto com <var>$1text</var> e <var>$1title</var>.",
+       "apihelp-parse-param-pageid": "Analisa o conteúdo desta página. sobrepõe <var>$1page</var>.",
+       "apihelp-parse-param-prop": "Qual pedaço de informação obter:",
+       "apihelp-parse-paramvalue-prop-text": "Fornece o texto analisado do wikitexto.",
+       "apihelp-parse-paramvalue-prop-langlinks": "Fornece os links de idiomas do wikitexto analisado",
+       "apihelp-parse-paramvalue-prop-categories": "Fornece as categorias no wikitexto analisado.",
+       "apihelp-parse-paramvalue-prop-categorieshtml": "Fornece a versão HTML das categorias.",
+       "apihelp-parse-paramvalue-prop-links": "Fornece os links internos do wikitexto analisado.",
+       "apihelp-parse-paramvalue-prop-templates": "Fornece a predefinição no wikitexto analisado.",
+       "apihelp-parse-paramvalue-prop-images": "Fornece as imagens no wikitexto analisado.",
+       "apihelp-parse-paramvalue-prop-externallinks": "Fornece os links externos no wikitexto analisado.",
+       "apihelp-parse-paramvalue-prop-sections": "Fornece as seções no wikitexto analisado.",
+       "apihelp-parse-paramvalue-prop-headitems": "Fornece itens para colocar no <code>&lt;head&gt;</code> da página.",
+       "apihelp-parse-paramvalue-prop-headhtml": "Fornece <code>&lt;head&gt;</code> analisado da página.",
+       "apihelp-parse-paramvalue-prop-modules": "Fornece os módulos ResourceLoader usados na página.",
+       "apihelp-parse-paramvalue-prop-jsconfigvars": "Fornece as variáveis de configuração JavaScript específicas da página.",
+       "apihelp-parse-paramvalue-prop-encodedjsconfigvars": "Fornece as variáveis de configuração JavaScript específicas da página como uma string JSON.",
+       "apihelp-parse-paramvalue-prop-indicators": "Fornece o HTML de indicadores de ''status'' de página utilizados na página.",
+       "apihelp-parse-paramvalue-prop-iwlinks": "Fornece links interwiki no wikitexto analisado.",
+       "apihelp-parse-paramvalue-prop-wikitext": "Fornece o wikitexto original que foi analisado.",
+       "apihelp-parse-paramvalue-prop-properties": "Fornece várias propriedades definidas no wikitexto analisado.",
+       "apihelp-parse-paramvalue-prop-limitreportdata": "Fornece o relatório limite de uma forma estruturada. Não informa dado, quando<var>$1disablepp</var> se definido.",
+       "apihelp-parse-example-page": "Analisa uma página.",
+       "apihelp-parse-example-text": "Analisa wikitexto.",
+       "apihelp-parse-example-texttitle": "Analisa wikitexto, especificando o título da página.",
+       "apihelp-parse-example-summary": "Analisa uma sumário.",
+       "apihelp-patrol-description": "Patrulha uma página ou revisão.",
+       "apihelp-patrol-param-rcid": "ID de Mudanças recentes para patrulhar.",
+       "apihelp-patrol-param-revid": "ID de revisão para patrulhar.",
+       "apihelp-patrol-example-rcid": "Patrulha uma modificação recente.",
+       "apihelp-patrol-example-revid": "Patrulha uma revisão.",
+       "apihelp-protect-description": "Modifica o nível de proteção de uma página.",
+       "apihelp-protect-param-title": "Título da página para (des)proteger. Não pode ser usado em conjunto com $1pageid.",
+       "apihelp-protect-param-pageid": "ID da página a se (des)proteger. Não pode ser usado em conjunto com $1title.",
+       "apihelp-protect-param-reason": "Motivo para (des)proteger.",
+       "apihelp-protect-example-protect": "Protege uma página.",
+       "apihelp-protect-example-unprotect": "Desprotege uma página definindo restrições para <kbd>tudo</kbd>.",
+       "apihelp-protect-example-unprotect2": "Desprotege uma página ao não definir restrições.",
+       "apihelp-purge-param-forcelinkupdate": "Atualiza as tabelas de links.",
+       "apihelp-purge-param-forcerecursivelinkupdate": "Atualiza a tabela de links, e atualiza as tabelas de links para qualquer página que usa essa página como um modelo.",
+       "apihelp-query-param-list": "Quais listas obter.",
+       "apihelp-query-param-meta": "Quais metadados obter.",
+       "apihelp-query+allcategories-description": "Enumera todas as categorias.",
+       "apihelp-query+allcategories-param-prefix": "Pesquisa por todo os título de categoria que começam com este valor.",
+       "apihelp-query+allcategories-param-dir": "Direção para ordenar.",
+       "apihelp-query+allcategories-param-min": "Retorna apenas as categorias com pelo menos esta quantidade de membros.",
+       "apihelp-query+allcategories-param-max": "Retorna apenas as categorias com no máximo esta quantidade de membros.",
+       "apihelp-query+allcategories-param-limit": "Quantas categorias retornar.",
+       "apihelp-query+allcategories-example-size": "Lista categorias com a informação sobre o número de páginas em cada uma.",
+       "apihelp-query+alldeletedrevisions-description": "Lista todas as revisões excluídas por um usuário ou em um espaço nominal.",
+       "apihelp-query+alldeletedrevisions-paraminfo-useronly": "Só pode ser usada com <var>$3user</var>.",
+       "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "Não pode ser usada com <var>$3user</var>.",
+       "apihelp-query+alldeletedrevisions-param-start": "A data a partir da qual começar a enumeração.",
+       "apihelp-query+alldeletedrevisions-param-end": "A data onde parar a enumeração.",
+       "apihelp-query+alldeletedrevisions-param-from": "Começar listando desse título.",
+       "apihelp-query+alldeletedrevisions-param-to": "Parar a listagem neste título.",
+       "apihelp-query+alldeletedrevisions-param-prefix": "Pesquisa por todo os título que começam com este valor.",
+       "apihelp-query+alldeletedrevisions-param-tag": "Lista apenas as revisões com esta tag.",
+       "apihelp-query+alldeletedrevisions-param-user": "Lista apenas revisões desse usuário.",
+       "apihelp-query+alldeletedrevisions-param-excludeuser": "Não lista as revisões deste usuário.",
+       "apihelp-query+alldeletedrevisions-param-namespace": "Lista páginas apenas neste espaço nominal.",
+       "apihelp-query+alldeletedrevisions-example-user": "Lista as últimas 50 contribuições excluídas pelo usuário <kbd>Exemplo<kbd>.",
+       "apihelp-query+alldeletedrevisions-example-ns-main": "Lista as primeiras 50 edições excluídas no espaço nominal principal.",
+       "apihelp-query+allfileusages-description": "Lista todas as utilizações de arquivo, incluindo os não-existentes.",
+       "apihelp-query+allfileusages-param-from": "O título do arquivo a partir do qual começar a enumerar.",
+       "apihelp-query+allfileusages-param-to": "O título do arquivo onde parar de enumerar.",
+       "apihelp-query+allfileusages-param-limit": "Quantos itens retornar.",
+       "apihelp-query+allimages-param-user": "Retorna apenas os arquivos enviados por este usuário. Só pode ser usado com $1sort=timestamp. Não pode ser usado em conjunto com $1filterbots.",
+       "apihelp-query+allimages-param-filterbots": "Como filtrar arquivos enviados por bots. Só pode ser usado com $1sort=timestamp. Não pode ser usado em conjunto com $1user.",
+       "apihelp-query+allimages-param-mime": "Quais tipos MIME pesquisar, ex.: <kbd>image/jpeg</kbd>.",
+       "apihelp-query+allimages-param-limit": "Quantas imagens retornar.",
+       "apihelp-query+allimages-example-B": "Mostra uma lista de arquivos começando com a letra <kbd>B</kbd>.",
+       "apihelp-query+allimages-example-recent": "Mostra uma lista de arquivos recentemente enviados, semelhante ao [[Special:NewFiles]].",
+       "apihelp-query+allimages-example-mimetypes": "Mostra uma lista de arquivos com o tipo MIME <kbd>image/png</kbd> ou <kbd>image/gif</kbd>",
+       "apihelp-query+allimages-example-generator": "Mostra informações sobre 4 arquivos começando com a letra <kbd>T</kbd>.",
+       "apihelp-query+alllinks-description": "Enumerar todos os links que apontam para um determinado espaço nominal.",
+       "apihelp-query+alllinks-param-from": "O título do link a partir do qual começar a enumerar.",
+       "apihelp-query+alllinks-param-to": "O título do link onde parar de enumerar.",
+       "apihelp-query+alllinks-param-prefix": "Pesquisa por todos os títulos com link que começam com este valor.",
+       "apihelp-query+alllinks-param-namespace": "O espaço nominal a se enumerar.",
+       "apihelp-query+alllinks-param-limit": "Quantos itens retornar.",
+       "apihelp-query+alllinks-example-generator": "Obtém páginas contendo os links.",
+       "apihelp-query+allmessages-param-prop": "Quais propriedades obter.",
+       "apihelp-query+allmessages-param-customised": "Retornar apenas mensagens neste estado personalização.",
+       "apihelp-query+allmessages-param-lang": "Retornar mensagens neste idioma.",
+       "apihelp-query+allmessages-param-from": "Retornar mensagens começando com esta mensagem.",
+       "apihelp-query+allmessages-param-to": "Retornar mensagens terminando com esta mensagem.",
+       "apihelp-query+allmessages-param-prefix": "Retornar apenas mensagens com este prefixo.",
+       "apihelp-query+allmessages-example-ipb": "Mostrar mensagens começando com <kbd>ipb-</kbd>.",
+       "apihelp-query+allpages-param-namespace": "O espaço nominal a se enumerar.",
+       "apihelp-query+allpages-param-filterredir": "Quais páginas listar.",
+       "apihelp-query+allpages-param-minsize": "Limitar a páginas com pelo menos essa quantidade de bytes.",
+       "apihelp-query+allpages-param-maxsize": "Limitar a páginas com no máximo essa quantidade de bytes.",
+       "apihelp-query+allpages-param-limit": "Quantas páginas retornar.",
+       "apihelp-query+allredirects-description": "Lista todos os redirecionamentos para um espaço nominal.",
+       "apihelp-query+allredirects-param-from": "O título do redirecionamento a partir do qual começar a enumerar.",
+       "apihelp-query+allredirects-param-to": "O título do redirecionamento onde parar de enumerar.",
+       "apihelp-query+allredirects-param-namespace": "O espaço nominal a se enumerar.",
+       "apihelp-query+alltransclusions-param-namespace": "O espaço nominal a se enumerar.",
+       "apihelp-query+alltransclusions-param-limit": "Quantos itens retornar.",
+       "apihelp-query+backlinks-param-title": "Título a se pesquisar. Não pode ser usado em conjunto com <var>$1pageid</var>.",
+       "apihelp-query+backlinks-param-pageid": "ID da página a se pesquisar. Não pode ser usado em conjunto com <var>$1title</var>.",
+       "apihelp-query+backlinks-param-namespace": "O espaço nominal a se enumerar.",
+       "apihelp-query+blocks-param-ip": "Obtém todos os blocos aplicando a este IP ou intervalos CIDR, incluindo intervalos de blocos.\nNão pode ser usado em conjunto com <var>$3users</var>. Intervalos CIDR mais largos do que IPv4/$1 ou IPv6/$2 não são aceitos.",
+       "apihelp-query+categories-param-limit": "Quantas categorias retornar.",
+       "apihelp-query+categorymembers-param-title": "Qual categoria enumerar (obrigatório). Deve incluir o prefixo <kbd>{{ns:category}}:</kbd>. Não pode ser usado em conjunto com <var>$1pageid</var>.",
+       "apihelp-query+categorymembers-param-pageid": "ID da página da categoria para enumerar. Não pode ser usado em conjunto com <var>$1title</var>.",
+       "apihelp-query+contributors-param-limit": "Quantas contribuições retornar.",
+       "apihelp-query+duplicatefiles-param-limit": "Quantos arquivos duplicados retornar.",
+       "apihelp-query+embeddedin-param-title": "Título a se pesquisar. Não pode ser usado em conjunto com $1pageid.",
+       "apihelp-query+embeddedin-param-pageid": "ID da página a se pesquisar. Não pode ser usado em conjunto com $1title.",
+       "apihelp-query+embeddedin-param-namespace": "O espaço nominal a se enumerar.",
+       "apihelp-query+embeddedin-param-filterredir": "Como filtrar por redirecionamentos.",
+       "apihelp-query+embeddedin-param-limit": "Quantas páginas retornar.",
+       "apihelp-query+embeddedin-example-simple": "Mostrar páginas transcluíndo <kbd>Template:Stub</kbd>.",
+       "apihelp-query+embeddedin-example-generator": "Obtém informação sobre páginas transcluindo <kbd>Template:Stub</kbd>.",
+       "apihelp-query+extlinks-description": "Retorna todas as URLs externas (não interwikis) a partir das páginas de dados.",
+       "apihelp-query+extlinks-param-limit": "Quantos links retornar.",
+       "apihelp-query+exturlusage-param-limit": "Quantas páginas retornar.",
+       "apihelp-query+filearchive-param-limit": "Quantas imagens retornar.",
+       "apihelp-query+fileusage-param-limit": "Quantos retornar.",
+       "apihelp-query+imageinfo-param-limit": "Quantas revisões de arquivos retornar por arquivo.",
+       "apihelp-query+images-param-limit": "Quantos arquivos retornar.",
+       "apihelp-query+imageusage-param-title": "Título a se pesquisar. Não pode ser usado em conjunto com $1pageid.",
+       "apihelp-query+imageusage-param-pageid": "ID da página para pesquisar. Não pode ser usado em conjunto com $1title.",
+       "apihelp-query+imageusage-param-namespace": "O espaço nominal a se enumerar.",
+       "apihelp-query+info-paramvalue-prop-readable": "Se o usuário pode ler esta página.",
+       "apihelp-query+info-paramvalue-prop-preload": "Fornece o texto retornado por EditFormPreloadText.",
+       "apihelp-query+info-paramvalue-prop-displaytitle": "Fornece a forma como o título da página é exibido atualmente.",
+       "apihelp-query+info-param-testactions": "Testa se o usuário atual pode executar determinadas ações na página.",
+       "apihelp-query+info-example-simple": "Obtém informações sobre a página <kbd>Página principal</kbd>.",
+       "apihelp-query+iwbacklinks-description": "Encontra todas as páginas que apontam para o determinado link interwiki.\n\nPode ser usado para encontrar todos os links com um prefixo, ou todos os links para um título (com um determinado prefixo). Usar nenhum parâmetro é efetivamente \"todos os links interwiki\".",
+       "apihelp-query+iwbacklinks-param-prefix": "Prefixo para o interwiki.",
+       "apihelp-query+iwbacklinks-param-limit": "Quantas páginas retornar.",
+       "apihelp-query+langbacklinks-param-limit": "Quantas páginas retornar.",
+       "apihelp-query+langlinks-param-limit": "Quantos links de idioma retornar.",
+       "apihelp-query+links-param-limit": "Quantos links retornar.",
+       "apihelp-query+linkshere-param-limit": "Quantos retornar.",
+       "apihelp-query+prefixsearch-param-limit": "O número máximo a se retornar.",
+       "apihelp-query+search-param-limit": "Quantas páginas retornar.",
+       "apihelp-query+templates-param-limit": "Quantas predefinições retornar.",
+       "apihelp-query+transcludedin-param-limit": "Quantos retornar.",
+       "apihelp-query+watchlist-param-limit": "Quantos resultados retornar por solicitação.",
+       "apihelp-query+watchlistraw-param-limit": "Quantos resultados retornar por solicitação.",
+       "apihelp-rollback-param-title": "Título da página para reverter. Não pode ser usado em conjunto com <var>$1pageid</var>.",
+       "apihelp-rollback-param-pageid": "ID da página para reverter. Não pode ser usado em conjunto com <var>$1title</var>.",
+       "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>.",
+       "apihelp-unblock-param-user": "Nome de usuário, endereço IP ou intervalo de IP para a se desbloquear. Não pode ser usado em conjunto com <var>$1id</var>."
 }
index 876f598..f690cf4 100644 (file)
@@ -7,7 +7,8 @@
                        "Umherirrender",
                        "McDutchie",
                        "Raymond",
-                       "Anomie"
+                       "Anomie",
+                       "Nemo bis"
                ]
        },
        "apihelp-main-description": "{{doc-apihelp-description|main}}",
        "apihelp-expandtemplates-param-title": "{{doc-apihelp-param|expandtemplates|title}}",
        "apihelp-expandtemplates-param-text": "{{doc-apihelp-param|expandtemplates|text}}",
        "apihelp-expandtemplates-param-revid": "{{doc-apihelp-param|expandtemplates|revid}}\n{{doc-important|Do not translate <code><<nowiki />nowiki>{{<nowiki />REVISIONID}}<<nowiki />/nowiki></code>}}",
-       "apihelp-expandtemplates-param-prop": "{{doc-apihelp-param|expandtemplates|prop}}",
+       "apihelp-expandtemplates-param-prop": "{{doc-apihelp-param|expandtemplates|prop|paramvalues=1}}",
+       "apihelp-expandtemplates-paramvalue-prop-wikitext": "{{doc-apihelp-paramvalue|expandtemplates|prop|wikitext}}",
+       "apihelp-expandtemplates-paramvalue-prop-categories": "{{doc-apihelp-paramvalue|expandtemplates|prop|categories}}",
+       "apihelp-expandtemplates-paramvalue-prop-properties": "{{doc-apihelp-paramvalue|expandtemplates|prop|properties}}",
+       "apihelp-expandtemplates-paramvalue-prop-volatile": "{{doc-apihelp-paramvalue|expandtemplates|prop|volatile}}",
+       "apihelp-expandtemplates-paramvalue-prop-ttl": "{{doc-apihelp-paramvalue|expandtemplates|prop|ttl}}",
+       "apihelp-expandtemplates-paramvalue-prop-modules": "{{doc-apihelp-paramvalue|expandtemplates|prop|modules}}",
+       "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "{{doc-apihelp-paramvalue|expandtemplates|prop|jsconfigvars}}",
+       "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "{{doc-apihelp-paramvalue|expandtemplates|prop|encodedjsconfigvars}}",
+       "apihelp-expandtemplates-paramvalue-prop-parsetree": "{{doc-apihelp-paramvalue|expandtemplates|prop|parsetree}}",
        "apihelp-expandtemplates-param-includecomments": "{{doc-apihelp-param|expandtemplates|includecomments}}",
        "apihelp-expandtemplates-param-generatexml": "{{doc-apihelp-param|expandtemplates|generatexml}}",
        "apihelp-expandtemplates-example-simple": "{{doc-apihelp-example|expandtemplates}}",
        "apihelp-opensearch-param-suggest": "{{doc-apihelp-param|opensearch|suggest}}",
        "apihelp-opensearch-param-redirects": "{{doc-apihelp-param|opensearch|redirects}}",
        "apihelp-opensearch-param-format": "{{doc-apihelp-param|opensearch|format}}",
+       "apihelp-opensearch-param-warningsaserror": "{{doc-apihelp-param|opensearch|warningsaserror}}",
        "apihelp-opensearch-example-te": "{{doc-apihelp-example|opensearch}}",
        "apihelp-options-description": "{{doc-apihelp-description|options}}",
        "apihelp-options-param-reset": "{{doc-apihelp-param|options|reset}}",
        "apihelp-parse-param-pageid": "{{doc-apihelp-param|parse|pageid}}",
        "apihelp-parse-param-redirects": "{{doc-apihelp-param|parse|redirects}}",
        "apihelp-parse-param-oldid": "{{doc-apihelp-param|parse|oldid}}",
-       "apihelp-parse-param-prop": "{{doc-apihelp-param|parse|prop}}",
+       "apihelp-parse-param-prop": "{{doc-apihelp-param|parse|prop|paramvalues=1}}",
+       "apihelp-parse-paramvalue-prop-text": "{{doc-apihelp-paramvalue|parse|prop|text}}",
+       "apihelp-parse-paramvalue-prop-langlinks": "{{doc-apihelp-paramvalue|parse|prop|langlinks}}",
+       "apihelp-parse-paramvalue-prop-categories": "{{doc-apihelp-paramvalue|parse|prop|categories}}",
+       "apihelp-parse-paramvalue-prop-categorieshtml": "{{doc-apihelp-paramvalue|parse|prop|categorieshtml}}",
+       "apihelp-parse-paramvalue-prop-links": "{{doc-apihelp-paramvalue|parse|prop|links}}",
+       "apihelp-parse-paramvalue-prop-templates": "{{doc-apihelp-paramvalue|parse|prop|templates}}",
+       "apihelp-parse-paramvalue-prop-images": "{{doc-apihelp-paramvalue|parse|prop|images}}",
+       "apihelp-parse-paramvalue-prop-externallinks": "{{doc-apihelp-paramvalue|parse|prop|externallinks}}",
+       "apihelp-parse-paramvalue-prop-sections": "{{doc-apihelp-paramvalue|parse|prop|sections}}",
+       "apihelp-parse-paramvalue-prop-revid": "{{doc-apihelp-paramvalue|parse|prop|revid}}",
+       "apihelp-parse-paramvalue-prop-displaytitle": "{{doc-apihelp-paramvalue|parse|prop|displaytitle}}",
+       "apihelp-parse-paramvalue-prop-headitems": "{{doc-apihelp-paramvalue|parse|prop|headitems}}",
+       "apihelp-parse-paramvalue-prop-headhtml": "{{doc-apihelp-paramvalue|parse|prop|headhtml}}",
+       "apihelp-parse-paramvalue-prop-modules": "{{doc-apihelp-paramvalue|parse|prop|modules}}",
+       "apihelp-parse-paramvalue-prop-jsconfigvars": "{{doc-apihelp-paramvalue|parse|prop|jsconfigvars}}",
+       "apihelp-parse-paramvalue-prop-encodedjsconfigvars": "{{doc-apihelp-paramvalue|parse|prop|encodedjsconfigvars}}",
+       "apihelp-parse-paramvalue-prop-indicators": "{{doc-apihelp-paramvalue|parse|prop|indicators}}",
+       "apihelp-parse-paramvalue-prop-iwlinks": "{{doc-apihelp-paramvalue|parse|prop|iwlinks}}",
+       "apihelp-parse-paramvalue-prop-wikitext": "{{doc-apihelp-paramvalue|parse|prop|wikitext}}",
+       "apihelp-parse-paramvalue-prop-properties": "{{doc-apihelp-paramvalue|parse|prop|properties}}",
+       "apihelp-parse-paramvalue-prop-limitreportdata": "{{doc-apihelp-paramvalue|parse|prop|limitreportdata}}",
+       "apihelp-parse-paramvalue-prop-limitreporthtml": "{{doc-apihelp-paramvalue|parse|prop|limitreporthtml}}",
        "apihelp-parse-param-pst": "{{doc-apihelp-param|parse|pst}}",
        "apihelp-parse-param-onlypst": "{{doc-apihelp-param|parse|onlypst}}",
        "apihelp-parse-param-effectivelanglinks": "{{doc-apihelp-param|parse|effectivelanglinks}}",
        "apihelp-query+allmessages-param-includelocal": "{{doc-apihelp-param|query+allmessages|includelocal}}",
        "apihelp-query+allmessages-param-args": "{{doc-apihelp-param|query+allmessages|args}}",
        "apihelp-query+allmessages-param-filter": "{{doc-apihelp-param|query+allmessages|filter}}",
-       "apihelp-query+allmessages-param-customised": "{{doc-apihelp-param|query+allmessages|customised}}",
+       "apihelp-query+allmessages-param-customised": "\"Customisation state\" means the choice made by the user to only list locally customised system messages or not.\n----\n{{doc-apihelp-param|query+allmessages|customised}}",
        "apihelp-query+allmessages-param-lang": "{{doc-apihelp-param|query+allmessages|lang}}",
        "apihelp-query+allmessages-param-from": "{{doc-apihelp-param|query+allmessages|from}}",
        "apihelp-query+allmessages-param-to": "{{doc-apihelp-param|query+allmessages|to}}",
        "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-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-query+watchlistraw-example-generator": "{{doc-apihelp-example|query+watchlistraw}}",
        "apihelp-revisiondelete-description": "{{doc-apihelp-description|revisiondelete}}",
        "apihelp-yamlfm-description": "{{doc-apihelp-description|yamlfm|seealso=* {{msg-mw|apihelp-yaml-description}}}}",
        "api-format-title": "{{technical}}\nPage title when API output is pretty-printed in HTML.",
        "api-format-prettyprint-header": "{{technical}} Displayed as a header when API output is pretty-printed in HTML.\n\nParameters:\n* $1 - Format name\n* $2 - Non-pretty-printing module name",
+       "api-format-prettyprint-header-only-html": "{{technical}} Displayed as a header when API output is pretty-printed in HTML, but there is no non-html module.\n\nParameters:\n* $1 - Format name",
        "api-orm-param-props": "{{doc-apihelp-param|orm|props|description=the \"props\" parameter in subclasses of ApiQueryORM}}",
        "api-orm-param-limit": "{{doc-apihelp-param|orm|limit|description=the \"limit\" parameter in subclasses of ApiQueryORM}}",
        "api-pageset-param-titles": "{{doc-apihelp-param|pageset|titles|description=the \"titles\" parameter in pageset-using modules}}",
        "api-help-param-type-limit": "{{technical}} {{doc-important|Do not translate text inside &lt;kbd%gt; tags}} Used to indicate that a parameter is a \"limit\" type. Parameters:\n* $1 - Always 1.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
        "api-help-param-type-integer": "{{technical}} Used to indicate that a parameter is an integer or list of integers. Parameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes a list of values.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
        "api-help-param-type-boolean": "{{technical}} {{doc-important|Do not translate <code>Special:ApiHelp</code> in this message.}} Used to indicate that a parameter is a boolean. Parameters:\n* $1 - Always 1.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
+       "api-help-param-type-password": "{{optional}}{{technical}} Used to indicate that a parameter is a password or list of passwords. Parameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes a list of values.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
        "api-help-param-type-timestamp": "{{technical}} {{doc-important|Do not translate <code>Special:ApiHelp</code> in this message.}} Used to indicate that a parameter is a timestamp or list of timestamps. Parameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes a list of values.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
        "api-help-param-type-user": "{{technical}} Used to indicate that a parameter is a username or list of usernames. Parameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes a list of values.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
        "api-help-param-list": "Used to display the possible values for a parameter taking a list of values\n\nParameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes any number of values\n* $2 - Comma-separated list of values, possibly formatted using {{msg-mw|api-help-param-list-can-be-empty}}\n{{Identical|Value}}",
index 2ccfd92..0b50ad2 100644 (file)
@@ -5,7 +5,8 @@
                        "Okras",
                        "Eakarpov",
                        "Kaganer",
-                       "Mariya"
+                       "Mariya",
+                       "Дмитрий"
                ]
        },
        "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 с ключом \"MediaWiki-API-Error\", после чего значение заголовка и код ошибки будут отправлены обратно и установлены в то же значение. Более подробную информацию см. [[mw:API:Errors_and_warnings|API: Ошибки и предупреждения]].",
        "apihelp-block-param-user": "Имя участника, IP-адрес или диапазон IP-адресов, которые вы хотите заблокировать.",
        "apihelp-block-param-reason": "Причина блокировки.",
        "apihelp-block-param-nocreate": "Запретить создание учётных записей.",
+       "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-compare-param-fromtitle": "Первый заголовок для сравнения.",
+       "apihelp-compare-param-fromid": "Первый идентификатор страницы для сравнения.",
+       "apihelp-compare-param-fromrev": "Первая редакция для сравнения.",
+       "apihelp-compare-param-totitle": "Второй заголовок для сравнения.",
+       "apihelp-compare-param-toid": "Второй идентификатор страницы для сравнения",
+       "apihelp-compare-param-torev": "Вторая версия для сравнения",
+       "apihelp-compare-example-1": "Создание различий между версиями 1 и 2.",
+       "apihelp-createaccount-description": "Создайте новую учетную запись Пользователя.",
        "apihelp-createaccount-param-name": "Имя участника.",
+       "apihelp-createaccount-param-password": "Пароль (ignored if <var>$1mailpassword</var> is set).",
+       "apihelp-createaccount-param-domain": "Домен для внешней аутентификации (дополнительно).",
+       "apihelp-createaccount-param-token": "Создание учетной записи токена, полученные в первом запросе.",
+       "apihelp-createaccount-param-email": "Адрес электронной почты пользователя (дополнительно).",
+       "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>$1страницы</var> невозможно.",
        "apihelp-delete-param-watch": "Добавить страницу к текущему списку наблюдения пользователя.",
+       "apihelp-delete-example-simple": "удалить <kbd>Main Page</kbd>.",
+       "apihelp-delete-example-reason": "Удалить <kbd>Main Page</kbd> причина <kbd>Preparing for move</kbd>.",
        "apihelp-disabled-description": "Этот модуль был отключен.",
+       "apihelp-edit-description": "Создать и отредактировать страницы.",
        "apihelp-edit-param-sectiontitle": "Заголовок для нового раздела.",
        "apihelp-edit-param-text": "Содержание страницы.",
        "apihelp-edit-param-minor": "Незначительное изменение (малая правка).",
        "apihelp-edit-param-bot": "Пометить правку как сделанную ботом.",
        "apihelp-edit-param-watch": "Добавить страницу к текущему списку наблюдения пользователя.",
        "apihelp-edit-example-edit": "Редактировать страницу",
+       "apihelp-emailuser-description": "Письмо участнику",
+       "apihelp-emailuser-param-subject": "Заголовок темы.",
+       "apihelp-emailuser-param-text": "Содержание письма",
+       "apihelp-emailuser-param-ccme": "Отправить копию этого сообщения мне.",
+       "apihelp-emailuser-example-email": "Отправить письмо пользователю <kbd>WikiSysop</kbd> с текстом <kbd>контентом</kbd>.",
+       "apihelp-expandtemplates-description": "Разворачивает все шаблоны в wikitext.",
        "apihelp-expandtemplates-param-title": "Заголовок страницы.",
+       "apihelp-feedcontributions-param-year": "От года (и ранее).",
+       "apihelp-feedcontributions-param-month": "От месяца (и ранее).",
+       "apihelp-feedrecentchanges-param-tagfilter": "Фильтр по тегам.",
+       "apihelp-filerevert-param-comment": "Загрузить комментарий.",
+       "apihelp-help-example-recursive": "Вся справка в одном разделе.",
+       "apihelp-import-param-summary": "Импорт итога",
        "apihelp-import-param-xml": "Загруженный XML-файл.",
        "apihelp-login-param-name": "Имя участника.",
        "apihelp-login-param-password": "Пароль.",
        "apihelp-login-param-domain": "Домен (необязательно).",
        "apihelp-login-example-login": "Войти",
        "apihelp-logout-description": "Выйти и очистить данные сессии.",
+       "apihelp-move-description": "Переместить страницу.",
+       "apihelp-move-param-ignorewarnings": "Игнорировать предупреждения",
+       "apihelp-opensearch-param-search": "Строка поиска.",
+       "apihelp-parse-example-page": "анализ страницы",
+       "apihelp-parse-example-text": "Анализ wikitext.",
+       "apihelp-protect-example-protect": "Защитить страницу.",
+       "apihelp-purge-param-forcelinkupdate": "Обновление связей таблиц.",
+       "apihelp-query-param-list": "Какие списки использовать",
+       "apihelp-query-param-meta": "Какие метаданные использовать",
        "apihelp-query+alllinks-example-unique-generator": "Получить все названия-ссылки, выделяя пропущенные.",
+       "apihelp-query+blocks-example-simple": "Список блоков.",
+       "apihelp-query+categories-param-limit": "Сколько категорий на возврат.",
+       "apihelp-query+categorymembers-param-sort": "Свойство для сортировки.",
+       "apihelp-query+categorymembers-param-startsortkey": "Использовать $1starthexsortkey вместо.",
+       "apihelp-query+categorymembers-param-endsortkey": "Использовать $1endhexsortkey вместо.",
        "apihelp-query+duplicatefiles-example-generated": "Поиск дубликатов всех файлов.",
+       "apihelp-query+logevents-description": "Получать события из журналов.",
+       "apihelp-query+logevents-example-simple": "Список последних зарегистрированных событий.",
+       "apihelp-query+pagepropnames-example-simple": "Получить первые 10 имен свойств.",
+       "apihelp-query+pageswithprop-param-limit": "Максимальное количество страниц для возврата",
+       "apihelp-query+pageswithprop-param-dir": "В каком направлении сортировать",
+       "apihelp-query+prefixsearch-param-search": "Строка поиска.",
+       "apihelp-query+prefixsearch-param-offset": "Количество результатов для пропуска",
+       "apihelp-query+protectedtitles-example-simple": "Список защищенных заголовков",
+       "apihelp-query+querypage-param-limit": "Количество возвращаемых результатов.",
+       "apihelp-query+recentchanges-param-limit": "Какое общее количество возвращать",
+       "apihelp-query+recentchanges-param-type": "Какие типы изменений показать.",
        "apihelp-query+recentchanges-example-simple": "Список последних изменений.",
+       "apihelp-query+redirects-param-limit": "Сколько перенаправлений вернуть.",
+       "apihelp-query+revisions-example-last5": "Получить последние 5 версий <kbd>Main Page</kbd>.",
+       "apihelp-query+revisions-example-first5": "Получить 5 первых версий <kbd>Main Page</kbd>.",
+       "apihelp-query+revisions-example-first5-after": "Получить 5 первых версий <kbd>Main Page</kbd> созданных после 2006-05-01.",
+       "apihelp-query+revisions-example-first5-not-localhost": "Получить 5 первых версий <kbd>Main Page</kbd> которые не созданы анонимными пользователями <kbd>127.0.0.1</kbd>.",
+       "apihelp-query+revisions-example-first5-user": "Получить 5 первых версий <kbd>Main Page</kbd> которые созданы пользователями <kbd>MediaWiki default</kbd>.",
+       "apihelp-query+revisions+base-param-limit": "Ограничение на количество версий которое будут вовзращено",
+       "apihelp-query+search-description": "Выполнить полнотекстовый поиск.",
+       "apihelp-query+tags-description": "Список изменерий тегов.",
+       "apihelp-query+tags-example-simple": "Лист доступных тегов",
+       "apihelp-query+templates-param-namespace": "Показывать шаблоны только из данного списка имен",
+       "apihelp-query+templates-param-limit": "Как много шаблонов для возврата",
+       "apihelp-query+transcludedin-param-limit": "Сколько возвращать",
+       "apihelp-query+usercontribs-description": "Получить все правки пользователя",
+       "apihelp-revisiondelete-description": "удалить и восстановить редакции",
+       "apihelp-unblock-description": "Разблокировать пользователя.",
+       "apihelp-unblock-param-reason": "Причина разблокировки",
+       "apihelp-unblock-example-id": "Разблокировать блок с идентификатором #<kbd>105</kbd>.",
+       "apihelp-unblock-example-user": "Разблокировать пользователя <kbd>Bob</kbd> по причине <kbd>Sorry Bob</kbd>.",
+       "apihelp-undelete-param-title": "Заголовок страницы для восстановления.",
+       "apihelp-undelete-param-reason": "Причины восстановления.",
+       "apihelp-undelete-example-page": "Восстановить страницу <kbd>Main Page</kbd>.",
+       "apihelp-undelete-example-revisions": "Восстановить две версии страницы <kbd>Main Page</kbd>.",
+       "apihelp-upload-param-filename": "целевое название файла",
+       "apihelp-upload-param-text": "Первоначальный текст страницы для новых файлов.",
+       "apihelp-upload-param-watch": "Наблюдать за этой страницей",
+       "apihelp-upload-param-ignorewarnings": "Игнорируйте любые предупреждения.",
+       "apihelp-upload-param-file": "Содержимое файла.",
+       "apihelp-upload-param-url": "URL-Адрес для извлечения файла из.",
+       "apihelp-upload-param-offset": "Смещение блока в байтах.",
+       "apihelp-upload-param-chunk": "Кусок содержимого.",
+       "apihelp-upload-param-asyncdownload": "Сделать извлечение URL-адреса асинхронно",
        "apihelp-upload-example-url": "Загрузить через URL",
+       "apihelp-userrights-description": "Изменить членство в группе пользователей.",
+       "apihelp-userrights-param-user": "Имя пользователя",
+       "apihelp-userrights-param-userid": "Идентификатор пользователя.",
+       "apihelp-userrights-param-add": "Добавить пользователя в эти группы.",
+       "apihelp-userrights-param-remove": "Удалить пользователя из этих групп.",
+       "apihelp-userrights-param-reason": "Причина изменений",
+       "apihelp-watch-example-watch": "Следить за страницей <kbd>Main Page</kbd>.",
+       "apihelp-watch-example-unwatch": "Не следить за страницей <kbd>Main Page</kbd>.",
+       "apihelp-json-description": "Выходные данные в формате json.",
+       "apihelp-jsonfm-description": "Выходные данные в JSON формате (pretty-print in HTML).",
+       "apihelp-none-description": "Нечего выводить",
+       "apihelp-php-description": "Выходные данные в сериализованном формате PHP.",
+       "apihelp-phpfm-description": "Выходные данные в сериализованном формате PHP (pretty-print in HTML).",
+       "apihelp-wddx-description": "Выходные данные в формате WDDX.",
+       "apihelp-xml-description": "Выходные данные в формате XML.",
+       "apihelp-yaml-description": "Выходные данные в формате yaml.",
+       "api-format-title": "Результат MediaWiki API",
+       "api-orm-param-props": "Поля для запроса.",
+       "api-orm-param-limit": "Максимальное количество возвращаемых строк.",
+       "api-pageset-param-titles": "Список заголовков для работы.",
+       "api-pageset-param-pageids": "Список страниц идентификаторов для работы.",
+       "api-pageset-param-revids": "Список идентификаторов версий для работы.",
+       "api-help-title": "Справка MediaWiki API",
        "api-help-main-header": "Главный модуль",
+       "api-help-flag-deprecated": "Этот модуль является устаревшим.",
+       "api-help-flag-readrights": "Этот модуль требует прав на чтение.",
+       "api-help-flag-writerights": "Этот модуль требует права на запись.",
+       "api-help-flag-mustbeposted": "Этот модуль принимает только Post-запросы.",
+       "api-help-flag-generator": "Этот модуль может быть использован в качестве генератора.",
        "api-help-source": "Источник: $1",
        "api-help-source-unknown": "Источник: <span class=\"apihelp-unknown\">unknown</span>",
        "api-help-license": "Лицензия: [[$1|$2]]",
+       "api-help-license-noname": "Лицензия: [[$1|See link]]",
+       "api-help-license-unknown": "Лицензия: <span class=\"apihelp-unknown\">unknown</span>",
        "api-help-parameters": "Параметр{{PLURAL:$1||ы}}:",
        "api-help-param-deprecated": "Устаревший.",
        "api-help-param-required": "Этот параметр является обязательным.",
+       "api-help-datatypes-header": "Типы данных",
+       "api-help-param-type-limit": "Тип: целое число или <kbd>max</kbd>",
+       "api-help-param-type-integer": "Тип: {{PLURAL:$1|1=integer|2=list of integers}}",
+       "api-help-param-type-boolean": "Тип: двоичный ([[Special:ApiHelp/main#main/datatypes|details]])",
+       "api-help-param-type-timestamp": "Тип: {{PLURAL:$1|1=timestamp|2=list of timestamps}} ([[Special:ApiHelp/main#main/datatypes|allowed formats]])",
+       "api-help-param-type-user": "Тип: {{PLURAL:$1|1=user name|2=list of user names}}",
+       "api-help-param-list": "{{PLURAL:$1|1=One value|2=Values (separate with <kbd>{{!}}</kbd>)}}: $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=value|2=values}} должен быть не меньше чем $2.",
+       "api-help-param-integer-max": "{{PLURAL:$1|1=value|2=values}} должен быть не больше чем $3.",
+       "api-help-param-integer-minmax": "{{PLURAL:$1|1=value|2=values}} должен быть между $2 и $3.",
+       "api-help-param-multi-separate": "Разделяйте значения с помощью <kbd>|</kbd>.",
+       "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-continue": "Когда доступно больше результатов, использовать этот чтобы продолжить.",
        "api-help-param-no-description": "<span class=\"apihelp-empty\">(описание отсутствует)</span>",
        "api-help-examples": "Пример{{PLURAL:$1||ы}}:",
+       "api-help-permissions": "{{PLURAL:$1|Permission|Permissions}}:",
+       "api-help-permissions-granted-to": "{{PLURAL:$1|Granted to}}: $2",
        "api-credits-header": "Создатели"
 }
index a075a49..6c30d8b 100644 (file)
@@ -17,6 +17,7 @@
        "apihelp-help-example-main": "ප්‍රධාන ඒකකය සදහා උදවු කරන්න",
        "apihelp-help-example-recursive": "සියලුම උදවු එක පිටුවක් තුල",
        "apihelp-help-example-query": "සැකසහිත අනුඒකක සදහා උදවු කරන්න",
+       "apihelp-parse-paramvalue-prop-jsconfigvars": "මෙම පිටුව සඳහා වූ JavaScript වින්‍යාස විචල්‍යයන් ලබා දෙයි.",
        "apihelp-format-example-generic": "$1 ආකෘතියේ ඇති සැක සහිත ප්‍රථිපල පරිවර්තනය කරන්න",
        "apihelp-dbg-description": "ප්‍රතිදාන දත්ත PHP හි var_export() ආකෘතියෙන් පවතී.",
        "apihelp-dbgfm-description": "ප්‍රතිදාන දත්ත PHP හි var_export() ආකෘතියෙන් පවතී (හොදම පිටපත HTML භාෂාවෙනි).",
index aa88484..86e49de 100644 (file)
@@ -11,7 +11,8 @@
                        "Boom",
                        "Jenniesarina",
                        "Marfuas",
-                       "VickyC"
+                       "VickyC",
+                       "Josve05a"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Dokumentation]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api E-postlista]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API-aviseringar]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R|Buggar & förslag]\n</div>\n<strong>Status:</strong> Alla funktioner som visas på denna sida borde fungera. API:et är dock fortfarande under aktiv utveckling och kan ändras när som helst. Prenumerera på [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/mediawiki-api-announce e-postlistan] för att få aviseringar om uppdateringar.\n\n<strong>Felaktiga förfrågningar:</strong> När felaktiga förfrågningar skickas till API:et skickas en HTTP-header med nyckeln \"MediaWiki-API-Error\" och sedan sätts både värdet på headern och den felkoden som returneras till samma värde. För mer information läs [[mw:API:Errors_and_warnings|API: Fel och varningar]].",
        "apihelp-edit-param-md5": "MD5-hash för $1text-parametern, eller $1prependtext- och $1appendtext-parametrarna sammanfogade.",
        "apihelp-edit-param-prependtext": "Lägg till denna text i början på sidan. Ersätter $1text.",
        "apihelp-edit-param-appendtext": "Lägg till denna text i slutet på sidan. Ersätter $1text.\n\nAnvänd $1section=new för att lägga till en ny sektion, hellre än denna parameter.",
+       "apihelp-edit-param-undo": "Ångra denna sidversion. Skriver över $1text, $1prependtext och $1appendtext.",
+       "apihelp-edit-param-undoafter": "Ångra alla sidversioner från $1undo till denna. Om inte, ångra endast en sidversion.",
        "apihelp-edit-param-redirect": "Åtgärda automatiskt omdirigeringar.",
        "apihelp-edit-param-contentformat": "Det serialiseringsformat som används för indatatexten.",
        "apihelp-edit-param-contentmodel": "Det nya innehållets innehållsmodell.",
        "apihelp-edit-param-token": "Token ska alltid skickas som sista parameter, eller åtminstone efter $1text-parametern",
        "apihelp-edit-example-edit": "Redigera en sida",
+       "apihelp-edit-example-undo": "Ångra sidversioner 13579 till 13585 med automatisk sammanfattning.",
        "apihelp-emailuser-description": "Skicka e-post till en användare.",
        "apihelp-emailuser-param-target": "Användare att skicka e-post till.",
        "apihelp-emailuser-param-subject": "Ämnesrubrik.",
        "apihelp-import-param-interwikipage": "För interwiki-importer: sidan som du vill importera.",
        "apihelp-import-param-fullhistory": "För interwiki-importer: importera hela historiken, inte bara den aktuella versionen.",
        "apihelp-import-param-templates": "För interwiki-importer: importera även alla mallar som ingår.",
-       "apihelp-import-param-namespace": "För interwiki-importer: importera till denna namnrymd.",
-       "apihelp-import-param-rootpage": "Importera som undersida till denna sida.",
-       "apihelp-import-example-import": "Importera [[meta:Help:Parserfunktioner]] till namnrymd 100 med full historik.",
+       "apihelp-import-param-namespace": "Importera till denna namnrymd. Kan inte användas tillsammans med <var>$1rootpage</var>.",
+       "apihelp-import-param-rootpage": "Importera som undersida till denna sida. Kan inte användas tillsammans med <var>$1namespace</var>.",
+       "apihelp-import-example-import": "Importera [[meta:Help:ParserFunctions]] till namnrymd 100 med full historik.",
        "apihelp-login-description": "Logga in och hämta autentiserings-cookies.\n\nOm inloggningen lyckas, finns de cookies som krävs med i HTTP-svarshuvuden. Om inloggningen misslyckas kan ytterligare försök per tidsenhet begränsas, som ett sätt att försöka minska risken för automatiserade lösenordsgissningar.",
        "apihelp-login-param-name": "Användarnamn.",
        "apihelp-login-param-password": "Lösenord.",
        "apihelp-parse-param-summary": "Sammanfattning att tolka.",
        "apihelp-parse-param-page": "Tolka innehållet av denna sida. Kan inte användas tillsammans med <var>$1text</var> och <var>$1title</var>.",
        "apihelp-parse-param-pageid": "Tolka innehållet på denna sida. Åsidosätter <var>$1sidan</var>.",
+       "apihelp-parse-paramvalue-prop-categorieshtml": "Ger HTML-version av kategorierna.",
        "apihelp-parse-param-preview": "Tolka i preview-läget.",
        "apihelp-parse-example-page": "Tolka en sida.",
        "apihelp-parse-example-text": "Tolka wikitext.",
        "apihelp-protect-example-protect": "Skydda en sida",
        "apihelp-query-param-list": "Vilka listor att hämta.",
        "apihelp-query-param-meta": "Vilka metadata att hämta.",
+       "apihelp-query-example-allpages": "Hämta sidversioner av sidor som börjar med <kbd>API/</kbd>.",
+       "apihelp-query+allcategories-param-prefix": "Sök efter alla kategorititlar som börjar med detta värde.",
        "apihelp-query+allcategories-param-dir": "Riktning att sortera mot.",
        "apihelp-query+allcategories-param-min": "Returnera endast kategorier med minst så här många medlemmar.",
        "apihelp-query+allcategories-param-max": "Returnera endast kategorier med som mest så här många medlemmar.",
        "apihelp-query+alldeletedrevisions-param-user": "Lista bara revideringar av denna användaren.",
        "apihelp-query+alldeletedrevisions-param-excludeuser": "Lista inte revideringar av denna användaren.",
        "apihelp-query+alldeletedrevisions-param-namespace": "Lista bara sidor i denna namnrymd.",
+       "apihelp-query+alldeletedrevisions-example-user": "List de senaste 50 raderade bidragen av användaren  <kbd>Example<kbd>.",
        "apihelp-query+alldeletedrevisions-example-ns-main": "Lista dem första 50 revideringarna i huvud-namnrymden",
        "apihelp-query+allfileusages-description": "Lista all fil användningsområden, inklusive icke-existerande.",
        "apihelp-query+allfileusages-param-prefix": "Sök för all fil-titlar som börjar med detta värde.",
        "apihelp-query+allpages-param-limit": "Hur många sidor att returnera totalt.",
        "apihelp-query+allpages-param-dir": "Riktningen att lista mot.",
        "apihelp-query+allpages-example-B": "Visa en lista över sidor som börjar på bokstaven <kbd>B</kbd>.",
+       "apihelp-query+allpages-example-generator": "Visa information om fyra sidor som börjar på bokstaven <kbd>T</kbd>.",
+       "apihelp-query+allredirects-description": "Lista alla omdirigeringar till en namnrymd.",
        "apihelp-query+allredirects-param-dir": "Riktningen att lista mot.",
        "apihelp-query+allredirects-example-unique-generator": "Hämtar alla målsidor, markerar de som saknas.",
+       "apihelp-query+alltransclusions-description": "Lista alla mallinkluderingar (sidor inbäddade med &#123;&#123;x&#125;&#125;), inklusive icke-befintliga.",
+       "apihelp-query+alltransclusions-param-limit": "Hur många objekt att returnera.",
        "apihelp-query+alltransclusions-param-dir": "Riktningen att lista mot.",
+       "apihelp-query+alltransclusions-example-unique": "Lista unika mallinkluderade titlar.",
+       "apihelp-query+alltransclusions-example-unique-generator": "Hämtar alla mallinkluderade titlar, markerar de som saknas.",
        "apihelp-query+allusers-param-prefix": "Sök för alla användare som börjar med detta värde.",
        "apihelp-query+allusers-param-dir": "Riktning att sortera i.",
        "apihelp-query+allusers-param-group": "Inkludera bara användare i de givna grupperna.",
        "apihelp-query+allusers-example-Y": "Lista användare som börjar på <kbd>Y</kbd>.",
        "apihelp-query+backlinks-description": "Hitta alla sidor som länkar till den givna sidan.",
        "apihelp-query+backlinks-param-dir": "Riktningen att lista mot.",
+       "apihelp-query+backlinks-example-simple": "Visa länkar till <kbd>huvudsidan<kbd>.",
+       "apihelp-query+blocks-description": "Lista alla blockerade användare och IP-adresser.",
+       "apihelp-query+blocks-example-simple": "Lista blockeringar.",
+       "apihelp-query+blocks-example-users": "Lista blockeringar av användarna <kbd>Alice</kbd> och <kbd>Bob</kbd>.",
+       "apihelp-query+categories-description": "Lista alla kategorier sidorna tillhör.",
+       "apihelp-query+categories-param-show": "Vilka sorters kategorier att visa.",
+       "apihelp-query+categories-param-limit": "Hur många kategorier att returnera.",
        "apihelp-query+categories-param-dir": "Riktningen att lista mot.",
+       "apihelp-query+categories-example-simple": "Hämta en lista över kategorier som sidan <kbd>Albert Einstein</kbd> tillhör.",
+       "apihelp-query+categories-example-generator": "Hämta information om alla kategorier som används på sidan <kbd>Albert Einstein</kbd>.",
+       "apihelp-query+categoryinfo-description": "Returnerar information om angivna kategorier.",
+       "apihelp-query+categoryinfo-example-simple": "Hämta information om <kbd>Category:Foo</kbd> och <kbd>Category:Bar</kbd>.",
+       "apihelp-query+categorymembers-description": "Lista alla sidor i en angiven kategori.",
+       "apihelp-query+categorymembers-param-dir": "I vilken riktning att sortera.",
+       "apihelp-query+categorymembers-param-startsortkey": "Använd $1starthexsortkey istället.",
+       "apihelp-query+categorymembers-param-endsortkey": "Använd $1endhexsortkey istället.",
+       "apihelp-query+categorymembers-example-simple": "Hämta de tio första sidorna i <kbd>Category:Physics</kbd>.",
+       "apihelp-query+categorymembers-example-generator": "Hämta sidinformation om de tio första sidorna i <kbd>Category:Physics</kbd>.",
+       "apihelp-query+contributors-description": "Hämta listan över inloggade bidragsgivare och antalet anonyma bidragsgivare för en sida.",
+       "apihelp-query+contributors-param-limit": "Hur många bidragsgivare att returnera.",
+       "apihelp-query+deletedrevisions-param-user": "Lista endast sidversioner av denna användare.",
+       "apihelp-query+deletedrevisions-param-excludeuser": "Lista inte sidversioner av denna användare.",
+       "apihelp-query+deletedrevisions-param-limit": "Maximala antalet sidversioner att lista.",
+       "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|Läge|Lägen}}: $2",
+       "apihelp-query+deletedrevs-param-from": "Börja lista vid denna titel.",
+       "apihelp-query+deletedrevs-param-to": "Sluta lista vid denna titel.",
        "apihelp-query+duplicatefiles-param-dir": "Riktningen att lista mot.",
        "apihelp-query+duplicatefiles-example-generated": "Leta efter kopior av alla filer.",
        "apihelp-query+embeddedin-param-dir": "Riktningen att lista mot.",
        "apihelp-query+embeddedin-param-limit": "Hur många sidor att returnera totalt.",
        "apihelp-query+filearchive-param-dir": "Riktningen att lista mot.",
        "apihelp-query+filearchive-example-simple": "Visa en lista över alla borttagna filer.",
+       "apihelp-query+imageinfo-paramvalue-prop-userid": "Lägg till det användar-ID som laddade upp varje filversion.",
        "apihelp-query+images-param-dir": "Riktningen att lista mot.",
        "apihelp-query+imageusage-param-dir": "Riktningen att lista mot.",
        "apihelp-query+imageusage-example-simple": "Visa sidor med hjälp av [[:File:Albert Einstein Head.jpg]].",
        "apihelp-query+imageusage-example-generator": "Hämta information om sidor med hjälp av [[:File:Albert Einstein Head.jpg]].",
+       "apihelp-query+info-description": "Få grundläggande sidinformation.",
        "apihelp-query+iwbacklinks-param-limit": "Hur många sidor att returnera totalt.",
        "apihelp-query+iwbacklinks-param-dir": "Riktningen att lista mot.",
        "apihelp-query+iwlinks-param-dir": "Riktningen att lista mot.",
index 3a9ff25..4b61085 100644 (file)
@@ -1,9 +1,17 @@
 {
        "@metadata": {
                "authors": [
-                       "Sayginer"
+                       "Sayginer",
+                       "Sadrettin",
+                       "Uğurkent"
                ]
        },
+       "apihelp-createaccount-param-name": "Kullanıcı adı.",
+       "apihelp-createaccount-param-password": "Parola (ignored if <var>$1mailpassword</var> is set).",
+       "apihelp-createaccount-param-email": "Kullanıcının e-posta adresi (isteğe bağlı).",
+       "apihelp-createaccount-param-realname": "Kullanıcının gerçek adı (isteğe bağlı).",
+       "apihelp-delete-description": "Sayfayı sil.",
+       "apihelp-edit-description": "Sayfa oluştur ve düzenle.",
        "apihelp-edit-param-text": "Sayfa içeriği.",
        "apihelp-edit-param-minor": "Küçük değişiklik.",
        "apihelp-edit-param-nocreate": "Sayfa mevcut değilse hata oluştur.",
@@ -27,6 +35,8 @@
        "apihelp-feedrecentchanges-example-simple": "Son değişiklikleri göster",
        "apihelp-feedrecentchanges-example-30days": "Son 30 gündeki değişiklikleri göster",
        "apihelp-filerevert-description": "Bir dosyayı eski bir sürümüne geri döndür.",
+       "apihelp-login-param-name": "Kullanıcı adı.",
+       "apihelp-login-param-password": "Parola.",
        "apihelp-move-description": "Bir sayfayı taşı.",
        "apihelp-move-param-from": "Taşımak istediğiniz sayfanın başlığı. $1fromid ile birlikte kullanılamaz.",
        "apihelp-move-param-noredirect": "Yönlendirme oluşturmayın.",
index 0b29232..3147299 100644 (file)
                        "JuneAugsut",
                        "EagerLin",
                        "Simon xianyu",
-                       "Kuailong"
+                       "Kuailong",
+                       "Zhxy 519",
+                       "御坂美琴"
                ]
        },
        "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: 错误与警告]]。",
        "apihelp-main-param-action": "要执行的操作。",
        "apihelp-main-param-format": "输出的格式。",
        "apihelp-main-param-maxlag": "最大延迟可被用于MediaWiki安装于数据库复制集中。要保存导致更多网站复制延迟的操作,此参数可使客户端等待直到复制延迟少于指定值时。万一发生过多延迟,错误代码<samp>maxlag</samp>会返回消息,例如<samp>等待$host中:延迟$lag秒</samp>。<br />参见[[mw:Manual:Maxlag_parameter|Manual: Maxlag parameter]]以获取更多信息。",
-       "apihelp-main-param-smaxage": "设置<code>s-maxage</code>页顶至这些秒。错误不会缓存。",
-       "apihelp-main-param-maxage": "设置<code>max-age</code>页顶至这些秒。错误不会缓存。",
+       "apihelp-main-param-smaxage": "设置<code>s-maxage</code> HTTP缓存控制头至这些秒。错误不会缓存。",
+       "apihelp-main-param-maxage": "设置<code>max-age</code> HTTP缓存控制头至这些秒。错误不会缓存。",
        "apihelp-main-param-assert": "如果设置为<kbd>user</kbd>就验证用户是否登录,或如果设置为<kbd>bot</kbd>就验证是否有机器人用户权限。",
        "apihelp-main-param-requestid": "任何在此提供的值将包含在响应中。可能可以用以区别请求。",
        "apihelp-main-param-servedby": "包含保存结果请求的主机名。",
        "apihelp-expandtemplates-param-title": "页面标题。",
        "apihelp-expandtemplates-param-text": "要转换的wiki文本。",
        "apihelp-expandtemplates-param-revid": "修订版本ID,用于<nowiki>{{REVISIONID}}</nowiki>和类似变体。",
-       "apihelp-expandtemplates-param-prop": "要获取的那条信息:\n;wikitext:展开的wiki文本。\n;categories:任何在不代表wiki文本输出的输入框出现的分类。\n;properties:由wiki文本中扩充的魔术字定义的页面属性。\n;volatile:输出是否不稳定,并且不应在任何页面中再度使用。\n;ttl:结果的哪个缓存后等待最长时间应无效化。\n;parsetree:输入的XML解析树。\n注意如果没有选定值,结果将包含wiki文本,但将以弃用的格式显示。",
+       "apihelp-expandtemplates-param-prop": "要获取的那条信息。\n\n注意如果没有选定值,结果将包含wiki文本,但将以弃用的格式显示。",
+       "apihelp-expandtemplates-paramvalue-prop-wikitext": "扩充的wiki文本。",
+       "apihelp-expandtemplates-paramvalue-prop-properties": "由wiki文本中扩充的魔术字定义的页面属性。",
+       "apihelp-expandtemplates-paramvalue-prop-modules": "任何解析器函数请求添加至输出的ResourceLoader模块。无论<kbd>jsconfigvars</kbd>还是<kbd>encodedjsconfigvars</kbd>都必须与<kbd>modules</kbd>共同被请求。",
+       "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "针对页面提供JavaScript配置变量。",
+       "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "针对页面提供JavaScript配置变量为一个JSON字符串。",
+       "apihelp-expandtemplates-paramvalue-prop-parsetree": "输入的XML分析树。",
        "apihelp-expandtemplates-param-includecomments": "输出时是否包含HTML摘要。",
        "apihelp-expandtemplates-param-generatexml": "生成XML解析树(取代自$1prop=parsetree)。",
        "apihelp-expandtemplates-example-simple": "展开wiki文本<kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd>。",
        "apihelp-import-param-interwikipage": "用于跨wiki导入:导入的页面。",
        "apihelp-import-param-fullhistory": "用于跨wiki导入:完整导入历史,而不只是最新版本。",
        "apihelp-import-param-templates": "用于跨wiki导入:连带导入所有包含的模板。",
-       "apihelp-import-param-namespace": "导入至此名字空间。重写<kbd>$1rootpage</kbd>参数。",
-       "apihelp-import-param-rootpage": "作为此页面的子页面导入。如果提供<kbd>$1namespace</kbd>参数则忽略。",
-       "apihelp-import-example-import": "将页面[[meta:Help:Parserfunctions]]连带完整历史导入至100名字空间。",
+       "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": "登录并获得身份验证Cookie。\n\n在成功登录的情况下,所需的Cookie将包含在HTTP响应头中。在登录失败的情况下,进一步的尝试可能会被自动密码猜解攻击的限制所遏制。",
        "apihelp-login-param-name": "用户名。",
        "apihelp-login-param-password": "密码。",
        "apihelp-opensearch-param-suggest": "如果<var>[[mw:Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var>设置为false则不做任何事情。",
        "apihelp-opensearch-param-redirects": "如何处理重定向:\n;return:返回重定向本身。\n;resolve:返回目标页面。可能返回少于$1limit个结果。\n由于历史原因,$1format=json默认为\"return\",其他格式默认为\"resolve\"。",
        "apihelp-opensearch-param-format": "输出格式。",
+       "apihelp-opensearch-param-warningsaserror": "如果警告通过<kbd>format=json</kbd>提升,返回一个API错误而不是忽略它们。",
        "apihelp-opensearch-example-te": "查找以<kbd>Te</kbd>开头的页面。",
        "apihelp-options-description": "更改当前用户的偏好设置。\n\n只有注册在核心或者已安装扩展中的选项,或者具有\"userjs-\"键值前缀(旨在被用户脚本使用)的选项可被设置。",
        "apihelp-options-param-reset": "重置偏好设置到网站默认设置。",
        "apihelp-parse-param-pageid": "解析此页的内容。覆盖<var>$1page</var>。",
        "apihelp-parse-param-redirects": "如果<var>$1page</var>或<var>$1pageid</var>被设置为一个重定向,则解析它。",
        "apihelp-parse-param-oldid": "解析该修订版本的内容。覆盖<var>$1page</var>和<var>$1pageid</var>。",
+       "apihelp-parse-param-prop": "要获取的信息束:",
+       "apihelp-parse-paramvalue-prop-text": "提供wiki文本中的被解析文本。",
+       "apihelp-parse-paramvalue-prop-langlinks": "在被解析的wiki文本中提供语言链接。",
+       "apihelp-parse-paramvalue-prop-categories": "在被解析的wiki文本中提供分类。",
+       "apihelp-parse-paramvalue-prop-categorieshtml": "提供HTML版本分类。",
+       "apihelp-parse-paramvalue-prop-links": "在被解析的wiki文本中提供内部链接。",
+       "apihelp-parse-paramvalue-prop-templates": "在被解析的wiki文本中提供模板。",
+       "apihelp-parse-paramvalue-prop-images": "在被解析的wiki文本中提供图片。",
+       "apihelp-parse-paramvalue-prop-externallinks": "在被解析的wiki文本中提供外部链接。",
+       "apihelp-parse-paramvalue-prop-sections": "在被解析的wiki文本中提供段落。",
+       "apihelp-parse-paramvalue-prop-revid": "添加被解析页面的修订ID。",
+       "apihelp-parse-paramvalue-prop-displaytitle": "为被解析的wiki文本添加标题。",
+       "apihelp-parse-paramvalue-prop-headitems": "提供项目以插入至页面的<code>&lt;head&gt;</code>。",
+       "apihelp-parse-paramvalue-prop-headhtml": "提供页面的被解析<code>&lt;head&gt;</code>。",
+       "apihelp-parse-paramvalue-prop-modules": "提供在页面中使用的ResourceLoader模块。无论<kbd>jsconfigvars</kbd>还是<kbd>encodedjsconfigvars</kbd>都必须与<kbd>modules</kbd>共同被请求。",
+       "apihelp-parse-paramvalue-prop-iwlinks": "在被解析的wiki文本中提供跨wiki链接。",
+       "apihelp-parse-paramvalue-prop-wikitext": "提供被解析的原始wiki文本。",
+       "apihelp-parse-paramvalue-prop-limitreportdata": "以结构化的方式提供限制报告。如果<var>$1disablepp</var>被设定则不提供数据。",
        "apihelp-parse-param-pst": "在解析输入前,对输入做一次保存前变换处理。仅当使用文本时有效。",
        "apihelp-parse-param-effectivelanglinks": "包含由扩展提供的语言链接(用于与<kbd>$1prop=langlinks</kbd>一起使用)。",
        "apihelp-parse-param-section": "只检索此段数的内容,或只当<kbd>new</kbd>生成新的段落时检索。\n\n<kbd>new</kbd>段落只当指定<var>text</var>时受尊重。",
        "apihelp-patrol-description": "巡查页面或修订版本。",
        "apihelp-patrol-param-rcid": "所要巡查的最近变更 ID。",
        "apihelp-patrol-param-revid": "要巡查的修订版本ID。",
-       "apihelp-patrol-example-rcid": "巡查一次最近更改",
-       "apihelp-patrol-example-revid": "巡查一次修订",
+       "apihelp-patrol-example-rcid": "巡查一次最近更改",
+       "apihelp-patrol-example-revid": "巡查一次修订",
        "apihelp-protect-description": "更改页面的保护等级。",
        "apihelp-protect-param-title": "要(解除)保护的页面标题。不能与$1pageid一起使用。",
        "apihelp-protect-param-pageid": "要(解除)保护的页面ID。不能与$1title一起使用。",
        "apihelp-protect-param-cascade": "启用级联保护(也就是保护包含于此页面的页面)。如果所有提供的保护等级不支持级联,就将其忽略。",
        "apihelp-protect-param-watch": "如果设置,就加入已开始(解除)保护的页面至当前用户的监视列表。",
        "apihelp-protect-param-watchlist": "无条件地将页面加入至当前用户的监视列表或将其移除,使用设置或不更改监视。",
-       "apihelp-protect-example-protect": "保护一个页面",
+       "apihelp-protect-example-protect": "保护一个页面",
        "apihelp-protect-example-unprotect": "通过设置限制为<kbd>all</kbd>解除保护一个页面。",
-       "apihelp-protect-example-unprotect2": "通过设置没有限制解除保护一个页面",
+       "apihelp-protect-example-unprotect2": "通过设置没有限制解除保护一个页面",
        "apihelp-purge-description": "为指定标题刷新缓存。\n\n如果用户尚未登录的话,就需要POST请求。",
        "apihelp-purge-param-forcelinkupdate": "更新链接表。",
        "apihelp-purge-param-forcerecursivelinkupdate": "更新链接表中,并更新任何使用此页作为模板的页面的链接表。",
        "apihelp-query+alldeletedrevisions-param-end": "枚举的结束时间戳。",
        "apihelp-query+alldeletedrevisions-param-from": "从此标题开始列出。",
        "apihelp-query+alldeletedrevisions-param-to": "列出至此标题为止。",
+       "apihelp-query+alldeletedrevisions-param-prefix": "搜索标题以此值开头的所有页面。",
        "apihelp-query+alldeletedrevisions-param-tag": "只列出被此标签标记的修订。",
        "apihelp-query+alldeletedrevisions-param-user": "只列出此用户做出的修订。",
        "apihelp-query+alldeletedrevisions-param-excludeuser": "不要列出此用户做出的修订。",
        "apihelp-query+alldeletedrevisions-example-ns-main": "列出前50次已删除的主名字空间修订。",
        "apihelp-query+allfileusages-description": "列出所有文件用途,包括不存在的。",
        "apihelp-query+allfileusages-param-from": "文件的标题开始枚举于.",
+       "apihelp-query+allfileusages-param-to": "要列举的最终文件标题。",
        "apihelp-query+allfileusages-param-prefix": "搜索此值开头的所有文件标题。",
        "apihelp-query+allfileusages-param-prop": "要包含的信息束:\n;ids:添加使用中的页面的页面ID(不能与$1unique一起使用)。\n;title:添加文件的标题。",
        "apihelp-query+allfileusages-param-limit": "要返回的总计项目。",
        "apihelp-query+allmessages-description": "返回来自该网站的消息。",
        "apihelp-query+allmessages-param-messages": "要输出的消息。<kbd>*</kbd>(默认)表示所有消息。",
        "apihelp-query+allmessages-param-prop": "要获取的属性。",
+       "apihelp-query+allmessages-param-args": "要替代进消息的参数。",
+       "apihelp-query+allmessages-param-filter": "只返回名称包含此字符串的消息。",
        "apihelp-query+allmessages-param-customised": "只返回在此定制情形下的消息。",
        "apihelp-query+allmessages-param-lang": "返回这种语言的信息。",
        "apihelp-query+allmessages-param-from": "从此消息开始返回消息。",
        "apihelp-query+backlinks-example-simple": "显示至<kbd>Main page<kbd>的链接。",
        "apihelp-query+backlinks-example-generator": "获得关于链接至<kbd>Main page<kbd>的页面的信息。",
        "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": "要获取的属性:\n;id:添加封禁ID。\n;user:添加被封禁用户的用户名。\n;userid:添加被封禁用户的用户ID。\n;by:添加执行封禁的用户的用户名。\n;byid:添加执行封禁的用户的用户ID。\n;timestamp:添加封禁生效时的时间戳。\n;expiry:添加封禁截止时的时间戳。\n;reason:添加封禁原因。\n;range:添加受封禁影响的IP地址段。\n;flags:标记编辑禁止(自动封禁、仅限匿名用户等)。",
        "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|模式}}:$2",
        "apihelp-query+deletedrevs-param-from": "从此标题开始列出。",
        "apihelp-query+deletedrevs-param-to": "列出至此标题为止。",
+       "apihelp-query+deletedrevs-param-tag": "只列出被此标签标记的修订。",
        "apihelp-query+deletedrevs-param-user": "只列出此用户做出的修订。",
        "apihelp-query+deletedrevs-param-excludeuser": "不要列出此用户做出的修订。",
        "apihelp-query+deletedrevs-param-namespace": "只列出此名字空间的页面。",
        "apihelp-query+embeddedin-param-limit": "返回的总计页面数。",
        "apihelp-query+embeddedin-example-simple": "显示嵌入<kbd>Template:Stub</kbd>的页面。",
        "apihelp-query+embeddedin-example-generator": "获得有关显示嵌入<kbd>Template:Stub</kbd>的页面的信息。",
+       "apihelp-query+extlinks-description": "从指定页面返回所有外部URL(非跨wiki链接)。",
        "apihelp-query+extlinks-param-limit": "返回多少链接。",
+       "apihelp-query+extlinks-param-protocol": "URL协议。如果为空并且<var>$1query</var>被设置,协议为<kbd>http</kbd>。将此和<var>$1query</var>都留空以列举所有外部链接。",
+       "apihelp-query+extlinks-param-query": "不使用协议搜索字符串。对于检查某一页面是否包含某一外部URL很有用。",
+       "apihelp-query+extlinks-param-expandurl": "扩展协议相对URL与规范协议。",
        "apihelp-query+extlinks-example-simple": "获取<kbd>首页</kbd>的外部链接列表。",
        "apihelp-query+exturlusage-param-protocol": "URL协议。如果为空并且<var>$1query</var>被设置,协议为<kbd>http</kbd>。将此和<var>$1query</var>都留空以列举所有外部链接。",
        "apihelp-query+exturlusage-param-query": "不包括协议的搜索字符串。参见[[Special:LinkSearch]]。留空以列出所有外部链接。",
        "apihelp-query+exturlusage-param-namespace": "要列举的页面名字空间。",
        "apihelp-query+exturlusage-param-limit": "返回多少页面。",
        "apihelp-query+exturlusage-example-simple": "显示链接至<kbd>http://www.mediawiki.org</kbd>的页面。",
+       "apihelp-query+filearchive-description": "循序列举所有被删除的文件。",
        "apihelp-query+filearchive-param-from": "枚举的起始图片标题。",
        "apihelp-query+filearchive-param-to": "枚举的结束图片标题。",
        "apihelp-query+filearchive-param-prefix": "搜索所有以此值开头的图像标题。",
        "apihelp-query+filearchive-param-sha1base36": "基于base 36的图片的SHA1哈希值(用于MediaWiki)。",
        "apihelp-query+filearchive-example-simple": "显示已删除文件列表",
        "apihelp-query+filerepoinfo-example-simple": "获得有关文件存储库的信息。",
+       "apihelp-query+fileusage-description": "查找所有使用指定文件的页面。",
        "apihelp-query+fileusage-param-prop": "要获取的属性:\n;pageid:每个页面的页面ID。\n;title:每个页面的标题。\n;redirect:标记作为重定向的页面。",
        "apihelp-query+fileusage-param-namespace": "只包括这些名字空间的页面。",
        "apihelp-query+fileusage-param-limit": "返回多少。",
        "apihelp-query+imageinfo-description": "返回文件信息和上传历史。",
        "apihelp-query+imageinfo-param-prop": "要获取的文件信息:",
        "apihelp-query+imageinfo-paramvalue-prop-timestamp": "添加时间戳至上传的版本。",
+       "apihelp-query+imageinfo-paramvalue-prop-user": "添加上传了每个文件版本的用户。",
+       "apihelp-query+imageinfo-paramvalue-prop-userid": "添加上传了每个文件版本的用户ID。",
        "apihelp-query+imageinfo-paramvalue-prop-comment": "此版本的摘要。",
        "apihelp-query+imageinfo-paramvalue-prop-parsedcomment": "解析版本上的注释。",
        "apihelp-query+imageinfo-paramvalue-prop-canonicaltitle": "添加文件的规范标题。",
        "apihelp-query+imageinfo-paramvalue-prop-sha1": "为文件加入SHA-1哈希值。",
        "apihelp-query+imageinfo-paramvalue-prop-mime": "添加文件的MIME类型。",
        "apihelp-query+imageinfo-paramvalue-prop-mediatype": "添加文件媒体类型。",
+       "apihelp-query+imageinfo-paramvalue-prop-metadata": "列出这个版本的文件的EXIF元数据。",
        "apihelp-query+imageinfo-param-limit": "每个文件返回多少文件修订。",
        "apihelp-query+imageinfo-param-start": "开始列举的时间戳。",
        "apihelp-query+imageinfo-param-end": "列举的结束时间戳。",
        "apihelp-query+imageinfo-param-urlheight": "与$1urlwidth类似。",
        "apihelp-query+imageinfo-param-metadataversion": "要使用的元数据版本。如果<kbd>latest</kbd>被指定,则使用最新版本。默认为<kbd>1</kbd>以便向下兼容。",
+       "apihelp-query+imageinfo-param-extmetadatalanguage": "要取得extmetadata的语言。This affects both which translation to fetch, if multiple are available, as well as how things like numbers and various values are formatted.",
+       "apihelp-query+imageinfo-param-extmetadatamultilang": "如果用于extmetadata属性的翻译可用,则全部取得。",
+       "apihelp-query+imageinfo-param-extmetadatafilter": "如果指定且非空,则只为$1prop=extmetadata返回这些键。",
+       "apihelp-query+imageinfo-param-urlparam": "处理器特定的参数字符串。例如PDF可能使用<kbd>page15-100px</kbd>。<var>$1urlwidth</var>必须被使用,并与<var>$1urlparam</var>一致。",
        "apihelp-query+imageinfo-param-localonly": "只看本地存储库的文件。",
-       "apihelp-query+imageinfo-example-simple": "获取有关[[:File:Albert Einstein Head.jpg]]的当前版本的信息",
-       "apihelp-query+imageinfo-example-dated": "获取有关[[:File:Albert Einstein Head.jpg]]自2008年以来版本的信息",
+       "apihelp-query+imageinfo-example-simple": "取得有关[[:File:Albert Einstein Head.jpg]]的当前版本的信息。",
+       "apihelp-query+imageinfo-example-dated": "取得有关[[:File:Test.jpg]]自2008年以来版本的信息。",
+       "apihelp-query+images-description": "返回指定页面上包含的所有文件。",
        "apihelp-query+images-param-limit": "返回多少文件。",
        "apihelp-query+images-param-dir": "罗列所采用的方向。",
        "apihelp-query+images-example-simple": "获取[[首页]]使用的文件列表",
        "apihelp-query+info-paramvalue-prop-protection": "列出每个页面的保护等级。",
        "apihelp-query+info-paramvalue-prop-watched": "列出每个页面的被监视状态。",
        "apihelp-query+info-paramvalue-prop-watchers": "监视人员数,如果允许。",
+       "apihelp-query+info-paramvalue-prop-subjectid": "每个讨论页的母页面的页面ID。",
        "apihelp-query+info-paramvalue-prop-readable": "用户是否可以阅读此页面。",
        "apihelp-query+info-paramvalue-prop-preload": "提供由EditFormPreloadText返回的文本。",
        "apihelp-query+info-param-testactions": "测试当前用户是否可以在页面上执行某种操作。",
        "apihelp-query+logevents-description": "从日志获取事件。",
        "apihelp-query+logevents-param-start": "枚举的起始时间戳。",
        "apihelp-query+logevents-param-end": "枚举的结束时间戳。",
+       "apihelp-query+logevents-param-prefix": "过滤以此前缀开头的记录。",
        "apihelp-query+logevents-example-simple": "列出最近日志活动",
        "apihelp-query+pagepropnames-description": "列出wiki中所有使用中的页面属性名称。",
        "apihelp-query+pagepropnames-param-limit": "返回名称的最大数量。",
        "apihelp-query+revisions-example-first5-not-localhost": "获取<kbd>Main Page</kbd>的前5次不是由匿名用户<kbd>127.0.0.1</kbd>做出的修订。",
        "apihelp-query+revisions-example-first5-user": "获取<kbd>Main Page</kbd>的前5次由用户<kbd>MediaWiki default</kbd>做出的修订。",
        "apihelp-query+revisions+base-param-limit": "限制返回多少修订。",
-       "apihelp-query+search-param-search": "搜索所有拥有此值的页面标题(或内容)。",
+       "apihelp-query+search-description": "执行一次全文本搜索。",
+       "apihelp-query+search-param-search": "搜索所有匹配此值的页面标题或内容。根据wiki的搜索后端工具,您可以使用搜索字符串以调用特殊搜索功能。",
        "apihelp-query+search-param-namespace": "只在这些名字空间搜索。",
+       "apihelp-query+search-param-what": "要执行的搜索类型。",
        "apihelp-query+search-param-info": "要返回的元数据。",
        "apihelp-query+search-param-prop": "要返回的属性:\n;size:Adds the size of the page in bytes.\n;wordcount:Adds the word count of the page.\n;timestamp:Adds the timestamp of when the page was last edited.\n;snippet:Adds a parsed snippet of the page.\n;titlesnippet:Adds a parsed snippet of the page title.\n;redirectsnippet:Adds a parsed snippet of the redirect title.\n;redirecttitle:Adds the title of the matching redirect.\n;sectionsnippet:Adds a parsed snippet of the matching section title.\n;sectiontitle:Adds the title of the matching section.\n;categorysnippet:Adds a parsed snippet of the matching category.\n;isfilematch:Adds a boolean indicating if the search matched file content.\n;score:<span class=\"apihelp-deprecated\">Deprecated and ignored.</span>\n;hasrelated:<span class=\"apihelp-deprecated\">Deprecated and ignored.</span>",
        "apihelp-query+search-param-limit": "返回的总计页面数。",
        "apihelp-query+search-example-simple": "搜索<kbd>meaning</kbd>。",
        "apihelp-query+search-example-text": "搜索文本<kbd>meaning</kbd>。",
        "apihelp-query+search-example-generator": "获得有关搜索<kbd>meaning</kbd>返回页面的页面信息。",
+       "apihelp-query+siteinfo-param-showalldb": "列出所有数据库服务器,不只是最落后的那个。",
        "apihelp-query+siteinfo-param-numberingroup": "列出用户组中的用户数。",
+       "apihelp-query+siteinfo-param-inlanguagecode": "用于本地化语言名称(尽可能)和皮肤名称的语言代码。",
        "apihelp-query+siteinfo-example-simple": "获取网站信息",
        "apihelp-query+siteinfo-example-interwiki": "获取本地跨wiki前缀列表",
        "apihelp-query+siteinfo-example-replag": "检查当前的响应延迟。",
+       "apihelp-query+stashimageinfo-description": "返回用于藏匿文件的文件信息。",
        "apihelp-query+stashimageinfo-example-simple": "返回藏匿文件的信息。",
        "apihelp-query+tags-description": "列出更改标签。",
        "apihelp-query+tags-param-limit": "列出标签的最大数量。",
        "apihelp-query+tags-param-prop": "要获取哪个属性:\n;name:添加标签名称。\n;displayname:为标签添加系统消息。\n;description:为标签添加描述。\n;hitcount:已添加此标签的修订版本与日志数量。\n;defined:标识标签是否已定义。\n;source:获得标签来源,它可能包括用于扩展定义的标签的<samp>extension</samp>,以及用于可被用户手动应用的标签的<samp>manual</samp>。\n;active:标签是否仍可被应用。",
        "apihelp-query+tags-example-simple": "可用标签列表",
+       "apihelp-query+templates-description": "返回指定页面上所有被嵌入的页面。",
        "apihelp-query+templates-param-namespace": "只显示此名字空间的模板。",
-       "apihelp-query+templates-param-limit": "返回多少模板。",
+       "apihelp-query+templates-param-limit": "返回的模板数量。",
        "apihelp-query+templates-param-templates": "只列出这些模板。对于检查某一页面使用某一模板很有用。",
        "apihelp-query+templates-param-dir": "罗列所采用的方向。",
-       "apihelp-query+templates-example-simple": "è\8e·å¾\97在页面<kbd>Main Page</kbd>使用的模板。",
-       "apihelp-query+templates-example-generator": "è\8e·å¾\97有关<kbd>Main Page</kbd>中使用的模板页面的信息。",
-       "apihelp-query+templates-example-namespaces": "è\8e·å¾\97在{{ns:user}}和{{ns:template}}名字空间中,嵌入在<kbd>Main Page</kbd>页面的页面。",
+       "apihelp-query+templates-example-simple": "è\8e·å\8f\96在页面<kbd>Main Page</kbd>使用的模板。",
+       "apihelp-query+templates-example-generator": "è\8e·å\8f\96有关<kbd>Main Page</kbd>中使用的模板页面的信息。",
+       "apihelp-query+templates-example-namespaces": "è\8e·å\8f\96在{{ns:user}}和{{ns:template}}名字空间中,嵌入在<kbd>Main Page</kbd>页面的页面。",
        "apihelp-query+tokens-param-type": "要请求的令牌类型。",
        "apihelp-query+transcludedin-param-namespace": "至包含这些名字空间的页面。",
        "apihelp-query+transcludedin-param-limit": "返回多少。",
        "apihelp-query+watchlistraw-param-namespace": "只列出指定名字空间的页面。",
        "apihelp-query+watchlistraw-param-limit": "根据结果返回的结果总数。",
        "apihelp-query+watchlistraw-param-token": "允许访问其他用户监视列表的安全密钥(可通过用户的[[Special:Preferences#mw-prefsection-watchlist|参数设置]]找到)。",
+       "apihelp-query+watchlistraw-param-fromtitle": "要列举的起始标题(带名字空间前缀)。",
+       "apihelp-query+watchlistraw-param-totitle": "要列举的最终标题(带名字空间前缀)。",
        "apihelp-query+watchlistraw-example-simple": "列出当前用户的监视列表中的页面。",
        "apihelp-revisiondelete-description": "删除和恢复修订版本。",
        "apihelp-revisiondelete-param-hide": "每次修订要隐藏的东西。",
        "apihelp-revisiondelete-param-show": "每次修订要恢复显示的东西。",
        "apihelp-revisiondelete-param-reason": "删除或恢复的原因。",
        "apihelp-revisiondelete-example-revision": "隐藏<kbd>首页</kbd>的修订版本<kbd>12345</kbd>的内容。",
+       "apihelp-revisiondelete-example-log": "隐藏日志记录<kbd>67890</kbd>上的所有数据,原因<kbd>BLP violation</kbd>。",
        "apihelp-rollback-param-title": "要回退的页面标题。不能与<var>$1pageid</var>一起使用。",
        "apihelp-rollback-param-pageid": "要回退的页面的页面 ID。不能与<var>$1title</var>一起使用。",
        "apihelp-rollback-param-watchlist": "无条件地将页面加入至当前用户的监视列表或将其移除,使用设置或不更改监视。",
        "api-help-param-deprecated": "不推荐使用。",
        "api-help-param-required": "这个参数是必须的。",
        "api-help-datatypes-header": "数据类型",
-       "api-help-datatypes": "一些API参数类型需要进一步解释:\n;boolean\n:布尔参数就像HTML复选框一样工作:如果指定参数,无论何值都被认为是真。如果要假值,则可完全忽略参数。\n;timestamp\n:Timestamps may be specified in several formats. ISO 8601 date and time is recommended. All times are in UTC, any included timezone is ignored.\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 date and time with (ignored) fractional seconds, <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> (dashes, colons, and <kbd>Z</kbd> are optional)\n:* MediaWiki格式,<kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* Generic numeric format, <kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd> (optional timezone of <kbd>GMT</kbd>, <kbd>+<var>##</var></kbd>, or <kbd>-<var>##</var></kbd> is ignored)\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 format (timezone may be omitted), <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 format (timezone may be omitted), <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 format, <kbd><var>Mon</var> <var>Jan</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>2001</var></kbd>\n:* Seconds since 1970-01-01T00:00:00Z as a 1 to 13 digit integer",
+       "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-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|详细信息]])",
index 3db32ba..8531e23 100644 (file)
@@ -4,7 +4,8 @@
                        "Cwlin0416",
                        "Liuxinyu970226",
                        "LNDDYL",
-                       "EagerLin"
+                       "EagerLin",
+                       "Zhxy 519"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|文件]]\n* [[mw:API:FAQ|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 Bug與請求]\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 的值與錯誤碼將會送回並設定為相同的值。詳細資訊請參閱[[mw:API:Errors_and_warnings|API: 錯誤與警告]]。",
@@ -86,6 +87,8 @@
        "apihelp-expandtemplates-description": "展開所有於 wikitext 中模板。",
        "apihelp-expandtemplates-param-title": "頁面標題。",
        "apihelp-expandtemplates-param-text": "要轉換的 Wikitext。",
+       "apihelp-feedcontributions-description": "回傳使用者貢獻 Feed。",
+       "apihelp-feedcontributions-param-feedformat": "Feed 的格式。",
        "apihelp-feedcontributions-param-showsizediff": "顯示修訂版本之間的差異大小。",
        "apihelp-feedcontributions-example-simple": "返回使用者<kbd>Example</kbd>的貢獻。",
        "apihelp-feedrecentchanges-description": "返回近期邊更摘要。",
        "apihelp-query+allredirects-param-limit": "要回傳的項目總數。",
        "apihelp-query+alltransclusions-param-limit": "要回傳的項目總數。",
        "apihelp-query+categories-param-limit": "要回傳的分類數量。",
+       "apihelp-query+categoryinfo-description": "回傳有關指定分類的資訊。",
        "apihelp-query+categorymembers-param-limit": "回傳的頁面數量上限。",
        "apihelp-query+contributors-param-limit": "要回傳的貢獻人員數量。",
        "apihelp-query+duplicatefiles-param-limit": "要回傳的重複檔案數量。",
        "apihelp-query+embeddedin-param-limit": "要回傳的頁面總數。",
+       "apihelp-query+extlinks-description": "回傳所有指定頁面的外部 URL (非 interwiki)。",
        "apihelp-query+extlinks-param-limit": "要回傳的連結數量。",
        "apihelp-query+exturlusage-param-limit": "要回傳的頁面數量。",
        "apihelp-query+filearchive-param-limit": "要回傳的圖片總數。",
        "apihelp-query+fileusage-param-limit": "要回傳的數量。",
+       "apihelp-query+imageinfo-description": "回傳檔案資訊與上傳日誌。",
        "apihelp-query+imageinfo-param-limit": "每個檔案要回傳的檔案修訂數量。",
+       "apihelp-query+images-description": "回傳指定頁面中包含的所有檔案。",
        "apihelp-query+images-param-limit": "要回傳的檔案數量。",
+       "apihelp-query+iwlinks-description": "回傳指定頁面的所有 interwiki 連結。",
        "apihelp-query+iwlinks-param-limit": "要回傳的跨 Wiki 連結數量。",
        "apihelp-query+langbacklinks-param-limit": "要回傳的頁面總數。",
+       "apihelp-query+langlinks-description": "回傳指定頁面的所有跨語言連結。",
        "apihelp-query+langlinks-param-limit": "要回傳的 langlinks 數量。",
+       "apihelp-query+links-description": "回傳指定頁面的所有連結。",
        "apihelp-query+links-param-limit": "要回傳的連結數量。",
        "apihelp-query+linkshere-param-limit": "要回傳的數量。",
        "apihelp-query+logevents-param-limit": "要回傳的事件項目總數。",
        "apihelp-query+recentchanges-description": "列舉出近期變動。",
        "apihelp-query+recentchanges-param-limit": "要回傳變更總數。",
        "apihelp-query+recentchanges-example-simple": "近期變動清單",
+       "apihelp-query+redirects-description": "回傳連結至指定頁面的所有重新導向。",
        "apihelp-query+redirects-param-limit": "要回傳的重新導向數量。",
        "apihelp-query+search-param-limit": "要回傳的頁面總數。",
-       "apihelp-query+templates-param-limit": "要回傳的樣板數量。",
+       "apihelp-query+stashimageinfo-description": "回傳多筆儲藏檔案的檔案資訊。",
+       "apihelp-query+stashimageinfo-example-simple": "回傳儲藏檔案的檔案資訊。",
+       "apihelp-query+templates-description": "回傳指定頁面中所有引用的頁面。",
+       "apihelp-query+templates-param-limit": "要回傳的模板數量。",
        "apihelp-query+tokens-param-type": "要請求的密鑰類型。",
        "apihelp-query+tokens-example-simple": "接收 csrf 密鑰 (預設)。",
        "apihelp-query+tokens-example-types": "接收監視密鑰以及巡邏密鑰。",
index 517f379..2abcabd 100644 (file)
@@ -181,11 +181,11 @@ class FileDependency extends CacheDependency {
 
        function loadDependencyValues() {
                if ( is_null( $this->timestamp ) ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        # Dependency on a non-existent file stores "false"
                        # This is a valid concept!
                        $this->timestamp = filemtime( $this->filename );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                }
        }
 
@@ -193,9 +193,9 @@ class FileDependency extends CacheDependency {
         * @return bool
         */
        function isExpired() {
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $lastmod = filemtime( $this->filename );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( $lastmod === false ) {
                        if ( $this->timestamp === false ) {
                                # Still nonexistent
index 4bf3611..5632596 100644 (file)
@@ -185,9 +185,9 @@ abstract class FileCacheBase {
         * @return void
         */
        public function clearCache() {
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                unlink( $this->cachePath() );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                $this->mCached = false;
        }
 
diff --git a/includes/cache/LCStoreStaticArray.php b/includes/cache/LCStoreStaticArray.php
new file mode 100644 (file)
index 0000000..862ed67
--- /dev/null
@@ -0,0 +1,140 @@
+<?php
+/**
+ *  Localisation cache storage based on PHP files and static arrays.
+ *
+ * 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.26
+ */
+class LCStoreStaticArray implements LCStore {
+       /** @var string|null Current language code. */
+       private $currentLang = null;
+
+       /** @var array Localisation data. */
+       private $data = array();
+
+       /** @var string File name. */
+       private $fname = null;
+
+       /** @var string Directory for cache files. */
+       private $directory;
+
+       public function __construct( $conf = array() ) {
+               global $wgCacheDirectory;
+
+               if ( isset( $conf['directory'] ) ) {
+                       $this->directory = $conf['directory'];
+               } else {
+                       $this->directory = $wgCacheDirectory;
+               }
+       }
+
+       public function startWrite( $code ) {
+               $this->currentLang = $code;
+               $this->fname = $this->directory. '/' . $code . '.l10n.php';
+               $this->data[$code] = array();
+               if ( file_exists( $this->fname ) ) {
+                       $this->data[$code] = require $this->fname;
+               }
+       }
+
+       public function set( $key, $value ) {
+               $this->data[$this->currentLang][$key] = self::encode( $value );
+       }
+
+       /**
+        * Encodes a value into an array format
+        *
+        * @param mixed $value
+        * @return array
+        * @throws RuntimeException
+        */
+       public static function encode( $value ) {
+               if ( is_scalar( $value ) || $value === null ) {
+                       // [V]alue
+                       return array( 'v', $value );
+               }
+               if ( is_object( $value ) ) {
+                       // [S]erialized
+                       return array( 's', serialize( $value ) );
+               }
+               if ( is_array( $value ) ) {
+                       // [A]rray
+                       return array( 'a', array_map( function ( $v ) {
+                               return LCStoreStaticArray::encode( $v );
+                       }, $data ) );
+               }
+
+               throw new RuntimeException( 'Cannot encode ' . var_export( $value, true ) );
+       }
+
+       /**
+        * Decode something that was encoded with encode
+        *
+        * @param array $encoded
+        * @return array|mixed
+        * @throws RuntimeException
+        */
+       public static function decode( array $encoded ) {
+               $type = $encoded[0];
+               $data = $encoded[1];
+
+               switch ( $type ) {
+               case 'v':
+                       return $data;
+               case 's':
+                       return unserialize( $data );
+               case 'a':
+                       return array_map( function ( $v ) {
+                               return LCStoreStaticArray::decode( $v );
+                       }, $data );
+               default:
+                       throw new RuntimeException(
+                               'Unable to decode ' . var_export( $encoded, true ) );
+               }
+       }
+
+       public function finishWrite() {
+               file_put_contents(
+                       $this->fname,
+                       "<?php\n" .
+                       "// Generated by LCStoreStaticArray.php -- do not edit!\n" .
+                       "return " .
+                       var_export( $this->data[$this->currentLang], true ) . ';'
+               );
+               $this->currentLang = null;
+               $this->fname = null;
+       }
+
+       public function get( $code, $key ) {
+               if ( !array_key_exists( $code, $this->data ) ) {
+                       $fname = $this->directory. '/' . $code . '.l10n.php';
+                       if ( !file_exists( $fname ) ) {
+                               return null;
+                       }
+                       $this->data[$code] = require $fname;
+               }
+               $data = $this->data[$code];
+               if ( array_key_exists( $key, $data ) ) {
+                       return self::decode( $data[$key] );
+               }
+               return null;
+       }
+}
index dc5a2eb..5b802aa 100644 (file)
@@ -204,6 +204,9 @@ class LocalisationCache {
                                case 'db':
                                        $storeClass = 'LCStoreDB';
                                        break;
+                               case 'array':
+                                       $storeClass = 'LCStoreStaticArray';
+                                       break;
                                case 'detect':
                                        $storeClass = $wgCacheDirectory ? 'LCStoreCDB' : 'LCStoreDB';
                                        break;
@@ -506,15 +509,15 @@ class LocalisationCache {
         */
        protected function readPHPFile( $_fileName, $_fileType ) {
                // Disable APC caching
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $_apcEnabled = ini_set( 'apc.cache_by_default', '0' );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                include $_fileName;
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                ini_set( 'apc.cache_by_default', $_apcEnabled );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( $_fileType == 'core' || $_fileType == 'extension' ) {
                        $data = compact( self::$allKeys );
index 011cae6..19349b2 100644 (file)
  * constituent messages or the resource itself is changed.
  */
 class MessageBlobStore {
+       /**
+        * In-process cache for message blobs.
+        *
+        * Keyed by language code, then module name.
+        *
+        * @var array
+        */
+       protected $blobCache = array();
+
        /**
         * Get the singleton instance
         *
@@ -56,18 +65,40 @@ class MessageBlobStore {
                if ( !count( $modules ) ) {
                        return array();
                }
-               // Try getting from the DB first
-               $blobs = $this->getFromDB( $resourceLoader, array_keys( $modules ), $lang );
 
-               // Generate blobs for any missing modules and store them in the DB
-               $missing = array_diff( array_keys( $modules ), array_keys( $blobs ) );
-               foreach ( $missing as $name ) {
+               $blobs = array();
+
+               // Try in-process cache
+               $missingFromCache = array();
+               foreach ( $modules as $name => $module ) {
+                       if ( isset( $this->blobCache[$lang][$name] ) ) {
+                               $blobs[$name] = $this->blobCache[$lang][$name];
+                       } else {
+                               $missingFromCache[] = $name;
+                       }
+               }
+
+               // Try DB cache
+               if ( $missingFromCache ) {
+                       $blobs += $this->getFromDB( $resourceLoader, $missingFromCache, $lang );
+               }
+
+               // Generate new blobs for any remaining modules and store in DB
+               $missingFromDb = array_diff( array_keys( $modules ), array_keys( $blobs ) );
+               foreach ( $missingFromDb as $name ) {
                        $blob = $this->insertMessageBlob( $name, $modules[$name], $lang );
                        if ( $blob ) {
                                $blobs[$name] = $blob;
                        }
                }
 
+               // Update in-process cache
+               if ( isset( $this->blobCache[$lang] ) ) {
+                       $this->blobCache[$lang] += $blobs;
+               } else {
+                       $this->blobCache[$lang] = $blobs;
+               }
+
                return $blobs;
        }
 
@@ -339,6 +370,10 @@ class MessageBlobStore {
         * @return array Array mapping module names to blobs
         */
        private function getFromDB( ResourceLoader $resourceLoader, $modules, $lang ) {
+               if ( !count( $modules ) ) {
+                       return array();
+               }
+
                $config = $resourceLoader->getConfig();
                $retval = array();
                $dbr = wfGetDB( DB_SLAVE );
index a55e25a..90fa065 100644 (file)
@@ -50,6 +50,8 @@ define( 'MSG_WAIT_TIMEOUT', 30 );
  * @ingroup Cache
  */
 class MessageCache {
+       const FOR_UPDATE = 1; // force message reload
+
        /**
         * Process local cache of loaded messages that are defined in
         * MediaWiki namespace. First array level is a language code,
@@ -165,9 +167,9 @@ class MessageCache {
                $filename = "$wgCacheDirectory/messages-" . wfWikiID() . "-$code";
 
                # Check file existence
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $file = fopen( $filename, 'r' );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( !$file ) {
                        return false; // No cache file
                }
@@ -202,9 +204,9 @@ class MessageCache {
                $filename = "$wgCacheDirectory/messages-" . wfWikiID() . "-$code";
                wfMkdirParents( $wgCacheDirectory, null, __METHOD__ ); // might fail
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $file = fopen( $filename, 'w' );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( !$file ) {
                        wfDebug( "Unable to open local cache file for writing\n" );
@@ -214,9 +216,9 @@ class MessageCache {
 
                fwrite( $file, $hash . $serialized );
                fclose( $file );
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                chmod( $filename, 0666 );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
        }
 
        /**
@@ -236,10 +238,11 @@ class MessageCache {
         * is disabled.
         *
         * @param bool|string $code Language to which load messages
+        * @param integer $mode Use MessageCache::FOR_UPDATE to skip process cache
         * @throws MWException
         * @return bool
         */
-       function load( $code = false ) {
+       function load( $code = false, $mode = null ) {
                global $wgUseLocalMessageCache;
 
                if ( !is_string( $code ) ) {
@@ -250,7 +253,7 @@ class MessageCache {
                }
 
                # Don't do double loading...
-               if ( isset( $this->mLoadedLanguages[$code] ) ) {
+               if ( isset( $this->mLoadedLanguages[$code] ) && $mode != self::FOR_UPDATE ) {
                        return true;
                }
 
@@ -275,7 +278,6 @@ class MessageCache {
                # Hash of the contents is stored in memcache, to detect if local cache goes
                # out of date (e.g. due to replace() on some other server)
                if ( $wgUseLocalMessageCache ) {
-
                        $hash = $this->mMemc->get( wfMemcKey( 'messages', $code, 'hash' ) );
                        if ( $hash ) {
                                $cache = $this->getLocalCache( $hash, $code );
@@ -431,6 +433,7 @@ class MessageCache {
         */
        function loadFromDB( $code ) {
                global $wgMaxMsgCacheEntrySize, $wgLanguageCode, $wgAdaptiveMessageCache;
+
                $dbr = wfGetDB( DB_SLAVE );
                $cache = array();
 
@@ -514,18 +517,21 @@ class MessageCache {
         * @param mixed $text New contents of the page.
         */
        public function replace( $title, $text ) {
-               global $wgMaxMsgCacheEntrySize;
+               global $wgMaxMsgCacheEntrySize, $wgContLang, $wgLanguageCode;
 
                if ( $this->mDisable ) {
-
                        return;
                }
 
                list( $msg, $code ) = $this->figureMessage( $title );
+               if ( strpos( $title, '/' ) !== false && $code === $wgLanguageCode ) {
+                       # Content language overrides do not use the /<code> suffix
+                       return;
+               }
 
                $cacheKey = wfMemcKey( 'messages', $code );
-               $this->load( $code );
                $this->lock( $cacheKey );
+               $this->load( $code, self::FOR_UPDATE );
 
                $titleKey = wfMemcKey( 'messages', 'individual', $title );
 
@@ -554,19 +560,17 @@ class MessageCache {
                        $codes = array_keys( Language::fetchLanguageNames() );
                }
 
-               global $wgMemc;
+               $cache = ObjectCache::getMainWANInstance();
                foreach ( $codes as $code ) {
                        $sidebarKey = wfMemcKey( 'sidebar', $code );
-                       $wgMemc->delete( $sidebarKey );
+                       $cache->delete( $sidebarKey, 5 );
                }
 
                // Update the message in the message blob store
-               global $wgContLang;
                $blobStore = new MessageBlobStore();
                $blobStore->updateMessage( $wgContLang->lcfirst( $msg ) );
 
                Hooks::run( 'MessageCacheReplace', array( $title, $text ) );
-
        }
 
        /**
@@ -1087,6 +1091,7 @@ class MessageCache {
         */
        public function figureMessage( $key ) {
                global $wgLanguageCode;
+
                $pieces = explode( '/', $key );
                if ( count( $pieces ) < 2 ) {
                        return array( $key, $wgLanguageCode );
index 6d26a2d..e1186ef 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Resource loader request result caching in the file system.
+ * ResourceLoader request result caching in the file system.
  *
  * 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
@@ -22,7 +22,7 @@
  */
 
 /**
- * Resource loader request result caching in the file system.
+ * ResourceLoader request result caching in the file system.
  *
  * @ingroup Cache
  */
index b430bab..77bf5df 100644 (file)
@@ -164,7 +164,7 @@ class RecentChange {
         * Obtain the recent change with a given rc_id value
         *
         * @param int $rcid The rc_id value to retrieve
-        * @return RecentChange
+        * @return RecentChange|null
         */
        public static function newFromId( $rcid ) {
                return self::newFromConds( array( 'rc_id' => $rcid ), __METHOD__ );
@@ -176,7 +176,7 @@ class RecentChange {
         * @param array $conds Array of conditions
         * @param mixed $fname Override the method name in profiling/logs
         * @param array $options Query options
-        * @return RecentChange
+        * @return RecentChange|null
         */
        public static function newFromConds( $conds, $fname = __METHOD__, $options = array() ) {
                $dbr = wfGetDB( DB_SLAVE );
@@ -332,6 +332,11 @@ class RecentChange {
                                        $this->mExtra['pageStatus'] );
                        }
                }
+
+               // Update the cached list of active users
+               if ( $this->mAttribs['rc_user'] > 0 ) {
+                       JobQueueGroup::singleton()->lazyPush( RecentChangesUpdateJob::newCacheUpdateJob() );
+               }
        }
 
        /**
@@ -512,8 +517,10 @@ class RecentChange {
         * @param int $patrol
         * @return RecentChange
         */
-       public static function notifyEdit( $timestamp, &$title, $minor, &$user, $comment, $oldId,
-               $lastTimestamp, $bot, $ip = '', $oldSize = 0, $newSize = 0, $newId = 0, $patrol = 0 ) {
+       public static function notifyEdit(
+               $timestamp, &$title, $minor, &$user, $comment, $oldId, $lastTimestamp,
+               $bot, $ip = '', $oldSize = 0, $newSize = 0, $newId = 0, $patrol = 0
+       ) {
                $rc = new RecentChange;
                $rc->mTitle = $title;
                $rc->mPerformer = $user;
@@ -550,7 +557,13 @@ class RecentChange {
                        'newSize' => $newSize,
                        'pageStatus' => 'changed'
                );
-               $rc->save();
+
+               DeferredUpdates::addCallableUpdate( function() use ( $rc ) {
+                       $rc->save();
+                       if ( $rc->mAttribs['rc_patrolled'] ) {
+                               PatrolLog::record( $rc, true, $rc->getPerformer() );
+                       }
+               } );
 
                return $rc;
        }
@@ -571,8 +584,10 @@ class RecentChange {
         * @param int $patrol
         * @return RecentChange
         */
-       public static function notifyNew( $timestamp, &$title, $minor, &$user, $comment, $bot,
-               $ip = '', $size = 0, $newId = 0, $patrol = 0 ) {
+       public static function notifyNew(
+               $timestamp, &$title, $minor, &$user, $comment, $bot,
+               $ip = '', $size = 0, $newId = 0, $patrol = 0
+       ) {
                $rc = new RecentChange;
                $rc->mTitle = $title;
                $rc->mPerformer = $user;
@@ -609,7 +624,13 @@ class RecentChange {
                        'newSize' => $size,
                        'pageStatus' => 'created'
                );
-               $rc->save();
+
+               DeferredUpdates::addCallableUpdate( function() use ( $rc ) {
+                       $rc->save();
+                       if ( $rc->mAttribs['rc_patrolled'] ) {
+                               PatrolLog::record( $rc, true, $rc->getPerformer() );
+                       }
+               } );
 
                return $rc;
        }
@@ -827,4 +848,21 @@ class RecentChange {
 
                return wfTimestamp( TS_UNIX, $timestamp ) > time() - $tolerance - $wgRCMaxAge;
        }
+
+       /**
+        * Parses and returns the rc_params attribute
+        *
+        * @since 1.26
+        *
+        * @return array|null
+        */
+       public function parseParams() {
+               $rcParams = $this->getAttribute( 'rc_params' );
+
+               MediaWiki\suppressWarnings();
+               $unserializedParams = unserialize( $rcParams );
+               MediaWiki\restoreWarnings();
+
+               return $unserializedParams;
+       }
 }
index a0c3cf2..79763bd 100644 (file)
@@ -1064,21 +1064,18 @@ class ChangeTags {
         * @since 1.25
         */
        public static function listExtensionActivatedTags() {
-               // Caching...
-               global $wgMemc;
-               $key = wfMemcKey( 'active-tags' );
-               $tags = $wgMemc->get( $key );
-               if ( $tags ) {
-                       return $tags;
-               }
-
-               // ask extensions which tags they consider active
-               $extensionActive = array();
-               Hooks::run( 'ChangeTagsListActive', array( &$extensionActive ) );
-
-               // Short-term caching.
-               $wgMemc->set( $key, $extensionActive, 300 );
-               return $extensionActive;
+               return ObjectCache::getMainWANInstance()->getWithSetCallback(
+                       wfMemcKey( 'active-tags' ),
+                       function() {
+                               // Ask extensions which tags they consider active
+                               $extensionActive = array();
+                               Hooks::run( 'ChangeTagsListActive', array( &$extensionActive ) );
+                               return $extensionActive;
+                       },
+                       300,
+                       array( wfMemcKey( 'active-tags' ) ),
+                       array( 'lockTSE' => INF )
+               );
        }
 
        /**
@@ -1105,28 +1102,21 @@ class ChangeTags {
         * @since 1.25
         */
        public static function listExplicitlyDefinedTags() {
-               // Caching...
-               global $wgMemc;
-               $key = wfMemcKey( 'valid-tags-db' );
-               $tags = $wgMemc->get( $key );
-               if ( $tags ) {
-                       return $tags;
-               }
-
-               $emptyTags = array();
-
-               // Some DB stuff
-               $dbr = wfGetDB( DB_SLAVE );
-               $res = $dbr->select( 'valid_tag', 'vt_tag', array(), __METHOD__ );
-               foreach ( $res as $row ) {
-                       $emptyTags[] = $row->vt_tag;
-               }
-
-               $emptyTags = array_filter( array_unique( $emptyTags ) );
-
-               // Short-term caching.
-               $wgMemc->set( $key, $emptyTags, 300 );
-               return $emptyTags;
+               $fname = __METHOD__;
+
+               return ObjectCache::getMainWANInstance()->getWithSetCallback(
+                       wfMemcKey( 'valid-tags-db' ),
+                       function() use ( $fname ) {
+                               $dbr = wfGetDB( DB_SLAVE );
+                               $tags = $dbr->selectFieldValues(
+                                       'valid_tag', 'vt_tag', array(), $fname );
+
+                               return array_filter( array_unique( $tags ) );
+                       },
+                       300,
+                       array( wfMemcKey( 'valid-tags-db' ) ),
+                       array( 'lockTSE' => INF )
+               );
        }
 
        /**
@@ -1139,21 +1129,17 @@ class ChangeTags {
         * @since 1.25
         */
        public static function listExtensionDefinedTags() {
-               // Caching...
-               global $wgMemc;
-               $key = wfMemcKey( 'valid-tags-hook' );
-               $tags = $wgMemc->get( $key );
-               if ( $tags ) {
-                       return $tags;
-               }
-
-               $emptyTags = array();
-               Hooks::run( 'ListDefinedTags', array( &$emptyTags ) );
-               $emptyTags = array_filter( array_unique( $emptyTags ) );
-
-               // Short-term caching.
-               $wgMemc->set( $key, $emptyTags, 300 );
-               return $emptyTags;
+               return ObjectCache::getMainWANInstance()->getWithSetCallback(
+                       wfMemcKey( 'valid-tags-hook' ),
+                       function() {
+                               $tags = array();
+                               Hooks::run( 'ListDefinedTags', array( &$tags ) );
+                               return array_filter( array_unique( $tags ) );
+                       },
+                       300,
+                       array( wfMemcKey( 'valid-tags-hook' ) ),
+                       array( 'lockTSE' => INF )
+               );
        }
 
        /**
@@ -1162,10 +1148,12 @@ class ChangeTags {
         * @since 1.25
         */
        public static function purgeTagCacheAll() {
-               global $wgMemc;
-               $wgMemc->delete( wfMemcKey( 'active-tags' ) );
-               $wgMemc->delete( wfMemcKey( 'valid-tags-db' ) );
-               $wgMemc->delete( wfMemcKey( 'valid-tags-hook' ) );
+               $cache = ObjectCache::getMainWANInstance();
+
+               $cache->touchCheckKey( wfMemcKey( 'active-tags' ) );
+               $cache->touchCheckKey( wfMemcKey( 'valid-tags-db' ) );
+               $cache->touchCheckKey( wfMemcKey( 'valid-tags-hook' ) );
+
                self::purgeTagUsageCache();
        }
 
@@ -1174,8 +1162,9 @@ class ChangeTags {
         * @since 1.25
         */
        public static function purgeTagUsageCache() {
-               global $wgMemc;
-               $wgMemc->delete( wfMemcKey( 'change-tag-statistics' ) );
+               $cache = ObjectCache::getMainWANInstance();
+
+               $cache->touchCheckKey( wfMemcKey( 'change-tag-statistics' ) );
        }
 
        /**
@@ -1188,37 +1177,46 @@ class ChangeTags {
         * @return array Array of string => int
         */
        public static function tagUsageStatistics() {
-               // Caching...
-               global $wgMemc;
-               $key = wfMemcKey( 'change-tag-statistics' );
-               $stats = $wgMemc->get( $key );
-               if ( $stats ) {
-                       return $stats;
+               static $cachedStats = null;
+
+               // Process cache to avoid I/O and repeated regens during holdoff
+               if ( $cachedStats !== null ) {
+                       return $cachedStats;
                }
 
-               $out = array();
+               $fname = __METHOD__;
+               $cachedStats = ObjectCache::getMainWANInstance()->getWithSetCallback(
+                       wfMemcKey( 'change-tag-statistics' ),
+                       function() use ( $fname ) {
+                               $out = array();
+
+                               $dbr = wfGetDB( DB_SLAVE, 'vslow' );
+                               $res = $dbr->select(
+                                       'change_tag',
+                                       array( 'ct_tag', 'hitcount' => 'count(*)' ),
+                                       array(),
+                                       $fname,
+                                       array( 'GROUP BY' => 'ct_tag', 'ORDER BY' => 'hitcount DESC' )
+                               );
 
-               $dbr = wfGetDB( DB_SLAVE, 'vslow' );
-               $res = $dbr->select(
-                       'change_tag',
-                       array( 'ct_tag', 'hitcount' => 'count(*)' ),
-                       array(),
-                       __METHOD__,
-                       array( 'GROUP BY' => 'ct_tag', 'ORDER BY' => 'hitcount DESC' )
+                               foreach ( $res as $row ) {
+                                       $out[$row->ct_tag] = $row->hitcount;
+                               }
+
+                               foreach ( ChangeTags::listDefinedTags() as $tag ) {
+                                       if ( !isset( $out[$tag] ) ) {
+                                               $out[$tag] = 0;
+                                       }
+                               }
+
+                               return $out;
+                       },
+                       300,
+                       array( wfMemcKey( 'change-tag-statistics' ) ),
+                       array( 'lockTSE' => INF )
                );
 
-               foreach ( $res as $row ) {
-                       $out[$row->ct_tag] = $row->hitcount;
-               }
-               foreach ( self::listDefinedTags() as $tag ) {
-                       if ( !isset( $out[$tag] ) ) {
-                               $out[$tag] = 0;
-                       }
-               }
-
-               // Cache for a very short time
-               $wgMemc->set( $key, $out, 300 );
-               return $out;
+               return $cachedStats;
        }
 
        /**
index 12b0c39..b20794b 100644 (file)
@@ -46,6 +46,9 @@ class ConfigFactory {
         */
        private static $self;
 
+       /**
+        * @return ConfigFactory
+        */
        public static function getDefaultInstance() {
                if ( !self::$self ) {
                        self::$self = new self;
index f8d0879..b25bf14 100644 (file)
@@ -207,26 +207,26 @@ abstract class ContentHandler {
                        }
                }
 
-               // Could this page contain custom CSS or JavaScript, based on the title?
-               $isCssOrJsPage = NS_MEDIAWIKI == $ns && preg_match( '!\.(css|js)$!u', $title->getText(), $m );
-               if ( $isCssOrJsPage ) {
+               // Could this page contain code based on the title?
+               $isCodePage = NS_MEDIAWIKI == $ns && preg_match( '!\.(css|js|json)$!u', $title->getText(), $m );
+               if ( $isCodePage ) {
                        $ext = $m[1];
                }
 
                // Hook can force JS/CSS
-               Hooks::run( 'TitleIsCssOrJsPage', array( $title, &$isCssOrJsPage ), '1.25' );
+               Hooks::run( 'TitleIsCssOrJsPage', array( $title, &$isCodePage ), '1.25' );
 
-               // Is this a .css subpage of a user page?
-               $isJsCssSubpage = NS_USER == $ns
-                       && !$isCssOrJsPage
-                       && preg_match( "/\\/.*\\.(js|css)$/", $title->getText(), $m );
-               if ( $isJsCssSubpage ) {
+               // Is this a user subpage containing code?
+               $isCodeSubpage = NS_USER == $ns
+                       && !$isCodePage
+                       && preg_match( "/\\/.*\\.(js|css|json)$/", $title->getText(), $m );
+               if ( $isCodeSubpage ) {
                        $ext = $m[1];
                }
 
                // Is this wikitext, according to $wgNamespaceContentModels or the DefaultModelFor hook?
                $isWikitext = is_null( $model ) || $model == CONTENT_MODEL_WIKITEXT;
-               $isWikitext = $isWikitext && !$isCssOrJsPage && !$isJsCssSubpage;
+               $isWikitext = $isWikitext && !$isCodePage && !$isCodeSubpage;
 
                // Hook can override $isWikitext
                Hooks::run( 'TitleIsWikitextPage', array( $title, &$isWikitext ), '1.25' );
@@ -237,6 +237,8 @@ abstract class ContentHandler {
                                        return CONTENT_MODEL_JAVASCRIPT;
                                case 'css':
                                        return CONTENT_MODEL_CSS;
+                               case 'json':
+                                       return CONTENT_MODEL_JSON;
                                default:
                                        return is_null( $model ) ? CONTENT_MODEL_TEXT : $model;
                        }
@@ -1130,7 +1132,7 @@ abstract class ContentHandler {
                        $handlers = Hooks::getHandlers( $event );
                        $handlerInfo = array();
 
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
 
                        foreach ( $handlers as $handler ) {
                                if ( is_array( $handler ) ) {
@@ -1153,7 +1155,7 @@ abstract class ContentHandler {
                                $handlerInfo[] = $info;
                        }
 
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
 
                        wfWarn( "Using obsolete hook $event via ContentHandler::runLegacyHooks()! Handlers: " .
                                implode( ', ', $handlerInfo ), 2 );
index dbe09f9..3b449b6 100644 (file)
@@ -273,12 +273,11 @@ class WikitextContent extends TextContent {
                        return false;
                }
 
-               $text = $this->getNativeData();
-
                switch ( $wgArticleCountMethod ) {
                        case 'any':
                                return true;
                        case 'comma':
+                               $text = $this->getNativeData();
                                return strpos( $text, ',' ) !== false;
                        case 'link':
                                if ( $hasLinks === null ) { # not known, find out
index 5afff91..e15c248 100644 (file)
@@ -3639,11 +3639,12 @@ abstract class DatabaseBase implements IDatabase {
                        }
 
                        $this->runOnTransactionPreCommitCallbacks();
+                       $writeTime = $this->pendingWriteQueryDuration();
                        $this->doCommit( $fname );
                        if ( $this->mTrxDoneWrites ) {
                                $this->mDoneWrites = microtime( true );
                                $this->getTransactionProfiler()->transactionWritingOut(
-                                       $this->mServer, $this->mDBname, $this->mTrxShortId );
+                                       $this->mServer, $this->mDBname, $this->mTrxShortId, $writeTime );
                        }
                        $this->runOnTransactionIdleCallbacks();
                }
@@ -3721,11 +3722,12 @@ abstract class DatabaseBase implements IDatabase {
                }
 
                $this->runOnTransactionPreCommitCallbacks();
+               $writeTime = $this->pendingWriteQueryDuration();
                $this->doCommit( $fname );
                if ( $this->mTrxDoneWrites ) {
                        $this->mDoneWrites = microtime( true );
                        $this->getTransactionProfiler()->transactionWritingOut(
-                               $this->mServer, $this->mDBname, $this->mTrxShortId );
+                               $this->mServer, $this->mDBname, $this->mTrxShortId, $writeTime );
                }
                $this->runOnTransactionIdleCallbacks();
        }
@@ -4023,9 +4025,9 @@ abstract class DatabaseBase implements IDatabase {
        public function sourceFile(
                $filename, $lineCallback = false, $resultCallback = false, $fname = false, $inputCallback = false
        ) {
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $fp = fopen( $filename, 'r' );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( false === $fp ) {
                        throw new MWException( "Could not open \"{$filename}\".\n" );
index 2b8f395..b5b6825 100644 (file)
@@ -119,9 +119,9 @@ class DatabaseMssql extends DatabaseBase {
                        $connectionInfo['PWD'] = $password;
                }
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $this->mConn = sqlsrv_connect( $server, $connectionInfo );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( $this->mConn === false ) {
                        throw new DBConnectionError( $this, $this->lastError() );
index 561c811..a189648 100644 (file)
@@ -104,9 +104,9 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
                }
 
                if ( $dbName != '' ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $success = $this->selectDB( $dbName );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        if ( !$success ) {
                                wfLogDBError(
                                        "Error selecting database {db_name} on server {db_server}",
@@ -203,9 +203,9 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
                if ( $res instanceof ResultWrapper ) {
                        $res = $res->result;
                }
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $ok = $this->mysqlFreeResult( $res );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( !$ok ) {
                        throw new DBUnexpectedError( $this, "Unable to free MySQL result" );
                }
@@ -228,9 +228,9 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
                if ( $res instanceof ResultWrapper ) {
                        $res = $res->result;
                }
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $row = $this->mysqlFetchObject( $res );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                $errno = $this->lastErrno();
                // Unfortunately, mysql_fetch_object does not reset the last errno.
@@ -264,9 +264,9 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
                if ( $res instanceof ResultWrapper ) {
                        $res = $res->result;
                }
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $row = $this->mysqlFetchArray( $res );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                $errno = $this->lastErrno();
                // Unfortunately, mysql_fetch_array does not reset the last errno.
@@ -300,9 +300,9 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
                if ( $res instanceof ResultWrapper ) {
                        $res = $res->result;
                }
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $n = $this->mysqlNumRows( $res );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                // Unfortunately, mysql_num_rows does not reset the last errno.
                // We are not checking for any errors here, since
@@ -413,12 +413,12 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
        function lastError() {
                if ( $this->mConn ) {
                        # Even if it's non-zero, it can still be invalid
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $error = $this->mysqlError( $this->mConn );
                        if ( !$error ) {
                                $error = $this->mysqlError();
                        }
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                } else {
                        $error = $this->mysqlError();
                }
index 9b00fbd..081174a 100644 (file)
@@ -220,9 +220,9 @@ class DatabaseOracle extends DatabaseBase {
 
        function __destruct() {
                if ( $this->mOpened ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $this->close();
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                }
        }
 
@@ -306,7 +306,7 @@ class DatabaseOracle extends DatabaseBase {
 
                $session_mode = $this->mFlags & DBO_SYSDBA ? OCI_SYSDBA : OCI_DEFAULT;
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                if ( $this->mFlags & DBO_PERSISTENT ) {
                        $this->mConn = oci_pconnect(
                                $this->mUser,
@@ -332,7 +332,7 @@ class DatabaseOracle extends DatabaseBase {
                                $session_mode
                        );
                }
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( $this->mUser != $this->mDBname ) {
                        //change current schema in session
@@ -393,7 +393,7 @@ class DatabaseOracle extends DatabaseBase {
                        $explain_count
                );
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
 
                if ( ( $this->mLastResult = $stmt = oci_parse( $this->mConn, $sql ) ) === false ) {
                        $e = oci_error( $this->mConn );
@@ -411,7 +411,7 @@ class DatabaseOracle extends DatabaseBase {
                        }
                }
 
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( $explain_count > 0 ) {
                        return $this->doQuery( 'SELECT id, cardinality "ROWS" FROM plan_table ' .
@@ -687,7 +687,7 @@ class DatabaseOracle extends DatabaseBase {
                        }
                }
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
 
                if ( oci_execute( $stmt, $this->execFlags() ) === false ) {
                        $e = oci_error( $stmt );
@@ -702,7 +702,7 @@ class DatabaseOracle extends DatabaseBase {
                        $this->mAffectedRows = oci_num_rows( $stmt );
                }
 
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( isset( $lob ) ) {
                        foreach ( $lob as $lob_v ) {
@@ -1250,9 +1250,9 @@ class DatabaseOracle extends DatabaseBase {
                }
                $sql = 'ALTER SESSION SET CURRENT_SCHEMA=' . strtoupper( $db );
                $stmt = oci_parse( $this->mConn, $sql );
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $success = oci_execute( $stmt );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( !$success ) {
                        $e = oci_error( $stmt );
                        if ( $e['code'] != '1435' ) {
@@ -1491,7 +1491,7 @@ class DatabaseOracle extends DatabaseBase {
                        }
                }
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
 
                if ( oci_execute( $stmt, $this->execFlags() ) === false ) {
                        $e = oci_error( $stmt );
@@ -1506,7 +1506,7 @@ class DatabaseOracle extends DatabaseBase {
                        $this->mAffectedRows = oci_num_rows( $stmt );
                }
 
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( isset( $lob ) ) {
                        foreach ( $lob as $lob_v ) {
index 9287f7a..60999e5 100644 (file)
@@ -551,9 +551,9 @@ class DatabasePostgres extends DatabaseBase {
                if ( $res instanceof ResultWrapper ) {
                        $res = $res->result;
                }
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $ok = pg_free_result( $res );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( !$ok ) {
                        throw new DBUnexpectedError( $this, "Unable to free Postgres result\n" );
                }
@@ -568,9 +568,9 @@ class DatabasePostgres extends DatabaseBase {
                if ( $res instanceof ResultWrapper ) {
                        $res = $res->result;
                }
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $row = pg_fetch_object( $res );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                # @todo FIXME: HACK HACK HACK HACK debug
 
                # @todo hashar: not sure if the following test really trigger if the object
@@ -589,9 +589,9 @@ class DatabasePostgres extends DatabaseBase {
                if ( $res instanceof ResultWrapper ) {
                        $res = $res->result;
                }
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $row = pg_fetch_array( $res );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( pg_last_error( $this->mConn ) ) {
                        throw new DBUnexpectedError(
                                $this,
@@ -606,9 +606,9 @@ class DatabasePostgres extends DatabaseBase {
                if ( $res instanceof ResultWrapper ) {
                        $res = $res->result;
                }
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $n = pg_num_rows( $res );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( pg_last_error( $this->mConn ) ) {
                        throw new DBUnexpectedError(
                                $this,
index 4551e2d..0742df2 100644 (file)
@@ -177,6 +177,15 @@ abstract class LBFactory {
                }, array( $methodName, $args ) );
        }
 
+       /**
+        * Commit on all connections. Done for two reasons:
+        * 1. To commit changes to the masters.
+        * 2. To release the snapshot on all connections, master and slave.
+        */
+       public function commitAll() {
+               $this->forEachLBCallMethod( 'commitAll' );
+       }
+
        /**
         * Commit changes on all master connections
         */
index 2ea2487..99c9a14 100644 (file)
@@ -291,8 +291,8 @@ class LoadBalancer {
                                return false;
                        }
 
-                       wfDebugLog( 'connect', __METHOD__ .
-                               ": Using reader #$i: {$this->mServers[$i]['host']}..." );
+                       $serverName = $this->getServerName( $i );
+                       wfDebugLog( 'connect', __METHOD__ . ": Using reader #$i: $serverName..." );
 
                        $conn = $this->openConnection( $i, $wiki );
                        if ( !$conn ) {
@@ -462,7 +462,7 @@ class LoadBalancer {
 
                if ( $result == -1 || is_null( $result ) ) {
                        # Timed out waiting for slave, use master instead
-                       $server = $this->mServers[$index]['host'];
+                       $server = $server = $this->getServerName( $index );
                        $msg = __METHOD__ . ": Timed out waiting on $server pos {$this->mWaitForPos}";
                        wfDebug( "$msg\n" );
                        wfDebugLog( 'DBPerformance', "$msg:\n" . wfBacktrace( true ) );
@@ -660,11 +660,12 @@ class LoadBalancer {
                        $server = $this->mServers[$i];
                        $server['serverIndex'] = $i;
                        $conn = $this->reallyOpenConnection( $server, false );
+                       $serverName = $this->getServerName( $i );
                        if ( $conn->isOpen() ) {
-                               wfDebug( "Connected to database $i at {$this->mServers[$i]['host']}\n" );
+                               wfDebug( "Connected to database $i at $serverName\n" );
                                $this->mConns['local'][$i][0] = $conn;
                        } else {
-                               wfDebug( "Failed to connect to database $i at {$this->mServers[$i]['host']}\n" );
+                               wfDebug( "Failed to connect to database $i at $serverName\n" );
                                $this->mErrorConnection = $conn;
                                $conn = false;
                        }
@@ -888,12 +889,14 @@ class LoadBalancer {
         */
        public function getServerName( $i ) {
                if ( isset( $this->mServers[$i]['hostName'] ) ) {
-                       return $this->mServers[$i]['hostName'];
+                       $name = $this->mServers[$i]['hostName'];
                } elseif ( isset( $this->mServers[$i]['host'] ) ) {
-                       return $this->mServers[$i]['host'];
+                       $name = $this->mServers[$i]['host'];
                } else {
-                       return '';
+                       $name = '';
                }
+
+               return ( $name != '' ) ? $name : 'localhost';
        }
 
        /**
index 3d853cb..8c4d0ed 100644 (file)
@@ -109,9 +109,9 @@ class LoadMonitorMySQL implements LoadMonitor {
 
                                return $times;
                        }
-                       wfIncrStats( 'lag_cache_miss_expired' );
+                       wfIncrStats( 'lag_cache.miss.expired' );
                } else {
-                       wfIncrStats( 'lag_cache_miss_absent' );
+                       wfIncrStats( 'lag_cache.miss.absent' );
                }
 
                # Cache key missing or expired
index 6027375..71fc328 100644 (file)
@@ -365,7 +365,7 @@ class LegacyLogger extends AbstractLogger {
                        $transport = UDPTransport::newFromString( $file );
                        $transport->emit( $text );
                } else {
-                       wfSuppressWarnings();
+                       \MediaWiki\suppressWarnings();
                        $exists = file_exists( $file );
                        $size = $exists ? filesize( $file ) : false;
                        if ( !$exists ||
@@ -373,7 +373,7 @@ class LegacyLogger extends AbstractLogger {
                        ) {
                                file_put_contents( $file, $text, FILE_APPEND );
                        }
-                       wfRestoreWarnings();
+                       \MediaWiki\restoreWarnings();
                }
        }
 
diff --git a/includes/debug/logger/Shims.php b/includes/debug/logger/Shims.php
deleted file mode 100644 (file)
index 0476d0f..0000000
+++ /dev/null
@@ -1,121 +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
- */
-
-/**
- * Backwards compatibility stub for usage from before the introduction of
- * MediaWiki\Logger\LoggerFactory.
- *
- * @deprecated since 1.25 Use \MediaWiki\Logger\LoggerFactory
- * @todo This class should be removed before the 1.25 final release.
- */
-class MWLogger {
-
-       /**
-        * Register a service provider to create new \Psr\Log\LoggerInterface
-        * instances.
-        *
-        * @param \MediaWiki\Logger\Spi $provider Provider to register
-        * @deprecated since 1.25 Use MediaWiki\Logger\LoggerFactory::registerProvider()
-        */
-       public static function registerProvider( \MediaWiki\Logger\Spi $provider ) {
-               \MediaWiki\Logger\LoggerFactory::registerProvider( $provider );
-       }
-
-
-       /**
-        * Get the registered service provider.
-        *
-        * If called before any service provider has been registered, it will
-        * attempt to use the $wgMWLoggerDefaultSpi global to bootstrap
-        * MWLoggerSpi registration. $wgMWLoggerDefaultSpi is expected to be an
-        * array usable by ObjectFactory::getObjectFromSpec() to create a class.
-        *
-        * @return \MediaWiki\Logger\Spi
-        * @see registerProvider()
-        * @see ObjectFactory::getObjectFromSpec()
-        * @deprecated since 1.25 Use MediaWiki\Logger\LoggerFactory::getProvider()
-        */
-       public static function getProvider() {
-               return \MediaWiki\Logger\LoggerFactory::getProvider();
-       }
-
-
-       /**
-        * Get a named logger instance from the currently configured logger factory.
-        *
-        * @param string $channel Logger channel (name)
-        * @return \Psr\Log\LoggerInterface
-        * @deprecated since 1.25 Use MediaWiki\Logger\LoggerFactory::getInstance()
-        */
-       public static function getInstance( $channel ) {
-               return \MediaWiki\Logger\LoggerFactory::getInstance( $channel );
-       }
-
-}
-
-/**
- * Backwards compatibility stub for usage from before the introduction of
- * the MediaWiki\Logger namespace.
- *
- * @deprecated since 1.25 Use \MediaWiki\Logger\LoggerFactory
- * @todo This class should be removed before the 1.25 final release.
- */
-class MWLoggerFactory extends \MediaWiki\Logger\LoggerFactory {
-}
-
-/**
- * Backwards compatibility stub for usage from before the introduction of
- * the MediaWiki\Logger namespace.
- *
- * @deprecated since 1.25 Use \MediaWiki\Logger\LegacyLogger
- * @todo This class should be removed before the 1.25 final release.
- */
-class MWLoggerLegacyLogger extends \MediaWiki\Logger\LegacyLogger {
-}
-
-/**
- * Backwards compatibility stub for usage from before the introduction of
- * the MediaWiki\Logger namespace.
- *
- * @deprecated since 1.25 Use \MediaWiki\Logger\LegacySpi
- * @todo This class should be removed before the 1.25 final release.
- */
-class MWLoggerLegacySpi extends \MediaWiki\Logger\LegacySpi {
-}
-
-/**
- * Backwards compatibility stub for usage from before the introduction of
- * the MediaWiki\Logger namespace.
- *
- * @deprecated since 1.25 Use \MediaWiki\Logger\NullSpi
- * @todo This class should be removed before the 1.25 final release.
- */
-class MWLoggerNullSpi extends \MediaWiki\Logger\NullSpi {
-}
-
-/**
- * Backwards compatibility stub for usage from before the introduction of
- * the MediaWiki\Logger namespace.
- *
- * @deprecated since 1.25 Use \MediaWiki\Logger\Spi
- * @todo This class should be removed before the 1.25 final release.
- */
-interface MWLoggerSpi extends \MediaWiki\Logger\Spi {
-}
diff --git a/includes/debug/logger/monolog/Shims.php b/includes/debug/logger/monolog/Shims.php
deleted file mode 100644 (file)
index f250713..0000000
+++ /dev/null
@@ -1,69 +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
- */
-
-/**
- * Backwards compatibility stub for usage from before the introduction of
- * the MediaWiki\Logger namespace.
- *
- * @deprecated since 1.25 Use \MediaWiki\Logger\Monolog\LegacyHandler
- * @todo This class should be removed before the 1.25 final release.
- */
-class MWLoggerMonologHandler extends \MediaWiki\Logger\Monolog\LegacyHandler {
-}
-
-/**
- * Backwards compatibility stub for usage from before the introduction of
- * the MediaWiki\Logger namespace.
- *
- * @deprecated since 1.25 Use \MediaWiki\Logger\Monolog\LegacyFormatter
- * @todo This class should be removed before the 1.25 final release.
- */
-class MWLoggerMonologLegacyFormatter extends \MediaWiki\Logger\Monolog\LegacyFormatter {
-}
-
-/**
- * Backwards compatibility stub for usage from before the introduction of
- * the MediaWiki\Logger namespace.
- *
- * @deprecated since 1.25 Use \MediaWiki\Logger\Monolog\WikiProcessor
- * @todo This class should be removed before the 1.25 final release.
- */
-class MWLoggerMonologProcessor extends \MediaWiki\Logger\Monolog\WikiProcessor {
-}
-
-/**
- * Backwards compatibility stub for usage from before the introduction of
- * the MediaWiki\Logger namespace.
- *
- * @deprecated since 1.25 Use \MediaWiki\Logger\MonologSpi
- * @todo This class should be removed before the 1.25 final release.
- */
-class MWLoggerMonologSpi extends \MediaWiki\Logger\MonologSpi {
-}
-
-/**
- * Backwards compatibility stub for usage from before the introduction of
- * the MediaWiki\Logger namespace.
- *
- * @deprecated since 1.25 Use \MediaWiki\Logger\Monolog\SyslogHandler
- * @todo This class should be removed before the 1.25 final release.
- */
-class MWLoggerMonologSyslogHandler extends \MediaWiki\Logger\Monolog\SyslogHandler {
-}
index 42816dd..b7e5b0a 100644 (file)
@@ -34,13 +34,18 @@ interface DeferrableUpdate {
 }
 
 /**
- * Class for managing the deferred updates.
+ * Class for managing the deferred updates
+ *
+ * Deferred updates can be run at the end of the request,
+ * after the HTTP response has been sent. In CLI mode, updates
+ * are only deferred until there is no local master DB transaction.
+ * When updates are deferred, they go into a simple FIFO queue.
  *
  * @since 1.19
  */
 class DeferredUpdates {
        /**
-        * Store of updates to be deferred until the end of the request.
+        * @var array Updates to be deferred until the end of the request.
         */
        private static $updates = array();
 
@@ -49,7 +54,28 @@ class DeferredUpdates {
         * @param DeferrableUpdate $update Some object that implements doUpdate()
         */
        public static function addUpdate( DeferrableUpdate $update ) {
+               global $wgCommandLineMode;
+
                array_push( self::$updates, $update );
+
+               // CLI scripts may forget to periodically flush these updates,
+               // so try to handle that rather than OOMing and losing them.
+               // Try to run the updates as soon as there is no local transaction.
+               static $waitingOnTrx = false; // de-duplicate callback
+               if ( $wgCommandLineMode && !$waitingOnTrx ) {
+                       $lb = wfGetLB();
+                       $dbw = $lb->getAnyOpenConnection( $lb->getWriterIndex() );
+                       // Do the update as soon as there is no transaction
+                       if ( $dbw && $dbw->trxLevel() ) {
+                               $waitingOnTrx = true;
+                               $dbw->onTransactionIdle( function() use ( &$waitingOnTrx ) {
+                                       DeferredUpdates::doUpdates();
+                                       $waitingOnTrx = false;
+                               } );
+                       } else {
+                               self::doUpdates();
+                       }
+               }
        }
 
        /**
@@ -84,19 +110,7 @@ class DeferredUpdates {
 
                $updates = array_merge( $wgDeferredUpdateList, self::$updates );
 
-               // No need to get master connections in case of empty updates array
-               if ( !count( $updates ) ) {
-
-                       return;
-               }
-
-               $dbw = false;
-               $doCommit = $commit == 'commit';
-               if ( $doCommit ) {
-                       $dbw = wfGetDB( DB_MASTER );
-               }
-
-               while ( $updates ) {
+               while ( count( $updates ) ) {
                        self::clearPendingUpdates();
 
                        /** @var DeferrableUpdate $update */
@@ -104,8 +118,8 @@ class DeferredUpdates {
                                try {
                                        $update->doUpdate();
 
-                                       if ( $doCommit && $dbw->trxLevel() ) {
-                                               $dbw->commit( __METHOD__, 'flush' );
+                                       if ( $commit === 'commit' ) {
+                                               wfGetLBFactory()->commitMasterChanges();
                                        }
                                } catch ( Exception $e ) {
                                        // We don't want exceptions thrown during deferred updates to
@@ -116,9 +130,9 @@ class DeferredUpdates {
                                        }
                                }
                        }
+
                        $updates = array_merge( $wgDeferredUpdateList, self::$updates );
                }
-
        }
 
        /**
index 79a10e6..a480aec 100644 (file)
@@ -55,8 +55,7 @@ class HTMLCacheUpdate implements DeferrableUpdate {
 
                $count = $this->mTitle->getBacklinkCache()->getNumLinks( $this->mTable, 100 );
                if ( $count >= 100 ) { // many backlinks
-                       JobQueueGroup::singleton()->push( $job );
-                       JobQueueGroup::singleton()->deduplicateRootJob( $job );
+                       JobQueueGroup::singleton()->lazyPush( $job );
                } else { // few backlinks ($count might be off even if 0)
                        $dbw = wfGetDB( DB_MASTER );
                        $dbw->onTransactionIdle( function () use ( $job ) {
index e4f00e7..eeadd16 100644 (file)
@@ -267,7 +267,6 @@ class LinksUpdate extends SqlDataUpdate {
                        );
 
                        JobQueueGroup::singleton()->push( $job );
-                       JobQueueGroup::singleton()->deduplicateRootJob( $job );
                }
        }
 
index 3c77238..ae75a75 100644 (file)
@@ -65,6 +65,8 @@ class SiteStatsUpdate implements DeferrableUpdate {
        public function doUpdate() {
                global $wgSiteStatsAsyncFactor;
 
+               $this->doUpdateContextStats();
+
                $rate = $wgSiteStatsAsyncFactor; // convenience
                // If set to do so, only do actual DB updates 1 every $rate times.
                // The other times, just update "pending delta" values in memcached.
@@ -153,6 +155,16 @@ class SiteStatsUpdate implements DeferrableUpdate {
                return $activeUsers;
        }
 
+       protected function doUpdateContextStats() {
+               $stats = RequestContext::getMain()->getStats();
+               foreach ( array( 'edits', 'articles', 'pages', 'users', 'images' ) as $type ) {
+                       $delta = $this->$type;
+                       if ( $delta !== 0 ) {
+                               $stats->updateCount( "site.$type", $delta );
+                       }
+               }
+       }
+
        protected function doUpdatePendingDeltas() {
                $this->adjustPending( 'ss_total_edits', $this->edits );
                $this->adjustPending( 'ss_good_articles', $this->articles );
index 2c63dfb..07a0522 100644 (file)
@@ -714,7 +714,7 @@ class DifferenceEngine extends ContextSource {
                        if ( !$this->mRefreshCache ) {
                                $difftext = $wgMemc->get( $key );
                                if ( $difftext ) {
-                                       wfIncrStats( 'diff_cache_hit' );
+                                       wfIncrStats( 'diff_cache.hit' );
                                        $difftext = $this->localiseLineNumbers( $difftext );
                                        $difftext .= "\n<!-- diff cache key $key -->\n";
 
@@ -734,12 +734,12 @@ class DifferenceEngine extends ContextSource {
 
                // Save to cache for 7 days
                if ( !Hooks::run( 'AbortDiffCache', array( &$this ) ) ) {
-                       wfIncrStats( 'diff_uncacheable' );
+                       wfIncrStats( 'diff_cache.uncacheable' );
                } elseif ( $key !== false && $difftext !== false ) {
-                       wfIncrStats( 'diff_cache_miss' );
+                       wfIncrStats( 'diff_cache.miss' );
                        $wgMemc->set( $key, $difftext, 7 * 86400 );
                } else {
-                       wfIncrStats( 'diff_uncacheable' );
+                       wfIncrStats( 'diff_cache.uncacheable' );
                }
                // Replace line numbers with the text in the user's language
                if ( $difftext !== false ) {
index 32a7605..5f3ad3d 100644 (file)
@@ -36,6 +36,16 @@ class UnifiedDiffFormatter extends DiffFormatter {
        /** @var int */
        protected $trailingContextLines = 2;
 
+       /**
+        * @param string[] $lines
+        * @param string $prefix
+        */
+       protected function lines( $lines, $prefix = ' ' ) {
+               foreach ( $lines as $line ) {
+                       echo "{$prefix}{$line}\n";
+               }
+       }
+
        /**
         * @param string[] $lines
         */
index 4710022..039b9c6 100644 (file)
@@ -39,10 +39,6 @@ class BadTitleError extends ErrorPageError {
                                parent::__construct( 'badtitle', 'badtitletext', array() );
                        } else {
                                $errorMessageParams = $msg->getErrorMessageParameters();
-                               $titleText = $msg->getTitleText();
-                               if ( $titleText ) {
-                                       $errorMessageParams[] = $titleText;
-                               }
                                parent::__construct( 'badtitle', $errorMessage, $errorMessageParams );
                        }
                } else {
index b81c573..b910ec6 100644 (file)
@@ -35,7 +35,7 @@ class HttpError extends MWException {
         *
         * @param int $httpCode HTTP status code to send to the client
         * @param string|Message $content Content of the message
-        * @param string|Message $header Content of the header (\<title\> and \<h1\>)
+        * @param string|Message|null $header Content of the header (\<title\> and \<h1\>)
         */
        public function __construct( $httpCode, $content, $header = null ) {
                parent::__construct( $content );
@@ -74,9 +74,7 @@ class HttpError extends MWException {
        public function report() {
                $this->doLog();
 
-               $httpMessage = HttpStatus::getMessage( $this->httpCode );
-
-               header( "Status: {$this->httpCode} {$httpMessage}", true, $this->httpCode );
+               HttpStatus::header( $this->httpCode );
                header( 'Content-type: text/html; charset=utf-8' );
 
                print $this->getHTML();
@@ -113,21 +111,21 @@ class HttpError extends MWException {
         */
        public function getHTML() {
                if ( $this->header === null ) {
-                       $header = HttpStatus::getMessage( $this->httpCode );
+                       $titleHtml = htmlspecialchars( HttpStatus::getMessage( $this->httpCode ) );
                } elseif ( $this->header instanceof Message ) {
-                       $header = $this->header->escaped();
+                       $titleHtml = $this->header->escaped();
                } else {
-                       $header = htmlspecialchars( $this->header );
+                       $titleHtml = htmlspecialchars( $this->header );
                }
 
                if ( $this->content instanceof Message ) {
-                       $content = $this->content->escaped();
+                       $contentHtml = $this->content->escaped();
                } else {
-                       $content = htmlspecialchars( $this->content );
+                       $contentHtml = htmlspecialchars( $this->content );
                }
 
                return "<!DOCTYPE html>\n" .
-               "<html><head><title>$header</title></head>\n" .
-               "<body><h1>$header</h1><p>$content</p></body></html>\n";
+               "<html><head><title>$titleHtml</title></head>\n" .
+               "<body><h1>$titleHtml</h1><p>$contentHtml</p></body></html>\n";
        }
 }
index 478fead..c0186f9 100644 (file)
@@ -238,8 +238,7 @@ class MWException extends Exception {
                } elseif ( self::isCommandLine() ) {
                        MWExceptionHandler::printError( $this->getText() );
                } else {
-                       self::header( 'HTTP/1.1 500 MediaWiki exception' );
-                       self::header( 'Status: 500 MediaWiki exception' );
+                       self::statusHeader( 500 );
                        self::header( "Content-Type: $wgMimeType; charset=utf-8" );
 
                        $this->reportHTML();
@@ -266,4 +265,9 @@ class MWException extends Exception {
                        header( $header );
                }
        }
+       private static function statusHeader( $code ) {
+               if ( !headers_sent() ) {
+                       HttpStatus::header( $code );
+               }
+       }
 }
index c50b6c8..1681dc0 100644 (file)
@@ -486,6 +486,8 @@ TXT;
                        if ( $json !== false ) {
                                wfDebugLog( 'exception-json', $json, 'private' );
                        }
+
+                       Hooks::run( 'LogException', array( $e, false ) );
                }
        }
 
@@ -500,8 +502,9 @@ TXT;
                global $wgLogExceptionBacktrace;
 
                // The set_error_handler callback is independent from error_reporting.
-               // Filter out unwanted errors manually (e.g. when wfSuppressWarnings is active).
-               if ( ( error_reporting() & $e->getSeverity() ) !== 0 ) {
+               // Filter out unwanted errors manually (e.g. when MediaWiki\suppressWarnings is active).
+               $suppressed = ( error_reporting() & $e->getSeverity() ) === 0;
+               if ( !$suppressed ) {
                        $log = self::getLogMessage( $e );
                        if ( $wgLogExceptionBacktrace ) {
                                wfDebugLog( $channel, $log . "\n" . $e->getTraceAsString() );
@@ -515,5 +518,7 @@ TXT;
                if ( $json !== false ) {
                        wfDebugLog( "$channel-json", $json, 'private' );
                }
+
+               Hooks::run( 'LogException', array( $e, $suppressed ) );
        }
 }
index 6ee9b2e..a75f328 100644 (file)
@@ -75,9 +75,9 @@ class FSFile {
         * @return string|bool TS_MW timestamp or false on failure
         */
        public function getTimestamp() {
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $timestamp = filemtime( $this->path );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( $timestamp !== false ) {
                        $timestamp = wfTimestamp( TS_MW, $timestamp );
                }
@@ -204,9 +204,9 @@ class FSFile {
                        return $this->sha1Base36;
                }
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $this->sha1Base36 = sha1_file( $this->path );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( $this->sha1Base36 !== false ) {
                        $this->sha1Base36 = wfBaseConvert( $this->sha1Base36, 16, 36, 31 );
index 1b88db7..9bb1582 100644 (file)
@@ -160,6 +160,8 @@ class FileBackendGroup {
                        $config['fileJournal'] = isset( $config['fileJournal'] )
                                ? FileJournal::factory( $config['fileJournal'], $name )
                                : FileJournal::factory( array( 'class' => 'NullFileJournal' ), $name );
+                       $config['wanCache'] = ObjectCache::getMainWANInstance();
+
                        $this->backends[$name]['instance'] = new $class( $config );
                }
 
index 25e87d4..7d2d831 100644 (file)
@@ -36,7 +36,7 @@
  * @since 1.19
  */
 abstract class FileBackendStore extends FileBackend {
-       /** @var BagOStuff */
+       /** @var WANObjectCache */
        protected $memCache;
        /** @var ProcessCacheLRU Map of paths to small (RAM/disk) cache items */
        protected $cheapCache;
@@ -58,6 +58,7 @@ abstract class FileBackendStore extends FileBackend {
        /**
         * @see FileBackend::__construct()
         * Additional $config params include:
+        *   - wanCache     : WANOBjectCache object to use for persistent caching.
         *   - mimeCallback : Callback that takes (storage path, content, file system path) and
         *                    returns the MIME type of the file or 'unknown/unknown'. The file
         *                    system path parameter should be used if the content one is null.
@@ -72,7 +73,7 @@ abstract class FileBackendStore extends FileBackend {
                                // @todo handle the case of extension-less files using the contents
                                return StreamFile::contentTypeFromPath( $storagePath ) ?: 'unknown/unknown';
                        };
-               $this->memCache = new EmptyBagOStuff(); // disabled by default
+               $this->memCache = WANObjectCache::newEmpty(); // disabled by default
                $this->cheapCache = new ProcessCacheLRU( self::CACHE_CHEAP_SIZE );
                $this->expensiveCache = new ProcessCacheLRU( self::CACHE_EXPENSIVE_SIZE );
        }
@@ -376,9 +377,9 @@ abstract class FileBackendStore extends FileBackend {
                unset( $params['latest'] ); // sanity
 
                // Check that the specified temp file is valid...
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $ok = ( is_file( $tmpPath ) && filesize( $tmpPath ) == 0 );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( !$ok ) { // not present or not empty
                        $status->fatal( 'backend-fail-opentemp', $tmpPath );
 
@@ -693,9 +694,9 @@ abstract class FileBackendStore extends FileBackend {
        protected function doGetFileContentsMulti( array $params ) {
                $contents = array();
                foreach ( $this->doGetLocalReferenceMulti( $params ) as $path => $fsFile ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $contents[$path] = $fsFile ? file_get_contents( $fsFile->getPath() ) : false;
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                }
 
                return $contents;
@@ -1592,7 +1593,7 @@ abstract class FileBackendStore extends FileBackend {
         * @param array $val Information to cache
         */
        final protected function setContainerCache( $container, array $val ) {
-               $this->memCache->add( $this->containerCacheKey( $container ), $val, 14 * 86400 );
+               $this->memCache->set( $this->containerCacheKey( $container ), $val, 14 * 86400 );
        }
 
        /**
@@ -1602,7 +1603,7 @@ abstract class FileBackendStore extends FileBackend {
         * @param string $container Resolved container name
         */
        final protected function deleteContainerCache( $container ) {
-               if ( !$this->memCache->set( $this->containerCacheKey( $container ), 'PURGED', 300 ) ) {
+               if ( !$this->memCache->delete( $this->containerCacheKey( $container ), 300 ) ) {
                        trigger_error( "Unable to delete stat cache for container $container." );
                }
        }
@@ -1682,21 +1683,8 @@ abstract class FileBackendStore extends FileBackend {
                $age = time() - wfTimestamp( TS_UNIX, $val['mtime'] );
                $ttl = min( 7 * 86400, max( 300, floor( .1 * $age ) ) );
                $key = $this->fileCacheKey( $path );
-               // Set the cache unless it is currently salted with the value "PURGED".
-               // Using add() handles this except it also is a no-op in that case where
-               // the current value is not "latest" but $val is, so use CAS in that case.
-               if ( !$this->memCache->add( $key, $val, $ttl ) && !empty( $val['latest'] ) ) {
-                       $this->memCache->merge(
-                               $key,
-                               function ( BagOStuff $cache, $key, $cValue ) use ( $val ) {
-                                       return ( is_array( $cValue ) && empty( $cValue['latest'] ) )
-                                               ? $val // update the stat cache with the lastest info
-                                               : false; // do nothing (cache is salted or some error happened)
-                               },
-                               $ttl,
-                               1
-                       );
-               }
+               // Set the cache unless it is currently salted.
+               $this->memCache->set( $key, $val, $ttl );
        }
 
        /**
@@ -1712,7 +1700,7 @@ abstract class FileBackendStore extends FileBackend {
                if ( $path === null ) {
                        return; // invalid storage path
                }
-               if ( !$this->memCache->set( $this->fileCacheKey( $path ), 'PURGED', 300 ) ) {
+               if ( !$this->memCache->delete( $this->fileCacheKey( $path ), 300 ) ) {
                        trigger_error( "Unable to delete stat cache for file $path." );
                }
        }
index 66d8794..5d4e8e1 100644 (file)
@@ -577,9 +577,9 @@ class StoreFileOp extends FileOp {
        }
 
        protected function getSourceSha1Base36() {
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $hash = sha1_file( $this->params['src'] );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( $hash !== false ) {
                        $hash = wfBaseConvert( $hash, 16, 36, 31 );
                }
index 7c2f825..ba2cf23 100644 (file)
@@ -67,9 +67,9 @@ class MemoryFileBackend extends FileBackendStore {
                        return $status;
                }
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $data = file_get_contents( $params['src'] );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( $data === false ) { // source doesn't exist?
                        $status->fatal( 'backend-fail-store', $params['src'], $params['dst'] );
 
index 5f406c9..9bae2ae 100644 (file)
@@ -128,7 +128,9 @@ class SwiftFileBackend extends FileBackendStore {
                // HTTP helper client
                $this->http = new MultiHttpClient( array() );
                // Cache container information to mask latency
-               $this->memCache = wfGetMainCache();
+               if ( isset( $config['wanCache'] ) && $config['wanCache'] instanceof WANObjectCache ) {
+                       $this->memCache = $config['wanCache'];
+               }
                // Process cache for container info
                $this->containerStatCache = new ProcessCacheLRU( 300 );
                // Cache auth token information to avoid RTTs
@@ -235,16 +237,16 @@ class SwiftFileBackend extends FileBackendStore {
                        'body' => $params['content']
                ) );
 
-               $be = $this;
+               $that = $this;
                $method = __METHOD__;
-               $handler = function ( array $request, Status $status ) use ( $be, $method, $params ) {
+               $handler = function ( array $request, Status $status ) use ( $that, $method, $params ) {
                        list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $request['response'];
                        if ( $rcode === 201 ) {
                                // good
                        } elseif ( $rcode === 412 ) {
                                $status->fatal( 'backend-fail-contenttype', $params['dst'] );
                        } else {
-                               $be->onError( $status, $method, $params, $rerr, $rcode, $rdesc );
+                               $that->onError( $status, $method, $params, $rerr, $rcode, $rdesc );
                        }
                };
 
@@ -268,9 +270,9 @@ class SwiftFileBackend extends FileBackendStore {
                        return $status;
                }
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $sha1Hash = sha1_file( $params['src'] );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( $sha1Hash === false ) { // source doesn't exist?
                        $status->fatal( 'backend-fail-store', $params['src'], $params['dst'] );
 
@@ -298,16 +300,16 @@ class SwiftFileBackend extends FileBackendStore {
                        'body' => $handle // resource
                ) );
 
-               $be = $this;
+               $that = $this;
                $method = __METHOD__;
-               $handler = function ( array $request, Status $status ) use ( $be, $method, $params ) {
+               $handler = function ( array $request, Status $status ) use ( $that, $method, $params ) {
                        list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $request['response'];
                        if ( $rcode === 201 ) {
                                // good
                        } elseif ( $rcode === 412 ) {
                                $status->fatal( 'backend-fail-contenttype', $params['dst'] );
                        } else {
-                               $be->onError( $status, $method, $params, $rerr, $rcode, $rdesc );
+                               $that->onError( $status, $method, $params, $rerr, $rcode, $rdesc );
                        }
                };
 
@@ -347,16 +349,16 @@ class SwiftFileBackend extends FileBackendStore {
                        ) + $this->sanitizeHdrs( $params ), // extra headers merged into object
                ) );
 
-               $be = $this;
+               $that = $this;
                $method = __METHOD__;
-               $handler = function ( array $request, Status $status ) use ( $be, $method, $params ) {
+               $handler = function ( array $request, Status $status ) use ( $that, $method, $params ) {
                        list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $request['response'];
                        if ( $rcode === 201 ) {
                                // good
                        } elseif ( $rcode === 404 ) {
                                $status->fatal( 'backend-fail-copy', $params['src'], $params['dst'] );
                        } else {
-                               $be->onError( $status, $method, $params, $rerr, $rcode, $rdesc );
+                               $that->onError( $status, $method, $params, $rerr, $rcode, $rdesc );
                        }
                };
 
@@ -405,9 +407,9 @@ class SwiftFileBackend extends FileBackendStore {
                        );
                }
 
-               $be = $this;
+               $that = $this;
                $method = __METHOD__;
-               $handler = function ( array $request, Status $status ) use ( $be, $method, $params ) {
+               $handler = function ( array $request, Status $status ) use ( $that, $method, $params ) {
                        list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $request['response'];
                        if ( $request['method'] === 'PUT' && $rcode === 201 ) {
                                // good
@@ -416,7 +418,7 @@ class SwiftFileBackend extends FileBackendStore {
                        } elseif ( $rcode === 404 ) {
                                $status->fatal( 'backend-fail-move', $params['src'], $params['dst'] );
                        } else {
-                               $be->onError( $status, $method, $params, $rerr, $rcode, $rdesc );
+                               $that->onError( $status, $method, $params, $rerr, $rcode, $rdesc );
                        }
                };
 
@@ -446,9 +448,9 @@ class SwiftFileBackend extends FileBackendStore {
                        'headers' => array()
                ) );
 
-               $be = $this;
+               $that = $this;
                $method = __METHOD__;
-               $handler = function ( array $request, Status $status ) use ( $be, $method, $params ) {
+               $handler = function ( array $request, Status $status ) use ( $that, $method, $params ) {
                        list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $request['response'];
                        if ( $rcode === 204 ) {
                                // good
@@ -457,7 +459,7 @@ class SwiftFileBackend extends FileBackendStore {
                                        $status->fatal( 'backend-fail-delete', $params['src'] );
                                }
                        } else {
-                               $be->onError( $status, $method, $params, $rerr, $rcode, $rdesc );
+                               $that->onError( $status, $method, $params, $rerr, $rcode, $rdesc );
                        }
                };
 
@@ -505,16 +507,16 @@ class SwiftFileBackend extends FileBackendStore {
                        'headers' => $metaHdrs + $customHdrs
                ) );
 
-               $be = $this;
+               $that = $this;
                $method = __METHOD__;
-               $handler = function ( array $request, Status $status ) use ( $be, $method, $params ) {
+               $handler = function ( array $request, Status $status ) use ( $that, $method, $params ) {
                        list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $request['response'];
                        if ( $rcode === 202 ) {
                                // good
                        } elseif ( $rcode === 404 ) {
                                $status->fatal( 'backend-fail-describe', $params['src'] );
                        } else {
-                               $be->onError( $status, $method, $params, $rerr, $rcode, $rdesc );
+                               $that->onError( $status, $method, $params, $rerr, $rcode, $rdesc );
                        }
                };
 
index 791be7f..312b65c 100644 (file)
@@ -59,9 +59,9 @@ class TempFSFile extends FSFile {
                $ext = ( $extension != '' ) ? ".{$extension}" : "";
                for ( $attempt = 1; true; $attempt++ ) {
                        $path = "{$base}-{$attempt}{$ext}";
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $newFileHandle = fopen( $path, 'x' );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        if ( $newFileHandle ) {
                                fclose( $newFileHandle );
                                break; // got it
@@ -84,9 +84,9 @@ class TempFSFile extends FSFile {
         */
        public function purge() {
                $this->canDelete = false; // done
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $ok = unlink( $this->path );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                unset( self::$pathsCollect[$this->path] );
 
@@ -96,7 +96,7 @@ class TempFSFile extends FSFile {
        /**
         * Clean up the temporary file only after an object goes out of scope
         *
-        * @param stdClass $object
+        * @param object $object
         * @return TempFSFile This object
         */
        public function bind( $object ) {
@@ -144,9 +144,9 @@ class TempFSFile extends FSFile {
         */
        public static function purgeAllOnShutdown() {
                foreach ( self::$pathsCollect as $path ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        unlink( $path );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                }
        }
 
index bce6b34..6f46f0e 100644 (file)
@@ -117,9 +117,9 @@ class FSLockManager extends LockManager {
                        if ( isset( $this->handles[$path] ) ) {
                                $handle = $this->handles[$path];
                        } else {
-                               wfSuppressWarnings();
+                               MediaWiki\suppressWarnings();
                                $handle = fopen( $this->getLockPath( $path ), 'a+' );
-                               wfRestoreWarnings();
+                               MediaWiki\restoreWarnings();
                                if ( !$handle ) { // lock dir missing?
                                        wfMkdirParents( $this->lockDir );
                                        $handle = fopen( $this->getLockPath( $path ), 'a+' ); // try again
index 5b42c2c..c0c6d9d 100644 (file)
@@ -907,9 +907,9 @@ class FileRepo {
                $status->merge( $backend->doOperations( $operations, $opts ) );
                // Cleanup for disk source files...
                foreach ( $sourceFSFilesToDelete as $file ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        unlink( $file ); // FS cleanup
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                }
 
                return $status;
@@ -1295,9 +1295,9 @@ class FileRepo {
                }
                // Cleanup for disk source files...
                foreach ( $sourceFSFilesToDelete as $file ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        unlink( $file ); // FS cleanup
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                }
 
                return $status;
index e7e4c75..ef402ea 100644 (file)
@@ -170,7 +170,7 @@ class LocalRepo extends FileRepo {
         * @return bool|Title
         */
        function checkRedirect( Title $title ) {
-               global $wgMemc;
+               $cache = ObjectCache::getMainWANInstance();
 
                $title = File::normalizeTitle( $title, 'exception' );
 
@@ -181,7 +181,7 @@ class LocalRepo extends FileRepo {
                } else {
                        $expiry = 86400; // has invalidation, 1 day
                }
-               $cachedValue = $wgMemc->get( $memcKey );
+               $cachedValue = $cache->get( $memcKey );
                if ( $cachedValue === ' ' || $cachedValue === '' ) {
                        // Does not exist
                        return false;
@@ -191,7 +191,7 @@ class LocalRepo extends FileRepo {
 
                $id = $this->getArticleID( $title );
                if ( !$id ) {
-                       $wgMemc->add( $memcKey, " ", $expiry );
+                       $cache->set( $memcKey, " ", $expiry );
 
                        return false;
                }
@@ -205,11 +205,11 @@ class LocalRepo extends FileRepo {
 
                if ( $row && $row->rd_namespace == NS_FILE ) {
                        $targetTitle = Title::makeTitle( $row->rd_namespace, $row->rd_title );
-                       $wgMemc->add( $memcKey, $targetTitle->getDBkey(), $expiry );
+                       $cache->set( $memcKey, $targetTitle->getDBkey(), $expiry );
 
                        return $targetTitle;
                } else {
-                       $wgMemc->add( $memcKey, '', $expiry );
+                       $cache->set( $memcKey, '', $expiry );
 
                        return false;
                }
@@ -275,14 +275,14 @@ class LocalRepo extends FileRepo {
                        );
                };
 
-               $repo = $this;
+               $that = $this;
                $applyMatchingFiles = function ( ResultWrapper $res, &$searchSet, &$finalFiles )
-                       use ( $repo, $fileMatchesSearch, $flags )
+                       use ( $that, $fileMatchesSearch, $flags )
                {
                        global $wgContLang;
-                       $info = $repo->getInfo();
+                       $info = $that->getInfo();
                        foreach ( $res as $row ) {
-                               $file = $repo->newFileFromRow( $row );
+                               $file = $that->newFileFromRow( $row );
                                // There must have been a search for this DB key, but this has to handle the
                                // cases were title capitalization is different on the client and repo wikis.
                                $dbKeysLook = array( str_replace( ' ', '_', $file->getName() ) );
@@ -489,14 +489,15 @@ class LocalRepo extends FileRepo {
         * @return void
         */
        function invalidateImageRedirect( Title $title ) {
-               global $wgMemc;
+               $cache = ObjectCache::getMainWANInstance();
+
                $memcKey = $this->getSharedCacheKey( 'image_redirect', md5( $title->getDBkey() ) );
                if ( $memcKey ) {
                        // Set a temporary value for the cache key, to ensure
                        // that this value stays purged long enough so that
                        // it isn't refreshed with a stale value due to a
                        // lagged slave.
-                       $wgMemc->set( $memcKey, ' PURGED', 12 );
+                       $cache->delete( $memcKey, 12 );
                }
        }
 
index 6edd6fc..76ed27b 100644 (file)
@@ -163,7 +163,8 @@ abstract class File implements IDBAccessObject {
         * @param FileRepo|bool $repo
         */
        function __construct( $title, $repo ) {
-               if ( $title !== false ) { // subclasses may not use MW titles
+               // Some subclasses do not use $title, but set name/title some other way
+               if ( $title !== false ) {
                        $title = self::normalizeTitle( $title, 'exception' );
                }
                $this->title = $title;
@@ -2230,4 +2231,13 @@ abstract class File implements IDBAccessObject {
                $handler = $this->getHandler();
                return $handler ? $handler->isExpensiveToThumbnail( $this ) : false;
        }
+
+       /**
+        * Whether the thumbnails created on the same server as this code is running.
+        * @since 1.25
+        * @return bool
+        */
+       public function isTransformedLocally() {
+               return true;
+       }
 }
index e51f381..3c78290 100644 (file)
@@ -369,4 +369,13 @@ class ForeignAPIFile extends File {
                # Clear out the thumbnail directory if empty
                $this->repo->quickCleanDir( $dir );
        }
+
+       /**
+        * The thumbnail is created on the foreign server and fetched over internet
+        * @since 1.25
+        * @return bool
+        */
+       public function isTransformedLocally() {
+               return false;
+       }
 }
index ba437f0..6abe00c 100644 (file)
@@ -243,21 +243,19 @@ class LocalFile extends File {
         * @return bool
         */
        function loadFromCache() {
-               global $wgMemc;
-
                $this->dataLoaded = false;
                $this->extraDataLoaded = false;
                $key = $this->getCacheKey();
 
                if ( !$key ) {
-
                        return false;
                }
 
-               $cachedValues = $wgMemc->get( $key );
+               $cache = ObjectCache::getMainWANInstance();
+               $cachedValues = $cache->get( $key );
 
                // Check if the key existed and belongs to this version of MediaWiki
-               if ( isset( $cachedValues['version'] ) && $cachedValues['version'] == MW_FILE_VERSION ) {
+               if ( is_array( $cachedValues ) && $cachedValues['version'] == MW_FILE_VERSION ) {
                        wfDebug( "Pulling file metadata from cache key $key\n" );
                        $this->fileExists = $cachedValues['fileExists'];
                        if ( $this->fileExists ) {
@@ -271,9 +269,9 @@ class LocalFile extends File {
                }
 
                if ( $this->dataLoaded ) {
-                       wfIncrStats( 'image_cache_hit' );
+                       wfIncrStats( 'image_cache.hit' );
                } else {
-                       wfIncrStats( 'image_cache_miss' );
+                       wfIncrStats( 'image_cache.miss' );
                }
 
                return $this->dataLoaded;
@@ -283,22 +281,20 @@ class LocalFile extends File {
         * Save the file metadata to memcached
         */
        function saveToCache() {
-               global $wgMemc;
-
                $this->load();
-               $key = $this->getCacheKey();
 
+               $key = $this->getCacheKey();
                if ( !$key ) {
                        return;
                }
 
                $fields = $this->getCacheFields( '' );
-               $cache = array( 'version' => MW_FILE_VERSION );
-               $cache['fileExists'] = $this->fileExists;
+               $cacheVal = array( 'version' => MW_FILE_VERSION );
+               $cacheVal['fileExists'] = $this->fileExists;
 
                if ( $this->fileExists ) {
                        foreach ( $fields as $field ) {
-                               $cache[$field] = $this->$field;
+                               $cacheVal[$field] = $this->$field;
                        }
                }
 
@@ -306,13 +302,26 @@ class LocalFile extends File {
                // If the cache value gets to large it will not fit in memcached and nothing will
                // get cached at all, causing master queries for any file access.
                foreach ( $this->getLazyCacheFields( '' ) as $field ) {
-                       if ( isset( $cache[$field] ) && strlen( $cache[$field] ) > 100 * 1024 ) {
-                               unset( $cache[$field] ); // don't let the value get too big
+                       if ( isset( $cacheVal[$field] ) && strlen( $cacheVal[$field] ) > 100 * 1024 ) {
+                               unset( $cacheVal[$field] ); // don't let the value get too big
                        }
                }
 
                // Cache presence for 1 week and negatives for 1 day
-               $wgMemc->set( $key, $cache, $this->fileExists ? 86400 * 7 : 86400 );
+               $cache = ObjectCache::getMainWANInstance();
+               $cache->set( $key, $cacheVal, $this->fileExists ? 86400 * 7 : 86400 );
+       }
+
+       /**
+        * Purge the file object/metadata cache
+        */
+       function invalidateCache() {
+               $key = $this->getCacheKey();
+               if ( !$key ) {
+                       return;
+               }
+
+               ObjectCache::getMainWANInstance()->delete( $key );
        }
 
        /**
@@ -612,7 +621,7 @@ class LocalFile extends File {
                        __METHOD__
                );
 
-               $this->saveToCache();
+               $this->invalidateCache();
 
                $this->unlock(); // done
 
@@ -842,8 +851,7 @@ class LocalFile extends File {
         * Refresh metadata in memcached, but don't touch thumbnails or squid
         */
        function purgeMetadataCache() {
-               $this->loadFromDB( File::READ_LATEST );
-               $this->saveToCache();
+               $this->invalidateCache();
        }
 
        /**
@@ -1389,11 +1397,8 @@ class LocalFile extends File {
                #       to after $wikiPage->doEdit has been called.
                $dbw->commit( __METHOD__ );
 
-               # Save to memcache.
-               # We shall not saveToCache before the commit since otherwise
-               # in case of a rollback there is an usable file from memcached
-               # which in fact doesn't really exist (bug 24978)
-               $this->saveToCache();
+               # Update memcache after the commit
+               $this->invalidateCache();
 
                if ( $exists ) {
                        # Invalidate the cache for the description page
@@ -1595,21 +1600,21 @@ class LocalFile extends File {
 
                // Hack: the lock()/unlock() pair is nested in a transaction so the locking is not
                // tied to BEGIN/COMMIT. To avoid slow purges in the transaction, move them outside.
-               $file = $this;
+               $that = $this;
                $this->getRepo()->getMasterDB()->onTransactionIdle(
-                       function () use ( $file, $archiveNames ) {
+                       function () use ( $that, $archiveNames ) {
                                global $wgUseSquid;
 
-                               $file->purgeEverything();
+                               $that->purgeEverything();
                                foreach ( $archiveNames as $archiveName ) {
-                                       $file->purgeOldThumbnails( $archiveName );
+                                       $that->purgeOldThumbnails( $archiveName );
                                }
 
                                if ( $wgUseSquid ) {
                                        // Purge the squid
                                        $purgeUrls = array();
                                        foreach ( $archiveNames as $archiveName ) {
-                                               $purgeUrls[] = $file->getArchiveUrl( $archiveName );
+                                               $purgeUrls[] = $that->getArchiveUrl( $archiveName );
                                        }
                                        SquidUpdate::purge( $purgeUrls );
                                }
@@ -1793,7 +1798,7 @@ class LocalFile extends File {
                                        array( 'img_sha1' => $this->sha1 ),
                                        array( 'img_name' => $this->getName() ),
                                        __METHOD__ );
-                               $this->saveToCache();
+                               $this->invalidateCache();
                        }
 
                        $this->unlock(); // done
index 4905362..55cd5d0 100644 (file)
@@ -98,11 +98,12 @@ class HTMLAutoCompleteSelectField extends HTMLTextField {
                return true;
        }
 
-       function getAttributes( array $list ) {
+       // FIXME Ewww, this shouldn't be adding any attributes not requested in $list :(
+       public function getAttributes( array $list, array $mappings = null ) {
                $attribs = array(
                        'type' => 'text',
                        'data-autocomplete' => FormatJson::encode( array_keys( $this->autocomplete ) ),
-               ) + parent::getAttributes( $list );
+               ) + parent::getAttributes( $list, $mappings );
 
                if ( $this->getOptions() ) {
                        $attribs['data-hide-if'] = FormatJson::encode(
@@ -162,4 +163,13 @@ class HTMLAutoCompleteSelectField extends HTMLTextField {
                return $ret;
        }
 
+       /**
+        * Get the OOUI version of this input.
+        * @param string $value
+        * @return false
+        */
+       function getInputOOUI( $value ) {
+               // To be implemented, for now override the function from HTMLTextField
+               return false;
+       }
 }
index 09c0ad9..9f30ee3 100644 (file)
@@ -24,6 +24,21 @@ class HTMLButtonField extends HTMLFormField {
                return Html::input( $this->mName, $value, $this->buttonType, $attr );
        }
 
+       /**
+        * Get the OOUI widget for this field.
+        * @param string $value
+        * @return OOUI\ButtonInputWidget
+        */
+       public function getInputOOUI( $value ) {
+               return new OOUI\ButtonInputWidget( array(
+                       'name' => $this->mName,
+                       'value' => $value,
+                       'type' => $this->buttonType,
+                       'classes' => array( 'mw-htmlform-submit', $this->mClass ),
+                       'id' => $this->mID,
+               ) + $this->getAttributes( array( 'disabled', 'tabindex' ), array( 'tabindex' => 'tabIndex' ) ) );
+       }
+
        protected function needsLabel() {
                return false;
        }
index 4942327..ede30dd 100644 (file)
@@ -35,13 +35,56 @@ class HTMLCheckField extends HTMLFormField {
                return $chkLabel;
        }
 
+       /**
+        * Get the OOUI version of this field.
+        * @since 1.26
+        * @param string $value
+        * @return OOUI\CheckboxInputWidget The checkbox widget.
+        */
+       public function getInputOOUI( $value ) {
+               if ( !empty( $this->mParams['invert'] ) ) {
+                       $value = !$value;
+               }
+
+               $attr = $this->getTooltipAndAccessKey();
+               $attr['id'] = $this->mID;
+               $attr['name'] = $this->mName;
+
+               $attr += $this->getAttributes( array( 'disabled', 'tabindex' ), array( 'tabindex' => 'tabIndex' ) );
+
+               if ( $this->mClass !== '' ) {
+                       $attr['classes'] = array( $this->mClass );
+               }
+
+               $attr['selected'] = $value;
+               $attr['value'] = '1'; // Nasty hack, but needed to make this work
+
+               return new OOUI\CheckboxInputWidget( $attr );
+       }
+
        /**
         * For a checkbox, the label goes on the right hand side, and is
         * added in getInputHTML(), rather than HTMLFormField::getRow()
+        *
+        * ...unless OOUI is being used, in which case we actually return
+        * the label here.
+        *
         * @return string
         */
        function getLabel() {
-               return '&#160;';
+               if ( $this->mParent instanceof OOUIHTMLForm ) {
+                       return $this->mLabel;
+               } else {
+                       return '&#160;';
+               }
+       }
+
+       /**
+        * Get label alignment when generating field for OOUI.
+        * @return string 'left', 'right', 'top' or 'inline'
+        */
+       protected function getLabelAlignOOUI() {
+               return 'inline';
        }
 
        /**
index 83f1266..7ccb60e 100644 (file)
@@ -85,7 +85,13 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
                $rows = $this->mParams['rows'];
                $columns = $this->mParams['columns'];
 
-               $attribs = $this->getAttributes( array( 'disabled', 'tabindex' ) );
+               $mappings = array();
+
+               if ( $this->mParent instanceof OOUIHTMLForm ) {
+                       $mappings['tabindex'] = 'tabIndex';
+               }
+
+               $attribs = $this->getAttributes( array( 'disabled', 'tabindex' ), $mappings );
 
                // Build the column headers
                $headerContents = Html::rawElement( 'td', array(), '&#160;' );
@@ -126,7 +132,8 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
                                        $checked = true;
                                        $thisAttribs['disabled'] = 1;
                                }
-                               $chkBox = Xml::check( "{$this->mName}[]", $checked, $attribs + $thisAttribs );
+                               $chkBox = $this->getOneCheckbox( $checked, $attribs + $thisAttribs );
+
                                if ( $this->mParent->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
                                        $chkBox = Html::openElement( 'div', array( 'class' => 'mw-ui-checkbox' ) ) .
                                                $chkBox .
@@ -150,6 +157,18 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
                return $html;
        }
 
+       protected function getOneCheckbox( $checked, $attribs ) {
+               if ( $this->mParent instanceof OOUIHTMLForm ) {
+                       return new OOUI\CheckboxInputWidget( array(
+                               'name' => "{$this->mName}[]",
+                               'selected' => $checked,
+                               'value' => '1',
+                       ) + $attribs );
+               }
+
+               return Xml::check( "{$this->mName}[]", $checked, $attribs );
+       }
+
        protected function isTagForcedOff( $tag ) {
                return isset( $this->mParams['force-options-off'] )
                        && in_array( $tag, $this->mParams['force-options-off'] );
index ce14003..cb4bba2 100644 (file)
@@ -51,6 +51,7 @@
  *    'id'                  -- HTML id attribute
  *    'cssclass'            -- CSS class
  *    'csshelpclass'        -- CSS class used to style help text
+ *    'dir'                 -- Direction of the element.
  *    'options'             -- associative array mapping labels to values.
  *                             Some field types support multi-level arrays.
  *    'options-messages'    -- associative array mapping message keys to values.
  *                             is "wp{$fieldname}".  If you want a different name
  *                             (eg one without the "wp" prefix), specify it here and
  *                             it will be used without modification.
+ *    'hide-if'             -- expression given as an array stating when the field
+ *                             should be hidden. The first array value has to be the
+ *                             expression's logic operator. Supported expressions:
+ *                               'NOT'
+ *                                 [ 'NOT', array $expression ]
+ *                                 To hide a field if a given expression is not true.
+ *                               '==='
+ *                                 [ '===', string $fieldName, string $value ]
+ *                                 To hide a field if another field identified by
+ *                                 $field has the value $value.
+ *                               '!=='
+ *                                 [ '!==', string $fieldName, string $value ]
+ *                                 Same as [ 'NOT', [ '===', $fieldName, $value ]
+ *                               'OR', 'AND', 'NOR', 'NAND'
+ *                                 [ 'XXX', array $expression1, ..., array $expressionN ]
+ *                                 To hide a field if one or more (OR), all (AND),
+ *                                 neither (NOR) or not all (NAND) given expressions
+ *                                 are evaluated as true.
+ *                             The expressions will be given to a JavaScript frontend
+ *                             module which will continually update the field's
+ *                             visibility.
  *
  * Since 1.20, you can chain mutators to ease the form generation:
  * @par Example:
@@ -216,12 +238,12 @@ class HTMLForm extends ContextSource {
         */
        protected $availableSubclassDisplayFormats = array(
                'vform',
+               'ooui',
        );
 
        /**
         * Construct a HTMLForm object for given display type. May return a HTMLForm subclass.
         *
-        * @throws MWException When the display format requested is not known
         * @param string $displayFormat
         * @param mixed $arguments... Additional arguments to pass to the constructor.
         * @return HTMLForm
@@ -234,6 +256,9 @@ class HTMLForm extends ContextSource {
                        case 'vform':
                                $reflector = new ReflectionClass( 'VFormHTMLForm' );
                                return $reflector->newInstanceArgs( $arguments );
+                       case 'ooui':
+                               $reflector = new ReflectionClass( 'OOUIHTMLForm' );
+                               return $reflector->newInstanceArgs( $arguments );
                        default:
                                $reflector = new ReflectionClass( 'HTMLForm' );
                                $form = $reflector->newInstanceArgs( $arguments );
@@ -266,7 +291,10 @@ class HTMLForm extends ContextSource {
                }
 
                // Evil hack for mobile :(
-               if ( !$this->getConfig()->get( 'HTMLFormAllowTableFormat' ) && $this->displayFormat === 'table' ) {
+               if (
+                       !$this->getConfig()->get( 'HTMLFormAllowTableFormat' )
+                       && $this->displayFormat === 'table'
+               ) {
                        $this->displayFormat = 'div';
                }
 
@@ -405,7 +433,9 @@ class HTMLForm extends ContextSource {
         * @throws MWException
         * @return HTMLFormField Instance of a subclass of HTMLFormField
         */
-       public static function loadInputFromParameters( $fieldname, $descriptor, HTMLForm $parent = null ) {
+       public static function loadInputFromParameters( $fieldname, $descriptor,
+               HTMLForm $parent = null
+       ) {
                $class = static::getClassFromDescriptor( $fieldname, $descriptor );
 
                $descriptor['fieldname'] = $fieldname;
@@ -1370,6 +1400,17 @@ class HTMLForm extends ContextSource {
                                                Html::rawElement( 'tbody', array(), "\n$html\n" ) ) . "\n";
                        } elseif ( $displayFormat === 'inline' ) {
                                $html = Html::rawElement( 'span', $attribs, "\n$html\n" );
+                       } elseif ( $displayFormat === 'ooui' ) {
+                               $config = array(
+                                       'classes' => $classes,
+                               );
+                               if ( $sectionName ) {
+                                       $config['id'] = Sanitizer::escapeId( $sectionName );
+                               }
+                               $fieldset = new OOUI\FieldsetLayout( $config );
+                               // Ewww. We should pass this as $config['items'], but there might be string snippets.
+                               $fieldset->group->appendContent( new OOUI\HtmlSnippet( $html ) );
+                               $html = $fieldset->toString();
                        } else {
                                $html = Html::rawElement( 'div', $attribs, "\n$html\n" );
                        }
index 9576c77..49478fb 100644 (file)
@@ -10,6 +10,7 @@ abstract class HTMLFormField {
        protected $mValidationCallback;
        protected $mFilterCallback;
        protected $mName;
+       protected $mDir;
        protected $mLabel; # String label.  Set on construction
        protected $mID;
        protected $mClass = '';
@@ -43,6 +44,17 @@ abstract class HTMLFormField {
         */
        abstract function getInputHTML( $value );
 
+       /**
+        * Same as getInputHTML, but returns an OOUI object.
+        * Defaults to false, which getOOUI will interpret as "use the HTML version"
+        *
+        * @param string $value
+        * @return OOUI\Widget|false
+        */
+       function getInputOOUI( $value ) {
+               return false;
+       }
+
        /**
         * Get a translated interface message
         *
@@ -377,6 +389,10 @@ abstract class HTMLFormField {
                        $this->mName = $params['name'];
                }
 
+               if ( isset( $params['dir'] ) ) {
+                       $this->mDir = $params['dir'];
+               }
+
                $validName = Sanitizer::escapeId( $this->mName );
                $validName = str_replace( array( '.5B', '.5D' ), array( '[', ']' ), $validName );
                if ( $this->mName != $validName && !isset( $params['nodata'] ) ) {
@@ -528,6 +544,54 @@ abstract class HTMLFormField {
                return $html;
        }
 
+       /**
+        * Get the OOUI version of the div. Falls back to getDiv by default.
+        * @since 1.26
+        *
+        * @param string $value The value to set the input to.
+        *
+        * @return string
+        */
+       public function getOOUI( $value ) {
+               list( $errors, $errorClass ) = $this->getErrorsAndErrorClass( $value );
+
+               $inputField = $this->getInputOOUI( $value );
+
+               if ( !$inputField ) {
+                       // This field doesn't have an OOUI implementation yet at all.
+                       // OK, use this trick:
+                       return $this->getDiv( $value );
+               }
+
+               $infusable = true;
+               if ( is_string( $inputField ) ) {
+                       // Mmm… We have an OOUI implementation, but it's not complete, and we got a load of HTML.
+                       // Cheat a little and wrap it in a widget! It won't be infusable, though, since client-side
+                       // JavaScript doesn't know how to rebuilt the contents.
+                       $inputField = new OOUI\Widget( array( 'content' => new OOUI\HtmlSnippet( $inputField ) ) );
+                       $infusable = false;
+               }
+
+               $fieldType = get_class( $this );
+               $field = new OOUI\FieldLayout( $inputField, array(
+                       'classes' => array( "mw-htmlform-field-$fieldType", $this->mClass, $errorClass ),
+                       'align' => $this->getLabelAlignOOUI(),
+                       'label' => $this->getLabel(),
+                       'help' => $this->getHelpText(),
+                       'infusable' => $infusable,
+               ) );
+
+               return $field . $errors;
+       }
+
+       /**
+        * Get label alignment when generating field for OOUI.
+        * @return string 'left', 'right', 'top' or 'inline'
+        */
+       protected function getLabelAlignOOUI() {
+               return 'top';
+       }
+
        /**
         * Get the complete raw fields for the input, including help text,
         * labels, and whatever.
@@ -708,6 +772,9 @@ abstract class HTMLFormField {
                return array( $errors, $errorClass );
        }
 
+       /**
+        * @return string
+        */
        function getLabel() {
                return is_null( $this->mLabel ) ? '' : $this->mLabel;
        }
@@ -770,24 +837,44 @@ abstract class HTMLFormField {
                return Linker::tooltipAndAccesskeyAttribs( $this->mParams['tooltip'] );
        }
 
+       /**
+        * Get a translated key if necessary.
+        * @param array|null $mappings Array of mappings, 'original' => 'translated'
+        * @param string $key
+        * @return string
+        */
+       protected function getMappedKey( $mappings, $key ) {
+               if ( !is_array( $mappings ) ) {
+                       return $key;
+               }
+
+               if ( !empty( $mappings[$key] ) ) {
+                       return $mappings[$key];
+               }
+
+               return $key;
+       }
+
        /**
         * Returns the given attributes from the parameters
         *
         * @param array $list List of attributes to get
+        * @param array $mappings Optional - Key/value map of attribute names to use instead of the ones passed in
         * @return array Attributes
         */
-       public function getAttributes( array $list ) {
+       public function getAttributes( array $list, array $mappings = null ) {
                static $boolAttribs = array( 'disabled', 'required', 'autofocus', 'multiple', 'readonly' );
 
                $ret = array();
-
                foreach ( $list as $key ) {
+                       $mappedKey = $this->getMappedKey( $mappings, $key );
+
                        if ( in_array( $key, $boolAttribs ) ) {
                                if ( !empty( $this->mParams[$key] ) ) {
-                                       $ret[$key] = '';
+                                       $ret[$mappedKey] = '';
                                }
                        } elseif ( isset( $this->mParams[$key] ) ) {
-                               $ret[$key] = $this->mParams[$key];
+                               $ret[$mappedKey] = $this->mParams[$key];
                        }
                }
 
@@ -876,6 +963,29 @@ abstract class HTMLFormField {
                return $this->mOptions;
        }
 
+       /**
+        * Get options and make them into arrays suitable for OOUI.
+        * @return array Options for inclusion in a select or whatever.
+        */
+       public function getOptionsOOUI() {
+               $oldoptions = $this->getOptions();
+
+               if ( $oldoptions === null ) {
+                       return null;
+               }
+
+               $options = array();
+
+               foreach ( $oldoptions as $text => $data ) {
+                       $options[] = array(
+                               'data' => $data,
+                               'label' => $text,
+                       );
+               }
+
+               return $options;
+       }
+
        /**
         * flatten an array of options to a single array, for instance,
         * a set of "<options>" inside "<optgroups>".
index a422047..a667653 100644 (file)
@@ -14,6 +14,16 @@ class HTMLInfoField extends HTMLFormField {
                return !empty( $this->mParams['raw'] ) ? $value : htmlspecialchars( $value );
        }
 
+       public function getInputOOUI( $value ) {
+               if ( !empty( $this->mParams['raw'] ) ) {
+                       $value = new OOUI\HtmlSnippet( $value );
+               }
+
+               return new OOUI\LabelWidget( array(
+                       'label' => $value,
+               ) );
+       }
+
        public function getTableRow( $value ) {
                if ( !empty( $this->mParams['rawrow'] ) ) {
                        return $value;
index a198037..6ba6966 100644 (file)
@@ -41,4 +41,26 @@ class HTMLSelectField extends HTMLFormField {
 
                return $select->getHTML();
        }
+
+       function getInputOOUI( $value ) {
+               $disabled = false;
+               $allowedParams = array( 'tabindex' );
+               $attribs = $this->getAttributes( $allowedParams, array( 'tabindex' => 'tabIndex' ) );
+
+               if ( $this->mClass !== '' ) {
+                       $attribs['classes'] = array( $this->mClass );
+               }
+
+               if ( !empty( $this->mParams['disabled'] ) ) {
+                       $disabled = true;
+               }
+
+               return new OOUI\DropdownInputWidget( array(
+                       'name' => $this->mName,
+                       'id' => $this->mID,
+                       'options' => $this->getOptionsOOUI(),
+                       'value' => strval( $value ),
+                       'disabled' => $disabled,
+               ) + $attribs );
+       }
 }
index 9638106..b2ec9ca 100644 (file)
@@ -4,10 +4,12 @@
  */
 class HTMLSelectNamespace extends HTMLFormField {
        function getInputHTML( $value ) {
+               $allValue = ( isset( $this->mParams['all'] ) ? $this->mParams['all'] : 'all' );
+
                return Html::namespaceSelector(
                        array(
                                'selected' => $value,
-                               'all' => 'all'
+                               'all' => $allValue
                        ), array(
                                'name' => $this->mName,
                                'id' => $this->mID,
index 21173d2..22e96f6 100644 (file)
@@ -35,4 +35,33 @@ class HTMLTextAreaField extends HTMLFormField {
                $attribs += $this->getAttributes( $allowedParams );
                return Html::textarea( $this->mName, $value, $attribs );
        }
+
+       function getInputOOUI( $value ) {
+               $attribs = $this->getTooltipAndAccessKey();
+
+               if ( $this->mClass !== '' ) {
+                       $attribs['classes'] = array( $this->mClass );
+               }
+
+               $allowedParams = array(
+                       'placeholder',
+                       'tabindex',
+                       'disabled',
+                       'readonly',
+                       'required',
+                       'autofocus',
+               );
+
+               $attribs += $this->getAttributes( $allowedParams, array(
+                       'tabindex' => 'tabIndex',
+                       'readonly' => 'readOnly',
+               ) );
+
+               return new OOUI\TextInputWidget( array(
+                       'id' => $this->mID,
+                       'name' => $this->mName,
+                       'multiline' => true,
+                       'value' => $value,
+               ) + $attribs );
+       }
 }
index 88df49d..2958274 100644 (file)
@@ -11,6 +11,7 @@ class HTMLTextField extends HTMLFormField {
                                'name' => $this->mName,
                                'size' => $this->getSize(),
                                'value' => $value,
+                               'dir' => $this->mDir,
                        ) + $this->getTooltipAndAccessKey();
 
                if ( $this->mClass !== '' ) {
@@ -40,6 +41,11 @@ class HTMLTextField extends HTMLFormField {
                $attribs += $this->getAttributes( $allowedParams );
 
                # Extract 'type'
+               $type = $this->getType( $attribs );
+               return Html::input( $this->mName, $value, $type, $attribs );
+       }
+
+       protected function getType( &$attribs ) {
                $type = isset( $attribs['type'] ) ? $attribs['type'] : 'text';
                unset( $attribs['type'] );
 
@@ -65,6 +71,45 @@ class HTMLTextField extends HTMLFormField {
                        }
                }
 
-               return Html::input( $this->mName, $value, $type, $attribs );
+               return $type;
+       }
+
+       function getInputOOUI( $value ) {
+               $attribs = $this->getTooltipAndAccessKey();
+
+               if ( $this->mClass !== '' ) {
+                       $attribs['classes'] = array( $this->mClass );
+               }
+
+               # @todo Enforce pattern, step, required, readonly on the server side as
+               # well
+               $allowedParams = array(
+                       'autofocus',
+                       'autosize',
+                       'disabled',
+                       'flags',
+                       'indicator',
+                       'maxlength',
+                       'placeholder',
+                       'readonly',
+                       'required',
+                       'tabindex',
+                       'type',
+               );
+
+               $attribs += $this->getAttributes( $allowedParams, array(
+                       'maxlength' => 'maxLength',
+                       'readonly' => 'readOnly',
+                       'tabindex' => 'tabIndex',
+               ) );
+
+               $type = $this->getType( $attribs );
+
+               return new OOUI\TextInputWidget( array(
+                       'id' => $this->mID,
+                       'name' => $this->mName,
+                       'value' => $value,
+                       'type' => $type,
+               ) + $attribs );
        }
 }
diff --git a/includes/htmlform/OOUIHTMLForm.php b/includes/htmlform/OOUIHTMLForm.php
new file mode 100644 (file)
index 0000000..6c9952a
--- /dev/null
@@ -0,0 +1,137 @@
+<?php
+
+/**
+ * HTML form generation and submission handling, OOUI style.
+ *
+ * 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
+ */
+
+/**
+ * Compact stacked vertical format for forms, implemented using OOUI widgets.
+ */
+class OOUIHTMLForm extends HTMLForm {
+       /**
+        * Wrapper and its legend are never generated in OOUI mode.
+        * @var boolean
+        */
+       protected $mWrapperLegend = false;
+
+       public function __construct( $descriptor, $context = null, $messagePrefix = '' ) {
+               parent::__construct( $descriptor, $context, $messagePrefix );
+               $this->getOutput()->enableOOUI();
+               $this->getOutput()->addModules( 'mediawiki.htmlform.ooui' );
+               $this->getOutput()->addModuleStyles( 'mediawiki.htmlform.ooui.styles' );
+       }
+
+       /**
+        * Symbolic display format name.
+        * @var string
+        */
+       protected $displayFormat = 'ooui';
+
+       public static function loadInputFromParameters( $fieldname, $descriptor, HTMLForm $parent = null ) {
+               $field = parent::loadInputFromParameters( $fieldname, $descriptor, $parent );
+               $field->setShowEmptyLabel( false );
+               return $field;
+       }
+
+       function getButtons() {
+               $buttons = '';
+
+               if ( $this->mShowSubmit ) {
+                       $attribs = array();
+
+                       if ( isset( $this->mSubmitID ) ) {
+                               $attribs['id'] = $this->mSubmitID;
+                       }
+
+                       if ( isset( $this->mSubmitName ) ) {
+                               $attribs['name'] = $this->mSubmitName;
+                       }
+
+                       if ( isset( $this->mSubmitTooltip ) ) {
+                               $attribs += Linker::tooltipAndAccesskeyAttribs( $this->mSubmitTooltip );
+                       }
+
+                       $attribs['classes'] = array(
+                               'mw-htmlform-submit',
+                               $this->mSubmitModifierClass,
+                       );
+
+                       $attribs['type'] = 'submit';
+                       $attribs['label'] = $this->getSubmitText();
+                       $attribs['value'] = $this->getSubmitText();
+                       $attribs['flags'] = array( 'primary', 'constructive' );
+
+                       $buttons .= new OOUI\ButtonInputWidget( $attribs );
+               }
+
+               if ( $this->mShowReset ) {
+                       $buttons .= new OOUI\ButtonInputWidget( array(
+                               'type' => 'reset',
+                               'label' => $this->msg( 'htmlform-reset' )->text(),
+                       ) );
+               }
+
+               foreach ( $this->mButtons as $button ) {
+                       $attrs = array();
+
+                       if ( $button['attribs'] ) {
+                               $attrs += $button['attribs'];
+                       }
+
+                       if ( isset( $button['id'] ) ) {
+                               $attrs['id'] = $button['id'];
+                       }
+
+                       $attrs['classes'] = isset( $attrs['class'] ) ? (array)$attrs['class'] : array();
+
+                       $buttons .= new OOUI\ButtonInputWidget( array(
+                               'type' => 'submit',
+                               'name' => $button['name'],
+                               'value' => $button['value'],
+                               'label' => $button['value'],
+                       ) + $attrs );
+               }
+
+               $html = Html::rawElement( 'div',
+                       array( 'class' => 'mw-htmlform-submit-buttons' ), "\n$buttons" ) . "\n";
+
+               return $html;
+       }
+
+       function getFormAttributes() {
+               $attribs = parent::getFormAttributes();
+               if ( !isset( $attribs['class'] ) ) {
+                       $attribs['class'] = '';
+               }
+
+               if ( is_string( $attribs['class'] ) ) {
+                       $attribs['class'] = trim( $attribs['class'] . ' mw-htmlform-ooui' );
+               } else {
+                       $attribs['class'][] = 'mw-htmlform-ooui';
+               }
+
+               return $attribs;
+       }
+
+       function wrapForm( $html ) {
+               // Always discard $this->mWrapperLegend
+               return Html::rawElement( 'form', $this->getFormAttributes(), $html );
+       }
+}
index 6ccf2d5..752450f 100644 (file)
@@ -649,10 +649,10 @@ abstract class DatabaseInstaller {
                        return $status;
                }
                global $IP;
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $rows = file( "$IP/maintenance/interwiki.list",
                        FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                $interwikis = array();
                if ( !$rows ) {
                        return Status::newFatal( 'config-install-interwiki-list' );
index f9c885d..a10fb48 100644 (file)
@@ -146,7 +146,6 @@ abstract class Installer {
         * @var array
         */
        protected $envPreps = array(
-               'envPrepExtension',
                'envPrepServer',
                'envPrepPath',
        );
@@ -177,7 +176,6 @@ abstract class Installer {
                'wgGitBin',
                'IP',
                'wgScriptPath',
-               'wgScriptExtension',
                'wgMetaNamespace',
                'wgDeletedDirectory',
                'wgEnableUploads',
@@ -224,7 +222,7 @@ abstract class Installer {
 
                // $wgLogo is probably wrong (bug 48084); set something that will work.
                // Single quotes work fine here, as LocalSettingsGenerator outputs this unescaped.
-               'wgLogo' => '$wgScriptPath/resources/assets/wiki.png',
+               'wgLogo' => '$wgResourceBasePath/resources/assets/wiki.png',
        );
 
        /**
@@ -285,27 +283,27 @@ abstract class Installer {
        public $licenses = array(
                'cc-by' => array(
                        'url' => 'https://creativecommons.org/licenses/by/3.0/',
-                       'icon' => '{$wgResourceBasePath}/resources/assets/licenses/cc-by.png',
+                       'icon' => '$wgResourceBasePath/resources/assets/licenses/cc-by.png',
                ),
                'cc-by-sa' => array(
                        'url' => 'https://creativecommons.org/licenses/by-sa/3.0/',
-                       'icon' => '{$wgResourceBasePath}/resources/assets/licenses/cc-by-sa.png',
+                       'icon' => '$wgResourceBasePath/resources/assets/licenses/cc-by-sa.png',
                ),
                'cc-by-nc-sa' => array(
                        'url' => 'https://creativecommons.org/licenses/by-nc-sa/3.0/',
-                       'icon' => '{$wgResourceBasePath}/resources/assets/licenses/cc-by-nc-sa.png',
+                       'icon' => '$wgResourceBasePath/resources/assets/licenses/cc-by-nc-sa.png',
                ),
                'cc-0' => array(
                        'url' => 'https://creativecommons.org/publicdomain/zero/1.0/',
-                       'icon' => '{$wgResourceBasePath}/resources/assets/licenses/cc-0.png',
+                       'icon' => '$wgResourceBasePath/resources/assets/licenses/cc-0.png',
                ),
                'pd' => array(
                        'url' => '',
-                       'icon' => '{$wgResourceBasePath}/resources/assets/licenses/public-domain.png',
+                       'icon' => '$wgResourceBasePath/resources/assets/licenses/public-domain.png',
                ),
                'gfdl' => array(
                        'url' => 'https://www.gnu.org/copyleft/fdl.html',
-                       'icon' => '{$wgResourceBasePath}/resources/assets/licenses/gnu-fdl.png',
+                       'icon' => '$wgResourceBasePath/resources/assets/licenses/gnu-fdl.png',
                ),
                'none' => array(
                        'url' => '',
@@ -540,9 +538,9 @@ abstract class Installer {
                global $wgAutoloadClasses;
                $wgAutoloadClasses = array();
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $_lsExists = file_exists( "$IP/LocalSettings.php" );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( !$_lsExists ) {
                        return false;
@@ -830,14 +828,14 @@ abstract class Installer {
         * @return bool
         */
        protected function envCheckPCRE() {
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $regexd = preg_replace( '/[\x{0430}-\x{04FF}]/iu', '', '-АБВГД-' );
                // Need to check for \p support too, as PCRE can be compiled
                // with utf8 support, but not unicode property support.
                // check that \p{Zs} (space separators) matches
                // U+3000 (Ideographic space)
                $regexprop = preg_replace( '/\p{Zs}/u', '', "-\xE3\x80\x80-" );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( $regexd != '--' || $regexprop != '--' ) {
                        $this->showError( 'config-pcre-no-utf8' );
 
@@ -1227,19 +1225,6 @@ abstract class Installer {
         */
        abstract protected function envGetDefaultServer();
 
-       /**
-        * Environment prep for setting the preferred PHP file extension.
-        */
-       protected function envPrepExtension() {
-               // @todo FIXME: Detect this properly
-               if ( defined( 'MW_INSTALL_PHP5_EXT' ) ) {
-                       $ext = '.php5';
-               } else {
-                       $ext = '.php';
-               }
-               $this->setVar( 'wgScriptExtension', $ext );
-       }
-
        /**
         * Environment prep for setting $IP and $wgScriptPath.
         */
@@ -1289,9 +1274,9 @@ abstract class Installer {
                foreach ( $names as $name ) {
                        $command = $path . DIRECTORY_SEPARATOR . $name;
 
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $file_exists = file_exists( $command );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
 
                        if ( $file_exists ) {
                                if ( !$versionInfo ) {
@@ -1349,7 +1334,7 @@ abstract class Installer {
 
                // it would be good to check other popular languages here, but it'll be slow.
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
 
                foreach ( $scriptTypes as $ext => $contents ) {
                        foreach ( $contents as $source ) {
@@ -1368,14 +1353,14 @@ abstract class Installer {
                                unlink( $dir . $file );
 
                                if ( $text == 'exec' ) {
-                                       wfRestoreWarnings();
+                                       MediaWiki\restoreWarnings();
 
                                        return $ext;
                                }
                        }
                }
 
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                return false;
        }
@@ -1809,8 +1794,8 @@ abstract class Installer {
         * Some long-running pages (Install, Upgrade) will want to do this
         */
        protected function disableTimeLimit() {
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                set_time_limit( 0 );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
        }
 }
index 737c996..9bf055c 100644 (file)
@@ -57,7 +57,7 @@ class LocalSettingsGenerator {
 
                $confItems = array_merge(
                        array(
-                               'wgServer', 'wgScriptPath', 'wgScriptExtension',
+                               'wgServer', 'wgScriptPath',
                                'wgPasswordSender', 'wgImageMagickConvertCommand', 'wgShellLocale',
                                'wgLanguageCode', 'wgEnableEmail', 'wgEnableUserEmail', 'wgDiff3',
                                'wgEnotifUserTalk', 'wgEnotifWatchlist', 'wgEmailAuthentication',
@@ -331,10 +331,10 @@ if ( !defined( 'MEDIAWIKI' ) ) {
 ## (like /w/index.php/Page_title to /wiki/Page_title) please see:
 ## https://www.mediawiki.org/wiki/Manual:Short_URL
 \$wgScriptPath = \"{$this->values['wgScriptPath']}\";
-\$wgScriptExtension = \"{$this->values['wgScriptExtension']}\";
 ${serverSetting}
 ## The relative URL path to the skins directory
 \$wgStylePath = \"\$wgScriptPath/skins\";
+\$wgResourceBasePath = \$wgScriptPath;
 
 ## The relative URL path to the logo.  Make sure you change this from the default,
 ## or else you'll overwrite your logo when you upgrade!
index f990ddf..43b809c 100644 (file)
@@ -157,9 +157,9 @@ class SqliteInstaller extends DatabaseInstaller {
                        # Called early on in the installer, later we just want to sanity check
                        # if it's still writable
                        if ( $create ) {
-                               wfSuppressWarnings();
+                               MediaWiki\suppressWarnings();
                                $ok = wfMkdirParents( $dir, 0700, __METHOD__ );
-                               wfRestoreWarnings();
+                               MediaWiki\restoreWarnings();
                                if ( !$ok ) {
                                        return Status::newFatal( 'config-sqlite-mkdir-error', $dir );
                                }
index f3dba3a..4930826 100644 (file)
@@ -1154,6 +1154,25 @@ class WebInstaller extends Installer {
         * @return bool
         */
        public function envCheckPath() {
+               // PHP_SELF isn't available sometimes, such as when PHP is CGI but
+               // cgi.fix_pathinfo is disabled. In that case, fall back to SCRIPT_NAME
+               // to get the path to the current script... hopefully it's reliable. SIGH
+               $path = false;
+               if ( !empty( $_SERVER['PHP_SELF'] ) ) {
+                       $path = $_SERVER['PHP_SELF'];
+               } elseif ( !empty( $_SERVER['SCRIPT_NAME'] ) ) {
+                       $path = $_SERVER['SCRIPT_NAME'];
+               }
+               if ( $path === false ) {
+                       $this->showError( 'config-no-uri' );
+                       return false;
+               }
+
+               return parent::envCheckPath();
+       }
+
+       public function envPrepPath() {
+               parent::envPrepPath();
                // PHP_SELF isn't available sometimes, such as when PHP is CGI but
                // cgi.fix_pathinfo is disabled. In that case, fall back to SCRIPT_NAME
                // to get the path to the current script... hopefully it's reliable. SIGH
@@ -1165,24 +1184,17 @@ class WebInstaller extends Installer {
                }
                if ( $path !== false ) {
                        $scriptPath = preg_replace( '{^(.*)/(mw-)?config.*$}', '$1', $path );
-                       $scriptExtension = $this->getVar( 'wgScriptExtension' );
 
                        $this->setVar( 'wgScriptPath', "$scriptPath" );
                        // Update variables set from Setup.php that are derived from wgScriptPath
-                       $this->setVar( 'wgScript', "$scriptPath/index$scriptExtension" );
-                       $this->setVar( 'wgLoadScript', "$scriptPath/load$scriptExtension" );
+                       $this->setVar( 'wgScript', "$scriptPath/index.php" );
+                       $this->setVar( 'wgLoadScript', "$scriptPath/load.php" );
                        $this->setVar( 'wgStylePath', "$scriptPath/skins" );
                        $this->setVar( 'wgLocalStylePath', "$scriptPath/skins" );
                        $this->setVar( 'wgExtensionAssetsPath', "$scriptPath/extensions" );
                        $this->setVar( 'wgUploadPath', "$scriptPath/images" );
-
-               } else {
-                       $this->showError( 'config-no-uri' );
-
-                       return false;
+                       $this->setVar( 'wgResourceBasePath', "$scriptPath" );
                }
-
-               return parent::envCheckPath();
        }
 
        /**
index 44ca7d3..0ccdb11 100644 (file)
@@ -133,26 +133,24 @@ class WebInstallerOutput {
                        'mediawiki.skinning.interface',
                );
 
-               if ( file_exists( "$wgStyleDirectory/Vector/Vector.php" ) ) {
+               $resourceLoader = new ResourceLoader();
+
+               if ( file_exists( "$wgStyleDirectory/Vector/skin.json" ) ) {
                        // Force loading Vector skin if available as a fallback skin
                        // for whatever ResourceLoader wants to have as the default.
-
-                       // Include instead of require, as this will work without it, it will just look bad.
-                       // We need the 'global' statement for $wgResourceModules because the Vector skin adds the
-                       // definitions for its RL modules there that we use implicitly below.
-
-                       // @codingStandardsIgnoreStart
-                       global $wgResourceModules; // This is NOT UNUSED!
-                       // @codingStandardsIgnoreEnd
-
-                       include_once "$wgStyleDirectory/Vector/Vector.php";
+                       $registry = new ExtensionRegistry();
+                       $data = $registry->readFromQueue( array(
+                               "$wgStyleDirectory/Vector/skin.json" => 1,
+                       ) );
+                       if ( isset( $data['globals']['wgResourceModules'] ) ) {
+                               $resourceLoader->register( $data['globals']['wgResourceModules'] );
+                       }
 
                        $moduleNames[] = 'skins.vector.styles';
                }
 
                $moduleNames[] = 'mediawiki.legacy.config';
 
-               $resourceLoader = new ResourceLoader();
                $rlContext = new ResourceLoaderContext( $resourceLoader, new FauxRequest( array(
                                'debug' => 'true',
                                'lang' => $this->getLanguageCode(),
@@ -163,6 +161,10 @@ class WebInstallerOutput {
                foreach ( $moduleNames as $moduleName ) {
                        /** @var ResourceLoaderFileModule $module */
                        $module = $resourceLoader->getModule( $moduleName );
+                       if ( !$module ) {
+                               // T98043: Don't fatal, but it won't look as pretty.
+                               continue;
+                       }
 
                        // Based on: ResourceLoaderFileModule::getStyles (without the DB query)
                        $styles = array_merge( $styles, ResourceLoader::makeCombinedStyles(
index 6e41514..f40de71 100644 (file)
@@ -669,6 +669,8 @@ class WebInstallerUpgrade extends WebInstallerPage {
        }
 
        public function showDoneMessage() {
+               global $wgScriptExtension;
+
                $this->startForm();
                $regenerate = !$this->getVar( '_ExistingDBSettings' );
                if ( $regenerate ) {
@@ -682,7 +684,7 @@ class WebInstallerUpgrade extends WebInstallerPage {
                                wfMessage( $msg,
                                        $this->getVar( 'wgServer' ) .
                                        $this->getVar( 'wgScriptPath' ) . '/index' .
-                                       $this->getVar( 'wgScriptExtension' )
+                                       $wgScriptExtension
                                )->plain(), 'tick-32.png'
                        )
                );
@@ -1183,7 +1185,7 @@ class WebInstallerOptions extends WebInstallerPage {
                ) );
                $styleUrl = $server . dirname( dirname( $this->parent->getUrl() ) ) .
                        '/mw-config/config-cc.css';
-               $iframeUrl = 'https://creativecommons.org/license/?' .
+               $iframeUrl = '//creativecommons.org/license/?' .
                        wfArrayToCgi( array(
                                'partner' => 'MediaWiki',
                                'exit_url' => $exitUrl,
@@ -1479,8 +1481,7 @@ class WebInstallerComplete extends WebInstallerPage {
                                wfMessage( 'config-install-done',
                                        $lsUrl,
                                        $this->getVar( 'wgServer' ) .
-                                       $this->getVar( 'wgScriptPath' ) . '/index' .
-                                       $this->getVar( 'wgScriptExtension' ),
+                                       $this->getVar( 'wgScriptPath' ) . '/index.php',
                                        '<downloadlink/>'
                                )->plain(), 'tick-32.png'
                        )
index 36136a5..d0a4e17 100644 (file)
@@ -6,7 +6,8 @@
                        "OsamaK",
                        "روخو",
                        "Claw eg",
-                       "Kuwaity26"
+                       "Kuwaity26",
+                       "محمد أحمد عبد الفتاح"
                ]
        },
        "config-desc": "مثبت لميدياويكي",
        "config-page-existingwiki": "ويكي موجودة",
        "config-help-restart": "هل تريد إزالة البيانات المحفوظة التي قد قمت بإدخالها وإعادة تشغيل عملية التثبيت؟",
        "config-restart": "نعم، إعادة التشغيل",
+       "config-env-good": "جرى التحقق من البيئة. يمكنك تنصيب ميدياويكي.",
+       "config-env-bad": "جرى التحقق من البيئة. لا يمكنك تنصيب ميدياويكي.",
        "config-env-php": "بي إتش بي $1 مثبت.",
+       "config-env-hhvm": "نصبت HHVM $1.",
        "config-db-type": "نوع قاعدة البيانات:",
        "config-db-host": "مضيف قاعدة البيانات:",
        "config-db-wiki-settings": "حدِّد هذا الويكي",
index 5680c35..852982f 100644 (file)
@@ -1,7 +1,8 @@
 {
        "@metadata": {
                "authors": [
-                       "Xuacu"
+                       "Xuacu",
+                       "Fitoschido"
                ]
        },
        "config-desc": "L'instalador pa MediaWiki",
        "config-diff3-bad": "Nun s'alcontró GNU diff3.",
        "config-git": "Alcontróse'l software de control de versiones Git: <code>$1</code>.",
        "config-git-bad": "Nun s'alcontró el software de control de versiones Git.",
+       "config-db-type": "Tipu de base de datos:",
+       "config-db-name": "Nome de base de datos:",
+       "config-type-mysql": "MySQL (o compatible)",
+       "config-type-mssql": "Microsoft SQL Server",
        "config-site-name": "Nome de la wiki:",
        "config-site-name-help": "Esto apaecerá na barra de títulos del navegador y en dellos sitios más.",
        "config-site-name-blank": "Escriba un nome pal sitiu.",
index e3838e3..8165da2 100644 (file)
@@ -9,13 +9,19 @@
        "config-desc": "MediaWiki йөкләүсе",
        "config-title": "MediaWiki $1 йөкләмеше",
        "config-information": "Мәғлүмәт",
+       "config-localsettings-upgrade": "<code>LocalSettings.php</code> файлы бар. \nБыл күрһәтмәне яңыртыу өсөн <code>$wgUpgradeKey</code> мәғәнәһен яҙығыҙ.\nУны <code>LocalSettings.php</code> файлында табырға була.",
+       "config-localsettings-cli-upgrade": "<code>LocalSettings.php</code> файлы бар. \nБыл күрһәтмәне яңыртыу өсөн <code>update.php</code> эшләтеп ебәрегеҙ.",
        "config-localsettings-key": "Яңыртыу асҡысы:",
        "config-localsettings-badkey": "Дөрөҫ булмаған асҡыс күрһәттегеҙ",
+       "config-session-error": "Эш башлағанда сыҡҡан хата: $1",
        "config-your-language": "Һеҙҙең тел:",
+       "config-wiki-language": "Вики телдәре:",
        "config-back": "← Кире",
        "config-continue": "Дауам итергә →",
        "config-page-language": "Тел",
        "config-page-welcome": "MediaWiki-ға рәхим итегеҙ!",
+       "config-page-dbconnect": "Мәғлүмәт болона тоташыу",
+       "config-page-dbsettings": "Мәғлүмәт болон көйләү",
        "config-page-name": "Исем",
        "config-page-options": "Көйләүҙәр",
        "config-page-complete": "Тамам!",
@@ -24,6 +30,7 @@
        "config-page-copying": "Рөхсәтнәмә",
        "config-page-upgradedoc": "Яңыртыу",
        "config-restart": "Эйе, яңынан башларға",
+       "config-help": "белешмә",
        "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]"
 }
index 533035c..76a8f37 100644 (file)
@@ -27,6 +27,7 @@
        "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:",
index c131a78..95e2ec4 100644 (file)
@@ -52,7 +52,6 @@
        "config-env-bad": "Асяродзьдзе было праверанае.\nУсталяваньне MediaWiki немагчымае.",
        "config-env-php": "Усталяваны PHP $1.",
        "config-env-hhvm": "HHVM $1 усталяваная.",
-       "config-unicode-using-utf8": "Выкарыстоўваецца бібліятэка Unicode-нармалізацыі Браяна Вібэра",
        "config-unicode-using-intl": "Выкарыстоўваецца [http://pecl.php.net/intl intl пашырэньне з PECL] для Unicode-нармалізацыі",
        "config-unicode-pure-php-warning": "'''Папярэджаньне''': [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].\nРаім [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations абнавіць], калі ваш сайт будзе працаваць зь Unicode.",
@@ -65,7 +64,7 @@
        "config-magic-quotes-sybase": "'''Фатальная памылка: рэжым [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] уключаны!'''\nГэты рэжым шкодзіць уваходныя зьвесткі непрадказальным чынам.\nПрацяг усталяваньня альбо выкарыстаньне MediaWiki немагчымыя, пакуль рэжым ня будзе выключаны.",
        "config-mbstring": "'''Фатальная памылка: рэжым [http://www.php.net/manual/en/ref.info.php#mbstring.overload mbstring.func_overload] уключаны!'''\nГэты рэжым выклікае памылкі і можа шкодзіць зьвесткі непрадказальным чынам.\nПрацяг усталяваньня альбо выкарыстаньне MediaWiki немагчымыя, пакуль рэжым ня будзе выключаны.",
        "config-safe-mode": "'''Папярэджаньне:''' [http://www.php.net/features.safe-mode бясьпечны рэжым] PHP уключаны.\nГэта можа выклікаць праблемы, галоўным чынам падчас загрузак файлаў і ў падтрымцы <code>math</code>.",
-       "config-xml-bad": "Ð\9dÑ\8f Ð·Ð½Ð¾Ð¹Ð´Ð·ÐµÐ½Ñ\8b Ð¼Ð¾Ð´Ñ\83лÑ\8c XML Ð´Ð»Ñ\8f PHP.\nMediaWiki Ð¿Ð°Ñ\82Ñ\80Ñ\8dбнÑ\8bÑ\8f Ñ\84Ñ\83нкÑ\86Ñ\8bÑ\96 Ð· Ð³Ñ\8dÑ\82ага Ð¼Ð¾Ð´Ñ\83лÑ\8e, Ñ\82амÑ\83 MediaWiki Ð½Ñ\8f Ð±Ñ\83дзе Ð¿Ñ\80аÑ\86аваÑ\86Ñ\8c Ñ\83 Ð³Ñ\8dÑ\82ай ÐºÐ°Ð½Ñ\84Ñ\96гÑ\83Ñ\80аÑ\86Ñ\8bÑ\96.\nÐ\9aалÑ\96 Ð\92Ñ\8b Ð²Ñ\8bкаÑ\80Ñ\8bÑ\81Ñ\82оÑ\9eваеÑ\86е Mandrake, Ñ\83Ñ\81Ñ\82алÑ\8eйÑ\86е пакет php-xml.",
+       "config-xml-bad": "Ð\9dÑ\8f Ð·Ð½Ð¾Ð¹Ð´Ð·ÐµÐ½Ñ\8b Ð¼Ð¾Ð´Ñ\83лÑ\8c XML Ð´Ð»Ñ\8f PHP.\nMediaWiki Ð¿Ð°Ñ\82Ñ\80Ñ\8dбнÑ\8bÑ\8f Ñ\84Ñ\83нкÑ\86Ñ\8bÑ\96 Ð· Ð³Ñ\8dÑ\82ага Ð¼Ð¾Ð´Ñ\83лÑ\8e, Ñ\82амÑ\83 MediaWiki Ð½Ñ\8f Ð±Ñ\83дзе Ð¿Ñ\80аÑ\86аваÑ\86Ñ\8c Ñ\83 Ð³Ñ\8dÑ\82ай ÐºÐ°Ð½Ñ\84Ñ\96гÑ\83Ñ\80аÑ\86Ñ\8bÑ\96.\nÐ\9cагÑ\87Ñ\8bма, Ð²Ð°Ð¼ Ñ\82Ñ\80Ñ\8dба Ñ\9eÑ\81Ñ\82алÑ\8fваÑ\86Ñ\8c 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.",
index 51fe74f..2023b64 100644 (file)
        "config-env-bad": "Средата беше проверена.\nНе е възможна инсталация на МедияУики.",
        "config-env-php": "Инсталирана е версия на PHP $1.",
        "config-env-hhvm": "HHVM $1 е инсталиран.",
-       "config-unicode-using-utf8": "Използване на utf8_normalize.so от Brion Vibber за нормализация на Уникод.",
        "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-no-db": "Не може да бъде открит подходящ драйвер за база данни! Необходимо е да инсталирате драйвер за база данни за PHP.\nПоддържат се следните типове базни данни: $1.\n\nАко сами сте компилирали PHP, преконфигурирайте го с включен клиент за база данни, например чрез използване на <code>./configure --with-mysql</code>.\nАко сте инсталирали PHP от пакет за Debian или Ubuntu, необходимо е също така да инсталирате и модула <code>php5-mysql</code>.",
+       "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": "Липсва XML модулът на PHP.\nМедияУики се нуждае от някои функции от този модул и няма да работи при наличната конфигурация.\nПри Mandrake, необходимо е да се инсталира пакетът 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>.",
        "config-git-bad": "Не е намерен софтуер за контрол на версиите Git.",
        "config-imagemagick": "Открит е ImageMagick: <code>$1</code>.\nПреоразмеряването на картинки ще бъде включено ако качването на файлове бъде разрешено.",
        "config-gd": "Открита е вградена графичната библиотека GD.\nАко качването на файлове бъде включено, ще бъде включена възможността за преоразмеряване на картинки.",
        "config-no-scaling": "Не са открити библиотеките GD или ImageMagick.\nПреоразмеряването на картинки ще бъде изключено.",
        "config-no-uri": "'''Грешка:''' Не може да се определи текущия адрес.\nИнсталация беше прекратена.",
+       "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-brokenlibxml": "Вашата система използа комбинация от версии на PHP и libxml2, които са с много грешки и могат да причинят скрити повреди на данните в МедияУики или други уеб приложения.\nНеобходимо е обновяване до PHP 5.2.9 или по-нова версия и libxml2 2.7.3 или по-нова версия ([//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> и в LocalSettings.php да се настрои <code>$wgResourceLoaderMaxQueryLength</code> със същата стойност.",
+       "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-type": "Тип на базата от данни:",
        "config-db-host": "Хост на базата от данни:",
        "config-db-host-help": "Ако базата от данни е на друг сървър, в кутията се въвежда името на хоста или IP адреса.\n\nАко се използва споделен уеб хостинг, доставчикът на услугата би трябвало да е предоставил в документацията си коректния хост.\n\nАко инсталацията протича на Windows-сървър и се използва MySQL, използването на \"localhost\" може да е неприемливо. В такива случаи се използва \"127.0.0.1\" за локален IP адрес.\n\nПри използване на PostgreSQL, това поле се оставя празно, за свързване чрез Unix socket.",
        "config-db-username": "Потребителско име за базата от данни:",
        "config-db-password": "Парола за базата от данни:",
        "config-db-password-empty": "Въведете парола за новия потребител на базата от данни: $1.\nВъпреки че е допустимо да се създават потребители без пароли, това е незащитено действие.",
+       "config-db-username-empty": "Необходимо е да се въведе стойност за „{{int:config-db-username}}“.",
        "config-db-install-username": "Въвежда се потребителско име, което ще се използва за свързване с базата от данни по време на процеса по инсталация.\nТова не е потребителско име за сметка в МедияУики; това е потребителско име за базата от данни.",
        "config-db-install-password": "Въвежда се парола, която ще бъде използвана за свързване с базата от данни по време на инсталационния процес.\nТова не е парола за сметка в МедияУики; това е парола за базата от данни.",
        "config-db-install-help": "Въвеждат се потребителско име и парола, които ще бъдат използвани за свързване с базата от данни по време на инсталационния процес.",
        "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-pg-test-error": "Невъзможно свързване с базата данни '''$1''': $2",
        "config-sqlite-dir": "Директория за данни на SQLite:",
        "config-sqlite-dir-help": "SQLite съхранява всички данни в един файл.\n\nПо време на инсталацията уеб сървърът трябва да има права за писане в посочената директория.\n\nТя '''не трябва''' да е достъпна през уеб, затова не е там, където са PHP файловете.\n\nИнсталаторът ще съхрани заедно с нея файл <code>.htaccess</code>, но ако този метод пропадне, някой може да придобие даостъп до суровите данни от базата от данни.\nТова включва сурови данни за потребителите (адреси за е-поща, хеширани пароли), както и изтрити версии на страници и друга чувствителна и с ограничен достъп информация от и за уикито.\n\nБазата от данни е препоръчително да се разположи на друго място, например в <code>/var/lib/mediawiki/yourwiki</code>.",
+       "config-oracle-def-ts": "Таблично пространство по подразбиране:",
+       "config-oracle-temp-ts": "Временно таблично пространство:",
        "config-type-mysql": "MySQL (или съвместима)",
        "config-type-mssql": "Microsoft SQL Сървър",
        "config-support-info": "МедияУики поддържа следните системи за бази от данни:\n\n$1\n\nАко не виждате желаната за използване система в списъка по-долу, следвайте инструкциите за активиране на поддръжка по-горе.",
-       "config-dbsupport-mysql": "* $1 е най-добре поддържаната система за база от данни, с най-добра поддръжка от МедияУики ([http://www.php.net/manual/en/mysql.installation.php Как се компилира PHP с поддръжка на MySQL])",
-       "config-dbsupport-postgres": "* $1 е популярна система за бази от данни с отворен изходен код, която е алтернатива на MySQL ([http://www.php.net/manual/en/pgsql.installation.php как се компилира PHP с поддръжка на PostgreSQL]). Възможно е все още да има грешки, затова не се препоръчва да се използва в общодостъпна среда.",
-       "config-dbsupport-sqlite": "* $1 е лека система за база от данни, която е много добре поддържана. ([http://www.php.net/manual/en/pdo.installation.php Как се компилира PHP с поддръжка на SQLite], използва PDO)",
+       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] е най-важна за МедияУики и се поддържа най-добре. МедияУики работи също така с [{{int:version-db-mariadb-url}} MariaDB] и [{{int:version-db-percona-url}} Percona Server], които са съвместими с MySQL.\n([http://www.php.net/manual/bg/mysqli.installation.php Как се компилира PHP с поддръжка на MySQL])",
+       "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] е популярна система за управление на бази от данни, алтернатива на MySQL. Възможно е все още да има грешки, затова не се препоръчва да се използва в общодостъпна среда.([http://www.php.net/manual/bg/pgsql.installation.php Как се компилира PHP с поддръжка на PostgreSQL])",
+       "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] е олекотена система за бази от данни, която е много добре поддържана. ([http://www.php.net/manual/bg/pdo.installation.php Как се компилира PHP с поддръжка на SQLite], използва PDO)",
        "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] е комерсиална корпоративна база от данни. ([http://www.php.net/manual/en/oci8.installation.php Как се компилира PHP с поддръжка на OCI8])",
+       "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server] е комерсиална корпоративна база от данни за Windows. ([http://www.php.net/manual/bg/sqlsrv.installation.php Как да се компилира PHP с поддръжка на SQLSRV])",
        "config-header-mysql": "Настройки за MySQL",
        "config-header-postgres": "Настройки за PostgreSQL",
        "config-header-sqlite": "Настройки за SQLite",
        "config-header-oracle": "Настройки за Oracle",
        "config-header-mssql": "Настройки за Microsoft SQL Сървър",
        "config-invalid-db-type": "Невалиден тип база от данни",
-       "config-missing-db-name": "Необходимо е да се въведе стойност за \"Име на базата от данни\"",
-       "config-missing-db-host": "Необходимо е да се въведе стойност за \"Хост на базата от данни\"",
-       "config-missing-db-server-oracle": "Необходимо е да се въведе стойност за \"Database TNS\"",
-       "config-invalid-db-server-oracle": "Невалиден TNS на базата от данни \"$1\".\nДопустими са само ASCII букви (a-z, A-Z), цифри (0-9), символите за долна черта (_) и точка (.).",
+       "config-missing-db-name": "Необходимо е да се въведе стойност за „{{int:config-db-name}}“.",
+       "config-missing-db-host": "Необходимо е да се въведе стойност за „{{int:config-db-host}}“.",
+       "config-missing-db-server-oracle": "Необходимо е да се въведе стойност за „{{int:config-db-host-oracle}}“.",
+       "config-invalid-db-server-oracle": "Невалиден TNS на базата от данни „$1“.\nИзползвайте „TNS Name“ или „Easy Connect“ ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Методи за именуване на Oracle])",
        "config-invalid-db-name": "Невалидно име на базата от данни \"$1\".\nИзползват се само ASCII букви (a-z, A-Z), цифри (0-9), долни черти (_) и тирета (-).",
        "config-invalid-db-prefix": "Невалидна представка за базата от данни \"$1\".\nПозволени са само ASCII букви (a-z, A-Z), цифри (0-9), долни черти (_) и тирета (-).",
        "config-connection-error": "$1.\n\nНеобходимо е да се проверят хостът, потребителското име и паролата, след което да се опита отново.",
        "config-db-sys-create-oracle": "Инсталаторът поддържа само сметка SYSDBA за създаване на нова сметка.",
        "config-db-sys-user-exists-oracle": "Потребителската сметка \"$1\" вече съществува. SYSDBA може да се използва само за създаване на нова сметка!",
        "config-postgres-old": "Изисква се PostgreSQL $1 или по-нова версия, наличната версия е $2.",
+       "config-mssql-old": "Изисква се Microsoft SQL Server версия $1 или по-нова. Вашата версия е $2.",
        "config-sqlite-name-help": "Избира се име, което да идентифицира уикито.\nНе се използват интервали или тирета.\nТова име ще се използва за име на файла за данни на SQLite.",
        "config-sqlite-parent-unwritable-group": "Дикректорията за данни <code><nowiki>$1</nowiki></code> не може да бъде създадена, тъй като уеб сървърът няма права за писане в родителската директория <code><nowiki>$2</nowiki></code>.\n\nИнсталаторът разпознава потребителското име, с което работи уеб сървърът.\nУверете се, че той притежава права за писане в директорията <code><nowiki>$3</nowiki></code> преди да продължите.\nВ Unix/Линукс системи можете да използвате:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
        "config-sqlite-parent-unwritable-nogroup": "Дикректорията за данни <code><nowiki>$1</nowiki></code> не може да бъде създадена, тъй като уеб сървърът няма права за писане в родителската директория <code><nowiki>$2</nowiki></code>.\n\nИнсталаторът не може да определи потребителското име, с което работи уеб сървърът.\nУверете се, че в директория <code><nowiki>$3</nowiki></code> може да бъде писано от уебсървъра (или от други потребители!) преди да продължите.\nНа Unix/Линукс системи можете да използвате:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
        "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-mssql-auth": "Тип на удостоверяването:",
+       "config-mssql-sqlauth": "Удостоверяване чрез SQL Server",
+       "config-mssql-windowsauth": "Удостоверяване чрез Windows",
        "config-site-name": "Име на уикито:",
        "config-site-name-help": "Това име ще се показва в заглавната лента на браузъра и на различни други места.",
        "config-site-name-blank": "Необходимо е да се въведе име на уикито.",
        "config-skins": "Облици",
        "config-skins-help": "По-горе са посочени облиците, които са открити във вашата директория <code>./skins</code>. Необходимо е да изберете поне един, който да се използва по подразбиране.",
        "config-skins-use-as-default": "Използване на този облик по подразбиране",
+       "config-skins-missing": "Не са открити облици; МедияУики ще използва авариен облик, докато инсталирате подходящ.",
+       "config-skins-must-enable-some": "Трябва да изберете поне един облик.",
+       "config-skins-must-enable-default": "Обликът по-подразбиране трябва да бъде включен.",
        "config-install-alreadydone": "'''Предупреждение:''' Изглежда вече сте инсталирали МедияУики и се опитвате да го инсталирате отново.\nПродължете към следващата страница.",
        "config-install-begin": "Инсталацията на МедияУики ще започне след натискане на бутона „{{int:config-continue}}“.\nВ случай, че е необходимо да се направят промени, използва се бутона „{{int:config-back}}“.",
        "config-install-step-done": "готово",
        "config-install-stats": "Инициализиране на статистиките",
        "config-install-keys": "Генериране на тайни ключове",
        "config-insecure-keys": "'''Предупреждение:''' {{PLURAL:$2|Сигурният ключ, създаден по време на инсталацията, не е напълно надежден|Сигурните ключове, създадени по време на инсталацията, не са напълно надеждни}} $1 . Обмислете да {{PLURAL:$2|го|ги}} смените ръчно.",
+       "config-install-updates": "Предотвратяване стартирането на ненужни актуализации",
        "config-install-sysop": "Създаване на администраторска сметка",
        "config-install-subscribe-fail": "Невъзможно беше абонирането за mediawiki-announce: $1",
        "config-install-subscribe-notpossible": "не е инсталиран cURL и <code>allow_url_fopen</code> не е налична.",
index 668fbff..4d4522c 100644 (file)
@@ -2,7 +2,8 @@
        "@metadata": {
                "authors": [
                        "CERminator",
-                       "Palapa"
+                       "Palapa",
+                       "Emir Mujadzic"
                ]
        },
        "config-desc": "Instalacija za MediaWiki",
@@ -30,7 +31,7 @@
        "config-page-complete": "Završeno!",
        "config-page-restart": "Ponovi instalaciju ispočetka",
        "config-page-readme": "Pročitaj me",
-       "config-page-releasenotes": "Bilješke izdanja",
+       "config-page-releasenotes": "Napomene izdanja",
        "config-page-copying": "Kopiram",
        "config-page-upgradedoc": "Nadograđujem",
        "config-page-existingwiki": "Postojeća wiki",
@@ -40,7 +41,7 @@
        "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.",
-       "config-no-db": "Nije mogao biti pronađen pogodan driver za bazu podataka! Morate instalirati driver baze podataka za PHP.\nSljedeće vrste baza podataka su podržane: $1.\n\nAko se sami kompajlirali PHP, podesite ga sa omogućenim klijentom baze podataka, koristeći naprimjer, <code>./configure --with-mysqli</code>.\nAko ste instalirali PHP iz Debian ili Ubuntu paketa, tada morate instalirati, naprimjer, i paket <code>php5-mysql</code>.",
+       "config-no-db": "Nije mogao biti pronađen pogodan driver za bazu podataka! Morate instalirati driver baze podataka za PHP.\nSljedeće vrste baza podataka {{PLURAL:$2|type is|types are}}su podržane: $1.\n\nAko se sami kompajlirali PHP, podesite ga sa omogućenim klijentom baze podataka, koristeći naprimjer, <code>./configure --with-mysqli</code>.\nAko ste instalirali PHP iz Debian ili Ubuntu paketa, tada morate instalirati, naprimjer, i paket <code>php5-mysql</code>.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] je instaliran",
        "config-apc": "[http://www.php.net/apc APC] je instaliran",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] je instaliran",
        "config-db-name": "Naziv baze podataka:",
        "config-db-name-oracle": "Šema baze podataka:",
        "config-db-username": "Korisničko ime baze podataka:",
-       "config-db-password": "Pasvord baze podataka:",
+       "config-db-password": "Lozinka baze podataka:",
        "config-db-port": "Port baze podataka:",
        "config-header-mysql": "Postavke MySQL",
        "config-header-postgres": "Postavke PostgreSQL",
        "config-header-sqlite": "Postavke SQLite",
        "config-header-oracle": "Postavke Oracle",
        "config-header-mssql": "Postavke za Microsoft SQL Server",
-       "config-invalid-db-type": "Nevaljana vrsta baze podataka",
+       "config-invalid-db-type": "Invalidna vrsta baze podataka.",
        "config-missing-db-name": "Morate unijeti vrijednost za \"{{int:config-db-name}}\".",
        "config-upgrade-done": "Nadogradnja završena.\n\nSada možete [$1 početi koristiti vašu wiki].\n\nAko želite regenerisati vašu datoteku <code>LocalSettings.php</code>, kliknite na dugme ispod.\nOvo '''nije preporučeno''' osim ako nemate problema s vašom wiki.",
        "config-mysql-innodb": "InnoDB",
@@ -67,8 +68,8 @@
        "config-site-name": "Ime wiki:",
        "config-ns-other-default": "MyWiki",
        "config-admin-name": "Vaše korisničko ime:",
-       "config-admin-password": "Šifra:",
-       "config-admin-password-confirm": "Ponovno unesite pasvord:",
+       "config-admin-password": "Lozinka:",
+       "config-admin-password-confirm": "Ponovno unesite lozinku:",
        "config-admin-email": "E-mail adresa:",
        "config-profile-wiki": "Otvori wiki",
        "config-profile-private": "Privatna wiki",
@@ -81,6 +82,6 @@
        "config-install-tables": "Kreiranje tabela",
        "config-help": "pomoć",
        "config-help-tooltip": "klikni za proširenje",
-       "mainpagetext": "'''MediaViki softver is uspješno instaliran.'''",
-       "mainpagedocfooter": "Kontaktirajte [//meta.wikimedia.org/wiki/Help:Contents 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]"
+       "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]"
 }
index 0488914..077c503 100644 (file)
@@ -41,7 +41,7 @@
        "config-missing-db-name": "Ахьа «{{int:config-db-name}}» маьӀна даздан дезаш ду.",
        "config-missing-db-host": "Ахьа «{{int:config-db-host}}» параметран маьӀна даздан дезаш ду.",
        "config-missing-db-server-oracle": "Ахьа тӀеюза езаш ю «{{int:config-db-host-oracle}}»",
-       "config-invalid-db-server-oracle": "Хаамийн базан «$1» нийса йоцу TNS.\nЛелае «TNS Name», я могӀа «Easy Connect» ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm ЦӀераш техкаран кеп Oracle])",
+       "config-invalid-db-server-oracle": "Хаамийн базан «$1» нийса йоцу TNS.\nЛелае «TNS Name», я могӀа «Easy Connect» ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm ЦӀерш техкаран кеп Oracle])",
        "config-sqlite-fts3-downgrade": "PHPн  гӀо до FTS3 яц — кхуссу таблицаш",
        "config-mysql-utf8": "UTF-8",
        "config-mssql-auth": "Аутентификацин тайп:",
index 202edef..3e36e95 100644 (file)
@@ -38,6 +38,7 @@
        "config-db-username": "ناوی بەکارھێنەری بنکەدراوە:",
        "config-db-password": "تێپەڕوشەی بنکەدراوە",
        "config-site-name": "ناوی ویکی:",
+       "config-site-name-blank": "ناوی پێگە داخڵ بکە.",
        "config-ns-generic": "پرۆژە",
        "config-admin-name": "ناوی بەکارھێنەرییەکەت:",
        "config-admin-password": "تێپەڕوشە:",
index b348a1b..7c68382 100644 (file)
@@ -72,7 +72,7 @@
        "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>\nDiese Einstellung führt zu unvorhersehbaren Problemen bei der Dateneingabe.\nMediaWiki kann nicht installiert werden, solange dieser Parameter nicht deaktiviert wurde.",
        "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-safe-mode": "'''Warnung:''' Der Funktion <code>[http://www.php.net/features.safe-mode Safe Mode]</code> von PHP ist aktiviert.\nDies kann zu Problemen führen, insbesondere wenn das Hochladen von Dateien möglich sein, bzw. der Auszeichner <code>math</code> genutzt werden soll.",
-       "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.\nSofern Mandriva genutzt wird, muss noch das „php-xml“-Paket installiert werden.",
+       "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.",
index e163a9b..8fe7294 100644 (file)
@@ -38,6 +38,7 @@
        "config-env-good": "Το περιβάλλον έχει ελεγχθεί.\nΜπορείτε να εγκαταστήσετε το MediaWiki.",
        "config-env-bad": "Το περιβάλλον έχει ελεγχθεί.\nΔεν μπορείτε να εγκαταστήσετε το MediaWiki.",
        "config-env-php": "H PHP $1 είναι εγκατεστημένη.",
+       "config-env-hhvm": "Το HHVM $1 είναι εγκατεστημένο.",
        "config-apc": "Το [http://www.php.net/apc APC] είναι εγκατεστημένο",
        "config-diff3-bad": "Το GNU diff3 δεν βρέθηκε.",
        "config-db-type": "Τύπος βάσης δεδομένων:",
        "config-db-username": "Όνομα χρήστη βάσης δεδομένων:",
        "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": "UTF-8 συμβατό προς τα πίσω με MySQL 4.0",
        "config-db-port": "Θύρα βάσης δεδομένων:",
+       "config-type-mysql": "MySQL (ή συμβατό)",
+       "config-type-mssql": "Microsoft SQL Server",
        "config-header-mysql": "Ρυθμίσεις MySQL",
        "config-header-postgres": "Ρυθμίσεις PostgreSQL",
        "config-header-sqlite": "Ρυθμίσεις SQLite",
        "config-missing-db-host": "Πρέπει να εισαγάγετε μια τιμή για \"{{int:config-db-host}}\".",
        "config-missing-db-server-oracle": "Πρέπει να εισαγάγετε μια τιμή για \"{{int:config-db-host-oracle}}\".",
        "config-connection-error": "$1.\n\nΕλέγξτε τη διεύθυνση, το όνομα χρήστη και τον κωδικό πρόσβασης και προσπαθήστε ξανά.",
+       "config-mssql-old": "Απαιτείται Microsoft SQL Server $1 ή νεώτερο. Εσείς έχετε $2.",
        "config-sqlite-readonly": "Το αρχείο <code>$1</code> δεν είναι εγγράψιμο.",
+       "config-sqlite-cant-create-db": "Δεν ήταν δυνατή η δημιουργία του αρχείου βάσης δεδομένων <code>$1</code>.",
        "config-regenerate": "Αναδημιουργία LocalSettings.php →",
+       "config-db-web-account": "Λογαριασμός βάσης δεδομένων για πρόσβαση ιστού",
        "config-mysql-engine": "Μηχανή αποθήκευσης:",
+       "config-mysql-innodb": "InnoDB",
+       "config-mysql-myisam": "MyISAM",
+       "config-mysql-binary": "Δυαδικό",
        "config-mysql-utf8": "UTF-8",
        "config-mssql-auth": "Τύπος ελέγχου ταυτότητας:",
+       "config-mssql-sqlauth": "Έλεγχος ταυτότητας του SQL Server",
        "config-mssql-windowsauth": "Έλεγχος ταυτότητας των Windows",
        "config-site-name": "Όνομα του wiki:",
        "config-site-name-help": "Αυτό θα εμφανίζεται στη γραμμή τίτλου του προγράμματος περιήγησης και σε διάφορα άλλα μέρη.",
@@ -81,6 +94,7 @@
        "config-admin-name": "Το όνομα χρήστη σας:",
        "config-admin-password": "Κωδικός πρόσβασης:",
        "config-admin-password-confirm": "Επανάληψη κωδικού πρόσβασης:",
+       "config-admin-name-blank": "Εισαγάγετε όνομα χρήστη διαχειριστή.",
        "config-admin-password-mismatch": "Οι δύο κωδικοί πρόσβασης που εισηγάγατε δεν ταιριάζουν.",
        "config-admin-email": "Διεύθυνση ηλεκτρονικού ταχυδρομείου:",
        "config-admin-error-bademail": "Έχετε εισαγάγει μη έγκυρη διεύθυνση ηλεκτρονικού ταχυδρομείου.",
        "config-profile-no-anon": "Απαιτείται η δημιουργία λογαριασμού",
        "config-profile-fishbowl": "Εξουσιοδοτημένοι συντάκτες μόνο",
        "config-profile-private": "Ιδιωτικό wiki",
+       "config-license": "Πνευματικά δικαιώματα και άδεια χρήσης:",
+       "config-license-none": "Χωρίς άδεια χρήσης στο υποσέλιδο",
+       "config-license-cc-by-sa": "Creative Commons Αναφορά Δημιουργού-Παρόμοια Διανομή",
+       "config-license-cc-by": "Creative Commons Αναφορά Δημιουργού",
+       "config-license-cc-by-nc-sa": "Creative Commons Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Παρόμοια Διανομή",
+       "config-license-cc-0": "Creative Commons Μηδέν (Κοινό Κτήμα)",
+       "config-license-gfdl": "Αδειοδότηση Ελεύθερης Τεκμηρίωσης GNU 1.3 ή μεταγενέστερη",
        "config-license-pd": "Κοινό Κτήμα",
        "config-license-cc-choose": "Επιλέξτε μια προσαρμοσμένη άδεια Creative Commons",
        "config-email-settings": "Ρυθμίσεις ηλεκτρονικού ταχυδρομείου",
+       "config-email-user": "Ενεργοποίηση ηλεκτρονικού ταχυδρομείου από χρήστη σε χρήστη",
        "config-email-usertalk": "Ενεργοποίηση ειδοποίησης σελίδας συζήτησης χρήστη",
        "config-email-auth": "Ενεργοποίηση ταυτοποίησης μέσω ηλεκτρονικού ταχυδρομείου",
+       "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-deleted": "Καταλόγος για διαγραφέντα αρχεία:",
        "config-logo": "Διεύθυνση URL λογότυπου:",
        "config-instantcommons": "Ενεργοποίηση Instant Commons",
        "config-skins-must-enable-default": "Το θέμα εμφάνισης που επιλέχθηκε ως προεπιλεγμένο πρέπει να είναι ενεργοποιημένο.",
        "config-install-step-done": "έγινε",
        "config-install-step-failed": "απέτυχε",
+       "config-install-extensions": "Γίνεται συμπερίληψη των επεκτάσεων",
        "config-install-database": "Ρύθμιση βάσης δεδομένων",
+       "config-install-schema": "Γίνεται δημιουργία του σχήματος της βάσης δεδομένων",
+       "config-install-pg-commit": "Γίνονται οι αλλαγές",
+       "config-install-pg-plpgsql": "Γίνεται έλεγχος για τη γλώσσα PL/pgSQL",
+       "config-pg-no-plpgsql": "Πρέπει να εγκαταστήσετε τη γλώσσα PL/pgSQL στη βάση δεδομένων $1",
+       "config-install-user": "Γίνεται η δημιουργία του χρήστη της βάσης δεδομένων",
        "config-install-user-alreadyexists": "Ο χρήστης \"$1\" υπάρχει ήδη",
+       "config-install-user-create-failed": "Η δημιουργία του χρήστη «$1» απέτυχε: $2",
+       "config-install-user-grant-failed": "Η παροχή άδειας στο χρήστη «$1» απέτυχε: $2",
+       "config-install-user-missing": "Ο χρήστης «$1» που καθορίστηκε δεν υπάρχει.",
        "config-install-tables": "Γίνεται δημιουργία πινάκων",
        "config-install-tables-failed": "<strong>Σφάλμα:</strong>Η δημιουργία πινάκων απέτυχε με το ακόλουθο μήνυμα λάθους: $1",
        "config-install-interwiki": "Γίνεται συμπλήρωση του προεπιλεγμένου πίνακα interwiki",
        "config-install-interwiki-list": "Αδυναμία ανάγνωσης του αρχείου <code>interwiki.list</code>.",
+       "config-install-stats": "Γίνεται αρχικοποίηση των στατιστικών",
+       "config-install-keys": "Γίνεται δημιουργία των μυστικών κλειδιών",
+       "config-install-sysop": "Γίνεται δημιουργία του λογαριασμού χρήστη του διαχειριστή",
+       "config-install-mainpage": "Γίνεται δημιουργία της αρχικής σελίδας με προεπιλεγμένο περιεχόμενο",
+       "config-install-extension-tables": "Γίνεται δημιουργία πινάκων για τις εγκατεστημένες επεκτάσεις",
+       "config-install-mainpage-failed": "Δεν ήταν δυνατή η εισαγωγή της αρχικής σελίδας: $1",
+       "config-download-localsettings": "Λήψη του <code>LocalSettings.php</code>",
        "config-help": "βοήθεια",
+       "config-help-tooltip": "κλικ για ανάπτυξη",
+       "config-nofile": "Το αρχείο «$1» δεν μπορεί να βρεθεί. Μήπως έχει διαγραφεί;",
        "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]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Τοπικοποιήστε το MediaWiki για τη γλώσσα σας]"
 }
index 0dc8e88..c19e3ee 100644 (file)
@@ -57,7 +57,7 @@
        "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 option corrupts data input unpredictably.\nYou cannot install or use MediaWiki unless this option is disabled.",
        "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-safe-mode": "<strong>Warning:</strong> PHP's [http://www.php.net/features.safe-mode safe mode] is active.\nIt may cause problems, particularly if using file uploads and <code>math</code> support.",
-       "config-xml-bad": "PHP's XML module is missing.\nMediaWiki requires functions in this module and will not work in this configuration.\nIf you're running Mandrake, install the php-xml package.",
+       "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.",
index 250816a..7aebc86 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Airon90",
                        "Yekrats",
-                       "KuboF"
+                       "KuboF",
+                       "Fitoschido"
                ]
        },
        "config-desc": "Instalilo de MediaWiki",
@@ -32,6 +33,7 @@
        "config-env-good": "La medio estis kontrolita.\nVi povas instali MediaWiki.",
        "config-env-bad": "La medio estis kontrolita.\nNe eblas instali MediaWiki.",
        "config-env-php": "PHP $1 estas instalita.",
+       "config-env-hhvm": "HHVM $1 instalatas.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] estas instalita.",
        "config-apc": "[http://www.php.net/apc APC] estas instalita",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] estas instalita",
index 593a303..995d576 100644 (file)
@@ -84,7 +84,7 @@
        "config-magic-quotes-sybase": "'''Fatal: ¡[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] está activada!'''\nEsta opción causa la imprevisible corrupción de la entrada de datos.\nNo puedes instalar o utilizar MediaWiki a menos que esta opción esté inhabilitada.",
        "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-safe-mode": "<strong>Advertencia:</strong> el [http://www.php.net/features.safe-mode modo seguro] de PHP está activado.\nEste modo puede causar problemas, especialmente en la carga de archivos y en compatibilidad con <code>math</code>.",
-       "config-xml-bad": "Falta el módulo XML de PHP.\nMediaWiki necesita funciones en este módulo y no funcionará con esta configuración.\nSi estás usando Mandrake, instala el paquete php-xml.",
+       "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, aumentada a $2.",
        "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 por defecto de MediaWiki incluye espacio para un logotipo de 135x160 píxeles encima del menú de la barra lateral.\nCargua una imagen de tamaño adecuado e introduce 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-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-cc-error": "El selector de licencia de Creative Commons no dio resultado.\nEscribe el nombre de la licencia manualmente.",
        "config-install-begin": "Al pulsar en «{{int:config-continue}}» comenzará el proceso de instalación de MediaWiki.\nSi quieres realizar algún cambio, pulsa en «{{int:config-back}}».",
        "config-install-step-done": "hecho",
        "config-install-step-failed": "falló",
-       "config-install-extensions": "Extensiones inclusive",
+       "config-install-extensions": "Incluyendo extensiones",
        "config-install-database": "Configurando la base de datos",
        "config-install-schema": "Creando el esquema",
        "config-install-pg-schema-not-exist": "El esquema PostgreSQL no existe.",
index a3732a8..2e161f6 100644 (file)
@@ -66,7 +66,7 @@
        "config-license-cc-by": "Creative Commonsi litsents \"Autorile viitamine\"",
        "config-license-cc-by-nc-sa": "Creative Commonsi litsents \"Autorile viitamine + mitteäriline eesmärk + jagamine samadel tingimustel\"",
        "config-email-settings": "E-posti sätted",
-       "config-email-sender": "Saatja e-aadress:",
+       "config-email-sender": "Saatja e-posti aadress:",
        "config-logo": "Logo internetiaadress:",
        "config-cc-again": "Vali uuesti...",
        "config-extensions": "Lisad",
index 6452fc6..2d06d42 100644 (file)
        "config-oracle-temp-ts": "جدول موقت:",
        "config-type-mysql": "مای‌اس‌کیو‌ال (یا سازگار)",
        "config-type-mssql": "سرور مایکروسافت اس‌کیو‌ال",
-       "config-support-info": "مدیاویکی سامانه‌های پایگاه اطلاعاتی زیر را حمایت می‌کند:\n$1\nاگر متوجه سامانه پایگاه اطلاعاتی که سعی دارید از فهرست زیر استفاده کنید، نمی‌شوید، بنابراین دستورالعمل‌های مرتبط در بالا را برای فعالکردن پشتیبانی دنبال کنید.",
+       "config-support-info": "مدیاویکی سامانه‌های پایگاه اطلاعاتی زیر را حمایت می‌کند:\n$1\nاگر متوجه سامانه پایگاه اطلاعاتی که سعی دارید از فهرست زیر استفاده کنید، نمی‌شوید، بنابراین دستورالعمل‌های مرتبط در بالا را برای فعال کردن پشتیبانی دنبال کنید.",
        "config-dbsupport-mysql": "*[{{int:version-db-mysql-url}} MySQL] مهم‌ترین هدف برای مدیاویکی است و بهترین پشتیبانی. مدیاویکی همچنین کار می‌کند با [{{int:version-db-mariadb-url}} MariaDB] و [{{int:version-db-percona-url}} Percona Server] که با MySQL سازگار هستند.([http://www.php.net/manual/en/mysqli.installation.php چگونه php را با MySQL کامپایل کنیم])",
        "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] یک منبع آزاد پر‌طرفدار دستگاه پایگاه اطلاعاتی به عنوان یک غیرمتعارف برای مای‌اس‌کیوال است.ممکن است عیوب بارز مختصری باشد، و برای استفاده در یک محیط تولیدی توصیه نمی‌شود.([http://www.php.net/manual/en/pgsql.installation.php how to compile PHP with PostgreSQL support])",
        "config-dbsupport-sqlite": "*[{{int:version-db-sqlite-url}} اس‌کیولایت] یک سامانه پایگاه اطلاعاتی کم حجمی است که بسیار خوب پشتیبانی شده‌است.\n([http://www.php.net/manual/en/pdo.installation.php چگونگی کامپایل پی‌اچ‌پی با اس‌کیولایت]، از PDO استفاده می‌کند)",
        "config-email-settings": "تنظیمات ایمیل",
        "config-enable-email": "فعال‌سازی ایمیل خروجی",
        "config-enable-email-help": "اگر می‌خواهید ارسال ایمیل کار کند، [http://www.php.net/manual/en/mail.configuration.php PHP's mail settings] نیازمند پیکربندی صحیح است.\nاگر هیچ قابلیت ایمیلی نمی‌خواهید، می‌توانید آنها را اینجا غیر‌فعال کنید.",
-       "config-email-user": "فعالکردن ایمیل کاربر به کاربر",
+       "config-email-user": "فعال کردن ایمیل کاربر به کاربر",
        "config-email-user-help": "به همهٔ کاربرانی که ارسال ایمیل را در ترجیحات خود فعال کرده‌اند، اجازه داده خواهد شد که به یکدیگر ایمیل ارسال کنند.",
-       "config-email-usertalk": "فعالکردن اطلاع‌رسانی صفحهٔ بحث کاربر",
+       "config-email-usertalk": "فعال کردن اطلاع‌رسانی صفحهٔ بحث کاربر",
        "config-email-usertalk-help": "به همهٔ کاربرانی که دریافت اطلاعیه را در اولویت‌های خود فعال کرده‌اند،اجازه خواهد داده‌شد که اطلاعیه‌ها را در صفحهٔ تغییر گفت‌وگوی کاربر دریافت کنند.",
-       "config-email-watchlist": "فعالکردن اطلاع‌رسانی فهرست پیگیری‌ها",
+       "config-email-watchlist": "فعال کردن اطلاع‌رسانی فهرست پیگیری‌ها",
        "config-email-watchlist-help": "به همهٔ کاربرانی که مشاهدهٔ صفحه را در اولویت‌های خود فعال کرده‌اند،اجازه خواهد داده‌شد که اطلاعیه‌های در رابطه با صفحات مشاهده شده را دریافت کنند.",
        "config-email-auth": "فعال کردن احراز هویت توسط ایمیل",
-       "config-email-auth-help": "اگر این گزینه را فعال کنید، کاربران باید ایمیل خود را با استفاده از پیوند تأیید که به ایمیلشان ارسال می‌شود، تأیید کنند. \nدر این صورت تنها ایمیل‌هایی که تأیید شده باشند، می‌توانند از سیستم در هنگام تغییرات، ایمیل دریافت کنند.\nبرای ویکی‌هایی که به صورت عمومی استفاده می‌شوند، فعالکردن این گزینه پیشنهاد می‌شود.",
+       "config-email-auth-help": "اگر این گزینه را فعال کنید، کاربران باید ایمیل خود را با استفاده از پیوند تأیید که به ایمیلشان ارسال می‌شود، تأیید کنند. \nدر این صورت تنها ایمیل‌هایی که تأیید شده باشند، می‌توانند از سیستم در هنگام تغییرات، ایمیل دریافت کنند.\nبرای ویکی‌هایی که به صورت عمومی استفاده می‌شوند، فعال کردن این گزینه پیشنهاد می‌شود.",
        "config-email-sender": "آدرس ایمیل بازگشت:",
        "config-email-sender-help": "آدرس ایمیلی را وارد کنید که هنگام ارسال ایمیل خارج از محدوده از آن به عنوان ایمیل بازگشت استفاده شود.\nبه جایی که پیام‌ها برگشت داده می‌شوند، فرستاده خواهد شد.\nبسیاری از سرورهای پستی حداقل به بخش نام عمومی معتبر نیاز دارند.",
        "config-upload-settings": "بارگذاری‌های پرونده و تصویر",
        "config-upload-deleted-help": "فهرستی برای بایگانی کردن پوشه‌های حذف شده انتخاب کنید.\nبه طور مطلوب،از شبکه نباید در دسترس باشد.",
        "config-logo": "نشانی نامواره:",
        "config-logo-help": "پوستهٔ پیش‌فرض مدیاویکی شامل مکانی برای یک آرم ۱۳۵x۱۶۰ پیکسلی بالای منوی نوارکناری است.\nیک عکس با اندازهٔ مناسب ارسال کنید، و یوآرال را اینجا وارد کنید.\nاگر آرم شما با آن راه‌ها مزتبط است،می‌توانید از <code>$wgStylePath</code> یا <code>$wgScriptPath</code> استفاده کنید.\nاگر آرم نمی‌خواهید، این جعبه را خالی رها کنید.",
-       "config-instantcommons": "فعال‌کردن فوری کامنز",
+       "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-cc-error": "مجوز چوزر عوام سازنده بی‌نتیجه ماند.\nنام مجوز را دستی وارد کنید.",
        "config-cc-again": "انتخاب دوباره...",
index 39c46b5..f84063b 100644 (file)
@@ -13,6 +13,7 @@
        "config-mysql-binary": "Binêr",
        "config-ns-generic": "Projekt",
        "config-admin-password": "Wachtwurd:",
+       "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]"
index 940b4c0..849a517 100644 (file)
@@ -50,7 +50,6 @@
        "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-utf8": "Usando utf8_normalize.so de Brion Vibber para a normalización Unicode.",
        "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 á implementació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.",
@@ -63,7 +62,7 @@
        "config-magic-quotes-sybase": "<strong>Erro fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] está activado!</strong>\nEsta opción corrompe os datos de entrada de xeito imprevisible.\nNon pode instalar ou empregar MediaWiki a menos que esta opción estea desactivada.",
        "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-safe-mode": "<strong>Atención:</strong> O [http://www.php.net/features.safe-mode safe mode] do PHP está activado.\nIsto pode causar problemas, particularmente se emprega cargas de ficheiros e soporte de <code>math</code>.",
-       "config-xml-bad": "Falta o módulo XML do PHP.\nMediaWiki necesita funcións neste módulo e non funcionará con esta configuración.\nSe está executando o Mandrake, instale o paquete php-xml.",
+       "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.",
index 3419089..9b5a322 100644 (file)
@@ -52,7 +52,6 @@
        "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-utf8": "משתמש ב־utf8_normalize.so של בריון ויבר לנרמול יוניקוד.",
        "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 לעדכן] אם הטיפול ביוניקוד חשוב לך.",
@@ -65,7 +64,7 @@
        "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": "'''אזהרה:''' האפשרות [http://www.php.net/features.safe-mode safe mode] של PHP פעילה.\nהיא יכולה לגרום לבעיות, במיוחד אם אתם משתמשים בהעלאת קבצים או ב־<code>math</code>.",
-       "config-xml-bad": "×\9e×\95×\93×\95×\9c XML ×©×\9c PHP ×\97סר.\n×\9e×\93×\99×\94Ö¾×\95×\99ק×\99 ×\93×\95רשת ×¤×\95נקצ×\99×\95ת ×©×\9c ×\94×\9e×\95×\93×\95×\9c ×\95×\9c×\90 ×ª×¢×\91×\95×\93 ×¢×\9d ×\94×\92×\93ר×\95ת ×\9b×\90×\9c×\95.\n×\90×\9d ×\9eער×\9bת ×\94×\94פע×\9c×\94 ×©×\9c×\94×\9d ×\94×\99×\90 Mandrake, ×\94תק×\99× ×\95 ×\90ת ×\94×\97×\91×\99×\9c×\94 php-xml.",
+       "config-xml-bad": "×\9e×\95×\93×\95×\9c XML ×©×\9c PHP ×\97סר.\n×\9e×\93×\99×\94Ö¾×\95×\99ק×\99 ×\93×\95רשת ×¤×\95נקצ×\99×\95ת ×©×\9c ×\94×\9e×\95×\93×\95×\9c ×\95×\9c×\90 ×ª×¢×\91×\95×\93 ×¢×\9d ×\94×\92×\93ר×\95ת ×\9b×\90×\9c×\95.\n×\99×\99ת×\9b×\9f ×©×¦×¨×\99×\9a ×\9c×\94תק×\99×\9f ×\91×\90×\9eצע×\95ת RPM ×\90ת ×\97×\91×\99×\9cת 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.",
index cf5ad45..d011fa9 100644 (file)
        "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-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-magic-quotes-runtime": "'''Kritikus hiba: a [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] aktív!'''\nEz a beállítás kiszámíthatatlan károkat okoz a bevitt adatokban.\nA MediaWiki csak akkor telepíthető, ha ki van kapcsolva.",
        "config-magic-quotes-sybase": "'''Kritikus hiba: a [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_sybase] aktív!'''\nEz a beállítás kiszámíthatatlan károkat okoz a bevitt adatokban.\nA MediaWiki csak akkor telepíthető, ha ki van kapcsolva.",
        "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-safe-mode": "'''Figyelmeztetés:''' A PHP [http://www.php.net/features.safe-mode safe mode]-ja be van kapcsolva.\nProblémákat okozhat, különösen a fájlfeltöltéseknél és a <code>math</code>-támogatás használatánál.",
-       "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 beállítások mellett.\nHa Madrake-et futtatsz, telepítsd a php-xml csomagot.",
+       "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ó.",
        "config-imagemagick": "Az ImageMagick megtalálható a rendszeren: <code>$1</code>.\nA bélyegképek készítése engedélyezve lesz a feltöltések engedélyezése esetén.",
        "config-gd": "A GD grafikai könyvtár elérhető.\nBélyegképek készítése működni fog, miután engedélyezted a fájlfeltöltést.",
        "config-no-scaling": "Nem található a GD könyvtár és az ImageMagick.\nA bélyegképek készítése le lesz tiltva.",
        "config-no-uri": "'''Hiba:''' Nem sikerült megállapítani a jelenlegi URI-t.\nTelepítés megszakítva.",
+       "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-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 paraméter hosszát $1 bájtra korlátozza. A MediaWiki erőforrásbetöltő összetevője megkerüli a problémát, de így csökkenni fog a teljesítmény. Ha 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 LocalSettings.php-ben.",
+       "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-host": "Adatbázis hosztneve:",
        "config-db-host-help": "Ha az adatbázisszerver másik szerveren található, add meg a hosztnevét vagy az IP-címét.\n\nHa megosztott webtárhelyet használsz, a szolgáltató dokumentációjában megtalálható a helyes hosztnév.\n\nHa Windows-alapú szerverre telepítesz, és MySQL-t használsz, a „localhost” nem biztos, hogy működni fog. Ha így van, próbáld meg a „127.0.0.1” helyi IP-cím használatát.\n\nHa PostgreSQL-t használsz, hagyd ezt a mezőt üresen a Unix-socketon keresztül történő csatlakozáshoz.",
        "config-db-username": "Felhasználónév:",
        "config-db-password": "Jelszó:",
        "config-db-password-empty": "Írd be az új adatbázis-felhasználó jelszavát: $1\nVan lehetőség jelszó nélküli felhasználók létrehozására, azonban ez nem ajánlott.",
+       "config-db-username-empty": "A „{{int:config-db-username}}” mező kitöltése kötelező.",
        "config-db-install-username": "Írd be az adatbázisrendszerhez való csatlakozáshoz használt felhasználónevet.\nEz nem a MediaWiki fiók felhasználóneve; ez az adatbázisrendszeren használt felhasználóneved.",
        "config-db-install-password": "Írd be az adatbázisrendszerhez való csatlakozáshoz használt jelszót.\nEz nem a MediaWiki-fiók jelszava; ez az adatbázisrendszeren használt jelszavad.",
        "config-db-install-help": "Add meg a felhasználónevet és jelszót, amivel a telepítő csatlakozhat az adatbázishoz.",
        "config-dbsupport-postgres": "* A [{{int:version-db-postgres-url}} PostgreSQL] népszerű, nyílt forráskódú adatbázisrendszer, a MySQL alternatívája ([http://www.php.net/manual/en/pgsql.installation.php Hogyan fordítható a PHP PostgreSQL-támogatással]). Több apró, javítatlan hiba is előfordulhat, így nem ajánlott éles környezetben használni. ([http://www.php.net/manual/en/pgsql.installation.php Hogyan fordítható a PHP PostgreSQL-támogatással])",
        "config-dbsupport-sqlite": "* Az [{{int:version-db-sqlite-url}} SQLite] egy könnyű, nagyon jól támogatott adatbázisrendszer. ([http://www.php.net/manual/en/pdo.installation.php Hogyan fordítható a PHP SQLite-támogatással], PDO-t használ)",
        "config-dbsupport-oracle": "* Az [{{int:version-db-oracle-url}} Oracle] kereskedelmi, vállalati adatbázisrendszer. ([http://www.php.net/manual/en/oci8.installation.php Hogyan fordítható a PHP OCI8-támogatással])",
+       "config-dbsupport-mssql": "* A [{{int:version-db-mssql-url}} Microsoft SQL Server] kereskedelmi, vállalati adatbázisrendszer. ([http://www.php.net/manual/en/sqlsrv.installation.php Hogyan fordítható a PHP SQLSRV-támogatással])",
        "config-header-mysql": "MySQL-beállítások",
        "config-header-postgres": "PostgreSQL-beállítások",
        "config-header-sqlite": "SQLite-beállítások",
        "config-extensions": "Kiterjesztések",
        "config-extensions-help": "A fent felsorolt kiterjesztések találhatóak meg az <code>./extensions</code> könyvtárban.\n\nLehetséges, hogy további beállításra lesz szükség hozzájuk, de már most engedélyezheted őket.",
        "config-skins": "Felületek",
+       "config-skins-help": "A fent felsorolt felületek a <code>./skins</code> könyvtáradban találhatóak. Legalább egyet engedélyezned kell, és ki kell választanod az alapértelmezettet.",
        "config-skins-use-as-default": "Felület használata alapértelmezettként",
+       "config-skins-must-enable-some": "Legalább egy felületet engedélyezned kell.",
+       "config-skins-must-enable-default": "Az alapértelmezett felületnek engedélyezettnek kell lennie.",
        "config-install-alreadydone": "'''Figyelmeztetés:''' Úgy tűnik, hogy a MediaWiki telepítve van, és te ismét megpróbálod telepíteni.\nFolytasd a következő oldalon.",
        "config-install-begin": "A „{{int:config-continue}}” gomb megnyomása elindítja a MediaWiki telepítését.\nHa szeretnél módosítani a beállításokon, kattints a \"{{int:config-back}}\" gombra.",
        "config-install-step-done": "kész",
        "config-install-stats": "Statisztika inicializálása",
        "config-install-keys": "Titkos kulcsok generálása",
        "config-insecure-keys": "'''Figyelmeztetés:''' A telepítés során generált $1 {{PLURAL:$2|biztonsági kulcs|biztonsági kulcsok}} nem teljesen $1 {{PLURAL:$2|biztonságos|biztonságosak}}. Érdemes {{PLURAL:$2||őket}} manuálisan megváltoztatni.",
+       "config-install-updates": "Nem szükséges frissítések futtatásának megakadályozása",
        "config-install-sysop": "Az adminisztrátor felhasználói fiókjának létrehozása",
        "config-install-subscribe-fail": "Nem sikerült feliratkozni a mediawiki-announce levelezőlistára: $1",
        "config-install-subscribe-notpossible": "A cURL nincs telepítve és az <code>allow_url_fopen</code> nem érhető el.",
        "config-install-done": "'''Gratulálunk!'''\nA MediaWiki telepítése sikeresen befejeződött.\n\nA telepítő elkészítette a <code>LocalSettings.php</code> fájlt, amely tartalmazza az összes beállítást.\n\nEzt le kell tölteni, majd elhelyezni a wiki telepítési könyvtárába (az a könyvtár, ahol az index.php is található).\n\nA letöltés automatikusan elindul. Ha mégsem indulna el, vagy megszakítottad, az alábbi linkre kattintva újra letöltheted:\n\n$3\n\n'''Megjegyzés''': Ha ezt most nem teszed meg, és kilépsz a telepítésből, az elkészített konfigurációs fájlt nem tudod elérni a későbbiekben.\n\nHa végeztél a fájl elhelyezésével, '''[$2 beléphetsz a wikibe]'''.",
        "config-download-localsettings": "<code>LocalSettings.php</code> letöltése",
        "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.",
        "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]"
 }
index 113c7ab..7c4bac1 100644 (file)
@@ -7,7 +7,7 @@
                ]
        },
        "config-desc": "Et Projramm för Mediwiki opzesäze.",
-       "config-title": "MediaWiki $1 opsäze",
+       "config-title": "MehdijaWikki $1 opsäze",
        "config-information": "Enfomazjuhn",
        "config-localsettings-upgrade": "De Dattei <code lang=\"en\"><code>LocalSettings.php</code></code> es ald doh.\nDe Projramme vum Wiki künne op der neußte Shtand jebraat wääde:\nDonn doför dä Wäät vum <code lang=\"en\">$wgUpgradeKey</code> en dat heh Feld enjävve.\nDo fenggs_et en dä Dattei <code lang=\"en\"><code>LocalSettings.php</code></code> om ẞööver.",
        "config-localsettings-cli-upgrade": "En Dattei <code lang=\"en\"><code>LocalSettings.php</code></code> es jefonge woode.\nÖm et Wiki_Projramm op ene neue Shtand ze bränge, donn <code lang=\"en\">update.php</code> oproofe.",
        "config-back": "← Retuur",
        "config-continue": "Wigger →",
        "config-page-language": "Schprohch",
-       "config-page-welcome": "Wellkumme beim MediaWiki!",
+       "config-page-welcome": "Wellkumme beim MehdijaWikki!",
        "config-page-dbconnect": "Met dä Daatebangk Verbenge",
        "config-page-upgrade": "En Inshtallzjuhn op der neuste Shtand bränge",
        "config-page-dbsettings": "Parrameeter för de Daatebangk",
-       "config-page-name": "Name",
+       "config-page-name": "Nahme",
        "config-page-options": "Ennställunge",
        "config-page-install": "Opsäzze",
-       "config-page-complete": "Fäädesch!",
+       "config-page-complete": "Fähdesch!",
        "config-page-restart": "Et Opsäze norr_ens neu aanfange",
        "config-page-readme": "Donn mesch lässe! (<i lang=\"en\">read me</i>)",
        "config-page-releasenotes": "Henwies för heh di Version vum Projramm (<i lang=\"en\">Release notes</i>)",
        "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 Handbooch för Aanwender]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Handbooch för Administratore un Wiki_Köbesse]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Öff jeshtallte Froore 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ävung es jeprööf.\nDo kanns MediaWiki opsäze.",
-       "config-env-bad": "De Ömjävung es jeprööf.\nDo kanns MediaWiki nit opsäze.",
+       "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-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 die Sigg övver et [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations <i lang=\"en\">Unicode</i>-Nommaliseere] (es op Änglesch) aanloore.",
+       "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-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.",
@@ -61,7 +61,7 @@
        "config-magic-quotes-sybase": "'''Dä!''' Dem PHP singe Schallder <code lang=\"en\">[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]</code> es enjeschalldt.\nDä määt enjejovve Daate kapott, un doh draan kam_mer dann nix mieh repareere.\nDomet kam_mer MediaWiki nit ennreeshte un och nit loufe lohße.\nDat heiß, mer moß en affschallde, söns jeiht nix.",
        "config-mbstring": "'''Dä!''' 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 mieh 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-safe-mode": "'''Opjepaß:''' Dem PHP singe <code lang=\"en\">[http://www.php.net/features.safe-mode safe mode]</code> es aanjeschalldt. Dat kann Ärjer maache, besönders beim Datteie Huhlaade bei de Ongershtözung för <code lang=\"en\">math</code>-Befähle.",
-       "config-xml-bad": "Dem PHP sing XML-Modul es nit ze fenge.\nMediaWiki bruch Funxjohne en däm Modul un deiht et esu nit.\nWann De <i lang=\"en\">Mandrake</i> aam loufehäs, donn dat Pakätt <code lang=\"en\">php-xml</code> enstalleere.",
+       "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.",
@@ -73,7 +73,7 @@
        "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.",
        "config-no-cache": "'''Opjepaß:''' Mer kunnte dä <code lang=\"en\">[http://www.php.net/apc APC]</code>, dä <code lang=\"en\">[http://xcache.lighttpd.net/ XCache]</code> un dä <code lang=\"en\">[http://www.iis.net/download/WinCacheForPhp WinCache]</code> nit fenge.\nEt <i lang=\"en\">object caching</i> es nit müjjelesh un ußjeschalldt.",
-       "config-mod-security": "'''Opjepaß''': Dinge Webßööver hät <code lang=\"en\">[http://modsecurity.org/ mod_security]</code> enjeschalldt. Wann doh derbei en Enschtällong nit janz akeraat paßß, dann kann et goot sin, dat mer Probleme met MeedijaWiki un oc met ander Projramme kritt, die zohlööt, dat vun ußerhallef öhndsene Krohm op dä Webßööver jebraat wääde künnt.Beloor Der di Sigg <code lang=\"en\">[http://modsecurity.org/documentation/ mod_security documentation]</code> udder donn met dä Fachlück för Dinge Webßööver kalle, wann zohfälleje un koomijje Fähler bemerke deihß.",
+       "config-mod-security": "<strong>Opjepaß</strong>: Dinge Wäbßööver hät <code  lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[http://modsecurity.org/ mod_security]</code> enjeschalldt. Jenohch schtandattmähßejje Enschtällonge heh em Wikki künne Problehme met MehdijaWikki un och met ander Projramme aanschtivvelle, di zohlohße, dat vun ußerhallef öhndsene Krohm op dä Webßööver jebraat wähde künnt.\nWann müjjelesch sullt mer dat affschallde. Söns beloor Der di Sigg <code  lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[http://modsecurity.org/documentation/ mod_security documentation]</code> udder donn met dä Fachlück för Dinge Webßööver kalle, wann zohfälleje un koomijje Fähler bemärke deihß.",
        "config-diff3-bad": "Mer han <i lang=\"en\">GNU</i> <code lang=\"en\">diff3</code> nit jefonge.",
        "config-git": "Mer han de Väsjohn <code>$1</code> vun däm Väsjohnsverwalldongsprojamm <i lang=\"en\">Git</i> jefonge.",
        "config-git-bad": "Dat Väsjohnsverwalldongsprojamm <i lang=\"en\">Git</i> ham_mer nit jefonge.",
        "config-db-host-oracle": "Dä Daatebangk ier <i lang=\"en\" title=\"Transparent Network Substrate\">TNS</i>:",
        "config-db-host-oracle-help": "Donn ene jöltije [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm „<i lang=\"en\">Local Connect</i>“-Name] aanjävve. De Dattei „<code lang=\"en\">tnsnames.ora</code>“ moß för heh dat Projamm seschbaa un ze Lässe sin.<br />Wann heh de Projamm_Biblijoteeke für de Aanwänderprojramme för de Version 10g udder neuer enjesaz wääde, kam_mer och et [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm „<i lang=\"en\">Easy Connect</i>“] jenumme wääde för der Name ze verjävve.",
        "config-db-wiki-settings": "De Daate vum Wiki",
-       "config-db-name": "Dä Name vun dä Daatebangk:",
+       "config-db-name": "Dä Nahme vun dä Daatebangk:",
        "config-db-name-help": "Jiff ene Name aan, dä för Ding Wiki passe deiht.\nDoh sullte kei Zweschrereum un kein Stresche dren sin.\n\nWann De nit op Dingem eije Rääschner bes, künnt et sin, dat Dinge Provaider Der extra ene beshtemmpte Name för de Daatebangk jejovve hät, uffr dat de dä drom froore moß udder dat De de Daatebangke övver e Fommulaa selver enreeschte moß.",
        "config-db-name-oracle": "Schema för de Daatebangk:",
-       "config-db-account-oracle-warn": "Mer han drei Aate, wi mer <i lang=\"en\">Oracle</i> als Daatebangk aanbenge künne.\n\nWann De ene neue Zohjang op de Daatenbangk met Naame un Paßwoot mem Projramm för et Opsäze aanlääje wells, dann jif ene Zohjang met däm Rääsch „<i lang=\"en\">SYSDBA</i>“ aan, dä et alld jitt, un jif däm di Daate aan för dä neue Zohjang aanzelääje.\nDo kanns och dä neue Zohjang vun Hand aanlääje un heh beim Opsäze nur dää aanjävve — wann dä dat Rääsch hät, en de Daatebangk Schema_Objäkte aanzelääje.\nUdder De jiß zwei ongerscheidlijje Zohjäng op de Daatenbangk aan, woh eine vun dat Rääsch zom Aanlääje hät un dä andere moß dat nit un es för der nomaale Bedrief zohshtändesch.\n\nEn Skrep, wat ene Zohjang op de Daatenbangk aanlääsch met all dä nüüdejje Rääschde, fengks De em Verzeishneß <code lang=\"en\">maintenance/oracle/</code> vun Dingem MediaWiki. Donn draan dengke, dat ene Zohjang met beschrängkte Rääschde all di Müjjeleschkeite för et Waade un Repareere nit hät, di de jewöhnlejje Zoot Zohjang met sesh brängk.",
+       "config-db-account-oracle-warn": "Mer han drei Aate, wi mer <i lang=\"en\">Oracle</i> als Dahtebangk aanbenge künne.\n\nWann De ene neue Zohjang op de Dahtenbangk met Nahme un Paßwoot mem Projramm för et Opsäze aanlääje wells, dann jif ene Zohjang met däm Rääsch „<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"SYS - Database Administrator Authentication\">SYSDBA</i>“ aan, dä et alld jitt, un jif däm di Daate aan för dä neue Zohjang aanzelääje.\nDo kanns och dä neue Zohjang vun Hand aanlääje un heh beim Opsäze nur dää aanjävve — wann dä dat Rääsch hät, en de Daatebangk Schema_Objäkte aanzelääje.\nUdder De jiß zwei ongerscheidlijje Zohjäng op de Daatenbangk aan, woh eine vun dat Rääsch zom Aanlääje hät un dä andere moß dat nit un es för der nomaale Bedrief zohshtändesch.\n\nEn Skrep, wat ene Zohjang op de Dahtenbangk aanlääsch met all dä nüüdejje Rääschde, fengks De em Verzeishneß <code lang=\"en\">maintenance/oracle/</code> vun Dingem MediaWiki. Donn draan dengke, dat ene Zohjang met beschrängkte Rääschde all di Müjjeleschkeite för et Waade un Repareere nit hät, di de jewöhnlejje Zoot Zohjang met sesh brängk.",
        "config-db-install-account": "Der Zohjang för en Enreeschte",
        "config-db-username": "Dä Name vun däm Aanwender för dä Zohjref op de Daatebangk:",
        "config-db-password": "Et Paßwoot vun däm Aanwender för dä Zohjref op de Daatebangk:",
        "config-db-install-help": "Donn dä Name un et Paßwoot vun däm Aanwänder för der Zohjreff op de Daatebangk jäz för et Enreeshte aanjävve.",
        "config-db-account-lock": "Donn dersälve Name un et sälve Paßwoot för der nomaale Bedrief vum Wiki bruche",
        "config-db-wiki-account": "Dä Name vun däm Aanwender för dä Zohjref op de Daatebangk em nomaale Bedrief:",
-       "config-db-wiki-help": "Jiv ene Name un e Paßwoot aan, för dä Aanwender för dä Zohjref op de Daatebangk, wann et wiki nommaal aam Loufe es.\nWan et dä Name en der Daatebangk noch it jit, un dä Aanwender för dä Zohjref op de Daatebangk beim Enshtalleere\njenooch Beräschtijunge hät, läät dä heh dä Aanwender en der Daatebangk aan un jidd_em di Rääschde, di dä nüüdesch hät, ävver nit mieh.",
+       "config-db-wiki-help": "Jiv ene Nahme un e Paßwoot aan, för dä Aanwänder för dä Zohjref op de Dahtebangk, wann et Wikki nommahl aam Loufe es.\nWann et dä Nahme en der Dahtebangk noch nit jit, un dä Aanwender för dä Zohjrevv op de Dahtebangk beim Enschtallehre jenohch Berääschtejonge hät, läht dä heh dä Aanwänder en der Dahtebangk aan un jidd_em di Rääschde, di dä nühdesch hät, ävver nit mih.",
        "config-db-prefix": "Vörsaz för de Name vun de Tabälle en de Daatebangk:",
        "config-db-prefix-help": "Wann ein Daatebangk för mieh wi ein Wiki udder e Wiki uns söns jät zosamme jebruch weed, dann kam_mer noch jet vör de Tabälle ier Name säze. Esu ene Vörsaz sull dubblte Tabällename vermeide hälfe.\nDonn kein Zwescheräum enjävve!\n\nJewöhnlesch bliev dat Feld heh ävver läddesch.",
        "config-db-charset": "Dä Daatebangk iere Zeischesaz",
        "config-charset-mysql5-binary": "MySQL (4.1 udder 5.0) binär",
        "config-charset-mysql5": "MySQL (4.1 udder 5.0) UTF-8",
        "config-charset-mysql4": "MySQL 4.0 röckwääts kompatibel UTF-8",
-       "config-charset-help": "<strong>Opjepaß:</strong>\nWann De et <strong>röckwääts kompatibel UTF-8 Fommaht</strong> nemmps, met dem <i lang=\"en\">MySQL</i> singe Väsjohn 4.1 udder hüüter, dann künnt dat all di Zeische kappott maache, die nit em <i lang=\"en\" title=\"American Standard Code for Information Interchange\">ASCII</i> sen, un domet all Ding Sescherungskopieje kapott maache, wat mer nieh mieh retuur krijje kann.\n\nBeim Schpeischere em <strong>binäre Fomaat</strong> deiht MediaWiki de Täx, dä em UTF-8 Fommaht küt, en dä Dahtebangk en binähr kodehrte Dahtefälder faßhallde.\nDat es flöcker un spaasahmer 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 jrondlähje Knubbel för vill Schprohche (<i lang=\"en\">Basic Multilingual Plane — BMP</i>)] afjeschpeischert wähde.",
+       "config-charset-help": "<strong>Opjepaß:</strong>\nWann De et <strong>röckwääts kompatibel UTF-8 Fommaht</strong> nemmps, met dem <i lang=\"en\">MySQL</i> singe Väsjohn 4.1 udder hüüter, dann künnt dat all di Zeische kappott maache, di nit em <i lang=\"en\" title=\"American Standard Code for Information Interchange\">ASCII</i> sen, un domet all Ding Sescherungskopieje kapott maache, wat mer nieh mieh retuur krijje kann.\n\nBeim Schpeischere em <strong>binäre Fomaat</strong> deiht MediaWiki de Täx, dä em UTF-8 Fommaht küt, en dä Dahtebangk en binähr kodehrte Dahtefälder faßhallde.\nDat es flöcker un spaasahmer 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 jrondlähje Knubbel för vill Schprohche (<i lang=\"en\">Basic Multilingual Plane — BMP</i>)] afjeschpeischert wähde.",
        "config-mysql-old": "Mer bruche <i lang=\"en\">MySQL</i> $1 udder neuer. Em Momang es <i lang=\"en\">MySQL</i> $2 aam Loufe.",
        "config-db-port": "De Pooz-Nommer (<i lang=\"en\">port</i>) för de Daatebangk:",
-       "config-db-schema": "Et Schema en de Datebangk för MediaWiki:",
+       "config-db-schema": "Et Schehma en de Datebangk för MehdijaWikki:",
        "config-db-schema-help": "För jewöhnlesch es dat Schema en Odenong.\nDonn bloß jät draan ändere, wann De sescher weiß, dat dat nüüdesch es.",
        "config-pg-test-error": "Mer krijje kein Verbendung zor Daatebank '''$1''': $2",
        "config-sqlite-dir": "Dem <i lang=\"en\">SQLite</i> sing Daateverzeishnes:",
        "config-type-oracle": "<i lang=\"en\">Oracle</i>",
        "config-type-mssql": "Dä <i lang=\"en\" xml:lang=\"en\">SQL</i>-ẞööver vun <i lang=\"en\" xml:lang=\"en\">Microsoft</i>",
        "config-support-info": "MediaWiki kann met heh dä Daatebangk_Süßteeme zosamme jonn:\n\n$1\n\nWann dat Daatebangk_Süßteem, wat De nämme wells, onge nit dobei es, dann donn desch aan di Aanleidonge hallde, di bovve verlengk sen, öm et op Dingem ẞööver singem Süßteem müjjelesh ze maache, se aan et Loufe ze krijje.",
-       "config-dbsupport-mysql": "* <i lang=\"en\" xml:lang=\"en\">[{{int:version-db-mysql-url}} MySQL]</i> es dat vum MediaWiki et eets un et bäß ongerschtöz Daatebangksüßtehm. Et leuf ävver och met <i lang=\"en\" xml:lang=\"en\">[{{int:version-db-mariadb-url}} MariaDB]</i> un <i lang=\"en\" xml:lang=\"en\">[{{int:version-db-percona-url}} Percona Server]</i>. Di sin kumpatihbel mem <i lang=\"en\" xml:lang=\"en\">MySQL</i>. ([http://www.php.net/manual/de/mysql.installation.php Aanleidung för et Övversäze un Enreeschte von PHP met <i lang=\"en\">MySQL</i> dobei, op Deutsch])",
+       "config-dbsupport-mysql": "* <i lang=\"en\" xml:lang=\"en\">[{{int:version-db-mysql-url}} MySQL]</i> es dat vum MediaWiki et eets un et bäß ongerschtöz Daatebangksüßtehm. Et leuf ävver och met <i lang=\"en\" xml:lang=\"en\">[{{int:version-db-mariadb-url}} MariaDB]</i> un <i lang=\"en\" xml:lang=\"en\">[{{int:version-db-percona-url}} Percona Server]</i>. Di sin kumpatihbel mem <i lang=\"en\" xml:lang=\"en\">MySQL</i>. ([http://www.php.net/manual/de/mysql.installation.php Aanleidung för et Övversäze un Enreeschte von <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"PHP Hypertext Preprocessor\">PHP</i> met <i lang=\"en\">MySQL</i> dobei, op Deutsch])",
        "config-dbsupport-postgres": "* <i lang=\"en\">[{{int:version-db-postgres-url}} PostgreSQL]</i> es e bikannt Daatebangksüßtehm met offe Quälltäxde, un ed es och en Wahl nävve <i lang=\"en\">MySQL</i>. Et sinn_er ävver paa klein Fählersche bekannt, um mer künne et em Momang för et reschtijje Werke nit ämfähle. ([http://www.php.net/manual/de/pgsql.installation.php Aanleidung för et Övversäze un Enreeschte von PHP met <i lang=\"en\">PostgreSQL</i> dobei, op Deutsch])",
        "config-dbsupport-sqlite": "* <i lang=\"en\">[{{int:version-db-sqlite-url}} SQLite]</i> es e eijfach Daatebangksüßtehm, wat joot en Schoß jehallde weed. ([http://www.php.net/manual/de/pdo.installation.php Aanleidong för et Övversäze un Enreeschte von PHP met <i lang=\"en\">SQLite</i> dobei, op Deutsch])",
        "config-dbsupport-oracle": "* <i lang=\"en\">[{{int:version-db-oracle-url}} Oracle]</i> es e jeschäfflesch Daatebangksüßtehm för Ferme. ([http://www.php.net/manual/de/oci8.installation.php Aanleidong för et Övversäze un Enreeschte von PHP met <i lang=\"en\" xml:lang=\"en\">OCI8</i> dobei, op Deutsch])",
-       "config-dbsupport-mssql": "* Dä <i lang=\"en\" xml:lang=\"en\">[{{int:version-db-mssql-url}} Microsoft SQL Server]</i> es e jeschäfflesch Daatebangksüßtehm för Rääschner met <i lang=\"en\" xml:lang=\"en\">Windows</i>. ([http://www.php.net/manual/de/sqlsrv.installation.php Aanleidong för et Övversäze un Enreeschte von PHP met <i lang=\"en\" xml:lang=\"en\">SQLSRV </i> dobei, op Deutsch])",
+       "config-dbsupport-mssql": "* Dä <i lang=\"en\" xml:lang=\"en\">[{{int:version-db-mssql-url}} Microsoft SQL Server]</i> es e jeschäfflesch Dahtebangksüßtehm för Rääschner met <i lang=\"en\" xml:lang=\"en\">Windows</i>. ([http://www.php.net/manual/de/sqlsrv.installation.php Aanleidong för et Övversäze un Enreeschte von <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"PHP Hypertext Preprocessor\">PHP</i> met <i lang=\"en\" xml:lang=\"en\">SQLSRV </i> dobei, op Deutsch])",
        "config-header-mysql": "De Enshtällunge för de <i lang=\"en\">MySQL</i> Daatebangk",
        "config-header-postgres": "De Enshtällunge för de <i lang=\"en\">PostgreSQL</i> Daatebangk",
        "config-header-sqlite": "De Enshtällunge för de <i lang=\"en\">SQLite</i> Daatebangk",
        "config-invalid-db-prefix": "Dä Vörsaz för de Name vun de Tabälle en de Daatebangk kann nit „$1“ sin, dä es esu nit jöltesch.\nDöh dörve bloß <i lang=\"en\" title=\"American Standard Code for Information Interchange\">ASCII</i> Boochshtaabe (a-z, A-Z), Zahle (0-9), Ongerstreshe (_), un Bendeshtreshe (-) dren vörkumme.",
        "config-connection-error": "$1.\n\nDonn de Name för dä Rääschner, vun däm Aanwender för dä Zohjref op de Daatebangk, un et Paßwoot prööfe, repareere, un dann versöhg et norr_ens.",
        "config-invalid-schema": "Dat Schema för MediaWiki kann nit „$1“ sin, dä Name wöhr esu nit jöltesch.\nDöh dörve bloß <i lang=\"en\" title=\"American Standard Code for Information Interchange\">ASCII</i> Boochshtaabe (a-z, A-Z), Zahle (0-9), un Ongerstreshe (_) dren vörkumme.",
-       "config-db-sys-create-oracle": "Dat Projramm för MediaWiki opzesäze kann bloß <i lang=\"en\">SYSDBA</i> bruche för ene neue Zohjang zor Daatebangk enzereeschte!",
-       "config-db-sys-user-exists-oracle": "Dä Aanwender „$1“ för dä Zohjref op de Daatebangk jidd_et ald. <i lang=\"en\">SYSDBA</i> kam_mer bloß bruche, för ene neue Zohjang enzereeschte!",
+       "config-db-sys-create-oracle": "Dat Projramm för MehdijaWikki opzesäze kann blohß ene <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"SYS - Database Administrator Authentication\">SYSDBA</i>-Zohjang bruche för ene neuje Zohjang zor Dahtebangk ennzereeschte.",
+       "config-db-sys-user-exists-oracle": "Dä Aanwender „$1“ för dä Zohjref op de Daatebangk jidd_et ald. <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"SYS - Database Administrator Authentication\">SYSDBA</i> kam_mer bloß bruche, för ene neue Zohjang enzereeschte!",
        "config-postgres-old": "Mer bruche <i lang=\"en\">PostgreSQL</i> $1 udder neuer. Em Momang es <i lang=\"en\">PostgreSQL</i> $2 aam Loufe.",
        "config-mssql-old": "Dä <i lang=\"en\" xml:lang=\"en\">SQL</i>-ẞööver vun <i lang=\"en\" xml:lang=\"en\">Microsoft</i>   aff de Väsjohn $1 es nüüdesch. Heh es bloß d Väsjohn $2 ze fenge.",
-       "config-sqlite-name-help": "Söhk enen Name uß, dä Ding Wiki beschrief.\nDonn kein Bendeschresch un Zweschräum en däm Name bruche.\nDä Name weed för der Dateiname för de <i lang=\"en\">SQLite</i> Daatebangk jenumme.",
+       "config-sqlite-name-help": "Söhk ene Nahme uß, dä Ding Wikki beschrief.\nDonn kein Bendeschresch un Zweschräum en däm Name bruche.\nDä Name weed för der Datteinahme för de <i lang=\"en\">SQLite</i> Dahtebangk jenumme.",
        "config-sqlite-parent-unwritable-group": "Mer kunnte dat Verzeischneß för de Daate, <code lang=\"en\"><nowiki>$1</nowiki></code>, nit enreeschte, weil dat Projramm fö dä Web_ẞööver en dat Verzeischneß doh drövver, <code><nowiki>$2</nowiki></code>, nix erin donn darref.\n\nMer han dä Name vun däm Zohjang op et Süßteem eruß jefonge, onger dämm dat Web_ẞööver_Projramm läuf. Jez moß De bloß doför sorrje, dat dä en dat Verzeischneß  <code><nowiki>$3</nowiki></code> schrieve kann, öm heh wigger maache ze künne.\nOb enem Süßteem met <i lang=\"en\">Unix</i>- oder <i lang=\"en\">Linux</i> jeiht dat esu:\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
        "config-sqlite-parent-unwritable-nogroup": "Mer kunnte dat Verzeischneß för de Daate, <code lang=\"en\"><nowiki>$1</nowiki></code>, nit enreeschte, weil dat Projramm fö dä Web_ẞööver en dat Verzeischneß doh drövver, <code><nowiki>$2</nowiki></code>, nix erin donn darref.\n\nMer han dä Name vun däm Zohjang op et Süßteem nit eruß fenge künne, onger dämm dat Web_ẞööver_Projramm läuf. Jez moß De bloß doför sorrje, dat dä en dat Verzeischneß  <code><nowiki>$3</nowiki></code> schrieve kann, öm heh wigger maache ze künne. Wann De dä Name och nit weiß, maach, dat jeeder_ein doh schrieve kann.\nOb enem Süßteem met <i lang=\"en\">Unix</i>- oder <i lang=\"en\">Linux</i> jeiht dat esu:\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
        "config-sqlite-mkdir-error": "Ene Fähler es opjetrodde beim Aanlääje vum Daate_Verzeishneß „$1“.\nDon dä Plaz för et Shpeishere prööfe un Repareere, dann versöhg et norr_ens.",
        "config-sqlite-readonly": "En di Dattei <code lang=\"en\">$1</code> künne mer nit schrieve.",
        "config-sqlite-cant-create-db": "Mer kunnte di Dattei <code lang=\"en\">$1</code> för de Daatebangk nit aanlääje.",
        "config-sqlite-fts3-downgrade": "Dat PHP heh hät kein Ongershtözong för FTS3, dröm donn mer de Daatebangktabälle eronger shtoofe.",
-       "config-can-upgrade": "Et sinn-er ald Daatebangktabelle vum MediaWiki en dä Daatebangk.\nÖm di op der Shtand vum MediaWiki $1 ze bränge, donn jäz op „{{int:config-continue}}“ klecke.",
+       "config-can-upgrade": "Et sinn-er ald Dahtebangktabälle vum MehdijaWikki en dä Dahtebangk.\nÖm di op der Schtand vum MehdijaWikki $1 ze bränge, donn jäz op „{{int:config-continue}}“ klecke.",
        "config-upgrade-done": "Alles es jäz om neue Schtand.\n\nMer kann dat Wiki jäz [$1 bruche].\n\nWann De Ding Dattei <code lang=\"en\">LocalSettings.php</code> neu schrieve wells, donn onge op dä Knopp kleke.\nDat dom_mer ävver '''nit vörschlonn''' — em Jääjedeil — ußer, wann et Problehme mem Wiki jitt.",
        "config-upgrade-done-no-regenerate": "Alles es jäz om neue Shtand.\n\nMer kann dat Wiki jäz [$1 bruche].",
        "config-regenerate": "Donn de Dattei <code lang=\"en\">LocalSettings.php</code> neu opsäze →",
        "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-mssql-sqlauth": "De Aanmäldong bemm <i lang=\"en\" xml:lang=\"en\">SQL</i>-ẞööver vun <i lang=\"en\" xml:lang=\"en\">Microsoft</i>",
        "config-mssql-windowsauth": "De Annmäldong bemm <i lang=\"en\" xml:lang=\"en\">Windows</i>",
-       "config-site-name": "Däm Wiki singe Name:",
+       "config-site-name": "Däm Wikki singe Nahme:",
        "config-site-name-help": "Dä douch em Tettel vun de Brauserfinstere un aan ätlije andere Schtälle op.",
        "config-site-name-blank": "Donn ene Name för di Sait aanjävve.",
        "config-project-namespace": "Dä Name för et Appachtemang övver et Projäk:",
        "config-admin-error-user": "Beim Enreeshte vum Zohjang för dä Wiki_Köbes „<nowiki>$1</nowiki>“ es ene Fähler em Wiki opjetrodde.",
        "config-admin-error-password": "Beim Paßwoot-Säze för dä Wiki_Köbes „<nowiki>$1</nowiki>“ es ene Fähler em Wiki opjetrodde.: <pre>$2</pre>",
        "config-admin-error-bademail": "Do häs_en onjöltijje Addräß för de <i lang=\"en\">e-mail</i> aanjejovve.",
-       "config-subscribe": "Donn de [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce <i lang=\"en\">e-mail</i>-Leß met de Aanköndijunge vum MediaWiki] abonnere.",
+       "config-subscribe": "Donn de [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce \n<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i>-Leß met de Aanköndijonge vum MehdijaWikki] abonnehre.",
        "config-subscribe-help": "Do kumme bloß winnish Meddeilunge un di jonn övver neu Versiohne vom MediaWiki un weeshtejje Saache vun däm sing Sesherheit.\nDo sullts se abbonneere, un Ding MediWiki_Projramme op der neue Shtand bränge, wann neu Version eruß kumme.",
        "config-subscribe-noemail": "Do has versöhk, der ohne en Addräß för Ding <i lang=\"en\">e-mail<i> aanzejävve, de Aanköndijonge för Aanköndijunge för neue Versione ze abboneere. Jivv en Addräß aan, wann De di Aanköndijonge hann wells.",
-       "config-almost-done": "Do bes beinah dorsh!\nDo künnts jez der Räß vun de einzel Enshtellunge övverjonn, un et Wiki tiräktemang fäädesch opsäze.",
-       "config-optional-continue": "De wells noch mieh Frore jeshtallt krijje un noch mieh Enshtällunge maache?",
+       "config-almost-done": "Do bes beinah dorsch!\nDo künnts jez der Räß vun de einzel Enschtällonge övverjonn, un et Wiki tiräktemang fähdesch opsäze.",
+       "config-optional-continue": "De wells noch mih Frohre jeschtallt krijje un noch mih Enschtällonge maache?",
        "config-optional-skip": "Nä, lohß dä Ömshtand, donn eifarr_et Wiki opsäze.",
        "config-profile": "Enshtällunge för de Metmaacher ier Rääschte:",
        "config-profile-wiki": "En offe Wiki",
        "config-email-user": "<i lang=\"en\">e-mails</i> zwesche de Metmaacher zohlohße",
        "config-email-user-help": "Määt et müjjelesch, dat sesch de Metmaacher jääjesiggesch <i lang=\"en\">e-mails</i> schecke künne, wann se dat en iehre eije Enschtellunge och enjeschalldt han.",
        "config-email-usertalk": "<i lang=\"en\">e-mails</i> mem Bescheid zohlohße, dat einem sing Klaafsigg verändert woodt",
-       "config-email-usertalk-help": "Maach et müjjelesch, dat Metmaaacher en iere Enstellunge <i lang=\"en\">e-mails</i> mem Bescheid zohlohße, dat einem sing Klaafsigg verändert woodt.",
+       "config-email-usertalk-help": "Maach et müjjelesch, dat Metmaaacher en iere Enschtällonge <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mails</i>mem Bescheid zohlohße, dat einem sing Klaafsigg veränndert woodt.",
        "config-email-watchlist": "Nohreeschte övver Änderonge aan Sigg op de Opaßleßte zohlohße",
        "config-email-watchlist-help": "Lohß Metmaacher Nohreeshte övver de Sigge op dänne iehr Oppaßleß krijje, wann se et en iehre Enschtellonge ußjewählt han.",
        "config-email-auth": "Donn de Övverprööfung för Zohjangsberääschtejunge övver de <i lang=\"en\">e-mail</i> zohlohße",
        "config-install-user-missing": "Dä aanjejovve Metmaacher „$1“ jidd_et nit.",
        "config-install-user-missing-create": "{{int:Config-install-user-missing}}<!-- $1 -->\nDonn e Höhksche en et Käßje „{{int:Createaccount}}“ onge, wann De dä aanlääje wells.",
        "config-install-tables": "Ben de Daatebangk-Tabälle aam aanlääje.",
-       "config-install-tables-exist": "'''Opjepaß''': Et schingk, dem MediaWiki sing Tabälle sin alt doh.\nDoh dom_mer nix aanlääje.",
+       "config-install-tables-exist": "'''Opjepaß''': Et schingk, dem MehdijaWikki sing Tabälle sin alt doh.\nDoh dom_mer nix aanlääje.",
        "config-install-tables-failed": "'''Fähler''': De Tabälle kunnte nit aanjelaat wääde, wääje: $1",
        "config-install-interwiki": "Ben de Engerwiki-Tabäll met de shtandattmääßejje Daate aam fölle.",
        "config-install-interwiki-list": "Mer kunnte de Dattei <code lang=\"en\">interwiki.list</code> nit fenge.",
        "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.",
-       "mainpagetext": "'''MediaWiki es jäz enschtalleht.'''",
+       "mainpagetext": "'''MehdijaWikki es jäz enschtalleht.'''",
        "mainpagedocfooter": "Luur en et (änglesche) [//meta.wikimedia.org/wiki/Help:Contents Handbooch] wann De wesse wells wie de Wiki-Soffwär jebruch un bedeent wääde moß.\n\nLuur en et (änglesche) [//meta.wikimedia.org/wiki/Help:Contents Handbooch] wann De weße wells wi de Wiki-Soffwähr jebruch un bedehnt wääde moß.\n\n== För der Aanfang ==\nDat es och all op Änglesch:\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 Donn MediaWiki op Ding Schprohch aanpaße]"
 }
index 920d9ae..47dab58 100644 (file)
@@ -1,16 +1,58 @@
 {
        "@metadata": {
                "authors": [
-                       "George Animal"
+                       "George Animal",
+                       "Ghybu",
+                       "Bikarhêner"
                ]
        },
+       "config-desc": "Barkera MediaWikiyê",
+       "config-title": "Barkirina MediaWiki $1",
        "config-information": "Agahî",
        "config-your-language": "Zimanê te:",
        "config-wiki-language": "Zimanê wîkiyê:",
+       "config-back": "← Paş",
+       "config-continue": "Bidomîne →",
        "config-page-language": "Ziman",
+       "config-page-welcome": "Bi xêr hatî MediaWikiyê!",
+       "config-page-dbsettings": "Eyarên danegehê",
        "config-page-name": "Nav",
        "config-page-options": "Vebijêrk",
+       "config-page-install": "Ava bike",
+       "config-page-complete": "Qedîya!",
+       "config-page-restart": "Barkirinê jinûve dest pê bide kirin",
+       "config-page-readme": "Min bixwîne",
+       "config-page-copying": "Kopîkirin",
+       "config-page-existingwiki": "Wîkiya heye",
+       "config-restart": "Erê, jinûve bide destpêkirin",
+       "config-xcache": "[http://xcache.lighttpd.net/ XCache] hate avakirin",
+       "config-apc": "[http://www.php.net/apc APC] hate avakirin",
+       "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] hate avakirin",
+       "config-diff3-bad": "GNU diff3 nehate dîtin.",
+       "config-db-type": "Cureya danegehê:",
+       "config-db-wiki-settings": "Vî wîkîyê bide danasîn",
+       "config-db-name": "Navê danagehê:",
+       "config-db-install-account": "Hesabê bikarhêner bo avakirinê",
+       "config-db-username": "Navê bikarhêner bo danagehê:",
+       "config-db-password": "Şîfreya danegehê:",
+       "config-db-web-account": "Hesabê danegehê bô têgihiştina tora înternetê",
+       "config-mysql-myisam": "MyISAM",
+       "config-mysql-utf8": "UTF-8",
+       "config-site-name": "Navê wîkiyê:",
        "config-ns-generic": "Proje",
+       "config-ns-other-default": "MyWiki",
+       "config-admin-box": "Hesabê rêveberiyê",
+       "config-admin-name": "Navê bikarhêner:",
+       "config-admin-password": "Şîfre:",
+       "config-admin-password-confirm": "Şîfreyê dîsa binivîse:",
+       "config-admin-email": "Navnîşana e-nameyê:",
+       "config-optional-continue": "Bêhtir pirsan ji min bike.",
+       "config-profile": "Profîla mafên bikarhêner:",
+       "config-profile-wiki": "Wîkiya vekirî",
+       "config-email-settings": "Eyarên e-nameyê",
+       "config-email-usertalk": "Agahdariyên rûpela gotûbêjê ya bikarhêner gengaz bike",
+       "config-upload-settings": "Barkirina wêne û dosyeyan",
+       "config-upload-enable": "Barkirina dosyeyan gengaz bike",
        "config-install-step-done": "çêbû",
        "config-help": "alîkarî",
        "mainpagetext": "'''MediaWiki serketî hate çêkirin.'''",
index 8302c03..8c6cb8b 100644 (file)
@@ -2,9 +2,11 @@
        "@metadata": {
                "authors": [
                        "Umeshberma",
-                       "बिप्लब आनन्द"
+                       "बिप्लब आनन्द",
+                       "Bijay chaurasia"
                ]
        },
+       "config-desc": "मेडिया-विकी के लेल इंस्टॉलर",
        "config-information": "जानकारी",
        "config-your-language": "अहाँक भाषा:",
        "config-your-language-help": "प्रतिस्थापन होएतकाल भाषाके चयन करू",
index 8649484..582919d 100644 (file)
@@ -60,7 +60,7 @@
        "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": "'''Предупредување:''' [http://www.php.net/features.safe-mode безбедниот режим] на PHP е активен.\nОва може да предизвика проблеми, особено ако користите подигања и поддршка за <code>math</code>.",
-       "config-xml-bad": "XML-модÑ\83лоÑ\82 Ð·Ð° PHP Ð½ÐµÐ´Ð¾Ñ\81Ñ\82аÑ\81Ñ\83ва.\nÐ\9cедиÑ\98аÐ\92ики Ð¸Ð¼Ð° Ð¿Ð¾Ñ\82Ñ\80еба Ð¾Ð´ Ñ\84Ñ\83нкÑ\86ии Ð²Ð¾ Ð¾Ð²Ð¾Ñ\98 Ð¼Ð¾Ð´Ñ\83л Ð¸ Ð½ÐµÐ¼Ð° Ð´Ð° Ñ\80абоÑ\82и Ñ\81о Ð¾Ð²Ð¸Ðµ Ð¿Ð¾Ñ\81Ñ\82авки.\nÐ\90ко Ñ\80абоÑ\82иÑ\82е Ñ\81о Mandrake, Ð²Ð¾Ñ\81поÑ\81Ñ\82авеÑ\82е Ð³Ð¾ Ð¿Ð°ÐºÐµÑ\82оÑ\82 php-xml.",
+       "config-xml-bad": "XML-модÑ\83лоÑ\82 Ð·Ð° PHP Ð½ÐµÐ´Ð¾Ñ\81Ñ\82аÑ\81Ñ\83ва.\nÐ\9cедиÑ\98аÐ\92ики Ð¸Ð¼Ð° Ð¿Ð¾Ñ\82Ñ\80еба Ð¾Ð´ Ñ\84Ñ\83нкÑ\86ии Ð²Ð¾ Ð¾Ð²Ð¾Ñ\98 Ð¼Ð¾Ð´Ñ\83л Ð¸ Ð½ÐµÐ¼Ð° Ð´Ð° Ñ\80абоÑ\82и Ñ\81о Ð¾Ð²Ð¸Ðµ Ð¿Ð¾Ñ\81Ñ\82авки.\nÐ\9cоже Ð´Ð° Ñ\82Ñ\80еба Ð´Ð° Ð³Ð¾ Ð²Ð¾Ñ\81поÑ\81Ñ\82авиÑ\82е RPM-пакеÑ\82оÑ\82 â\80\9ephp-xmlâ\80\9c.",
        "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.\nМедијаВики бара поддршка за UTF-8 за да може да работи правилно.",
        "config-memory-raised": "<code>memory_limit</code> за PHP изнесува $1, зголемен на $2.",
index 3a43d90..2f2707e 100644 (file)
@@ -48,7 +48,6 @@
        "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-utf8": "Aúsa Brion Vibber's utf8_normalize.so pe' ne fà 'a normalizzazione Unicode.",
        "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-support-info": "MediaWiki supporta 'e sisteme 'e database ccà abbascio:\n\n$1\n\nSi nfra chiste ccà nun vedite 'o sistema 'e database ca vulite ausà, allora avite liegge 'e instruziune ccà ncoppa pe' ne dà supporto.",
        "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] è 'a configurazione cchiù mmeglio p' 'o MediaWiki e è chilla meglio suppurtata. MediaWiki può faticà pure cu' [{{int:version-db-mariadb-url}} MariaDB] e [{{int:version-db-percona-url}} Percona Server], ca fossero MySQL cumpatibbele. ([http://www.php.net/manual/en/mysqli.installation.php Comme s'adda fà pe' cumpilà PHP cu suppuorto MySQL])",
        "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] è nu sistema canusciuto 'e database open source ca fosse n'alternativa a MySQL. Putess'avé cocch'errore p'arricettà, e nun è cunzigliato 'e ll'ausà dint'a n'ambiente 'e produziona. ([http://www.php.net/manual/en/pgsql.installation.php Comme s'avess'a cumpilà PHP cu suppuorto PostgreSQL])",
+       "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite]  è nu sistema 'e database leggero, ca fosse assaje buono suppurtato. ([http://www.php.net/manual/en/pdo.installation.php Comme cumpilà PHP cu suppuorto SQLite], aùsa PDO)",
+       "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] è nu database 'e na fraveca commerciale. ([http://www.php.net/manual/en/oci8.installation.php Comme cumpilà PHP cu suppuorto OCI8])",
+       "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server] è nu database 'e na fraveca commerciale p' 'o Windows. ([http://www.php.net/manual/en/sqlsrv.installation.php Comme cumpilà PHP cu suppuorto SQLSRV])",
        "config-header-mysql": "Mpustaziune MySQL",
        "config-header-postgres": "Mpustaziune PostgreSQL",
        "config-header-sqlite": "Mpustaziune SQLite",
        "config-missing-db-host": "Avita miette nu valore p' 'o \"{{int:config-db-host}}\"",
        "config-missing-db-server-oracle": "Avita miette nu valore p' 'o \"{{int:config-db-host-oracle}}\"",
        "config-invalid-db-server-oracle": "'O database 'e TNS \"$1\" nun è buono.\nAusate 'o \"TNS Name\" o na catena d' \"Easy Connect\"([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Metude 'e Nommena Oracle]).",
+       "config-invalid-db-name": "Nomme 'e database \"$1\" nun valido.\nAúsa surtanto carattere ASCII comme lettere (a-z, A-Z), nummere (0-9), sottolineatura (_) e trattine (-).",
+       "config-invalid-db-prefix": "Prefisso database \"$1\" nun valido.\nAúsa surtanto carattere ASCII comme lettere (a-z, A-Z), nummere (0-9), sottolineatura (_) e trattine (-).",
        "config-connection-error": "$1.\n\nCuntrullate 'o host, nomme utente e password e tentate n'ata vota.",
        "config-invalid-schema": "Schema MediaWiki \"$1\" nun è buono.\nAusate surtanto 'e lettere ASCII (a-z, A-Z), nummere (0-9) e carattere 'e sottolineatura (_).",
        "config-db-sys-create-oracle": "'O prugramma 'e installazione supporta surtanto l'uso 'e nu cunto SYSDBA pe' putè crià nu cunto nuovo.",
+       "config-db-sys-user-exists-oracle": "'O cunto utente \"$1\" esiste già. SYSDBA se pò ausà surtanto pe' crià cunte nuove!",
        "config-postgres-old": "PostgreSQL $1 o cchiù muderno è necessario. Vuje tenite $2.",
        "config-mssql-old": "Microsoft SQL Server $1 o cchiù muderno è necessario. Vuje tenite $2.",
        "config-sqlite-name-help": "Sciglite nu nomme ca identificasse 'o wiki vuosto.\nNun ausà spazie o trattine.\nChesto serverrà pe' putè miettere 'o nomme ro file 'e date SQLite.",
        "config-sqlite-parent-unwritable-group": "Nun se pò crià 'a cartella 'e date <code><nowiki>$1</nowiki></code>, pecché 'a cartella supiriore <code><nowiki>$2</nowiki></code> nun se pò scrivere 'a 'o webserver.\n\n'O prugramma d'installazione ha determinato l'utente c' 'o quale 'o server web se stà a esecutà.\nDàte 'a pussibbelità 'e scrivere dint' 'a cartella <code><nowiki>$3</nowiki></code> pe' cuntinuà\nNcopp'a nu sistema Unix/Linux:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+       "config-sqlite-mkdir-error": "Errore pe' tramente ca se faceva 'a criazione d' 'o directory date \"$1\".\nCuntrullate 'a posizione e pruvate n'ata vota.",
+       "config-sqlite-dir-unwritable": "Nun se pò scrivere dint' 'a directory \"$1\".\nCagnate ll'autorizzaziune 'n modo ca 'o webserver pozza scrivere ncoppa e pruvate n'ata vota.",
        "config-sqlite-connection-error": "$1.\n\nCuntrullate 'a cartella 'e date e 'o nomme d' 'o database ccà abbascio e pruvate n'ata vota.",
        "config-sqlite-readonly": "'O file <code>$1</code> nun è scrivibbele.",
        "config-sqlite-cant-create-db": "Nun se può crià 'o file database <code>$1</code>.",
        "config-admin-email": "Indirizzo e-mail:",
        "config-admin-error-bademail": "Avite miso n'indirizzo e-mail invalido.",
        "config-optional-continue": "Spiate cchiù dimanne.",
+       "config-optional-skip": "Me so' scucciato già, installa surtanto 'o wiki.",
        "config-profile": "Profilo 'e deritte utente:",
        "config-profile-wiki": "Wiki araputo",
        "config-profile-no-anon": "Cunto utente obbligatorio",
        "config-profile-fishbowl": "Surtanto ll'editure premmesse",
        "config-profile-private": "Wiki privato",
+       "config-license": "Copyright e licienza:",
+       "config-license-none": "Nisciuno piede 'e paggena p' 'a licienza",
        "config-license-pd": "Pubbreco duminio",
        "config-logo": "URL d\"o logo:",
        "config-cc-again": "Selezziona 'e novo...",
index b3d40d2..f602ffe 100644 (file)
@@ -5,9 +5,12 @@
                        "RajeshPandey",
                        "सरोज कुमार ढकाल",
                        "Ganesh Paudel",
-                       "बिप्लब आनन्द"
+                       "बिप्लब आनन्द",
+                       "Nirjal stha"
                ]
        },
+       "config-desc": "मेडियाविकिको लागि स्थापक",
+       "config-title": "मेडिया विकि $1 स्थापना",
        "config-information": "जानकारी",
        "config-localsettings-badkey": "तपाइले दिनु भएको कुन्जी गलत छ ।",
        "config-your-language": "तपाईंको भाषा:",
@@ -18,6 +21,7 @@
        "config-page-language": "भाषा",
        "config-page-welcome": "मिडीयाविकिमा तपाईंलाई स्वागत छ!",
        "config-page-dbconnect": "डेटाबेससँग सम्बन्ध बनाउने",
+       "config-page-dbsettings": "डेटावेस सेटिङ",
        "config-page-name": "नाम",
        "config-page-options": "विकल्पहरु",
        "config-page-install": "स्थापना गर्ने",
        "config-page-restart": "स्थापना फेरि सुरु गर्ने",
        "config-page-readme": "पढ्नुहोस्",
        "config-page-releasenotes": "प्रकाशन टिप्पणी",
+       "config-page-copying": "कपि हुदै",
+       "config-page-upgradedoc": "अद्यावधिक गरिदै",
+       "config-page-existingwiki": "विकि बन्द हुदै",
+       "config-restart": "हुन्छ, पुनः सुचारू गर्ने",
+       "config-env-php": "PHP $1 स्थापना गरिएको छ ।",
+       "config-env-hhvm": "HHVM $1 स्थापना गरिएको छ ।",
+       "config-db-type": "डाटाबेस प्रकारः",
+       "config-db-host": "डेटाबेस होस्ट:",
+       "config-db-host-oracle": "डेटाबेस TNS:",
+       "config-db-name": "डाटाबेस नामः",
+       "config-db-name-oracle": "डेटाबेस स्केमा:",
+       "config-db-username": "डाटाबेस प्रयोगकर्ता नामः",
+       "config-db-password": "डाटाबेस पासबर्डः",
+       "config-db-port": "डेटाबेस पोर्ट:",
+       "config-header-mysql": "MySQL सेटिङ",
+       "config-header-postgres": "PostgreSQL सेटिङहरू",
+       "config-header-sqlite": "SQLite सेटिङ्हरू",
+       "config-header-oracle": "ओरेकल सेटिङहरू",
+       "config-mysql-binary": "बाइनरी",
+       "config-mysql-utf8": "UTF-8",
+       "config-site-name": "विकीको नाम:",
+       "config-site-name-blank": "साइटको नाम लेख्नुहोस।",
+       "config-project-namespace": "आयोजना नेमस्पेस:",
+       "config-ns-generic": "परियोजना",
+       "config-ns-other": "अन्य(खुलाउनुहोस)",
+       "config-ns-other-default": "MyWiki",
+       "config-admin-box": "प्रवन्धक खाता",
+       "config-admin-name": "तपाईँको प्रयोगकर्ता नाम:",
+       "config-admin-password": "पासवर्ड:",
+       "config-admin-email": "इमेल ठेगाना:",
+       "config-optional-continue": "मलाई थप प्रश्नहरू सोध्नुहोस् ।",
+       "config-profile": "प्रयोगकर्ता अधिकार प्रोफाइल:",
+       "config-profile-wiki": "खुल्ला विकि",
+       "config-profile-no-anon": "खाता बनाउन नै पर्ने",
+       "config-profile-fishbowl": "अधिकार प्राप्त प्रयोगकर्ताहरू मात्र",
+       "config-profile-private": "निजी विकि",
+       "config-license": "प्रतिलिपी अधिकार र इजाजतपत्र:",
+       "config-license-none": "इजाजतपत्र फूटर नभएको",
+       "config-license-cc-by-sa": "क्रियटिभ कमन्स एट्रिव्युसन- सेयर अलाइक",
+       "config-license-cc-by": "क्रियटिभ कमन्स एट्रिव्युसन",
+       "config-email-settings": "इमेल सेटिंग",
+       "config-extensions": "एक्सटेन्सनहरू",
+       "config-skins": "स्किनहरू",
+       "config-install-step-done": "सम्पन्न",
+       "config-install-step-failed": "असफल",
+       "config-install-tables": "टेबल बनाउदै",
+       "config-install-stats": "तथ्यांक सुचारू हुदै",
+       "config-install-keys": "गोप्य चाबी उत्पन्न गर्दै",
+       "config-install-sysop": "प्रबन्धकको प्रयोगकर्ता खाता बनाउदै",
        "config-help": "सहायता",
        "config-help-tooltip": "विस्तार गर्न क्लीक गर्नुहोस्",
        "mainpagetext": "'''मीडिया सफलतापूर्वक कम्प्यूटरमा स्थापित भयो ।'''",
index a2ab5d2..1fd98ff 100644 (file)
@@ -13,7 +13,8 @@
                        "Southparkfan",
                        "Seb35",
                        "Mar(c)",
-                       "Sjoerddebruin"
+                       "Sjoerddebruin",
+                       "Esketti"
                ]
        },
        "config-desc": "Het installatieprogramma voor MediaWiki",
@@ -71,7 +72,7 @@
        "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 onvoorspelbare gegevenscorruptie.\nU 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 onvoorspelbare gegevenscorruptie.\nU kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
        "config-safe-mode": "'''Waarschuwing:'''\n'''PHP's [http://www.php.net/features.safe-mode veilige modus] is actief.'''\nDit kan problemen veroorzaken, vooral bij het uploaden van bestanden en ondersteuning van <code>math</code>.",
-       "config-xml-bad": "De XML-module van PHP ontbreekt.\nMediaWiki heeft de functies van deze module nodig en werkt niet zonder deze module.\nAls u gebruik maakt van Mandrake, installeer dan het package php-xml.",
+       "config-xml-bad": "PHP-XML-module ontbreekt.\nMediaWiki is vereist functies in deze module en zal niet werken in deze configuratie.\nMoet u de php-xml-RPM pakket.",
        "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.",
index 5d75be7..06c1469 100644 (file)
@@ -2,7 +2,8 @@
        "@metadata": {
                "authors": [
                        "Harald Khan",
-                       "Nghtwlkr"
+                       "Nghtwlkr",
+                       "Njardarlogar"
                ]
        },
        "config-your-language": "Språket ditt:",
@@ -36,6 +37,7 @@
        "config-postgres-old": "PostgreSQL $1 eller seinare krevst, du har $2.",
        "config-email-settings": "E-postinnstillingar",
        "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]"
 }
index 5cf71c4..5ec110d 100644 (file)
@@ -64,7 +64,6 @@
        "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-utf8": "Korzystanie z normalizacji Unicode utf8_normalize.so napisanej przez Brion Vibbera.",
        "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.",
@@ -77,7 +76,7 @@
        "config-magic-quotes-sybase": "'''Błąd krytyczny – włączono [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]!'''\nTa opcja powoduje nieprzewidywalne uszkodzenia wprowadzanych danych.\nZainstalować lub korzystać z MediaWiki można pod warunkiem, że ta opcja jest wyłączona.",
        "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-safe-mode": "'''Ostrzeżenie''' – uaktywniono [http://www.php.net/features.safe-mode tryb awaryjny] PHP.\nOpcja ta może powodować problemy, szczególnie w przypadku korzystania z przesyłania plików i używania znacznika <code>math</code>.",
-       "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.\nJeśli korzystasz z Mandrake, zainstaluj pakiet php-xml.",
+       "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.",
index 36b48c8..440b398 100644 (file)
        "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": "Mòdul XML ed PHP mancant.\nMediaWiki a l'ha da manca dle funsion an sto mòdul e a travajërà pa an costa configurassion.\nS'a fa giré mandrake, ch'a instala ël pachet php-xml.",
+       "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ì!",
index 23d3027..795bacd 100644 (file)
@@ -4,6 +4,8 @@
                        "Ahmed-Najib-Biabani-Ibrahimkhel"
                ]
        },
+       "config-desc": "د مېډياويکي نصبونکی",
+       "config-title": "مېډياويکي $1 نصبېدنه",
        "config-information": "مالومات",
        "config-localsettings-key": "کونجۍ نومهالول:",
        "config-localsettings-badkey": "کومه کونجۍ مو چې ورکړه ناسمه ده.",
        "config-page-options": "خوښنې",
        "config-page-install": "لگول",
        "config-page-complete": "بشپړ!",
+       "config-page-restart": "نصبېدنه بياپيلول",
        "config-page-readme": "ما ولوله",
+       "config-page-releasenotes": "خپاره شوي يادښتونه",
        "config-page-copying": "لمېسنه",
        "config-page-upgradedoc": "نومهالېدنه",
        "config-page-existingwiki": "شته ويکي",
        "config-restart": "هو، سر له نوي يې پيل کړه",
        "config-env-php": "د $1 PHP نصب شو.",
+       "config-env-hhvm": "HHVM $1 نصب شو.",
+       "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-db-type": "د توکبنسټ ډول:",
        "config-db-host": "د توکبنسټ کوربه:",
        "config-db-host-oracle": "د توکبنسټ TNS:",
        "config-db-name": "د توکبنسټ نوم:",
        "config-db-username": "د توکبنسټ کارن-نوم:",
        "config-db-password": "د توکبنسټ پټنوم:",
+       "config-type-mssql": "مايکروسافټ SQL پالنگر",
        "config-header-mysql": "د MySQL امستنې",
        "config-header-postgres": "د PostgreSQL امستنې",
        "config-header-sqlite": "د SQLite امستنې",
        "config-header-oracle": "د اورېکل امستنې",
+       "config-header-mssql": "د مايکروسافټ SQL پالنگر امستنې",
        "config-sqlite-readonly": "د <code>$1</code> دوتنه د ليکلو وړ نه ده.",
        "config-sqlite-cant-create-db": "د توکبنسټ دوتنه <code>$1</code> جوړه نه شوه.",
+       "config-mysql-utf8": "UTF-8",
        "config-site-name": "د ويکي نوم:",
        "config-site-name-blank": "د وېبځي نوم وليکۍ.",
        "config-project-namespace": "د پروژې نوم-تشيال:",
        "config-ns-generic": "پروژه",
+       "config-ns-other": "بل (ځانگړی کړئ)",
        "config-ns-other-default": "زما ويکي",
        "config-admin-box": "د پازوال گڼون",
        "config-admin-name": "ستاسې کارن نوم:",
        "config-license-pd": "ټولگړی شپول",
        "config-email-settings": "د برېښليک امستنې",
        "config-email-user": "کارن تر کارن برېښليک چارنول",
+       "config-extensions": "شاتاړي",
+       "config-skins": "پوښۍ",
+       "config-skins-use-as-default": "همدا پوښۍ په تلواليزه توگه کارول",
        "config-install-step-done": "ترسره شو",
+       "config-install-step-failed": "نابريال شو",
        "config-install-user-alreadyexists": "د \"$1\" کارن له پخوا څخه شته",
        "config-install-tables": "لښتيالونه جوړول",
        "config-download-localsettings": "ښکته کول <code>LocalSettings.php</code>",
index 003507f..4d9fa38 100644 (file)
@@ -15,7 +15,8 @@
                        "Tuliouel",
                        "Marcos dias de oliveira",
                        "Fasouzafreitas",
-                       "TheEduGobi"
+                       "TheEduGobi",
+                       "Dianakc"
                ]
        },
        "config-desc": "O instalador do MediaWiki",
@@ -96,6 +97,8 @@
        "config-no-cli-uri": "<strong>Aviso:</strong> Nenhum <code>--scriptpath</code> foi especificado, usando o padrão: <code>$1</code>.",
        "config-using-server": "Utilizando o nome do servidor \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Usando URL do servidor \"<nowiki>$1$2</nowiki>\".",
+       "config-no-cli-uploads-check": "<strong>Atenção:</strong> O seu diretório padrão para envios (<code>$1</code>) não está marcado para vulnerabilidade\npara execução de script arbitrário durante a instalação do CLI.",
+       "config-brokenlibxml": "O sistema tem uma combinação de PHP e libxml2 que é conflitante e pode causar corrupção de dados ocultos no MediaWiki e outros aplicativos da web.\nAtualize para o libxml2 2.7.3 ou mais recente ([https://bugs.php.net/bug.php?id=45996 bugs com o PHP]).\nInstalação abortada.",
        "config-db-type": "Tipo de base de dados:",
        "config-db-host": "Servidor da base de dados:",
        "config-db-host-help": "Se a base de dados do seu servidor está em um servidor diferente, digite o nome do hospedeiro ou o endereço IP aqui.\n\nSe você está utilizando um hospedeiro web compartilhado, o seu provedor de hospedagem deverá fornecer o nome do hospedeiro correto na sua documentação.\n\nSe você está instalando em um servidor Windows e usando o MySQL, usar \"localhost\" pode não funcionar para o nome de servidor. Se não funcionar, tente \"127.0.01\" para o endereço de IP local.\n\nSe você está usando PostgreSQl, deixe este campo em branco para se conectar através de um socket Unix.",
        "config-db-username": "Nome de usuário do banco de dados:",
        "config-db-password": "Senha do banco de dados:",
        "config-db-password-empty": "Por favor digite uma senha para o novo usuário do banco de dados: $1. Embora seja possível criar usuários sem senha, isto não é seguro.",
+       "config-db-username-empty": "É necessário entrar um valor para \"{{int:config-db-username}}\".",
        "config-db-install-username": "Digite o nome de usuário que será utilizado para conectar com o banco de dados durante o processo de instalação.\nEste não é a conta de usuário do MediaWiki; este é o nome de usuário para sua base de dados.",
        "config-db-install-password": "Digite a senha que será utilizada para conectar com o banco de dados durante o processo de instalação.\nEsta não é a senha de usuário da conta do MediaWiki; esta será a senha para seu banco de dados.",
        "config-db-install-help": "Digite o nome de usuário e a senha que serão utilizados para conectar com o banco de dados durante o processo de instalação.",
+       "config-db-account-lock": "Use o mesmo nome de usuário e senha durante a operação normal",
        "config-db-wiki-account": "Conta de usuário para operação normal",
        "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-oracle-temp-ts": "Tablespace temporário:",
        "config-type-mysql": "MySQL (ou compatível)",
        "config-type-mssql": "Microsoft SQL Server",
+       "config-support-info": "O MediaWiki suporta os sistemas de banco de dados a seguir:\n\n$1\n\nSe você não vê o sistema de banco de dados que você está tentando usar listados abaixo, siga as instruções relacionadas acima, para ativar o suporte.",
        "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] é um sistema de banco de dados leve que é muito bem suportado. ([http://www.php.net/manual/en/pdo.installation.php como compilar o PHP com suporte a SQLite], usa DOP)",
        "config-header-mysql": "Configurações MySQL",
        "config-header-postgres": "Configurações PostgreSQL",
        "config-profile-private": "Wiki privada",
        "config-license": "Direitos autorais e licenças:",
        "config-license-none": "Sem rodapé com a licença",
+       "config-license-cc-by": "Atribuição Creative Commons",
        "config-license-gfdl": "GNU Free Documentation License 1.3 ou posterior",
        "config-license-pd": "Domínio público",
        "config-license-cc-choose": "Selecionar uma licença personalizada da organização Creative Commons",
index 4181893..da33b30 100644 (file)
@@ -49,7 +49,6 @@
        "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-utf8": "Uising Brion Vibber's utf8_normalize.so fer Unicode normalization.",
        "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.",
@@ -57,7 +56,7 @@
        "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 option corrupts data input unpredictably.\nYe cannae install or uise MediaWiki unless this option is disabled.",
+       "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.",
diff --git a/includes/installer/i18n/sd.json b/includes/installer/i18n/sd.json
new file mode 100644 (file)
index 0000000..02e9797
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Sindhu"
+               ]
+       },
+       "config-xml-bad": "PHP جو XML ماڊيول کٽل آهي. ميڊيا وڪيءَ کي هن فنڪشن ۾ ماڊيول گھربل آهن ۽ ترتيب يا ڪنفيگيوريشن ۾ ڪم نه ڪندي. \nتوهان کي گھرجي ته php-xml RPM پيڪيج انسٽال ڪريو."
+}
index b8f131e..ca4a5ef 100644 (file)
@@ -4,6 +4,13 @@
                        "Kandar"
                ]
        },
+       "config-desc": "Panginstal MediaWiki",
+       "config-title": "Instalasi MediaWiki $1",
+       "config-information": "Émbaran",
+       "config-localsettings-upgrade": "Hiji berkas <code>LocalSettings.php</code> kapanggih.\nPikeun apgréd ngamutahirkeun ieu instalasi, mangga asupkeun sandi <code>$wgUpgradeKey</code> kana kotak di handap.\nAnjeun bisa manggihan sandina di <code>LocalSettings.php</code>.",
+       "config-localsettings-cli-upgrade": "Hiji berkas <code>LocalSettings.php</code> geus kabaca.\nPikeun apgréd ieu instalasi, mangga jalankeun <code>update.php</code>",
+       "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."
 }
index 5ebf803..c3fb23b 100644 (file)
                        "Trockya",
                        "Aşilleus",
                        "Nighteagle2000",
-                       "Sadrettin"
+                       "Sadrettin",
+                       "Captantrips",
+                       "Stultiwikia",
+                       "Meelo"
                ]
        },
        "config-desc": "MediaWiki yükleyicisi",
        "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-xml-bad": "PHP 'nin XML modülü eksik.\nMediaWiki bu modüldeki fonksiyonlara ihtiyaç duyar ve şimdiki kurulumda çalışmayacaktır.\nMandrake kullanıyorsanız php-xml paketini yükleyin.",
+       "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-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-git": "Sürüm kontrol yazılımı Git bulundu: <code>$1</code>.",
        "config-git-bad": "Sürüm kontrol yazılımı Git bulunamadı.",
        "config-imagemagick": "ImageMagick bulundu: <code>$1</code>.\nEğer yüklemeleri etkinleştirirseniz, küçük resimler etkinleştirilecektir.",
+       "config-gd": "Kurulu GD grafik kütüphanesi bulundu.\nDosya yüklemeyi açarsanız miniboy resim görüntüleme açılacaktır.",
+       "config-no-scaling": "GD kütüphanesi veya ImageMagick bulunamadı.\nMiniboy resim görüntüleme devre dışı kalacak.",
+       "config-no-uri": "<strong>Hata:</strong> Mevcut URI tespit edilemedi.\nKurulum iptal edildi.",
+       "config-no-cli-uri": "<strong>Uyarı:</strong> Herhangi bir <code>--scriptpath</code> belirlenmemiş, varsayılan kullanılıyor: <code>$1</code>.",
+       "config-using-server": "Sunucu adı olarak \"<nowiki>$1</nowiki>\" kullanılıyor.",
+       "config-using-uri": "Sunucu URLsi olarak \"<nowiki>$1$2</nowiki>\" kullanılıyor.",
        "config-db-type": "Veritabanı tipi:",
        "config-db-host": "Veritabanı sunucusu:",
        "config-db-host-help": "Veritabanı sunucunuz farklı bir sunucu üzerinde ise, ana bilgisayar adını veya IP adresini buraya girin.\n\nPaylaşılan ağ barındırma hizmeti kullanıyorsanız, barındırma sağlayıcınız size doğru bir ana bilgisayar adını kendi belgelerinde vermiştir.\n\nEğer MySQL kullanan bir Windows sunucusuna yükleme yapıyorsanız, sunucu adı olarak \"localhost\" kullanırsanız çalışmayabilir. Çalışmazsa, yerel IP adresi için \"127.0.0.1\" deneyin.\n\nPostgreSQL kullanıyorsanız, bu alanı bir Unix soketi ile bağlanmak için boş bırakın.",
        "config-db-host-oracle": "Veritabanı TNS:",
        "config-db-wiki-settings": "Bu wikiyi tanımla",
        "config-db-name": "Veritabanı adı:",
+       "config-db-name-help": "Vikinizi tanımlayan bir isim seçin.\nBoşluk karakteri içermemelidir.\n\nPaylaşılan bir web hosting servisi kullanıyorsanız, tedarikçiniz size ya kullanmanız için bir veritabanı ismi verecek ya da bir kontrol paneli vasıtasıyla sizin oluşturmanıza izin verecektir.",
        "config-db-name-oracle": "Veritabanı şeması:",
        "config-db-install-account": "Yükleme için kullanıcı hesabı",
        "config-db-username": "Veritabanı kullanıcı adı:",
        "config-db-password": "Veritabanı parolası:",
+       "config-db-password-empty": "Şu yeni veritabanı kullanıcısı için bir parola belirleyin: $1\nParolası olmayan hesaplar yaratmak mümkün olabilirse de, güvenli değildir.",
        "config-db-username-empty": "\"{{int:config-db-username}}\" için bir değer girmelisiniz.",
        "config-db-install-username": "Yükleme sırasında veritabanına bağlanmak için kullanılan kullanıcı adını girin.\nBu MediaWiki hesabının kullanıcı adı değildir; Bu veritabanın kullanıcı adıdır.",
+       "config-db-install-password": "Kurulum işlemi boyunca veritabanına bağlanmak için kullanılacak şifreyi girin.\nBu şifre MediaWiki hesap şifresi değil, veritabanınızın şifresidir.",
+       "config-db-install-help": "Kurulum işlemi boyunca veritabanına bağlanmak için kullanıcı adı ve şifre giriniz.",
+       "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-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-db-schema-help": "Bu şema yeterli olacaktır.\nEğer gerçekten ihtiyaç duyarsanız değiştirin.",
        "config-pg-test-error": "Veritabanıyla bağlantı kurulamıyor ''' $1 ''':$2",
        "config-sqlite-dir": "SQLite veri dizini",
        "config-oracle-def-ts": "Varsayılan tablo alanı:",
+       "config-oracle-temp-ts": "Geçici tablo alanı:",
+       "config-type-mysql": "MySQL (veya uyumlu)",
        "config-type-mssql": "Microsoft SQL Server",
        "config-header-mysql": "MySQL ayarları",
        "config-header-postgres": "PostgreSQL ayarları",
        "config-header-mssql": "Microsoft SQL Server ayarları",
        "config-invalid-db-type": "Geçersiz veritabanı türü",
        "config-missing-db-name": "\"Veritabanı adı\" için bir değer girmelisiniz",
-       "config-missing-db-host": "\"Veritabanı host\" için bir değer girmelisiniz",
-       "config-missing-db-server-oracle": "\"Veritabanının TNS\" için bir değer girmelisiniz",
+       "config-missing-db-host": "\"{{int:config-db-host}}\" için bir değer girmelisiniz.",
+       "config-missing-db-server-oracle": "\"{{int:config-db-host-oracle}}\" için bir değer girmelisiniz",
        "config-invalid-db-name": "Geçersiz veritabanı adı \" $1 \".\nSadece ASCII harf (a-z, A-Z), rakamların (0-9), alt çizgi (_) ve tire (-) kullanın.",
        "config-connection-error": "$1.\n\nSunucuyu kontrol edin, kullanıcı adı ve parolayı denetleyin ve yeniden deneyin.",
        "config-invalid-schema": "Geçersiz şema MediaWiki için \" $1 \".\nYalnızca ASCII harf (a-z, A-Z), rakamların (0-9) ve alt çizgi (_) kullanın.",
+       "config-db-sys-create-oracle": "Kurulum yeni hesap oluştururken sadece SYSDBA hesabı kullanımını destekliyor.",
        "config-db-sys-user-exists-oracle": "Kullanıcı hesabı \" $1 \" zaten var. SYSDBA sadece yeni bir hesap oluşturmak için kullanılabilir.",
        "config-postgres-old": "PostgreSQL  $1  veya daha yenisi gerekir. Sende  $2 sürümü var.",
+       "config-mssql-old": "Microsoft SQL Server $1 veya daha yükseği gerekli. Sizdeki sürüm: $2.",
+       "config-sqlite-name-help": "Wiki'nizi tanımlayan bir ad seçin.\nBoşluk ya da tire kullanmayın.\nBu isim SQLite veri dosyası için kullanılacaktır.",
        "config-sqlite-mkdir-error": "Veri dizini oluşturulurken bir hata oluştu \" $1 \".\nKonumu denetleyin ve yeniden deneyin.",
+       "config-sqlite-dir-unwritable": "Bu dizine yazılamadı: \"$1\"\nİzinleri değiştirerek tekrar deneyiniz.",
        "config-sqlite-connection-error": "$1.\n\nVeri dizini ve veritabanı adını denetleyin ve yeniden deneyin.",
        "config-sqlite-readonly": "Dosya <code>$1</code> yazılabilir değil.",
        "config-sqlite-cant-create-db": "Veritabanı dosyası oluşturamadı <code>$1</code> .",
+       "config-sqlite-fts3-downgrade": "PHP, FTS3 desteğinden yoksun, tabloların sürümü düşürülüyor.",
+       "config-upgrade-done-no-regenerate": "Güncelleme tamam.\n\nVikinizi kullanmaya [$1 başlayabilrsiniz].",
        "config-regenerate": "LocalSettings.php yi yeniden oluştur →",
        "config-show-table-status": "<code>SHOW TABLE STATUS</code>sorgu başarısız!",
+       "config-unknown-collation": "<strong>Uyarı:</strong> Veritabanı tanınmayan bir harmanlama kullanıyor.",
+       "config-db-web-account": "Ağ erişimi için veritabanı hesabı",
+       "config-db-web-help": "Ağ sunucusunun olağan wiki işlemleri için veritabanına bağlanırken kullanacağı kullanıcı adı ve parolayı seçin.",
        "config-db-web-account-same": "Yükleme için aynı hesabı kullan",
        "config-db-web-create": "Eğer oluşturulmuş hesap yoksa yeni hesap oluştur",
+       "config-db-web-no-create-privs": "Kurulum için belirlediğiniz hesap, hesap yaratımı için gerekli izinlere sahip değil.\nBurada belirttiğiniz hesap halihazırda var olmalı.",
        "config-mysql-engine": "Depolama motoru:",
        "config-mysql-innodb": "InnoDB",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-binary": "İkili",
        "config-mysql-utf8": "UTF-8",
        "config-mssql-auth": "Kimlik doğrulama türü:",
+       "config-mssql-install-auth": "Kurulum işlemi sırasında veritabanına bağlanmak için kullanılacak doğrulama türünü seçin.\n\"{{int:config-mssql-windowsauth}}\"'ı seçerseniz,ağ sunucusu olarak çalışan kullanıcının kimlik bilgileri kullanılacaktır.",
        "config-mssql-sqlauth": "SQL Server kimlik doğrulaması",
        "config-mssql-windowsauth": "Windows Kimlik Doğrulama",
        "config-site-name": "Wiki adı:",
+       "config-site-name-help": "Bu tarayıcının başlık çubuğunda ve diğer yerlerde görünecek.",
        "config-site-name-blank": "Bir site adı girin.",
        "config-project-namespace": "Proje isim alanı:",
        "config-ns-generic": "Proje",
        "config-admin-email-help": "Wiki'de diğer kullanıcılardan e-posta almak, parolanızı sıfırlamak ve sizin izlediğiniz sayfalarda yapılan değişikliklerin bildirilmesini sağlamak için e-posta adresinizi girin. Bu alanı boş bırakabilirsiniz.",
        "config-admin-error-user": "Bir yönetici adı ile oluşturma sırasında iç hata \"<nowiki> $1 </nowiki>\".",
        "config-admin-error-bademail": "Geçersiz e-posta adresi girdiniz.",
+       "config-subscribe": "[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Sürüm duyuruları e-posta listesi]ne abone olun.",
+       "config-subscribe-noemail": "Sürüm duyuruları e-posta listesine herhangi bir eposta adresi belirtmeden abone olmaya çalıştınız.\nLütfen abone olmak istiyorsanız bir posta adresi belirtiniz.",
        "config-almost-done": "Neredeyse bitti\nŞimdi kalan yapılandırmaları atlayın ve wikiyi şimdi yükleyin.",
        "config-optional-continue": "Bana daha fazla soru sor.",
        "config-optional-skip": "Şimdiden sıkıldım, sadece wikiyi yükle.",
index e030443..345b475 100644 (file)
        "config-env-bad": "Було проведено перевірку середовища. Ви не можете встановити MediaWiki.",
        "config-env-php": "Встановлено версію PHP: $1.",
        "config-env-hhvm": "HHVM $1  встановлено.",
-       "config-unicode-using-utf8": "Використовувати utf8_normalize.so Брайона Віббера для нормалізації Юнікоду.",
        "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-no-db": "Ð\9dе Ð²Ð´Ð°Ð»Ð¾Ñ\81Ñ\8f Ð·Ð½Ð°Ð¹Ñ\82и Ð²Ñ\96дповÑ\96дний Ð´Ñ\80айвеÑ\80 Ð±Ð°Ð·Ð¸ Ð´Ð°Ð½Ð¸Ñ\85! Ð\92ам Ð½ÐµÐ¾Ð±Ñ\85Ñ\96дно Ð²Ñ\81Ñ\82ановиÑ\82и Ð´Ñ\80айвеÑ\80 Ð±Ð°Ð·Ð¸ Ð´Ð°Ð½Ð¸Ñ\85 Ð´Ð»Ñ\8f PHP. Ð\9fÑ\96дÑ\82Ñ\80имÑ\83Ñ\8eÑ\82Ñ\8cÑ\81Ñ\8f Ñ\82акÑ\96 Ñ\82ипи Ð±Ð°Ð· Ð´Ð°Ð½Ð¸Ñ\85: $1.\n\nЯкÑ\89о Ð²Ð¸ Ñ\81компÑ\96лÑ\8eвали PHP Ñ\81амоÑ\81Ñ\82Ñ\96йно, Ð¿ÐµÑ\80еналаÑ\88Ñ\82Ñ\83йÑ\82е Ð¹Ð¾Ð³Ð¾ Ð· Ð²ÐºÐ»Ñ\8eÑ\87еннÑ\8fм ÐºÐ»Ñ\96Ñ\94нÑ\82а бази даних, наприклад за допомогою <code>./configure --with-mysqli</code>.\n\nЯкщо установлено PHP з пакетів Debian або Ubuntu, тоді ви також повинні встановити, наприклад, пакунок <code>php5-mysql</code>.",
+       "config-no-db": "Ð\9dе Ð²Ð´Ð°Ð»Ð¾Ñ\81Ñ\8f Ð·Ð½Ð°Ð¹Ñ\82и Ð¿Ð¾Ñ\82Ñ\80Ñ\96бний Ð´Ñ\80айвеÑ\80 Ð±Ð°Ð·Ð¸ Ð´Ð°Ð½Ð¸Ñ\85! Ð\92ам Ð½ÐµÐ¾Ð±Ñ\85Ñ\96дно Ð²Ñ\81Ñ\82ановиÑ\82и Ð´Ñ\80айвеÑ\80 Ð±Ð°Ð·Ð¸ Ð´Ð°Ð½Ð¸Ñ\85 Ð´Ð»Ñ\8f PHP. Ð\9fÑ\96дÑ\82Ñ\80имÑ\83Ñ\8eÑ\82Ñ\8cÑ\81Ñ\8f {{PLURAL:$2|Ñ\82акий Ñ\82ип|Ñ\82акÑ\96 Ñ\82ипи}} Ð±Ð°Ð· Ð´Ð°Ð½Ð¸Ñ\85: $1.\n\nЯкÑ\89о Ð²Ð¸ Ñ\81компÑ\96лÑ\8eвали PHP Ñ\81амоÑ\81Ñ\82Ñ\96йно, Ð¿ÐµÑ\80еналаÑ\88Ñ\82Ñ\83йÑ\82е Ð¹Ð¾Ð³Ð¾ Ð· Ñ\83вÑ\96мкненим ÐºÐ»Ñ\96Ñ\94нÑ\82ом бази даних, наприклад за допомогою <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-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].",
index 01052d3..283ad3c 100644 (file)
@@ -1,9 +1,11 @@
 {
        "@metadata": {
                "authors": [
-                       "Wu-chinese.com"
+                       "Wu-chinese.com",
+                       "Poiuyt"
                ]
        },
+       "config-information": "信息",
        "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 发布邮件列表]"
 }
diff --git a/includes/installer/i18n/xmf.json b/includes/installer/i18n/xmf.json
new file mode 100644 (file)
index 0000000..dea81d9
--- /dev/null
@@ -0,0 +1,33 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Silovan"
+               ]
+       },
+       "config-desc": "MediaWiki-შ ინსტალატორი",
+       "config-title": "MediaWiki $1 ინსტალაცია",
+       "config-information": "ინფორმაცია",
+       "config-localsettings-key": "გოახალაფაშ კილა:",
+       "config-localsettings-badkey": "კილა, ნამუთ თქვა წჷმარინეთინ ცაგანა რე.",
+       "config-session-error": "ჩილათაშ დოჭყაფაშ სესია: $1",
+       "config-your-language": "თქვან ნინა:",
+       "config-your-language-help": "გეგშაგორით ნინა, ნამუსჷთ ინსტალაციაშ პროცესის გიმირინუანთინ.",
+       "config-wiki-language": "ვიკიშ ნინა:",
+       "config-back": "← უკახალე",
+       "config-continue": "უკული →",
+       "config-page-language": "ნინა",
+       "config-page-welcome": "ბედინერ ორდას თქვანი მოზოჯუა მედიავიკიშა!",
+       "config-page-dbconnect": "მუნაჩემეფიშ ბაზაწჷმა მერსხუალა",
+       "config-page-dbsettings": "მუნაჩემეფიშ ბაზაშ კონფიგურაცია",
+       "config-page-name": "ჯოხო",
+       "config-page-options": "პარამეტრეფი",
+       "config-page-install": "ინსტალაცია",
+       "config-page-complete": "თებული რე!",
+       "config-page-restart": "ინსტალაციაშ დუდშე დოჭყაფა",
+       "config-page-readme": "წემკითხი",
+       "config-page-releasenotes": "გიშაშქუმალაშ მეღანკუეფი",
+       "config-page-upgradedoc": "გოახალაფა",
+       "config-help-restart": "გოკონანო თქვან მიშნაჸონეფი არძო ჩუალირ მუნაჩემიშ ლასუა დო ინსტალაციაშ დუდშე დოჭყაფა?",
+       "config-restart": "ქო, დუდშე დიჭყით",
+       "config-env-php": "PHP $1 დოინსტალირაფირი რე."
+}
index e1d2226..300540f 100644 (file)
        "config-page-existingwiki": "עקזיסטירנדע וויקי",
        "config-help-restart": "צי ווילט איר אפראמען די גארע געשפייכלערטע דאטן וואס איר האט אײַנגעגעבן און ווידער אנהייבן דעם אינסטאלאציע־פראצעס?",
        "config-restart": "יא, ווידעראמאל אנהייבן",
+       "config-env-good": "מ'האט קאנטראלירט די סביבה.\nאיר קענט אינסטאלירן מעדיעוויקי.",
+       "config-env-bad": "מ'האט קאנטראלירט די סביבה.\nאיר קענט נישט אינסטאלירן מעדיעוויקי.",
        "config-env-php": "PHP $1 איז אינצטאלירט.",
+       "config-env-hhvm": "HHVM $1 איז אינסטאלירט.",
+       "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-diff3-bad": "GNU diff3 נישט געטראפן.",
        "config-db-type": "דאטנבאזע טיפ:",
        "config-db-host-oracle": "דאטנבאזע־TNS:",
+       "config-db-wiki-settings": "אידענטיפיצירן די דאזיקע וויקי",
        "config-db-name": "דאטנבאזע נאָמען:",
        "config-db-username": "דאטנבאזע באניצער־נאָמען:",
+       "config-db-password": "דאטנבאזע־פאסווארט:",
        "config-project-namespace": "פראיעקט נאָמענטייל:",
        "config-ns-generic": "פראיעקט",
        "config-admin-name": "אײַער באַניצער־נאָמען:",
index cbd48f1..4713f45 100644 (file)
@@ -68,7 +68,6 @@
        "config-env-bad": "环境检查已经完成。您不能安装MediaWiki。",
        "config-env-php": "PHP $1已安装。",
        "config-env-hhvm": "HHVM $1已安装。",
-       "config-unicode-using-utf8": "使用Brion Vibber的utf8_normalize.so实现Unicode正常化。",
        "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 升级]。",
@@ -81,7 +80,7 @@
        "config-magic-quotes-sybase": "'''毁灭性错误:[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_sybase]已启用!'''\n此选项会无法预测地破坏输入的数据,请将其禁用,否则您将不能安装或使用MediaWiki。",
        "config-mbstring": "'''毁灭性错误:[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]已启用!'''\n此选项会导致错误并不可预测地破坏数据,请将其禁用,否则您将不能安装或使用MediaWiki。",
        "config-safe-mode": "'''警告:'''PHP的[http://www.php.net/features.safe-mode 安全模式]已启用。它可能会导致一些问题,尤其在对文件上传和数学公式<code>math</code>的支持方面。",
-       "config-xml-bad": "缺少PHP的XML模块。MediaWiki需要使用该模块提供的函数,在当前配置下将无法工作。如果您正在使用Mandrake Linux,请安装php-xml包。",
+       "config-xml-bad": "缺少PHP的XML模块。MediaWiki需要使用该模块提供的函数,在当前配置下将无法工作。您可能需要安装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": "'''毁灭性错误''':PHP的PCRE模块在编译时可能没有包含PCRE_UTF8支持。MediaWiki需要UTF-8支持才能正常工作。",
        "config-memory-raised": "PHP的内存使用上限<code>memory_limit</code>为$1,自动提升到$2。",
index 4c7b0c5..d1db005 100644 (file)
@@ -71,7 +71,7 @@
        "config-magic-quotes-sybase": "<strong>嚴重:[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] 選項被開啟!</strong>\n此選項會導致資料在無法預測的情況下損壞。\n您必須將開選項關閉方可繼續安裝 MediaWiki。",
        "config-mbstring": "<strong>嚴重:[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] 選項被開啟!</strong>\n此選項會導致資料在無法預測的情況下損壞。\n您必須將開選項關閉方可繼續安裝 MediaWiki。",
        "config-safe-mode": "<strong>警告:</strong>PHP 的 [http://www.php.net/features.safe-mode 安全模式] 選項被開啟。它可能會導致檔案上傳與數學函數 <code>math</code> 的問題。",
-       "config-xml-bad": "PHP 缺少的 XML 模組。\nMediaWiki 需要使用此模組中所提供的函數,且在目前的設定下將無法繼續作業。\n如果您使用的是 Mandrake Linux,請安裝 php-xml 套件。",
+       "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。",
index 02fbb08..33e5066 100644 (file)
@@ -114,6 +114,17 @@ class Interwiki {
                return $iw;
        }
 
+       /**
+        * Purge the cache for an interwiki prefix
+        * @param string $prefix
+        * @since 1.26
+        */
+       public static function invalidateCache( $prefix ) {
+               $cache = ObjectCache::getMainWANInstance();
+               $key = wfMemcKey( 'interwiki', $prefix );
+               $cache->delete( $key );
+       }
+
        /**
         * Fetch interwiki prefix data from local cache in constant database.
         *
@@ -191,16 +202,18 @@ class Interwiki {
         * @return Interwiki|bool Interwiki if $prefix is valid, otherwise false
         */
        protected static function load( $prefix ) {
-               global $wgMemc, $wgInterwikiExpiry;
+               global $wgInterwikiExpiry;
 
                $iwData = array();
                if ( !Hooks::run( 'InterwikiLoadPrefix', array( $prefix, &$iwData ) ) ) {
                        return Interwiki::loadFromArray( $iwData );
                }
 
+               $cache = ObjectCache::getMainWANInstance();
+
                if ( !$iwData ) {
                        $key = wfMemcKey( 'interwiki', $prefix );
-                       $iwData = $wgMemc->get( $key );
+                       $iwData = $cache->get( $key );
                        if ( $iwData === '!NONEXISTENT' ) {
                                // negative cache hit
                                return false;
@@ -232,13 +245,13 @@ class Interwiki {
                                'iw_local' => $iw->mLocal,
                                'iw_trans' => $iw->mTrans
                        );
-                       $wgMemc->add( $key, $mc, $wgInterwikiExpiry );
+                       $cache->set( $key, $mc, $wgInterwikiExpiry );
 
                        return $iw;
                }
 
                // negative cache hit
-               $wgMemc->add( $key, '!NONEXISTENT', $wgInterwikiExpiry );
+               $cache->set( $key, '!NONEXISTENT', $wgInterwikiExpiry );
 
                return false;
        }
index f8de0b5..f7ef8a9 100644 (file)
@@ -32,7 +32,7 @@ abstract class Job implements IJobSpecification {
        /** @var string */
        public $command;
 
-       /** @var array|bool Array of job parameters or false if none */
+       /** @var array Array of job parameters */
        public $params;
 
        /** @var array Additional queue metadata */
@@ -58,11 +58,11 @@ abstract class Job implements IJobSpecification {
         *
         * @param string $command Job command
         * @param Title $title Associated title
-        * @param array|bool $params Job parameters
+        * @param array $params Job parameters
         * @throws MWException
         * @return Job
         */
-       public static function factory( $command, Title $title, $params = false ) {
+       public static function factory( $command, Title $title, $params = array() ) {
                global $wgJobClasses;
                if ( isset( $wgJobClasses[$command] ) ) {
                        $class = $wgJobClasses[$command];
@@ -80,7 +80,7 @@ abstract class Job implements IJobSpecification {
        public function __construct( $command, $title, $params = false ) {
                $this->command = $command;
                $this->title = $title;
-               $this->params = $params;
+               $this->params = is_array( $params ) ? $params : array(); // sanity
 
                // expensive jobs may set this to true
                $this->removeDuplicates = false;
@@ -134,6 +134,16 @@ abstract class Job implements IJobSpecification {
                        : null;
        }
 
+       /**
+        * @return int|null UNIX timestamp of when the job was queued, or null
+        * @since 1.26
+        */
+       public function getQueuedTimestamp() {
+               return isset( $this->metadata['timestamp'] )
+                       ? wfTimestampOrNull( TS_UNIX, $this->metadata['timestamp'] )
+                       : null;
+       }
+
        /**
         * Whether the queue should reject insertion of this job if a duplicate exists
         *
@@ -196,15 +206,27 @@ abstract class Job implements IJobSpecification {
        }
 
        /**
+        * Get "root job" parameters for a task
+        *
+        * This is used to no-op redundant jobs, including child jobs of jobs,
+        * as long as the children inherit the root job parameters. When a job
+        * with root job parameters and "rootJobIsSelf" set is pushed, the
+        * deduplicateRootJob() method is automatically called on it. If the
+        * root job is only virtual and not actually pushed (e.g. the sub-jobs
+        * are inserted directly), then call deduplicateRootJob() directly.
+        *
         * @see JobQueue::deduplicateRootJob()
+        *
         * @param string $key A key that identifies the task
         * @return array Map of:
+        *   - rootJobIsSelf    : true
         *   - rootJobSignature : hash (e.g. SHA1) that identifies the task
         *   - rootJobTimestamp : TS_MW timestamp of this instance of the task
         * @since 1.21
         */
        public static function newRootJobParams( $key ) {
                return array(
+                       'rootJobIsSelf'    => true,
                        'rootJobSignature' => sha1( $key ),
                        'rootJobTimestamp' => wfTimestampNow()
                );
@@ -236,6 +258,14 @@ abstract class Job implements IJobSpecification {
                        && isset( $this->params['rootJobTimestamp'] );
        }
 
+       /**
+        * @see JobQueue::deduplicateRootJob()
+        * @return bool Whether this is job is a root job
+        */
+       public function isRootJob() {
+               return $this->hasRootJobParams() && !empty( $this->params['rootJobIsSelf'] );
+       }
+
        /**
         * Insert a single job into the queue.
         * @return bool True on success
index 7df85ff..1cf1b4b 100644 (file)
@@ -286,7 +286,7 @@ abstract class JobQueue {
         * This does not require $wgJobClasses to be set for the given job type.
         * Outside callers should use JobQueueGroup::push() instead of this function.
         *
-        * @param Job|array $jobs A single job or an array of Jobs
+        * @param JobSpecification|JobSpecification[] $jobs
         * @param int $flags Bitfield (supports JobQueue::QOS_ATOMIC)
         * @return void
         * @throws JobQueueError
@@ -301,7 +301,7 @@ abstract class JobQueue {
         * This does not require $wgJobClasses to be set for the given job type.
         * Outside callers should use JobQueueGroup::push() instead of this function.
         *
-        * @param array $jobs List of Jobs
+        * @param JobSpecification[] $jobs
         * @param int $flags Bitfield (supports JobQueue::QOS_ATOMIC)
         * @return void
         * @throws MWException
@@ -323,11 +323,17 @@ abstract class JobQueue {
 
                $this->doBatchPush( $jobs, $flags );
                $this->aggr->notifyQueueNonEmpty( $this->wiki, $this->type );
+
+               foreach ( $jobs as $job ) {
+                       if ( $job->isRootJob() ) {
+                               $this->deduplicateRootJob( $job );
+                       }
+               }
        }
 
        /**
         * @see JobQueue::batchPush()
-        * @param array $jobs
+        * @param JobSpecification[] $jobs
         * @param int $flags
         */
        abstract protected function doBatchPush( array $jobs, $flags );
@@ -425,11 +431,11 @@ abstract class JobQueue {
         *
         * This does nothing for certain queue classes.
         *
-        * @param Job $job
+        * @param IJobSpecification $job
         * @throws MWException
         * @return bool
         */
-       final public function deduplicateRootJob( Job $job ) {
+       final public function deduplicateRootJob( IJobSpecification $job ) {
                if ( $job->getType() !== $this->type ) {
                        throw new MWException( "Got '{$job->getType()}' job; expected '{$this->type}'." );
                }
@@ -440,11 +446,11 @@ abstract class JobQueue {
 
        /**
         * @see JobQueue::deduplicateRootJob()
-        * @param Job $job
+        * @param IJobSpecification $job
         * @throws MWException
         * @return bool
         */
-       protected function doDeduplicateRootJob( Job $job ) {
+       protected function doDeduplicateRootJob( IJobSpecification $job ) {
                if ( !$job->hasRootJobParams() ) {
                        throw new MWException( "Cannot register root job; missing parameters." );
                }
@@ -548,35 +554,6 @@ abstract class JobQueue {
        protected function doWaitForBackups() {
        }
 
-       /**
-        * Return a map of task names to task definition maps.
-        * A "task" is a fast periodic queue maintenance action.
-        * Mutually exclusive tasks must implement their own locking in the callback.
-        *
-        * Each task value is an associative array with:
-        *   - name     : the name of the task
-        *   - callback : a PHP callable that performs the task
-        *   - period   : the period in seconds corresponding to the task frequency
-        *
-        * @return array
-        */
-       final public function getPeriodicTasks() {
-               $tasks = $this->doGetPeriodicTasks();
-               foreach ( $tasks as $name => &$def ) {
-                       $def['name'] = $name;
-               }
-
-               return $tasks;
-       }
-
-       /**
-        * @see JobQueue::getPeriodicTasks()
-        * @return array
-        */
-       protected function doGetPeriodicTasks() {
-               return array();
-       }
-
        /**
         * Clear any process and persistent caches
         *
@@ -706,8 +683,12 @@ abstract class JobQueue {
         * @since 1.22
         */
        public static function incrStats( $key, $type, $delta = 1 ) {
-               wfIncrStats( $key, $delta );
-               wfIncrStats( "{$key}-{$type}", $delta );
+               static $stats;
+               if ( !$stats ) {
+                       $stats = RequestContext::getMain()->getStats();
+               }
+               $stats->updateCount( "jobqueue.{$key}", $delta );
+               $stats->updateCount( "jobqueue.{$key}.{$type}", $delta );
        }
 
        /**
index b1b650b..3dc36bd 100644 (file)
@@ -299,8 +299,15 @@ class JobQueueDB extends JobQueue {
                                $job = Job::factory( $row->job_cmd, $title,
                                        self::extractBlob( $row->job_params ), $row->job_id );
                                $job->metadata['id'] = $row->job_id;
+                               $job->metadata['timestamp'] = $row->job_timestamp;
                                break; // done
                        } while ( true );
+
+                       if ( !$job || mt_rand( 0, 9 ) == 0 ) {
+                               // Handled jobs that need to be recycled/deleted;
+                               // any recycled jobs will be picked up next attempt
+                               $this->recycleAndDeleteStaleJobs();
+                       }
                } catch ( DBError $e ) {
                        $this->throwDBException( $e );
                }
@@ -471,6 +478,8 @@ class JobQueueDB extends JobQueue {
                        // Delete a row with a single DELETE without holding row locks over RTTs...
                        $dbw->delete( 'job',
                                array( 'job_cmd' => $this->type, 'job_id' => $job->metadata['id'] ), __METHOD__ );
+
+                       JobQueue::incrStats( 'job-ack', $this->type );
                } catch ( DBError $e ) {
                        $this->throwDBException( $e );
                }
@@ -480,11 +489,11 @@ class JobQueueDB extends JobQueue {
 
        /**
         * @see JobQueue::doDeduplicateRootJob()
-        * @param Job $job
+        * @param IJobSpecification $job
         * @throws MWException
         * @return bool
         */
-       protected function doDeduplicateRootJob( Job $job ) {
+       protected function doDeduplicateRootJob( IJobSpecification $job ) {
                $params = $job->getParams();
                if ( !isset( $params['rootJobSignature'] ) ) {
                        throw new MWException( "Cannot register root job; missing 'rootJobSignature'." );
@@ -535,18 +544,6 @@ class JobQueueDB extends JobQueue {
                wfWaitForSlaves( false, $this->wiki, $this->cluster ?: false );
        }
 
-       /**
-        * @return array
-        */
-       protected function doGetPeriodicTasks() {
-               return array(
-                       'recycleAndDeleteStaleJobs' => array(
-                               'callback' => array( $this, 'recycleAndDeleteStaleJobs' ),
-                               'period' => ceil( $this->claimTTL / 2 )
-                       )
-               );
-       }
-
        /**
         * @return void
         */
@@ -561,18 +558,35 @@ class JobQueueDB extends JobQueue {
         * @return Iterator
         */
        public function getAllQueuedJobs() {
+               return $this->getJobIterator( array( 'job_cmd' => $this->getType(), 'job_token' => '' ) );
+       }
+
+       /**
+        * @see JobQueue::getAllAcquiredJobs()
+        * @return Iterator
+        */
+       public function getAllAcquiredJobs() {
+               return $this->getJobIterator( array( 'job_cmd' => $this->getType(), "job_token > ''" ) );
+       }
+
+       /**
+        * @param array $conds Query conditions
+        * @return Iterator
+        */
+       protected function getJobIterator( array $conds ) {
                $dbr = $this->getSlaveDB();
                try {
                        return new MappedIterator(
-                               $dbr->select( 'job', self::selectFields(),
-                                       array( 'job_cmd' => $this->getType(), 'job_token' => '' ) ),
-                               function ( $row ) use ( $dbr ) {
+                               $dbr->select( 'job', self::selectFields(), $conds ),
+                               function ( $row ) {
                                        $job = Job::factory(
                                                $row->job_cmd,
                                                Title::makeTitle( $row->job_namespace, $row->job_title ),
-                                               strlen( $row->job_params ) ? unserialize( $row->job_params ) : false
+                                               strlen( $row->job_params ) ? unserialize( $row->job_params ) : array()
                                        );
                                        $job->metadata['id'] = $row->job_id;
+                                       $job->metadata['timestamp'] = $row->job_timestamp;
+
                                        return $job;
                                }
                        );
@@ -589,6 +603,10 @@ class JobQueueDB extends JobQueue {
 
        protected function doGetSiblingQueuesWithJobs( array $types ) {
                $dbr = $this->getSlaveDB();
+               // @note: this does not check whether the jobs are claimed or not.
+               // This is useful so JobQueueGroup::pop() also sees queues that only
+               // have stale jobs. This lets recycleAndDeleteStaleJobs() re-enqueue
+               // failed jobs so that they can be popped again for that edge case.
                $res = $dbr->select( 'job', 'DISTINCT job_cmd',
                        array( 'job_cmd' => $types ), __METHOD__ );
 
index 178ce8a..109ca01 100644 (file)
@@ -93,6 +93,8 @@ class JobQueueFederated extends JobQueue {
                ) {
                        unset( $baseConfig[$o] ); // partition queue doesn't care about this
                }
+               // The class handles all aggregator calls already
+               unset( $baseConfig['aggregator'] );
                // Get the partition queue objects
                foreach ( $partitionMap as $partition => $w ) {
                        if ( !isset( $params['configByPartition'][$partition] ) ) {
@@ -328,7 +330,7 @@ class JobQueueFederated extends JobQueue {
                return false;
        }
 
-       protected function doDeduplicateRootJob( Job $job ) {
+       protected function doDeduplicateRootJob( IJobSpecification $job ) {
                $params = $job->getRootJobParams();
                $sigature = $params['rootJobSignature'];
                $partition = $this->partitionRing->getLiveLocation( $sigature );
@@ -373,27 +375,7 @@ class JobQueueFederated extends JobQueue {
                $this->throwErrorIfAllPartitionsDown( $failed );
        }
 
-       protected function doGetPeriodicTasks() {
-               $tasks = array();
-               /** @var JobQueue $queue */
-               foreach ( $this->partitionQueues as $partition => $queue ) {
-                       foreach ( $queue->getPeriodicTasks() as $task => $def ) {
-                               $tasks["{$partition}:{$task}"] = $def;
-                       }
-               }
-
-               return $tasks;
-       }
-
        protected function doFlushCaches() {
-               static $types = array(
-                       'empty',
-                       'size',
-                       'acquiredcount',
-                       'delayedcount',
-                       'abandonedcount'
-               );
-
                /** @var JobQueue $queue */
                foreach ( $this->partitionQueues as $queue ) {
                        $queue->doFlushCaches();
index ebd547a..5bd1cc9 100644 (file)
@@ -28,7 +28,7 @@
  * @since 1.21
  */
 class JobQueueGroup {
-       /** @var array */
+       /** @var JobQueueGroup[] */
        protected static $instances = array();
 
        /** @var ProcessCacheLRU */
@@ -40,6 +40,9 @@ class JobQueueGroup {
        /** @var array Map of (bucket => (queue => JobQueue, types => list of types) */
        protected $coalescedQueues;
 
+       /** @var Job[] */
+       protected $bufferedJobs = array();
+
        const TYPE_DEFAULT = 1; // integer; jobs popped by default
        const TYPE_ANY = 2; // integer; any job
 
@@ -100,13 +103,13 @@ class JobQueueGroup {
        }
 
        /**
-        * Insert jobs into the respective queues of with the belong.
+        * Insert jobs into the respective queues of which they belong
         *
         * This inserts the jobs into the queue specified by $wgJobTypeConf
         * and updates the aggregate job queue information cache as needed.
         *
-        * @param Job|Job[] $jobs A single Job or a list of Jobs
-        * @throws MWException
+        * @param IJobSpecification|IJobSpecification[] $jobs A single Job or a list of Jobs
+        * @throws InvalidArgumentException
         * @return void
         */
        public function push( $jobs ) {
@@ -115,13 +118,11 @@ class JobQueueGroup {
                        return;
                }
 
+               $this->assertValidJobs( $jobs );
+
                $jobsByType = array(); // (job type => list of jobs)
                foreach ( $jobs as $job ) {
-                       if ( $job instanceof IJobSpecification ) {
-                               $jobsByType[$job->getType()][] = $job;
-                       } else {
-                               throw new MWException( "Attempted to push a non-Job object into a queue." );
-                       }
+                       $jobsByType[$job->getType()][] = $job;
                }
 
                foreach ( $jobsByType as $type => $jobs ) {
@@ -136,6 +137,42 @@ class JobQueueGroup {
                }
        }
 
+       /**
+        * Buffer jobs for insertion via push() or call it now if in CLI mode
+        *
+        * Note that MediaWiki::restInPeace() calls pushLazyJobs()
+        *
+        * @param IJobSpecification|IJobSpecification[] $jobs A single Job or a list of Jobs
+        * @return void
+        * @since 1.26
+        */
+       public function lazyPush( $jobs ) {
+               if ( PHP_SAPI === 'cli' ) {
+                       $this->push( $jobs );
+                       return;
+               }
+
+               $jobs = is_array( $jobs ) ? $jobs : array( $jobs );
+
+               // Throw errors now instead of on push(), when other jobs may be buffered
+               $this->assertValidJobs( $jobs );
+
+               $this->bufferedJobs = array_merge( $this->bufferedJobs, $jobs );
+       }
+
+       /**
+        * Push all jobs buffered via lazyPush() into their respective queues
+        *
+        * @return void
+        * @since 1.26
+        */
+       public static function pushLazyJobs() {
+               foreach ( self::$instances as $group ) {
+                       $group->push( $group->bufferedJobs );
+                       $group->bufferedJobs = array();
+               }
+       }
+
        /**
         * Pop a job off one of the job queues
         *
@@ -188,10 +225,10 @@ class JobQueueGroup {
         * Acknowledge that a job was completed
         *
         * @param Job $job
-        * @return bool
+        * @return void
         */
        public function ack( Job $job ) {
-               return $this->get( $job->getType() )->ack( $job );
+               $this->get( $job->getType() )->ack( $job );
        }
 
        /**
@@ -211,7 +248,6 @@ class JobQueueGroup {
         * This does nothing for certain queue classes.
         *
         * @return void
-        * @throws MWException
         */
        public function waitForBackups() {
                global $wgJobTypeConf;
@@ -341,69 +377,6 @@ class JobQueueGroup {
                return $this->coalescedQueues;
        }
 
-       /**
-        * Execute any due periodic queue maintenance tasks for all queues.
-        *
-        * A task is "due" if the time ellapsed since the last run is greater than
-        * the defined run period. Concurrent calls to this function will cause tasks
-        * to be attempted twice, so they may need their own methods of mutual exclusion.
-        *
-        * @return int Number of tasks run
-        */
-       public function executeReadyPeriodicTasks() {
-               global $wgMemc;
-
-               list( $db, $prefix ) = wfSplitWikiID( $this->wiki );
-               $key = wfForeignMemcKey( $db, $prefix, 'jobqueuegroup', 'taskruns', 'v1' );
-               $lastRuns = $wgMemc->get( $key ); // (queue => task => UNIX timestamp)
-
-               $count = 0;
-               $tasksRun = array(); // (queue => task => UNIX timestamp)
-               foreach ( $this->getQueueTypes() as $type ) {
-                       $queue = $this->get( $type );
-                       foreach ( $queue->getPeriodicTasks() as $task => $definition ) {
-                               if ( $definition['period'] <= 0 ) {
-                                       continue; // disabled
-                               } elseif ( !isset( $lastRuns[$type][$task] )
-                                       || $lastRuns[$type][$task] < ( time() - $definition['period'] )
-                               ) {
-                                       try {
-                                               if ( call_user_func( $definition['callback'] ) !== null ) {
-                                                       $tasksRun[$type][$task] = time();
-                                                       ++$count;
-                                               }
-                                       } catch ( JobQueueError $e ) {
-                                               MWExceptionHandler::logException( $e );
-                                       }
-                               }
-                       }
-               }
-
-               if ( $count === 0 ) {
-                       return $count; // nothing to update
-               }
-
-               $wgMemc->merge( $key, function ( $cache, $key, $lastRuns ) use ( $tasksRun ) {
-                       if ( is_array( $lastRuns ) ) {
-                               foreach ( $tasksRun as $type => $tasks ) {
-                                       foreach ( $tasks as $task => $timestamp ) {
-                                               if ( !isset( $lastRuns[$type][$task] )
-                                                       || $timestamp > $lastRuns[$type][$task]
-                                               ) {
-                                                       $lastRuns[$type][$task] = $timestamp;
-                                               }
-                                       }
-                               }
-                       } else {
-                               $lastRuns = $tasksRun;
-                       }
-
-                       return $lastRuns;
-               } );
-
-               return $count;
-       }
-
        /**
         * @param string $name
         * @return mixed
@@ -427,4 +400,24 @@ class JobQueueGroup {
                        }
                }
        }
+
+       /**
+        * @param array $jobs
+        * @throws InvalidArgumentException
+        */
+       private function assertValidJobs( array $jobs ) {
+               foreach ( $jobs as $job ) { // sanity checks
+                       if ( !( $job instanceof IJobSpecification ) ) {
+                               throw new InvalidArgumentException( "Expected IJobSpecification objects" );
+                       }
+               }
+       }
+
+       function __destruct() {
+               $n = count( $this->bufferedJobs );
+               if ( $n > 0 ) {
+                       $type = implode( ', ', array_unique( array_map( 'get_class', $this->bufferedJobs ) ) );
+                       trigger_error( __METHOD__ . ": $n buffered job(s) of type(s) $type never inserted." );
+               }
+       }
 }
index 275d027..0f7ab19 100644 (file)
@@ -81,6 +81,7 @@ class JobQueueRedis extends JobQueue {
         *   - daemonized  : Set to true if the redisJobRunnerService runs in the background.
         *                   This will disable job recycling/undelaying from the MediaWiki side
         *                   to avoid redundance and out-of-sync configuration.
+        * @throws InvalidArgumentException
         */
        public function __construct( array $params ) {
                parent::__construct( $params );
@@ -89,7 +90,7 @@ class JobQueueRedis extends JobQueue {
                $this->compression = isset( $params['compression'] ) ? $params['compression'] : 'none';
                $this->redisPool = RedisConnectionPool::singleton( $params['redisConfig'] );
                if ( empty( $params['daemonized'] ) ) {
-                       throw new Exception(
+                       throw new InvalidArgumentException(
                                "Non-daemonized mode is no longer supported. Please install the " .
                                "mediawiki/services/jobrunner service and update \$wgJobTypeConf as needed." );
                }
@@ -110,7 +111,7 @@ class JobQueueRedis extends JobQueue {
        /**
         * @see JobQueue::doIsEmpty()
         * @return bool
-        * @throws MWException
+        * @throws JobQueueError
         */
        protected function doIsEmpty() {
                return $this->doGetSize() == 0;
@@ -119,7 +120,7 @@ class JobQueueRedis extends JobQueue {
        /**
         * @see JobQueue::doGetSize()
         * @return int
-        * @throws MWException
+        * @throws JobQueueError
         */
        protected function doGetSize() {
                $conn = $this->getConnection();
@@ -205,7 +206,7 @@ class JobQueueRedis extends JobQueue {
                        if ( $flags & self::QOS_ATOMIC ) {
                                $batches = array( $items ); // all or nothing
                        } else {
-                               $batches = array_chunk( $items, 500 ); // avoid tying up the server
+                               $batches = array_chunk( $items, 100 ); // avoid tying up the server
                        }
                        $failed = 0;
                        $pushed = 0;
@@ -356,11 +357,12 @@ LUA;
         * @see JobQueue::doAck()
         * @param Job $job
         * @return Job|bool
-        * @throws MWException|JobQueueError
+        * @throws UnexpectedValueException
+        * @throws JobQueueError
         */
        protected function doAck( Job $job ) {
                if ( !isset( $job->metadata['uuid'] ) ) {
-                       throw new MWException( "Job of type '{$job->getType()}' has no UUID." );
+                       throw new UnexpectedValueException( "Job of type '{$job->getType()}' has no UUID." );
                }
 
                $conn = $this->getConnection();
@@ -389,6 +391,8 @@ LUA;
 
                                return false;
                        }
+
+                       JobQueue::incrStats( 'job-ack', $this->type );
                } catch ( RedisException $e ) {
                        $this->throwRedisException( $conn, $e );
                }
@@ -398,13 +402,14 @@ LUA;
 
        /**
         * @see JobQueue::doDeduplicateRootJob()
-        * @param Job $job
+        * @param IJobSpecification $job
         * @return bool
-        * @throws MWException|JobQueueError
+        * @throws JobQueueError
+        * @throws LogicException
         */
-       protected function doDeduplicateRootJob( Job $job ) {
+       protected function doDeduplicateRootJob( IJobSpecification $job ) {
                if ( !$job->hasRootJobParams() ) {
-                       throw new MWException( "Cannot register root job; missing parameters." );
+                       throw new LogicException( "Cannot register root job; missing parameters." );
                }
                $params = $job->getRootJobParams();
 
@@ -589,7 +594,8 @@ LUA;
         * @param string $uid
         * @param RedisConnRef $conn
         * @return Job|bool Returns false if the job does not exist
-        * @throws MWException|JobQueueError
+        * @throws JobQueueError
+        * @throws UnexpectedValueException
         */
        public function getJobFromUidInternal( $uid, RedisConnRef $conn ) {
                try {
@@ -599,11 +605,12 @@ LUA;
                        }
                        $item = $this->unserialize( $data );
                        if ( !is_array( $item ) ) { // this shouldn't happen
-                               throw new MWException( "Could not find job with ID '$uid'." );
+                               throw new UnexpectedValueException( "Could not find job with ID '$uid'." );
                        }
                        $title = Title::makeTitle( $item['namespace'], $item['title'] );
                        $job = Job::factory( $item['type'], $title, $item['params'] );
                        $job->metadata['uuid'] = $item['uuid'];
+                       $job->metadata['timestamp'] = $item['timestamp'];
 
                        return $job;
                } catch ( RedisException $e ) {
@@ -611,13 +618,6 @@ LUA;
                }
        }
 
-       /**
-        * @return array
-        */
-       protected function doGetPeriodicTasks() {
-               return array(); // managed in the runner loop
-       }
-
        /**
         * @param IJobSpecification $job
         * @return array
@@ -648,6 +648,7 @@ LUA;
                $title = Title::makeTitle( $fields['namespace'], $fields['title'] );
                $job = Job::factory( $fields['type'], $title, $fields['params'] );
                $job->metadata['uuid'] = $fields['uuid'];
+               $job->metadata['timestamp'] = $fields['timestamp'];
 
                return $job;
        }
index 0948092..efc36cc 100644 (file)
@@ -103,23 +103,16 @@ class JobRunner implements LoggerAwareInterface {
                        return $response;
                }
 
-               $group = JobQueueGroup::singleton();
-               // Handle any required periodic queue maintenance
-               $count = $group->executeReadyPeriodicTasks();
-               if ( $count > 0 ) {
-                       $msg = "Executed $count periodic queue task(s).";
-                       $this->logger->debug( $msg );
-                       $this->debugCallback( $msg );
-               }
-
                // Bail out if in read-only mode
                if ( wfReadOnly() ) {
                        $response['reached'] = 'read-only';
                        return $response;
                }
 
+               $profiler = Profiler::instance();
+
                // Catch huge single updates that lead to slave lag
-               $trxProfiler = Profiler::instance()->getTransactionProfiler();
+               $trxProfiler = $profiler->getTransactionProfiler();
                $trxProfiler->setLogger( LoggerFactory::getInstance( 'DBPerformance' ) );
                $trxProfiler->setExpectations( $wgTrxProfilerLimits['JobRunner'], __METHOD__ );
 
@@ -132,15 +125,18 @@ class JobRunner implements LoggerAwareInterface {
                        return $response;
                }
 
+               $group = JobQueueGroup::singleton();
+               
                // Flush any pending DB writes for sanity
-               wfGetLBFactory()->commitMasterChanges();
+               wfGetLBFactory()->commitAll();
 
                // Some jobs types should not run until a certain timestamp
                $backoffs = array(); // map of (type => UNIX expiry)
                $backoffDeltas = array(); // map of (type => seconds)
                $wait = 'wait'; // block to read backoffs the first time
 
-               $jobsRun = 0;
+               $stats = RequestContext::getMain()->getStats();
+               $jobsPopped = 0;
                $timeMsTotal = 0;
                $flags = JobQueueGroup::USE_CACHE;
                $startTime = microtime( true ); // time since jobs started running
@@ -161,6 +157,7 @@ class JobRunner implements LoggerAwareInterface {
                        }
 
                        if ( $job ) { // found a job
+                               $popTime = time();
                                $jType = $job->getType();
 
                                // Back off of certain jobs for a while (for throttling and for errors)
@@ -175,24 +172,38 @@ class JobRunner implements LoggerAwareInterface {
                                }
 
                                $msg = $job->toString() . " STARTING";
-                               $this->logger->info( $msg );
+                               $this->logger->debug( $msg );
                                $this->debugCallback( $msg );
 
                                // Run the job...
+                               $psection = $profiler->scopedProfileIn( __METHOD__ . '-' . $jType );
                                $jobStartTime = microtime( true );
                                try {
-                                       ++$jobsRun;
+                                       ++$jobsPopped;
                                        $status = $job->run();
                                        $error = $job->getLastError();
                                        $this->commitMasterChanges( $job );
+
+                                       DeferredUpdates::doUpdates();
+                                       $this->commitMasterChanges( $job );
                                } catch ( Exception $e ) {
                                        MWExceptionHandler::rollbackMasterChangesAndLog( $e );
                                        $status = false;
                                        $error = get_class( $e ) . ': ' . $e->getMessage();
                                        MWExceptionHandler::logException( $e );
                                }
+                               // Commit all outstanding connections that are in a transaction
+                               // to get a fresh repeatable read snapshot on every connection.
+                               wfGetLBFactory()->commitAll();
                                $timeMs = intval( ( microtime( true ) - $jobStartTime ) * 1000 );
                                $timeMsTotal += $timeMs;
+                               $profiler->scopedProfileOut( $psection );
+
+                               if ( $job->getQueuedTimestamp() ) {
+                                       // Record time to run for the job type
+                                       $stats->timing( "job-pickuptime-$jType",
+                                               $popTime - $job->getQueuedTimestamp() );
+                               }
 
                                // Mark the job as done on success or when the job cannot be retried
                                if ( $status !== false || !$job->allowRetries() ) {
@@ -225,7 +236,7 @@ class JobRunner implements LoggerAwareInterface {
                                );
 
                                // Break out if we hit the job count or wall time limits...
-                               if ( $maxJobs && $jobsRun >= $maxJobs ) {
+                               if ( $maxJobs && $jobsPopped >= $maxJobs ) {
                                        $response['reached'] = 'job-limit';
                                        break;
                                } elseif ( $maxTime && ( microtime( true ) - $startTime ) > $maxTime ) {
@@ -245,7 +256,7 @@ class JobRunner implements LoggerAwareInterface {
                                        $lastCheckTime = microtime( true );
                                }
                                // Don't let any queue slaves/backups fall behind
-                               if ( $jobsRun > 0 && ( $jobsRun % 100 ) == 0 ) {
+                               if ( $jobsPopped > 0 && ( $jobsPopped % 100 ) == 0 ) {
                                        $group->waitForBackups();
                                }
 
@@ -410,7 +421,10 @@ class JobRunner implements LoggerAwareInterface {
        }
 
        /**
-        * Commit any DB master changes from a job on all load balancers
+        * Issue a commit on all masters who are currently in a transaction and have
+        * made changes to the database. It also supports sometimes waiting for the
+        * local wiki's slaves to catch up. See the documentation for
+        * $wgJobSerialCommitThreshold for more.
         *
         * @param Job $job
         * @throws DBError
index 9ace1ba..d59c09b 100644 (file)
@@ -58,6 +58,26 @@ interface IJobSpecification {
         */
        public function getDeduplicationInfo();
 
+       /**
+        * @see JobQueue::deduplicateRootJob()
+        * @return array
+        * @since 1.26
+        */
+       public function getRootJobParams();
+
+       /**
+        * @see JobQueue::deduplicateRootJob()
+        * @return bool
+        * @since 1.22
+        */
+       public function hasRootJobParams();
+
+       /**
+        * @see JobQueue::deduplicateRootJob()
+        * @return bool Whether this is job is a root job
+        */
+       public function isRootJob();
+
        /**
         * @return Title Descriptive title (this can simply be informative)
         */
@@ -125,51 +145,28 @@ class JobSpecification implements IJobSpecification {
                }
        }
 
-       /**
-        * @return string
-        */
        public function getType() {
                return $this->type;
        }
 
-       /**
-        * @return Title
-        */
        public function getTitle() {
                return $this->title;
        }
 
-       /**
-        * @return array
-        */
        public function getParams() {
                return $this->params;
        }
 
-       /**
-        * @return int|null UNIX timestamp to delay running this job until, otherwise null
-        */
        public function getReleaseTimestamp() {
                return isset( $this->params['jobReleaseTimestamp'] )
                        ? wfTimestampOrNull( TS_UNIX, $this->params['jobReleaseTimestamp'] )
                        : null;
        }
 
-       /**
-        * @return bool Whether only one of each identical set of jobs should be run
-        */
        public function ignoreDuplicates() {
                return !empty( $this->opts['removeDuplicates'] );
        }
 
-       /**
-        * Subclasses may need to override this to make duplication detection work.
-        * The resulting map conveys everything that makes the job unique. This is
-        * only checked if ignoreDuplicates() returns true, meaning that duplicate
-        * jobs are supposed to be ignored.
-        *
-        * @return array Map of key/values
-        */
        public function getDeduplicationInfo() {
                $info = array(
                        'type' => $this->getType(),
@@ -188,6 +185,26 @@ class JobSpecification implements IJobSpecification {
                return $info;
        }
 
+       public function getRootJobParams() {
+               return array(
+                       'rootJobSignature' => isset( $this->params['rootJobSignature'] )
+                               ? $this->params['rootJobSignature']
+                               : null,
+                       'rootJobTimestamp' => isset( $this->params['rootJobTimestamp'] )
+                               ? $this->params['rootJobTimestamp']
+                               : null
+               );
+       }
+
+       public function hasRootJobParams() {
+               return isset( $this->params['rootJobSignature'] )
+                       && isset( $this->params['rootJobTimestamp'] );
+       }
+
+       public function isRootJob() {
+               return $this->hasRootJobParams() && !empty( $this->params['rootJobIsSelf'] );
+       }
+
        /**
         * @return array Field/value map that can immediately be serialized
         * @since 1.25
index 495bda9..f146e6e 100644 (file)
@@ -27,7 +27,7 @@
  * @since 1.26
  */
 class ActivityUpdateJob extends Job {
-       function __construct( $title, $params ) {
+       function __construct( Title $title, array $params ) {
                parent::__construct( 'activityUpdateJob', $title, $params );
 
                if ( !isset( $params['type'] ) ) {
index b7f09e7..a1de77e 100644 (file)
@@ -27,7 +27,7 @@
  * @ingroup Upload
  */
 class AssembleUploadChunksJob extends Job {
-       public function __construct( $title, $params ) {
+       public function __construct( Title $title, array $params ) {
                parent::__construct( 'AssembleUploadChunks', $title, $params );
                $this->removeDuplicates = true;
        }
index 2561f2f..ab63896 100644 (file)
@@ -40,6 +40,16 @@ class DoubleRedirectJob extends Job {
        /** @var User */
        private static $user;
 
+       /**
+        * @param Title $title
+        * @param array $params
+        */
+       function __construct( Title $title, array $params ) {
+               parent::__construct( 'fixDoubleRedirect', $title, $params );
+               $this->reason = $params['reason'];
+               $this->redirTitle = Title::newFromText( $params['redirTitle'] );
+       }
+
        /**
         * Insert jobs into the job queue to fix redirects to the given title
         * @param string $reason The reason for the fix, see message
@@ -81,16 +91,6 @@ class DoubleRedirectJob extends Job {
                JobQueueGroup::singleton()->push( $jobs );
        }
 
-       /**
-        * @param Title $title
-        * @param array|bool $params
-        */
-       function __construct( $title, $params = false ) {
-               parent::__construct( 'fixDoubleRedirect', $title, $params );
-               $this->reason = $params['reason'];
-               $this->redirTitle = Title::newFromText( $params['redirTitle'] );
-       }
-
        /**
         * @return bool
         */
index c5e3a23..068d531 100644 (file)
@@ -33,7 +33,7 @@ final class DuplicateJob extends Job {
         * @param Title $title
         * @param array $params Job parameters
         */
-       function __construct( $title, $params ) {
+       function __construct( Title $title, array $params ) {
                parent::__construct( 'duplicate', $title, $params );
        }
 
index df8ae63..68e96fc 100644 (file)
@@ -28,7 +28,7 @@
  * @ingroup JobQueue
  */
 class EmaillingJob extends Job {
-       function __construct( $title, $params ) {
+       function __construct( Title $title = null, array $params ) {
                parent::__construct( 'sendMail', Title::newMainPage(), $params );
        }
 
index 1ed99a5..9a5c3c7 100644 (file)
@@ -27,7 +27,7 @@
  * @ingroup JobQueue
  */
 class EnotifNotifyJob extends Job {
-       function __construct( $title, $params ) {
+       function __construct( Title $title, array $params ) {
                parent::__construct( 'enotifNotify', $title, $params );
        }
 
index fdef1f5..ca597ca 100755 (executable)
@@ -40,7 +40,7 @@ final class EnqueueJob extends Job {
         * @param Title $title
         * @param array $params Job parameters
         */
-       function __construct( $title, $params ) {
+       function __construct( Title $title, array $params ) {
                parent::__construct( 'enqueue', $title, $params );
        }
 
@@ -56,7 +56,7 @@ final class EnqueueJob extends Job {
 
        /**
         * @param array $jobsByWiki Map of (wiki => JobSpecification list)
-        * @return JobRouteJob
+        * @return EnqueueJob
         */
        public static function newFromJobsByWiki( array $jobsByWiki ) {
                $jobMapsByWiki = array();
index e5e521c..a9010c2 100644 (file)
@@ -34,7 +34,7 @@
  * @ingroup JobQueue
  */
 class HTMLCacheUpdateJob extends Job {
-       function __construct( $title, $params = '' ) {
+       function __construct( Title $title, array $params ) {
                parent::__construct( 'htmlCacheUpdate', $title, $params );
                // Base backlink purge jobs can be de-duplicated
                $this->removeDuplicates = ( !isset( $params['range'] ) && !isset( $params['pages'] ) );
index f94d6eb..26d3c5c 100644 (file)
@@ -49,7 +49,7 @@ class NullJob extends Job {
         * @param Title $title
         * @param array $params Job parameters (lives, usleep)
         */
-       function __construct( $title, $params ) {
+       function __construct( Title $title, array $params ) {
                parent::__construct( 'null', $title, $params );
                if ( !isset( $this->params['lives'] ) ) {
                        $this->params['lives'] = 1;
index a922dd3..8a180ec 100644 (file)
@@ -29,7 +29,7 @@
  * @ingroup JobQueue
  */
 class PublishStashedFileJob extends Job {
-       public function __construct( $title, $params ) {
+       public function __construct( Title $title, array $params ) {
                parent::__construct( 'PublishStashedFile', $title, $params );
                $this->removeDuplicates = true;
        }
index cc04595..e86d914 100644 (file)
@@ -27,7 +27,7 @@
  * @since 1.25
  */
 class RecentChangesUpdateJob extends Job {
-       function __construct( $title, $params ) {
+       function __construct( Title $title, array $params ) {
                parent::__construct( 'recentChangesUpdate', $title, $params );
 
                if ( !isset( $params['type'] ) ) {
index 1252b0b..f706455 100644 (file)
@@ -37,7 +37,9 @@
 class RefreshLinksJob extends Job {
        const PARSE_THRESHOLD_SEC = 1.0;
 
-       function __construct( $title, $params = '' ) {
+       const CLOCK_FUDGE = 10;
+
+       function __construct( Title $title, array $params ) {
                parent::__construct( 'refreshLinks', $title, $params );
                // A separate type is used just for cascade-protected backlinks
                if ( !empty( $this->params['prioritize'] ) ) {
@@ -140,22 +142,38 @@ class RefreshLinksJob extends Job {
 
                $parserOutput = false;
                $parserOptions = $page->makeParserOptions( 'canonical' );
-               // If page_touched changed after this root job (with a good slave lag skew factor),
-               // then it is likely that any views of the pages already resulted in re-parses which
-               // are now in cache. This can be reused to avoid expensive parsing in some cases.
+               // If page_touched changed after this root job, then it is likely that
+               // any views of the pages already resulted in re-parses which are now in
+               // cache. The cache can be reused to avoid expensive parsing in some cases.
                if ( isset( $this->params['rootJobTimestamp'] ) ) {
-                       $skewedTimestamp = wfTimestamp( TS_UNIX, $this->params['rootJobTimestamp'] ) + 5;
-                       if ( $page->getLinksTimestamp() > wfTimestamp( TS_MW, $skewedTimestamp ) ) {
+                       $opportunistic = !empty( $this->params['isOpportunistic'] );
+
+                       $skewedTimestamp = $this->params['rootJobTimestamp'];
+                       if ( $opportunistic ) {
+                               // Neither clock skew nor DB snapshot/slave lag matter much for such
+                               // updates; focus on reusing the (often recently updated) cache
+                       } else {
+                               // For transclusion updates, the template changes must be reflected
+                               $skewedTimestamp = wfTimestamp( TS_MW,
+                                       wfTimestamp( TS_UNIX, $skewedTimestamp ) + self::CLOCK_FUDGE
+                               );
+                       }
+
+                       if ( $page->getLinksTimestamp() > $skewedTimestamp ) {
                                // Something already updated the backlinks since this job was made
                                return true;
                        }
-                       if ( $page->getTouched() > wfTimestamp( TS_MW, $skewedTimestamp ) ) {
+
+                       if ( $page->getTouched() >= $skewedTimestamp || $opportunistic ) {
+                               // Something bumped page_touched since this job was made
+                               // or the cache is otherwise suspected to be up-to-date
                                $parserOutput = ParserCache::singleton()->getDirty( $page, $parserOptions );
-                               if ( $parserOutput && $parserOutput->getCacheTime() <= $skewedTimestamp ) {
+                               if ( $parserOutput && $parserOutput->getCacheTime() < $skewedTimestamp ) {
                                        $parserOutput = false; // too stale
                                }
                        }
                }
+
                // Fetch the current revision and parse it if necessary...
                if ( $parserOutput == false ) {
                        $start = microtime( true );
index ab38138..a58fa8b 100644 (file)
@@ -27,7 +27,7 @@
  * @ingroup JobQueue
  */
 class ThumbnailRenderJob extends Job {
-       public function __construct( $title, $params ) {
+       public function __construct( Title $title, array $params ) {
                parent::__construct( 'ThumbnailRender', $title, $params );
        }
 
index d15fd02..a15d51e 100644 (file)
@@ -39,7 +39,7 @@ class UploadFromUrlJob extends Job {
        /** @var User */
        protected $user;
 
-       public function __construct( $title, $params ) {
+       public function __construct( Title $title, array $params ) {
                parent::__construct( 'uploadFromUrl', $title, $params );
        }
 
index ffe26a9..f415c9b 100644 (file)
@@ -31,6 +31,9 @@ class CSSMin {
 
        /* Constants */
 
+       /** @var string Strip marker for comments. **/
+       const PLACEHOLDER = "\x7fPLACEHOLDER\x7f";
+
        /**
         * Internet Explorer data URI length limit. See encodeImageAsDataURI().
         */
@@ -232,19 +235,22 @@ class CSSMin {
                        $remote = substr( $remote, 0, -1 );
                }
 
+               // Disallow U+007F DELETE, which is illegal anyway, and which
+               // we use for comment placeholders.
+               $source = str_replace( "\x7f", "?", $source );
+
                // Replace all comments by a placeholder so they will not interfere with the remapping.
                // Warning: This will also catch on anything looking like the start of a comment between
                // quotation marks (e.g. "foo /* bar").
                $comments = array();
-               $placeholder = uniqid( '', true );
 
                $pattern = '/(?!' . CSSMin::EMBED_REGEX . ')(' . CSSMin::COMMENT_REGEX . ')/s';
 
                $source = preg_replace_callback(
                        $pattern,
-                       function ( $match ) use ( &$comments, $placeholder ) {
+                       function ( $match ) use ( &$comments ) {
                                $comments[] = $match[ 0 ];
-                               return $placeholder . ( count( $comments ) - 1 ) . 'x';
+                               return CSSMin::PLACEHOLDER . ( count( $comments ) - 1 ) . 'x';
                        },
                        $source
                );
@@ -257,13 +263,13 @@ class CSSMin {
 
                $source = preg_replace_callback(
                        $pattern,
-                       function ( $matchOuter ) use ( $local, $remote, $embedData, $placeholder ) {
+                       function ( $matchOuter ) use ( $local, $remote, $embedData ) {
                                $rule = $matchOuter[0];
 
                                // Check for global @embed comment and remove it. Allow other comments to be present
                                // before @embed (they have been replaced with placeholders at this point).
                                $embedAll = false;
-                               $rule = preg_replace( '/^((?:\s+|' . $placeholder . '(\d+)x)*)' . CSSMin::EMBED_REGEX . '\s*/', '$1', $rule, 1, $embedAll );
+                               $rule = preg_replace( '/^((?:\s+|' . CSSMin::PLACEHOLDER . '(\d+)x)*)' . CSSMin::EMBED_REGEX . '\s*/', '$1', $rule, 1, $embedAll );
 
                                // Build two versions of current rule: with remapped URLs
                                // and with embedded data: URIs (where possible).
@@ -328,7 +334,7 @@ class CSSMin {
                        }, $source );
 
                // Re-insert comments
-               $pattern = '/' . $placeholder . '(\d+)x/';
+               $pattern = '/' . CSSMin::PLACEHOLDER . '(\d+)x/';
                $source = preg_replace_callback( $pattern, function( $match ) use ( &$comments ) {
                        return $comments[ $match[1] ];
                }, $source );
index 809bfdf..442298a 100644 (file)
 class HttpStatus {
 
        /**
-        * Get the message associated with HTTP response code $code
+        * Get the message associated with an HTTP response status code
         *
-        * @param $code Integer: status code
-        * @return String or null: message or null if $code is not in the list of
-        *         messages
+        * @param int $code Status code
+        * @return string|null Message, or null if $code is not known
         */
        public static function getMessage( $code ) {
                static $statusMessage = array(
@@ -88,4 +87,25 @@ class HttpStatus {
                return isset( $statusMessage[$code] ) ? $statusMessage[$code] : null;
        }
 
+       /**
+        * Output an HTTP status code header
+        *
+        * @since 1.26
+        * @param int $code Status code
+        */
+       public static function header( $code ) {
+               static $version = null;
+               $message = self::getMessage( $code );
+               if ( $message === null ) {
+                       trigger_error( "Unknown HTTP status code $code", E_USER_WARNING );
+                       return false;
+               }
+
+               if ( $version === null ) {
+                       $version = isset( $_SERVER['SERVER_PROTOCOL'] ) && $_SERVER['SERVER_PROTOCOL'] === 'HTTP/1.0' ? '1.0' : '1.1';
+               }
+
+               header( "HTTP/$version $code $message" );
+       }
+
 }
index 0b6db32..a0230be 100644 (file)
@@ -20,6 +20,7 @@
  * @file
  * @ingroup Cache
  */
+use Wikimedia\Assert\Assert;
 
 /**
  * Handles a simple LRU key/value map with a maximum number of entries
@@ -41,9 +42,9 @@ class MapCacheLRU {
         * @throws Exception When $maxCacheKeys is not an int or =< 0.
         */
        public function __construct( $maxKeys ) {
-               if ( !is_int( $maxKeys ) || $maxKeys < 1 ) {
-                       throw new Exception( __METHOD__ . " must be given an integer and >= 1" );
-               }
+               Assert::parameterType( 'integer', $maxKeys, '$maxKeys' );
+               Assert::parameter( $maxKeys >= 1, '$maxKeys', 'must be >= 1' );
+
                $this->maxCacheKeys = $maxKeys;
        }
 
index 8d80eb3..b55ff9d 100644 (file)
@@ -20,6 +20,7 @@
  * @file
  * @ingroup Cache
  */
+use Wikimedia\Assert\Assert;
 
 /**
  * Handles per process caching of items
@@ -128,9 +129,9 @@ class ProcessCacheLRU {
         * @throws UnexpectedValueException
         */
        public function resize( $maxKeys ) {
-               if ( !is_int( $maxKeys ) || $maxKeys < 1 ) {
-                       throw new UnexpectedValueException( __METHOD__ . " must be given an integer >= 1" );
-               }
+               Assert::parameterType( 'integer', $maxKeys, '$maxKeys' );
+               Assert::parameter( $maxKeys >= 1, '$maxKeys', 'must be >= 1' );
+
                $this->maxCacheKeys = $maxKeys;
                while ( count( $this->cache ) > $this->maxCacheKeys ) {
                        reset( $this->cache );
index 7fdb309..185914c 100644 (file)
@@ -76,7 +76,7 @@ class ReplacementArray {
         * @param array $data
         */
        public function mergeArray( $data ) {
-               $this->data = array_merge( $this->data, $data );
+               $this->data = $data + $this->data;
                $this->fss = false;
        }
 
@@ -84,7 +84,7 @@ class ReplacementArray {
         * @param ReplacementArray $other
         */
        public function merge( ReplacementArray $other ) {
-               $this->data = array_merge( $this->data, $other->data );
+               $this->data = $other->data + $this->data;
                $this->fss = false;
        }
 
index 6d01986..34afb68 100644 (file)
@@ -38,6 +38,13 @@ class XmlTypeCheck {
         */
        public $filterMatch = false;
 
+       /**
+        * Will contain the type of filter hit if the optional element filter returned
+        * a match at some point.
+        * @var mixed
+        */
+       public $filterMatchType = false;
+
        /**
         * Name of the document's root element, including any namespace
         * as an expanded URL.
@@ -173,7 +180,7 @@ class XmlTypeCheck {
                // First, move through anything that isn't an element, and
                // handle any processing instructions with the callback
                do {
-                       if( !$this->readNext( $reader ) ) {
+                       if ( !$this->readNext( $reader ) ) {
                                // Hit the end of the document before any elements
                                $this->wellFormed = false;
                                return;
@@ -294,17 +301,20 @@ class XmlTypeCheck {
                list( $name, $attribs ) = array_pop( $this->elementDataContext );
                $data = array_pop( $this->elementData );
                $this->stackDepth--;
+               $callbackReturn = false;
 
-               if ( is_callable( $this->filterCallback )
-                       && call_user_func(
+               if ( is_callable( $this->filterCallback ) ) {
+                       $callbackReturn = call_user_func(
                                $this->filterCallback,
                                $name,
                                $attribs,
                                $data
-                       )
-               ) {
-                       // Filter hit
+                       );
+               }
+               if ( $callbackReturn ) {
+                       // Filter hit!
                        $this->filterMatch = true;
+                       $this->filterMatchType = $callbackReturn;
                }
        }
 
@@ -321,15 +331,18 @@ class XmlTypeCheck {
         * @param $data
         */
        private function processingInstructionHandler( $target, $data ) {
+               $callbackReturn = false;
                if ( $this->parserOptions['processing_instruction_handler'] ) {
-                       if ( call_user_func(
+                       $callbackReturn = call_user_func(
                                $this->parserOptions['processing_instruction_handler'],
                                $target,
                                $data
-                       ) ) {
-                               // Filter hit!
-                               $this->filterMatch = true;
-                       }
+                       );
+               }
+               if ( $callbackReturn ) {
+                       // Filter hit!
+                       $this->filterMatch = true;
+                       $this->filterMatchType = $callbackReturn;
                }
        }
 }
index 5507e9d..65ff0ee 100644 (file)
@@ -1,7 +1,5 @@
 <?php
 /**
- * Classes to cache objects in PHP accelerators, SQL database or DBA files
- *
  * Copyright © 2003-2004 Brion Vibber <brion@pobox.com>
  * https://www.mediawiki.org/
  *
index 99b03ed..a263a3d 100644 (file)
@@ -29,7 +29,7 @@
  * writes are rare or they usually take place in the primary datacenter.
  *
  * @ingroup Cache
- * @since 1.25
+ * @since 1.26
  */
 class ReplicatedBagOStuff extends BagOStuff {
        /** @var BagOStuff */
index 7f55456..5d9557a 100755 (executable)
@@ -74,6 +74,11 @@ class WANObjectCache {
        /** Seconds to keep lock keys around */
        const LOCK_TTL = 5;
 
+       /** Idiom for set()/getWithSetCallback() TTL */
+       const TTL_NONE = 0;
+       /** Idiom for getWithSetCallback() callbacks to avoid calling set() */
+       const TTL_UNCACHEABLE = -1;
+
        /** Cache format version number */
        const VERSION = 1;
 
@@ -108,6 +113,17 @@ class WANObjectCache {
                $this->relayer = $params['relayer'];
        }
 
+       /**
+        * @return WANObjectCache Cache that wraps EmptyBagOStuff
+        */
+       public static function newEmpty() {
+               return new self( array(
+                       'cache'   => new EmptyBagOStuff(),
+                       'pool'    => 'empty',
+                       'relayer' => new EventRelayerNull( array() )
+               ) );
+       }
+
        /**
         * Fetch the value of a key from cache
         *
@@ -263,6 +279,8 @@ class WANObjectCache {
        /**
         * Fetch the value of a timestamp "check" key
         *
+        * Note that "check" keys won't collide with other regular keys
+        *
         * @param string $key
         * @return float|bool TS_UNIX timestamp of the key; false if not present
         */
@@ -283,6 +301,8 @@ class WANObjectCache {
         * avoid race conditions where dependent keys get updated with a
         * stale value (e.g. from a DB slave).
         *
+        * Note that "check" keys won't collide with other regular keys
+        *
         * @see WANObjectCache::get()
         *
         * @param string $key Cache key
@@ -300,10 +320,13 @@ class WANObjectCache {
        /**
         * Method to fetch/regenerate cache keys
         *
-        * On cache miss, the key will be set to the callback result.
+        * On cache miss, the key will be set to the callback result,
+        * unless the callback returns false. The arguments supplied are:
+        *     (current value or false, &$ttl)
         * The callback function returns the new value given the current
-        * value (false if not present). If false is returned, then nothing
-        * will be saved to cache.
+        * value (false if not present). Preemptive re-caching and $checkKeys
+        * can result in a non-false current value. The TTL of the new value
+        * can be set dynamically by altering $ttl in the callback (by reference).
         *
         * Usually, callbacks ignore the current value, but it can be used
         * to maintain "most recent X" values that come from time or sequence
@@ -326,7 +349,7 @@ class WANObjectCache {
         * @code
         *     $key = wfMemcKey( 'cat-recent-actions', $catId );
         *     // Function that derives the new key value given the old value
-        *     $callback = function( $cValue ) { ... };
+        *     $callback = function( $cValue, &$ttl ) { ... };
         *     // Get the key value from cache or from source on cache miss;
         *     // try to only let one cluster thread manage doing cache updates
         *     $opts = array( 'lockTSE' => 5, 'lowTTL' => 10 );
@@ -355,16 +378,20 @@ class WANObjectCache {
         *
         * @param string $key Cache key
         * @param callable $callback Value generation function
-        * @param integer $ttl Seconds to live when the key is updated [0=forever]
+        * @param integer $ttl Seconds to live for key updates. Special values are:
+        *   - WANObjectCache::TTL_NONE        : cache forever
+        *   - WANObjectCache::TTL_UNCACHEABLE : do not cache at all
         * @param array $checkKeys List of "check" keys
         * @param array $opts Options map:
         *   - lowTTL  : consider pre-emptive updates when the current TTL (sec)
         *               of the key is less than this. It becomes more likely
         *               over time, becoming a certainty once the key is expired.
-        *   - lockTSE : if the key is tombstoned or expired less (by $checkKeys)
+        *   - lockTSE : if the key is tombstoned or expired (by $checkKeys) less
         *               than this many seconds ago, then try to have a single
         *               thread handle cache regeneration at any given time.
         *               Other threads will try to use stale values if possible.
+        *               If, on miss, the time since expiration is low, the assumption
+        *               is that the key is hot and that a stampede is worth avoiding.
         *   - tempTTL : when 'lockTSE' is set, this determines the TTL of the temp
         *               key used to cache values while a key is tombstoned.
         *               This avoids excessive regeneration of hot keys on delete() but
@@ -388,16 +415,12 @@ class WANObjectCache {
                        return $value;
                }
 
-               if ( !is_callable( $callback ) ) {
-                       throw new InvalidArgumentException( "Invalid cache miss callback provided." );
-               }
-
+               $isTombstone = ( $curTTL !== null && $value === false );
                // Assume a key is hot if requested soon after invalidation
                $isHot = ( $curTTL !== null && $curTTL <= 0 && abs( $curTTL ) <= $lockTSE );
-               $isTombstone = ( $curTTL !== null && $value === false );
 
                $locked = false;
-               if ( $isHot || $isTombstone ) {
+               if ( $isHot ) {
                        // Acquire a cluster-local non-blocking lock
                        if ( $this->cache->lock( $key, 0, self::LOCK_TTL ) ) {
                                // Lock acquired; this thread should update the key
@@ -405,22 +428,28 @@ class WANObjectCache {
                        } elseif ( $value !== false ) {
                                // If it cannot be acquired; then the stale value can be used
                                return $value;
-                       } else {
-                               // Either another thread has the lock or the lock failed.
-                               // Use the stash value, which is likely from the prior thread.
-                               $value = $this->cache->get( self::STASH_KEY_PREFIX . $key );
-                               // Regenerate on timeout or if the other thread failed
-                               if ( $value !== false ) {
-                                       return $value;
-                               }
                        }
                }
 
+               if ( !$locked && ( $isTombstone || $isHot ) ) {
+                       // Use the stash 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 ) {
+                               return $value;
+                       }
+               }
+
+               if ( !is_callable( $callback ) ) {
+                       throw new InvalidArgumentException( "Invalid cache miss callback provided." );
+               }
+
                // Generate the new value from the callback...
-               $value = call_user_func( $callback, $cValue );
+               $value = call_user_func_array( $callback, array( $cValue, &$ttl ) );
                // When delete() is called, writes are write-holed by the tombstone,
                // so use a special stash key to pass the new value around threads.
-               if ( $value !== false && ( $isHot || $isTombstone ) ) {
+               if ( $value !== false && ( $isHot || $isTombstone ) && $ttl >= 0 ) {
                        $this->cache->set( self::STASH_KEY_PREFIX . $key, $value, $tempTTL );
                }
 
@@ -428,7 +457,7 @@ class WANObjectCache {
                        $this->cache->unlock( $key );
                }
 
-               if ( $value !== false ) {
+               if ( $value !== false && $ttl >= 0 ) {
                        // Update the cache; this will fail if the key is tombstoned
                        $this->set( $key, $value, $ttl );
                }
index b391be3..8427adb 100644 (file)
@@ -246,9 +246,9 @@ class DatabaseLogEntry extends LogEntryBase {
        public function getParameters() {
                if ( !isset( $this->params ) ) {
                        $blob = $this->getRawParameters();
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $params = LogEntryBase::extractParams( $blob );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        if ( $params !== false ) {
                                $this->params = $params;
                                $this->legacy = false;
index 9c2fdd3..0145b02 100644 (file)
@@ -193,6 +193,8 @@ class LogFormatter {
         * @return string Text
         */
        public function getIRCActionText() {
+               global $wgContLang;
+
                $this->plaintext = true;
                $this->irctext = true;
 
@@ -338,7 +340,6 @@ class LogFormatter {
                        case 'block':
                                switch ( $entry->getSubtype() ) {
                                        case 'block':
-                                               global $wgContLang;
                                                // Keep compatibility with extensions by checking for
                                                // new key (5::duration/6::flags) or old key (0/optional 1)
                                                if ( $entry->isLegacy() ) {
@@ -358,7 +359,6 @@ class LogFormatter {
                                                        ->rawParams( $target )->inContentLanguage()->escaped();
                                                break;
                                        case 'reblock':
-                                               global $wgContLang;
                                                $duration = $wgContLang->translateBlockExpiry( $parameters['5::duration'] );
                                                $flags = BlockLogFormatter::formatBlockFlags( $parameters['6::flags'], $wgContLang );
                                                $text = wfMessage( 'reblock-logentry' )
@@ -790,7 +790,7 @@ class LogFormatter {
                                break;
 
                        case 'number':
-                               if ( ctype_digit( $value ) ) {
+                               if ( ctype_digit( $value ) || is_int( $value ) ) {
                                        $value = (int)$value;
                                } else {
                                        $value = (float)$value;
index bf489ab..598a45f 100644 (file)
@@ -192,7 +192,7 @@ class LogPager extends ReverseChronologicalPager {
         * @return void
         */
        private function limitTitle( $page, $pattern ) {
-               global $wgMiserMode;
+               global $wgMiserMode, $wgUserrightsInterwikiDelimiter;
 
                if ( $page instanceof Title ) {
                        $title = $page;
@@ -209,7 +209,6 @@ class LogPager extends ReverseChronologicalPager {
 
                $doUserRightsLogLike = false;
                if ( $this->types == array( 'rights' ) ) {
-                       global $wgUserrightsInterwikiDelimiter;
                        $parts = explode( $wgUserrightsInterwikiDelimiter, $title->getDBKey() );
                        if ( count( $parts ) == 2 ) {
                                list( $name, $database ) = array_map( 'trim', $parts );
@@ -249,7 +248,7 @@ class LogPager extends ReverseChronologicalPager {
                $user = $this->getUser();
                if ( !$user->isAllowed( 'deletedhistory' ) ) {
                        $this->mConds[] = $db->bitAnd( 'log_deleted', LogPage::DELETED_ACTION ) . ' = 0';
-               } elseif ( !$user->isAllowed( 'suppressrevision' ) ) {
+               } elseif ( !$user->isAllowedAny( 'suppressrevision', 'viewsuppressed' ) ) {
                        $this->mConds[] = $db->bitAnd( 'log_deleted', LogPage::SUPPRESSED_ACTION ) .
                                ' != ' . LogPage::SUPPRESSED_ACTION;
                }
index 0033743..7fe0143 100644 (file)
@@ -68,9 +68,11 @@ class PatrolLogFormatter extends LogFormatter {
                $params = $entry->getParameters();
 
                static $map = array(
-                       '4::curid',
-                       '5::previd',
+                       '4:number:curid',
+                       '5:number:previd',
                        '6:bool:auto',
+                       '4::curid' => '4:number:curid',
+                       '5::previd' => '5:number:previd',
                        '6::auto' => '6:bool:auto',
                );
                foreach ( $map as $index => $key ) {
index 81c4e38..c359659 100644 (file)
@@ -61,7 +61,7 @@ class EmailNotification {
         * @param User $editor The editor that triggered the update.  Their notification
         *  timestamp will not be updated(they have already seen it)
         * @param Title $title The title to update timestamps for
-        * @param string $timestamp Set the upate timestamp to this value
+        * @param string $timestamp Set the update timestamp to this value
         * @return int[]
         */
        public static function updateWatchlistTimestamp( User $editor, Title $title, $timestamp ) {
@@ -110,7 +110,6 @@ class EmailNotification {
 
        /**
         * Send emails corresponding to the user $editor editing the page $title.
-        * Also updates wl_notificationtimestamp.
         *
         * May be deferred via the job queue.
         *
@@ -168,7 +167,7 @@ class EmailNotification {
                                'pageStatus' => $pageStatus
                        );
                        $job = new EnotifNotifyJob( $title, $params );
-                       JobQueueGroup::singleton()->push( $job );
+                       JobQueueGroup::singleton()->lazyPush( $job );
                } else {
                        $this->actuallyNotifyOnPageChange(
                                $editor,
@@ -187,8 +186,8 @@ class EmailNotification {
         * Immediate version of notifyOnPageChange().
         *
         * Send emails corresponding to the user $editor editing the page $title.
-        * Also updates wl_notificationtimestamp.
         *
+        * @note Do not call directly. Use notifyOnPageChange so that wl_notificationtimestamp is updated.
         * @param User $editor
         * @param Title $title
         * @param string $timestamp Edit timestamp
index 3cabdae..546cc8c 100644 (file)
@@ -206,6 +206,8 @@ class UserMailer {
                $headers['Date'] = MWTimestamp::getLocalInstance()->format( 'r' );
                $headers['Message-ID'] = self::makeMsgId();
                $headers['X-Mailer'] = 'MediaWiki mailer';
+               $headers['List-Unsubscribe'] = '<' . SpecialPage::getTitleFor( 'Preferences' )
+                       ->getFullURL( '', false, PROTO_CANONICAL ) . '>';
 
                # Line endings need to be different on Unix and Windows due to
                # the bug described at http://trac.wordpress.org/ticket/2603
@@ -269,13 +271,13 @@ class UserMailer {
                        }
                        require_once 'Mail.php';
 
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
 
                        // Create the mail object using the Mail::factory method
                        $mail_object =& Mail::factory( 'smtp', $wgSMTP );
                        if ( PEAR::isError( $mail_object ) ) {
                                wfDebug( "PEAR::Mail factory failed: " . $mail_object->getMessage() . "\n" );
-                               wfRestoreWarnings();
+                               MediaWiki\restoreWarnings();
                                return Status::newFatal( 'pear-mail-error', $mail_object->getMessage() );
                        }
 
@@ -295,11 +297,11 @@ class UserMailer {
                                $status = self::sendWithPear( $mail_object, $chunk, $headers, $body );
                                # FIXME : some chunks might be sent while others are not!
                                if ( !$status->isOK() ) {
-                                       wfRestoreWarnings();
+                                       MediaWiki\restoreWarnings();
                                        return $status;
                                }
                        }
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        return Status::newGood();
                } else {
                        #
index eadcf94..09d3807 100644 (file)
@@ -121,9 +121,9 @@ class BitmapHandler extends TransformationalImageHandler {
                                '-layers', 'merge',
                                '-background', 'white',
                        );
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $xcfMeta = unserialize( $image->getMetadata() );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        if ( $xcfMeta
                                && isset( $xcfMeta['colorType'] )
                                && $xcfMeta['colorType'] === 'greyscale-alpha'
index c8d37bb..a5cddac 100644 (file)
@@ -21,6 +21,8 @@
  * @ingroup Media
  */
 
+use MediaWiki\Logger\LoggerFactory;
+
 /**
  * Class to deal with reconciling and extracting metadata from bitmap images.
  * This is meant to comply with http://www.metadataworkinggroup.org/pdf/mwg_guidance.pdf
@@ -167,7 +169,7 @@ class BitmapMetadataHandler {
                        }
                }
                if ( isset( $seg['XMP'] ) && $showXMP ) {
-                       $xmp = new XMPReader();
+                       $xmp = new XMPReader( LoggerFactory::getInstance( 'XMP' ) );
                        $xmp->parse( $seg['XMP'] );
                        foreach ( $seg['XMP_ext'] as $xmpExt ) {
                                /* Support for extended xmp in jpeg files
@@ -203,7 +205,7 @@ class BitmapMetadataHandler {
                if ( isset( $array['text']['xmp']['x-default'] )
                        && $array['text']['xmp']['x-default'] !== '' && $showXMP
                ) {
-                       $xmp = new XMPReader();
+                       $xmp = new XMPReader( LoggerFactory::getInstance( 'XMP' ) );
                        $xmp->parse( $array['text']['xmp']['x-default'] );
                        $xmpRes = $xmp->getResults();
                        foreach ( $xmpRes as $type => $xmpSection ) {
@@ -237,7 +239,7 @@ class BitmapMetadataHandler {
                }
 
                if ( $baseArray['xmp'] !== '' && XMPReader::isSupported() ) {
-                       $xmp = new XMPReader();
+                       $xmp = new XMPReader( LoggerFactory::getInstance( 'XMP' ) );
                        $xmp->parse( $baseArray['xmp'] );
                        $xmpRes = $xmp->getResults();
                        foreach ( $xmpRes as $type => $xmpSection ) {
index 011fb2a..b422bfa 100644 (file)
@@ -27,6 +27,8 @@
  * @ingroup Media
  */
 class DjVuHandler extends ImageHandler {
+       const EXPENSIVE_SIZE_LIMIT = 10485760; // 10MiB
+
        /**
         * @return bool
         */
@@ -49,6 +51,15 @@ class DjVuHandler extends ImageHandler {
                return true;
        }
 
+       /**
+        * True if creating thumbnails from the file is large or otherwise resource-intensive.
+        * @param File $file
+        * @return bool
+        */
+       public function isExpensiveToThumbnail( $file ) {
+               return $file->getSize() > static::EXPENSIVE_SIZE_LIMIT;
+       }
+
        /**
         * @param File $file
         * @return bool
@@ -254,9 +265,9 @@ class DjVuHandler extends ImageHandler {
                        return $metadata;
                }
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $unser = unserialize( $metadata );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( is_array( $unser ) ) {
                        if ( isset( $unser['error'] ) ) {
                                return false;
@@ -293,7 +304,7 @@ class DjVuHandler extends ImageHandler {
                        return false;
                }
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                try {
                        // Set to false rather than null to avoid further attempts
                        $image->dejaMetaTree = false;
@@ -316,7 +327,7 @@ class DjVuHandler extends ImageHandler {
                } catch ( Exception $e ) {
                        wfDebug( "Bogus multipage XML metadata on '{$image->getName()}'\n" );
                }
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( $gettext ) {
                        return $image->djvuTextTree;
                } else {
@@ -365,29 +376,55 @@ class DjVuHandler extends ImageHandler {
        }
 
        function pageCount( $image ) {
-               $tree = $this->getMetaTree( $image );
-               if ( !$tree ) {
-                       return false;
+               global $wgMemc;
+
+               $key = wfMemcKey( 'file-djvu', 'pageCount', $image->getSha1() );
+
+               $count = $wgMemc->get( $key );
+               if ( $count === false ) {
+                       $tree = $this->getMetaTree( $image );
+                       if ( !$tree ) {
+                               return false;
+                       }
+                       $count = count( $tree->xpath( '//OBJECT' ) );
+                       $wgMemc->set( $key, $count );
                }
 
-               return count( $tree->xpath( '//OBJECT' ) );
+               return $count;
        }
 
        function getPageDimensions( $image, $page ) {
-               $tree = $this->getMetaTree( $image );
-               if ( !$tree ) {
-                       return false;
-               }
+               global $wgMemc;
 
-               $o = $tree->BODY[0]->OBJECT[$page - 1];
-               if ( $o ) {
-                       return array(
-                               'width' => intval( $o['width'] ),
-                               'height' => intval( $o['height'] )
-                       );
-               } else {
-                       return false;
+               $key = wfMemcKey( 'file-djvu', 'dimensions', $image->getSha1() );
+
+               $dimsByPage = $wgMemc->get( $key );
+               if ( !is_array( $dimsByPage ) ) {
+                       $tree = $this->getMetaTree( $image );
+                       if ( !$tree ) {
+                               return false;
+                       }
+
+                       $dimsByPage = array();
+                       $count = count( $tree->xpath( '//OBJECT' ) );
+                       for ( $i = 0; $i < $count; ++$i ) {
+                               $o = $tree->BODY[0]->OBJECT[$i];
+                               if ( $o ) {
+                                       $dimsByPage[$i] = array(
+                                               'width' => (int)$o['width'],
+                                               'height' => (int)$o['height']
+                                       );
+                               } else {
+                                       $dimsByPage[$i] = false;
+                               }
+                       }
+
+                       $wgMemc->set( $key, $dimsByPage );
                }
+
+               $index = $page - 1; // MW starts pages at 1
+
+               return isset( $dimsByPage[$index] ) ? $dimsByPage[$index] : false;
        }
 
        /**
index e8faa70..dbbe991 100644 (file)
@@ -123,9 +123,9 @@ class DjVuImage {
        }
 
        function getInfo() {
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $file = fopen( $this->mFilename, 'rb' );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( $file === false ) {
                        wfDebug( __METHOD__ . ": missing or failed file read\n" );
 
index 3386868..b4cc43e 100644 (file)
@@ -294,9 +294,9 @@ class Exif {
 
                $this->debugFile( $this->basename, __FUNCTION__, true );
                if ( function_exists( 'exif_read_data' ) ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $data = exif_read_data( $this->file, 0, true );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                } else {
                        throw new MWException( "Internal error: exif_read_data not present. " .
                                "\$wgShowEXIF may be incorrectly set or not checked by an extension." );
@@ -471,17 +471,17 @@ class Exif {
                                        break;
                        }
                        if ( $charset ) {
-                               wfSuppressWarnings();
+                               MediaWiki\suppressWarnings();
                                $val = iconv( $charset, 'UTF-8//IGNORE', $val );
-                               wfRestoreWarnings();
+                               MediaWiki\restoreWarnings();
                        } else {
                                // if valid utf-8, assume that, otherwise assume windows-1252
                                $valCopy = $val;
                                UtfNormal\Validator::quickIsNFCVerify( $valCopy ); //validates $valCopy.
                                if ( $valCopy !== $val ) {
-                                       wfSuppressWarnings();
+                                       MediaWiki\suppressWarnings();
                                        $val = iconv( 'Windows-1252', 'UTF-8//IGNORE', $val );
-                                       wfRestoreWarnings();
+                                       MediaWiki\restoreWarnings();
                                }
                        }
 
index f56a947..bf6f7fc 100644 (file)
@@ -100,9 +100,9 @@ class ExifBitmapHandler extends BitmapHandler {
                if ( $metadata === self::BROKEN_FILE ) {
                        return self::METADATA_GOOD;
                }
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $exif = unserialize( $metadata );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( !isset( $exif['MEDIAWIKI_EXIF_VERSION'] )
                        || $exif['MEDIAWIKI_EXIF_VERSION'] != Exif::version()
                ) {
@@ -224,9 +224,9 @@ class ExifBitmapHandler extends BitmapHandler {
                if ( !$data ) {
                        return 0;
                }
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $data = unserialize( $data );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( isset( $data['Orientation'] ) ) {
                        # See http://sylvana.net/jpegcrop/exif_orientation.html
                        switch ( $data['Orientation'] ) {
index e3621fb..94aca61 100644 (file)
@@ -131,9 +131,9 @@ class GIFHandler extends BitmapHandler {
                        return self::METADATA_GOOD;
                }
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $data = unserialize( $metadata );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( !$data || !is_array( $data ) ) {
                        wfDebug( __METHOD__ . " invalid GIF metadata\n" );
@@ -161,9 +161,9 @@ class GIFHandler extends BitmapHandler {
 
                $original = parent::getLongDesc( $image );
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $metadata = unserialize( $image->getMetadata() );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( !$metadata || $metadata['frameCount'] <= 1 ) {
                        return $original;
index 5c37046..6ee23cd 100644 (file)
@@ -161,9 +161,9 @@ class GIFMetadataExtractor {
                                        UtfNormal\Validator::quickIsNFCVerify( $dataCopy );
 
                                        if ( $dataCopy !== $data ) {
-                                               wfSuppressWarnings();
+                                               MediaWiki\suppressWarnings();
                                                $data = iconv( 'windows-1252', 'UTF-8', $data );
-                                               wfRestoreWarnings();
+                                               MediaWiki\restoreWarnings();
                                        }
 
                                        $commentCount = count( $comment );
index 0eb27cc..c3d58b8 100644 (file)
@@ -445,9 +445,9 @@ class IPTC {
         */
        private static function convIPTCHelper( $data, $charset ) {
                if ( $charset ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $data = iconv( $charset, "UTF-8//IGNORE", $data );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        if ( $data === false ) {
                                $data = "";
                                wfDebugLog( 'iptc', __METHOD__ . " Error converting iptc data charset $charset to utf-8" );
index 968e424..db74bb3 100644 (file)
@@ -201,9 +201,9 @@ abstract class ImageHandler extends MediaHandler {
        }
 
        function getImageSize( $image, $path ) {
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $gis = getimagesize( $path );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                return $gis;
        }
index ae4af8d..5069f18 100644 (file)
@@ -102,9 +102,9 @@ class JpegMetadataExtractor {
                                // turns $com to valid utf-8.
                                // thus if no change, its utf-8, otherwise its something else.
                                if ( $com !== $oldCom ) {
-                                       wfSuppressWarnings();
+                                       MediaWiki\suppressWarnings();
                                        $com = $oldCom = iconv( 'windows-1252', 'UTF-8//IGNORE', $oldCom );
-                                       wfRestoreWarnings();
+                                       MediaWiki\restoreWarnings();
                                }
                                // Try it again, if its still not a valid string, then probably
                                // binary junk or some really weird encoding, so don't extract.
index 33aed34..3a59996 100644 (file)
@@ -181,9 +181,9 @@ abstract class MediaHandler {
                if ( !is_array( $metadata ) ) {
 
                        //unserialize to keep return parameter consistent.
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $ret = unserialize( $metadata );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
 
                        return $ret;
                }
index 5f1aca5..c3f0832 100644 (file)
@@ -118,9 +118,9 @@ class PNGHandler extends BitmapHandler {
                        return self::METADATA_GOOD;
                }
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $data = unserialize( $metadata );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( !$data || !is_array( $data ) ) {
                        wfDebug( __METHOD__ . " invalid png metadata\n" );
@@ -147,9 +147,9 @@ class PNGHandler extends BitmapHandler {
                global $wgLang;
                $original = parent::getLongDesc( $image );
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $metadata = unserialize( $image->getMetadata() );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( !$metadata || $metadata['frameCount'] <= 0 ) {
                        return $original;
index bccd36c..ac92460 100644 (file)
@@ -201,9 +201,9 @@ class PNGMetadataExtractor {
                                        // if compressed
                                        if ( $items[2] == "\x01" ) {
                                                if ( function_exists( 'gzuncompress' ) && $items[4] === "\x00" ) {
-                                                       wfSuppressWarnings();
+                                                       MediaWiki\suppressWarnings();
                                                        $items[5] = gzuncompress( $items[5] );
-                                                       wfRestoreWarnings();
+                                                       MediaWiki\restoreWarnings();
 
                                                        if ( $items[5] === false ) {
                                                                // decompression failed
@@ -245,9 +245,9 @@ class PNGMetadataExtractor {
                                        fseek( $fh, self::$crcSize, SEEK_CUR );
                                        continue;
                                }
-                               wfSuppressWarnings();
+                               MediaWiki\suppressWarnings();
                                $content = iconv( 'ISO-8859-1', 'UTF-8', $content );
-                               wfRestoreWarnings();
+                               MediaWiki\restoreWarnings();
 
                                if ( $content === false ) {
                                        throw new Exception( __METHOD__ . ": Read error (error with iconv)" );
@@ -285,9 +285,9 @@ class PNGMetadataExtractor {
                                                continue;
                                        }
 
-                                       wfSuppressWarnings();
+                                       MediaWiki\suppressWarnings();
                                        $content = gzuncompress( $content );
-                                       wfRestoreWarnings();
+                                       MediaWiki\restoreWarnings();
 
                                        if ( $content === false ) {
                                                // decompression failed
@@ -296,9 +296,9 @@ class PNGMetadataExtractor {
                                                continue;
                                        }
 
-                                       wfSuppressWarnings();
+                                       MediaWiki\suppressWarnings();
                                        $content = iconv( 'ISO-8859-1', 'UTF-8', $content );
-                                       wfRestoreWarnings();
+                                       MediaWiki\restoreWarnings();
 
                                        if ( $content === false ) {
                                                throw new Exception( __METHOD__ . ": Read error (error with iconv)" );
index c2f85e8..4377f75 100644 (file)
@@ -206,10 +206,10 @@ class SvgHandler extends ImageHandler {
                $lnPath = "$tmpDir/" . basename( $srcPath );
                $ok = mkdir( $tmpDir, 0771 ) && symlink( $srcPath, $lnPath );
                $cleaner = new ScopedCallback( function () use ( $tmpDir, $lnPath ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        unlink( $lnPath );
                        rmdir( $tmpDir );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                } );
                if ( !$ok ) {
                        wfDebugLog( 'thumbnail',
@@ -375,9 +375,9 @@ class SvgHandler extends ImageHandler {
        }
 
        function unpackMetadata( $metadata ) {
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $unser = unserialize( $metadata );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( isset( $unser['version'] ) && $unser['version'] == self::SVG_METADATA_VERSION ) {
                        return $unser;
                } else {
index 2037c33..6c53bc5 100644 (file)
@@ -108,17 +108,17 @@ class SVGReader {
                // Because we cut off the end of the svg making an invalid one. Complicated
                // try catch thing to make sure warnings get restored. Seems like there should
                // be a better way.
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                try {
                        $this->read();
                } catch ( Exception $e ) {
                        // Note, if this happens, the width/height will be taken to be 0x0.
                        // Should we consider it the default 512x512 instead?
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        libxml_disable_entity_loader( $oldDisable );
                        throw $e;
                }
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                libxml_disable_entity_loader( $oldDisable );
        }
 
index fd8d81d..15753a9 100644 (file)
@@ -167,7 +167,7 @@ abstract class TransformationalImageHandler extends ImageHandler {
                        return $this->getClientScalingThumbnailImage( $image, $scalerParams );
                }
 
-               if ( !$this->isImageAreaOkForThumbnaling( $image, $params ) ) {
+               if ( $image->isTransformedLocally() && !$this->isImageAreaOkForThumbnaling( $image, $params ) ) {
                        global $wgMaxImageArea;
                        return new TransformTooBigImageAreaError( $params, $wgMaxImageArea );
                }
index 6544d5c..e957cb2 100644 (file)
@@ -222,9 +222,9 @@ class XCFHandler extends BitmapHandler {
         * @return bool
         */
        public function canRender( $file ) {
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $xcfMeta = unserialize( $file->getMetadata() );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( isset( $xcfMeta['colorType'] ) && $xcfMeta['colorType'] === 'index-coloured' ) {
                        return false;
                }
index 50f04ae..3fb86ba 100644 (file)
  * @ingroup Media
  */
 
+use Psr\Log\LoggerAwareInterface;
+use Psr\Log\LoggerInterface;
+use Psr\Log\NullLogger;
+
 /**
  * Class for reading xmp data containing properties relevant to
  * images, and spitting out an array that FormatMetadata accepts.
@@ -46,7 +50,7 @@
  * read rdf.
  *
  */
-class XMPReader {
+class XMPReader implements LoggerAwareInterface {
        /** @var array XMP item configuration array */
        protected $items;
 
@@ -120,16 +124,26 @@ class XMPReader {
        const PARSABLE_BUFFERING = 2;
        const PARSABLE_NO = 3;
 
+       /**
+        * @var LoggerInterface
+        */
+       private $logger;
+
        /**
         * Constructor.
         *
         * Primary job is to initialize the XMLParser
         */
-       function __construct() {
+       function __construct( LoggerInterface $logger = null ) {
 
                if ( !function_exists( 'xml_parser_create_ns' ) ) {
                        // this should already be checked by this point
-                       throw new MWException( 'XMP support requires XML Parser' );
+                       throw new RuntimeException( 'XMP support requires XML Parser' );
+               }
+               if ( $logger ) {
+                       $this->setLogger( $logger );
+               } else {
+                       $this->setLogger( new NullLogger() );
                }
 
                $this->items = XMPInfo::getItems();
@@ -137,16 +151,31 @@ class XMPReader {
                $this->resetXMLParser();
        }
 
+       public function setLogger( LoggerInterface $logger ) {
+               $this->logger = $logger;
+       }
+
+       /**
+        * free the XML parser.
+        *
+        * @note It is unclear to me if we really need to do this ourselves
+        *  or if php garbage collection will automatically free the xmlParser
+        *  when it is no longer needed.
+        */
+       private function destroyXMLParser() {
+               if ( $this->xmlParser ) {
+                       xml_parser_free( $this->xmlParser );
+                       $this->xmlParser = null;
+               }
+       }
+
        /**
         * Main use is if a single item has multiple xmp documents describing it.
         * For example in jpeg's with extendedXMP
         */
        private function resetXMLParser() {
 
-               if ( $this->xmlParser ) {
-                       //is this needed?
-                       xml_parser_free( $this->xmlParser );
-               }
+               $this->destroyXMLParser();
 
                $this->xmlParser = xml_parser_create_ns( 'UTF-8', ' ' );
                xml_parser_set_option( $this->xmlParser, XML_OPTION_CASE_FOLDING, 0 );
@@ -162,15 +191,6 @@ class XMPReader {
                $this->xmlParsableBuffer = '';
        }
 
-       /** Destroy the xml parser
-        *
-        * Not sure if this is actually needed.
-        */
-       function __destruct() {
-               // not sure if this is needed.
-               xml_parser_free( $this->xmlParser );
-       }
-
        /**
         * Check if this instance supports using this class
         */
@@ -195,8 +215,6 @@ class XMPReader {
 
                $data = $this->results;
 
-               Hooks::run( 'XMPGetResults', array( &$data ) );
-
                if ( isset( $data['xmp-special']['AuthorsPosition'] )
                        && is_string( $data['xmp-special']['AuthorsPosition'] )
                        && isset( $data['xmp-general']['Artist'][0] )
@@ -278,12 +296,11 @@ class XMPReader {
         *
         * @param string $content XMP data
         * @param bool $allOfIt If this is all the data (true) or if its split up (false). Default true
-        * @param bool $reset Does xml parser need to be reset. Default false
-        * @throws MWException
+        * @throws RuntimeException
         * @return bool Success.
         */
-       public function parse( $content, $allOfIt = true, $reset = false ) {
-               if ( $reset ) {
+       public function parse( $content, $allOfIt = true ) {
+               if ( !$this->xmlParser ) {
                        $this->resetXMLParser();
                }
                try {
@@ -313,7 +330,7 @@ class XMPReader {
                                                        break;
                                                default:
                                                        //this should be impossible to get to
-                                                       throw new MWException( "Invalid BOM" );
+                                                       throw new RuntimeException( "Invalid BOM" );
                                        }
                                } else {
                                        // standard specifically says, if no bom assume utf-8
@@ -322,9 +339,9 @@ class XMPReader {
                        }
                        if ( $this->charset !== 'UTF-8' ) {
                                //don't convert if already utf-8
-                               wfSuppressWarnings();
+                               MediaWiki\suppressWarnings();
                                $content = iconv( $this->charset, 'UTF-8//IGNORE', $content );
-                               wfRestoreWarnings();
+                               MediaWiki\restoreWarnings();
                        }
 
                        // Ensure the XMP block does not have an xml doctype declaration, which
@@ -355,16 +372,23 @@ class XMPReader {
                                        . ' column: ' . xml_get_current_column_number( $this->xmlParser )
                                        . ' byte offset: ' . xml_get_current_byte_index( $this->xmlParser );
 
-                               wfDebugLog( 'XMP', "XMPReader::parse : Error reading XMP content: $error ($where)" );
+                               $this->logger->info( "XMPReader::parse : Error reading XMP content: $error ($where)" );
                                $this->results = array(); // blank if error.
+                               $this->destroyXMLParser();
                                return false;
                        }
                } catch ( Exception $e ) {
-                       wfDebugLog( 'XMP', 'XMP parse error: ' . $e );
+                       $this->logger->info( 'XMP parse error: ' . $e );
                        $this->results = array();
 
+                       if ( $allOfIt ) {
+                               $this->destroyXMLParser();
+                       }
                        return false;
                }
+               if ( $allOfIt ) {
+                       $this->destroyXMLParser();
+               }
 
                return true;
        }
@@ -383,7 +407,7 @@ class XMPReader {
                if ( !isset( $this->results['xmp-special']['HasExtendedXMP'] )
                        || $this->results['xmp-special']['HasExtendedXMP'] !== $guid
                ) {
-                       wfDebugLog( 'XMP', __METHOD__ .
+                       $this->logger->info( __METHOD__ .
                                " Ignoring XMPExtended block due to wrong guid (guid= '$guid')" );
 
                        return false;
@@ -391,7 +415,7 @@ class XMPReader {
                $len = unpack( 'Nlength/Noffset', substr( $content, 32, 8 ) );
 
                if ( !$len || $len['length'] < 4 || $len['offset'] < 0 || $len['offset'] > $len['length'] ) {
-                       wfDebugLog( 'XMP', __METHOD__ . 'Error reading extended XMP block, invalid length or offset.' );
+                       $this->logger->info(  __METHOD__ . 'Error reading extended XMP block, invalid length or offset.' );
 
                        return false;
                }
@@ -408,7 +432,7 @@ class XMPReader {
                // > 128k, and be in the wrong order is very low...
 
                if ( $len['offset'] !== $this->extendedXMPOffset ) {
-                       wfDebugLog( 'XMP', __METHOD__ . 'Ignoring XMPExtended block due to wrong order. (Offset was '
+                       $this->logger->info( __METHOD__ . 'Ignoring XMPExtended block due to wrong order. (Offset was '
                                . $len['offset'] . ' but expected ' . $this->extendedXMPOffset . ')' );
 
                        return false;
@@ -430,7 +454,7 @@ class XMPReader {
                        $atEnd = false;
                }
 
-               wfDebugLog( 'XMP', __METHOD__ . 'Parsing a XMPExtended block' );
+               $this->logger->debug( __METHOD__ . 'Parsing a XMPExtended block' );
 
                return $this->parse( $actualContent, $atEnd );
        }
@@ -449,7 +473,7 @@ class XMPReader {
         *
         * @param XMLParser $parser XMLParser reference to the xml parser
         * @param string $data Character data
-        * @throws MWException On invalid data
+        * @throws RuntimeException On invalid data
         */
        function char( $parser, $data ) {
 
@@ -459,7 +483,7 @@ class XMPReader {
                }
 
                if ( !isset( $this->mode[0] ) ) {
-                       throw new MWException( 'Unexpected character data before first rdf:Description element' );
+                       throw new RuntimeException( 'Unexpected character data before first rdf:Description element' );
                }
 
                if ( $this->mode[0] === self::MODE_IGNORE ) {
@@ -469,7 +493,7 @@ class XMPReader {
                if ( $this->mode[0] !== self::MODE_SIMPLE
                        && $this->mode[0] !== self::MODE_QDESC
                ) {
-                       throw new MWException( 'character data where not expected. (mode ' . $this->mode[0] . ')' );
+                       throw new RuntimeException( 'character data where not expected. (mode ' . $this->mode[0] . ')' );
                }
 
                // to check, how does this handle w.s.
@@ -509,7 +533,7 @@ class XMPReader {
 
                // Even with LIBXML_NOWARNING set, XMLReader::read gives a warning
                // when parsing truncated XML, which causes unit tests to fail.
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                while ( $reader->read() ) {
                        if ( $reader->nodeType === XMLReader::ELEMENT ) {
                                // Reached the first element without hitting a doctype declaration
@@ -523,7 +547,7 @@ class XMPReader {
                                break;
                        }
                }
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( !is_null( $result ) ) {
                        return $result;
@@ -597,7 +621,7 @@ class XMPReader {
         * This method is called when we hit the "</exif:ISOSpeedRatings>" tag.
         *
         * @param string $elm Namespace . space . tag name.
-        * @throws MWException
+        * @throws RuntimeException
         */
        private function endElementNested( $elm ) {
 
@@ -607,7 +631,7 @@ class XMPReader {
                        && !( $elm === self::NS_RDF . ' Description'
                                && $this->mode[0] === self::MODE_STRUCT )
                ) {
-                       throw new MWException( "nesting mismatch. got a </$elm> but expected a </" .
+                       throw new RuntimeException( "nesting mismatch. got a </$elm> but expected a </" .
                                $this->curItem[0] . '>' );
                }
 
@@ -619,23 +643,27 @@ class XMPReader {
                        $finalName = isset( $info['map_name'] )
                                ? $info['map_name'] : $tag;
 
-                       $validate = is_array( $info['validate'] ) ? $info['validate']
-                               : array( 'XMPValidate', $info['validate'] );
+                       if ( is_array( $info['validate'] ) ) {
+                               $validate = $info['validate'];
+                       } else {
+                               $validator = new XMPValidate( $this->logger );
+                               $validate = array( $validator, $info['validate'] );
+                       }
 
                        if ( !isset( $this->results['xmp-' . $info['map_group']][$finalName] ) ) {
                                // This can happen if all the members of the struct failed validation.
-                               wfDebugLog( 'XMP', __METHOD__ . " <$ns:$tag> has no valid members." );
+                               $this->logger->debug( __METHOD__ . " <$ns:$tag> has no valid members." );
                        } elseif ( is_callable( $validate ) ) {
                                $val =& $this->results['xmp-' . $info['map_group']][$finalName];
                                call_user_func_array( $validate, array( $info, &$val, false ) );
                                if ( is_null( $val ) ) {
                                        // the idea being the validation function will unset the variable if
                                        // its invalid.
-                                       wfDebugLog( 'XMP', __METHOD__ . " <$ns:$tag> failed validation." );
+                                       $this->logger->info( __METHOD__ . " <$ns:$tag> failed validation." );
                                        unset( $this->results['xmp-' . $info['map_group']][$finalName] );
                                }
                        } else {
-                               wfDebugLog( 'XMP', __METHOD__ . " Validation function for $finalName ("
+                               $this->logger->warning( __METHOD__ . " Validation function for $finalName ("
                                        . $validate[0] . '::' . $validate[1] . '()) is not callable.' );
                        }
                }
@@ -664,7 +692,7 @@ class XMPReader {
         * hit the "</rdf:li>")
         *
         * @param string $elm Namespace . ' ' . element name
-        * @throws MWException
+        * @throws RuntimeException
         */
        private function endElementModeLi( $elm ) {
 
@@ -676,7 +704,7 @@ class XMPReader {
                array_shift( $this->mode );
 
                if ( !isset( $this->results['xmp-' . $info['map_group']][$finalName] ) ) {
-                       wfDebugLog( 'XMP', __METHOD__ . " Empty compund element $finalName." );
+                       $this->logger->debug( __METHOD__ . " Empty compund element $finalName." );
 
                        return;
                }
@@ -691,7 +719,7 @@ class XMPReader {
                                $this->results['xmp-' . $info['map_group']][$finalName]['_type'] = 'lang';
                        }
                } else {
-                       throw new MWException( __METHOD__ . " expected </rdf:seq> or </rdf:bag> but instead got $elm." );
+                       throw new RuntimeException( __METHOD__ . " expected </rdf:seq> or </rdf:bag> but instead got $elm." );
                }
        }
 
@@ -729,7 +757,7 @@ class XMPReader {
         *
         * @param XMLParser $parser
         * @param string $elm Namespace . ' ' . element name
-        * @throws MWException
+        * @throws RuntimeException
         */
        function endElement( $parser, $elm ) {
                if ( $elm === ( self::NS_RDF . ' RDF' )
@@ -743,7 +771,7 @@ class XMPReader {
                if ( $elm === self::NS_RDF . ' type' ) {
                        // these aren't really supported properly yet.
                        // However, it appears they almost never used.
-                       wfDebugLog( 'XMP', __METHOD__ . ' encountered <rdf:type>' );
+                       $this->logger->info( __METHOD__ . ' encountered <rdf:type>' );
                }
 
                if ( strpos( $elm, ' ' ) === false ) {
@@ -751,7 +779,7 @@ class XMPReader {
                        // However, there is a bug in an adobe product
                        // that forgets the namespace on some things.
                        // (Luckily they are unimportant things).
-                       wfDebugLog( 'XMP', __METHOD__ . " Encountered </$elm> which has no namespace. Skipping." );
+                       $this->logger->info( __METHOD__ . " Encountered </$elm> which has no namespace. Skipping." );
 
                        return;
                }
@@ -759,13 +787,13 @@ class XMPReader {
                if ( count( $this->mode[0] ) === 0 ) {
                        // This should never ever happen and means
                        // there is a pretty major bug in this class.
-                       throw new MWException( 'Encountered end element with no mode' );
+                       throw new RuntimeException( 'Encountered end element with no mode' );
                }
 
                if ( count( $this->curItem ) == 0 && $this->mode[0] !== self::MODE_INITIAL ) {
                        // just to be paranoid. Should always have a curItem, except for initially
                        // (aka during MODE_INITAL).
-                       throw new MWException( "Hit end element </$elm> but no curItem" );
+                       throw new RuntimeException( "Hit end element </$elm> but no curItem" );
                }
 
                switch ( $this->mode[0] ) {
@@ -786,7 +814,7 @@ class XMPReader {
                                if ( $elm === self::NS_RDF . ' Description' ) {
                                        array_shift( $this->mode );
                                } else {
-                                       throw new MWException( 'Element ended unexpectedly while in MODE_INITIAL' );
+                                       throw new RuntimeException( 'Element ended unexpectedly while in MODE_INITIAL' );
                                }
                                break;
                        case self::MODE_LI:
@@ -797,7 +825,7 @@ class XMPReader {
                                $this->endElementModeQDesc( $elm );
                                break;
                        default:
-                               wfDebugLog( 'XMP', __METHOD__ . " no mode (elm = $elm)" );
+                               $this->logger->warning( __METHOD__ . " no mode (elm = $elm)" );
                                break;
                }
        }
@@ -825,13 +853,13 @@ class XMPReader {
         * this should always be <rdf:Bag>
         *
         * @param string $elm Namespace . ' ' . tag
-        * @throws MWException If we have an element that's not <rdf:Bag>
+        * @throws RuntimeException If we have an element that's not <rdf:Bag>
         */
        private function startElementModeBag( $elm ) {
                if ( $elm === self::NS_RDF . ' Bag' ) {
                        array_unshift( $this->mode, self::MODE_LI );
                } else {
-                       throw new MWException( "Expected <rdf:Bag> but got $elm." );
+                       throw new RuntimeException( "Expected <rdf:Bag> but got $elm." );
                }
        }
 
@@ -840,18 +868,18 @@ class XMPReader {
         * this should always be <rdf:Seq>
         *
         * @param string $elm Namespace . ' ' . tag
-        * @throws MWException If we have an element that's not <rdf:Seq>
+        * @throws RuntimeException If we have an element that's not <rdf:Seq>
         */
        private function startElementModeSeq( $elm ) {
                if ( $elm === self::NS_RDF . ' Seq' ) {
                        array_unshift( $this->mode, self::MODE_LI );
                } elseif ( $elm === self::NS_RDF . ' Bag' ) {
                        # bug 27105
-                       wfDebugLog( 'XMP', __METHOD__ . ' Expected an rdf:Seq, but got an rdf:Bag. Pretending'
+                       $this->logger->info( __METHOD__ . ' Expected an rdf:Seq, but got an rdf:Bag. Pretending'
                                . ' it is a Seq, since some buggy software is known to screw this up.' );
                        array_unshift( $this->mode, self::MODE_LI );
                } else {
-                       throw new MWException( "Expected <rdf:Seq> but got $elm." );
+                       throw new RuntimeException( "Expected <rdf:Seq> but got $elm." );
                }
        }
 
@@ -867,13 +895,13 @@ class XMPReader {
         * we don't care about.
         *
         * @param string $elm Namespace . ' ' . tag
-        * @throws MWException If we have an element that's not <rdf:Alt>
+        * @throws RuntimeException If we have an element that's not <rdf:Alt>
         */
        private function startElementModeLang( $elm ) {
                if ( $elm === self::NS_RDF . ' Alt' ) {
                        array_unshift( $this->mode, self::MODE_LI_LANG );
                } else {
-                       throw new MWException( "Expected <rdf:Seq> but got $elm." );
+                       throw new RuntimeException( "Expected <rdf:Seq> but got $elm." );
                }
        }
 
@@ -893,7 +921,7 @@ class XMPReader {
         *
         * @param string $elm Namespace and tag names separated by space.
         * @param array $attribs Attributes of the element.
-        * @throws MWException
+        * @throws RuntimeException
         */
        private function startElementModeSimple( $elm, $attribs ) {
                if ( $elm === self::NS_RDF . ' Description' ) {
@@ -907,10 +935,10 @@ class XMPReader {
                        }
                } elseif ( $elm === self::NS_RDF . ' value' ) {
                        // This should not be here.
-                       throw new MWException( __METHOD__ . ' Encountered <rdf:value> where it was unexpected.' );
+                       throw new RuntimeException( __METHOD__ . ' Encountered <rdf:value> where it was unexpected.' );
                } else {
                        // something else we don't recognize, like a qualifier maybe.
-                       wfDebugLog( 'XMP', __METHOD__ .
+                       $this->logger->info( __METHOD__ .
                                " Encountered element <$elm> where only expecting character data as value of " .
                                $this->curItem[0] );
                        array_unshift( $this->mode, self::MODE_IGNORE );
@@ -952,7 +980,7 @@ class XMPReader {
         * @param string $ns Namespace
         * @param string $tag Tag name (without namespace prefix)
         * @param array $attribs Array of attributes
-        * @throws MWException
+        * @throws RuntimeException
         */
        private function startElementModeInitial( $ns, $tag, $attribs ) {
                if ( $ns !== self::NS_RDF ) {
@@ -964,7 +992,7 @@ class XMPReader {
                                        // a child of a struct), then something weird is
                                        // happening, so ignore this element and its children.
 
-                                       wfDebugLog( 'XMP', "Encountered <$ns:$tag> outside"
+                                       $this->logger->warning( "Encountered <$ns:$tag> outside"
                                                . " of its expected parent. Ignoring." );
 
                                        array_unshift( $this->mode, self::MODE_IGNORE );
@@ -982,11 +1010,11 @@ class XMPReader {
                                if ( $this->charContent !== false ) {
                                        // Something weird.
                                        // Should not happen in valid XMP.
-                                       throw new MWException( 'tag nested in non-whitespace characters.' );
+                                       throw new RuntimeException( 'tag nested in non-whitespace characters.' );
                                }
                        } else {
                                // This element is not on our list of allowed elements so ignore.
-                               wfDebugLog( 'XMP', __METHOD__ . " Ignoring unrecognized element <$ns:$tag>." );
+                               $this->logger->debug( __METHOD__ . " Ignoring unrecognized element <$ns:$tag>." );
                                array_unshift( $this->mode, self::MODE_IGNORE );
                                array_unshift( $this->curItem, $ns . ' ' . $tag );
 
@@ -1014,7 +1042,7 @@ class XMPReader {
         * @param string $ns Namespace
         * @param string $tag Tag name (no ns)
         * @param array $attribs Array of attribs w/ values.
-        * @throws MWException
+        * @throws RuntimeException
         */
        private function startElementModeStruct( $ns, $tag, $attribs ) {
                if ( $ns !== self::NS_RDF ) {
@@ -1025,7 +1053,7 @@ class XMPReader {
                                ) {
                                        // This assumes that we don't have inter-namespace nesting
                                        // which we don't in all the properties we're interested in.
-                                       throw new MWException( " <$tag> appeared nested in <" . $this->ancestorStruct
+                                       throw new RuntimeException( " <$tag> appeared nested in <" . $this->ancestorStruct
                                                . "> where it is not allowed." );
                                }
                                array_unshift( $this->mode, $this->items[$ns][$tag]['mode'] );
@@ -1033,7 +1061,7 @@ class XMPReader {
                                if ( $this->charContent !== false ) {
                                        // Something weird.
                                        // Should not happen in valid XMP.
-                                       throw new MWException( "tag <$tag> nested in non-whitespace characters (" .
+                                       throw new RuntimeException( "tag <$tag> nested in non-whitespace characters (" .
                                                $this->charContent . ")." );
                                }
                        } else {
@@ -1062,17 +1090,17 @@ class XMPReader {
         *
         * @param string $elm Namespace . ' ' . tagname
         * @param array $attribs Attributes. (needed for BAGSTRUCTS)
-        * @throws MWException If gets a tag other than <rdf:li>
+        * @throws RuntimeException If gets a tag other than <rdf:li>
         */
        private function startElementModeLi( $elm, $attribs ) {
                if ( ( $elm ) !== self::NS_RDF . ' li' ) {
-                       throw new MWException( "<rdf:li> expected but got $elm." );
+                       throw new RuntimeException( "<rdf:li> expected but got $elm." );
                }
 
                if ( !isset( $this->mode[1] ) ) {
                        // This should never ever ever happen. Checking for it
                        // to be paranoid.
-                       throw new MWException( 'In mode Li, but no 2xPrevious mode!' );
+                       throw new RuntimeException( 'In mode Li, but no 2xPrevious mode!' );
                }
 
                if ( $this->mode[1] === self::MODE_BAGSTRUCT ) {
@@ -1083,7 +1111,7 @@ class XMPReader {
 
                        if ( !isset( $this->curItem[1] ) ) {
                                // be paranoid.
-                               throw new MWException( 'Can not find parent of BAGSTRUCT.' );
+                               throw new RuntimeException( 'Can not find parent of BAGSTRUCT.' );
                        }
                        list( $curNS, $curTag ) = explode( ' ', $this->curItem[1] );
                        $this->ancestorStruct = isset( $this->items[$curNS][$curTag]['map_name'] )
@@ -1112,16 +1140,16 @@ class XMPReader {
         *
         * @param string $elm Namespace . ' ' . tag
         * @param array $attribs Array of elements (most importantly xml:lang)
-        * @throws MWException If gets a tag other than <rdf:li> or if no xml:lang
+        * @throws RuntimeException If gets a tag other than <rdf:li> or if no xml:lang
         */
        private function startElementModeLiLang( $elm, $attribs ) {
                if ( $elm !== self::NS_RDF . ' li' ) {
-                       throw new MWException( __METHOD__ . " <rdf:li> expected but got $elm." );
+                       throw new RuntimeException( __METHOD__ . " <rdf:li> expected but got $elm." );
                }
                if ( !isset( $attribs[self::NS_XML . ' lang'] )
                        || !preg_match( '/^[-A-Za-z0-9]{2,}$/D', $attribs[self::NS_XML . ' lang'] )
                ) {
-                       throw new MWException( __METHOD__
+                       throw new RuntimeException( __METHOD__
                                . " <rdf:li> did not contain, or has invalid xml:lang attribute in lang alternative" );
                }
 
@@ -1143,7 +1171,7 @@ class XMPReader {
         * @param XMLParser $parser
         * @param string $elm Namespace "<space>" element
         * @param array $attribs Attribute name => value
-        * @throws MWException
+        * @throws RuntimeException
         */
        function startElement( $parser, $elm, $attribs ) {
 
@@ -1166,12 +1194,12 @@ class XMPReader {
                        //
                        // also it seems as if exiv2 and exiftool do not support
                        // this either (That or I misunderstand the standard)
-                       wfDebugLog( 'XMP', __METHOD__ . ' Encountered <rdf:type> which isn\'t currently supported' );
+                       $this->logger->info( __METHOD__ . ' Encountered <rdf:type> which isn\'t currently supported' );
                }
 
                if ( strpos( $elm, ' ' ) === false ) {
                        // This probably shouldn't happen.
-                       wfDebugLog( 'XMP', __METHOD__ . " Encountered <$elm> which has no namespace. Skipping." );
+                       $this->logger->info( __METHOD__ . " Encountered <$elm> which has no namespace. Skipping." );
 
                        return;
                }
@@ -1180,7 +1208,7 @@ class XMPReader {
 
                if ( count( $this->mode ) === 0 ) {
                        // This should not happen.
-                       throw new MWException( 'Error extracting XMP, '
+                       throw new RuntimeException( 'Error extracting XMP, '
                                . "encountered <$elm> with no mode" );
                }
 
@@ -1217,7 +1245,7 @@ class XMPReader {
                                $this->startElementModeQDesc( $elm );
                                break;
                        default:
-                               throw new MWException( 'StartElement in unknown mode: ' . $this->mode[0] );
+                               throw new RuntimeException( 'StartElement in unknown mode: ' . $this->mode[0] );
                }
        }
 
@@ -1236,7 +1264,7 @@ class XMPReader {
         * @codingStandardsIgnoreEnd
         *
         * @param array $attribs Array attribute=>value
-        * @throws MWException
+        * @throws RuntimeException
         */
        private function doAttribs( $attribs ) {
                // first check for rdf:parseType attribute, as that can change
@@ -1253,7 +1281,7 @@ class XMPReader {
                        if ( strpos( $name, ' ' ) === false ) {
                                // This shouldn't happen, but so far some old software forgets namespace
                                // on rdf:about.
-                               wfDebugLog( 'XMP', __METHOD__ . ' Encountered non-namespaced attribute: '
+                               $this->logger->info( __METHOD__ . ' Encountered non-namespaced attribute: '
                                        . " $name=\"$val\". Skipping. " );
                                continue;
                        }
@@ -1266,12 +1294,12 @@ class XMPReader {
                                }
                        } elseif ( isset( $this->items[$ns][$tag] ) ) {
                                if ( $this->mode[0] === self::MODE_SIMPLE ) {
-                                       throw new MWException( __METHOD__
+                                       throw new RuntimeException( __METHOD__
                                                . " $ns:$tag found as attribute where not allowed" );
                                }
                                $this->saveValue( $ns, $tag, $val );
                        } else {
-                               wfDebugLog( 'XMP', __METHOD__ . " Ignoring unrecognized element <$ns:$tag>." );
+                               $this->logger->debug( __METHOD__ . " Ignoring unrecognized element <$ns:$tag>." );
                        }
                }
        }
@@ -1293,20 +1321,24 @@ class XMPReader {
                $finalName = isset( $info['map_name'] )
                        ? $info['map_name'] : $tag;
                if ( isset( $info['validate'] ) ) {
-                       $validate = is_array( $info['validate'] ) ? $info['validate']
-                               : array( 'XMPValidate', $info['validate'] );
+                       if ( is_array( $info['validate'] ) ) {
+                               $validate = $info['validate'];
+                       } else {
+                               $validator = new XMPValidate( $this->logger );
+                               $validate = array( $validator, $info['validate'] );
+                       }
 
                        if ( is_callable( $validate ) ) {
                                call_user_func_array( $validate, array( $info, &$val, true ) );
                                // the reasoning behind using &$val instead of using the return value
                                // is to be consistent between here and validating structures.
                                if ( is_null( $val ) ) {
-                                       wfDebugLog( 'XMP', __METHOD__ . " <$ns:$tag> failed validation." );
+                                       $this->logger->info( __METHOD__ . " <$ns:$tag> failed validation." );
 
                                        return;
                                }
                        } else {
-                               wfDebugLog( 'XMP', __METHOD__ . " Validation function for $finalName ("
+                               $this->logger->warning( __METHOD__ . " Validation function for $finalName ("
                                        . $validate[0] . '::' . $validate[1] . '()) is not callable.' );
                        }
                }
index e0a491c..97aa796 100644 (file)
@@ -31,13 +31,6 @@ class XMPInfo {
         * @return array XMP item configuration array.
         */
        public static function getItems() {
-               if ( !self::$ranHooks ) {
-                       // This is for if someone makes a custom metadata extension.
-                       // For example, a medical wiki might want to decode DICOM xmp properties.
-                       Hooks::run( 'XMPGetInfo', array( &self::$items ) );
-                       self::$ranHooks = true; // Only want to do this once.
-               }
-
                return self::$items;
        }
 
@@ -57,7 +50,7 @@ class XMPInfo {
         *   * mode - What type of item (self::MODE_SIMPLE usually, see above for
         *     all values).
         *   * validate - Method to validate input. Could also post-process the
-        *     input. A string value is assumed to be a static method of
+        *     input. A string value is assumed to be a method of
         *     XMPValidate. Can also take a array( 'className', 'methodName' ).
         *   * choices - Array of potential values (format of 'value' => true ).
         *     Only used with validateClosed.
index 0fa6011..55e8ce7 100644 (file)
@@ -21,6 +21,9 @@
  * @ingroup Media
  */
 
+use Psr\Log\LoggerInterface;
+use Psr\Log\LoggerAwareInterface;
+
 /**
  * This contains some static methods for
  * validating XMP properties. See XMPInfo and XMPReader classes.
  * @see http://www.adobe.com/devnet/xmp/pdfs/XMPSpecificationPart1.pdf starting at pg 28
  * @see http://www.adobe.com/devnet/xmp/pdfs/XMPSpecificationPart2.pdf starting at pg 11
  */
-class XMPValidate {
+class XMPValidate implements LoggerAwareInterface {
+
+       /**
+        * @var LoggerInterface
+        */
+       private $logger;
+
+       public function __construct( LoggerInterface $logger ) {
+               $this->setLogger( $logger );
+       }
+
+       public function setLogger( LoggerInterface $logger ) {
+               $this->logger = $logger;
+       }
        /**
         * Function to validate boolean properties ( True or False )
         *
@@ -48,13 +64,13 @@ class XMPValidate {
         * @param mixed &$val Current value to validate
         * @param bool $standalone If this is a simple property or array
         */
-       public static function validateBoolean( $info, &$val, $standalone ) {
+       public function validateBoolean( $info, &$val, $standalone ) {
                if ( !$standalone ) {
                        // this only validates standalone properties, not arrays, etc
                        return;
                }
                if ( $val !== 'True' && $val !== 'False' ) {
-                       wfDebugLog( 'XMP', __METHOD__ . " Expected True or False but got $val" );
+                       $this->debug->info( __METHOD__ . " Expected True or False but got $val" );
                        $val = null;
                }
        }
@@ -66,13 +82,13 @@ class XMPValidate {
         * @param mixed &$val Current value to validate
         * @param bool $standalone If this is a simple property or array
         */
-       public static function validateRational( $info, &$val, $standalone ) {
+       public function validateRational( $info, &$val, $standalone ) {
                if ( !$standalone ) {
                        // this only validates standalone properties, not arrays, etc
                        return;
                }
                if ( !preg_match( '/^(?:-?\d+)\/(?:\d+[1-9]|[1-9]\d*)$/D', $val ) ) {
-                       wfDebugLog( 'XMP', __METHOD__ . " Expected rational but got $val" );
+                       $this->logger->info( __METHOD__ . " Expected rational but got $val" );
                        $val = null;
                }
        }
@@ -87,7 +103,7 @@ class XMPValidate {
         * @param mixed &$val Current value to validate
         * @param bool $standalone If this is a simple property or array
         */
-       public static function validateRating( $info, &$val, $standalone ) {
+       public function validateRating( $info, &$val, $standalone ) {
                if ( !$standalone ) {
                        // this only validates standalone properties, not arrays, etc
                        return;
@@ -95,7 +111,7 @@ class XMPValidate {
                if ( !preg_match( '/^[-+]?\d*(?:\.?\d*)$/D', $val )
                        || !is_numeric( $val )
                ) {
-                       wfDebugLog( 'XMP', __METHOD__ . " Expected rating but got $val" );
+                       $this->logger->info( __METHOD__ . " Expected rating but got $val" );
                        $val = null;
 
                        return;
@@ -105,13 +121,13 @@ class XMPValidate {
                                // We do < 0 here instead of < -1 here, since
                                // the values between 0 and -1 are also illegal
                                // as -1 is meant as a special reject rating.
-                               wfDebugLog( 'XMP', __METHOD__ . " Rating too low, setting to -1 (Rejected)" );
+                               $this->logger->info( __METHOD__ . " Rating too low, setting to -1 (Rejected)" );
                                $val = '-1';
 
                                return;
                        }
                        if ( $nVal > 5 ) {
-                               wfDebugLog( 'XMP', __METHOD__ . " Rating too high, setting to 5" );
+                               $this->logger->info( __METHOD__ . " Rating too high, setting to 5" );
                                $val = '5';
 
                                return;
@@ -126,13 +142,13 @@ class XMPValidate {
         * @param mixed &$val Current value to validate
         * @param bool $standalone If this is a simple property or array
         */
-       public static function validateInteger( $info, &$val, $standalone ) {
+       public function validateInteger( $info, &$val, $standalone ) {
                if ( !$standalone ) {
                        // this only validates standalone properties, not arrays, etc
                        return;
                }
                if ( !preg_match( '/^[-+]?\d+$/D', $val ) ) {
-                       wfDebugLog( 'XMP', __METHOD__ . " Expected integer but got $val" );
+                       $this->logger->info( __METHOD__ . " Expected integer but got $val" );
                        $val = null;
                }
        }
@@ -145,7 +161,7 @@ class XMPValidate {
         * @param mixed &$val Current value to validate
         * @param bool $standalone If this is a simple property or array
         */
-       public static function validateClosed( $info, &$val, $standalone ) {
+       public function validateClosed( $info, &$val, $standalone ) {
                if ( !$standalone ) {
                        // this only validates standalone properties, not arrays, etc
                        return;
@@ -163,7 +179,7 @@ class XMPValidate {
                }
 
                if ( !isset( $info['choices'][$val] ) && !$inRange ) {
-                       wfDebugLog( 'XMP', __METHOD__ . " Expected closed choice, but got $val" );
+                       $this->logger->info( __METHOD__ . " Expected closed choice, but got $val" );
                        $val = null;
                }
        }
@@ -175,7 +191,7 @@ class XMPValidate {
         * @param mixed &$val Current value to validate
         * @param bool $standalone If this is a simple property or array
         */
-       public static function validateFlash( $info, &$val, $standalone ) {
+       public function validateFlash( $info, &$val, $standalone ) {
                if ( $standalone ) {
                        // this only validates flash structs, not individual properties
                        return;
@@ -186,7 +202,7 @@ class XMPValidate {
                        && isset( $val['RedEyeMode'] )
                        && isset( $val['Return'] )
                ) ) {
-                       wfDebugLog( 'XMP', __METHOD__ . " Flash structure did not have all the required components" );
+                       $this->logger->info( __METHOD__ . " Flash structure did not have all the required components" );
                        $val = null;
                } else {
                        $val = ( "\0" | ( $val['Fired'] === 'True' )
@@ -209,14 +225,14 @@ class XMPValidate {
         * @param mixed &$val Current value to validate
         * @param bool $standalone If this is a simple property or array
         */
-       public static function validateLangCode( $info, &$val, $standalone ) {
+       public function validateLangCode( $info, &$val, $standalone ) {
                if ( !$standalone ) {
                        // this only validates standalone properties, not arrays, etc
                        return;
                }
                if ( !preg_match( '/^[-A-Za-z0-9]{2,}$/D', $val ) ) {
                        //this is a rather naive check.
-                       wfDebugLog( 'XMP', __METHOD__ . " Expected Lang code but got $val" );
+                       $this->logger->info( __METHOD__ . " Expected Lang code but got $val" );
                        $val = null;
                }
        }
@@ -238,7 +254,7 @@ class XMPValidate {
         *    2011:04.
         * @param bool $standalone If this is a simple property or array
         */
-       public static function validateDate( $info, &$val, $standalone ) {
+       public function validateDate( $info, &$val, $standalone ) {
                if ( !$standalone ) {
                        // this only validates standalone properties, not arrays, etc
                        return;
@@ -252,7 +268,7 @@ class XMPValidate {
                ) {
                        // @codingStandardsIgnoreEnd
 
-                       wfDebugLog( 'XMP', __METHOD__ . " Expected date but got $val" );
+                       $this->logger->info( __METHOD__ . " Expected date but got $val" );
                        $val = null;
                } else {
                        /*
@@ -270,7 +286,7 @@ class XMPValidate {
                         * some programs convert between metadata formats.
                         */
                        if ( $res[1] === '0000' ) {
-                               wfDebugLog( 'XMP', __METHOD__ . " Invalid date (year 0): $val" );
+                               $this->logger->info( __METHOD__ . " Invalid date (year 0): $val" );
                                $val = null;
 
                                return;
@@ -339,7 +355,7 @@ class XMPValidate {
         *   or DDD,MM.mmk form
         * @param bool $standalone If its a simple prop (should always be true)
         */
-       public static function validateGPS( $info, &$val, $standalone ) {
+       public function validateGPS( $info, &$val, $standalone ) {
                if ( !$standalone ) {
                        return;
                }
@@ -371,7 +387,7 @@ class XMPValidate {
 
                        return;
                } else {
-                       wfDebugLog( 'XMP', __METHOD__
+                       $this->logger->info( __METHOD__
                                . " Expected GPSCoordinate, but got $val." );
                        $val = null;
 
index 243e280..840b9d8 100644 (file)
@@ -9,7 +9,7 @@
 image/gif      [BITMAP]
 image/png image/x-png  [BITMAP]
 image/ief      [BITMAP]
-image/jpeg     [BITMAP]
+image/jpeg image/pjpeg [BITMAP]
 image/jp2      [BITMAP]
 image/xbm      [BITMAP]
 image/tiff     [BITMAP]
index bc4a00b..6912864 100644 (file)
@@ -745,13 +745,13 @@ class MWMemcached {
                $timeout = $this->_connect_timeout;
                $errno = $errstr = null;
                for ( $i = 0; !$sock && $i < $this->_connect_attempts; $i++ ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        if ( $this->_persistent == 1 ) {
                                $sock = pfsockopen( $ip, $port, $errno, $errstr, $timeout );
                        } else {
                                $sock = fsockopen( $ip, $port, $errno, $errstr, $timeout );
                        }
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                }
                if ( !$sock ) {
                        $this->_error_log( "Error connecting to $host: $errstr\n" );
index 5da22f0..c5850b6 100644 (file)
@@ -26,11 +26,19 @@ use MediaWiki\Logger\LoggerFactory;
 /**
  * Functions to get cache objects
  *
+ * The word "cache" has two main dictionary meanings, and both
+ * are used in this factory class. They are:
+ *   - a) A place to store copies or computations on existing data
+ *     for higher access speeds (the computer science definition)
+ *   - b) A place to store lightweight data that is not canonically
+ *     stored anywhere else (e.g. a "hoard" of objects)
+ *
  * @ingroup Cache
  */
 class ObjectCache {
        /** @var Array Map of (id => BagOStuff) */
        public static $instances = array();
+
        /** @var Array Map of (id => WANObjectCache) */
        public static $wanInstances = array();
 
@@ -38,35 +46,29 @@ class ObjectCache {
         * Get a cached instance of the specified type of cache object.
         *
         * @param string $id
-        *
         * @return BagOStuff
         */
        static function getInstance( $id ) {
-               if ( isset( self::$instances[$id] ) ) {
-                       return self::$instances[$id];
+               if ( !isset( self::$instances[$id] ) ) {
+                       self::$instances[$id] = self::newFromId( $id );
                }
 
-               $object = self::newFromId( $id );
-               self::$instances[$id] = $object;
-               return $object;
+               return self::$instances[$id];
        }
 
        /**
         * Get a cached instance of the specified type of cache object.
         *
+        * @since 1.26
         * @param string $id
-        *
         * @return WANObjectCache
-        * @since 1.26
         */
        static function getWANInstance( $id ) {
-               if ( isset( self::$wanInstances[$id] ) ) {
-                       return self::$wanInstances[$id];
+               if ( !isset( self::$wanInstances[$id] ) ) {
+                       self::$wanInstances[$id] = self::newWANCacheFromId( $id );
                }
 
-               $object = self::newWANCacheFromId( $id );
-               self::$wanInstances[$id] = $object;
-               return $object;
+               return self::$wanInstances[$id];
        }
 
        /**
@@ -81,9 +83,8 @@ class ObjectCache {
         * Create a new cache object of the specified type.
         *
         * @param string $id
-        *
-        * @throws MWException
         * @return BagOStuff
+        * @throws MWException
         */
        static function newFromId( $id ) {
                global $wgObjectCaches;
@@ -100,9 +101,8 @@ class ObjectCache {
         * Create a new cache object from parameters
         *
         * @param array $params
-        *
-        * @throws MWException
         * @return BagOStuff
+        * @throws MWException
         */
        static function newFromParams( $params ) {
                if ( isset( $params['loggroup'] ) ) {
@@ -133,6 +133,7 @@ class ObjectCache {
         * be an alias to the configured cache choice for that.
         * If no cache choice is configured (by default $wgMainCacheType is CACHE_NONE),
         * then CACHE_ANYTHING will forward to CACHE_DB.
+        *
         * @param array $params
         * @return BagOStuff
         */
@@ -155,8 +156,8 @@ class ObjectCache {
         *
         * @param array $params
         * @param int|string $fallback Fallback cache, e.g. (CACHE_NONE, "hash") (since 1.24)
-        * @throws MWException
         * @return BagOStuff
+        * @throws MWException
         */
        static function newAccelerator( $params, $fallback = null ) {
                if ( function_exists( 'apc_fetch' ) ) {
@@ -166,11 +167,11 @@ class ObjectCache {
                } elseif ( function_exists( 'wincache_ucache_get' ) ) {
                        $id = 'wincache';
                } else {
-                       if ( $fallback !== null ) {
-                               return self::newFromId( $fallback );
+                       if ( $fallback === null ) {
+                               throw new MWException( 'CACHE_ACCEL requested but no suitable object ' .
+                                       'cache is present. You may want to install APC.' );
                        }
-                       throw new MWException( "CACHE_ACCEL requested but no suitable object " .
-                               "cache is present. You may want to install APC." );
+                       $id = $fallback;
                }
                return self::newFromId( $id );
        }
@@ -183,7 +184,6 @@ class ObjectCache {
         * switching between the two clients randomly would be disastrous.
         *
         * @param array $params
-        *
         * @return MemcachedPhpBagOStuff
         */
        static function newMemcached( $params ) {
@@ -193,11 +193,10 @@ class ObjectCache {
        /**
         * Create a new cache object of the specified type
         *
+        * @since 1.26
         * @param string $id
-        *
-        * @throws MWException
         * @return WANObjectCache
-        * @since 1.26
+        * @throws MWException
         */
        static function newWANCacheFromId( $id ) {
                global $wgWANObjectCaches;
@@ -219,12 +218,33 @@ class ObjectCache {
        /**
         * Get the main WAN cache object
         *
-        * @return WANObjectCache
         * @since 1.26
+        * @return WANObjectCache
         */
        static function getMainWANInstance() {
                global $wgMainWANCache;
 
                return self::getWANInstance( $wgMainWANCache );
        }
+
+       /**
+        * Stash objects are BagOStuff instances suitable for storing light
+        * weight data that is not canonically stored elsewhere (such as RDBMS).
+        * Stashes should be configured to propagate changes to all data-centers.
+        *
+        * Callers should be prepared for:
+        *   - a) Writes to be slower in non-"primary" (e.g. HTTP GET/HEAD only) DCs
+        *   - b) Reads to be eventually consistent, e.g. for get()/getMulti()
+        * In general, this means avoiding updates on idempotent HTTP requests and
+        * avoiding an assumption of perfect serializability (or accepting anomalies).
+        * Reads may be eventually consistent or data might rollback as nodes flap.
+        *
+        * @since 1.26
+        * @return BagOStuff
+        */
+       static function getMainStashInstance() {
+               global $wgMainStash;
+
+               return self::getInstance( $wgMainStash );
+       }
 }
index 9d5d0ef..ed0aaa2 100644 (file)
@@ -264,8 +264,6 @@ class RedisBagOStuff extends BagOStuff {
                return $result;
        }
 
-
-
        public function add( $key, $value, $expiry = 0 ) {
 
                list( $server, $conn ) = $this->getConnection( $key );
@@ -277,6 +275,7 @@ class RedisBagOStuff extends BagOStuff {
                        if ( $expiry ) {
                                $conn->multi();
                                $conn->setnx( $key, $this->serialize( $value ) );
+                               // @FIXME: this always bumps the TTL; use Redis 2.8 or Lua
                                $conn->expire( $key, $expiry );
                                $result = ( $conn->exec() == array( true, true ) );
                        } else {
@@ -313,6 +312,7 @@ class RedisBagOStuff extends BagOStuff {
                        return null;
                }
                try {
+                       // @FIXME: on races, the key may have a 0 TTL
                        $result = $conn->incrBy( $key, $value );
                } catch ( RedisException $e ) {
                        $result = false;
index 82eeb84..2017a74 100644 (file)
@@ -688,9 +688,9 @@ class SqlBagOStuff extends BagOStuff {
         */
        protected function unserialize( $serial ) {
                if ( function_exists( 'gzinflate' ) ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $decomp = gzinflate( $serial );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
 
                        if ( false !== $decomp ) {
                                $serial = $decomp;
index 25bf844..11a3638 100644 (file)
@@ -1238,7 +1238,7 @@ class Article implements Page {
                if ( !$this->mPage->hasViewableContent() && $wgSend404Code && !$validUserPage ) {
                        // If there's no backing content, send a 404 Not Found
                        // for better machine handling of broken links.
-                       $this->getContext()->getRequest()->response()->header( "HTTP/1.1 404 Not Found" );
+                       $this->getContext()->getRequest()->response()->statusHeader( 404 );
                }
 
                // Also apply the robot policy for nonexisting pages (even if a 404 was used for sanity)
@@ -1505,6 +1505,28 @@ class Article implements Page {
                        '</div>';
        }
 
+       /**
+        * Adds help link with an icon via page indicators.
+        * Link target can be overridden by a local message containing a wikilink:
+        * the message key is: 'namespace-' + namespace number + '-helppage'.
+        * @param string $to Target MediaWiki.org page title or encoded URL.
+        * @param bool $overrideBaseUrl Whether $url is a full URL, to avoid MW.o.
+        * @since 1.25
+        */
+       public function addHelpLink( $to, $overrideBaseUrl = false ) {
+               $msg = wfMessage(
+                       'namespace-' . $this->getTitle()->getNamespace() . '-helppage'
+               );
+
+               $out = $this->getContext()->getOutput();
+               if ( !$msg->isDisabled() ) {
+                       $helpUrl = Skin::makeUrl( $msg->plain() );
+                       $out->addHelpLink( $helpUrl, true );
+               } else {
+                       $out->addHelpLink( $to, $overrideBaseUrl );
+               }
+       }
+
        /**
         * Handle action=render
         */
@@ -1750,9 +1772,8 @@ class Article implements Page {
                        Xml::closeElement( 'form' );
 
                        if ( $user->isAllowed( 'editinterface' ) ) {
-                               $dropdownTitle = Title::makeTitle( NS_MEDIAWIKI, 'Deletereason-dropdown' );
                                $link = Linker::link(
-                                       $dropdownTitle,
+                                       $ctx->msg( 'deletereason-dropdown' )->inContentLanguage()->getTitle(),
                                        wfMessage( 'delete-edit-reasonlist' )->escaped(),
                                        array(),
                                        array( 'action' => 'edit' )
index 2edf1af..caebcd7 100644 (file)
@@ -115,6 +115,6 @@ class CategoryPage extends Article {
                );
                $out = $this->getContext()->getOutput();
                $out->addHTML( $viewer->getHTML() );
-               $out->addHelpLink( 'Help:Categories' );
+               $this->addHelpLink( 'Help:Categories' );
        }
 }
index 8f635cf..cebc4c4 100644 (file)
@@ -614,8 +614,8 @@ EOT
                        $out->wrapWikiMsg( "<div id='mw-imagepage-nofile' class='plainlinks'>\n$1\n</div>", $nofile );
                        if ( !$this->getID() && $wgSend404Code ) {
                                // If there is no image, no shared image, and no description page,
-                               // output a 404, to be consistent with articles.
-                               $request->response()->header( 'HTTP/1.1 404 Not Found' );
+                               // output a 404, to be consistent with Article::showMissingArticle.
+                               $request->response()->statusHeader( 404 );
                        }
                }
                $out->setFileVersion( $this->displayImg );
index cc182a4..5e72151 100644 (file)
@@ -1086,10 +1086,7 @@ class WikiPage implements Page, IDBAccessObject {
         * @return bool
         */
        public function isParserCacheUsed( ParserOptions $parserOptions, $oldid ) {
-               global $wgEnableParserCache;
-
-               return $wgEnableParserCache
-                       && $parserOptions->getStubThreshold() == 0
+               return $parserOptions->getStubThreshold() == 0
                        && $this->exists()
                        && ( $oldid === null || $oldid === 0 || $oldid === $this->getLatest() )
                        && $this->getContentHandler()->isParserCacheSupported();
@@ -1111,7 +1108,7 @@ class WikiPage implements Page, IDBAccessObject {
                $useParserCache = $this->isParserCacheUsed( $parserOptions, $oldid );
                wfDebug( __METHOD__ . ': using parser cache: ' . ( $useParserCache ? 'yes' : 'no' ) . "\n" );
                if ( $parserOptions->getStubThreshold() ) {
-                       wfIncrStats( 'pcache_miss_stub' );
+                       wfIncrStats( 'pcache.miss.stub' );
                }
 
                if ( $useParserCache ) {
@@ -1267,10 +1264,9 @@ class WikiPage implements Page, IDBAccessObject {
                        $conditions['page_latest'] = $lastRevision;
                }
 
-               $now = wfTimestampNow();
                $row = array( /* SET */
                        'page_latest'      => $revision->getId(),
-                       'page_touched'     => $dbw->timestamp( $now ),
+                       'page_touched'     => $dbw->timestamp( $revision->getTimestamp() ),
                        'page_is_new'      => ( $lastRevision === 0 ) ? 1 : 0,
                        'page_is_redirect' => $rt !== null ? 1 : 0,
                        'page_len'         => $len,
@@ -1692,6 +1688,7 @@ class WikiPage implements Page, IDBAccessObject {
         *     revision: The revision object for the inserted revision, or null.
         *
         * @since 1.21
+        * @throws MWException
         */
        public function doEditContent( Content $content, $summary, $flags = 0, $baseRevId = false,
                User $user = null, $serialFormat = null
@@ -1803,56 +1800,48 @@ class WikiPage implements Page, IDBAccessObject {
 
                        if ( $changed ) {
                                $dbw->begin( __METHOD__ );
-                               try {
 
-                                       $prepStatus = $content->prepareSave( $this, $flags, $oldid, $user );
-                                       $status->merge( $prepStatus );
+                               $prepStatus = $content->prepareSave( $this, $flags, $oldid, $user );
+                               $status->merge( $prepStatus );
 
-                                       if ( !$status->isOK() ) {
-                                               $dbw->rollback( __METHOD__ );
+                               if ( !$status->isOK() ) {
+                                       $dbw->rollback( __METHOD__ );
 
-                                               return $status;
-                                       }
-                                       $revisionId = $revision->insertOn( $dbw );
+                                       return $status;
+                               }
+                               $revisionId = $revision->insertOn( $dbw );
 
-                                       // Update page
-                                       //
-                                       // We check for conflicts by comparing $oldid with the current latest revision ID.
-                                       $ok = $this->updateRevisionOn( $dbw, $revision, $oldid, $oldIsRedirect );
+                               // Update page
+                               //
+                               // We check for conflicts by comparing $oldid with the current latest revision ID.
+                               $ok = $this->updateRevisionOn( $dbw, $revision, $oldid, $oldIsRedirect );
 
-                                       if ( !$ok ) {
-                                               // Belated edit conflict! Run away!!
-                                               $status->fatal( 'edit-conflict' );
+                               if ( !$ok ) {
+                                       // Belated edit conflict! Run away!!
+                                       $status->fatal( 'edit-conflict' );
 
-                                               $dbw->rollback( __METHOD__ );
+                                       $dbw->rollback( __METHOD__ );
 
-                                               return $status;
-                                       }
+                                       return $status;
+                               }
 
-                                       Hooks::run( 'NewRevisionFromEditComplete', array( $this, $revision, $baseRevId, $user ) );
-                                       // Update recentchanges
-                                       if ( !( $flags & EDIT_SUPPRESS_RC ) ) {
-                                               // Mark as patrolled if the user can do so
-                                               $patrolled = $wgUseRCPatrol && !count(
-                                               $this->mTitle->getUserPermissionsErrors( 'autopatrol', $user ) );
-                                               // Add RC row to the DB
-                                               $rc = RecentChange::notifyEdit( $now, $this->mTitle, $isminor, $user, $summary,
-                                                       $oldid, $this->getTimestamp(), $bot, '', $oldsize, $newsize,
-                                                       $revisionId, $patrolled
-                                               );
+                               Hooks::run( 'NewRevisionFromEditComplete', array( $this, $revision, $baseRevId, $user ) );
 
-                                               // Log auto-patrolled edits
-                                               if ( $patrolled ) {
-                                                       PatrolLog::record( $rc, true, $user );
-                                               }
-                                       }
-                                       $user->incEditCount();
-                               } catch ( Exception $e ) {
-                                       $dbw->rollback( __METHOD__ );
-                                       // Question: Would it perhaps be better if this method turned all
-                                       // exceptions into $status's?
-                                       throw $e;
+                               // Update recentchanges
+                               if ( !( $flags & EDIT_SUPPRESS_RC ) ) {
+                                       // Mark as patrolled if the user can do so
+                                       $patrolled = $wgUseRCPatrol && !count(
+                                               $this->mTitle->getUserPermissionsErrors( 'autopatrol', $user ) );
+                                       // Add RC row to the DB
+                                       RecentChange::notifyEdit(
+                                               $now, $this->mTitle, $isminor, $user, $summary,
+                                               $oldid, $this->getTimestamp(), $bot, '', $oldsize, $newsize,
+                                               $revisionId, $patrolled
+                                       );
                                }
+
+                               $user->incEditCount();
+
                                $dbw->commit( __METHOD__ );
                        } else {
                                // Bug 32948: revision ID must be set to page {{REVISIONID}} and
@@ -1875,85 +1864,78 @@ class WikiPage implements Page, IDBAccessObject {
                                $revision = null;
                                // Update page_touched, this is usually implicit in the page update
                                // Other cache updates are done in onArticleEdit()
-                               $this->mTitle->invalidateCache();
+                               $this->mTitle->invalidateCache( $now );
                        }
                } else {
                        // Create new article
                        $status->value['new'] = true;
 
                        $dbw->begin( __METHOD__ );
-                       try {
 
-                               $prepStatus = $content->prepareSave( $this, $flags, $oldid, $user );
-                               $status->merge( $prepStatus );
+                       $prepStatus = $content->prepareSave( $this, $flags, $oldid, $user );
+                       $status->merge( $prepStatus );
 
-                               if ( !$status->isOK() ) {
-                                       $dbw->rollback( __METHOD__ );
+                       if ( !$status->isOK() ) {
+                               $dbw->rollback( __METHOD__ );
 
-                                       return $status;
-                               }
+                               return $status;
+                       }
 
-                               $status->merge( $prepStatus );
+                       $status->merge( $prepStatus );
 
-                               // Add the page record; stake our claim on this title!
-                               // This will return false if the article already exists
-                               $newid = $this->insertOn( $dbw );
+                       // Add the page record; stake our claim on this title!
+                       // This will return false if the article already exists
+                       $newid = $this->insertOn( $dbw );
 
-                               if ( $newid === false ) {
-                                       $dbw->rollback( __METHOD__ );
-                                       $status->fatal( 'edit-already-exists' );
+                       if ( $newid === false ) {
+                               $dbw->rollback( __METHOD__ );
+                               $status->fatal( 'edit-already-exists' );
 
-                                       return $status;
-                               }
+                               return $status;
+                       }
 
-                               // Save the revision text...
-                               $revision = new Revision( array(
-                                       'page'       => $newid,
-                                       'title'      => $this->getTitle(), // for determining the default content model
-                                       'comment'    => $summary,
-                                       'minor_edit' => $isminor,
-                                       'text'       => $serialized,
-                                       'len'        => $newsize,
-                                       'user'       => $user->getId(),
-                                       'user_text'  => $user->getName(),
-                                       'timestamp'  => $now,
-                                       'content_model' => $content->getModel(),
-                                       'content_format' => $serialFormat,
-                               ) );
-                               $revisionId = $revision->insertOn( $dbw );
+                       // Save the revision text...
+                       $revision = new Revision( array(
+                               'page'       => $newid,
+                               'title'      => $this->getTitle(), // for determining the default content model
+                               'comment'    => $summary,
+                               'minor_edit' => $isminor,
+                               'text'       => $serialized,
+                               'len'        => $newsize,
+                               'user'       => $user->getId(),
+                               'user_text'  => $user->getName(),
+                               'timestamp'  => $now,
+                               'content_model' => $content->getModel(),
+                               'content_format' => $serialFormat,
+                       ) );
+                       $revisionId = $revision->insertOn( $dbw );
 
-                               // Bug 37225: use accessor to get the text as Revision may trim it
-                               $content = $revision->getContent(); // sanity; get normalized version
+                       // Bug 37225: use accessor to get the text as Revision may trim it
+                       $content = $revision->getContent(); // sanity; get normalized version
 
-                               if ( $content ) {
-                                       $newsize = $content->getSize();
-                               }
+                       if ( $content ) {
+                               $newsize = $content->getSize();
+                       }
 
-                               // Update the page record with revision data
-                               $this->updateRevisionOn( $dbw, $revision, 0 );
+                       // Update the page record with revision data
+                       $this->updateRevisionOn( $dbw, $revision, 0 );
 
-                               Hooks::run( 'NewRevisionFromEditComplete', array( $this, $revision, false, $user ) );
+                       Hooks::run( 'NewRevisionFromEditComplete', array( $this, $revision, false, $user ) );
 
-                               // Update recentchanges
-                               if ( !( $flags & EDIT_SUPPRESS_RC ) ) {
-                                       // Mark as patrolled if the user can do so
-                                       $patrolled = ( $wgUseRCPatrol || $wgUseNPPatrol ) && !count(
-                                               $this->mTitle->getUserPermissionsErrors( 'autopatrol', $user ) );
-                                       // Add RC row to the DB
-                                       $rc = RecentChange::notifyNew( $now, $this->mTitle, $isminor, $user, $summary, $bot,
-                                               '', $newsize, $revisionId, $patrolled );
+                       // Update recentchanges
+                       if ( !( $flags & EDIT_SUPPRESS_RC ) ) {
+                               // Mark as patrolled if the user can do so
+                               $patrolled = ( $wgUseRCPatrol || $wgUseNPPatrol ) && !count(
+                                       $this->mTitle->getUserPermissionsErrors( 'autopatrol', $user ) );
+                               // Add RC row to the DB
+                               RecentChange::notifyNew(
+                                       $now, $this->mTitle, $isminor, $user, $summary, $bot,
+                                       '', $newsize, $revisionId, $patrolled
+                               );
+                       }
 
-                                       // Log auto-patrolled edits
-                                       if ( $patrolled ) {
-                                               PatrolLog::record( $rc, true, $user );
-                                       }
-                               }
-                               $user->incEditCount();
+                       $user->incEditCount();
 
-                       } catch ( Exception $e ) {
-                               $dbw->rollback( __METHOD__ );
-                               throw $e;
-                       }
                        $dbw->commit( __METHOD__ );
 
                        // Update links, etc.
@@ -1975,13 +1957,13 @@ class WikiPage implements Page, IDBAccessObject {
                $status->value['revision'] = $revision;
 
                $hook_args = array( &$this, &$user, $content, $summary,
-                                                       $flags & EDIT_MINOR, null, null, &$flags, $revision, &$status, $baseRevId );
+                       $flags & EDIT_MINOR, null, null, &$flags, $revision, &$status, $baseRevId );
 
                ContentHandler::runLegacyHooks( 'ArticleSaveComplete', $hook_args );
                Hooks::run( 'PageContentSaveComplete', $hook_args );
 
                // Promote user to any groups they meet the criteria for
-               $dbw->onTransactionIdle( function () use ( $user ) {
+               DeferredUpdates::addCallableUpdate( function () use ( $user ) {
                        $user->addAutopromoteOnceGroups( 'onEdit' );
                        $user->addAutopromoteOnceGroups( 'onView' ); // b/c
                } );
@@ -2166,8 +2148,6 @@ class WikiPage implements Page, IDBAccessObject {
         *   - 'no-change': don't update the article count, ever
         */
        public function doEditUpdates( Revision $revision, User $user, array $options = array() ) {
-               global $wgEnableParserCache;
-
                $options += array(
                        'changed' => true,
                        'created' => false,
@@ -2187,31 +2167,30 @@ class WikiPage implements Page, IDBAccessObject {
                        $editInfo = $this->mPreparedEdit;
                }
 
-               // Save it to the parser cache
-               if ( $wgEnableParserCache ) {
-                       $parserCache = ParserCache::singleton();
-                       $parserCache->save(
-                               $editInfo->output, $this, $editInfo->popts, $editInfo->timestamp, $editInfo->revid
-                       );
-               }
+               // Save it to the parser cache.
+               // Make sure the cache time matches page_touched to avoid double parsing.
+               ParserCache::singleton()->save(
+                       $editInfo->output, $this, $editInfo->popts,
+                       $revision->getTimestamp(), $editInfo->revid
+               );
 
                // Update the links tables and other secondary data
                if ( $content ) {
                        $recursive = $options['changed']; // bug 50785
                        $updates = $content->getSecondaryDataUpdates(
                                $this->getTitle(), null, $recursive, $editInfo->output );
-                       DataUpdate::runUpdates( $updates );
+                       foreach ( $updates as $update ) {
+                               DeferredUpdates::addUpdate( $update );
+                       }
                }
 
                Hooks::run( 'ArticleEditUpdates', array( &$this, &$editInfo, $options['changed'] ) );
 
                if ( Hooks::run( 'ArticleEditUpdatesDeleteFromRecentchanges', array( &$this ) ) ) {
-                       JobQueueGroup::singleton()->push( array(
-                               // Flush old entries from the `recentchanges` table
-                               RecentChangesUpdateJob::newPurgeJob(),
-                               // Update the cached list of active users
-                               RecentChangesUpdateJob::newCacheUpdateJob()
-                       ) );
+                       // Flush old entries from the `recentchanges` table
+                       if ( mt_rand( 0, 9 ) == 0 ) {
+                               JobQueueGroup::singleton()->lazyPush( RecentChangesUpdateJob::newPurgeJob() );
+                       }
                }
 
                if ( !$this->exists() ) {
@@ -2280,7 +2259,6 @@ class WikiPage implements Page, IDBAccessObject {
                } elseif ( $options['changed'] ) { // bug 50785
                        self::onArticleEdit( $this->mTitle );
                }
-
        }
 
        /**
@@ -2784,9 +2762,16 @@ class WikiPage implements Page, IDBAccessObject {
                $dbw->begin( __METHOD__ );
 
                if ( $id == 0 ) {
-                       $this->loadPageData( 'forupdate' );
+                       // T98706: lock the page from various other updates but avoid using
+                       // WikiPage::READ_LOCKING as that will carry over the FOR UPDATE to
+                       // the revisions queries (which also JOIN on user). Only lock the page
+                       // row and CAS check on page_latest to see if the trx snapshot matches.
+                       $latest = $this->lock();
+
+                       $this->loadPageData( WikiPage::READ_LATEST );
                        $id = $this->getID();
-                       if ( $id == 0 ) {
+                       if ( $id == 0 || $this->getLatest() != $latest ) {
+                               // Page not there or trx snapshot is stale
                                $dbw->rollback( __METHOD__ );
                                $status->error( 'cannotdelete', wfEscapeWikiText( $this->getTitle()->getPrefixedText() ) );
                                return $status;
@@ -2893,6 +2878,24 @@ class WikiPage implements Page, IDBAccessObject {
                return $status;
        }
 
+       /**
+        * Lock the page row for this title and return page_latest (or 0)
+        *
+        * @return integer
+        */
+       protected function lock() {
+               return (int)wfGetDB( DB_MASTER )->selectField(
+                       'page',
+                       'page_latest',
+                       array(
+                               'page_namespace' => $this->getTitle()->getNamespace(),
+                               'page_title' => $this->getTitle()->getDBkey()
+                       ),
+                       __METHOD__,
+                       array( 'FOR UPDATE' )
+               );
+       }
+
        /**
         * Do some database updates after deletion
         *
@@ -3157,7 +3160,6 @@ class WikiPage implements Page, IDBAccessObject {
                // Update existence markers on article/talk tabs...
                $other = $title->getOtherPage();
 
-               $other->invalidateCache();
                $other->purgeSquid();
 
                $title->touchLinks();
@@ -3174,7 +3176,6 @@ class WikiPage implements Page, IDBAccessObject {
                // Update existence markers on article/talk tabs...
                $other = $title->getOtherPage();
 
-               $other->invalidateCache();
                $other->purgeSquid();
 
                $title->touchLinks();
@@ -3411,14 +3412,14 @@ class WikiPage implements Page, IDBAccessObject {
 
                // Check if the last link refresh was before page_touched
                if ( $this->getLinksTimestamp() < $this->getTouched() ) {
-                       JobQueueGroup::singleton()->push( EnqueueJob::newFromLocalJobs(
+                       $params['isOpportunistic'] = true;
+                       $params['rootJobTimestamp'] = $parserOutput->getCacheTime();
+
+                       JobQueueGroup::singleton()->lazyPush( EnqueueJob::newFromLocalJobs(
                                new JobSpecification( 'refreshLinks', $params,
                                        array( 'removeDuplicates' => true ), $this->mTitle )
                        ) );
-                       return;
                }
-
-               return;
        }
 
        /**
index 4f8c438..ee6e26c 100644 (file)
@@ -113,6 +113,10 @@ abstract class ReverseChronologicalPager extends IndexPager {
                        $ymd = 20320101;
                }
 
-               $this->mOffset = $this->mDb->timestamp( "${ymd}000000" );
+               // Treat the given time in the wiki timezone and get a UTC timestamp for the database lookup
+               $timestamp = MWTimestamp::getInstance( "${ymd}000000" );
+               $timestamp->setTimeZone( $this->getConfig()->get( 'Localtimezone' ) );
+
+               $this->mOffset = $this->mDb->timestamp( $timestamp->getTimestamp() );
        }
 }
index 950c0d4..c450689 100644 (file)
@@ -47,7 +47,7 @@ class CacheTime {
        /**
         * setCacheTime() sets the timestamp expressing when the page has been rendered.
         * This does not control expiry, see updateCacheExpiry() for that!
-        * @param string $t
+        * @param string $t TS_MW timestamp
         * @return string
         */
        public function setCacheTime( $t ) {
index d446ccf..e29ee88 100644 (file)
@@ -40,13 +40,10 @@ class MWTidyWrapper {
         */
        protected $mTokens;
 
-       protected $mUniqPrefix;
-
        protected $mMarkerIndex;
 
        public function __construct() {
                $this->mTokens = null;
-               $this->mUniqPrefix = null;
        }
 
        /**
@@ -55,8 +52,6 @@ class MWTidyWrapper {
         */
        public function getWrapped( $text ) {
                $this->mTokens = new ReplacementArray;
-               $this->mUniqPrefix = "\x7fUNIQ" .
-                       dechex( mt_rand( 0, 0x7fffffff ) ) . dechex( mt_rand( 0, 0x7fffffff ) );
                $this->mMarkerIndex = 0;
 
                // Replace <mw:editsection> elements with placeholders
@@ -86,7 +81,7 @@ class MWTidyWrapper {
         * @return string
         */
        public function replaceCallback( $m ) {
-               $marker = "{$this->mUniqPrefix}-item-{$this->mMarkerIndex}" . Parser::MARKER_SUFFIX;
+               $marker = Parser::MARKER_PREFIX . "-item-{$this->mMarkerIndex}" . Parser::MARKER_SUFFIX;
                $this->mMarkerIndex++;
                $this->mTokens->setPair( $marker, $m[0] );
                return $marker;
index ace63a0..928c3a8 100644 (file)
@@ -114,8 +114,20 @@ class Parser {
        const OT_MSG = 3;
        const OT_PLAIN = 4; # like extractSections() - portions of the original are returned unchanged.
 
-       # Marker Suffix needs to be accessible staticly.
+       /**
+        * @var string Prefix and suffix for temporary replacement strings
+        * for the multipass parser.
+        *
+        * \x7f should never appear in input as it's disallowed in XML.
+        * Using it at the front also gives us a little extra robustness
+        * since it shouldn't match when butted up against identifier-like
+        * string constructs.
+        *
+        * Must not consist of all title characters, or else it will change
+        * the behavior of <nowiki> in a link.
+        */
        const MARKER_SUFFIX = "-QINU\x7f";
+       const MARKER_PREFIX = "\x7fUNIQ-";
 
        # Markers used for wrapping the table of contents
        const TOC_START = '<mw:toc>';
@@ -206,9 +218,10 @@ class Parser {
        public $mInputSize = false; # For {{PAGESIZE}} on current page.
 
        /**
-        * @var string
-        */
-       public $mUniqPrefix;
+        * @var string Deprecated accessor for the strip marker prefix.
+        * @deprecated since 1.26; use Parser::MARKER_PREFIX instead.
+        **/
+       public $mUniqPrefix = Parser::MARKER_PREFIX;
 
        /**
         * @var array Array with the language name of each language link (i.e. the
@@ -336,18 +349,7 @@ class Parser {
                $this->mLangLinkLanguages = array();
                $this->currentRevisionCache = null;
 
-               /**
-                * Prefix for temporary replacement strings for the multipass parser.
-                * \x07 should never appear in input as it's disallowed in XML.
-                * Using it at the front also gives us a little extra robustness
-                * since it shouldn't match when butted up against identifier-like
-                * string constructs.
-                *
-                * Must not consist of all title characters, or else it will change
-                * the behavior of <nowiki> in a link.
-                */
-               $this->mUniqPrefix = "\x7fUNIQ" . self::getRandomString();
-               $this->mStripState = new StripState( $this->mUniqPrefix );
+               $this->mStripState = new StripState;
 
                # Clear these on every parse, bug 4549
                $this->mTplRedirCache = $this->mTplDomCache = array();
@@ -399,6 +401,9 @@ class Parser {
                global $wgShowHostnames;
 
                if ( $clearState ) {
+                       // We use U+007F DELETE to construct strip markers, so we have to make
+                       // sure that this character does not occur in the input text.
+                       $text = strtr( $text, "\x7f", "?" );
                        $magicScopeVariable = $this->lock();
                }
 
@@ -410,11 +415,6 @@ class Parser {
                        $this->mOutput->resetParseStartTime();
                }
 
-               # Remove the strip marker tag prefix from the input, if present.
-               if ( $clearState ) {
-                       $text = str_replace( $this->mUniqPrefix, '', $text );
-               }
-
                $oldRevisionId = $this->mRevisionId;
                $oldRevisionObject = $this->mRevisionObject;
                $oldRevisionTimestamp = $this->mRevisionTimestamp;
@@ -686,8 +686,10 @@ class Parser {
         * Get a random string
         *
         * @return string
+        * @deprecated since 1.26; use wfRandomString() instead.
         */
        public static function getRandomString() {
+               wfDeprecated( __METHOD__, '1.26' );
                return wfRandomString( 16 );
        }
 
@@ -705,18 +707,11 @@ class Parser {
         * Accessor for mUniqPrefix.
         *
         * @return string
+        * @deprecated since 1.26; use Parser::MARKER_PREFIX instead.
         */
        public function uniqPrefix() {
-               if ( !isset( $this->mUniqPrefix ) ) {
-                       # @todo FIXME: This is probably *horribly wrong*
-                       # LanguageConverter seems to want $wgParser's uniqPrefix, however
-                       # if this is called for a parser cache hit, the parser may not
-                       # have ever been initialized in the first place.
-                       # Not really sure what the heck is supposed to be going on here.
-                       return '';
-                       # throw new MWException( "Accessing uninitialized mUniqPrefix" );
-               }
-               return $this->mUniqPrefix;
+               wfDeprecated( __METHOD__, '1.26' );
+               return self::MARKER_PREFIX;
        }
 
        /**
@@ -907,10 +902,14 @@ class Parser {
         * @param array $elements List of element names. Comments are always extracted.
         * @param string $text Source text string.
         * @param array $matches Out parameter, Array: extracted tags
-        * @param string $uniq_prefix
+        * @param string|null $uniq_prefix
         * @return string Stripped text
+        * @since 1.26 The uniq_prefix argument is deprecated.
         */
-       public static function extractTagsAndParams( $elements, $text, &$matches, $uniq_prefix = '' ) {
+       public static function extractTagsAndParams( $elements, $text, &$matches, $uniq_prefix = null ) {
+               if ( $uniq_prefix !== null ) {
+                       wfDeprecated( __METHOD__ . ' called with $prefix argument', '1.26' );
+               }
                static $n = 1;
                $stripped = '';
                $matches = array();
@@ -938,7 +937,7 @@ class Parser {
                                $inside = $p[4];
                        }
 
-                       $marker = "$uniq_prefix-$element-" . sprintf( '%08X', $n++ ) . self::MARKER_SUFFIX;
+                       $marker = self::MARKER_PREFIX . "-$element-" . sprintf( '%08X', $n++ ) . self::MARKER_SUFFIX;
                        $stripped .= $marker;
 
                        if ( $close === '/>' ) {
@@ -991,10 +990,10 @@ class Parser {
         * @return string
         */
        public function insertStripItem( $text ) {
-               $rnd = "{$this->mUniqPrefix}-item-{$this->mMarkerIndex}-" . self::MARKER_SUFFIX;
+               $marker = self::MARKER_PREFIX . "-item-{$this->mMarkerIndex}-" . self::MARKER_SUFFIX;
                $this->mMarkerIndex++;
-               $this->mStripState->addGeneral( $rnd, $text );
-               return $rnd;
+               $this->mStripState->addGeneral( $marker, $text );
+               return $marker;
        }
 
        /**
@@ -1257,7 +1256,7 @@ class Parser {
 
                # replaceInternalLinks may sometimes leave behind
                # absolute URLs, which have to be masked to hide them from replaceExternalLinks
-               $text = str_replace( $this->mUniqPrefix . 'NOPARSE', '', $text );
+               $text = str_replace( self::MARKER_PREFIX . 'NOPARSE', '', $text );
 
                $text = $this->doMagicLinks( $text );
                $text = $this->formatHeadings( $text, $origText, $isMain );
@@ -1279,6 +1278,10 @@ class Parser {
 
                $text = $this->mStripState->unstripGeneral( $text );
 
+               if ( $isMain ) {
+                       Hooks::run( 'ParserAfterUnstrip', array( &$this, &$text ) );
+               }
+
                # Clean up special characters, only run once, next-to-last before doBlockLevels
                $fixtags = array(
                        # french spaces, last one Guillemet-left
@@ -2351,7 +2354,7 @@ class Parser {
         */
        public function armorLinks( $text ) {
                return preg_replace( '/\b((?i)' . $this->mUrlProtocols . ')/',
-                       "{$this->mUniqPrefix}NOPARSE$1", $text );
+                       self::MARKER_PREFIX . "NOPARSE$1", $text );
        }
 
        /**
@@ -2623,7 +2626,7 @@ class Parser {
                                $closematch = preg_match(
                                        '/(?:<\\/table|<\\/h1|<\\/h2|<\\/h3|<\\/h4|<\\/h5|<\\/h6|'
                                                . '<td|<th|<\\/?blockquote|<\\/?div|<hr|<\\/pre|<\\/p|<\\/mw:|'
-                                               . $this->mUniqPrefix
+                                               . self::MARKER_PREFIX
                                                . '-pre|<\\/li|<\\/ul|<\\/ol|<\\/dl|<\\/?center)/iS',
                                        $t
                                );
@@ -3892,7 +3895,11 @@ class Parser {
                // Defaults to Parser::statelessFetchTemplate()
                $templateCb = $this->mOptions->getTemplateCallback();
                $stuff = call_user_func( $templateCb, $title, $this );
+               // We use U+007F DELETE to distinguish strip markers from regular text.
                $text = $stuff['text'];
+               if ( is_string( $stuff['text'] ) ) {
+                       $text = strtr( $text, "\x7f", "?" );
+               }
                $finalTitle = isset( $stuff['finalTitle'] ) ? $stuff['finalTitle'] : $title;
                if ( isset( $stuff['deps'] ) ) {
                        foreach ( $stuff['deps'] as $dep ) {
@@ -4186,7 +4193,7 @@ class Parser {
                $name = $frame->expand( $params['name'] );
                $attrText = !isset( $params['attr'] ) ? null : $frame->expand( $params['attr'] );
                $content = !isset( $params['inner'] ) ? null : $frame->expand( $params['inner'] );
-               $marker = "{$this->mUniqPrefix}-$name-"
+               $marker = self::MARKER_PREFIX . "-$name-"
                        . sprintf( '%08X', $this->mMarkerIndex++ ) . self::MARKER_SUFFIX;
 
                $isFunctionTag = isset( $this->mFunctionTagHooks[strtolower( $name )] ) &&
@@ -4431,7 +4438,7 @@ class Parser {
                $prevlevel = 0;
                $toclevel = 0;
                $prevtoclevel = 0;
-               $markerRegex = "{$this->mUniqPrefix}-h-(\d+)-" . self::MARKER_SUFFIX;
+               $markerRegex = self::MARKER_PREFIX . "-h-(\d+)-" . self::MARKER_SUFFIX;
                $baseTitleText = $this->mTitle->getPrefixedDBkey();
                $oldType = $this->mOutputType;
                $this->setOutputType( self::OT_WIKI );
@@ -4442,7 +4449,9 @@ class Parser {
                $tocraw = array();
                $refers = array();
 
-               foreach ( $matches[3] as $headline ) {
+               $headlines = $numMatches !== false ? $matches[3] : array();
+
+               foreach ( $headlines as $headline ) {
                        $isTemplate = false;
                        $titleText = false;
                        $sectionIndex = false;
@@ -5770,7 +5779,7 @@ class Parser {
        public function replaceTransparentTags( $text ) {
                $matches = array();
                $elements = array_keys( $this->mTransparentTagHooks );
-               $text = self::extractTagsAndParams( $elements, $text, $matches, $this->mUniqPrefix );
+               $text = self::extractTagsAndParams( $elements, $text, $matches );
                $replacements = array();
 
                foreach ( $matches as $marker => $data ) {
@@ -6229,7 +6238,7 @@ class Parser {
                $i = 0;
                $out = '';
                while ( $i < strlen( $s ) ) {
-                       $markerStart = strpos( $s, $this->mUniqPrefix, $i );
+                       $markerStart = strpos( $s, self::MARKER_PREFIX, $i );
                        if ( $markerStart === false ) {
                                $out .= call_user_func( $callback, substr( $s, $i ) );
                                break;
index dc8bb52..16dde0d 100644 (file)
@@ -141,15 +141,15 @@ class ParserCache {
 
                // Determine the options which affect this article
                $optionsKey = $this->mMemc->get( $this->getOptionsKey( $article ) );
-               if ( $optionsKey != false ) {
+               if ( $optionsKey instanceof CacheTime ) {
                        if ( !$useOutdated && $optionsKey->expired( $article->getTouched() ) ) {
-                               wfIncrStats( "pcache_miss_expired" );
+                               wfIncrStats( "pcache.miss.expired" );
                                $cacheTime = $optionsKey->getCacheTime();
                                wfDebug( "Parser options key expired, touched " . $article->getTouched()
                                        . ", epoch $wgCacheEpoch, cached $cacheTime\n" );
                                return false;
                        } elseif ( $optionsKey->isDifferentRevision( $article->getLatest() ) ) {
-                               wfIncrStats( "pcache_miss_revid" );
+                               wfIncrStats( "pcache.miss.revid" );
                                $revId = $article->getLatest();
                                $cachedRevId = $optionsKey->getCacheRevisionId();
                                wfDebug( "ParserOutput key is for an old revision, latest $revId, cached $cachedRevId\n" );
@@ -195,14 +195,14 @@ class ParserCache {
 
                $parserOutputKey = $this->getKey( $article, $popts, $useOutdated );
                if ( $parserOutputKey === false ) {
-                       wfIncrStats( 'pcache_miss_absent' );
+                       wfIncrStats( 'pcache.miss.absent' );
                        return false;
                }
 
                $value = $this->mMemc->get( $parserOutputKey );
                if ( !$value ) {
                        wfDebug( "ParserOutput cache miss.\n" );
-                       wfIncrStats( "pcache_miss_absent" );
+                       wfIncrStats( "pcache.miss.absent" );
                        return false;
                }
 
@@ -214,19 +214,19 @@ class ParserCache {
                $value->setEditSectionTokens( $popts->getEditSection() );
 
                if ( !$useOutdated && $value->expired( $touched ) ) {
-                       wfIncrStats( "pcache_miss_expired" );
+                       wfIncrStats( "pcache.miss.expired" );
                        $cacheTime = $value->getCacheTime();
                        wfDebug( "ParserOutput key expired, touched $touched, "
                                . "epoch $wgCacheEpoch, cached $cacheTime\n" );
                        $value = false;
                } elseif ( $value->isDifferentRevision( $article->getLatest() ) ) {
-                       wfIncrStats( "pcache_miss_revid" );
+                       wfIncrStats( "pcache.miss.revid" );
                        $revId = $article->getLatest();
                        $cachedRevId = $value->getCacheRevisionId();
                        wfDebug( "ParserOutput key is for an old revision, latest $revId, cached $cachedRevId\n" );
                        $value = false;
                } else {
-                       wfIncrStats( "pcache_hit" );
+                       wfIncrStats( "pcache.hit" );
                }
 
                return $value;
@@ -276,6 +276,8 @@ class ParserCache {
 
                        // ...and its pointer
                        $this->mMemc->set( $this->getOptionsKey( $page ), $optionsKey, $expire );
+
+                       Hooks::run( 'ParserCacheSaveComplete', array( $this, $parserOutput, $page->getTitle(), $popts, $revId ) );
                } else {
                        wfDebug( "Parser output was marked as uncacheable and has not been saved.\n" );
                }
index 174c1d6..32f5d06 100644 (file)
@@ -29,7 +29,6 @@ class ParserDiffTest
        public $parsers;
        public $conf;
        public $shortOutput = false;
-       public $dtUniqPrefix;
 
        public function __construct( $conf ) {
                if ( !isset( $conf['parsers'] ) ) {
@@ -43,12 +42,6 @@ class ParserDiffTest
                        return;
                }
 
-               global $wgHooks;
-               static $doneHook = false;
-               if ( !$doneHook ) {
-                       $doneHook = true;
-                       $wgHooks['ParserClearState'][] = array( $this, 'onClearState' );
-               }
                if ( isset( $this->conf['shortOutput'] ) ) {
                        $this->shortOutput = $this->conf['shortOutput'];
                }
@@ -126,18 +119,4 @@ class ParserDiffTest
                        $parser->setFunctionHook( $id, $callback, $flags );
                }
        }
-
-       /**
-        * @param Parser $parser
-        * @return bool
-        */
-       public function onClearState( &$parser ) {
-               // hack marker prefixes to get identical output
-               if ( !isset( $this->dtUniqPrefix ) ) {
-                       $this->dtUniqPrefix = $parser->uniqPrefix();
-               } else {
-                       $parser->mUniqPrefix = $this->dtUniqPrefix;
-               }
-               return true;
-       }
 }
index 65b527c..a8db1c9 100644 (file)
@@ -41,7 +41,6 @@ class ParserOutput extends CacheTime {
                $mModules = array(),          # Modules to be loaded by the resource loader
                $mModuleScripts = array(),    # Modules of which only the JS will be loaded by the resource loader
                $mModuleStyles = array(),     # Modules of which only the CSSS will be loaded by the resource loader
-               $mModuleMessages = array(),   # Modules of which only the messages will be loaded by the resource loader
                $mJsConfigVars = array(),     # JavaScript config variable for mw.config combined with this page
                $mOutputHooks = array(),      # Hook tags as per $wgParserOutputHooks
                $mWarnings = array(),         # Warning text to be returned to the user. Wikitext formatted, in the key only
@@ -191,8 +190,13 @@ class ParserOutput extends CacheTime {
                return $this->mModuleStyles;
        }
 
+       /**
+        * @deprecated since 1.26 Obsolete
+        * @return array
+        */
        public function getModuleMessages() {
-               return $this->mModuleMessages;
+               wfDeprecated( __METHOD__, '1.26' );
+               return array();
        }
 
        /** @since 1.23 */
@@ -445,8 +449,12 @@ class ParserOutput extends CacheTime {
                $this->mModuleStyles = array_merge( $this->mModuleStyles, (array)$modules );
        }
 
+       /**
+        * @deprecated since 1.26 Use addModules() instead
+        * @param string|array $modules
+        */
        public function addModuleMessages( $modules ) {
-               $this->mModuleMessages = array_merge( $this->mModuleMessages, (array)$modules );
+               wfDeprecated( __METHOD__, '1.26' );
        }
 
        /**
@@ -476,7 +484,6 @@ class ParserOutput extends CacheTime {
                $this->addModules( $out->getModules() );
                $this->addModuleScripts( $out->getModuleScripts() );
                $this->addModuleStyles( $out->getModuleStyles() );
-               $this->addModuleMessages( $out->getModuleMessages() );
                $this->addJsConfigVars( $out->getJsConfigVars() );
 
                $this->mHeadItems = array_merge( $this->mHeadItems, $out->getHeadItemsArray() );
index 0351f2a..56cddce 100644 (file)
@@ -87,9 +87,9 @@ class Preprocessor_DOM implements Preprocessor {
                $xml .= "</list>";
 
                $dom = new DOMDocument();
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $result = $dom->loadXML( $xml );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( !$result ) {
                        // Try running the XML through UtfNormal to get rid of invalid characters
                        $xml = UtfNormal\Validator::cleanUp( $xml );
@@ -186,9 +186,9 @@ class Preprocessor_DOM implements Preprocessor {
                }
 
                $dom = new DOMDocument;
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $result = $dom->loadXML( $xml );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( !$result ) {
                        // Try running the XML through UtfNormal to get rid of invalid characters
                        $xml = UtfNormal\Validator::cleanUp( $xml );
@@ -853,7 +853,8 @@ class PPDStackElement {
                $close,             // Matching closing character
                $count,             // Number of opening characters found (number of "=" for heading)
                $parts,             // Array of PPDPart objects describing pipe-separated parts.
-               $lineStart;         // True if the open char appeared at the start of the input line. Not set for headings.
+               $lineStart;         // True if the open char appeared at the start of the input line.
+                                   // Not set for headings.
 
        public $partClass = 'PPDPart';
 
@@ -1029,6 +1030,10 @@ class PPFrame_DOM implements PPFrame {
                                        $index = $nameNodes->item( 0 )->attributes->getNamedItem( 'index' )->textContent;
                                        $index = $index - $indexOffset;
                                        if ( isset( $namedArgs[$index] ) || isset( $numberedArgs[$index] ) ) {
+                                               $this->parser->getOutput()->addWarning( wfMessage( 'duplicate-args-warning',
+                                                       wfEscapeWikiText( $this->title ),
+                                                       wfEscapeWikiText( $title ),
+                                                       wfEscapeWikiText( $index ) )->text() );
                                                $this->parser->addTrackingCategory( 'duplicate-args-category' );
                                        }
                                        $numberedArgs[$index] = $value->item( 0 );
@@ -1037,6 +1042,10 @@ class PPFrame_DOM implements PPFrame {
                                        // Named parameter
                                        $name = trim( $this->expand( $nameNodes->item( 0 ), PPFrame::STRIP_COMMENTS ) );
                                        if ( isset( $namedArgs[$name] ) || isset( $numberedArgs[$name] ) ) {
+                                               $this->parser->getOutput()->addWarning( wfMessage( 'duplicate-args-warning',
+                                                       wfEscapeWikiText( $this->title ),
+                                                       wfEscapeWikiText( $title ),
+                                                       wfEscapeWikiText( $name ) )->text() );
                                                $this->parser->addTrackingCategory( 'duplicate-args-category' );
                                        }
                                        $namedArgs[$name] = $value->item( 0 );
@@ -1263,7 +1272,7 @@ class PPFrame_DOM implements PPFrame {
                                                $titleText = $this->title->getPrefixedDBkey();
                                                $this->parser->mHeadings[] = array( $titleText, $headingIndex );
                                                $serial = count( $this->parser->mHeadings ) - 1;
-                                               $marker = "{$this->parser->mUniqPrefix}-h-$serial-" . Parser::MARKER_SUFFIX;
+                                               $marker = Parser::MARKER_PREFIX . "-h-$serial-" . Parser::MARKER_SUFFIX;
                                                $count = $contextNode->getAttribute( 'level' );
                                                $s = substr( $s, 0, $count ) . $marker . substr( $s, $count );
                                                $this->parser->mStripState->addGeneral( $marker, '' );
index af91ad4..308ef44 100644 (file)
@@ -112,7 +112,6 @@ class Preprocessor_Hash implements Preprocessor {
         * @return PPNode_Hash_Tree
         */
        public function preprocessToObj( $text, $flags = 0 ) {
-
                // Check cache.
                global $wgMemc, $wgPreprocessorCacheThreshold;
 
@@ -972,6 +971,10 @@ class PPFrame_Hash implements PPFrame {
                                        // Numbered parameter
                                        $index = $bits['index'] - $indexOffset;
                                        if ( isset( $namedArgs[$index] ) || isset( $numberedArgs[$index] ) ) {
+                                               $this->parser->getOutput()->addWarning( wfMessage( 'duplicate-args-warning',
+                                                       wfEscapeWikiText( $this->title ),
+                                                       wfEscapeWikiText( $title ),
+                                                       wfEscapeWikiText( $index ) )->text() );
                                                $this->parser->addTrackingCategory( 'duplicate-args-category' );
                                        }
                                        $numberedArgs[$index] = $bits['value'];
@@ -980,6 +983,10 @@ class PPFrame_Hash implements PPFrame {
                                        // Named parameter
                                        $name = trim( $this->expand( $bits['name'], PPFrame::STRIP_COMMENTS ) );
                                        if ( isset( $namedArgs[$name] ) || isset( $numberedArgs[$name] ) ) {
+                                               $this->parser->getOutput()->addWarning( wfMessage( 'duplicate-args-warning',
+                                                       wfEscapeWikiText( $this->title ),
+                                                       wfEscapeWikiText( $title ),
+                                                       wfEscapeWikiText( $name ) )->text() );
                                                $this->parser->addTrackingCategory( 'duplicate-args-category' );
                                        }
                                        $namedArgs[$name] = $bits['value'];
@@ -1177,7 +1184,7 @@ class PPFrame_Hash implements PPFrame {
                                                $titleText = $this->title->getPrefixedDBkey();
                                                $this->parser->mHeadings[] = array( $titleText, $bits['i'] );
                                                $serial = count( $this->parser->mHeadings ) - 1;
-                                               $marker = "{$this->parser->mUniqPrefix}-h-$serial-" . Parser::MARKER_SUFFIX;
+                                               $marker = Parser::MARKER_PREFIX . "-h-$serial-" . Parser::MARKER_SUFFIX;
                                                $s = substr( $s, 0, $bits['level'] ) . $marker . substr( $s, $bits['level'] );
                                                $this->parser->mStripState->addGeneral( $marker, '' );
                                                $out .= $s;
index 51ae42d..b11dc8c 100644 (file)
@@ -37,15 +37,20 @@ class StripState {
        const UNSTRIP_RECURSION_LIMIT = 20;
 
        /**
-        * @param string $prefix
+        * @param string|null $prefix
+        * @since 1.26 The prefix argument should be omitted, as the strip marker
+        *  prefix string is now a constant.
         */
-       public function __construct( $prefix ) {
-               $this->prefix = $prefix;
+       public function __construct( $prefix = null ) {
+               if ( $prefix !== null ) {
+                       wfDeprecated( __METHOD__ . ' with called with $prefix argument' .
+                               ' (call with no arguments instead)', '1.26' );
+               }
                $this->data = array(
                        'nowiki' => array(),
                        'general' => array()
                );
-               $this->regex = "/{$this->prefix}([^\x7f]+)" . Parser::MARKER_SUFFIX . '/';
+               $this->regex = '/' . Parser::MARKER_PREFIX . "([^\x7f]+)" . Parser::MARKER_SUFFIX . '/';
                $this->circularRefGuard = array();
        }
 
@@ -144,7 +149,11 @@ class StripState {
                        }
                        $this->circularRefGuard[$marker] = true;
                        $this->recursionLevel++;
-                       $ret = $this->unstripType( $this->tempType, $this->data[$this->tempType][$marker] );
+                       $value = $this->data[$this->tempType][$marker];
+                       if ( $value instanceof Closure ) {
+                               $value = $value();
+                       }
+                       $ret = $this->unstripType( $this->tempType, $value );
                        $this->recursionLevel--;
                        unset( $this->circularRefGuard[$marker] );
                        return $ret;
@@ -162,10 +171,10 @@ class StripState {
         * @return StripState
         */
        public function getSubState( $text ) {
-               $subState = new StripState( $this->prefix );
+               $subState = new StripState();
                $pos = 0;
                while ( true ) {
-                       $startPos = strpos( $text, $this->prefix, $pos );
+                       $startPos = strpos( $text, Parser::MARKER_PREFIX, $pos );
                        $endPos = strpos( $text, Parser::MARKER_SUFFIX, $pos );
                        if ( $startPos === false || $endPos === false ) {
                                break;
@@ -198,7 +207,7 @@ class StripState {
         * @return array
         */
        public function merge( $otherState, $texts ) {
-               $mergePrefix = Parser::getRandomString();
+               $mergePrefix = wfRandomString( 16 );
 
                foreach ( $otherState->data as $type => $items ) {
                        foreach ( $items as $key => $value ) {
@@ -218,7 +227,7 @@ class StripState {
         */
        protected function mergeCallback( $m ) {
                $key = $m[1];
-               return "{$this->prefix}{$this->tempMergePrefix}-$key" . Parser::MARKER_SUFFIX;
+               return Parser::MARKER_PREFIX . $this->tempMergePrefix . '-' . $key . Parser::MARKER_SUFFIX;
        }
 
        /**
diff --git a/includes/password/PasswordPolicyChecks.php b/includes/password/PasswordPolicyChecks.php
new file mode 100644 (file)
index 0000000..eb4a958
--- /dev/null
@@ -0,0 +1,115 @@
+<?php
+/**
+ * Password policy checks
+ *
+ * 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
+ */
+
+/**
+ * Functions to check passwords against a policy requirement
+ * @since 1.26
+ */
+class PasswordPolicyChecks {
+
+       /**
+        * Check password is longer than minimum, not fatal
+        * @param int $policyVal minimal length
+        * @param User $user
+        * @param string $password
+        * @return Status error if $password is shorter than $policyVal
+        */
+       public static function checkMinimalPasswordLength( $policyVal, User $user, $password ) {
+               $status = Status::newGood();
+               if ( $policyVal > strlen( $password ) ) {
+                       $status->error( 'passwordtooshort', $policyVal );
+               }
+               return $status;
+       }
+
+       /**
+        * Check password is longer than minimum, fatal
+        * @param int $policyVal minimal length
+        * @param User $user
+        * @param string $password
+        * @return Status fatal if $password is shorter than $policyVal
+        */
+       public static function checkMinimumPasswordLengthToLogin( $policyVal, User $user, $password ) {
+               $status = Status::newGood();
+               if ( $policyVal > strlen( $password ) ) {
+                       $status->fatal( 'passwordtooshort', $policyVal );
+               }
+               return $status;
+       }
+
+       /**
+        * Check password is shorter than maximum, fatal
+        * @param int $policyVal maximum length
+        * @param User $user
+        * @param string $password
+        * @return Status fatal if $password is shorter than $policyVal
+        */
+       public static function checkMaximalPasswordLength( $policyVal, User $user, $password ) {
+               $status = Status::newGood();
+               if ( $policyVal < strlen( $password ) ) {
+                       $status->fatal( 'passwordtoolong', $policyVal );
+               }
+               return $status;
+       }
+
+       /**
+        * Check if username and password match
+        * @param bool $policyVal true to force compliance.
+        * @param User $user
+        * @param string $password
+        * @return Status error if username and password match, and policy is true
+        */
+       public static function checkPasswordCannotMatchUsername( $policyVal, User $user, $password ) {
+               global $wgContLang;
+               $status = Status::newGood();
+               $username = $user->getName();
+               if ( $policyVal && $wgContLang->lc( $password ) === $wgContLang->lc( $username ) ) {
+                       $status->error( 'password-name-match' );
+               }
+               return $status;
+       }
+
+       /**
+        * Check if username and password are on a blacklist
+        * @param bool $policyVal true to force compliance.
+        * @param User $user
+        * @param string $password
+        * @return Status error if username and password match, and policy is true
+        */
+       public static function checkPasswordCannotMatchBlacklist( $policyVal, User $user, $password ) {
+               static $blockedLogins = array(
+                       'Useruser' => 'Passpass', 'Useruser1' => 'Passpass1', # r75589
+                       'Apitestsysop' => 'testpass', 'Apitestuser' => 'testpass' # r75605
+               );
+
+               $status = Status::newGood();
+               $username = $user->getName();
+               if ( $policyVal
+                       && isset( $blockedLogins[$username] )
+                       && $password == $blockedLogins[$username]
+               ) {
+                       $status->error( 'password-login-forbidden' );
+               }
+               return $status;
+       }
+
+}
diff --git a/includes/password/UserPasswordPolicy.php b/includes/password/UserPasswordPolicy.php
new file mode 100644 (file)
index 0000000..cdad9ba
--- /dev/null
@@ -0,0 +1,158 @@
+<?php
+/**
+ * Password policy checking for a user
+ *
+ * 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
+ */
+
+/**
+ * Check if a user's password complies with any password policies that apply to that
+ * user, based on the user's group membership.
+ * @since 1.26
+ */
+class UserPasswordPolicy {
+
+       /**
+        * @var array
+        */
+       private $policies;
+
+       /**
+        * Mapping of statements to the function that will test the password for compliance. The
+        * checking functions take the policy value, the user, and password, and return a Status
+        * object indicating compliance.
+        * @var array
+        */
+       private $policyCheckFunctions;
+
+       /**
+        * @param array $policies
+        * @param array $checks mapping statement to its checking function. Checking functions are
+        * called with the policy value for this user, the user object, and the password to check.
+        */
+       public function __construct( array $policies, array $checks ) {
+               if ( !isset( $policies['default'] ) ) {
+                       throw new InvalidArgumentException(
+                               'Must include a \'default\' password policy'
+                       );
+               }
+               $this->policies = $policies;
+
+               foreach ( $checks as $statement => $check ) {
+                       if ( !is_callable( $check ) ) {
+                               throw new InvalidArgumentException(
+                                       'Policy check functions must be callable'
+                               );
+                       }
+                       $this->policyCheckFunctions[$statement] = $check;
+               }
+       }
+
+       /**
+        * Check if a passwords meets the effective password policy for a User.
+        * @param User $user who's policy we are checking
+        * @param string $password the password to check
+        * @return Status error to indicate the password didn't meet the policy, or fatal to
+        *      indicate the user shouldn't be allowed to login.
+        */
+       public function checkUserPassword( User $user, $password ) {
+               $effectivePolicy = $this->getPoliciesForUser( $user );
+               $status = Status::newGood();
+
+               foreach ( $effectivePolicy as $policy => $value ) {
+                       if ( !isset( $this->policyCheckFunctions[$policy] ) ) {
+                               throw new DomainException( 'Invalid password policy config' );
+                       }
+                       $status->merge(
+                               call_user_func(
+                                       $this->policyCheckFunctions[$policy],
+                                       $value,
+                                       $user,
+                                       $password
+                               )
+                       );
+               }
+
+               return $status;
+       }
+
+       /**
+        * Get the policy for a user, based on their group membership. Public so
+        * UI elements can access and inform the user.
+        * @param User $user
+        * @return array the effective policy for $user
+        */
+       public function getPoliciesForUser( User $user ) {
+               $effectivePolicy = self::getPoliciesForGroups(
+                       $this->policies,
+                       $user->getEffectiveGroups(),
+                       $this->policies['default']
+               );
+
+               Hooks::run( 'PasswordPoliciesForUser', array( $user, &$effectivePolicy ) );
+
+               return $effectivePolicy;
+       }
+
+       /**
+        * Utility function to get the effective policy from a list of policies, based
+        * on a list of groups.
+        * @param array $policies list of policies to consider
+        * @param array $userGroups the groups from which we calculate the effective policy
+        * @param array $defaultPolicy the default policy to start from
+        * @return array effective policy
+        */
+       public static function getPoliciesForGroups( array $policies, array $userGroups,
+               array $defaultPolicy
+       ) {
+               $effectivePolicy = $defaultPolicy;
+               foreach ( $policies as $group => $policy ) {
+                       if ( in_array( $group, $userGroups ) ) {
+                               $effectivePolicy = self::maxOfPolicies(
+                                       $effectivePolicy,
+                                       $policies[$group]
+                               );
+                       }
+               }
+
+               return $effectivePolicy;
+       }
+
+       /**
+        * Utility function to get a policy that is the most restrictive of $p1 and $p2. For
+        * simplicity, we setup the policy values so the maximum value is always more restrictive.
+        * @param array $p1
+        * @param array $p2
+        * @return array containing the more restrictive values of $p1 and $p2
+        */
+       public static function maxOfPolicies( array $p1, array $p2 ) {
+               $ret = array();
+               $keys = array_merge( array_keys( $p1 ), array_keys( $p2 ) );
+               foreach ( $keys as $key ) {
+                       if ( !isset( $p1[$key] ) ) {
+                               $ret[$key] = $p2[$key];
+                       } elseif ( !isset( $p2[$key] ) ) {
+                               $ret[$key] = $p1[$key];
+                       } else {
+                               $ret[$key] = max( $p1[$key], $p2[$key] );
+                       }
+               }
+               return $ret;
+       }
+
+}
index dbf80fa..9983fec 100644 (file)
@@ -230,6 +230,21 @@ abstract class Profiler {
                }
        }
 
+       /**
+        * Output current data to the page output if configured to do so
+        *
+        * @throws MWException
+        * @since 1.26
+        */
+       public function logDataPageOutputOnly() {
+               foreach ( $this->getOutputs() as $output ) {
+                       if ( $output instanceof ProfilerOutputText ) {
+                               $stats = $this->getFunctionStats();
+                               $output->log( $stats );
+                       }
+               }
+       }
+
        /**
         * Get the content type sent out to the client.
         * Used for profilers that output instead of store data.
index 244b4e4..3fe9cdd 100644 (file)
@@ -46,4 +46,7 @@ class ProfilerStub extends Profiler {
 
        public function logData() {
        }
+
+       public function logDataPageOutputOnly() {
+       }
 }
index f36cdc1..5f7fc00 100644 (file)
  *
  * To restrict the functions for which profiling data is collected, you can
  * use either a whitelist ($wgProfiler['include']) or a blacklist
- * ($wgProfiler['exclude']) containing an array of function names. The
- * blacklist functionality is built into HHVM and will completely exclude the
- * named functions from profiling collection. The whitelist is implemented by
- * Xhprof class which will filter the data collected by XHProf before reporting.
- * See documentation for the Xhprof class and the XHProf extension for
- * additional information.
+ * ($wgProfiler['exclude']) containing an array of function names.
+ * Shell-style patterns are also accepted.
  *
  * @author Bryan Davis <bd808@wikimedia.org>
  * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
@@ -77,7 +73,8 @@ class ProfilerXhprof extends Profiler {
        }
 
        public function scopedProfileIn( $section ) {
-               return $this->sprofiler->scopedProfileIn( $section );
+               $key = 'section.' . ltrim( $section, '.' );
+               return $this->sprofiler->scopedProfileIn( $key );
        }
 
        /**
@@ -86,12 +83,43 @@ class ProfilerXhprof extends Profiler {
        public function close() {
        }
 
+       /**
+        * Check if a function or section should be excluded from the output.
+        *
+        * @param string $name Function or section name.
+        * @return bool
+        */
+       private function shouldExclude( $name ) {
+               if ( $name === '-total' ) {
+                       return true;
+               }
+               if ( !empty( $this->params['include'] ) ) {
+                       foreach ( $this->params['include'] as $pattern ) {
+                               if ( fnmatch( $pattern, $name, FNM_NOESCAPE ) ) {
+                                       return false;
+                               }
+                       }
+                       return true;
+               }
+               if ( !empty( $this->params['exclude'] ) ) {
+                       foreach ( $this->params['exclude'] as $pattern ) {
+                               if ( fnmatch( $pattern, $name, FNM_NOESCAPE ) ) {
+                                       return true;
+                               }
+                       }
+               }
+               return false;
+       }
+
        public function getFunctionStats() {
                $metrics = $this->xhprof->getCompleteMetrics();
                $profile = array();
 
                $main = null; // units in ms
                foreach ( $metrics as $fname => $stats ) {
+                       if ( $this->shouldExclude( $fname ) ) {
+                               continue;
+                       }
                        // Convert elapsed times from μs to ms to match interface
                        $entry = array(
                                'name' => $fname,
@@ -113,8 +141,7 @@ class ProfilerXhprof extends Profiler {
 
                // Merge in all of the custom profile sections
                foreach ( $this->sprofiler->getFunctionStats() as $stats ) {
-                       if ( $stats['name'] === '-total' ) {
-                               // Discard section profiler running totals
+                       if ( $this->shouldExclude( $stats['name'] ) ) {
                                continue;
                        }
 
index 5f2a57a..46d6119 100644 (file)
@@ -59,7 +59,7 @@ class TransactionProfiler implements LoggerAwareInterface {
                'masterConns'    => INF,
                'maxAffected'    => INF,
                'readQueryTime'  => INF,
-               'writeQueryTime' => INF,
+               'writeQueryTime' => INF
        );
        /** @var array */
        protected $expectBy = array();
@@ -246,13 +246,23 @@ class TransactionProfiler implements LoggerAwareInterface {
         * @param string $server DB server
         * @param string $db DB name
         * @param string $id ID string of transaction
+        * @param float $writeTime Time spent in write queries
         */
-       public function transactionWritingOut( $server, $db, $id ) {
+       public function transactionWritingOut( $server, $db, $id, $writeTime = 0.0 ) {
                $name = "{$server} ({$db}) (TRX#$id)";
                if ( !isset( $this->dbTrxMethodTimes[$name] ) ) {
                        $this->logger->info( "Detected no transaction for '$name' - out of sync." );
                        return;
                }
+
+               $slow = false;
+
+               // Warn if too much time was spend writing...
+               if ( $writeTime > $this->expect['writeQueryTime'] ) {
+                       $this->reportExpectationViolated( 'writeQueryTime',
+                               "[transaction $id writes to {$server} ({$db})]" );
+                       $slow = true;
+               }
                // Fill in the last non-query period...
                $lastQuery = end( $this->dbTrxMethodTimes[$name] );
                if ( $lastQuery ) {
@@ -263,7 +273,6 @@ class TransactionProfiler implements LoggerAwareInterface {
                        }
                }
                // Check for any slow queries or non-query periods...
-               $slow = false;
                foreach ( $this->dbTrxMethodTimes[$name] as $info ) {
                        $elapsed = ( $info[2] - $info[1] );
                        if ( $elapsed >= $this->dbLockThreshold ) {
index ef6ef7c..d816a01 100644 (file)
  */
 class ProfilerOutputStats extends ProfilerOutput {
 
+       /**
+        * Normalize a metric key for StatsD
+        *
+        * Replace occurences of '::' with dots and any other non-alphabetic
+        * characters with underscores. Combine runs of dots or underscores.
+        * Then trim leading or trailing dots or underscores.
+        *
+        * @param string $key
+        * @since 1.26
+        */
+       private static function normalizeMetricKey( $key ) {
+               $key = preg_replace( '/[:.]+/', '.', $key );
+               $key = preg_replace( '/[^a-z.]+/i', '_', $key );
+               $key = trim( $key, '_.' );
+               return str_replace( array( '._', '_.' ), '.', $key );
+       }
+
        /**
         * Flush profiling data to the current profiling context's stats buffer.
         *
         * @param array $stats
         */
        public function log( array $stats ) {
+               if ( isset( $this->params['prefix'] ) ) {
+                       $prefix = self::normalizeMetricKey( $this->params['prefix'] );
+               } else {
+                       $prefix = '';
+               }
+
                $contextStats = $this->collector->getContext()->getStats();
 
                foreach ( $stats as $stat ) {
-                       // Sanitize the key
-                       $key = str_replace( '::', '.', $stat['name'] );
-                       $key = preg_replace( '/[^a-z.]+/i', '_', $key );
-                       $key = trim( $key, '_.' );
+                       $key = self::normalizeMetricKey( "{$prefix}.{$stat['name']}" );
 
                        // Convert fractional seconds to whole milliseconds
                        $cpu = round( $stat['cpu'] * 1000 );
index 519606c..f524361 100644 (file)
@@ -90,9 +90,7 @@ abstract class MachineReadableRCFeedFormatter implements RCFeedFormatter {
                                $packet['log_type'] = $rc->getAttribute( 'rc_log_type' );
                                $packet['log_action'] = $rc->getAttribute( 'rc_log_action' );
                                if ( $rc->getAttribute( 'rc_params' ) ) {
-                                       wfSuppressWarnings();
-                                       $params = unserialize( $rc->getAttribute( 'rc_params' ) );
-                                       wfRestoreWarnings();
+                                       $params = $rc->parseParams();
                                        if (
                                                // If it's an actual serialised false...
                                                $rc->getAttribute( 'rc_params' ) == serialize( false ) ||
index 4b9a754..0a09ff5 100644 (file)
@@ -29,7 +29,6 @@ class ExtensionProcessor implements Processor {
                'ExtensionFunctions',
                'ExtensionEntryPointListFiles',
                'SpecialPages',
-               'SpecialPageGroups',
                'JobClasses',
                'LogTypes',
                'LogRestrictions',
@@ -63,6 +62,28 @@ class ExtensionProcessor implements Processor {
                'license-name',
        );
 
+       /**
+        * Things that are not 'attributes', but are not in
+        * $globalSettings or $creditsAttributes.
+        *
+        * @var array
+        */
+       protected static $notAttributes = array(
+               'callback',
+               'Hooks',
+               'namespaces',
+               'ResourceFileModulePaths',
+               'ResourceModules',
+               'ResourceModuleSkinStyles',
+               'ExtensionMessagesFiles',
+               'MessagesDirs',
+               'type',
+               'config',
+               'ParserTestFiles',
+               'AutoloadClasses',
+               'manifest_version',
+       );
+
        /**
         * Stuff that is going to be set to $GLOBALS
         *
@@ -102,19 +123,13 @@ class ExtensionProcessor implements Processor {
         */
        protected $attributes = array();
 
-       /**
-        * List of keys that have already been processed
-        *
-        * @var array
-        */
-       protected $processed = array();
-
        /**
         * @param string $path
         * @param array $info
+        * @param int $version manifest_version for info
         * @return array
         */
-       public function extractInfo( $path, array $info ) {
+       public function extractInfo( $path, array $info, $version ) {
                $this->extractConfig( $info );
                $this->extractHooks( $info );
                $dir = dirname( $path );
@@ -125,7 +140,6 @@ class ExtensionProcessor implements Processor {
                $this->extractParserTestFiles( $dir, $info );
                if ( isset( $info['callback'] ) ) {
                        $this->callbacks[] = $info['callback'];
-                       $this->processed[] = 'callback';
                }
 
                $this->extractCredits( $path, $info );
@@ -133,11 +147,12 @@ class ExtensionProcessor implements Processor {
                        if ( in_array( $key, self::$globalSettings ) ) {
                                $this->storeToArray( "wg$key", $val, $this->globals );
                        // Ignore anything that starts with a @
-                       } elseif ( $key[0] !== '@' && !in_array( $key, $this->processed ) ) {
+                       } elseif ( $key[0] !== '@' && !in_array( $key, self::$notAttributes )
+                               && !in_array( $key, self::$creditsAttributes )
+                       ) {
                                $this->storeToArray( $key, $val, $this->attributes );
                        }
                }
-
        }
 
        public function getExtractedInfo() {
@@ -152,10 +167,11 @@ class ExtensionProcessor implements Processor {
 
        protected function extractHooks( array $info ) {
                if ( isset( $info['Hooks'] ) ) {
-                       foreach ( $info['Hooks'] as $name => $callable ) {
-                               $this->globals['wgHooks'][$name][] = $callable;
+                       foreach ( $info['Hooks'] as $name => $value ) {
+                               foreach ( (array)$value as $callback ) {
+                                       $this->globals['wgHooks'][$name][] = $callback;
+                               }
                        }
-                       $this->processed[] = 'Hooks';
                }
        }
 
@@ -183,7 +199,6 @@ class ExtensionProcessor implements Processor {
                                        $this->globals['wgNamespaceContentModels'][$id] = $ns['defaultcontentmodel'];
                                }
                        }
-                       $this->processed[] = 'namespaces';
                }
        }
 
@@ -215,7 +230,6 @@ class ExtensionProcessor implements Processor {
                        $this->globals["wgExtensionMessagesFiles"] += array_map( function( $file ) use ( $dir ) {
                                return "$dir/$file";
                        }, $info['ExtensionMessagesFiles'] );
-                       $this->processed[] = 'ExtensionMessagesFiles';
                }
        }
 
@@ -233,7 +247,6 @@ class ExtensionProcessor implements Processor {
                                        $this->globals["wgMessagesDirs"][$name][] = "$dir/$file";
                                }
                        }
-                       $this->processed[] = 'MessagesDirs';
                }
        }
 
@@ -242,11 +255,9 @@ class ExtensionProcessor implements Processor {
                        'path' => $path,
                        'type' => isset( $info['type'] ) ? $info['type'] : 'other',
                );
-               $this->processed[] = 'type';
                foreach ( self::$creditsAttributes as $attr ) {
                        if ( isset( $info[$attr] ) ) {
                                $credits[$attr] = $info[$attr];
-                               $this->processed[] = $attr;
                        }
                }
 
@@ -266,7 +277,6 @@ class ExtensionProcessor implements Processor {
                                        $this->globals["wg$key"] = $val;
                                }
                        }
-                       $this->processed[] = 'config';
                }
        }
 
@@ -275,7 +285,6 @@ class ExtensionProcessor implements Processor {
                        foreach ( $info['ParserTestFiles'] as $path ) {
                                $this->globals['wgParserTestFiles'][] = "$dir/$path";
                        }
-                       $this->processed[] = 'ParserTestFiles';
                }
        }
 
index 74d49bc..d767870 100644 (file)
  */
 class ExtensionRegistry {
 
+       /**
+        * Version of the highest supported manifest version
+        */
+       const MANIFEST_VERSION = 1;
+
+       /**
+        * Version of the oldest supported manifest version
+        */
+       const OLDEST_MANIFEST_VERSION = 1;
+
        /**
         * @var BagOStuff
         */
@@ -38,13 +48,6 @@ class ExtensionRegistry {
         */
        protected $attributes = array();
 
-       /**
-        * Processors, 'default' should be set by subclasses in the constructor
-        *
-        * @var Processor[]
-        */
-       protected $processors = array();
-
        /**
         * @var ExtensionRegistry
         */
@@ -62,7 +65,14 @@ class ExtensionRegistry {
        }
 
        public function __construct() {
-               $this->cache = ObjectCache::newAccelerator( array(), CACHE_NONE );
+               // We use a try/catch instead of the $fallback parameter because
+               // we don't want to fail here if $wgObjectCaches is not configured
+               // properly for APC setup
+               try {
+                       $this->cache = ObjectCache::newAccelerator( array() );
+               } catch ( MWException $e ) {
+                       $this->cache = new EmptyBagOStuff();
+               }
        }
 
        /**
@@ -70,10 +80,18 @@ class ExtensionRegistry {
         */
        public function queue( $path ) {
                global $wgExtensionInfoMTime;
-               if ( $wgExtensionInfoMTime !== false ) {
-                       $mtime = $wgExtensionInfoMTime;
-               } else {
-                       $mtime = filemtime( $path );
+
+               $mtime = $wgExtensionInfoMTime;
+               if ( $mtime === false ) {
+                       if ( file_exists( $path ) ) {
+                               $mtime = filemtime( $path );
+                       } else {
+                               throw new Exception( "$path does not exist!" );
+                       }
+                       if ( !$mtime ) {
+                               $err = error_get_last();
+                               throw new Exception( "Couldn't stat $path: {$err['message']}" );
+                       }
                }
                $this->queued[$path] = $mtime;
        }
@@ -83,8 +101,6 @@ class ExtensionRegistry {
                        return;
                }
 
-               $this->queued = array_unique( $this->queued );
-
                // See if this queue is in APC
                $key = wfMemcKey( 'registration', md5( json_encode( $this->queued ) ) );
                $data = $this->cache->get( $key );
@@ -97,7 +113,7 @@ class ExtensionRegistry {
                        // did that, but it should be cached
                        $data['globals']['wgAutoloadClasses'] += $data['autoload'];
                        unset( $data['autoload'] );
-                       $this->cache->set( $key, $data );
+                       $this->cache->set( $key, $data, 60 * 60 * 24 );
                }
                $this->queued = array();
        }
@@ -110,8 +126,8 @@ class ExtensionRegistry {
         * @throws Exception
         */
        public function readFromQueue( array $queue ) {
-               $data = array( 'globals' => array( 'wgAutoloadClasses' => array() ) );
                $autoloadClasses = array();
+               $processor = new ExtensionProcessor();
                foreach ( $queue as $path => $mtime ) {
                        $json = file_get_contents( $path );
                        if ( $json === false ) {
@@ -121,43 +137,33 @@ class ExtensionRegistry {
                        if ( !is_array( $info ) ) {
                                throw new Exception( "$path is not a valid JSON file." );
                        }
+                       if ( !isset( $info['manifest_version' ] ) ) {
+                               // For backwards-compatability, assume a version of 1
+                               $info['manifest_version'] = 1;
+                       }
+                       $version = $info['manifest_version'];
+                       if ( $version < self::OLDEST_MANIFEST_VERSION || $version > self::MANIFEST_VERSION ) {
+                               throw new Exception( "$path: unsupported manifest_version: {$version}" );
+                       }
                        $autoload = $this->processAutoLoader( dirname( $path ), $info );
                        // Set up the autoloader now so custom processors will work
                        $GLOBALS['wgAutoloadClasses'] += $autoload;
                        $autoloadClasses += $autoload;
-                       if ( isset( $info['processor'] ) ) {
-                               $processor = $this->getProcessor( $info['processor'] );
-                       } else {
-                               $processor = $this->getProcessor( 'default' );
-                       }
-                       $processor->extractInfo( $path, $info );
-               }
-               foreach ( $this->processors as $processor ) {
-                       $data = array_merge_recursive( $data, $processor->getExtractedInfo() );
+                       $processor->extractInfo( $path, $info, $version );
                }
+               $data = $processor->getExtractedInfo();
+               // Need to set this so we can += to it later
+               $data['globals']['wgAutoloadClasses'] = array();
                foreach ( $data['credits'] as $credit ) {
                        $data['globals']['wgExtensionCredits'][$credit['type']][] = $credit;
                }
-               $this->processors = array(); // Reset
                $data['autoload'] = $autoloadClasses;
                return $data;
        }
 
-       protected function getProcessor( $type ) {
-               if ( !isset( $this->processors[$type] ) ) {
-                       $processor = $type === 'default' ? new ExtensionProcessor() : new $type();
-                       if ( !$processor instanceof Processor ) {
-                               throw new Exception( "$type is not a Processor" );
-                       }
-                       $this->processors[$type] = $processor;
-               }
-
-               return $this->processors[$type];
-       }
-
        protected function exportExtractedData( array $info ) {
                foreach ( $info['globals'] as $key => $val ) {
-                       if ( !isset( $GLOBALS[$key] ) || !$GLOBALS[$key] ) {
+                       if ( !isset( $GLOBALS[$key] ) || ( is_array( $GLOBALS[$key] ) && !$GLOBALS[$key] ) ) {
                                $GLOBALS[$key] = $val;
                        } elseif ( $key === 'wgHooks' || $key === 'wgExtensionCredits' ) {
                                // Special case $wgHooks and $wgExtensionCredits, which require a recursive merge.
index e930fd3..e1aaca7 100644 (file)
@@ -16,12 +16,18 @@ interface Processor {
         *
         * @param string $path Absolute path of JSON file
         * @param array $info
+        * @param int $version manifest_version for info
         * @return array "credits" information to store
         */
-       public function extractInfo( $path, array $info );
+       public function extractInfo( $path, array $info, $version );
 
        /**
-        * @return array With 'globals', 'defines', 'callbacks', 'credits' keys.
+        * @return array With following keys:
+        *              'globals' - variables to be set to $GLOBALS
+        *              'defines' - constants to define
+        *              'callbacks' - functions to be executed by the registry
+        *              'credits' - metadata to be stored by registry
+        *              'attributes' - registration info which isn't a global variable
         */
        public function getExtractedInfo();
 }
index 7da3aec..bbe55ab 100644 (file)
  * @author Trevor Parscal
  */
 
+use Psr\Log\LoggerAwareInterface;
+use Psr\Log\LoggerInterface;
+use Psr\Log\NullLogger;
+
 /**
  * Dynamic JavaScript and CSS resource loading system.
  *
  * Most of the documentation is on the MediaWiki documentation wiki starting at:
  *    https://www.mediawiki.org/wiki/ResourceLoader
  */
-class ResourceLoader {
+class ResourceLoader implements LoggerAwareInterface {
        /** @var int */
        protected static $filterCacheVersion = 7;
 
@@ -77,6 +81,11 @@ class ResourceLoader {
         */
        protected $blobStore;
 
+       /**
+        * @var LoggerInterface
+        */
+       private $logger;
+
        /**
         * Load information stored in the database about modules.
         *
@@ -169,58 +178,72 @@ class ResourceLoader {
         *
         * @param string $filter Name of filter to run
         * @param string $data Text to filter, such as JavaScript or CSS text
-        * @param string $cacheReport Whether to include the cache key report
+        * @param array $options For back-compat, can also be the boolean value for "cacheReport". Keys:
+        *  - (bool) cache: Whether to allow caching this data. Default: true.
+        *  - (bool) cacheReport: Whether to include the "cache key" report comment. Default: true.
         * @return string Filtered data, or a comment containing an error message
         */
-       public function filter( $filter, $data, $cacheReport = true ) {
+       public function filter( $filter, $data, $options = array() ) {
+               // Back-compat
+               if ( is_bool( $options ) ) {
+                       $options = array( 'cacheReport' => $options );
+               }
+               // Defaults
+               $options += array( 'cache' => true, 'cacheReport' => true );
 
-               // For empty/whitespace-only data or for unknown filters, don't perform
-               // any caching or processing
-               if ( trim( $data ) === '' || !in_array( $filter, array( 'minify-js', 'minify-css' ) ) ) {
+               // Don't filter empty content
+               if ( trim( $data ) === '' ) {
                        return $data;
                }
 
-               // Try for cache hit
-               // Use CACHE_ANYTHING since filtering is very slow compared to DB queries
-               $key = wfMemcKey( 'resourceloader', 'filter', $filter, self::$filterCacheVersion, md5( $data ) );
-               $cache = wfGetCache( CACHE_ANYTHING );
-               $cacheEntry = $cache->get( $key );
-               if ( is_string( $cacheEntry ) ) {
-                       wfIncrStats( "rl-$filter-cache-hits" );
-                       return $cacheEntry;
+               if ( !in_array( $filter, array( 'minify-js', 'minify-css' ) ) ) {
+                       $this->logger->warning( 'Invalid filter {filter}', array(
+                               'filter' => $filter
+                       ) );
+                       return $data;
                }
 
-               $result = '';
-               // Run the filter - we've already verified one of these will work
-               try {
-                       wfIncrStats( "rl-$filter-cache-misses" );
+               if ( !$options['cache'] ) {
+                       $result = $this->applyFilter( $filter, $data );
+               } else {
+                       $key = wfMemcKey( 'resourceloader', 'filter', $filter, self::$filterCacheVersion, md5( $data ) );
+                       $cache = wfGetCache( wfIsHHVM() ? CACHE_ACCEL : CACHE_ANYTHING );
+                       $cacheEntry = $cache->get( $key );
+                       if ( is_string( $cacheEntry ) ) {
+                               wfIncrStats( "resourceloader_cache.$filter.hit" );
+                               return $cacheEntry;
+                       }
+                       $result = '';
+                       try {
+                               wfIncrStats( "resourceloader_cache.$filter.miss" );
+                               $result = $this->applyFilter( $filter, $data );
+                               if ( $options['cacheReport'] ) {
+                                       $result .= "\n/* cache key: $key */";
+                               }
+                               $cache->set( $key, $result );
+                       } catch ( Exception $e ) {
+                               MWExceptionHandler::logException( $e );
+                               $this->logger->warning( 'Minification failed: {exception}', array(
+                                       'exception' => $e
+                               ) );
+                               $this->errors[] = self::formatExceptionNoComment( $e );
+                       }
+               }
+
+               return $result;
+       }
+
+       private function applyFilter( $filter, $data ) {
                        switch ( $filter ) {
                                case 'minify-js':
-                                       $result = JavaScriptMinifier::minify( $data,
+                                       return JavaScriptMinifier::minify( $data,
                                                $this->config->get( 'ResourceLoaderMinifierStatementsOnOwnLine' ),
                                                $this->config->get( 'ResourceLoaderMinifierMaxLineLength' )
                                        );
-                                       if ( $cacheReport ) {
-                                               $result .= "\n/* cache key: $key */";
-                                       }
-                                       break;
                                case 'minify-css':
-                                       $result = CSSMin::minify( $data );
-                                       if ( $cacheReport ) {
-                                               $result .= "\n/* cache key: $key */";
-                                       }
-                                       break;
+                                       return CSSMin::minify( $data );
                        }
-
-                       // Save filtered text to Memcached
-                       $cache->set( $key, $result );
-               } catch ( Exception $e ) {
-                       MWExceptionHandler::logException( $e );
-                       wfDebugLog( 'resourceloader', __METHOD__ . ": minification failed: $e" );
-                       $this->errors[] = self::formatExceptionNoComment( $e );
-               }
-
-               return $result;
+                       return $data;
        }
 
        /* Methods */
@@ -229,14 +252,18 @@ class ResourceLoader {
         * Register core modules and runs registration hooks.
         * @param Config|null $config
         */
-       public function __construct( Config $config = null ) {
+       public function __construct( Config $config = null, LoggerInterface $logger = null ) {
                global $IP;
 
-               if ( $config === null ) {
-                       wfDebug( __METHOD__ . ' was called without providing a Config instance' );
-                       $config = ConfigFactory::getDefaultInstance()->makeConfig( 'main' );
+               if ( !$logger ) {
+                       $logger = new NullLogger();
                }
+               $this->setLogger( $logger );
 
+               if ( !$config ) {
+                       $this->logger->debug( __METHOD__ . ' was called without providing a Config instance' );
+                       $config = ConfigFactory::getDefaultInstance()->makeConfig( 'main' );
+               }
                $this->config = $config;
 
                // Add 'local' source first
@@ -247,6 +274,7 @@ class ResourceLoader {
 
                // Register core modules
                $this->register( include "$IP/resources/Resources.php" );
+               $this->register( include "$IP/resources/ResourcesOOUI.php" );
                // Register extension modules
                Hooks::run( 'ResourceLoaderRegisterModules', array( &$this ) );
                $this->register( $config->get( 'ResourceModules' ) );
@@ -265,9 +293,21 @@ class ResourceLoader {
                return $this->config;
        }
 
+       public function setLogger( LoggerInterface $logger ) {
+               $this->logger = $logger;
+       }
+
+       /**
+        * @since 1.26
+        * @return MessageBlobStore
+        */
+       public function getMessageBlobStore() {
+               return $this->blobStore;
+       }
+
        /**
-        * @param MessageBlobStore $blobStore
         * @since 1.25
+        * @param MessageBlobStore $blobStore
         */
        public function setMessageBlobStore( MessageBlobStore $blobStore ) {
                $this->blobStore = $blobStore;
@@ -339,7 +379,7 @@ class ResourceLoader {
                                        } elseif ( isset( $skinStyles['+' . $name] ) ) {
                                                $paths = (array)$skinStyles['+' . $name];
                                                $styleFiles = isset( $this->moduleInfos[$name]['skinStyles']['default'] ) ?
-                                                       $this->moduleInfos[$name]['skinStyles']['default'] :
+                                                       (array)$this->moduleInfos[$name]['skinStyles']['default'] :
                                                        array();
                                        } else {
                                                continue;
@@ -565,20 +605,45 @@ class ResourceLoader {
                return $this->sources[$source];
        }
 
+       /**
+        * @since 1.26
+        * @param string $value
+        * @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 );
+       }
+
+       /**
+        * Helper method to get and combine versions of multiple modules.
+        *
+        * @since 1.26
+        * @param ResourceLoaderContext $context
+        * @param array $modules List of ResourceLoaderModule objects
+        * @return string Hash
+        */
+       public function getCombinedVersion( ResourceLoaderContext $context, Array $modules ) {
+               if ( !$modules ) {
+                       return '';
+               }
+               // Support: PHP 5.3 ("$this" for anonymous functions was added in PHP 5.4.0)
+               // http://php.net/functions.anonymous
+               $rl = $this;
+               $hashes = array_map( function ( $module ) use ( $rl, $context ) {
+                       return $rl->getModule( $module )->getVersionHash( $context );
+               }, $modules );
+               return self::makeHash( implode( $hashes ) );
+       }
+
        /**
         * Output a response to a load request, including the content-type header.
         *
         * @param ResourceLoaderContext $context Context in which a response should be formed
         */
        public function respond( ResourceLoaderContext $context ) {
-               // Use file cache if enabled and available...
-               if ( $this->config->get( 'UseFileCache' ) ) {
-                       $fileCache = ResourceFileCache::newFromContext( $context );
-                       if ( $this->tryRespondFromFileCache( $fileCache, $context ) ) {
-                               return; // output handled
-                       }
-               }
-
                // Buffer output to catch warnings. Normally we'd use ob_clean() on the
                // top-level output buffer to clear warnings, but that breaks when ob_gzhandler
                // is used: ob_clean() will clear the GZIP header in that case and it won't come
@@ -597,7 +662,7 @@ class ResourceLoader {
                                // Do not allow private modules to be loaded from the web.
                                // This is a security issue, see bug 34907.
                                if ( $module->getGroup() === 'private' ) {
-                                       wfDebugLog( 'resourceloader', __METHOD__ . ": request for private module '$name' denied" );
+                                       $this->logger->debug( "Request for private module '$name' denied" );
                                        $this->errors[] = "Cannot show private module \"$name\"";
                                        continue;
                                }
@@ -607,37 +672,46 @@ class ResourceLoader {
                        }
                }
 
-               // Preload information needed to the mtime calculation below
                try {
+                       // Preload for getCombinedVersion()
                        $this->preloadModuleInfo( array_keys( $modules ), $context );
                } catch ( Exception $e ) {
                        MWExceptionHandler::logException( $e );
-                       wfDebugLog( 'resourceloader', __METHOD__ . ": preloading module info failed: $e" );
+                       $this->logger->warning( 'Preloading module info failed: {exception}', array(
+                               'exception' => $e
+                       ) );
                        $this->errors[] = self::formatExceptionNoComment( $e );
                }
 
-               // To send Last-Modified and support If-Modified-Since, we need to detect
-               // the last modified time
-               $mtime = wfTimestamp( TS_UNIX, $this->config->get( 'CacheEpoch' ) );
-               foreach ( $modules as $module ) {
-                       /**
-                        * @var $module ResourceLoaderModule
-                        */
-                       try {
-                               // Calculate maximum modified time
-                               $mtime = max( $mtime, $module->getModifiedTime( $context ) );
-                       } catch ( Exception $e ) {
-                               MWExceptionHandler::logException( $e );
-                               wfDebugLog( 'resourceloader', __METHOD__ . ": calculating maximum modified time failed: $e" );
-                               $this->errors[] = self::formatExceptionNoComment( $e );
-                       }
+               // Combine versions to propagate cache invalidation
+               $versionHash = '';
+               try {
+                       $versionHash = $this->getCombinedVersion( $context, array_keys( $modules ) );
+               } catch ( Exception $e ) {
+                       MWExceptionHandler::logException( $e );
+                       $this->logger->warning( 'Calculating version hash failed: {exception}', array(
+                               'exception' => $e
+                       ) );
+                       $this->errors[] = self::formatExceptionNoComment( $e );
                }
 
-               // If there's an If-Modified-Since header, respond with a 304 appropriately
-               if ( $this->tryRespondLastModified( $context, $mtime ) ) {
+               // See RFC 2616 § 3.11 Entity Tags
+               // http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11
+               $etag = 'W/"' . $versionHash . '"';
+
+               // Try the client-side cache first
+               if ( $this->tryRespondNotModified( $context, $etag ) ) {
                        return; // output handled (buffers cleared)
                }
 
+               // Use file cache if enabled and available...
+               if ( $this->config->get( 'UseFileCache' ) ) {
+                       $fileCache = ResourceFileCache::newFromContext( $context );
+                       if ( $this->tryRespondFromFileCache( $fileCache, $context, $etag ) ) {
+                               return; // output handled
+                       }
+               }
+
                // Generate a response
                $response = $this->makeModuleResponse( $context, $modules, $missing );
 
@@ -659,8 +733,7 @@ class ResourceLoader {
                        }
                }
 
-               // Send content type and cache related headers
-               $this->sendResponseHeaders( $context, $mtime, (bool)$this->errors );
+               $this->sendResponseHeaders( $context, $etag, (bool)$this->errors );
 
                // Remove the output buffer and output the response
                ob_end_clean();
@@ -687,13 +760,16 @@ class ResourceLoader {
        }
 
        /**
-        * Send content type and last modified headers to the client.
+        * Send main response headers to the client.
+        *
+        * Deals with Content-Type, CORS (for stylesheets), and caching.
+        *
         * @param ResourceLoaderContext $context
-        * @param string $mtime TS_MW timestamp to use for last-modified
+        * @param string $etag ETag header value
         * @param bool $errors Whether there are errors in the response
         * @return void
         */
-       protected function sendResponseHeaders( ResourceLoaderContext $context, $mtime, $errors ) {
+       protected function sendResponseHeaders( ResourceLoaderContext $context, $etag, $errors ) {
                $rlMaxage = $this->config->get( 'ResourceLoaderMaxage' );
                // If a version wasn't specified we need a shorter expiry time for updates
                // to propagate to clients quickly
@@ -720,7 +796,9 @@ class ResourceLoader {
                } else {
                        header( 'Content-Type: text/javascript; charset=utf-8' );
                }
-               header( 'Last-Modified: ' . wfTimestamp( TS_RFC2822, $mtime ) );
+               // See RFC 2616 § 14.19 ETag
+               // http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19
+               header( 'ETag: ' . $etag );
                if ( $context->getDebug() ) {
                        // Do not cache debug responses
                        header( 'Cache-Control: private, no-cache, must-revalidate' );
@@ -733,42 +811,36 @@ class ResourceLoader {
        }
 
        /**
-        * Respond with 304 Last Modified if appropiate.
+        * Respond with HTTP 304 Not Modified if appropiate.
         *
-        * If there's an If-Modified-Since header, respond with a 304 appropriately
+        * If there's an If-None-Match header, respond with a 304 appropriately
         * and clear out the output buffer. If the client cache is too old then do nothing.
         *
         * @param ResourceLoaderContext $context
-        * @param string $mtime The TS_MW timestamp to check the header against
-        * @return bool True if 304 header sent and output handled
+        * @param string $etag ETag header value
+        * @return bool True if HTTP 304 was sent and output handled
         */
-       protected function tryRespondLastModified( ResourceLoaderContext $context, $mtime ) {
-               // If there's an If-Modified-Since header, respond with a 304 appropriately
-               // Some clients send "timestamp;length=123". Strip the part after the first ';'
-               // so we get a valid timestamp.
-               $ims = $context->getRequest()->getHeader( 'If-Modified-Since' );
+       protected function tryRespondNotModified( ResourceLoaderContext $context, $etag ) {
+               // See RFC 2616 § 14.26 If-None-Match
+               // http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26
+               $clientKeys = $context->getRequest()->getHeader( 'If-None-Match', WebRequest::GETHEADER_LIST );
                // Never send 304s in debug mode
-               if ( $ims !== false && !$context->getDebug() ) {
-                       $imsTS = strtok( $ims, ';' );
-                       if ( $mtime <= wfTimestamp( TS_UNIX, $imsTS ) ) {
-                               // There's another bug in ob_gzhandler (see also the comment at
-                               // the top of this function) that causes it to gzip even empty
-                               // responses, meaning it's impossible to produce a truly empty
-                               // response (because the gzip header is always there). This is
-                               // a problem because 304 responses have to be completely empty
-                               // per the HTTP spec, and Firefox behaves buggily when they're not.
-                               // See also http://bugs.php.net/bug.php?id=51579
-                               // To work around this, we tear down all output buffering before
-                               // sending the 304.
-                               wfResetOutputBuffers( /* $resetGzipEncoding = */ true );
-
-                               header( 'HTTP/1.0 304 Not Modified' );
-                               header( 'Status: 304 Not Modified' );
-
-                               // Send content type and cache headers
-                               $this->sendResponseHeaders( $context, $mtime, false );
-                               return true;
-                       }
+               if ( $clientKeys !== false && !$context->getDebug() && in_array( $etag, $clientKeys ) ) {
+                       // There's another bug in ob_gzhandler (see also the comment at
+                       // the top of this function) that causes it to gzip even empty
+                       // responses, meaning it's impossible to produce a truly empty
+                       // response (because the gzip header is always there). This is
+                       // a problem because 304 responses have to be completely empty
+                       // per the HTTP spec, and Firefox behaves buggily when they're not.
+                       // See also http://bugs.php.net/bug.php?id=51579
+                       // To work around this, we tear down all output buffering before
+                       // sending the 304.
+                       wfResetOutputBuffers( /* $resetGzipEncoding = */ true );
+
+                       HttpStatus::header( 304 );
+
+                       $this->sendResponseHeaders( $context, $etag, false );
+                       return true;
                }
                return false;
        }
@@ -778,10 +850,13 @@ class ResourceLoader {
         *
         * @param ResourceFileCache $fileCache Cache object for this request URL
         * @param ResourceLoaderContext $context Context in which to generate a response
+        * @param string $etag ETag header value
         * @return bool If this found a cache file and handled the response
         */
        protected function tryRespondFromFileCache(
-               ResourceFileCache $fileCache, ResourceLoaderContext $context
+               ResourceFileCache $fileCache,
+               ResourceLoaderContext $context,
+               $etag
        ) {
                $rlMaxage = $this->config->get( 'ResourceLoaderMaxage' );
                // Buffer output to catch warnings.
@@ -801,18 +876,14 @@ class ResourceLoader {
                }
                if ( $good ) {
                        $ts = $fileCache->cacheTimestamp();
-                       // If there's an If-Modified-Since header, respond with a 304 appropriately
-                       if ( $this->tryRespondLastModified( $context, $ts ) ) {
-                               return false; // output handled (buffers cleared)
-                       }
+                       // Send content type and cache headers
+                       $this->sendResponseHeaders( $context, $etag, false );
+                       $response = $fileCache->fetchText();
                        // Capture any PHP warnings from the output buffer and append them to the
                        // response in a comment if we're in debug mode.
                        if ( $context->getDebug() && strlen( $warnings = ob_get_contents() ) ) {
-                               $response = "/*\n$warnings\n*/\n" . $response;
+                               $response = self::makeComment( $warnings ) . $response;
                        }
-                       // Send content type and cache headers
-                       $this->sendResponseHeaders( $context, $ts, false );
-                       $response = $fileCache->fetchText();
                        // Remove the output buffer and output the response
                        ob_end_clean();
                        echo $response . "\n/* Cached {$ts} */";
@@ -899,17 +970,14 @@ MESSAGE;
                // Pre-fetch blobs
                if ( $context->shouldIncludeMessages() ) {
                        try {
-                               $blobs = $this->blobStore->get( $this, $modules, $context->getLanguage() );
+                               $this->blobStore->get( $this, $modules, $context->getLanguage() );
                        } catch ( Exception $e ) {
                                MWExceptionHandler::logException( $e );
-                               wfDebugLog(
-                                       'resourceloader',
-                                       __METHOD__ . ": pre-fetching blobs from MessageBlobStore failed: $e"
-                               );
+                               $this->logger->warning( 'Prefetching MessageBlobStore failed: {exception}', array(
+                                       'exception' => $e
+                               ) );
                                $this->errors[] = self::formatExceptionNoComment( $e );
                        }
-               } else {
-                       $blobs = array();
                }
 
                foreach ( $missing as $name ) {
@@ -919,79 +987,13 @@ MESSAGE;
                // Generate output
                $isRaw = false;
                foreach ( $modules as $name => $module ) {
-                       /**
-                        * @var $module ResourceLoaderModule
-                        */
-
                        try {
-                               $scripts = '';
-                               if ( $context->shouldIncludeScripts() ) {
-                                       // If we are in debug mode, we'll want to return an array of URLs if possible
-                                       // However, we can't do this if the module doesn't support it
-                                       // We also can't do this if there is an only= parameter, because we have to give
-                                       // the module a way to return a load.php URL without causing an infinite loop
-                                       if ( $context->getDebug() && !$context->getOnly() && $module->supportsURLLoading() ) {
-                                               $scripts = $module->getScriptURLsForDebug( $context );
-                                       } else {
-                                               $scripts = $module->getScript( $context );
-                                               // rtrim() because there are usually a few line breaks
-                                               // after the last ';'. A new line at EOF, a new line
-                                               // added by ResourceLoaderFileModule::readScriptFiles, etc.
-                                               if ( is_string( $scripts )
-                                                       && strlen( $scripts )
-                                                       && substr( rtrim( $scripts ), -1 ) !== ';'
-                                               ) {
-                                                       // Append semicolon to prevent weird bugs caused by files not
-                                                       // terminating their statements right (bug 27054)
-                                                       $scripts .= ";\n";
-                                               }
-                                       }
-                               }
-                               // Styles
-                               $styles = array();
-                               if ( $context->shouldIncludeStyles() ) {
-                                       // Don't create empty stylesheets like array( '' => '' ) for modules
-                                       // that don't *have* any stylesheets (bug 38024).
-                                       $stylePairs = $module->getStyles( $context );
-                                       if ( count( $stylePairs ) ) {
-                                               // If we are in debug mode without &only= set, we'll want to return an array of URLs
-                                               // See comment near shouldIncludeScripts() for more details
-                                               if ( $context->getDebug() && !$context->getOnly() && $module->supportsURLLoading() ) {
-                                                       $styles = array(
-                                                               'url' => $module->getStyleURLsForDebug( $context )
-                                                       );
-                                               } else {
-                                                       // Minify CSS before embedding in mw.loader.implement call
-                                                       // (unless in debug mode)
-                                                       if ( !$context->getDebug() ) {
-                                                               foreach ( $stylePairs as $media => $style ) {
-                                                                       // Can be either a string or an array of strings.
-                                                                       if ( is_array( $style ) ) {
-                                                                               $stylePairs[$media] = array();
-                                                                               foreach ( $style as $cssText ) {
-                                                                                       if ( is_string( $cssText ) ) {
-                                                                                               $stylePairs[$media][] = $this->filter( 'minify-css', $cssText );
-                                                                                       }
-                                                                               }
-                                                                       } elseif ( is_string( $style ) ) {
-                                                                               $stylePairs[$media] = $this->filter( 'minify-css', $style );
-                                                                       }
-                                                               }
-                                                       }
-                                                       // Wrap styles into @media groups as needed and flatten into a numerical array
-                                                       $styles = array(
-                                                               'css' => self::makeCombinedStyles( $stylePairs )
-                                                       );
-                                               }
-                                       }
-                               }
-
-                               // Messages
-                               $messagesBlob = isset( $blobs[$name] ) ? $blobs[$name] : '{}';
+                               $content = $module->getModuleContent( $context );
 
                                // Append output
                                switch ( $context->getOnly() ) {
                                        case 'scripts':
+                                               $scripts = $content['scripts'];
                                                if ( is_string( $scripts ) ) {
                                                        // Load scripts raw...
                                                        $out .= $scripts;
@@ -1001,34 +1003,27 @@ MESSAGE;
                                                }
                                                break;
                                        case 'styles':
+                                               $styles = $content['styles'];
                                                // We no longer seperate into media, they are all combined now with
                                                // custom media type groups into @media .. {} sections as part of the css string.
                                                // Module returns either an empty array or a numerical array with css strings.
                                                $out .= isset( $styles['css'] ) ? implode( '', $styles['css'] ) : '';
                                                break;
-                                       case 'messages':
-                                               $out .= self::makeMessageSetScript( new XmlJsCode( $messagesBlob ) );
-                                               break;
-                                       case 'templates':
-                                               $out .= Xml::encodeJsCall(
-                                                       'mw.templates.set',
-                                                       array( $name, (object)$module->getTemplates() ),
-                                                       ResourceLoader::inDebugMode()
-                                               );
-                                               break;
                                        default:
                                                $out .= self::makeLoaderImplementScript(
                                                        $name,
-                                                       $scripts,
-                                                       $styles,
-                                                       new XmlJsCode( $messagesBlob ),
-                                                       $module->getTemplates()
+                                                       isset( $content['scripts'] ) ? $content['scripts'] : '',
+                                                       isset( $content['styles'] ) ? $content['styles'] : array(),
+                                                       isset( $content['messagesBlob'] ) ? new XmlJsCode( $content['messagesBlob'] ) : array(),
+                                                       isset( $content['templates'] ) ? $content['templates'] : array()
                                                );
                                                break;
                                }
                        } catch ( Exception $e ) {
                                MWExceptionHandler::logException( $e );
-                               wfDebugLog( 'resourceloader', __METHOD__ . ": generating module package failed: $e" );
+                               $this->logger->warning( 'Generating module package failed: {exception}', array(
+                                       'exception' => $e
+                               ) );
                                $this->errors[] = self::formatExceptionNoComment( $e );
 
                                // Respond to client with error-state instead of module implementation
@@ -1059,11 +1054,19 @@ MESSAGE;
                        }
                }
 
+               $enableFilterCache = true;
+               if ( count( $modules ) === 1 && reset( $modules ) instanceof ResourceLoaderUserTokensModule ) {
+                       // If we're building the embedded user.tokens, don't cache (T84960)
+                       $enableFilterCache = false;
+               }
+
                if ( !$context->getDebug() ) {
                        if ( $context->getOnly() === 'styles' ) {
                                $out = $this->filter( 'minify-css', $out );
                        } else {
-                               $out = $this->filter( 'minify-js', $out );
+                               $out = $this->filter( 'minify-js', $out, array(
+                                       'cache' => $enableFilterCache
+                               ) );
                        }
                }
 
@@ -1087,8 +1090,8 @@ MESSAGE;
         * @throws MWException
         * @return string
         */
-       public static function makeLoaderImplementScript( $name, $scripts, $styles,
-               $messages, $templates
+       public static function makeLoaderImplementScript(
+               $name, $scripts, $styles, $messages, $templates
        ) {
                if ( is_string( $scripts ) ) {
                        $scripts = new XmlJsCode( "function ( $, jQuery ) {\n{$scripts}\n}" );
@@ -1196,7 +1199,7 @@ MESSAGE;
         * and $group as supplied.
         *
         * @param string $name Module name
-        * @param int $version Module version number as a timestamp
+        * @param string $version Module version hash
         * @param array $dependencies List of module names on which this module depends
         * @param string $group Group which the module is in.
         * @param string $source Source of the module, or 'local' if not foreign.
@@ -1268,7 +1271,7 @@ MESSAGE;
         *        Registers modules with the given names and parameters.
         *
         * @param string $name Module name
-        * @param int $version Module version number as a timestamp
+        * @param string $version Module version hash
         * @param array $dependencies List of module names on which this module depends
         * @param string $group Group which the module is in
         * @param string $source Source of the module, or 'local' if not foreign
@@ -1460,7 +1463,7 @@ MESSAGE;
 
        /**
         * Build a load.php URL
-        * @deprecated since 1.24, use createLoaderURL instead
+        * @deprecated since 1.24 Use createLoaderURL() instead
         * @param array $modules Array of module names (strings)
         * @param string $lang Language code
         * @param string $skin Skin name
index a6a7d34..cee7035 100644 (file)
@@ -22,6 +22,8 @@
  * @author Roan Kattouw
  */
 
+use MediaWiki\Logger\LoggerFactory;
+
 /**
  * Object passed around to modules which contains information about the state
  * of a specific loader request
@@ -123,7 +125,8 @@ class ResourceLoaderContext {
         */
        public static function newDummyContext() {
                return new self( new ResourceLoader(
-                       ConfigFactory::getDefaultInstance()->makeConfig( 'main' )
+                       ConfigFactory::getDefaultInstance()->makeConfig( 'main' ),
+                       LoggerFactory::getInstance( 'resourceloader' )
                ), new FauxRequest( array() ) );
        }
 
@@ -227,6 +230,8 @@ class ResourceLoaderContext {
        }
 
        /**
+        * @see ResourceLoaderModule::getVersionHash
+        * @see OutputPage::makeResourceLoaderLink
         * @return string|null
         */
        public function getVersion() {
@@ -285,7 +290,7 @@ class ResourceLoaderContext {
                                return $this->imageObj;
                        }
 
-                       $image = $module->getImage( $this->image );
+                       $image = $module->getImage( $this->image, $this );
                        if ( !$image ) {
                                return $this->imageObj;
                        }
@@ -314,7 +319,7 @@ class ResourceLoaderContext {
         * @return bool
         */
        public function shouldIncludeMessages() {
-               return is_null( $this->getOnly() ) || $this->getOnly() === 'messages';
+               return is_null( $this->getOnly() );
        }
 
        /**
index d79174c..d0273c2 100644 (file)
@@ -66,24 +66,14 @@ class ResourceLoaderEditToolbarModule extends ResourceLoaderFileModule {
 
        /**
         * @param ResourceLoaderContext $context
-        * @return int UNIX timestamp
-        */
-       public function getModifiedTime( ResourceLoaderContext $context ) {
-               return max(
-                       parent::getModifiedTime( $context ),
-                       $this->getHashMtime( $context )
-               );
-       }
-
-       /**
-        * @param ResourceLoaderContext $context
-        * @return string Hash
+        * @return array
         */
-       public function getModifiedHash( ResourceLoaderContext $context ) {
-               return md5(
-                       parent::getModifiedHash( $context ) .
-                       serialize( $this->getLessVars( $context ) )
+       public function getDefinitionSummary( ResourceLoaderContext $context ) {
+               $summary = parent::getDefinitionSummary( $context );
+               $summary[] = array(
+                       'lessVars' => $this->getLessVars( $context ),
                );
+               return $summary;
        }
 
        /**
index 671098e..e6c9bd0 100644 (file)
@@ -143,15 +143,6 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
         */
        protected $hasGeneratedStyles = false;
 
-       /**
-        * @var array Cache for mtime
-        * @par Usage:
-        * @code
-        * array( [hash] => [mtime], [hash] => [mtime], ... )
-        * @endcode
-        */
-       protected $modifiedTime = array();
-
        /**
         * @var array Place where readStyleFile() tracks file dependencies
         * @par Usage:
@@ -281,8 +272,9 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                                        $this->{$member} = $option;
                                        break;
                                // Single strings
-                               case 'group':
                                case 'position':
+                                       $this->isPositionDefined = true;
+                               case 'group':
                                case 'skipFunction':
                                        $this->{$member} = (string)$option;
                                        break;
@@ -486,10 +478,10 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
 
        /**
         * Gets list of names of modules this module depends on.
-        *
+        * @param ResourceLoaderContext context
         * @return array List of module names
         */
-       public function getDependencies() {
+       public function getDependencies( ResourceLoaderContext $context = null ) {
                return $this->dependencies;
        }
 
@@ -522,7 +514,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
        }
 
        /**
-        * Get the last modified timestamp of this module.
+        * Helper method to gather file mtimes for getDefinitionSummary.
         *
         * Last modified timestamps are calculated from the highest last modified
         * timestamp of this module's constituent files as well as the files it
@@ -530,16 +522,11 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
         * calculations on files relevant to the given language, skin and debug
         * mode.
         *
-        * @param ResourceLoaderContext $context Context in which to calculate
-        *     the modified time
-        * @return int UNIX timestamp
         * @see ResourceLoaderModule::getFileDependencies
+        * @param ResourceLoaderContext $context
+        * @return array
         */
-       public function getModifiedTime( ResourceLoaderContext $context ) {
-               if ( isset( $this->modifiedTime[$context->getHash()] ) ) {
-                       return $this->modifiedTime[$context->getHash()];
-               }
-
+       protected function getFileMtimes( ResourceLoaderContext $context ) {
                $files = array();
 
                // Flatten style files into $files
@@ -578,22 +565,13 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                // entry point Less file we already know about.
                $files = array_values( array_unique( $files ) );
 
-               // If a module is nothing but a list of dependencies, we need to avoid
-               // giving max() an empty array
-               if ( count( $files ) === 0 ) {
-                       $this->modifiedTime[$context->getHash()] = 1;
-                       return $this->modifiedTime[$context->getHash()];
-               }
-
-               $filesMtime = max( array_map( array( __CLASS__, 'safeFilemtime' ), $files ) );
-
-               $this->modifiedTime[$context->getHash()] = max(
-                       $filesMtime,
-                       $this->getMsgBlobMtime( $context->getLanguage() ),
-                       $this->getDefinitionMtime( $context )
-               );
-
-               return $this->modifiedTime[$context->getHash()];
+               // Don't max() because older files are significant.
+               // While the associated file names are significant, that is already taken care of by the
+               // definition summary. Avoid creating an array keyed by file path here because those are
+               // absolute file paths. Including that would needlessly cause global cache invalidation
+               // when the MediaWiki installation path changes (which is quite common in cases like
+               // Wikimedia where the installation path reflects the MediaWiki branch name).
+               return array_map( array( __CLASS__, 'safeFilemtime' ), $files );
        }
 
        /**
@@ -604,6 +582,8 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
         */
        public function getDefinitionSummary( ResourceLoaderContext $context ) {
                $summary = parent::getDefinitionSummary( $context );
+
+               $options = array();
                foreach ( array(
                        'scripts',
                        'debugScripts',
@@ -619,18 +599,24 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                        'group',
                        'position',
                        'skipFunction',
+                       // FIXME: localBasePath includes the MediaWiki installation path and
+                       // needlessly causes cache invalidation.
                        'localBasePath',
                        'remoteBasePath',
                        'debugRaw',
                        'raw',
                ) as $member ) {
-                       $summary[$member] = $this->{$member};
+                       $options[$member] = $this->{$member};
                };
+
+               $summary[] = array(
+                       'options' => $options,
+                       'fileMtimes' => $this->getFileMTimes( $context ),
+                       'msgBlobMtime' => $this->getMsgBlobMtime( $context->getLanguage() ),
+               );
                return $summary;
        }
 
-       /* Protected Methods */
-
        /**
         * @param string|ResourceLoaderFilePath $path
         * @return string
index 53e0815..2caca87 100644 (file)
@@ -28,7 +28,7 @@
  */
 class ResourceLoaderImageModule extends ResourceLoaderModule {
 
-       private $definition = null;
+       protected $definition = null;
 
        /**
         * Local base path, see __construct()
@@ -45,6 +45,9 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
        protected $selectorWithVariant = '.{prefix}-{name}-{variant}';
        protected $targets = array( 'desktop', 'mobile' );
 
+       /** @var string Position on the page to load this module at */
+       protected $position = 'bottom';
+
        /**
         * Constructs a new module from an options array.
         *
@@ -70,21 +73,27 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         *         'selectorWithVariant' => [CSS selector template, variables: {prefix} {name} {variant}],
         *         // List of variants that may be used for the image files
         *         'variants' => array(
+        *             [theme name] => array(
         *                 [variant name] => array(
         *                     'color' => [color string, e.g. '#ffff00'],
         *                     'global' => [boolean, if true, this variant is available
         *                                  for all images of this type],
         *                 ),
+        *                 ...
+        *             ),
         *             ...
         *         ),
         *         // List of image files and their options
         *         'images' => array(
+        *             [theme name] => array(
         *                 [file path string],
         *                 [file path string] => array(
         *                     'name' => [image name string, defaults to file name],
         *                     'variants' => [array of variant name strings, variants
         *                                    available for this image],
         *                 ),
+        *                 ...
+        *             ),
         *             ...
         *         ),
         *     )
@@ -100,7 +109,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
        /**
         * Parse definition and external JSON data, if referenced.
         */
-       private function ensureStuffLoaded() {
+       protected function loadFromDefinition() {
                if ( $this->definition === null ) {
                        return;
                }
@@ -148,9 +157,22 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
                                                        "Invalid list error. '$option' given, array expected."
                                                );
                                        }
+                                       if ( !isset( $option['default'] ) ) {
+                                               // Backwards compatibility
+                                               $option = array( 'default' => $option );
+                                       }
+                                       foreach ( $option as $skin => $data ) {
+                                               if ( !is_array( $option ) ) {
+                                                       throw new InvalidArgumentException(
+                                                               "Invalid list error. '$option' given, array expected."
+                                                       );
+                                               }
+                                       }
                                        $this->{$member} = $option;
                                        break;
 
+                               case 'position':
+                                       $this->isPositionDefined = true;
                                case 'prefix':
                                case 'selectorWithoutVariant':
                                case 'selectorWithVariant':
@@ -168,7 +190,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         * @return string
         */
        public function getPrefix() {
-               $this->ensureStuffLoaded();
+               $this->loadFromDefinition();
                return $this->prefix;
        }
 
@@ -177,7 +199,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         * @return string
         */
        public function getSelectors() {
-               $this->ensureStuffLoaded();
+               $this->loadFromDefinition();
                return array(
                        'selectorWithoutVariant' => $this->selectorWithoutVariant,
                        'selectorWithVariant' => $this->selectorWithVariant,
@@ -187,33 +209,43 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
        /**
         * Get a ResourceLoaderImage object for given image.
         * @param string $name Image name
+        * @param ResourceLoaderContext $context
         * @return ResourceLoaderImage|null
         */
-       public function getImage( $name ) {
-               $this->ensureStuffLoaded();
-               $images = $this->getImages();
+       public function getImage( $name, ResourceLoaderContext $context ) {
+               $this->loadFromDefinition();
+               $images = $this->getImages( $context );
                return isset( $images[$name] ) ? $images[$name] : null;
        }
 
        /**
         * Get ResourceLoaderImage objects for all images.
+        * @param ResourceLoaderContext $context
         * @return ResourceLoaderImage[] Array keyed by image name
         */
-       public function getImages() {
+       public function getImages( ResourceLoaderContext $context ) {
+               $skin = $context->getSkin();
                if ( !isset( $this->imageObjects ) ) {
-                       $this->ensureStuffLoaded();
+                       $this->loadFromDefinition();
                        $this->imageObjects = array();
-
-                       foreach ( $this->images as $name => $options ) {
+               }
+               if ( !isset( $this->imageObjects[ $skin ] ) ) {
+                       $this->imageObjects[ $skin ] = array();
+                       if ( !isset( $this->images[ $skin ] ) ) {
+                               $this->images[ $skin ] = isset( $this->images[ 'default' ] ) ?
+                                       $this->images[ 'default' ] :
+                                       array();
+                       }
+                       foreach ( $this->images[ $skin ] as $name => $options ) {
                                $fileDescriptor = is_string( $options ) ? $options : $options['file'];
 
                                $allowedVariants = array_merge(
                                        is_array( $options ) && isset( $options['variants'] ) ? $options['variants'] : array(),
-                                       $this->getGlobalVariants()
+                                       $this->getGlobalVariants( $context )
                                );
-                               if ( isset( $this->variants ) ) {
+                               if ( isset( $this->variants[ $skin ] ) ) {
                                        $variantConfig = array_intersect_key(
-                                               $this->variants,
+                                               $this->variants[ $skin ],
                                                array_fill_keys( $allowedVariants, true )
                                        );
                                } else {
@@ -227,33 +259,40 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
                                        $this->localBasePath,
                                        $variantConfig
                                );
-                               $this->imageObjects[ $image->getName() ] = $image;
+                               $this->imageObjects[ $skin ][ $image->getName() ] = $image;
                        }
                }
 
-               return $this->imageObjects;
+               return $this->imageObjects[ $skin ];
        }
 
        /**
         * Get list of variants in this module that are 'global', i.e., available
         * for every image regardless of image options.
+        * @param ResourceLoaderContext $context
         * @return string[]
         */
-       public function getGlobalVariants() {
+       public function getGlobalVariants( ResourceLoaderContext $context ) {
+               $skin = $context->getSkin();
                if ( !isset( $this->globalVariants ) ) {
-                       $this->ensureStuffLoaded();
+                       $this->loadFromDefinition();
                        $this->globalVariants = array();
-
-                       if ( isset( $this->variants ) ) {
-                               foreach ( $this->variants as $name => $config ) {
-                                       if ( isset( $config['global'] ) && $config['global'] ) {
-                                               $this->globalVariants[] = $name;
-                                       }
+               }
+               if ( !isset( $this->globalVariants[ $skin ] ) ) {
+                       $this->globalVariants[ $skin ] = array();
+                       if ( !isset( $this->variants[ $skin ] ) ) {
+                               $this->variants[ $skin ] = isset( $this->variants[ 'default' ] ) ?
+                                       $this->variants[ 'default' ] :
+                                       array();
+                       }
+                       foreach ( $this->variants[ $skin ] as $name => $config ) {
+                               if ( isset( $config['global'] ) && $config['global'] ) {
+                                       $this->globalVariants[ $skin ][] = $name;
                                }
                        }
                }
 
-               return $this->globalVariants;
+               return $this->globalVariants[ $skin ];
        }
 
        /**
@@ -261,14 +300,14 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         * @return array
         */
        public function getStyles( ResourceLoaderContext $context ) {
-               $this->ensureStuffLoaded();
+               $this->loadFromDefinition();
 
                // Build CSS rules
                $rules = array();
                $script = $context->getResourceLoader()->getLoadScript( $this->getSource() );
                $selectors = $this->getSelectors();
 
-               foreach ( $this->getImages() as $name => $image ) {
+               foreach ( $this->getImages( $context ) as $name => $image ) {
                        $declarations = $this->getCssDeclarations(
                                $image->getDataUri( $context, null, 'original' ),
                                $image->getUrl( $context, $script, null, 'rasterized' )
@@ -341,7 +380,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         * @return array
         */
        public function getDefinitionSummary( ResourceLoaderContext $context ) {
-               $this->ensureStuffLoaded();
+               $this->loadFromDefinition();
                $summary = parent::getDefinitionSummary( $context );
                foreach ( array(
                        'localBasePath',
@@ -364,19 +403,16 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         * @return int UNIX timestamp
         */
        public function getModifiedTime( ResourceLoaderContext $context ) {
-               $this->ensureStuffLoaded();
+               $this->loadFromDefinition();
                $files = array();
-               foreach ( $this->getImages() as $name => $image ) {
+               foreach ( $this->getImages( $context ) as $name => $image ) {
                        $files[] = $image->getPath( $context );
                }
 
                $files = array_values( array_unique( $files ) );
                $filesMtime = max( array_map( array( __CLASS__, 'safeFilemtime' ), $files ) );
 
-               return max(
-                       $filesMtime,
-                       $this->getDefinitionMtime( $context )
-               );
+               return $filesMtime;
        }
 
        /**
@@ -400,4 +436,17 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
 
                return $localBasePath;
        }
+
+       /**
+        * @return string
+        */
+       public function getPosition() {
+               $this->loadFromDefinition();
+               return $this->position;
+       }
+
+       public function isPositionDefault() {
+               $this->loadFromDefinition();
+               return parent::isPositionDefault();
+       }
 }
diff --git a/includes/resourceloader/ResourceLoaderJqueryMsgModule.php b/includes/resourceloader/ResourceLoaderJqueryMsgModule.php
new file mode 100644 (file)
index 0000000..b905781
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+/**
+ * ResourceLoader module for mediawiki.jqueryMsg that provides generated data.
+ *
+ * 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 Brad Jorsch
+ */
+
+/**
+ * ResourceLoader module for mediawiki.jqueryMsg and its generated data
+ */
+class ResourceLoaderJqueryMsgModule extends ResourceLoaderFileModule {
+
+       /**
+        * @param ResourceLoaderContext $context
+        * @return string JavaScript code
+        */
+       public function getScript( ResourceLoaderContext $context ) {
+               $fileScript = parent::getScript( $context );
+
+               $tagData = Sanitizer::getRecognizedTagData();
+               $parserDefaults = array();
+               $parserDefaults['allowedHtmlElements'] = array_merge(
+                       array_keys( $tagData['htmlpairs'] ),
+                       array_diff(
+                               array_keys( $tagData['htmlsingle'] ),
+                               array_keys( $tagData['htmlsingleonly'] )
+                       )
+               );
+
+               $dataScript = Xml::encodeJsCall( 'mw.jqueryMsg.setParserDefaults', array( $parserDefaults ) );
+
+               return $fileScript . $dataScript;
+       }
+
+       /**
+        * @param ResourceLoaderContext $context
+        * @return array|null
+        */
+       public function getDefinitionSummary( ResourceLoaderContext $context ) {
+               $summary = parent::getDefinitionSummary( $context );
+               $summary[] = array(
+                       'sanitizerData' => Sanitizer::getRecognizedTagData()
+               );
+               return $summary;
+       }
+}
index 1239453..be15008 100644 (file)
@@ -62,14 +62,6 @@ class ResourceLoaderLanguageDataModule extends ResourceLoaderModule {
                );
        }
 
-       /**
-        * @param ResourceLoaderContext $context
-        * @return int UNIX timestamp
-        */
-       public function getModifiedTime( ResourceLoaderContext $context ) {
-               return max( 1, $this->getHashMtime( $context ) );
-       }
-
        /**
         * @param ResourceLoaderContext $context
         * @return string Hash
@@ -79,9 +71,10 @@ class ResourceLoaderLanguageDataModule extends ResourceLoaderModule {
        }
 
        /**
+        * @param ResourceLoaderContext $context
         * @return array
         */
-       public function getDependencies() {
+       public function getDependencies( ResourceLoaderContext $context = null ) {
                return array( 'mediawiki.language.init' );
        }
 }
index 55b1f4b..827a573 100644 (file)
@@ -60,16 +60,12 @@ class ResourceLoaderLanguageNamesModule extends ResourceLoaderModule {
                );
        }
 
-       public function getDependencies() {
-               return array( 'mediawiki.language.init' );
-       }
-
        /**
         * @param ResourceLoaderContext $context
-        * @return int UNIX timestamp
+        * @return array
         */
-       public function getModifiedTime( ResourceLoaderContext $context ) {
-               return max( 1, $this->getHashMtime( $context ) );
+       public function getDependencies( ResourceLoaderContext $context = null ) {
+               return array( 'mediawiki.language.init' );
        }
 
        /**
index d1b024f..ec7ed70 100644 (file)
@@ -29,7 +29,6 @@ abstract class ResourceLoaderModule {
        # Type of resource
        const TYPE_SCRIPTS = 'scripts';
        const TYPE_STYLES = 'styles';
-       const TYPE_MESSAGES = 'messages';
        const TYPE_COMBINED = 'combined';
 
        # sitewide core module like a skin file or jQuery component
@@ -63,6 +62,14 @@ abstract class ResourceLoaderModule {
        protected $fileDeps = array();
        // In-object cache for message blob mtime
        protected $msgBlobMtime = array();
+       // In-object cache for version hash
+       protected $versionHash = array();
+       // In-object cache for module content
+       protected $contents = array();
+
+       // Whether the position returned by getPosition() is defined in the module configuration
+       // and not a default value
+       protected $isPositionDefined = false;
 
        /**
         * @var Config
@@ -284,6 +291,19 @@ abstract class ResourceLoaderModule {
                return 'bottom';
        }
 
+       /**
+        * Whether the position returned by getPosition() is a default value or comes from the module
+        * definition. This method is meant to be short-lived, and is only useful until classes added via
+        * addModuleStyles with a default value define an explicit position. See getModuleStyles() in
+        * OutputPage for the related migration warning.
+        *
+        * @return bool
+        * @since  1.26
+        */
+       public function isPositionDefault() {
+               return !$this->isPositionDefined;
+       }
+
        /**
         * Whether this module's JS expects to work without the client-side ResourceLoader module.
         * Returning true from this function will prevent mw.loader.state() call from being
@@ -313,9 +333,14 @@ abstract class ResourceLoaderModule {
         *
         * To add dependencies dynamically on the client side, use a custom
         * loader script, see getLoaderScript()
+        *
+        * Note: It is expected that $context will be made non-optional in the near
+        * future.
+        *
+        * @param ResourceLoaderContext $context
         * @return array List of module names as strings
         */
-       public function getDependencies() {
+       public function getDependencies( ResourceLoaderContext $context = null ) {
                // Stub, override expected
                return array();
        }
@@ -385,8 +410,7 @@ abstract class ResourceLoaderModule {
        }
 
        /**
-        * Get the last modification timestamp of the message blob for this
-        * module in a given language.
+        * Get the last modification timestamp of the messages in this module for a given language.
         * @param string $lang Language code
         * @return int UNIX timestamp
         */
@@ -422,149 +446,280 @@ abstract class ResourceLoaderModule {
                $this->msgBlobMtime[$lang] = $mtime;
        }
 
-       /* Abstract Methods */
-
        /**
-        * Get this module's last modification timestamp for a given
-        * combination of language, skin and debug mode flag. This is typically
-        * the highest of each of the relevant components' modification
-        * timestamps. Whenever anything happens that changes the module's
-        * contents for these parameters, the mtime should increase.
-        *
-        * NOTE: The mtime of the module's messages is NOT automatically included.
-        * If you want this to happen, you'll need to call getMsgBlobMtime()
-        * yourself and take its result into consideration.
+        * Get an array of this module's resources. Ready for serving to the web.
         *
-        * NOTE: The mtime of the module's hash is NOT automatically included.
-        * If your module provides a getModifiedHash() method, you'll need to call getHashMtime()
-        * yourself and take its result into consideration.
-        *
-        * @param ResourceLoaderContext $context Context object
-        * @return int UNIX timestamp
-        */
-       public function getModifiedTime( ResourceLoaderContext $context ) {
-               return 1;
+        * @since 1.26
+        * @param ResourceLoaderContext $context
+        * @return array
+        */
+       public function getModuleContent( ResourceLoaderContext $context ) {
+               $contextHash = $context->getHash();
+               // Cache this expensive operation. This calls builds the scripts, styles, and messages
+               // content which typically involves filesystem and/or database access.
+               if ( !array_key_exists( $contextHash, $this->contents ) ) {
+                       $this->contents[ $contextHash ] = $this->buildContent( $context );
+               }
+               return $this->contents[ $contextHash ];
        }
 
        /**
-        * Helper method for calculating when the module's hash (if it has one) changed.
+        * Bundle all resources attached to this module into an array.
         *
+        * @since 1.26
         * @param ResourceLoaderContext $context
-        * @return int UNIX timestamp
-        */
-       public function getHashMtime( ResourceLoaderContext $context ) {
-               $hash = $this->getModifiedHash( $context );
-               if ( !is_string( $hash ) ) {
-                       return 1;
+        * @return array
+        */
+       final protected function buildContent( ResourceLoaderContext $context ) {
+               $rl = $context->getResourceLoader();
+
+               // Only include properties that are relevant to this context (e.g. only=scripts)
+               // and that are non-empty (e.g. don't include "templates" for modules without
+               // templates). This helps prevent invalidating cache for all modules when new
+               // optional properties are introduced.
+               $content = array();
+
+               // Scripts
+               if ( $context->shouldIncludeScripts() ) {
+                       // If we are in debug mode, we'll want to return an array of URLs if possible
+                       // However, we can't do this if the module doesn't support it
+                       // We also can't do this if there is an only= parameter, because we have to give
+                       // the module a way to return a load.php URL without causing an infinite loop
+                       if ( $context->getDebug() && !$context->getOnly() && $this->supportsURLLoading() ) {
+                               $scripts = $this->getScriptURLsForDebug( $context );
+                       } else {
+                               $scripts = $this->getScript( $context );
+                               // rtrim() because there are usually a few line breaks
+                               // after the last ';'. A new line at EOF, a new line
+                               // added by ResourceLoaderFileModule::readScriptFiles, etc.
+                               if ( is_string( $scripts )
+                                       && strlen( $scripts )
+                                       && substr( rtrim( $scripts ), -1 ) !== ';'
+                               ) {
+                                       // Append semicolon to prevent weird bugs caused by files not
+                                       // terminating their statements right (bug 27054)
+                                       $scripts .= ";\n";
+                               }
+                       }
+                       $content['scripts'] = $scripts;
                }
 
-               // Embed the hash itself in the cache key. This allows for a few nifty things:
-               // - During deployment, servers with old and new versions of the code communicating
-               //   with the same memcached will not override the same key repeatedly increasing
-               //   the timestamp.
-               // - In case of the definition changing and then changing back in a short period of time
-               //   (e.g. in case of a revert or a corrupt server) the old timestamp and client-side cache
-               //   url will be re-used.
-               // - If different context-combinations (e.g. same skin, same language or some combination
-               //   thereof) result in the same definition, they will use the same hash and timestamp.
-               $cache = wfGetCache( CACHE_ANYTHING );
-               $key = wfMemcKey( 'resourceloader', 'hashmtime', $this->getName(), $hash );
-
-               $data = $cache->get( $key );
-               if ( is_int( $data ) && $data > 0 ) {
-                       // We've seen this hash before, re-use the timestamp of when we first saw it.
-                       return $data;
+               // Styles
+               if ( $context->shouldIncludeStyles() ) {
+                       $styles = array();
+                       // Don't create empty stylesheets like array( '' => '' ) for modules
+                       // that don't *have* any stylesheets (bug 38024).
+                       $stylePairs = $this->getStyles( $context );
+                       if ( count( $stylePairs ) ) {
+                               // If we are in debug mode without &only= set, we'll want to return an array of URLs
+                               // See comment near shouldIncludeScripts() for more details
+                               if ( $context->getDebug() && !$context->getOnly() && $this->supportsURLLoading() ) {
+                                       $styles = array(
+                                               'url' => $this->getStyleURLsForDebug( $context )
+                                       );
+                               } else {
+                                       // Minify CSS before embedding in mw.loader.implement call
+                                       // (unless in debug mode)
+                                       if ( !$context->getDebug() ) {
+                                               foreach ( $stylePairs as $media => $style ) {
+                                                       // Can be either a string or an array of strings.
+                                                       if ( is_array( $style ) ) {
+                                                               $stylePairs[$media] = array();
+                                                               foreach ( $style as $cssText ) {
+                                                                       if ( is_string( $cssText ) ) {
+                                                                               $stylePairs[$media][] = $rl->filter( 'minify-css', $cssText );
+                                                                       }
+                                                               }
+                                                       } elseif ( is_string( $style ) ) {
+                                                               $stylePairs[$media] = $rl->filter( 'minify-css', $style );
+                                                       }
+                                               }
+                                       }
+                                       // Wrap styles into @media groups as needed and flatten into a numerical array
+                                       $styles = array(
+                                               'css' => $rl->makeCombinedStyles( $stylePairs )
+                                       );
+                               }
+                       }
+                       $content['styles'] = $styles;
+               }
+
+               // Messages
+               $blobs = $rl->getMessageBlobStore()->get(
+                       $rl,
+                       array( $this->getName() => $this ),
+                       $context->getLanguage()
+               );
+               if ( isset( $blobs[$this->getName()] ) ) {
+                       $content['messagesBlob'] = $blobs[$this->getName()];
+               }
+
+               $templates = $this->getTemplates();
+               if ( $templates ) {
+                       $content['templates'] = $templates;
                }
 
-               $timestamp = time();
-               $cache->set( $key, $timestamp );
-               return $timestamp;
+               return $content;
        }
 
        /**
-        * Get the hash for whatever this module may contain.
+        * Get a string identifying the current version of this module in a given context.
         *
-        * This is the method subclasses should implement if they want to make
-        * use of getHashMTime() inside getModifiedTime().
+        * Whenever anything happens that changes the module's response (e.g. scripts, styles, and
+        * messages) this value must change. This value is used to store module responses in cache.
+        * (Both client-side and server-side.)
         *
-        * @param ResourceLoaderContext $context
-        * @return string|null Hash
-        */
-       public function getModifiedHash( ResourceLoaderContext $context ) {
-               return null;
-       }
-
-       /**
-        * Helper method for calculating when this module's definition summary was last changed.
+        * It is not recommended to override this directly. Use getDefinitionSummary() instead.
+        * If overridden, one must call the parent getVersionHash(), append data and re-hash.
         *
-        * @since 1.23
+        * This method should be quick because it is frequently run by ResourceLoaderStartUpModule to
+        * propagate changes to the client and effectively invalidate cache.
         *
+        * For backward-compatibility, the following optional data providers are automatically included:
+        *
+        * - getModifiedTime()
+        * - getModifiedHash()
+        *
+        * @since 1.26
         * @param ResourceLoaderContext $context
-        * @return int UNIX timestamp
+        * @return string Hash (should use ResourceLoader::makeHash)
         */
-       public function getDefinitionMtime( ResourceLoaderContext $context ) {
-               $summary = $this->getDefinitionSummary( $context );
-               if ( $summary === null ) {
-                       return 1;
-               }
+       public function getVersionHash( ResourceLoaderContext $context ) {
+               // Cache this somewhat expensive operation. Especially because some classes
+               // (e.g. startup module) iterate more than once over all modules to get versions.
+               $contextHash = $context->getHash();
+               if ( !array_key_exists( $contextHash, $this->versionHash ) ) {
 
-               $hash = md5( json_encode( $summary ) );
-               $cache = wfGetCache( CACHE_ANYTHING );
-               $key = wfMemcKey( 'resourceloader', 'moduledefinition', $this->getName(), $hash );
+                       $summary = $this->getDefinitionSummary( $context );
+                       if ( !isset( $summary['_cacheEpoch'] ) ) {
+                               throw new Exception( 'getDefinitionSummary must call parent method' );
+                       }
+                       $str = json_encode( $summary );
 
-               $data = $cache->get( $key );
-               if ( is_int( $data ) && $data > 0 ) {
-                       // We've seen this hash before, re-use the timestamp of when we first saw it.
-                       return $data;
-               }
+                       $mtime = $this->getModifiedTime( $context );
+                       if ( $mtime !== null ) {
+                               // Support: MediaWiki 1.25 and earlier
+                               $str .= strval( $mtime );
+                       }
 
-               wfDebugLog( 'resourceloader', __METHOD__ . ": New definition for module "
-                       . "{$this->getName()} in context \"{$context->getHash()}\"" );
-               // WMF logging for T94810
-               global $wgRequest;
-               if ( isset( $wgRequest ) && $context->getUser() ) {
-                       wfDebugLog( 'resourceloader', __METHOD__ . ": Request with user parameter in "
-                       . "context \"{$context->getHash()}\" from " . $wgRequest->getRequestURL() );
-               }
+                       $mhash = $this->getModifiedHash( $context );
+                       if ( $mhash !== null ) {
+                               // Support: MediaWiki 1.25 and earlier
+                               $str .= strval( $mhash );
+                       }
 
-               $timestamp = time();
-               $cache->set( $key, $timestamp );
-               return $timestamp;
+                       $this->versionHash[ $contextHash ] = ResourceLoader::makeHash( $str );
+               }
+               return $this->versionHash[ $contextHash ];
        }
 
        /**
         * Get the definition summary for this module.
         *
-        * This is the method subclasses should implement if they want to make
-        * use of getDefinitionMTime() inside getModifiedTime().
+        * This is the method subclasses are recommended to use to track values in their
+        * version hash. Call this in getVersionHash() and pass it to e.g. json_encode.
+        *
+        * Subclasses must call the parent getDefinitionSummary() and build on that.
+        * It is recommended that each subclass appends its own new array. This prevents
+        * clashes or accidental overwrites of existing keys and gives each subclass
+        * its own scope for simple array keys.
+        *
+        * @code
+        *     $summary = parent::getDefinitionSummary( $context );
+        *     $summary[] = array(
+        *         'foo' => 123,
+        *         'bar' => 'quux',
+        *     );
+        *     return $summary;
+        * @endcode
         *
         * Return an array containing values from all significant properties of this
-        * module's definition. Be sure to include things that are explicitly ordered,
-        * in their actaul order (bug 37812).
+        * module's definition.
         *
-        * Avoid including things that are insiginificant (e.g. order of message
-        * keys is insignificant and should be sorted to avoid unnecessary cache
-        * invalidation).
+        * Be careful not to normalise too much. Especially preserve the order of things
+        * that carry significance in getScript and getStyles (T39812).
         *
-        * Avoid including things already considered by other methods inside your
-        * getModifiedTime(), such as file mtime timestamps.
+        * Avoid including things that are insiginificant (e.g. order of message keys is
+        * insignificant and should be sorted to avoid unnecessary cache invalidation).
         *
-        * Serialisation is done using json_encode, which means object state is not
-        * taken into account when building the hash. This data structure must only
-        * contain arrays and scalars as values (avoid object instances) which means
-        * it requires abstraction.
+        * This data structure must exclusively contain arrays and scalars as values (avoid
+        * object instances) to allow simple serialisation using json_encode.
         *
-        * @since 1.23
+        * If modules have a hash or timestamp from another source, that may be incuded as-is.
         *
+        * A number of utility methods are available to help you gather data. These are not
+        * called by default and must be included by the subclass' getDefinitionSummary().
+        *
+        * - getMsgBlobMtime()
+        *
+        * @since 1.23
         * @param ResourceLoaderContext $context
         * @return array|null
         */
        public function getDefinitionSummary( ResourceLoaderContext $context ) {
                return array(
-                       'class' => get_class( $this ),
+                       '_class' => get_class( $this ),
+                       '_cacheEpoch' => $this->getConfig()->get( 'CacheEpoch' ),
                );
        }
 
+       /**
+        * Get this module's last modification timestamp for a given context.
+        *
+        * @deprecated since 1.26 Use getDefinitionSummary() instead
+        * @param ResourceLoaderContext $context Context object
+        * @return int|null UNIX timestamp
+        */
+       public function getModifiedTime( ResourceLoaderContext $context ) {
+               return null;
+       }
+
+       /**
+        * Helper method for providing a version hash to getVersionHash().
+        *
+        * @deprecated since 1.26 Use getDefinitionSummary() instead
+        * @param ResourceLoaderContext $context
+        * @return string|null Hash
+        */
+       public function getModifiedHash( ResourceLoaderContext $context ) {
+               return null;
+       }
+
+       /**
+        * Back-compat dummy for old subclass implementations of getModifiedTime().
+        *
+        * This method used to use ObjectCache to track when a hash was first seen. That principle
+        * stems from a time that ResourceLoader could only identify module versions by timestamp.
+        * That is no longer the case. Use getDefinitionSummary() directly.
+        *
+        * @deprecated since 1.26 Superseded by getVersionHash()
+        * @param ResourceLoaderContext $context
+        * @return int UNIX timestamp
+        */
+       public function getHashMtime( ResourceLoaderContext $context ) {
+               if ( !is_string( $this->getModifiedHash( $context ) ) ) {
+                       return 1;
+               }
+               // Dummy that is > 1
+               return 2;
+       }
+
+       /**
+        * Back-compat dummy for old subclass implementations of getModifiedTime().
+        *
+        * @since 1.23
+        * @deprecated since 1.26 Superseded by getVersionHash()
+        * @param ResourceLoaderContext $context
+        * @return int UNIX timestamp
+        */
+       public function getDefinitionMtime( ResourceLoaderContext $context ) {
+               if ( $this->getDefinitionSummary( $context ) === null ) {
+                       return 1;
+               }
+               // Dummy that is > 1
+               return 2;
+       }
+
        /**
         * Check whether this module is known to be empty. If a child class
         * has an easy and cheap way to determine that this module is
@@ -608,7 +763,7 @@ abstract class ResourceLoaderModule {
                        } catch ( Exception $e ) {
                                // We'll save this to cache to avoid having to validate broken JS over and over...
                                $err = $e->getMessage();
-                               $result = "throw new Error(" . Xml::encodeJsVar( "JavaScript parse error: $err" ) . ");";
+                               $result = "mw.log.error(" . Xml::encodeJsVar( "JavaScript parse error: $err" ) . ");";
                        }
 
                        $cache->set( $key, $result );
@@ -635,9 +790,9 @@ abstract class ResourceLoaderModule {
         * @return int UNIX timestamp
         */
        protected static function safeFilemtime( $filename ) {
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $mtime = filemtime( $filename ) ?: 1;
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                return $mtime;
        }
diff --git a/includes/resourceloader/ResourceLoaderOOUIImageModule.php b/includes/resourceloader/ResourceLoaderOOUIImageModule.php
new file mode 100644 (file)
index 0000000..ebbeb01
--- /dev/null
@@ -0,0 +1,84 @@
+<?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
+ */
+
+/**
+ * Secret special sauce.
+ *
+ * @since 1.26
+ */
+class ResourceLoaderOOUIImageModule extends ResourceLoaderImageModule {
+       protected function loadFromDefinition() {
+               if ( $this->definition === null ) {
+                       return;
+               }
+
+               // Core default themes
+               $themes = array( 'default' => 'mediawiki' );
+               $themes += ExtensionRegistry::getInstance()->getAttribute( 'SkinOOUIThemes' );
+
+               $name = $this->definition['name'];
+               $rootPath = $this->definition['rootPath'];
+
+               $definition = array();
+               foreach ( $themes as $skin => $theme ) {
+                       // TODO Allow extensions to specify this path somehow
+                       $dataPath = $this->localBasePath . '/' . $rootPath . '/' . $theme . '/' . $name . '.json';
+
+                       if ( file_exists( $dataPath ) ) {
+                               $data = json_decode( file_get_contents( $dataPath ), true );
+                               $fixPath = function ( &$path ) use ( $rootPath, $theme ) {
+                                       // TODO Allow extensions to specify this path somehow
+                                       $path = $rootPath . '/' . $theme . '/' . $path;
+                               };
+                               array_walk( $data['images'], function ( &$value ) use ( $fixPath ) {
+                                       if ( is_string( $value['file'] ) ) {
+                                               $fixPath( $value['file'] );
+                                       } else if ( is_array( $value['file'] ) ) {
+                                               array_walk_recursive( $value['file'], $fixPath );
+                                       }
+                               } );
+                       } else {
+                               $data = array();
+                       }
+
+                       foreach ( $data as $key => $value ) {
+                               switch ( $key ) {
+                                       case 'images':
+                                       case 'variants':
+                                               $definition[$key][$skin] = $data[$key];
+                                               break;
+
+                                       default:
+                                               if ( !isset( $definition[$key] ) ) {
+                                                       $definition[$key] = $data[$key];
+                                               } elseif ( $definition[$key] !== $data[$key] ) {
+                                                       throw new Exception( "Mismatched OOUI theme definitions are not supported: trying to load $key of $theme theme" );
+                                               }
+                                               break;
+                               }
+                       }
+               }
+
+               // Fields from definition silently override keys from JSON files
+               $this->definition += $definition;
+
+               parent::loadFromDefinition();
+       }
+}
diff --git a/includes/resourceloader/ResourceLoaderRawFileModule.php b/includes/resourceloader/ResourceLoaderRawFileModule.php
new file mode 100644 (file)
index 0000000..d9005fa
--- /dev/null
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Module containing files that are loaded without ResourceLoader.
+ *
+ * Primary usecase being "base" modules loaded by the startup module,
+ * such as jquery and the mw.loader client itself. These make use of
+ * ResourceLoaderModule and load.php for convenience but aren't actually
+ * registered in the startup module (as it would have to load itself).
+ *
+ * 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 Timo Tijhof
+ */
+
+class ResourceLoaderRawFileModule extends ResourceLoaderFileModule {
+
+       /**
+        * Enable raw mode to omit mw.loader.state() call as mw.loader
+        * does not yet exist when these modules execute.
+        * @var boolean
+        */
+       protected $raw = true;
+
+       /**
+        * Get all JavaScript code.
+        *
+        * @param ResourceLoaderContext $context
+        * @return string JavaScript code
+        */
+       public function getScript( ResourceLoaderContext $context ) {
+               $script = parent::getScript( $context );
+               // Add closure explicitly because raw modules can't be wrapped mw.loader.implement.
+               // Unlike with mw.loader.implement, this closure is immediately invoked.
+               // @see ResourceLoader::makeModuleResponse
+               // @see ResourceLoader::makeLoaderImplementScript
+               return "(function () {\n{$script}\n}());";
+       }
+}
index 3ba63e6..980b7fe 100644 (file)
@@ -71,15 +71,6 @@ class ResourceLoaderSkinModule extends ResourceLoaderFileModule {
                return false;
        }
 
-       /**
-        * @param $context ResourceLoaderContext
-        * @return int|mixed
-        */
-       public function getModifiedTime( ResourceLoaderContext $context ) {
-               $parentMTime = parent::getModifiedTime( $context );
-               return max( $parentMTime, $this->getHashMtime( $context ) );
-       }
-
        /**
         * @param $context ResourceLoaderContext
         * @return string: Hash
index 5c91709..03f2124 100644 (file)
@@ -35,7 +35,8 @@ class ResourceLoaderSpecialCharacterDataModule extends ResourceLoaderModule {
         * @return array
         */
        protected function getData() {
-               return json_decode( file_get_contents( $this->path ) );
+               global $IP;
+               return json_decode( file_get_contents( "$IP/{$this->path}" ) );
        }
 
        /**
@@ -52,14 +53,6 @@ class ResourceLoaderSpecialCharacterDataModule extends ResourceLoaderModule {
                );
        }
 
-       /**
-        * @param ResourceLoaderContext $context
-        * @return int UNIX timestamp
-        */
-       public function getModifiedTime( ResourceLoaderContext $context ) {
-               return static::safeFilemtime( $this->path );
-       }
-
        /**
         * @param ResourceLoaderContext $context
         * @return string Hash
@@ -69,9 +62,10 @@ class ResourceLoaderSpecialCharacterDataModule extends ResourceLoaderModule {
        }
 
        /**
+        * @param ResourceLoaderContext $context
         * @return array
         */
-       public function getDependencies() {
+       public function getDependencies( ResourceLoaderContext $context = null ) {
                return array( 'mediawiki.language' );
        }
 
index 48b3576..8dbed8e 100644 (file)
 
 class ResourceLoaderStartUpModule extends ResourceLoaderModule {
 
-       /* Protected Members */
-
-       protected $modifiedTime = array();
+       // Cache for getConfigSettings() as it's called by multiple methods
        protected $configVars = array();
        protected $targets = array( 'desktop', 'mobile' );
 
-       /* Protected Methods */
-
        /**
         * @param ResourceLoaderContext $context
         * @return array
@@ -82,6 +78,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                        'wgServerName' => $conf->get( 'ServerName' ),
                        'wgUserLanguage' => $context->getLanguage(),
                        'wgContentLanguage' => $wgContLang->getCode(),
+                       'wgTranslateNumerals' => $conf->get( 'TranslateNumerals' ),
                        'wgVersion' => $conf->get( 'Version' ),
                        'wgEnableAPI' => $conf->get( 'EnableAPI' ),
                        'wgEnableWriteAPI' => $conf->get( 'EnableWriteAPI' ),
@@ -158,7 +155,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
         * data send to the client.
         *
         * @param array &$registryData Modules keyed by name with properties:
-        *  - number 'version'
+        *  - string 'version'
         *  - array 'dependencies'
         *  - string|null 'group'
         *  - string 'source'
@@ -209,31 +206,27 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                                continue;
                        }
 
-                       // Coerce module timestamp to UNIX timestamp.
-                       // getModifiedTime() is supposed to return a UNIX timestamp, but custom implementations
-                       // might forget. TODO: Maybe emit warning?
-                       $moduleMtime = wfTimestamp( TS_UNIX, $module->getModifiedTime( $context ) );
+                       $versionHash = $module->getVersionHash( $context );
+                       if ( strlen( $versionHash ) !== 8 ) {
+                               // Module implementation either broken or deviated from ResourceLoader::makeHash
+                               // Asserted by tests/phpunit/structure/ResourcesTest.
+                               $versionHash = ResourceLoader::makeHash( $versionHash );
+                       }
 
                        $skipFunction = $module->getSkipFunction();
                        if ( $skipFunction !== null && !ResourceLoader::inDebugMode() ) {
                                $skipFunction = $resourceLoader->filter( 'minify-js',
                                        $skipFunction,
-                                       // There will potentially be lots of these little string in the registrations
+                                       // There will potentially be lots of these little strings in the registrations
                                        // manifest, we don't want to blow up the startup module with
-                                       // "/* cache key: ... */" all over it in non-debug mode.
+                                       // "/* cache key: ... */" all over it.
                                        /* cacheReport = */ false
                                );
                        }
 
-                       $mtime = max(
-                               $moduleMtime,
-                               wfTimestamp( TS_UNIX, $this->getConfig()->get( 'CacheEpoch' ) )
-                       );
-
                        $registryData[$name] = array(
-                               // Convert to numbers as wfTimestamp always returns a string, even for TS_UNIX
-                               'version' => (int) $mtime,
-                               'dependencies' => $module->getDependencies(),
+                               'version' => $versionHash,
+                               'dependencies' => $module->getDependencies( $context ),
                                'group' => $module->getGroup(),
                                'source' => $module->getSource(),
                                'loader' => $module->getLoaderScript(),
@@ -262,7 +255,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                                continue;
                        }
 
-                       // Call mw.loader.register(name, timestamp, dependencies, group, source, skip)
+                       // Call mw.loader.register(name, version, dependencies, group, source, skip)
                        $registrations[] = array(
                                $name,
                                $data['version'],
@@ -280,8 +273,6 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                return $out;
        }
 
-       /* Methods */
-
        /**
         * @return bool
         */
@@ -308,24 +299,16 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
         * @return string
         */
        public static function getStartupModulesUrl( ResourceLoaderContext $context ) {
+               $rl = $context->getResourceLoader();
                $moduleNames = self::getStartupModules();
 
-               // Get the latest version
-               $loader = $context->getResourceLoader();
-               $version = 1;
-               foreach ( $moduleNames as $moduleName ) {
-                       $version = max( $version,
-                               $loader->getModule( $moduleName )->getModifiedTime( $context )
-                       );
-               }
-
                $query = array(
                        'modules' => ResourceLoader::makePackedModulesString( $moduleNames ),
                        'only' => 'scripts',
                        'lang' => $context->getLanguage(),
                        'skin' => $context->getSkin(),
                        'debug' => $context->getDebug() ? 'true' : 'false',
-                       'version' => wfTimestamp( TS_ISO_8601_BASIC, $version )
+                       'version' => $rl->getCombinedVersion( $context, $moduleNames ),
                );
                // Ensure uniform query order
                ksort( $query );
@@ -382,59 +365,48 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
        }
 
        /**
+        * Get the definition summary for this module.
+        *
         * @param ResourceLoaderContext $context
-        * @return array|mixed
+        * @return array
         */
-       public function getModifiedTime( ResourceLoaderContext $context ) {
+       public function getDefinitionSummary( ResourceLoaderContext $context ) {
                global $IP;
+               $summary = parent::getDefinitionSummary( $context );
+               $summary[] = array(
+                       // Detect changes to variables exposed in mw.config (T30899).
+                       'vars' => $this->getConfigSettings( $context ),
+                       // Changes how getScript() creates mw.Map for mw.config
+                       'wgLegacyJavaScriptGlobals' => $this->getConfig()->get( 'LegacyJavaScriptGlobals' ),
+                       // Detect changes to the module registrations
+                       'moduleHashes' => $this->getAllModuleHashes( $context ),
 
-               $hash = $context->getHash();
-               if ( isset( $this->modifiedTime[$hash] ) ) {
-                       return $this->modifiedTime[$hash];
-               }
-
-               // Call preloadModuleInfo() on ALL modules as we're about
-               // to call getModifiedTime() on all of them
-               $loader = $context->getResourceLoader();
-               $loader->preloadModuleInfo( $loader->getModuleNames(), $context );
-
-               $time = max(
-                       wfTimestamp( TS_UNIX, $this->getConfig()->get( 'CacheEpoch' ) ),
-                       filemtime( "$IP/resources/src/startup.js" ),
-                       $this->getHashMtime( $context )
+                       'fileMtimes' => array(
+                               filemtime( "$IP/resources/src/startup.js" ),
+                       ),
                );
-
-               // ATTENTION!: Because of the line below, this is not going to cause
-               // infinite recursion - think carefully before making changes to this
-               // code!
-               // Pre-populate modifiedTime with something because the loop over
-               // all modules below includes the startup module (this module).
-               $this->modifiedTime[$hash] = 1;
-
-               foreach ( $loader->getModuleNames() as $name ) {
-                       $module = $loader->getModule( $name );
-                       $time = max( $time, $module->getModifiedTime( $context ) );
-               }
-
-               $this->modifiedTime[$hash] = $time;
-               return $this->modifiedTime[$hash];
+               return $summary;
        }
 
        /**
-        * Hash of all dynamic data embedded in getScript().
-        *
-        * Detect changes to mw.config settings embedded in #getScript (bug 28899).
+        * Helper method for getDefinitionSummary().
         *
         * @param ResourceLoaderContext $context
-        * @return string Hash
+        * @return string SHA-1
         */
-       public function getModifiedHash( ResourceLoaderContext $context ) {
-               $data = array(
-                       'vars' => $this->getConfigSettings( $context ),
-                       'wgLegacyJavaScriptGlobals' => $this->getConfig()->get( 'LegacyJavaScriptGlobals' ),
-               );
-
-               return md5( serialize( $data ) );
+       protected function getAllModuleHashes( ResourceLoaderContext $context ) {
+               $rl = $context->getResourceLoader();
+               // Preload for getCombinedVersion()
+               $rl->preloadModuleInfo( $rl->getModuleNames(), $context );
+
+               // ATTENTION: Because of the line below, this is not going to cause infinite recursion.
+               // Think carefully before making changes to this code!
+               // Pre-populate versionHash with something because the loop over all modules below includes
+               // the startup module (this module).
+               // See ResourceLoaderModule::getVersionHash() for usage of this cache.
+               $this->versionHash[ $context->getHash() ] = null;
+
+               return $rl->getCombinedVersion( $context, $rl->getModuleNames() );
        }
 
        /**
index 472ceb2..d0f7d44 100644 (file)
  */
 class ResourceLoaderUserCSSPrefsModule extends ResourceLoaderModule {
 
-       /* Protected Members */
-
-       protected $modifiedTime = array();
-
        protected $origin = self::ORIGIN_CORE_INDIVIDUAL;
 
-       /* Methods */
-
        /**
         * @param ResourceLoaderContext $context
         * @return array|int|mixed
         */
        public function getModifiedTime( ResourceLoaderContext $context ) {
-               $hash = $context->getHash();
-               if ( !isset( $this->modifiedTime[$hash] ) ) {
-                       $this->modifiedTime[$hash] = wfTimestamp( TS_UNIX, $context->getUserObj()->getTouched() );
-               }
-
-               return $this->modifiedTime[$hash];
+               return wfTimestamp( TS_UNIX, $context->getUserObj()->getTouched() );
        }
 
        /**
index 5f4bc16..2fd35ad 100644 (file)
@@ -40,14 +40,6 @@ class ResourceLoaderUserDefaultsModule extends ResourceLoaderModule {
                return md5( serialize( User::getDefaultOptions() ) );
        }
 
-       /**
-        * @param ResourceLoaderContext $context
-        * @return int
-        */
-       public function getModifiedTime( ResourceLoaderContext $context ) {
-               return $this->getHashMtime( $context );
-       }
-
        /**
         * @param ResourceLoaderContext $context
         * @return string
index 84c1906..aba0fa6 100644 (file)
  */
 class ResourceLoaderUserOptionsModule extends ResourceLoaderModule {
 
-       /* Protected Members */
-
-       protected $modifiedTime = array();
-
        protected $origin = self::ORIGIN_CORE_INDIVIDUAL;
 
        protected $targets = array( 'desktop', 'mobile' );
 
-       /* Methods */
-
        /**
+        * @param ResourceLoaderContext $context
         * @return array List of module names as strings
         */
-       public function getDependencies() {
+       public function getDependencies( ResourceLoaderContext $context = null ) {
                return array( 'user.defaults' );
        }
 
@@ -49,12 +44,7 @@ class ResourceLoaderUserOptionsModule extends ResourceLoaderModule {
         * @return int
         */
        public function getModifiedTime( ResourceLoaderContext $context ) {
-               $hash = $context->getHash();
-               if ( !isset( $this->modifiedTime[$hash] ) ) {
-                       $this->modifiedTime[$hash] = wfTimestamp( TS_UNIX, $context->getUserObj()->getTouched() );
-               }
-
-               return $this->modifiedTime[$hash];
+               return wfTimestamp( TS_UNIX, $context->getUserObj()->getTouched() );
        }
 
        /**
index 7b44cc6..264af5b 100644 (file)
  * Abstraction for resource loader modules which pull from wiki pages
  *
  * This can only be used for wiki pages in the MediaWiki and User namespaces,
- * because of its dependence on the functionality of
- * Title::isCssJsSubpage.
+ * because of its dependence on the functionality of Title::isCssJsSubpage.
+ *
+ * This module supports being used as a placeholder for a module on a remote wiki.
+ * To do so, getDB() must be overloaded to return a foreign database object that
+ * allows local wikis to query page metadata.
+ *
+ * Safe for calls on local wikis are:
+ * - Option getters:
+ *   - getGroup()
+ *   - getPosition()
+ *   - getPages()
+ * - Basic methods that strictly involve the foreign database
+ *   - getDB()
+ *   - isKnownEmpty()
+ *   - getTitleInfo()
  */
 class ResourceLoaderWikiModule extends ResourceLoaderModule {
+       /** @var string Position on the page to load this module at */
+       protected $position = 'bottom';
 
        // Origin defaults to users with sitewide authority
        protected $origin = self::ORIGIN_USER_SITEWIDE;
 
-       // In-object cache for title info
+       // In-process cache for title info
        protected $titleInfo = array();
 
        // List of page names that contain CSS
@@ -50,14 +65,21 @@ class ResourceLoaderWikiModule extends ResourceLoaderModule {
         * @param array $options For back-compat, this can be omitted in favour of overwriting getPages.
         */
        public function __construct( array $options = null ) {
-               if ( isset( $options['styles'] ) ) {
-                       $this->styles = $options['styles'];
+               if ( is_null( $options ) ) {
+                       return;
                }
-               if ( isset( $options['scripts'] ) ) {
-                       $this->scripts = $options['scripts'];
-               }
-               if ( isset( $options['group'] ) ) {
-                       $this->group = $options['group'];
+
+               foreach ( $options as $member => $option ) {
+                       switch ( $member ) {
+                               case 'position':
+                                       $this->isPositionDefined = true;
+                                       // Don't break since we need the member set as well
+                               case 'styles':
+                               case 'scripts':
+                               case 'group':
+                                       $this->{$member} = $option;
+                                       break;
+                       }
                }
        }
 
@@ -107,13 +129,13 @@ class ResourceLoaderWikiModule extends ResourceLoaderModule {
        }
 
        /**
-        * Get the Database object used in getTitleMTimes(). Defaults to the local slave DB
-        * but subclasses may want to override this to return a remote DB object, or to return
-        * null if getTitleMTimes() shouldn't access the DB at all.
+        * Get the Database object used in getTitleInfo().
+        *
+        * Defaults to the local slave DB. Subclasses may want to override this to return a foreign
+        * database object, or null if getTitleInfo() shouldn't access the database.
         *
-        * NOTE: This ONLY works for getTitleMTimes() and getModifiedTime(), NOT FOR ANYTHING ELSE.
-        * In particular, it doesn't work for getting the content of JS and CSS pages. That functionality
-        * will use the local DB irrespective of the return value of this method.
+        * NOTE: This ONLY works for getTitleInfo() and isKnownEmpty(), NOT FOR ANYTHING ELSE.
+        * In particular, it doesn't work for getContent() or getScript() etc.
         *
         * @return IDatabase|null
         */
@@ -122,10 +144,15 @@ class ResourceLoaderWikiModule extends ResourceLoaderModule {
        }
 
        /**
-        * @param Title $title
+        * @param string $title
         * @return null|string
         */
-       protected function getContent( $title ) {
+       protected function getContent( $titleText ) {
+               $title = Title::newFromText( $titleText );
+               if ( !$title || $title->isRedirect() ) {
+                       return null;
+               }
+
                $handler = ContentHandler::getForTitle( $title );
                if ( $handler->isSupportedFormat( CONTENT_FORMAT_CSS ) ) {
                        $format = CONTENT_FORMAT_CSS;
@@ -160,11 +187,7 @@ class ResourceLoaderWikiModule extends ResourceLoaderModule {
                        if ( $options['type'] !== 'script' ) {
                                continue;
                        }
-                       $title = Title::newFromText( $titleText );
-                       if ( !$title || $title->isRedirect() ) {
-                               continue;
-                       }
-                       $script = $this->getContent( $title );
+                       $script = $this->getContent( $titleText );
                        if ( strval( $script ) !== '' ) {
                                $script = $this->validateScriptFile( $titleText, $script );
                                $scripts .= ResourceLoader::makeComment( $titleText ) . $script . "\n";
@@ -183,12 +206,8 @@ class ResourceLoaderWikiModule extends ResourceLoaderModule {
                        if ( $options['type'] !== 'style' ) {
                                continue;
                        }
-                       $title = Title::newFromText( $titleText );
-                       if ( !$title || $title->isRedirect() ) {
-                               continue;
-                       }
                        $media = isset( $options['media'] ) ? $options['media'] : 'all';
-                       $style = $this->getContent( $title );
+                       $style = $this->getContent( $titleText );
                        if ( strval( $style ) === '' ) {
                                continue;
                        }
@@ -206,37 +225,17 @@ class ResourceLoaderWikiModule extends ResourceLoaderModule {
        }
 
        /**
-        * @param ResourceLoaderContext $context
-        * @return int
-        */
-       public function getModifiedTime( ResourceLoaderContext $context ) {
-               $modifiedTime = 1;
-               $titleInfo = $this->getTitleInfo( $context );
-               if ( count( $titleInfo ) ) {
-                       $mtimes = array_map( function ( $value ) {
-                               return $value['timestamp'];
-                       }, $titleInfo );
-                       $modifiedTime = max( $modifiedTime, max( $mtimes ) );
-               }
-               $modifiedTime = max(
-                       $modifiedTime,
-                       $this->getMsgBlobMtime( $context->getLanguage() ),
-                       $this->getDefinitionMtime( $context )
-               );
-               return $modifiedTime;
-       }
-
-       /**
-        * Get the definition summary for this module.
-        *
         * @param ResourceLoaderContext $context
         * @return array
         */
        public function getDefinitionSummary( ResourceLoaderContext $context ) {
-               return array(
-                       'class' => get_class( $this ),
+               $summary = parent::getDefinitionSummary( $context );
+               $summary[] = array(
                        'pages' => $this->getPages( $context ),
+                       // Includes SHA1 of content
+                       'titleInfo' => $this->getTitleInfo( $context ),
                );
+               return $summary;
        }
 
        /**
@@ -244,33 +243,29 @@ class ResourceLoaderWikiModule extends ResourceLoaderModule {
         * @return bool
         */
        public function isKnownEmpty( ResourceLoaderContext $context ) {
-               $titleInfo = $this->getTitleInfo( $context );
-               // Bug 68488: For modules in the "user" group, we should actually
-               // check that the pages are empty (page_len == 0), but for other
-               // groups, just check the pages exist so that we don't end up
-               // caching temporarily-blank pages without the appropriate
-               // <script> or <link> tag.
-               if ( $this->getGroup() !== 'user' ) {
-                       return count( $titleInfo ) === 0;
-               }
+               $revisions = $this->getTitleInfo( $context );
 
-               foreach ( $titleInfo as $info ) {
-                       if ( $info['length'] !== 0 ) {
-                               // At least one non-0-lenth page, not empty
-                               return false;
+               // For user modules, don't needlessly load if there are no non-empty pages
+               if ( $this->getGroup() === 'user' ) {
+                       foreach ( $revisions as $revision ) {
+                               if ( $revision['rev_len'] > 0 ) {
+                                       // At least one non-empty page, module should be loaded
+                                       return false;
+                               }
                        }
+                       return true;
                }
 
-               // All pages are 0-length, so it's empty
-               return true;
+               // Bug 68488: For other modules (i.e. ones that are called in cached html output) only check
+               // page existance. This ensures that, if some pages in a module are temporarily blanked,
+               // we don't end omit the module's script or link tag on some pages.
+               return count( $revisions ) === 0;
        }
 
        /**
-        * Get the modification times of all titles that would be loaded for
-        * a given context.
-        * @param ResourceLoaderContext $context Context object
-        * @return array Keyed by page dbkey. Value is an array with 'length' and 'timestamp'
-        *               keys, where the timestamp is a UNIX timestamp
+        * Get the information about the wiki pages for a given context.
+        * @param ResourceLoaderContext $context
+        * @return array Keyed by page name. Contains arrays with 'rev_len' and 'rev_sha1' keys
         */
        protected function getTitleInfo( ResourceLoaderContext $context ) {
                $dbr = $this->getDB();
@@ -279,31 +274,39 @@ class ResourceLoaderWikiModule extends ResourceLoaderModule {
                        return array();
                }
 
-               $hash = $context->getHash();
-               if ( isset( $this->titleInfo[$hash] ) ) {
-                       return $this->titleInfo[$hash];
-               }
+               $pages = $this->getPages( $context );
+               $key = implode( '|', array_keys( $pages ) );
+               if ( !isset( $this->titleInfo[$key] ) ) {
 
-               $this->titleInfo[$hash] = array();
-               $batch = new LinkBatch;
-               foreach ( $this->getPages( $context ) as $titleText => $options ) {
-                       $batch->addObj( Title::newFromText( $titleText ) );
-               }
+                       $this->titleInfo[$key] = array();
+                       $batch = new LinkBatch;
+                       foreach ( $pages as $titleText => $options ) {
+                               $batch->addObj( Title::newFromText( $titleText ) );
+                       }
 
-               if ( !$batch->isEmpty() ) {
-                       $res = $dbr->select( 'page',
-                               array( 'page_namespace', 'page_title', 'page_touched', 'page_len' ),
-                               $batch->constructSet( 'page', $dbr ),
-                               __METHOD__
-                       );
-                       foreach ( $res as $row ) {
-                               $title = Title::makeTitle( $row->page_namespace, $row->page_title );
-                               $this->titleInfo[$hash][$title->getPrefixedDBkey()] = array(
-                                       'timestamp' => wfTimestamp( TS_UNIX, $row->page_touched ),
-                                       'length' => $row->page_len,
+                       if ( !$batch->isEmpty() ) {
+                               $res = $dbr->select( array( 'page', 'revision' ),
+                                       array( 'page_namespace', 'page_title', 'rev_len', 'rev_sha1' ),
+                                       $batch->constructSet( 'page', $dbr ),
+                                       __METHOD__,
+                                       array(),
+                                       array( 'revision' => array( 'INNER JOIN', array( 'page_latest=rev_id' ) ) )
                                );
+                               foreach ( $res as $row ) {
+                                       // Avoid including ids or timestamps of revision/page tables so
+                                       // that versions are not wasted
+                                       $title = Title::makeTitle( $row->page_namespace, $row->page_title );
+                                       $this->titleInfo[$key][$title->getPrefixedText()] = array(
+                                               'rev_len' => $row->rev_len,
+                                               'rev_sha1' => $row->rev_sha1,
+                                       );
+                               }
                        }
                }
-               return $this->titleInfo[$hash];
+               return $this->titleInfo[$key];
+       }
+
+       public function getPosition() {
+               return $this->position;
        }
 }
index ebdbf3a..dba368d 100644 (file)
@@ -36,6 +36,8 @@ abstract class RevDelItem extends RevisionItemBase {
 
        /**
         * Get the current deletion bitfield value
+        *
+        * @return integer
         */
        abstract public function getBits();
 
index f16fd15..837557c 100644 (file)
@@ -78,7 +78,7 @@ abstract class RevDelList extends RevisionListBase {
         * transactions are done here.
         *
         * @param array $params Associative array of parameters. Members are:
-        *     value:         The integer value to set the visibility to
+        *     value:         ExtractBitParams() bitfield array
         *     comment:       The log comment.
         *     perItemStatus: Set if you want per-item status reports
         * @return Status
@@ -89,10 +89,13 @@ abstract class RevDelList extends RevisionListBase {
                $comment = $params['comment'];
                $perItemStatus = isset( $params['perItemStatus'] ) ? $params['perItemStatus'] : false;
 
-               $this->res = false;
+               // CAS-style checks are done on the _deleted fields so the select
+               // does not need to use FOR UPDATE nor be in the atomic section
                $dbw = wfGetDB( DB_MASTER );
-               $this->doQuery( $dbw );
+               $this->res = $this->doQuery( $dbw );
+
                $dbw->startAtomic( __METHOD__ );
+
                $status = Status::newGood();
                $missing = array_flip( $this->ids );
                $this->clearFileOps();
@@ -106,6 +109,7 @@ abstract class RevDelList extends RevisionListBase {
                // @codingStandardsIgnoreStart Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
                for ( $this->reset(); $this->current(); $this->next() ) {
                        // @codingStandardsIgnoreEnd
+                       /** @var $item RevDelItem */
                        $item = $this->current();
                        unset( $missing[$item->getId()] );
 
@@ -197,6 +201,7 @@ abstract class RevDelList extends RevisionListBase {
                }
 
                // Log it
+               // @FIXME: $newBits/$oldBits set in for loop, makes IDE warnings too
                $this->updateLog( array(
                        'title' => $this->title,
                        'count' => $successCount,
index 49adf20..65b0309 100644 (file)
@@ -48,11 +48,26 @@ class RevDelLogItem extends RevDelItem {
        }
 
        public function getBits() {
-               return $this->row->log_deleted;
+               return (int)$this->row->log_deleted;
        }
 
        public function setBits( $bits ) {
                $dbw = wfGetDB( DB_MASTER );
+
+               $dbw->update( 'logging',
+                       array( 'log_deleted' => $bits ),
+                       array(
+                               'log_id' => $this->row->log_id,
+                               'log_deleted' => $this->getBits() // cas
+                       ),
+                       __METHOD__
+               );
+
+               if ( !$dbw->affectedRows() ) {
+                       // Concurrent fail!
+                       return false;
+               }
+
                $dbw->update( 'recentchanges',
                        array(
                                'rc_deleted' => $bits,
@@ -64,16 +79,8 @@ class RevDelLogItem extends RevDelItem {
                        ),
                        __METHOD__
                );
-               $dbw->update( 'logging',
-                       array( 'log_deleted' => $bits ),
-                       array(
-                               'log_id' => $this->row->log_id,
-                               'log_deleted' => $this->getBits()
-                       ),
-                       __METHOD__
-               );
 
-               return (bool)$dbw->affectedRows();
+               return true;
        }
 
        public function getHTML() {
index 300ce6a..17e1fd1 100644 (file)
@@ -67,7 +67,7 @@ class RevDelRevisionItem extends RevDelItem {
                        array(
                                'rev_id' => $this->revision->getId(),
                                'rev_page' => $this->revision->getPage(),
-                               'rev_deleted' => $this->getBits()
+                               'rev_deleted' => $this->getBits() // cas
                        ),
                        __METHOD__
                );
index ba1f0f6..db2bc6a 100644 (file)
@@ -233,9 +233,9 @@ class RevisionDeleter {
         * @since 1.22
         * @param array $bitPars ExtractBitParams() params
         * @param int $oldfield Current bitfield
-        * @return array
+        * @return integer
         */
-       public static function extractBitfield( $bitPars, $oldfield ) {
+       public static function extractBitfield( array $bitPars, $oldfield ) {
                // Build the actual new rev_deleted bitfield
                $newBits = 0;
                foreach ( $bitPars as $const => $val ) {
index 485088c..fa2423b 100644 (file)
@@ -54,9 +54,9 @@ class SearchMySQL extends SearchDatabase {
                if ( preg_match_all( '/([-+<>~]?)(([' . $lc . ']+)(\*?)|"[^"]*")/',
                                $filteredText, $m, PREG_SET_ORDER ) ) {
                        foreach ( $m as $bits ) {
-                               wfSuppressWarnings();
+                               MediaWiki\suppressWarnings();
                                list( /* all */, $modifier, $term, $nonQuoted, $wildcard ) = $bits;
-                               wfRestoreWarnings();
+                               MediaWiki\restoreWarnings();
 
                                if ( $nonQuoted != '' ) {
                                        $term = $nonQuoted;
index 406d322..0a05eef 100644 (file)
  * @ingroup Search
  */
 class SearchResultSet {
+       protected $containedSyntax = false;
+
+       public function __construct( $containedSyntax = false ) {
+               $this->containedSyntax = $containedSyntax;
+       }
+
        /**
         * Fetch an array of regular expression fragments for matching
         * the search terms as parsed by this engine in a text extract.
@@ -120,7 +126,7 @@ class SearchResultSet {
         * @return bool
         */
        public function searchContainedSyntax() {
-               return false;
+               return $this->containedSyntax;
        }
 }
 
index eee6930..3a5ee0e 100644 (file)
@@ -52,9 +52,9 @@ class SearchSqlite extends SearchDatabase {
                if ( preg_match_all( '/([-+<>~]?)(([' . $lc . ']+)(\*?)|"[^"]*")/',
                                $filteredText, $m, PREG_SET_ORDER ) ) {
                        foreach ( $m as $bits ) {
-                               wfSuppressWarnings();
+                               MediaWiki\suppressWarnings();
                                list( /* all */, $modifier, $term, $nonQuoted, $wildcard ) = $bits;
-                               wfRestoreWarnings();
+                               MediaWiki\restoreWarnings();
 
                                if ( $nonQuoted != '' ) {
                                        $term = $nonQuoted;
index 6e48d04..20cceda 100644 (file)
@@ -42,9 +42,9 @@ class MediaWikiI18N {
                $m = array();
                while ( preg_match( '/\$([0-9]*?)/sm', $value, $m ) ) {
                        list( $src, $var ) = $m;
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $varValue = $this->context[$var];
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        $value = str_replace( $src, $varValue, $value );
                }
                return $value;
index 07a2e87..6c5fbcd 100644 (file)
@@ -1234,12 +1234,13 @@ abstract class Skin extends ContextSource {
         * @return array
         */
        function buildSidebar() {
-               global $wgMemc, $wgEnableSidebarCache, $wgSidebarCacheExpiry;
+               global $wgEnableSidebarCache, $wgSidebarCacheExpiry;
 
+               $cache = ObjectCache::getMainWANInstance();
                $key = wfMemcKey( 'sidebar', $this->getLanguage()->getCode() );
 
                if ( $wgEnableSidebarCache ) {
-                       $cachedsidebar = $wgMemc->get( $key );
+                       $cachedsidebar = $cache->get( $key );
                        if ( $cachedsidebar ) {
                                Hooks::run( 'SidebarBeforeOutput', array( $this, &$cachedsidebar ) );
 
@@ -1252,7 +1253,7 @@ abstract class Skin extends ContextSource {
 
                Hooks::run( 'SkinBuildSidebar', array( $this, &$bar ) );
                if ( $wgEnableSidebarCache ) {
-                       $wgMemc->set( $key, $bar, $wgSidebarCacheExpiry );
+                       $cache->set( $key, $bar, $wgSidebarCacheExpiry );
                }
 
                Hooks::run( 'SidebarBeforeOutput', array( $this, &$bar ) );
index d7e0132..5364719 100644 (file)
@@ -421,11 +421,15 @@ class SkinTemplate extends Skin {
                $realBodyAttribs = array( 'id' => 'mw-content-text' );
 
                # Add a mw-content-ltr/rtl class to be able to style based on text direction
-               # when the content is different from the UI language
-               $pageLang = $title->getPageViewLanguage();
-               $realBodyAttribs['lang'] = $pageLang->getHtmlCode();
-               $realBodyAttribs['dir'] = $pageLang->getDir();
-               $realBodyAttribs['class'] = 'mw-content-' . $pageLang->getDir();
+               # when the content is different from the UI language, i.e.:
+               # not for special pages or file pages AND only when viewing
+               if ( !in_array( $title->getNamespace(), array( NS_SPECIAL, NS_FILE ) ) &&
+                       Action::getActionName( $this ) === 'view' ) {
+                       $pageLang = $title->getPageViewLanguage();
+                       $realBodyAttribs['lang'] = $pageLang->getHtmlCode();
+                       $realBodyAttribs['dir'] = $pageLang->getDir();
+                       $realBodyAttribs['class'] = 'mw-content-' . $pageLang->getDir();
+               }
 
                $out->mBodytext = Html::rawElement( 'div', $realBodyAttribs, $out->mBodytext );
                $tpl->setRef( 'bodytext', $out->mBodytext );
index a866ba7..df1fa61 100644 (file)
@@ -70,13 +70,15 @@ abstract class RedirectSpecialPage extends UnlistedSpecialPage {
         * Return part of the request string for a special redirect page
         * This allows passing, e.g. action=history to Special:Mypage, etc.
         *
-        * @return string
+        * @return array|bool
         */
        public function getRedirectQuery() {
                $params = array();
                $request = $this->getRequest();
 
-               foreach ( $this->mAllowedRedirectParams as $arg ) {
+               foreach ( array_merge( $this->mAllowedRedirectParams,
+                               array( 'uselang', 'useskin', 'debug' ) // parameters which can be passed to all pages
+                       ) as $arg ) {
                        if ( $request->getVal( $arg, null ) !== null ) {
                                $params[$arg] = $request->getVal( $arg );
                        } elseif ( $request->getArray( $arg, null ) !== null ) {
@@ -205,7 +207,7 @@ abstract class RedirectSpecialArticle extends RedirectSpecialPage {
                        'section', 'oldid', 'diff', 'dir',
                        'limit', 'offset', 'feed',
                        # Misc options
-                       'redlink', 'debug',
+                       'redlink',
                        # Options for action=raw; missing ctype can break JS or CSS in some browsers
                        'ctype', 'maxage', 'smaxage',
                );
index f9d1e8a..a7a43b0 100644 (file)
@@ -632,6 +632,26 @@ class SpecialPage {
                }
        }
 
+       /**
+        * Adds help link with an icon via page indicators.
+        * Link target can be overridden by a local message containing a wikilink:
+        * the message key is: lowercase special page name + '-helppage'.
+        * @param string $to Target MediaWiki.org page title or encoded URL.
+        * @param bool $overrideBaseUrl Whether $url is a full URL, to avoid MW.o.
+        * @since 1.25
+        */
+       public function addHelpLink( $to, $overrideBaseUrl = false ) {
+               global $wgContLang;
+               $msg = $this->msg( $wgContLang->lc( $this->getName() ) . '-helppage' );
+
+               if ( !$msg->isDisabled() ) {
+                       $helpUrl = Skin::makeUrl( $msg->plain() );
+                       $this->getOutput()->addHelpLink( $helpUrl, true );
+               } else {
+                       $this->getOutput()->addHelpLink( $to, $overrideBaseUrl );
+               }
+       }
+
        /**
         * Get the group that the special page belongs in on Special:SpecialPage
         * Use this method, instead of getGroupName to allow customization
index 91eade1..6a86af2 100644 (file)
@@ -59,7 +59,7 @@ class SpecialAllMessages extends SpecialPage {
 
                $this->outputHeader( 'allmessagestext' );
                $out->addModuleStyles( 'mediawiki.special' );
-               $out->addHelpLink( 'Help:System message' );
+               $this->addHelpLink( 'Help:System message' );
 
                $this->table = new AllMessagesTablePager(
                        $this,
index 3f13510..752edc3 100644 (file)
@@ -103,7 +103,7 @@ class SpecialBlock extends FormSpecialPage {
                $msg = $this->alreadyBlocked ? 'ipb-change-block' : 'ipbsubmit';
                $form->setSubmitTextMsg( $msg );
 
-               $this->getOutput()->addHelpLink( 'Help:Blocking users' );
+               $this->addHelpLink( 'Help:Blocking users' );
 
                # Don't need to do anything if the form has been posted
                if ( !$this->getRequest()->wasPosted() && $this->preErrors ) {
@@ -395,7 +395,7 @@ class SpecialBlock extends FormSpecialPage {
                # Link to edit the block dropdown reasons, if applicable
                if ( $user->isAllowed( 'editinterface' ) ) {
                        $links[] = Linker::link(
-                               Title::makeTitle( NS_MEDIAWIKI, 'Ipbreason-dropdown' ),
+                               $this->msg( 'ipbreason-dropdown' )->inContentLanguage()->getTitle(),
                                $this->msg( 'ipb-edit-dropdown' )->escaped(),
                                array(),
                                array( 'action' => 'edit' )
index 0ec144a..4dd313b 100644 (file)
@@ -430,23 +430,18 @@ class BlockListPager extends TablePager {
                $lb = new LinkBatch;
                $lb->setCaller( __METHOD__ );
 
-               $userids = array();
-
                foreach ( $result as $row ) {
-                       $userids[] = $row->ipb_by;
-
                        # Usernames and titles are in fact related by a simple substitution of space -> underscore
                        # The last few lines of Title::secureAndSplit() tell the story.
                        $name = str_replace( ' ', '_', $row->ipb_address );
                        $lb->add( NS_USER, $name );
                        $lb->add( NS_USER_TALK, $name );
-               }
 
-               $ua = UserArray::newFromIDs( $userids );
-               foreach ( $ua as $user ) {
-                       $name = str_replace( ' ', '_', $user->getName() );
-                       $lb->add( NS_USER, $name );
-                       $lb->add( NS_USER_TALK, $name );
+                       if ( isset( $row->by_user_name ) ) {
+                               $username = str_replace( ' ', '_', $row->by_user_name );
+                               $lb->add( NS_USER, $username );
+                               $lb->add( NS_USER_TALK, $username );
+                       }
                }
 
                $lb->execute();
index c2cd812..9672580 100644 (file)
@@ -38,6 +38,7 @@ class SpecialContributions extends IncludableSpecialPage {
                $this->outputHeader();
                $out = $this->getOutput();
                $out->addModuleStyles( 'mediawiki.special' );
+               $this->addHelpLink( 'Help:User contributions' );
 
                $this->opts = array();
                $request = $this->getRequest();
@@ -724,7 +725,6 @@ class ContribsPager extends ReverseChronologicalPager {
                        $limit,
                        $descending
                );
-               $pager = $this;
 
                /*
                 * This hook will allow extensions to add in additional queries, so they can get their data
@@ -749,7 +749,7 @@ class ContribsPager extends ReverseChronologicalPager {
                ) );
                Hooks::run(
                        'ContribsPager::reallyDoQuery',
-                       array( &$data, $pager, $offset, $limit, $descending )
+                       array( &$data, $this, $offset, $limit, $descending )
                );
 
                $result = array();
@@ -965,14 +965,14 @@ class ContribsPager extends ReverseChronologicalPager {
                 * we're definitely dealing with revision data and we may proceed, if not, we'll leave it
                 * to extensions to subscribe to the hook to parse the row.
                 */
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                try {
                        $rev = new Revision( $row );
                        $validRevision = (bool)$rev->getId();
                } catch ( Exception $e ) {
                        $validRevision = false;
                }
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( $validRevision ) {
                        $classes = array();
index 9e4bbbe..8c7f0c8 100644 (file)
@@ -88,15 +88,13 @@ class DeletedContribsPager extends IndexPager {
         * @return ResultWrapper
         */
        function reallyDoQuery( $offset, $limit, $descending ) {
-               $pager = $this;
-
                $data = array( parent::reallyDoQuery( $offset, $limit, $descending ) );
 
                // This hook will allow extensions to add in additional queries, nearly
                // identical to ContribsPager::reallyDoQuery.
                Hooks::run(
                        'DeletedContribsPager::reallyDoQuery',
-                       array( &$data, $pager, $offset, $limit, $descending )
+                       array( &$data, $this, $offset, $limit, $descending )
                );
 
                $result = array();
@@ -203,14 +201,14 @@ class DeletedContribsPager extends IndexPager {
                 * we're definitely dealing with revision data and we may proceed, if not, we'll leave it
                 * to extensions to subscribe to the hook to parse the row.
                 */
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                try {
                        $rev = Revision::newFromArchiveRow( $row );
                        $validRevision = (bool)$rev->getId();
                } catch ( Exception $e ) {
                        $validRevision = false;
                }
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( $validRevision ) {
                        $ret = $this->formatRevisionRow( $row );
index 9f91a10..8b5d31a 100644 (file)
@@ -57,7 +57,7 @@ class SpecialDiff extends RedirectSpecialPage {
                        $this->mAddedRedirectParams['diff'] = $parts[1];
                } else {
                        // Wrong number of parameters, bail out
-                       $this->getOutput()->addHelpLink( 'Help:Diff' );
+                       $this->addHelpLink( 'Help:Diff' );
                        throw new ErrorPageError( 'nopagetitle', 'nopagetext' );
                }
 
index bfd1717..f41a1f1 100644 (file)
@@ -206,7 +206,7 @@ class SpecialEditTags extends UnlistedSpecialPage {
                        $this->targetObj->getPrefixedText()
                ) );
 
-               $out->addHelpLink( 'Help:Tags' );
+               $this->addHelpLink( 'Help:Tags' );
                $out->addHTML( "<ul>" );
 
                $numRevisions = 0;
index c30d962..47884eb 100644 (file)
@@ -295,6 +295,7 @@ class SpecialExport extends SpecialPage {
                $form .= Xml::closeElement( 'form' );
 
                $out->addHTML( $form );
+               $this->addHelpLink( 'Help:Export' );
        }
 
        /**
@@ -371,9 +372,9 @@ class SpecialExport extends SpecialPage {
                        $buffer = WikiExporter::STREAM;
 
                        // This might take a while... :D
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        set_time_limit( 0 );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                }
 
                $exporter = new WikiExporter( $db, $history, $buffer );
index 8124f10..f9b8ac3 100644 (file)
@@ -303,6 +303,7 @@ class SpecialImport extends SpecialPage {
                $action = $this->getPageTitle()->getLocalURL( array( 'action' => 'submit' ) );
                $user = $this->getUser();
                $out = $this->getOutput();
+               $this->addHelpLink( '//meta.wikimedia.org/wiki/Special:MyLanguage/Help:Import', true );
                $importSources = $this->getConfig()->get( 'ImportSources' );
 
                if ( $user->isAllowed( 'importupload' ) ) {
index 75ff8f3..7ffaf48 100644 (file)
@@ -121,43 +121,41 @@ class LinkSearchPage extends QueryPage {
                        '<nowiki>' . $this->getLanguage()->commaList( $protocols_list ) . '</nowiki>',
                        count( $protocols_list )
                );
-               $s = Html::openElement(
-                       'form',
-                       array( 'id' => 'mw-linksearch-form', 'method' => 'get', 'action' => wfScript() )
-               ) . "\n" .
-                       Html::hidden( 'title', $this->getPageTitle()->getPrefixedDBkey() ) . "\n" .
-                       Html::openElement( 'fieldset' ) . "\n" .
-                       Html::element( 'legend', array(), $this->msg( 'linksearch' )->text() ) . "\n" .
-                       Xml::inputLabel(
-                               $this->msg( 'linksearch-pat' )->text(),
-                               'target',
-                               'target',
-                               50,
-                               $target,
-                               array(
-                                       // URLs are always ltr
-                                       'dir' => 'ltr',
-                               )
-                       ) . "\n";
-
+               $fields = array(
+                       'target' => array(
+                               'type' => 'text',
+                               'name' => 'target',
+                               'id' => 'target',
+                               'size' => 50,
+                               'label-message' => 'linksearch-pat',
+                               'default' => $target,
+                               'dir' => 'ltr',
+                       )
+               );
                if ( !$this->getConfig()->get( 'MiserMode' ) ) {
-                       $s .= Html::namespaceSelector(
-                               array(
-                                       'selected' => $namespace,
-                                       'all' => '',
-                                       'label' => $this->msg( 'linksearch-ns' )->text()
-                               ), array(
+                       $fields += array(
+                               'namespace' => array(
+                                       'class' => 'HTMLSelectNamespace',
                                        'name' => 'namespace',
+                                       'label-message' => 'linksearch-ns',
+                                       'default' => $namespace,
                                        'id' => 'namespace',
-                                       'class' => 'namespaceselector',
-                               )
+                                       'all' => '',
+                                       'cssclass' => 'namespaceselector',
+                               ),
                        );
                }
-
-               $s .= Xml::submitButton( $this->msg( 'linksearch-ok' )->text() ) . "\n" .
-                       Html::closeElement( 'fieldset' ) . "\n" .
-                       Html::closeElement( 'form' ) . "\n";
-               $out->addHTML( $s );
+               $hiddenFields = array(
+                       'title' => $this->getPageTitle()->getPrefixedDBkey(),
+               );
+               $htmlForm = HTMLForm::factory( 'inline', $fields, $this->getContext() );
+               $htmlForm->addHiddenFields( $hiddenFields );
+               $htmlForm->setSubmitTextMsg( 'linksearch-ok' );
+               $htmlForm->setWrapperLegendMsg( 'linksearch' );
+               $htmlForm->setAction( wfScript() );
+               $htmlForm->setMethod( 'get' );
+               $htmlForm->prepareForm()->displayForm( false );
+               $this->addHelpLink( 'Help:Linksearch' );
 
                if ( $target != '' ) {
                        $this->setParams( array(
index 1c1f125..a276197 100644 (file)
@@ -73,9 +73,9 @@ class SpecialLockdb extends FormSpecialPage {
                        return Status::newFatal( 'locknoconfirm' );
                }
 
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $fp = fopen( $this->getConfig()->get( 'ReadOnlyFile' ), 'w' );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( false === $fp ) {
                        # This used to show a file not found error, but the likeliest reason for fopen()
index b62de5d..8f14a41 100644 (file)
@@ -111,7 +111,11 @@ class MediaStatisticsPage extends QueryPage {
        protected function outputResults( $out, $skin, $dbr, $res, $num, $offset ) {
                $prevMediaType = null;
                foreach ( $res as $row ) {
-                       list( $mediaType, $mime, $totalCount, $totalBytes ) = $this->splitFakeTitle( $row->title );
+                       $mediaStats = $this->splitFakeTitle( $row->title );
+                       if ( count( $mediaStats ) < 4 ) {
+                               continue;
+                       }
+                       list( $mediaType, $mime, $totalCount, $totalBytes ) = $mediaStats;
                        if ( $prevMediaType !== $mediaType ) {
                                if ( $prevMediaType !== null ) {
                                        // We're not at beginning, so we have to
index b6cf8e4..1f0b6d4 100644 (file)
@@ -187,7 +187,7 @@ class SpecialMergeHistory extends SpecialPage {
                                '</form>'
                );
 
-               $out->addHelpLink( 'Help:Merge history' );
+               $this->addHelpLink( 'Help:Merge history' );
        }
 
        private function showHistory() {
index a519bd0..ae1fefe 100644 (file)
@@ -140,7 +140,7 @@ class MovePageForm extends UnlistedSpecialPage {
                $out = $this->getOutput();
                $out->setPageTitle( $this->msg( 'move-page', $this->oldTitle->getPrefixedText() ) );
                $out->addModules( 'mediawiki.special.movePage' );
-               $out->addHelpLink( 'Help:Moving a page' );
+               $this->addHelpLink( 'Help:Moving a page' );
 
                $newTitle = $this->newTitle;
 
index c8db1d8..5ef03f1 100644 (file)
@@ -79,7 +79,8 @@ class SpecialMycontributions extends RedirectSpecialPage {
        public function __construct() {
                parent::__construct( 'Mycontributions' );
                $this->mAllowedRedirectParams = array( 'limit', 'namespace', 'tagfilter',
-                       'offset', 'dir', 'year', 'month', 'feed' );
+                       'offset', 'dir', 'year', 'month', 'feed', 'deletedOnly',
+                       'nsInvert', 'associated', 'newOnly', 'topOnly' );
        }
 
        /**
index de19fa4..00c8e05 100644 (file)
@@ -31,7 +31,7 @@ class SpecialNewFiles extends IncludableSpecialPage {
                $this->outputHeader();
 
                $out = $this->getOutput();
-               $out->addHelpLink( 'Help:New images' );
+               $this->addHelpLink( 'Help:New images' );
 
                $pager = new NewFilesPager( $this->getContext(), $par );
 
index 594628f..899c736 100644 (file)
@@ -127,7 +127,7 @@ class SpecialNewpages extends IncludableSpecialPage {
                $this->showNavigation = !$this->including(); // Maybe changed in setup
                $this->setup( $par );
 
-               $out->addHelpLink( 'Help:New pages' );
+               $this->addHelpLink( 'Help:New pages' );
 
                if ( !$this->including() ) {
                        // Settings
index 79b2444..9476819 100644 (file)
@@ -87,7 +87,10 @@ class SpecialPageLanguage extends FormSpecialPage {
        }
 
        protected function postText() {
-               return $this->showLogFragment( $this->par );
+               if ( $this->par ) {
+                       return $this->showLogFragment( $this->par );
+               }
+               return '';
        }
 
        protected function getDisplayFormat() {
index ef61f94..7371da7 100644 (file)
@@ -55,7 +55,7 @@ class SpecialPreferences extends SpecialPage {
                        );
                }
 
-               $out->addHelpLink( 'Help:Preferences' );
+               $this->addHelpLink( 'Help:Preferences' );
 
                $htmlForm = Preferences::getFormObject( $this->getUser(), $this->getContext() );
                $htmlForm->setSubmitCallback( array( 'Preferences', 'tryUISubmit' ) );
index b6f19ec..b5c9e19 100644 (file)
@@ -68,7 +68,7 @@ class SpecialRandomInCategory extends FormSpecialPage {
        }
 
        protected function getFormFields() {
-               $this->getOutput()->addHelpLink( 'Help:RandomInCategory' );
+               $this->addHelpLink( 'Help:RandomInCategory' );
 
                $form = array(
                        'category' => array(
index 7dc1158..96d512c 100644 (file)
@@ -57,6 +57,10 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                        return;
                }
 
+               $this->addHelpLink(
+                       '//meta.wikimedia.org/wiki/Special:MyLanguage/Help:Recent_changes',
+                       true
+               );
                parent::execute( $subpage );
        }
 
index 3ad9f0f..3c403fe 100644 (file)
@@ -244,6 +244,7 @@ class SpecialRecentChangesLinked extends SpecialRecentChanges {
                        Xml::check( 'showlinkedto', $opts['showlinkedto'], array( 'id' => 'showlinkedto' ) ) . ' ' .
                        Xml::label( $this->msg( 'recentchangeslinked-to' )->text(), 'showlinkedto' ) );
 
+               $this->addHelpLink( 'Help:Related changes' );
                return $extraOpts;
        }
 
index 62025e7..7e842d5 100644 (file)
@@ -158,6 +158,13 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                        $this->ids
                );
 
+               # We need a target page!
+               if ( $this->targetObj === null ) {
+                       $output->addWikiMsg( 'undelete-header' );
+
+                       return;
+               }
+
                $this->typeLabels = self::$UILabels[$this->typeName];
                $list = $this->getList();
                $list->reset();
@@ -169,12 +176,6 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                $this->mIsAllowed = $this->mIsAllowed && !( $canViewSuppressedOnly && $pageIsSuppressed );
 
                $this->otherReason = $request->getVal( 'wpReason' );
-               # We need a target page!
-               if ( is_null( $this->targetObj ) ) {
-                       $output->addWikiMsg( 'undelete-header' );
-
-                       return;
-               }
                # Give a link to the logs/hist for this page
                $this->showConvenienceLinks();
 
@@ -368,7 +369,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                $out->wrapWikiMsg( "<strong>$1</strong>", array( $this->typeLabels['selected'],
                        $this->getLanguage()->formatNum( count( $this->ids ) ), $this->targetObj->getPrefixedText() ) );
 
-               $out->addHelpLink( 'Help:RevisionDelete' );
+               $this->addHelpLink( 'Help:RevisionDelete' );
                $out->addHTML( "<ul>" );
 
                $numRevisions = 0;
@@ -450,9 +451,8 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                                Xml::closeElement( 'form' ) . "\n";
                        // Show link to edit the dropdown reasons
                        if ( $this->getUser()->isAllowed( 'editinterface' ) ) {
-                               $title = Title::makeTitle( NS_MEDIAWIKI, 'Revdelete-reason-dropdown' );
                                $link = Linker::link(
-                                       $title,
+                                       $this->msg( 'revdelete-reason-dropdown' )->inContentLanguage()->getTitle(),
                                        $this->msg( 'revdelete-edit-reasonlist' )->escaped(),
                                        array(),
                                        array( 'action' => 'edit' )
@@ -586,7 +586,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                        throw new PermissionsError( 'suppressrevision' );
                }
                # If the save went through, go to success message...
-               $status = $this->save( $bitParams, $comment, $this->targetObj );
+               $status = $this->save( $bitParams, $comment );
                if ( $status->isGood() ) {
                        $this->success();
 
@@ -652,14 +652,13 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
 
        /**
         * Do the write operations. Simple wrapper for RevDel*List::setVisibility().
-        * @param int $bitfield
+        * @param array $bitPars ExtractBitParams() bitfield array
         * @param string $reason
-        * @param Title $title
         * @return Status
         */
-       protected function save( $bitfield, $reason, $title ) {
+       protected function save( array $bitPars, $reason ) {
                return $this->getList()->setVisibility(
-                       array( 'value' => $bitfield, 'comment' => $reason )
+                       array( 'value' => $bitPars, 'comment' => $reason )
                );
        }
 
index 8cf9367..286a745 100644 (file)
@@ -38,14 +38,14 @@ class SpecialRunJobs extends UnlistedSpecialPage {
                $this->getOutput()->disable();
 
                if ( wfReadOnly() ) {
-                       header( "HTTP/1.0 423 Locked" );
+                       // HTTP 423 Locked
+                       HttpStatus::header( 423 );
                        print 'Wiki is in read-only mode';
 
                        return;
                } elseif ( !$this->getRequest()->wasPosted() ) {
-                       header( "HTTP/1.0 400 Bad Request" );
+                       HttpStatus::header( 400 );
                        print 'Request must be POSTed';
-
                        return;
                }
 
@@ -55,9 +55,8 @@ class SpecialRunJobs extends UnlistedSpecialPage {
                $params = array_intersect_key( $this->getRequest()->getValues(), $required + $optional );
                $missing = array_diff_key( $required, $params );
                if ( count( $missing ) ) {
-                       header( "HTTP/1.0 400 Bad Request" );
+                       HttpStatus::header( 400 );
                        print 'Missing parameters: ' . implode( ', ', array_keys( $missing ) );
-
                        return;
                }
 
@@ -69,9 +68,8 @@ class SpecialRunJobs extends UnlistedSpecialPage {
                $verified = is_string( $providedSignature )
                        && hash_equals( $correctSignature, $providedSignature );
                if ( !$verified || $params['sigexpiry'] < time() ) {
-                       header( "HTTP/1.0 400 Bad Request" );
+                       HttpStatus::header( 400 );
                        print 'Invalid or stale signature provided';
-
                        return;
                }
 
@@ -83,7 +81,8 @@ class SpecialRunJobs extends UnlistedSpecialPage {
                        // but it needs to know when it is safe to disconnect. Until this
                        // reaches ignore_user_abort(), it is not safe as the jobs won't run.
                        ignore_user_abort( true ); // jobs may take a bit of time
-                       header( "HTTP/1.0 202 Accepted" );
+                       // HTTP 202 Accepted
+                       HttpStatus::header( 202 );
                        ob_flush();
                        flush();
                        // Once the client receives this response, it can disconnect
index ed3ad5b..eaa9007 100644 (file)
@@ -45,7 +45,7 @@ class SpecialSpecialpages extends UnlistedSpecialPage {
                        return;
                }
 
-               $out->addHelpLink( 'Help:Special pages' );
+               $this->addHelpLink( 'Help:Special pages' );
                $this->outputPageList( $groups );
        }
 
index 0acbf95..652ea82 100644 (file)
@@ -78,7 +78,7 @@ class SpecialStatistics extends SpecialPage {
 
                # Statistic - other
                $extraStats = array();
-               if ( Hooks::run( 'SpecialStatsAddExtra', array( &$extraStats ) ) ) {
+               if ( Hooks::run( 'SpecialStatsAddExtra', array( &$extraStats, $this->getContext() ) ) ) {
                        $text .= $this->getOtherStats( $extraStats );
                }
 
@@ -108,7 +108,8 @@ class SpecialStatistics extends SpecialPage {
                if ( $descMsg ) {
                        $msg = $this->msg( $descMsg, $descMsgParam );
                        if ( $msg->exists() ) {
-                               $descriptionText = $this->msg( 'parentheses' )->rawParams( $msg->parse() )->escaped();
+                               $descriptionText = $this->msg( 'parentheses' )->rawParams( $msg->parse() )
+                                       ->escaped();
                                $text .= "<br />" . Xml::element( 'small', array( 'class' => 'mw-statistic-desc' ),
                                        " $descriptionText" );
                        }
@@ -127,7 +128,8 @@ class SpecialStatistics extends SpecialPage {
         */
        private function getPageStats() {
                $pageStatsHtml = Xml::openElement( 'tr' ) .
-                       Xml::tags( 'th', array( 'colspan' => '2' ), $this->msg( 'statistics-header-pages' )->parse() ) .
+                       Xml::tags( 'th', array( 'colspan' => '2' ), $this->msg( 'statistics-header-pages' )
+                               ->parse() ) .
                        Xml::closeElement( 'tr' ) .
                                $this->formatRow( Linker::linkKnown( SpecialPage::getTitleFor( 'Allpages' ),
                                        $this->msg( 'statistics-articles' )->parse() ),
@@ -140,7 +142,8 @@ class SpecialStatistics extends SpecialPage {
 
                // Show the image row only, when there are files or upload is possible
                if ( $this->images !== 0 || $this->getConfig()->get( 'EnableUploads' ) ) {
-                       $pageStatsHtml .= $this->formatRow( Linker::linkKnown( SpecialPage::getTitleFor( 'MediaStatistics' ),
+                       $pageStatsHtml .= $this->formatRow(
+                               Linker::linkKnown( SpecialPage::getTitleFor( 'MediaStatistics' ),
                                $this->msg( 'statistics-files' )->parse() ),
                                $this->getLanguage()->formatNum( $this->images ),
                                array( 'class' => 'mw-statistics-files' ) );
@@ -151,7 +154,8 @@ class SpecialStatistics extends SpecialPage {
 
        private function getEditStats() {
                return Xml::openElement( 'tr' ) .
-                       Xml::tags( 'th', array( 'colspan' => '2' ), $this->msg( 'statistics-header-edits' )->parse() ) .
+                       Xml::tags( 'th', array( 'colspan' => '2' ),
+                               $this->msg( 'statistics-header-edits' )->parse() ) .
                        Xml::closeElement( 'tr' ) .
                        $this->formatRow( $this->msg( 'statistics-edits' )->parse(),
                                $this->getLanguage()->formatNum( $this->edits ),
@@ -166,7 +170,8 @@ class SpecialStatistics extends SpecialPage {
 
        private function getUserStats() {
                return Xml::openElement( 'tr' ) .
-                       Xml::tags( 'th', array( 'colspan' => '2' ), $this->msg( 'statistics-header-users' )->parse() ) .
+                       Xml::tags( 'th', array( 'colspan' => '2' ),
+                               $this->msg( 'statistics-header-users' )->parse() ) .
                        Xml::closeElement( 'tr' ) .
                        $this->formatRow( $this->msg( 'statistics-users' )->parse(),
                                $this->getLanguage()->formatNum( $this->users ),
@@ -229,7 +234,8 @@ class SpecialStatistics extends SpecialPage {
                        }
                        $text .= $this->formatRow( $grouppage . ' ' . $grouplink,
                                $this->getLanguage()->formatNum( $countUsers ),
-                               array( 'class' => 'statistics-group-' . Sanitizer::escapeClass( $group ) . $classZero ) );
+                               array( 'class' => 'statistics-group-' . Sanitizer::escapeClass( $group ) .
+                                       $classZero ) );
                }
 
                return $text;
@@ -256,12 +262,17 @@ class SpecialStatistics extends SpecialPage {
 
                                // Collect all items that belong to the same header
                                foreach ( $items as $key => $value ) {
-                                       $name = $this->msg( $key )->parse();
-                                       $number = htmlspecialchars( $value );
+                                       if ( is_array( $value ) ) {
+                                               $name = $value['name'];
+                                               $number = $value['number'];
+                                       } else {
+                                               $name = $this->msg( $key )->parse();
+                                               $number = $value;
+                                       }
 
                                        $return .= $this->formatRow(
                                                $name,
-                                               $this->getLanguage()->formatNum( $number ),
+                                               $this->getLanguage()->formatNum( htmlspecialchars( $number ) ),
                                                array( 'class' => 'mw-statistics-hook', 'id' => 'mw-' . $key )
                                        );
                                }
index 0b8147e..64c2cf3 100644 (file)
@@ -160,7 +160,7 @@ class SpecialTags extends SpecialPage {
                if ( $user->isAllowed( 'editinterface' ) ) {
                        $disp .= ' ';
                        $editLink = Linker::link(
-                               Title::makeTitle( NS_MEDIAWIKI, "Tag-$tag" ),
+                               $this->msg( "tag-$tag" )->inContentLanguage()->getTitle(),
                                $this->msg( 'tags-edit' )->escaped()
                        );
                        $disp .= $this->msg( 'parentheses' )->rawParams( $editLink )->escaped();
@@ -172,7 +172,7 @@ class SpecialTags extends SpecialPage {
                if ( $user->isAllowed( 'editinterface' ) ) {
                        $desc .= ' ';
                        $editDescLink = Linker::link(
-                               Title::makeTitle( NS_MEDIAWIKI, "Tag-$tag-description" ),
+                               $this->msg( "tag-$tag-description" )->inContentLanguage()->getTitle(),
                                $this->msg( 'tags-edit' )->escaped()
                        );
                        $desc .= $this->msg( 'parentheses' )->rawParams( $editDescLink )->escaped();
index de2365e..8a66273 100644 (file)
@@ -756,7 +756,7 @@ class SpecialUndelete extends SpecialPage {
         * @param User $user
         * @return bool
         */
-       private function isAllowed( $permission, User $user = null ) {
+       protected function isAllowed( $permission, User $user = null ) {
                $user = $user ? : $this->getUser();
                if ( $this->mTargetObj !== null ) {
                        return $this->mTargetObj->userCan( $permission, $user );
@@ -791,7 +791,7 @@ class SpecialUndelete extends SpecialPage {
                        return;
                }
 
-               $out->addHelpLink( 'Help:Undelete' );
+               $this->addHelpLink( 'Help:Undelete' );
                if ( $this->mAllowed ) {
                        $out->setPageTitle( $this->msg( 'undeletepage' ) );
                } else {
@@ -1206,7 +1206,7 @@ class SpecialUndelete extends SpecialPage {
                $repo->streamFile( $path );
        }
 
-       private function showHistory() {
+       protected function showHistory() {
                $out = $this->getOutput();
                if ( $this->mAllowed ) {
                        $out->addModules( 'mediawiki.special.undelete' );
@@ -1377,7 +1377,7 @@ class SpecialUndelete extends SpecialPage {
                return true;
        }
 
-       private function formatRevisionRow( $row, $earliestLiveTime, $remaining ) {
+       protected function formatRevisionRow( $row, $earliestLiveTime, $remaining ) {
                $rev = Revision::newFromArchiveRow( $row,
                        array(
                                'title' => $this->mTargetObj
index a8b97d7..dc03a4a 100644 (file)
@@ -65,9 +65,9 @@ class SpecialUnlockdb extends FormSpecialPage {
                }
 
                $readOnlyFile = $this->getConfig()->get( 'ReadOnlyFile' );
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $res = unlink( $readOnlyFile );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( $res ) {
                        return Status::newGood();
index 3f1ea42..1618527 100644 (file)
@@ -160,7 +160,7 @@ class SpecialUpload extends SpecialPage {
                        throw new ErrorPageError( 'uploaddisabled', 'uploaddisabledtext' );
                }
 
-               $this->getOutput()->addHelpLink( 'Help:Managing files' );
+               $this->addHelpLink( 'Help:Managing files' );
 
                # Check permissions
                $user = $this->getUser();
@@ -818,7 +818,7 @@ class UploadForm extends HTMLForm {
                # Add a link to edit MediaWik:Licenses
                if ( $this->getUser()->isAllowed( 'editinterface' ) ) {
                        $licensesLink = Linker::link(
-                               Title::makeTitle( NS_MEDIAWIKI, 'Licenses' ),
+                               $this->msg( 'licenses' )->inContentLanguage()->getTitle(),
                                $this->msg( 'licenses-edit' )->escaped(),
                                array(),
                                array( 'action' => 'edit' )
index c4da642..64a6f72 100644 (file)
@@ -710,7 +710,11 @@ class LoginForm extends SpecialPage {
                }
 
                $u = User::newFromName( $this->mUsername );
+               if ( $u === false ) {
+                       return self::ILLEGAL;
+               }
 
+               $msg = null;
                // Give extensions a way to indicate the username has been updated,
                // rather than telling the user the account doesn't exist.
                if ( !Hooks::run( 'LoginUserMigrated', array( $u, &$msg ) ) ) {
@@ -718,7 +722,7 @@ class LoginForm extends SpecialPage {
                        return self::USER_MIGRATED;
                }
 
-               if ( !( $u instanceof User ) || !User::isUsableName( $u->getName() ) ) {
+               if ( !User::isUsableName( $u->getName() ) ) {
                        return self::ILLEGAL;
                }
 
@@ -736,7 +740,6 @@ class LoginForm extends SpecialPage {
 
                // Give general extensions, such as a captcha, a chance to abort logins
                $abort = self::ABORTED;
-               $msg = null;
                if ( !Hooks::run( 'AbortLogin', array( $u, $this->mPassword, &$abort, &$msg ) ) ) {
                        $this->mAbortLoginErrorMsg = $msg;
 
index 785a844..758e3c0 100644 (file)
@@ -135,7 +135,7 @@ class UserrightsPage extends SpecialPage {
 
                $out = $this->getOutput();
                $out->addModuleStyles( 'mediawiki.special' );
-               $out->addHelpLink( 'Help:Assigning permissions' );
+               $this->addHelpLink( 'Help:Assigning permissions' );
 
                // show the general form
                if ( count( $available['add'] ) || count( $available['remove'] ) ) {
index 620c736..4442d81 100644 (file)
@@ -1146,9 +1146,9 @@ class SpecialVersion extends SpecialPage {
                        }
 
                        // SimpleXml whines about the xmlns...
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $xml = simplexml_load_file( $entries );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
 
                        if ( $xml ) {
                                foreach ( $xml->entry as $entry ) {
index df9d363..20f5776 100644 (file)
@@ -43,6 +43,7 @@ class SpecialWatchlist extends ChangesListSpecialPage {
 
                $output = $this->getOutput();
                $request = $this->getRequest();
+               $this->addHelpLink( 'Help:Watching pages' );
 
                $mode = SpecialEditWatchlist::getMode( $request, $subpage );
                if ( $mode !== false ) {
index 0b3175a..be77e62 100644 (file)
@@ -46,6 +46,7 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
 
                $this->setHeaders();
                $this->outputHeader();
+               $this->addHelpLink( 'Help:What links here' );
 
                $opts = new FormOptions();
 
index e747778..fb89e4f 100644 (file)
@@ -30,12 +30,20 @@ class MalformedTitleException extends Exception {
        /**
         * @param string $errorMessage Localisation message describing the error (since MW 1.26)
         * @param string $titleText The invalid title text (since MW 1.26)
-        * @param string[] $errorMessageParameters Additional parameters for the error message (since MW 1.26)
+        * @param string[] $errorMessageParameters Additional parameters for the error message. $titleText will be appended if it's not null. (since MW 1.26)
         */
        public function __construct( $errorMessage = null, $titleText = null, $errorMessageParameters = array() ) {
                $this->errorMessage = $errorMessage;
                $this->titleText = $titleText;
+               if ( $titleText !== null ) {
+                       $errorMessageParameters[] = $titleText;
+               }
                $this->errorMessageParameters = $errorMessageParameters;
+
+               // Supply something useful for Exception::getMessage() to return.
+               $enMsg = wfMessage( $errorMessage, $errorMessageParameters );
+               $enMsg->inLanguage( 'en' )->useDatabase( false );
+               parent::__construct( $enMsg->text() );
        }
 
        /**
@@ -45,7 +53,7 @@ class MalformedTitleException extends Exception {
        public function getTitleText() {
                return $this->titleText;
        }
-       
+
        /**
         * @since 1.26
         * @return string|null
@@ -53,7 +61,7 @@ class MalformedTitleException extends Exception {
        public function getErrorMessage() {
                return $this->errorMessage;
        }
-       
+
        /**
         * @since 1.26
         * @return string[]
index 98cec59..01575ac 100644 (file)
@@ -358,7 +358,8 @@ class MediaWikiTitleCodec implements TitleFormatter, TitleParser {
                # to subpage syntax for long titles, e.g. [[Special:Block/Long name]]
                $maxLength = ( $parts['namespace'] != NS_SPECIAL ) ? 255 : 512;
                if ( strlen( $dbkey ) > $maxLength ) {
-                       throw new MalformedTitleException( 'title-invalid-too-long', $text, array( $maxLength ) );
+                       throw new MalformedTitleException( 'title-invalid-too-long', $text,
+                               array( Message::numParam( $maxLength ) ) );
                }
 
                # Normally, all wiki links are forced to have an initial capital letter so [[foo]]
index 5cac347..a0f3b6f 100644 (file)
@@ -21,6 +21,7 @@
  * @license GPL 2+
  * @author Daniel Kinzler
  */
+use Wikimedia\Assert\Assert;
 
 /**
  * Represents a page (or page fragment) title within %MediaWiki.
@@ -67,26 +68,13 @@ class TitleValue {
         * @throws InvalidArgumentException
         */
        public function __construct( $namespace, $dbkey, $fragment = '' ) {
-               if ( !is_int( $namespace ) ) {
-                       throw new InvalidArgumentException( '$namespace must be an integer' );
-               }
-
-               if ( !is_string( $dbkey ) ) {
-                       throw new InvalidArgumentException( '$dbkey must be a string' );
-               }
+               Assert::parameterType( 'integer', $namespace, '$namespace' );
+               Assert::parameterType( 'string', $dbkey, '$dbkey' );
+               Assert::parameterType( 'string', $fragment, '$fragment' );
 
                // Sanity check, no full validation or normalization applied here!
-               if ( preg_match( '/^_|[ \r\n\t]|_$/', $dbkey ) ) {
-                       throw new InvalidArgumentException( '$dbkey must be a valid DB key: ' . $dbkey );
-               }
-
-               if ( !is_string( $fragment ) ) {
-                       throw new InvalidArgumentException( '$fragment must be a string' );
-               }
-
-               if ( $dbkey === '' ) {
-                       throw new InvalidArgumentException( '$dbkey must not be empty' );
-               }
+               Assert::parameter( !preg_match( '/^_|[ \r\n\t]|_$/', $dbkey ), '$dbkey', 'invalid DB key' );
+               Assert::parameter( $dbkey !== '', '$dbkey', 'should not be empty' );
 
                $this->namespace = $namespace;
                $this->dbkey = $dbkey;
index 6da8250..f17681c 100644 (file)
@@ -746,11 +746,11 @@ abstract class UploadBase {
                $file = $this->getLocalFile();
 
                foreach ( $sizes as $size ) {
-                       if ( $file->isVectorized()
-                               || $file->getWidth() > $size ) {
-                                       $jobs[] = new ThumbnailRenderJob( $file->getTitle(), array(
-                                               'transformParams' => array( 'width' => $size ),
-                                       ) );
+                       if ( $file->isVectorized() || $file->getWidth() > $size ) {
+                               $jobs[] = new ThumbnailRenderJob(
+                                       $file->getTitle(),
+                                       array( 'transformParams' => array( 'width' => $size ) )
+                               );
                        }
                }
 
@@ -1221,9 +1221,9 @@ abstract class UploadBase {
                // detect the encoding in case is specifies an encoding not whitelisted in self::$safeXmlEncodings
                $attemptEncodings = array( 'UTF-16', 'UTF-16BE', 'UTF-32', 'UTF-32BE' );
                foreach ( $attemptEncodings as $encoding ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $str = iconv( $encoding, 'UTF-8', $contents );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        if ( $str != '' && preg_match( "!<\?xml\b(.*?)\?>!si", $str, $matches ) ) {
                                if ( preg_match( $encodingRegex, $matches[1], $encMatch )
                                        && !in_array( strtoupper( $encMatch[1] ), self::$safeXmlEncodings )
@@ -1266,7 +1266,7 @@ abstract class UploadBase {
                                return array( 'uploadscriptednamespace', $this->mSVGNSError );
                        }
 
-                       return array( 'uploadscripted' );
+                       return $check->filterMatchType;
                }
 
                return false;
@@ -1281,7 +1281,7 @@ abstract class UploadBase {
        public static function checkSvgPICallback( $target, $data ) {
                // Don't allow external stylesheets (bug 57550)
                if ( preg_match( '/xml-stylesheet/i', $target ) ) {
-                       return true;
+                       return array( 'upload-scripted-pi-callback' );
                }
 
                return false;
@@ -1353,7 +1353,7 @@ abstract class UploadBase {
                if ( $strippedElement == 'script' ) {
                        wfDebug( __METHOD__ . ": Found script element '$element' in uploaded file.\n" );
 
-                       return true;
+                       return array( 'uploaded-script-svg', $strippedElement );
                }
 
                # e.g., <svg xmlns="http://www.w3.org/2000/svg">
@@ -1361,21 +1361,21 @@ abstract class UploadBase {
                if ( $strippedElement == 'handler' ) {
                        wfDebug( __METHOD__ . ": Found scriptable element '$element' in uploaded file.\n" );
 
-                       return true;
+                       return array( 'uploaded-script-svg', $strippedElement );
                }
 
                # SVG reported in Feb '12 that used xml:stylesheet to generate javascript block
                if ( $strippedElement == 'stylesheet' ) {
                        wfDebug( __METHOD__ . ": Found scriptable element '$element' in uploaded file.\n" );
 
-                       return true;
+                       return array( 'uploaded-script-svg', $strippedElement );
                }
 
                # Block iframes, in case they pass the namespace check
                if ( $strippedElement == 'iframe' ) {
                        wfDebug( __METHOD__ . ": iframe in uploaded file.\n" );
 
-                       return true;
+                       return array( 'uploaded-script-svg', $strippedElement );
                }
 
                # Check <style> css
@@ -1383,7 +1383,7 @@ abstract class UploadBase {
                        && self::checkCssFragment( Sanitizer::normalizeCss( $data ) )
                ) {
                        wfDebug( __METHOD__ . ": hostile css in style element.\n" );
-                       return true;
+                       return array( 'uploaded-hostile-svg' );
                }
 
                foreach ( $attribs as $attrib => $value ) {
@@ -1394,7 +1394,7 @@ abstract class UploadBase {
                                wfDebug( __METHOD__
                                        . ": Found event-handler attribute '$attrib'='$value' in uploaded file.\n" );
 
-                               return true;
+                               return array( 'uploaded-event-handler-on-svg', $attrib, $value );
                        }
 
                        # href with non-local target (don't allow http://, javascript:, etc)
@@ -1408,7 +1408,7 @@ abstract class UploadBase {
                                        wfDebug( __METHOD__ . ": Found href attribute <$strippedElement "
                                                . "'$attrib'='$value' in uploaded file.\n" );
 
-                                       return true;
+                                       return array( 'uploaded-href-attribute-svg', $strippedElement, $attrib, $value );
                                }
                        }
 
@@ -1420,7 +1420,7 @@ abstract class UploadBase {
                                if ( !preg_match( "!^data:\s*image/(gif|jpeg|jpg|png)$parameters,!i", $value ) ) {
                                        wfDebug( __METHOD__ . ": Found href to unwhitelisted data: uri "
                                                . "\"<$strippedElement '$attrib'='$value'...\" in uploaded file.\n" );
-                                       return true;
+                                       return array( 'uploaded-href-unsafe-target-svg', $strippedElement, $attrib, $value );
                                }
                        }
 
@@ -1432,7 +1432,7 @@ abstract class UploadBase {
                                wfDebug( __METHOD__ . ": Found animate that might be changing href using from "
                                        . "\"<$strippedElement '$attrib'='$value'...\" in uploaded file.\n" );
 
-                               return true;
+                               return array( 'uploaded-animate-svg', $strippedElement, $attrib, $value );
                        }
 
                        # use set/animate to add event-handler attribute to parent
@@ -1443,7 +1443,7 @@ abstract class UploadBase {
                                wfDebug( __METHOD__ . ": Found svg setting event-handler attribute with "
                                        . "\"<$strippedElement $stripped='$value'...\" in uploaded file.\n" );
 
-                               return true;
+                               return array( 'uploaded-setting-event-handler-svg', $strippedElement, $stripped, $value );
                        }
 
                        # use set to add href attribute to parent element
@@ -1453,7 +1453,7 @@ abstract class UploadBase {
                        ) {
                                wfDebug( __METHOD__ . ": Found svg setting href attribute '$value' in uploaded file.\n" );
 
-                               return true;
+                               return array( 'uploaded-setting-href-svg' );
                        }
 
                        # use set to add a remote / data / script target to an element
@@ -1463,7 +1463,7 @@ abstract class UploadBase {
                        ) {
                                wfDebug( __METHOD__ . ": Found svg setting attribute to '$value' in uploaded file.\n" );
 
-                               return true;
+                               return array( 'uploaded-wrong-setting-svg', $value );
                        }
 
                        # use handler attribute with remote / data / script
@@ -1471,7 +1471,7 @@ abstract class UploadBase {
                                wfDebug( __METHOD__ . ": Found svg setting handler with remote/data/script "
                                        . "'$attrib'='$value' in uploaded file.\n" );
 
-                               return true;
+                               return array( 'uploaded-setting-handler-svg', $attrib, $value );
                        }
 
                        # use CSS styles to bring in remote code
@@ -1480,7 +1480,7 @@ abstract class UploadBase {
                        ) {
                                wfDebug( __METHOD__ . ": Found svg setting a style with "
                                        . "remote url '$attrib'='$value' in uploaded file.\n" );
-                               return true;
+                               return array( 'uploaded-remote-url-svg', $attrib, $value );
                        }
 
                        # Several attributes can include css, css character escaping isn't allowed
@@ -1491,7 +1491,7 @@ abstract class UploadBase {
                        ) {
                                wfDebug( __METHOD__ . ": Found svg setting a style with "
                                        . "remote url '$attrib'='$value' in uploaded file.\n" );
-                               return true;
+                               return array( 'uploaded-remote-url-svg', $attrib, $value );
                        }
 
                        # image filters can pull in url, which could be svg that executes scripts
@@ -1502,7 +1502,7 @@ abstract class UploadBase {
                                wfDebug( __METHOD__ . ": Found image filter with url: "
                                        . "\"<$strippedElement $stripped='$value'...\" in uploaded file.\n" );
 
-                               return true;
+                               return array( 'uploaded-image-filter-svg', $strippedElement, $stripped, $value );
                        }
                }
 
index 9cf8cab..dd1a38a 100644 (file)
@@ -126,45 +126,78 @@ class AutoloadGenerator {
         *  developers towards the appropriate way to update the autoload.
         */
        public function generateAutoload( $commandName = 'AutoloadGenerator' ) {
-               $content = array();
 
-               // We need to generate a line each rather than exporting the
-               // full array so __DIR__ can be prepended to all the paths
-               $format = "%s => __DIR__ . %s,";
-               foreach ( $this->classes as $path => $contained ) {
-                       $exportedPath = var_export( $path, true );
-                       foreach ( $contained as $fqcn ) {
+               // We need to check whether an extenson.json exists or not, and
+               // incase it doesn't, update the autoload.php file.
+
+               if ( file_exists( $this->basepath . '/extension.json' ) ) {
+                       require_once __DIR__ . '/../../includes/json/FormatJson.php';
+                       $key = 'AutoloadClasses';
+                       $json = FormatJson::decode( file_get_contents( $this->basepath
+                               . '/extension.json' ), true );
+                       unset( $json[$key] );
+                       // Inverting the key-value pairs so that they become of the
+                       // format class-name : path when they get converted into json.
+                       foreach ( $this->classes as $path => $contained ) {
+                               foreach ( $contained as $fqcn ) {
+
+                                       // Using substr to remove the leading '/'
+                                       $json[$key][$fqcn] = substr( $path, 1 );
+                               }
+                       }
+                       foreach ( $this->overrides as $path => $fqcn ) {
+
+                               // Using substr to remove the leading '/'
+                               $json[$key][$fqcn] = substr( $path, 1 );
+                       }
+
+                       // Sorting the list of autoload classes.
+                       ksort( $json[$key] );
+
+                       // Update extension.json, using constants for the required
+                       // formatting.
+                       file_put_contents( $this->basepath . '/extension.json',
+                               FormatJson::encode( $json, true ) . "\n" );
+               } else {
+                       $content = array();
+
+                       // We need to generate a line each rather than exporting the
+                       // full array so __DIR__ can be prepended to all the paths
+                       $format = "%s => __DIR__ . %s,";
+                       foreach ( $this->classes as $path => $contained ) {
+                               $exportedPath = var_export( $path, true );
+                               foreach ( $contained as $fqcn ) {
+                                       $content[$fqcn] = sprintf(
+                                               $format,
+                                               var_export( $fqcn, true ),
+                                               $exportedPath
+                                       );
+                               }
+                       }
+
+                       foreach ( $this->overrides as $fqcn => $path ) {
                                $content[$fqcn] = sprintf(
                                        $format,
                                        var_export( $fqcn, true ),
-                                       $exportedPath
+                                       var_export( $path, true )
                                );
                        }
-               }
 
-               foreach ( $this->overrides as $fqcn => $path ) {
-                       $content[$fqcn] = sprintf(
-                               $format,
-                               var_export( $fqcn, true ),
-                               var_export( $path, true )
-                       );
-               }
-
-               // sort for stable output
-               ksort( $content );
+                       // sort for stable output
+                       ksort( $content );
 
-               // extensions using this generator are appending to the existing
-               // autoload.
-               if ( $this->variableName === 'wgAutoloadClasses' ) {
-                       $op = '+=';
-               } else {
-                       $op = '=';
-               }
+                       // extensions using this generator are appending to the existing
+                       // autoload.
+                       if ( $this->variableName === 'wgAutoloadClasses' ) {
+                               $op = '+=';
+                       } else {
+                               $op = '=';
+                       }
 
-               $output = implode( "\n\t", $content );
-               file_put_contents(
-                       $this->basepath . '/autoload.php',
-                       <<<EOD
+                       $output = implode( "\n\t", $content );
+                       file_put_contents(
+                               $this->basepath . '/autoload.php',
+                               <<<EOD
 <?php
 // This file is generated by $commandName, do not adjust manually
 // @codingStandardsIgnoreFile
@@ -175,9 +208,9 @@ global \${$this->variableName};
 );
 
 EOD
-               );
+                       );
+               }
        }
-
        /**
         * Ensure that Unix-style path separators ("/") are used in the path.
         *
index 4441236..dfcbe78 100644 (file)
@@ -375,6 +375,8 @@ class IP {
                                '127.0.0.0/8', # loopback
                                'fc00::/7', # RFC 4193 (local)
                                '0:0:0:0:0:0:0:1', # loopback
+                               '169.254.0.0/16', # link-local
+                               'fe80::/10', # link-local
                        ) );
                }
                return !$privateSet->match( $ip );
index e6c0e78..f223790 100644 (file)
@@ -96,9 +96,9 @@ class MWCryptRand {
                }
 
                foreach ( $files as $file ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $stat = stat( $file );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        if ( $stat ) {
                                // stat() duplicates data into numeric and string keys so kill off all the numeric ones
                                foreach ( $stat as $k => $v ) {
@@ -363,9 +363,9 @@ class MWCryptRand {
                        }
                        // /dev/urandom is generally considered the best possible commonly
                        // available random source, and is available on most *nix systems.
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $urandom = fopen( "/dev/urandom", "rb" );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
 
                        // Attempt to read all our random data from urandom
                        // php's fread always does buffered reads based on the stream's chunk_size
diff --git a/includes/utils/MWFunction.php b/includes/utils/MWFunction.php
deleted file mode 100644 (file)
index fa7eebe..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-/**
- * Helper methods to call functions and instance objects.
- *
- * 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 MWFunction {
-
-       /**
-        * @param string $class
-        * @param array $args
-        * @return object
-        * @deprecated 1.25 Use ObjectFactory::getObjectFromSpec() instead
-        */
-       public static function newObj( $class, $args = array() ) {
-               wfDeprecated( __METHOD__, '1.25' );
-
-               return ObjectFactory::getObjectFromSpec( array(
-                       'class' => $class,
-                       'args' => $args,
-                       'closure_expansion' => false,
-               ) );
-       }
-}
index 9241587..2d7d932 100644 (file)
@@ -20,6 +20,7 @@
  * @file
  * @author Aaron Schulz
  */
+use Wikimedia\Assert\Assert;
 
 /**
  * Class for getting statistically unique IDs
@@ -51,7 +52,7 @@ class UIDGenerator {
                }
                // Try to get some ID that uniquely identifies this machine (RFC 4122)...
                if ( !preg_match( '/^[0-9a-f]{12}$/i', $nodeId ) ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        if ( wfIsWindows() ) {
                                // http://technet.microsoft.com/en-us/library/bb490913.aspx
                                $csv = trim( wfShellExec( 'getmac /NH /FO CSV' ) );
@@ -65,7 +66,7 @@ class UIDGenerator {
                                        wfShellExec( '/sbin/ifconfig -a' ), $m );
                                $nodeId = isset( $m[1] ) ? str_replace( ':', '', $m[1] ) : '';
                        }
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        if ( !preg_match( '/^[0-9a-f]{12}$/i', $nodeId ) ) {
                                $nodeId = MWCryptRand::generateHex( 12, true );
                                $nodeId[1] = dechex( hexdec( $nodeId[1] ) | 0x1 ); // set multicast bit
@@ -107,9 +108,10 @@ class UIDGenerator {
         * @throws MWException
         */
        public static function newTimestampedUID88( $base = 10 ) {
-               if ( !is_integer( $base ) || $base > 36 || $base < 2 ) {
-                       throw new MWException( "Base must an integer be between 2 and 36" );
-               }
+               Assert::parameterType( 'integer', $base, '$base' );
+               Assert::parameter( $base <= 36, '$base', 'must be <= 36' );
+               Assert::parameter( $base >= 2, '$base', 'must be >= 2' );
+
                $gen = self::singleton();
                $time = $gen->getTimestampAndDelay( 'lockFile88', 1, 1024 );
 
@@ -152,9 +154,10 @@ class UIDGenerator {
         * @throws MWException
         */
        public static function newTimestampedUID128( $base = 10 ) {
-               if ( !is_integer( $base ) || $base > 36 || $base < 2 ) {
-                       throw new MWException( "Base must be an integer between 2 and 36" );
-               }
+               Assert::parameterType( 'integer', $base, '$base' );
+               Assert::parameter( $base <= 36, '$base', 'must be <= 36' );
+               Assert::parameter( $base >= 2, '$base', 'must be >= 2' );
+
                $gen = self::singleton();
                $time = $gen->getTimestampAndDelay( 'lockFile128', 16384, 1048576 );
 
index c32bd3a..67bd0c9 100644 (file)
--- a/index.php
+++ b/index.php
  * @file
  */
 
-# Bail on old versions of PHP.  Pretty much every other file in the codebase
-# has structures (try/catch, foo()->bar(), etc etc) which throw parse errors in
-# PHP 4. Setup.php and ObjectCache.php have structures invalid in PHP 5.0 and
-# 5.1, respectively.
-if ( !function_exists( 'version_compare' ) || version_compare( PHP_VERSION, '5.3.3' ) < 0 ) {
-       // We need to use dirname( __FILE__ ) here cause __DIR__ is PHP5.3+
-       require dirname( __FILE__ ) . '/includes/PHPVersionError.php';
-       wfPHPVersionError( 'index.php' );
-}
+// 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+.
+require_once dirname( __FILE__ ) . '/includes/PHPVersionCheck.php';
+wfEntryPointCheck( 'index.php' );
 
 require __DIR__ . '/includes/WebStart.php';
 
index ae723e9..58d1ee6 100644 (file)
@@ -19,6 +19,7 @@
                "resources/src/mediawiki.page",
                "resources/src/mediawiki.special",
                "resources/src/mediawiki.toolbar",
+               "resources/src/mediawiki.widgets",
                "resources/src/jquery/jquery.accessKeyLabel.js",
                "resources/src/jquery/jquery.arrowSteps.js",
                "resources/src/jquery/jquery.autoEllipsis.js",
index e6625c1..e3a4f77 100644 (file)
@@ -155,18 +155,20 @@ class ConverterRule {
                        $to = trim( $v[1] );
                        $v = trim( $v[0] );
                        $u = explode( '=>', $v, 2 );
-                       // if $to is empty, strtr() could return a wrong result
-                       if ( count( $u ) == 1 && $to && in_array( $v, $variants ) ) {
+                       // if $to is empty (which is also used as $from in bidtable),
+                       // strtr() could return a wrong result.
+                       if ( count( $u ) == 1 && $to !== '' && in_array( $v, $variants ) ) {
                                $bidtable[$v] = $to;
                        } elseif ( count( $u ) == 2 ) {
                                $from = trim( $u[0] );
                                $v = trim( $u[1] );
+                               // if $from is empty, strtr() could return a wrong result.
                                if ( array_key_exists( $v, $unidtable )
                                        && !is_array( $unidtable[$v] )
-                                       && $to
+                                       && $from !== ''
                                        && in_array( $v, $variants ) ) {
                                        $unidtable[$v] = array( $from => $to );
-                               } elseif ( $to && in_array( $v, $variants ) ) {
+                               } elseif ( $from !== '' && in_array( $v, $variants ) ) {
                                        $unidtable[$v][$from] = $to;
                                }
                        }
@@ -220,17 +222,17 @@ class ConverterRule {
                        // display current variant in bidirectional array
                        $disp = $this->getTextInBidtable( $variant );
                        // or display current variant in fallbacks
-                       if ( !$disp ) {
+                       if ( $disp === false ) {
                                $disp = $this->getTextInBidtable(
                                        $this->mConverter->getVariantFallbacks( $variant ) );
                        }
                        // or display current variant in unidirectional array
-                       if ( !$disp && array_key_exists( $variant, $unidtable ) ) {
+                       if ( $disp === false && array_key_exists( $variant, $unidtable ) ) {
                                $disp = array_values( $unidtable[$variant] );
                                $disp = $disp[0];
                        }
                        // or display frist text under disable manual convert
-                       if ( !$disp && $this->mConverter->mManualLevel[$variant] == 'disable' ) {
+                       if ( $disp === false && $this->mConverter->mManualLevel[$variant] == 'disable' ) {
                                if ( count( $bidtable ) > 0 ) {
                                        $disp = array_values( $bidtable );
                                        $disp = $disp[0];
@@ -325,7 +327,7 @@ class ConverterRule {
                                && isset( $unidtable[$v] )
                        ) {
                                if ( isset( $this->mConvTable[$v] ) ) {
-                                       $this->mConvTable[$v] = array_merge( $this->mConvTable[$v], $unidtable[$v] );
+                                       $this->mConvTable[$v] = $unidtable[$v] + $this->mConvTable[$v];
                                } else {
                                        $this->mConvTable[$v] = $unidtable[$v];
                                }
@@ -383,9 +385,11 @@ class ConverterRule {
 
                if ( !$this->mBidtable && !$this->mUnidtable ) {
                        if ( isset( $flags['+'] ) || isset( $flags['-'] ) ) {
-                               // fill all variants if text in -{A/H/-|text} without rules
-                               foreach ( $this->mConverter->mVariants as $v ) {
-                                       $this->mBidtable[$v] = $rules;
+                               // fill all variants if text in -{A/H/-|text}- is non-empty but without rules
+                               if ( $rules !== '' ) {
+                                       foreach ( $this->mConverter->mVariants as $v ) {
+                                               $this->mBidtable[$v] = $rules;
+                                       }
                                }
                        } elseif ( !isset( $flags['N'] ) && !isset( $flags['T'] ) ) {
                                $this->mFlags = $flags = array( 'R' => true );
index e1a2047..0a61be6 100644 (file)
@@ -2034,7 +2034,18 @@ class Language {
                static $table = array(
                        array( '', 'א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ז', 'ח', 'ט', 'י' ),
                        array( '', 'י', 'כ', 'ל', 'מ', 'נ', 'ס', 'ע', 'פ', 'צ', 'ק' ),
-                       array( '', 'ק', 'ר', 'ש', 'ת', 'תק', 'תר', 'תש', 'תת', 'תתק', 'תתר' ),
+                       array( '',
+                               array( 'ק' ),
+                               array( 'ר' ),
+                               array( 'ש' ),
+                               array( 'ת' ),
+                               array( 'ת', 'ק' ),
+                               array( 'ת', 'ר' ),
+                               array( 'ת', 'ש' ),
+                               array( 'ת', 'ת' ),
+                               array( 'ת', 'ת', 'ק' ),
+                               array( 'ת', 'ת', 'ר' ),
+                       ),
                        array( '', 'א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ז', 'ח', 'ט', 'י' )
                );
 
@@ -2043,47 +2054,59 @@ class Language {
                        return $num;
                }
 
-               $s = '';
+               // Round thousands have special notations
+               if ( $num === 1000 ) {
+                       return "א' אלף";
+               } elseif ( $num % 1000 === 0 ) {
+                       return $table[0][$num / 1000] . "' אלפים";
+               }
+
+               $letters = array();
+
                for ( $pow10 = 1000, $i = 3; $i >= 0; $pow10 /= 10, $i-- ) {
                        if ( $num >= $pow10 ) {
-                               if ( $num == 15 || $num == 16 ) {
-                                       $s .= $table[0][9] . $table[0][$num - 9];
+                               if ( $num === 15 || $num === 16 ) {
+                                       $letters[] = $table[0][9];
+                                       $letters[] = $table[0][$num - 9];
                                        $num = 0;
                                } else {
-                                       $s .= $table[$i][intval( ( $num / $pow10 ) )];
-                                       if ( $pow10 == 1000 ) {
-                                               $s .= "'";
+                                       $letters = array_merge(
+                                               $letters,
+                                               (array)$table[$i][intval( $num / $pow10 )]
+                                       );
+
+                                       if ( $pow10 === 1000 ) {
+                                               $letters[] = "'";
                                        }
                                }
                        }
+
                        $num = $num % $pow10;
                }
-               if ( strlen( $s ) == 2 ) {
-                       $str = $s . "'";
+
+               $preTransformLength = count( $letters );
+               if ( $preTransformLength === 1 ) {
+                       // Add geresh (single quote) to one-letter numbers
+                       $letters[] = "'";
                } else {
-                       $str = substr( $s, 0, strlen( $s ) - 2 ) . '"';
-                       $str .= substr( $s, strlen( $s ) - 2, 2 );
-               }
-               $start = substr( $str, 0, strlen( $str ) - 2 );
-               $end = substr( $str, strlen( $str ) - 2 );
-               switch ( $end ) {
-                       case 'כ':
-                               $str = $start . 'ך';
-                               break;
-                       case 'מ':
-                               $str = $start . 'ם';
-                               break;
-                       case 'נ':
-                               $str = $start . 'ן';
-                               break;
-                       case 'פ':
-                               $str = $start . 'ף';
-                               break;
-                       case 'צ':
-                               $str = $start . 'ץ';
-                               break;
+                       $lastIndex = $preTransformLength - 1;
+                       $letters[$lastIndex] = str_replace(
+                               array( 'כ', 'מ', 'נ', 'פ', 'צ' ),
+                               array( 'ך', 'ם', 'ן', 'ף', 'ץ' ),
+                               $letters[$lastIndex]
+                       );
+
+                       // Add gershayim (double quote) to multiple-letter numbers,
+                       // but exclude numbers with only one letter after the thousands
+                       // (1001-1009, 1020, 1030, 2001-2009, etc.)
+                       if ( $letters[1] === "'" && $preTransformLength === 3 ) {
+                               $letters[] = "'";
+                       } else {
+                               array_splice( $letters, -1, 0, '"' );
+                       }
                }
-               return $str;
+
+               return implode( $letters );
        }
 
        /**
@@ -2104,9 +2127,9 @@ class Language {
                $data = explode( '|', $tz, 3 );
 
                if ( $data[0] == 'ZoneInfo' ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $userTZ = timezone_open( $data[2] );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        if ( $userTZ !== false ) {
                                $date = date_create( $ts, timezone_open( 'UTC' ) );
                                date_timezone_set( $date, $userTZ );
@@ -2141,7 +2164,7 @@ class Language {
                        return $ts;
                }
 
-               wfSuppressWarnings(); // E_STRICT system time bitching
+               MediaWiki\suppressWarnings(); // E_STRICT system time bitching
                # Generate an adjusted date; take advantage of the fact that mktime
                # will normalize out-of-range values so we don't have to split $minDiff
                # into hours and minutes.
@@ -2154,7 +2177,7 @@ class Language {
                        (int)substr( $ts, 0, 4 ) ); # Year
 
                $date = date( 'YmdHis', $t );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                return $date;
        }
@@ -2462,22 +2485,56 @@ class Language {
                return $this->internalUserTimeAndDate( 'both', $ts, $user, $options );
        }
 
+       /**
+        * Get the timestamp in a human-friendly relative format, e.g., "3 days ago".
+        *
+        * Determine the difference between the timestamp and the current time, and
+        * generate a readable timestamp by returning "<N> <units> ago", where the
+        * largest possible unit is used.
+        *
+        * @since 1.26 (Prior to 1.26 method existed but was not meant to be used directly)
+        *
+        * @param MWTimestamp $time
+        * @param MWTimestamp|null $relativeTo The base timestamp to compare to (defaults to now)
+        * @param User|null $user User the timestamp is being generated for (or null to use main context's user)
+        * @return string Formatted timestamp
+        */
+       public function getHumanTimestamp( MWTimestamp $time, MWTimestamp $relativeTo = null, User $user = null ) {
+               if ( $relativeTo === null ) {
+                       $relativeTo = new MWTimestamp();
+               }
+               if ( $user === null ) {
+                       $user = RequestContext::getMain()->getUser();
+               }
+
+               // Adjust for the user's timezone.
+               $offsetThis = $time->offsetForUser( $user );
+               $offsetRel = $relativeTo->offsetForUser( $user );
+
+               $ts = '';
+               if ( Hooks::run( 'GetHumanTimestamp', array( &$ts, $time, $relativeTo, $user, $this ) ) ) {
+                       $ts = $this->getHumanTimestampInternal( $time, $relativeTo, $user );
+               }
+
+               // Reset the timezone on the objects.
+               $time->timestamp->sub( $offsetThis );
+               $relativeTo->timestamp->sub( $offsetRel );
+
+               return $ts;
+       }
+
        /**
         * Convert an MWTimestamp into a pretty human-readable timestamp using
         * the given user preferences and relative base time.
         *
-        * DO NOT USE THIS FUNCTION DIRECTLY. Instead, call MWTimestamp::getHumanTimestamp
-        * on your timestamp object, which will then call this function. Calling
-        * this function directly will cause hooks to be skipped over.
-        *
-        * @see MWTimestamp::getHumanTimestamp
+        * @see Language::getHumanTimestamp
         * @param MWTimestamp $ts Timestamp to prettify
         * @param MWTimestamp $relativeTo Base timestamp
         * @param User $user User preferences to use
         * @return string Human timestamp
-        * @since 1.22
+        * @since 1.26
         */
-       public function getHumanTimestamp( MWTimestamp $ts, MWTimestamp $relativeTo, User $user ) {
+       private function getHumanTimestampInternal( MWTimestamp $ts, MWTimestamp $relativeTo, User $user ) {
                $diff = $ts->diff( $relativeTo );
                $diffDay = (bool)( (int)$ts->timestamp->format( 'w' ) -
                        (int)$relativeTo->timestamp->format( 'w' ) );
@@ -2569,9 +2626,9 @@ class Language {
                # *input* string. We just ignore those too.
                # REF: http://bugs.php.net/bug.php?id=37166
                # REF: https://bugzilla.wikimedia.org/show_bug.cgi?id=16885
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $text = iconv( $in, $out . '//IGNORE', $string );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                return $text;
        }
 
@@ -4339,8 +4396,7 @@ class Language {
                        return false;
                } else {
                        $fallbacks = self::getFallbacksFor( $code );
-                       $first = array_shift( $fallbacks );
-                       return $first;
+                       return $fallbacks[0];
                }
        }
 
@@ -4349,19 +4405,15 @@ class Language {
         *
         * @since 1.19
         * @param string $code Language code
-        * @return array
+        * @return array Non-empty array, ending in "en"
         */
        public static function getFallbacksFor( $code ) {
                if ( $code === 'en' || !Language::isValidBuiltInCode( $code ) ) {
                        return array();
-               } else {
-                       $v = self::getLocalisationCache()->getItem( $code, 'fallback' );
-                       $v = array_map( 'trim', explode( ',', $v ) );
-                       if ( $v[count( $v ) - 1] !== 'en' ) {
-                               $v[] = 'en';
-                       }
-                       return $v;
                }
+               // For unknown languages, fallbackSequence returns an empty array,
+               // hardcode fallback to 'en' in that case.
+               return self::getLocalisationCache()->getItem( $code, 'fallbackSequence' ) ?: array( 'en' );
        }
 
        /**
index 844888e..7879309 100644 (file)
@@ -355,12 +355,7 @@ class LanguageConverter {
                   2. HTML entities
                   3. placeholders created by the parser
                */
-               global $wgParser;
-               if ( isset( $wgParser ) && $wgParser->UniqPrefix() != '' ) {
-                       $marker = '|' . $wgParser->UniqPrefix() . '[\-a-zA-Z0-9]+';
-               } else {
-                       $marker = '';
-               }
+               $marker = '|' . Parser::MARKER_PREFIX . '[\-a-zA-Z0-9]+';
 
                // this one is needed when the text is inside an HTML markup
                $htmlfix = '|<[^>]+$|^[^<>]*>';
@@ -507,13 +502,9 @@ class LanguageConverter {
                        }
 
                        if ( $action == 'add' ) {
+                               // More efficient than array_merge(), about 2.5 times.
                                foreach ( $pair as $from => $to ) {
-                                       // to ensure that $from and $to not be left blank
-                                       // so $this->translate() could always return a string
-                                       if ( $from || $to ) {
-                                               // more efficient than array_merge(), about 2.5 times.
-                                               $this->mTables[$variant]->setPair( $from, $to );
-                                       }
+                                       $this->mTables[$variant]->setPair( $from, $to );
                                }
                        } elseif ( $action == 'remove' ) {
                                $this->mTables[$variant]->removeArray( $pair );
@@ -1001,7 +992,7 @@ class LanguageConverter {
                if ( $recursive ) {
                        foreach ( $sublinks as $link ) {
                                $s = $this->parseCachedTable( $code, $link, $recursive );
-                               $ret = array_merge( $ret, $s );
+                               $ret = $s + $ret;
                        }
                }
 
index f7c9f65..d667b18 100644 (file)
@@ -65,7 +65,7 @@
        'awa' => 'अवधी',        # Awadhi
        'ay' => 'Aymar aru',    # Aymara
        'az' => 'azərbaycanca',        # Azerbaijani
-       'azb' => 'تورکجه',        # South Azerbaijani
+       'azb' => 'تۆرکجه',        # South Azerbaijani
        'ba' => 'башҡортса',   # Bashkir
        'bar' => 'Boarisch',    # Bavarian (Austro-Bavarian and South Tyrolean)
        'bat-smg' => 'žemaitėška', # Samogitian (deprecated code, 'sgs' in ISO 693-3 since 2010-06-30 )
@@ -78,6 +78,7 @@
        'be-x-old' => "беларуская (тарашкевіца)\xE2\x80\x8E",      # (be-tarask compat)
        'bg' => 'български',   # Bulgarian
        'bgn' => 'بلوچی رخشانی', # Western Balochi
+       'bh' => 'भोजपुरी',        # Bihari macro language. Falls back to Bhojpuri (bho)
        'bho' => 'भोजपुरी',       # Bhojpuri
        'bi' => 'Bislama',              # Bislama
        'bjn' => 'Bahasa Banjar',       # Banjarese
@@ -85,7 +86,7 @@
        'bn' => 'বাংলা',      # Bengali
        'bo' => 'བོད་ཡིག',        # Tibetan
        'bpy' => 'বিষ্ণুপ্রিয়া মণিপুরী',       # Bishnupriya Manipuri
-       'bqi' => 'بختياري',      # Bakthiari
+       'bqi' => 'بختیاری',      # Bakthiari
        'br' => 'brezhoneg',    # Breton
        'brh' => 'Bráhuí',    # Brahui
        'bs' => 'bosanski',             # Bosnian
        'cho' => 'Choctaw',             # Choctaw
        'chr' => 'ᏣᎳᎩ', # Cherokee
        'chy' => 'Tsetsêhestâhese',   # Cheyenne
-       'ckb' => 'کوردی',  # Sorani. The name actually says "Kurdi" (Kurdish).
+       'ckb' => 'کوردیی ناوەندی', # Central Kurdish
        'co' => 'corsu',                # Corsican
        'cps' => 'Capiceño', # Capiznon
        'cr' => 'Nēhiyawēwin / ᓀᐦᐃᔭᐍᐏᐣ',                # Cree
        'lmo' => 'lumbaart',    # Lombard
        'ln' => 'lingála',             # Lingala
        'lo' => 'ລາວ',    # Laotian
-       'lrc' => 'لوری مینجایی',     # Northern Luri
+       'lrc' => 'لۊری شومالی',       # Northern Luri
        'loz' => 'Silozi', # Lozi
        'lt' => 'lietuvių',    # Lithuanian
        'ltg' => 'latgaļu',    # Latgalian
index 6425a53..759531b 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Estonian (Eesti) specific code.
+ * Estonian (eesti) specific code.
  *
  * 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
  */
 
 /**
- * Estonian (Eesti)
+ * Estonian (eesti)
  *
  * @ingroup Language
  */
 class LanguageEt extends Language {
        /**
-        * Avoid grouping whole numbers between 0 to 9999
-        *
+        * Avoid grouping whole numbers between -9999 to 9999
         * @param string $_
-        *
         * @return string
         */
        function commafy( $_ ) {
-               if ( !preg_match( '/^\d{1,4}$/', $_ ) ) {
+               if ( !preg_match( '/^\-?\d{1,4}(\.\d+)?$/', $_ ) ) {
                        return strrev( (string)preg_replace( '/(\d{3})(?=\d)(?!\d*\.)/', '$1,', strrev( $_ ) ) );
                } else {
                        return $_;
index 02bcc5f..fef06bc 100644 (file)
@@ -37,7 +37,7 @@
        "tog-shownumberswatching": "Peuleumah jumeulah ureueng kalon",
        "tog-oldsig": "Tanda jaroe jinoe:",
        "tog-fancysig": "Peujeuet tanda jaroe sibagoe naseukah wiki (hana hubông keudroe)",
-       "tog-uselivepreview": "Ngui peuleumah hasé langsông (baci)",
+       "tog-uselivepreview": "Ngui peuleumah hasé langsông",
        "tog-forceeditsummary": "Peuingat lôn meunyo plôk neuringkaih neuandam mantöng soh",
        "tog-watchlisthideown": "Peusöm nyang lôn andam nibak dapeuta keunalön",
        "tog-watchlisthidebots": "Peusöm nyang teuandam nibak dapeuta keunalön",
        "otherlanguages": "Bahsa la’én",
        "redirectedfrom": "(Geupeupinah nibak $1)",
        "redirectpagesub": "Laman peuninah",
+       "redirectto": "Peupinah u:",
        "lastmodifiedat": "Laman nyoë seuneulheuëh geuubah bak $1 poh $2.",
        "viewcount": "Laman nyoë ka geusaweuë {{PLURAL:$1|sigo|$sigo}}.<br />",
        "protectedpage": "Laman teupeulindông",
        "disclaimers": "Beunantah",
        "disclaimerpage": "Project:Beunantah umom",
        "edithelp": "Bantu andam",
+       "helppage-top-gethelp": "Beunantu",
        "mainpage": "Ôn Keuë",
        "mainpage-description": "Ôn Keuë",
        "policy-url": "Project:Neuatô",
        "hidetoc": "peusom",
        "collapsible-collapse": "Peuubeut",
        "collapsible-expand": "Peuluwaih",
+       "confirmable-yes": "Nyoe",
+       "confirmable-no": "Kön",
        "thisisdeleted": "Eu atawa peuriwang $1?",
        "viewdeleted": "Eu $1?",
        "restorelink": "$1 {{PLURAL:$1|neuandam|neuandam}} nyang ka geusampoh",
index 78b5e06..f11d703 100644 (file)
@@ -20,7 +20,8 @@
                        "Xethron",
                        "පසිඳු කාවින්ද",
                        "아라",
-                       "Macofe"
+                       "Macofe",
+                       "Fwolff"
                ]
        },
        "tog-underline": "Onderstreep skakels.",
        "resetpass-wrong-oldpass": "Die huidige of tydelike wagwoord is ongeldig.\nU het moontlik reeds u wagwoord gewysig of 'n nuwe tydelike wagwoord aangevra.",
        "resetpass-temp-password": "Tydelike wagwoord:",
        "resetpass-abort-generic": "Wysiging van wagwoord is deur 'n uitbreiding gestop.",
-       "passwordreset": "Wagwoord herstel",
+       "passwordreset": "Herstel wagwoord",
        "passwordreset-text-one": "Voltooi hierdie vorm om u wagwoord te herstel.",
        "passwordreset-text-many": "{{PLURAL:$1|Vul een van die velde in om 'n tydelike wagwoord per e-pos te ontvang.}}",
        "passwordreset-legend": "Kry nuwe wagwoord",
        "preview": "Voorskou",
        "showpreview": "Wys voorskou",
        "showdiff": "Wys veranderings",
-       "anoneditwarning": "'''Waarskuwing:''' u is nie aangemeld nie. U IP-adres sal in die bladsy se wysigingsgeskiedenis gestoor word. As u <strong>[$1 aanmeld]</strong> of <strong>[$2 'n gebruiker skep]</strong verskyn u wysigings, naas andere voordele, onder u gebruikersnaam.",
+       "anoneditwarning": "'''Waarskuwing:''' u is nie aangemeld nie. U IP-adres sal in die bladsy se wysigingsgeskiedenis gestoor word. As u <strong>[$1 aanmeld]</strong> of <strong>[$2 'n rekening skep]</strong> verskyn u wysigings onder u gebruikersnaam, naas andere voordele.",
        "anonpreviewwarning": "''U is nie aangeteken nie.''\n''As u die bladsy stoor sal u IP-adres in die bladsy se geskeidenis aangeteken word.''",
        "missingsummary": "'''Neem kennis''': Geen opsomming van die wysiging is verskaf nie. As \"Stoor\" weer gekliek word, word die wysiging sonder 'n opsomming gestoor.",
        "missingcommenttext": "Tik die opsomming onder.",
        "download": "laai af",
        "unwatchedpages": "Bladsye wat nie dopgehou word nie",
        "listredirects": "Lys aansture",
-       "listduplicatedfiles": "Lys van lrs met duplikate",
+       "listduplicatedfiles": "Lys van lêers met duplikate",
        "listduplicatedfiles-entry": "[[:File:$1|$1]] het [[$3|{{PLURAL:$2|'n duplikaat|$2 duplikate}}]].",
        "unusedtemplates": "Ongebruikte sjablone",
        "unusedtemplatestext": "Hierdie blad lys alle bladsye in die {{ns:template}}-naamruimte wat nêrens in 'n ander blad ingesluit word nie. Onthou om ook ander skakels na die sjablone na te gaan voor verwydering.",
        "watchnologin": "Nie ingeteken nie",
        "addwatch": "Voeg by dophoulys",
        "addedwatchtext": "Die bladsy \"[[:$1]]\" is by u [[Special:Watchlist|dophoulys]] bygevoeg.\nToekomstige wysigings aan hierdie bladsy en sy bybehorende besprekingsblad sal hier gelys word.",
+       "addedwatchtext-short": "Die bladsy \"$1\" is by u dophoulys gevoeg.",
        "removewatch": "Verwyder van dophoulys",
        "removedwatchtext": "Die bladsy \"[[:$1]]\" is van [[Special:Watchlist|u dophoulys]] afgehaal.",
+       "removedwatchtext-short": "Die bladsy \"$1\" is uit die dophoulys verwyder.",
        "watch": "Hou dop",
        "watchthispage": "Hou hierdie bladsy dop",
        "unwatch": "Verwyder van dophoulys",
        "nonfile-cannot-move-to-file": "Net lêers kan na die lêernaamruimte geskuif word",
        "imagetypemismatch": "Die nuwe lêer se uitbreiding pas nie by die lêertipe nie",
        "imageinvalidfilename": "Die nuwe lêernaam is ongeldig",
-       "fix-double-redirects": "Opdateer alle aansture wat na die oorspronklike titel wys",
+       "fix-double-redirects": "Dateer alle aansture op wat na die oorspronklike titel wys",
        "move-leave-redirect": "Los 'n aanstuur agter",
        "protectedpagemovewarning": "'''Waarskuwing:''' Hierdie bladsy kan slegs deur administrateurs geskuif word. Die nuutste logboekinskrywing word hieronder ter verwysing vertoon:",
        "semiprotectedpagemovewarning": "'''Let wel:''' Hierdie bladsy kan slegs deur geregistreerde gebruikers geskuif word. Die nuutste logboekinskrywing word hieronder ter verwysing vertoon:",
        "pageinfo-header-edits": "Wysigingsgeskiedenis",
        "pageinfo-header-restrictions": "Bladsybeskerming",
        "pageinfo-header-properties": "Bladsy-eienskappe",
-       "pageinfo-display-title": "Wys titel",
+       "pageinfo-display-title": "Vertoontitel",
        "pageinfo-default-sort": "Standaard sorteerwyse",
-       "pageinfo-length": "Bldasylengte (in grepe)",
+       "pageinfo-length": "Bladsylengte (in grepe)",
        "pageinfo-article-id": "Bladsy-ID",
        "pageinfo-language": "Taal vir die bladsy",
        "pageinfo-robot-policy": "Status vir soekenjins",
        "redirect-revision": "Bladsy-weergawe",
        "redirect-file": "Lêernaam",
        "redirect-not-exists": "Waarde nie gevind nie",
-       "fileduplicatesearch": "Soek duplikaat lêers",
-       "fileduplicatesearch-summary": "Soek na duplikaat lêers volgends hul hashwaardes.",
+       "fileduplicatesearch": "Soek duplikaatlêers",
+       "fileduplicatesearch-summary": "Soek na duplikaatlêers volgens hul hutswaardes.",
        "fileduplicatesearch-legend": "Soek vir 'n duplikaat",
        "fileduplicatesearch-filename": "Lêernaam:",
        "fileduplicatesearch-submit": "Soek",
        "api-error-copyuploaddisabled": "Oplaai via URL is gedeaktiveer op hierdie bediener.",
        "api-error-duplicate": "Daar {{PLURAL:$1|is al [$2 'n lêer]|is al [$2 lêers]}} met dieselfde inhoud op die wiki.",
        "api-error-duplicate-archive": "Daar {{PLURAL:$1|was [$2 'n ander lêer]|was [$2 ander lêers]}} op hierdie webtuiste met dieselfde inhoud, maar {{PLURAL:$1|dit is|dit is}} geskrap.",
-       "api-error-duplicate-archive-popup-title": "Duplikaat {{PLURAL:$1|lêer|lêers}} wat al verwyder is.",
-       "api-error-duplicate-popup-title": "Duplikaat {{PLURAL:$1|lêer|lêers}}",
+       "api-error-duplicate-archive-popup-title": "Duplikaat{{PLURAL:$1|lêer|lêers}} wat al verwyder is.",
+       "api-error-duplicate-popup-title": "Duplikaat{{PLURAL:$1|lêer|lêers}}",
        "api-error-empty-file": "Die lêer wat u probeer oplaai is leeg.",
        "api-error-emptypage": "Die skep van leë nuwe bladsye word nie toegelaat nie.",
        "api-error-fetchfileerror": "Interne fout: Iets het verkeerd gegaan met die haal van die lêer.",
index 2f9e747..e88507f 100644 (file)
        "querypage-disabled": "Ista pachina especial ye desactivata por motivos de rendimiento.",
        "booksources": "Fuents de libros",
        "booksources-search-legend": "Mirar fuents de libros",
+       "booksources-search": "Mirar",
        "booksources-text": "Contino ye una lista de vinclos ta atros puestos an que venden libros nuevos y usatos, talment bi haiga más información sobre os libros que ye mirando.",
        "booksources-invalid-isbn": "O numero d'ISBN dato pareix que no ye conforme; comprebe si no bi ha garra error en copiar d'a fuent orichinal.",
        "specialloguserlabel": "Fedor:",
index 921072d..1bf03a3 100644 (file)
        "gotaccount": "Hafast þū reccinge ǣr? $1.",
        "gotaccountlink": "Inmeldian",
        "userlogin-resetpassword-link": "Forgēate þū þīn gelēafword?",
+       "userlogin-helplink2": "Inmeldunge help",
        "createacct-emailrequired": "Spearcǣrenda nama",
        "createacct-emailoptional": "Spearcǣrenda nama (ungenēdedlic)",
        "createacct-email-ph": "Besettan þīnne spearcǣrenda naman",
        "createacct-benefit-heading": "{{SITENAME}} is geworht fram hādum swilce þū.",
        "createacct-benefit-body1": "{{PLURAL:$1|adihtung|adihtunga}}",
        "createacct-benefit-body2": "{{PLURAL:$1|tramet|trameta}}",
+       "createacct-benefit-body3": "{{PLURAL:$1|nīwe fyrðrend|nīwe fyrðrendas}}",
        "badretype": "Þā þafungword þe write þū, bēoþ ungelīc.",
        "userexists": "Se brūcendnama is ǣr gebrocen. Cēos lā ōðerne naman.",
        "loginerror": "Inmeldunge wōh",
        "searchresults": "Sōcne wæstmas",
        "searchresults-title": "Sōcne wæstmas for \"$1\"",
        "notextmatches": "Nis þǣr nǣnig swilc traht on nǣngum trametum",
-       "prevn": "ǣror {{PLURAL:$1|$1}}",
+       "prevn": "ǣrre {{PLURAL:$1|$1}}",
        "nextn": "nīehst {{PLURAL:$1|$1}}",
+       "nextn-title": "Nīhst $1 {{PLURAL:$1|gefunden|gefundenra}}",
+       "shown-title": "Īwan $1 {{PLURAL:$1|gefunden|gefundenra}} on ǣlcum tramete",
        "viewprevnext": "Sēon ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-new": "<strong>Scieppan þone tramet \"[[:$1]]\" on þissum wiki!</strong> {{PLURAL:$2|0=|Seoh ēac þone tramet þe wæs gefunden mid þīnre sōcne.|Seoh ēac þā þing þā wǣron gefunden.}}",
        "searchprofile-articles": "Innunge trametas",
        "searchprofile-articles-tooltip": "Sēcan in $1",
        "searchprofile-images-tooltip": "Sēcan ymelan",
        "searchprofile-everything-tooltip": "Sēcan geond ealla innunga (ēac mōtungum)",
+       "searchprofile-advanced-tooltip": "Sēcan on mā namsteda",
        "search-result-size": "$1 ({{PLURAL:$2|1 word|$2 worda}})",
        "search-redirect": "(edlǣded fram \"$1\")",
        "search-section": "(dǣl $1)",
        "ancientpages": "Ieldestan trametas",
        "move": "Wegan",
        "movethispage": "Wegan þisne tramet",
-       "pager-newer-n": "{{PLURAL:$1|nīwre 1|nīwran $1}}",
-       "pager-older-n": "{{PLURAL:$1|ieldre 1|ieldran $1}}",
+       "pager-newer-n": "{{PLURAL:$1|nīwre 1|nīwre $1}}",
+       "pager-older-n": "{{PLURAL:$1|ieldre 1|ieldre $1}}",
        "booksources": "Bōcfruman",
        "booksources-search-legend": "Sēcan bōcfruman",
        "booksources-search": "Sēcan",
        "undelete-search-submit": "Sēcan",
        "namespace": "Namstede:",
        "invert": "Onhwirfan gecorennesse",
+       "namespace_association": "Gesibbe namstedas",
        "blanknamespace": "(Hēafod)",
        "contributions": "{{GENDER:$1|Brūcendes}} forðunga",
        "contributions-title": "Brūcendes forðunga for $1",
        "isredirect": "edlǣdunge tramet",
        "istemplate": "bysene nytt",
        "isimage": "ymelan hlenca",
+       "whatlinkshere-prev": "{{PLURAL:$1|ǣrre|ǣrre $1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|nīhst|nīhst $1}}",
        "whatlinkshere-links": "← hlencan",
        "whatlinkshere-hideredirs": "$1 edlǣdunga",
        "whatlinkshere-hidetrans": "$1 bysene nytta",
        "watchlisttools-view": "Sēon andwendunga",
        "watchlisttools-edit": "Sēon and adihtan behealdungtæl",
        "watchlisttools-raw": "Adihtan hrēaw behealdungtæl",
+       "signature": "[[{{ns:user}}:$1|$2]]\n([[{{ns:user_talk}}:$1|mōtung]])",
        "version": "Fadung",
        "version-specialpages": "Syndrige trametas",
        "version-other": "Ōðer",
        "htmlform-reset": "Undōn andwendunga",
        "htmlform-selectorother-other": "Ōðer",
        "logentry-delete-delete": "$1 {{GENDER:$2|forlēas}} tramet $3",
+       "logentry-move-move": "$1 {{GENDER:$2|wæg}} þone tramet $3 tō $4",
        "logentry-newusers-create": "Brūcendes grīma $1 wæs {{GENDER:$2|geworht}}",
        "revdelete-summary": "ādihtscortnes",
        "searchsuggest-search": "Sēcan",
index e956b31..31e59d8 100644 (file)
        "no-null-revision": "تعذر إنشاء مراجعة جديدة فارغة لصفحة \"$1\"",
        "badtitle": "عنوان سيء",
        "badtitletext": "عنوان الصفحة المطلوب إما غير صحيح أو فارغ، وربما الرابط بين اللغات أو بين المشاريع خاطئ.\nربما يحوي محارف لا تصلح للاستخدام في العناوين.",
+       "title-invalid-interwiki": "عنوان الصفحة المطلوب يتضمن وصلة لحلقة لغة وهو ما لا يمكن استخدامه في العناوين.",
+       "title-invalid-talk-namespace": "عنوان الصفحة المطلوبة يشير إلى صفحة نقاش غير موجودة.",
+       "title-invalid-characters": "عنوان الصفحة المطلوب يتضمن محارف غير صالحة: \"$1\"",
        "perfcached": "البيانات التالية مخبأة و قد لا تكون محدثة. {{PLURAL:$1||نتيجة واحدة|نتيجتان|$1 نتائج|$1 نتيجة}} على الأكثر {{PLURAL:$1||مخبّأة|مخبّأتان|مخبّأة}}.",
        "perfcachedts": "البيانات التالية مخزنة، وكان آخر تحديث لها في $1. العدد الأقصى للنتائج المخزنة هو {{PLURAL:$4||نتيجة واحدة|نتيجتان|$4 نتائج|$4 نتيجة}}.",
        "querypage-no-updates": "تحديثات هذه الصفحة معطلة حاليا.\nالبيانات هنا لن يتم تحديثها حاليا.",
        "missingcommentheader": "'''تنبيه:''' لم تقم بوضع موضوع/عنوان لهذا التعليق.\nإذا قمت بالضغط على \"{{int:savearticle}}\" مجددا، سيتم حفظ تعليقك بدون عنوان.",
        "summary-preview": "معاينة الملخص:",
        "subject-preview": "معاينة للموضوع/العنوان:",
+       "previewerrortext": "حدث خطأ أثناء محاولة معاينة تغييراتك.",
        "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\n:''$2''\n\n* بداية المنع: $8\n* انتهاء المنع: $6\n* الممنوع المقصود: $7\n\nيمكنك أن تتصل ب $1 أو أحد [[{{MediaWiki:Grouppage-sysop}}|الإداريين]] الآخرين لمناقشة المنع.\n\nلاحظ أنه لا يمكنك استخدام خاصية \"إرسال رسالة لهذا المستخدم\" إلا لو كان لديك عنوان بريد إلكتروني صحيح مسجل في [[Special:Preferences|تفضيلاتك]] ولم يتم منعك من استخدامه.\n\nعنوان آيبيك الحالي $3، ورقم المنع #$5.\nمن فضلك اذكر كل التفاصيل بالأعلى في أي استعلامات تقوم بها.",
        "action-viewmyprivateinfo": "مشاهدة معلوماتك الخاصة",
        "action-editmyprivateinfo": "تعديل معلوماتك الخاصة",
        "action-editcontentmodel": "عدل عدل طريقة محتوى صفحة",
+       "action-managechangetags": "إنشاء وحذف الوسوم من قاعدة البيانات",
+       "action-applychangetags": "تطبيق الوسوم مع تغييراتك",
        "nchanges": "{{PLURAL:$1|لا تغييرات|تغيير واحد|تغييران|$1 تغييرات|$1 تغييرا|$1 تغيير}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|منذ الزيارة الأخيرة}}",
        "enhancedrc-history": "تاريخ",
        "listfiles-delete": "حذف",
        "listfiles-summary": "هذه الصفحة الخاصة تعرض كل الملفات المرفوعة.",
        "listfiles_search_for": "ابحث عن اسم الميديا:",
+       "listfiles-userdoesnotexist": "حساب المستخدم \"$1\" غير مسجل.",
        "imgfile": "ملف",
        "listfiles": "قائمة الملفات",
        "listfiles_thumb": "تصغير",
        "logempty": "لا توجد مدخلات مطابقة في السجل.",
        "log-title-wildcard": "ابحث عن عناوين تبدأ بهذا النص",
        "showhideselectedlogentries": "غير رؤية مدخلات السجل المختارة",
+       "log-edit-tags": "عدل وسوم مدخلات السجل المختار",
        "allpages": "كل الصفحات",
        "nextpage": "الصفحة التالية ($1)",
        "prevpage": "الصفحة السابقة ($1)",
        "import-interwiki-history": "انسخ كل نسخ التاريخ لهذه الصفحة",
        "import-interwiki-templates": "ضمن كل القوالب",
        "import-interwiki-submit": "استيراد",
+       "import-mapping-namespace": "استورد إلى نطاق:",
        "import-upload-filename": "اسم الملف:",
        "import-comment": "تعليق:",
        "importtext": "من فضلك صدر الملف من الويكي المصدر باستخدام [[Special:Export|أداة التصدير]].\nاحفظها على حاسوبك ثم ارفعها هنا.",
        "pageinfo-protect-cascading-yes": "نعم",
        "pageinfo-protect-cascading-from": "حماية الصفحات المدمجة موروثة من",
        "pageinfo-category-info": "معلومات التصنيف",
+       "pageinfo-category-total": "العدد الكلي للأعضاء",
        "pageinfo-category-pages": "عدد الصفحات",
        "pageinfo-category-subcats": "عدد التصنيفات الفرعية",
        "pageinfo-category-files": "عدد الملفات",
        "patrol-log-page": "سجل الخفر",
        "patrol-log-header": "هذا سجل بالمراجعات المراجعة.",
        "log-show-hide-patrol": "$1 سجل الخفر",
+       "log-show-hide-tag": "$1 سجل الوسوم",
        "deletedrevision": "حذف المراجعة القديمة $1",
        "filedeleteerror-short": "خطأ حذف الملف: $1",
        "filedeleteerror-long": "حدثت أخطاء أثناء حذف الملف:\n\n$1",
        "tags-actions-header": "إجراءات",
        "tags-active-yes": "نعم",
        "tags-active-no": "لا",
+       "tags-source-extension": "يعرفه امتداد",
        "tags-edit": "عدل",
        "tags-delete": "احذف",
        "tags-activate": "نشط",
        "tags-deactivate": "تعطيل",
        "tags-hitcount": "{{PLURAL:$1|لا تغييرات|تغيير واحد|تغييران|$1 تغييرات|$1 تغييرا|$1 تغيير}}",
+       "tags-create-heading": "إنشاء وسم جديد",
+       "tags-create-explanation": "في الوضع الافتراضي، الوسوم الجديدة المنشأة سيتاح استخدامها للبوتات والمستخدمين.",
        "tags-create-tag-name": "اسم الوسم:",
        "tags-create-reason": "السبب:",
        "tags-create-submit": "أنشئ",
+       "tags-create-no-name": "عليك أن تحدد اسم الوسم.",
+       "tags-create-already-exists": "الوسم \"$1\" موجود بالفعل.",
+       "tags-create-warnings-below": "هل تود متابعة إنشاء الوسم؟",
+       "tags-delete-title": "احذف الوسم",
+       "tags-delete-explanation-initial": "أنت على وشك حذف الوسم \"$1\" من قاعدة البيانات.",
        "tags-delete-reason": "سبب:",
+       "tags-delete-submit": "إزالة هذا الوسم دون رجعة (ستدمر بعض البيانات)",
+       "tags-delete-not-allowed": "الوسوم التي يعرفها امتداد لا يمكن حذفها إلا إذا أتاح الامتداد ذلك.",
+       "tags-delete-not-found": "الوسم \"$1\" غير موجود.",
+       "tags-activate-title": "نشط الوسم",
+       "tags-activate-question": "أنت على وشك تنشيط الوسم \"$1\".",
+       "tags-activate-reason": "السبب:",
+       "tags-activate-not-allowed": "ليس من الممكن تفعيل الوسم \"$1\".",
+       "tags-activate-not-found": "الوسم \"$1\" غير موجود.",
        "tags-activate-submit": "تفعيل",
+       "tags-deactivate-title": "عطل الوسم",
        "tags-deactivate-reason": "سبب",
        "tags-edit-title": "تعديل الوسوم",
+       "tags-edit-manage-link": "التحكم بالوسوم",
+       "tags-edit-existing-tags": "الوسوم الموجودة:",
+       "tags-edit-existing-tags-none": "\"لا وسوم\"",
+       "tags-edit-new-tags": "وسوم جديدة:",
+       "tags-edit-add": "أضف هذه الوسوم:",
+       "tags-edit-remove": "أزل هذه الوسوم:",
+       "tags-edit-remove-all-tags": "(أزل كل الوسوم)",
+       "tags-edit-chosen-placeholder": "اختر بعض الوسوم",
+       "tags-edit-chosen-no-results": "لا وسوم مطابقة",
+       "tags-edit-reason": "السبب:",
+       "tags-edit-success": "طبقت التغييرات بنجاح.",
+       "tags-edit-failure": "التغييرات لم تطبق: $1",
+       "tags-edit-nooldid-title": "مراجعة هدف غير صالحة",
        "comparepages": "قارن صفحات",
        "compare-page1": "صفحة 1",
        "compare-page2": "صفحة 2",
        "revdelete-unrestricted": "أزال الضوابط لمديري النظام",
        "logentry-block-block": "{{GENDER:$2|منع|منعت}} $1 {{GENDER:$4|$3}} لفترة زمنية مدتها $5 $6",
        "logentry-suppress-block": "{{GENDER:$2|منع|منعت}} $1 {{GENDER:$4|$3}} لفترة زمنية مدتها $5 $6",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|استورد|استوردت}} $3 من ويكي أخرى",
        "logentry-merge-merge": "{{GENDER:$2|دمج|دمجت}} $1 $3 إلى $4 (المراجعات حتى $5).",
        "logentry-move-move": "{{GENDER:$2|نقل|نقلت}} $1 صفحة $3 إلى $4",
        "logentry-move-move-noredirect": "{{GENDER:$2|نقل|نقلت}} $1 صفحة $3 إلى $4 دون ترك تحويلة",
        "logentry-upload-upload": " {{GENDER:$2|رفع|رفعت}} $1 $3",
        "logentry-upload-overwrite": "{{GENDER:$2|رفع|رفعت}} $1 نسخة جديدة من  $3",
        "logentry-upload-revert": "{{GENDER:$2|رفع|رفعت}} $1 $3",
+       "log-name-managetags": "سجل إدارة الوسوم",
+       "logentry-managetags-create": "$1 {{GENDER:$2|أنشأ|أنشأت}} الوسم \"$4\"",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|فعل|فعلت}} الوسم \"$4\" للاستخدام بواسطة البوتات والمستخدمين",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|ألغى تفعيل|ألغت تفعيل}} الوسم \"$4\" للاستخدام بواسطة البوتات والمستخدمين",
+       "log-name-tag": "سجل الوسوم",
        "rightsnone": "(لا شيء)",
        "revdelete-summary": "ملخص التعديل",
        "feedback-adding": "إضافة تعليقات إلى الصفحة...",
+       "feedback-back": "رجوع",
        "feedback-bugcheck": "رائع! تحقق من أن هذه ليست إحدى [$1 العلل المعروفة].",
        "feedback-bugnew": "لقد تحققت. بلّغ عن علة جديدة.",
        "feedback-bugornote": "إن كنت مستعدا لشرح  مشكلة تقنية بالتفصيل، رجاءا [$1 قدم تقريرا بالخلل].\nبخلاف ذلك، يمكنك أستخدام الطريقة الأسهل أسفله، سيتم إضافة تعليقك للصفحة \"[$3 $2]\"، بالإضافة إلى اسم المستخدم و نوع المتصفح الذي تستخدمه حاليا.",
        "feedback-cancel": "إلغاء",
        "feedback-close": "تم",
+       "feedback-external-bug-report-button": "أرسل تقرير علة تقنية",
+       "feedback-error-title": "خطأ",
        "feedback-error1": "خطأ: لا يمكن التعرف عليها من API",
        "feedback-error2": "خطأ: فشل في تحرير",
        "feedback-error3": "خطأ : لا توجد استجابة من API",
        "feedback-subject": "الموضوع:",
        "feedback-submit": "إرسال",
        "feedback-thanks": "شكرا! أُرسلت ملاحظاتك لصفحة \"[$2 $1]\".",
+       "feedback-useragent": "وكيل المستخدم:",
        "searchsuggest-search": "بحث",
        "searchsuggest-containing": "يحتوي...",
        "api-error-badaccess-groups": "لا يسمح لك بتحميل الملفات إلى هذه الويكي.",
index 61b96d4..a15dabd 100644 (file)
        "category_header": "الباجه في التصنيف \"$1\"",
        "subcategories": "تصنيفات تحتيه",
        "category-media-header": "فيشيي ميلتيميديا فالكاتيكورى  \"$1\"",
-       "category-empty": "''هاذ التصنيف ما فيهش لا باجات و لا ميلتيميديا.''",
+       "category-empty": "''هاذ التصنيف ما فيه لا پاجات و لا ميلتيميديا.''",
        "hidden-categories": "{{PLURAL:$1|تصنيف مدسوس|تصنيفات مدسوسة}}",
        "hidden-category-category": "تصنيفات مخبّية",
        "category-subcat-count": "{{PLURAL:$2|هاذ التصنيف فيه التصنيف الفرعي التالي|هاذ التصنيف فيه{{PLURAL:$1||التصنيف الفرعي|$1 تصنيفات فرعية}}، من إجمالي $2.}}",
        "specialpage": "باجة خوصوصيّة",
        "personaltools": "دوزان شخصيه",
        "articlepage": "شوف الباجة تاع المحتاوا",
-       "talk": "Ù\85Ù\86اÙ\82Ø´Ù\87",
+       "talk": "Ù\85Ù\87ادرة",
        "views": "استبيان",
        "toolbox": "دوزان",
        "userpage": "شوف الباجة تاع المستعملي",
        "viewhelppage": "شوف الباجة تاع المعاونة",
        "categorypage": "شوف الباجة تاع الصنيف",
        "viewtalkpage": "شوف التقرعيج",
-       "otherlanguages": "بلوغات وحد اوخره",
+       "otherlanguages": "ب لوغات وحدُخرة",
        "redirectedfrom": "(محول من $1)",
        "redirectpagesub": "باجة تاع التحوال",
        "redirectto": "حوّل لـ:",
        "aboutpage": "Project:على",
        "copyright": "المحتاوا راه تحت النسخة $1 تاع الليسانس، غير يلا كان مكتوب حاجاخرة.",
        "copyrightpage": "{{ns:project}}:حقوق النسخ",
-       "currentevents": "اÙ\84خبÙ\88رات",
+       "currentevents": "اÙ\84ختÙ\8aÙ\91ارات",
        "currentevents-url": "Project:خبورات",
        "disclaimers": "تنبيهات",
        "disclaimerpage": "Project:التحذيرات العامه",
        "nstab-special": "باجه خوصوصيّة",
        "nstab-project": "باجه مشروع",
        "nstab-image": "ملف",
-       "nstab-mediawiki": "بريّة",
+       "nstab-mediawiki": "ميساج",
        "nstab-template": "مودال",
        "nstab-help": "باجة تاع معاونة",
        "nstab-category": "تصنيف",
        "no-null-revision": "ما يمكنش تخلاق مراجعة جديدة خاوية لل باجة \"$1\".",
        "badtitle": "عنوان عيان",
        "badtitletext": "عنوان الباجه المطلوب إما ماشي صحيح والا فارغ، وبالاك الوصيل بين اللغات والا بين البروجيات ماشي صحيح.\nبالاك فيه حروف ما تصلحش  باس يستعملوها فالعناوين.",
+       "title-invalid-empty": "عنوان الباجة المطلوبة فارغ و إلا فيه برك إسباس نتاع أسم",
+       "title-invalid-utf8": "عنوان الباجه المطلوبه فيه قسمه UTF-8 مغلوطة",
+       "title-invalid-interwiki": "العلوان تاع الپاجة المطلوبة راه فيها وصيل ``ما بين الويكيّات`` و هادا ما ينجمش يكون مستعمل فل علوانات.",
+       "title-invalid-talk-namespace": "العلوان تاع الپاجة المطلوبة راهي توشّر ل كاش پاجة تاع مهادرة الّي ما تنجمش تكون كاينة.",
+       "title-invalid-characters": "العلوان تاع الپاجة المطلوبة راه فيه حرُف ماشي مقبولة: \"$1\".",
+       "title-invalid-relative": "العلوان هادا راه فيه مسار نسباوي. العلوانات الّي توشّر ل پاجات نسباويّة (./, ../) ما هيش مقبولة، خاطر شحال من خطرة ما تنصابش من عند البحّار تاع المستعمليين.",
+       "title-invalid-magic-tilde": "العلوان تاع الپاجة المطلوبة راه هيها جملة تاع تيلدات مسحورة ماشي مقبولة (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "العلوان تاع الپاجة المطلوبة راه طويل بزّاف. اعرف بلّي ما ينجمش يفوت الـ {{PLURAL:$1|بايت واحد|$1 بايت}} فل التسڤام تاع الحروف UTF-8.",
+       "title-invalid-leading-colon": "العلوان تاع الپاجة المطلوبة راه فيه فاصلة (،) فل بدية.",
        "perfcached": "الموطايات هادي راهي مخبّية و بالاك تاني يكون فات عليها الوقت. {{PLURAL:$1||ناتج واحد|زوج نواتج|$1 نواتج|$1 ناتج}} على الكتَر {{PLURAL:$1||مخبّي|مخبّيين}}.",
        "perfcachedts": "المعلومات هادو راهم مخبّيين، و تعاودو فل $1. يلا كتّر {{PLURAL:$4|ناتج واحد راه|$4 نواتج راهم}} واجدين فل خبّاي.",
        "querypage-no-updates": "المعاودات تاع هاد الصفحة راهم معطّلين.\nالمعلومات هادي ما راهيش مرجّعة لل حاضر.",
        "protectedinterface": "هاد الباجة توفّر لك وريشة (interface) تاع كتابة مديورة لل صوفتوار الّي ف هاد الويكي، و راهي مأمّنة باش تنحضا من الضرارات.\nباش تزيد ولا تبدّل طرجمات ل كامل الويكيّات، من فضلك استعمل [//translatewiki.net/ translatewiki.net] المشروع ميدياويكي تاع التبلادات.",
        "editinginterface": "<strong>ردّ بالك:</strong>راك تبدّل صفحة الّمديورة باش تصنع النصّ تاع الواجهة تاع اللوجيسيال. التبدالات على هاد الصفحة غادي يوتّرو على الشكَل تاع الواجهة حتا عند المستعمليين لخرين.",
        "translateinterface": "باش تزيد ولا تبدّل الطرجمات ل كامل الويكيّات، استعمل [//translatewiki.net/ translatewiki.net]، المشروع تاع التبلاد تاع الميديويكي.",
+       "cascadeprotected": "الپاجة هادي راهي محضيّة من التبدال خاطرش راهي مضمونة فل {{PLURAL:$1|باجة|باجات}} هادي الّي بداتها محضيّة بل خاصيّة تاع \"احضي تاني الپاجات المضمونة\":$2.",
+       "namespaceprotected": "ما عندكش الحقّ باش تبدّل الپاجات الّي بل وسَع تاع التسميّة <strong>$1</strong>.",
+       "customcssprotected": "ما عندكش السراح باش تبدّل الپاجة css هادي خاطرش راه مكمون فيها شي توجادات شخصيّة تاع مستعملي وحداخُر.",
+       "customjsprotected": "ما عندكش السراح باش تبدّل الپاجة جافاسكريبت هادي خاطرش راه مكمون فيها شي توجادات شخصيّة تاع مستعملي وحداخُر.",
+       "mycustomcssprotected": "ما عندكش السراح باش تبدّل الپاجة css هادي.",
+       "mycustomjsprotected": "ما عندكش السراح باش تبدّل الپاجة جافاسكريبت هادي.",
+       "myprivateinfoprotected": "ما عندكش السراح باش تبدّل المعلومات الشخصيّة ديالك.",
+       "mypreferencesprotected": "ما عندكش السراح باش تبدّل الإختيّارات ديالك.",
+       "ns-specialprotected": "الپاجات الخصيصة ما تنجمش تتبدّل.",
+       "titleprotected": "هاد العلوان راه محضي من` التبدال من عند [[User:$1|$1]].\nالسبّة الّي مدّها هيّا \"<em>$2</em>\".",
+       "filereadonlyerror": "ماشي ممكن تبدال الفيشي \"$1\" خاطرش الزمّام \"$2\" راه مشغّلة فيه الخاصيّة \"اقرا برك\".\n\nالموسيّر الّي غلقهُ راه ماد التفسير هادا: \"$3\".",
+       "invalidtitle-knownnamespace": "علوان ماشي مقبول ب وسَع تاع تسميّة \"$2\" معا الكتيبة \"$3\".",
+       "invalidtitle-unknownnamespace": "علوان ماشي مقبول ب نمرو ماشي معروف تاع الوسَع تاع تسميّة \"$1\" معا الكتيبة \"$2\".",
        "exception-nologin": "ماشي مسجّل الدخول",
+       "exception-nologin-text": "الله يحفضك، سجّل الدخول تاعك باش يمكن لك توصَل ل هاد الپاجة ولا الفعلة.",
+       "exception-nologin-text-manual": "الله يعيّشك $1 باش تنجم توصَل ل هاد الپاجة ولا تدير هاد الفعلة.",
+       "virus-badscanner": "تضباط ماشي مليح: السكانار تاع الفيروسات <em>$1</em> ماشي معروف",
+       "virus-scanfailed": "التفتاش ما لحّقش (كود $1)",
+       "virus-unknownscanner": "مضاد الفيروسات ماشي معروف:",
+       "logouttext": "<strong>راك ضركا مسجّل الخروج.</strong>\n\nبالاك تنجم تشوف شي حاجات كلّي راك مازال داخل، حتا الّي يفرغ الكاش تاع البحّار تاعك.",
+       "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-yourpasswordagain-ph": "عاود دخّل كلمت` السرّ",
        "remembermypassword": "اتفكر الدخول تاعي ب هاذ النافيكاتور (ب مدّة حدها{{PLURAL:$1||يوم واحد|يومين|$1 إيّام|$1 يوم}})",
        "userlogin-remembermypassword": "خلّيني مسجّل داخل",
-       "login": "كونكسيون",
+       "userlogin-signwithsecure": "استعمل التوصال المأمون.",
+       "yourdomainname": "الدومان تاعك:",
+       "password-change-forbidden": "ما تنجمش تبدّل كلمات` السرّ فل ويكي هادا.",
+       "externaldberror": "بالاك كاشما صرات غلطة فل توتاق تاع داتاباز ولا ما عندكش السراح باش تبدّل الحساب تاعك الخرجاني.",
+       "login": "تسجال الدخول",
        "nav-login-createaccount": "تسجل/ اصنع حساب",
        "userlogin": "تسجل/ اصنع حساب",
        "userloginnocreate": "مسجّل الدخول",
        "logout": "مسجّل الخروج",
        "userlogout": "سجل خروج",
+       "notloggedin": "ماشي مسجّل داخل.",
        "userlogin-noaccount": "ما عندك حساب؟",
        "userlogin-joinproject": "انضم لـ {{SITENAME}}",
        "nologin": "ما عندكش حساب مسجل؟ '''$1'''.",
        "userlogin-resetlink": "نسيت تفاصيل الدخول؟",
        "userlogin-resetpassword-link": "راك ناسي كلمت` السرّ؟",
        "userlogin-helplink2": "معاونة ف تسجال الدخول",
+       "userlogin-loggedin": "راك مازلت مسجّل داخل ب`السميّة {{GENDER:$1|$1}}.\nاستعمل الجدوال تاع التجواب الّي هنا لتحت باش تتسجّل داخل ب سميّت` مستعملي وحداخُر.",
+       "userlogin-createanother": "اخلق حساب وحداخُر.",
        "createacct-emailrequired": "علوان تاع إيمال",
        "createacct-emailoptional": "علوان ليمال (ماشي مسيّف)",
        "createacct-email-ph": "دخّل علوان` ليمال تاعك",
        "createacct-another-email-ph": "دخّل علوان تاع إيمال",
+       "createaccountmail": "استعمل كلمت` سرّ على الزهَر و ابعتها للإيمال المنعوت هنايا.",
+       "createacct-realname": "الأسم الحقّاني (ماشي محتّم)",
        "createaccountreason": "سبّة:",
        "createacct-reason": "سبّة",
+       "createacct-reason-ph": "علاش راك تخلق حساب وحداخُر",
        "createacct-captcha": "تحقق أمني",
        "createacct-imgcaptcha-ph": "دخّل النصّ الّي راك تشوفهُ لفوق",
        "createacct-submit": "اصنع حسابك",
+       "createacct-another-submit": "اخلق حساب وحداخُر",
        "createacct-benefit-heading": "{{SITENAME}} مخلوق من عند شي ناس غير كيفك.",
        "createacct-benefit-body1": "{{PLURAL:$1|تحرير|تحريرات}}",
        "createacct-benefit-body2": "$1 {{PLURAL:$1|صفحة|صفحات}}",
        "createacct-benefit-body3": "{{PLURAL:$1|مساهم|مساهمين}} توالا",
-       "mailmypassword": "أرسل لي كلمة سر جديده",
+       "badretype": "كلمات` السرّ الّي دخّلتها ماشي متشابهة.",
+       "userexists": "السميّة تاع المستعملي المدخّل راه كاين مقبل.\nالله يحفضك اختار وحداخُر.",
+       "loginerror": "غلطة ف تسجال الدخلة",
+       "createacct-error": "غلطة فل خليق تاع الحساب",
+       "createaccounterror": "ماشي ممكن خليق الحساب: $1",
+       "nocookiesnew": "الحساب تاع المستعملي راه مخلوق بصّح ما راكش مسجّل داخل.\n{{SITENAME}} يستعمل كوكيزات ف تسجال` الدخول تاع المستعمليين.\nراه عندك الكوكيزات راه محبّسين.\nالله يحفضك، اشعلهم و عاود سيّي تسجّل الدخول ب` السميّة تاع المستعملي و كلمت` السرّ تاعك الحدُد.",
+       "nocookieslogin": "{{SITENAME}} يستعمل الكوكيزات ف تسجال الدخول تاع المستعمليين.\nالكوكيزات عندك راهم محبّسين.\nالله يحفضك، مشّيهم و عاود سيّي.",
+       "nocookiesfornew": "الحساب تاع المستعملي ما تنخلقش خاطر ما نجمناش نوتّقو المصدر تاعهُ.\nأكّد بلّي الكوكيزات راهم ممشّيين عندك، عاود عمّر الپاجة و سيّي مرّة جديدة.",
+       "noname": "ما مدّيتش سميّت` مستعملي مقبولة.",
+       "loginsuccesstitle": "التوصال راه نجَح.",
+       "loginsuccess": "<strong>راك مسجّل داخل ف {{SITENAME}} ب`السميّة \"$1\".</strong>",
+       "nosuchuser": "ما كاين حتا مستعملي ب`السميّة \"$1\".\nالسميّة تاع المستعملي راه حسّاسة ف تكسار الحروف (majuscule - minuscule).\nعاود أكّد على كيفاش كتبت الكلمات ولا [[Special:UserLogin/signup|اخلق حساب جديد]].",
+       "nosuchusershort": "ما كاين حتا مستعملي ب` السميّة \"$1\".\nأكّد على الكتيبة تاعك.",
+       "nouserspecified": "لازم لك تمدّ السميّة تاع المستعملي.",
+       "login-userblocked": "هاد السميّة تاع المستعملي راهي مطرودة. تسجال` الدخول ماشي مسموح.",
+       "wrongpassword": "كلمت` السرّ المدخّلة ما راهيشي صحيحة.\nالله يسترك عاود سيّي.",
+       "wrongpasswordempty": "كلمت` السرّ كانت خاوية.\nالله يعيّشك عاود سيّي.",
+       "passwordtooshort": "كلمت` السرّ لازم يكون فيها على القل {{PLURAL:$1|1 حرف واحد|$1 حروف}}.",
+       "passwordtoolong": "كلمت` السرّ ما تنجمش تكون طويلة على {{PLURAL:$1|1 حرف واحد|$1 حرف}}.",
+       "password-name-match": "كلمت` السرّ تاعك لازم لها تكون مبدّلة على سميّت` المستعملي تاعك.",
+       "password-login-forbidden": "الستعملية تاع هاد السميّة تاع المستعملي و كلمت` السرّ راهم ممنوعين.",
+       "mailmypassword": "استرجع كلمت` السرّ",
+       "passwordremindertitle": "كلمت` سرّ مأقّتة لـ {{SITENAME}}",
+       "passwordremindertext": "كاش واحد (يكون غير نتا، من لادريسة إيپي  $1) راه طلب كلمت` سرّ جديدة ل $4 {{SITENAME}}. كلمت` سرّ مأقّتة راهي نخلقت لل مستعملي \"$2\" و هيّا $3\". يلا كان هاد الشي واش راك حاب، لازم لك تتسجّل داخل ف` السيت و تختار كلمت` سرّ جديدة من ضركا. كلمت` السرّ هادي غادي يكمل الصلوح تاعها منّا على {{PLURAL:$5|يوم واحد|$5 إيّام}}.\n\nيلا كان وحداخُر دار هاد المطلب، ولا يلا كنت نتا تفكّرت كلمت` السرّ ديالك، و ما راكش باقي حاب تبدّلها، تنجم غير تتنسّا هاد الميساج و تكمّل تستعمل كلمت` السرّ تاعك القديمة.",
+       "noemail": "ما كاين حتا إيمال مسجّل لل مستعملي \"$1\".",
+       "noemailcreate": "لازم لك تحُطّ آدريسة تاع إيمال تكون مقبولة.",
+       "passwordsent": "كلمت` سرّ جديدة راهي نبعتت لل آدريسة تاع إيمال المسجّلة ل \"$1\".\nالله يخلّيك عاود اتسجّل داخل مور ما راهي تلحق لك.",
+       "blocked-mailpassword": "الآدريسة إيپي تاعك راهي مبلوكية ف تبدال الپاجات، و باش نحضيو من كاش تخراب، ما تنجمش تاني تطلب باش تسترجع كلمت` السرّ.",
+       "eauthentsent": "راه نبعَت إيمال تاع تأكاد لل آدريسة الّي تمدّت.\nقبل ماينبعَت حتا إيمال وحداخُر ل هاد لادريسة، لازم تتبّع بعدا الوصافات الّي وصلو لك، باش تأكّد بلّي الحساب هادا راه ديالك.",
+       "throttled-mailpassword": "راه نبعّت لك إيمال تاع السترجاع تاع كلمت& السرّ منقبَل، هادي {{PLURAL:$1|ساعة|$1 سوايع}}.\nباش نتحضّاو منل غشّ، ما ينجم ينبعت غير إيمال واحد تاع السترجاع ف كلّ مدّة تاع {{PLURAL:$1|ساعة|$1 سوايع}}.",
+       "mailerror": "صرات غلطة فل بعت تاع الإيمال: $1",
+       "acct_creation_throttle_hit": "شي زايرين ل هاد الويكي كانو مستعملين الادريسة إيپي تاعك و خلقو {{PLURAL:$1|حساب|$1 حسابات}} ف` النهار هادا الّي فات، و هاد هوّا الحدّ القاصي المقبول ف هاد المدّة تاع الزمان.\nعلى هاد الشي، الزايرين من هاد الإيبي ما ينجمو يخلقو حتا حساب ف هاد الوقيتة.",
+       "emailauthenticated": "الادريسة تاع الإيمال تاعك راهي تكونفيرمات ف $2 على الـ $3.",
+       "emailnotauthenticated": "الادريسة تاع الإيمال تاعك مازال ما راهيش مكونفيرمية.\nحتا إيمال ما غادي ينبعَت لك على الشغّالات هادي.",
+       "noemailprefs": "خصّص كاش آدريسة تاع إيمال فل إختيارات ديالك باش تمشي لك هاد التشغيلة.",
+       "emailconfirmlink": "كونفيرمي الادريسة تاع الإيمال تاعك",
+       "invalidemailaddress": "الادريسة تاع الإيمال هادي ما تنجمش تنقبَل خاطر الشكَل تاعها راه يبان ماشي مصاوب.\nالله يحفضك دخّل آدريسة يكون عندها شكَل مقبول ولا خلّي الوسَع هاداك خاوي.",
+       "cannotchangeemail": "الادريسة تاع الإيمال تاع الحساب ما يمكنش تتبدّل ف هاد الويكي.",
+       "emaildisabled": "هاد السيت ما ينجمش يبعت إيمالات.",
+       "accountcreated": "الحساب راه اتخلّق",
+       "accountcreatedtext": "الحساب تاع المستعملي [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) راه تنخلق.",
+       "createaccount-title": "خليق حساب ف {{SITENAME}}",
+       "createaccount-text": "شي واحد راه خلَق حساب ف {{SITENAME}} ($4) ب`السميّة \"$2\"، و كلمت` السرّ \"$3\".\nلازم لك ضركا تتسجّل داخل ف` السيت و تبدّل كلمت` السرّ ديالك.\n\nيلا هاد الحساب راه نخلَق ب غلطة، غير فوت هاد الميساج.",
+       "login-throttled": "راك درت مسيّات كتَر من المقبول باش تدخُل ف`السيت.\nالله يخلّيك، اصبَر $1 قبَل ما تسيّي عاود.",
+       "login-abort-generic": "الدخول تاعك ما نجَحش",
+       "login-migrated-generic": "الحساب تاعك راه تنقّل و سميّت` المستعملي ما بقاش كاين ف هاد الويكي.",
        "loginlanguagelabel": "اللوغه: $1",
+       "suspicious-userlogout": "المطلب تاعك باش تسجّل خارج ما تسجّلش خاطر راه يبان مرسول من عند بحّار معطّل ولا  خزّان تاع وسّاط (proxy cache).",
+       "createacct-another-realname-tip": "السميّة الحقّانيّة ماشي ملزومة.\nيلا تستعملها غادي تصلاح باش تنسّب ليك الخدمة الّي غادي تديرها.",
        "pt-login": "دخله",
        "pt-login-button": "دخول",
        "pt-createaccount": "اصنع حساب",
-       "pt-userlogout": "خروج",
+       "pt-userlogout": "الخروج",
+       "php-mail-error-unknown": "غلطة مجهولة صرات فل وضيفة mail() تاع PHP.",
+       "user-mail-no-addy": "راك سيّيت تبعت إيمال بلا ما تحُطّ آدريسة ليه.",
+       "user-mail-no-body": "راك سيّيت تبعت إيمال خاوي ولا ب نصيّص قصير بزّاف.",
+       "changepassword": "بدّل كلمت` السرّ",
+       "resetpass_announce": "باش تكمّل تسجال الدخول تاعك لازم لك تبدّل كلمت` السرّ تاعك.",
+       "resetpass_header": "بدّل كلمت` السر تاع الحساب",
+       "oldpassword": "كلمت` السرّ القديمة:",
+       "newpassword": "كلمت` السرّ الجديدة:",
+       "retypenew": "عتود اكتب كلمت` السرّ:",
+       "resetpass_submit": "اختار كلمت` السرّ و سجّل الدخول",
+       "changepassword-success": "كلمت` السرّ تاعك راهي تبدّلت!",
+       "changepassword-throttled": "راك درت مسيّات كتَر من المقبول باش تدخُل ف`السيت.\nالله يخلّيك، اصبَر $1 قبَل ما تسيّي عاود.",
+       "resetpass_forbidden": "كلمت` السرّ ما تنجمش تتبدّل",
+       "resetpass-no-info": "لازم لك تكون مسجّل الدخول باش تلحق ل هاد الپاجة.",
+       "resetpass-submit-loggedin": "بدّل كلمت` السرّ",
+       "resetpass-submit-cancel": "بطّل",
+       "resetpass-wrong-oldpass": "كلمت` سرّ ماشي مقبولة.\nبالاك راك بدّلتها ولا طلبت كاش كلمت` سرّ مأقّتة.",
+       "resetpass-recycled": "الله يخلّيك بدّل كلمت` السرّ تاعك ب حاجة من غير الحاجة الّي راك دايرها ضركا.",
+       "resetpass-temp-emailed": "راك سجّلت الدخول تاعك ب كود مأقّت مبعوت ليك ب إيمال. باش تكمّل الدخول لل پاجات لخرين، لازم لك تختار كلمت` سرّ جديدة هنا:",
+       "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}}\" باش تبدّلها منبعَد.",
        "passwordreset": "صفّي كلمت` السرّ",
+       "passwordreset-text-one": "كمّل هاد الجدوال تاع الإختيارات باش تلحق لك كلمت` سرّ جديدة بل إيمال.",
+       "passwordreset-text-many": "{{PLURAL:$1|عمّر واحد من هاد قويبسات باش تلحق لك كلمت` سرّ جديدة بل إيمال.}}",
        "passwordreset-legend": "استرجع كلمت` السرّ",
+       "passwordreset-disabled": "التبدال تاع كلمت` السرّ راهي محبّسة ف هاد الويكي.",
+       "passwordreset-emaildisabled": "الفعاليّات تاع الإيمال راهي محبّسة ف هاد الويكي.",
+       "passwordreset-username": "سميّت` المستعملي:",
+       "passwordreset-domain": "الدومان:",
+       "passwordreset-capture": "شوف الإيمال الناتج؟",
+       "passwordreset-capture-help": "يلا تقبش (cocher) هاد القويبسة، الإيمال (ب كلمت` السرّ المأقّتة) غادي يتورّا لك كلّي راه مبعوت لل مستعملي.",
+       "passwordreset-email": "آدريسة تاع إيمال:",
+       "passwordreset-emailtitle": "وصافات تاع الحساب ف {{SITENAME}}",
+       "passwordreset-emailtext-ip": "شي واحد (يكون بالاك نتا، لادريسة إيپي $1) راه طلَب المصاوبة تاع كلمت` السرّ تاعك ف {{SITENAME}} ($4). {{PLURAL:$3|هاد الحساب |هاد الحسابات}} تاع المستعملي {{PLURAL:$3|راه مربوط|راهم مربوطين}} ب لادريسة تاع الإيمال:\n\n$2\n\n{{PLURAL:$3|هاد كلمت` السرّ المأقّتة|هادي كلمات` السرّ المأقّتة}} غادي يكمل صلوحها منّا على {{PLURAL:$5|نهار واحد|$5 إيّام}}.\nمليح لوكان تدخُل ل`السيت من ضركا و تبدّل كلمت` السرّ.\nيلا كاش ما وحداخُر دار هاد المطلب ولا راك تفكّرت كلمت` السرّ تاعك و ما بقيتش باغي تبدّلها، تنجم برك تنسا هاد الميساج و تستعمل كلمت` السرّ تاعك تاع مضاري.",
+       "passwordreset-emailtext-user": "المستعملي $1 ف {{SITENAME}} راه طلب تبدال ف كلمت` السرّ تاعك ف {{SITENAME}}\n($4). {{PLURAL:$3|الحساب|الحسايات}} تاع المستعملي {{PLURAL:$3|راه مربوط|راهم مربوطين}} ب لادريسة تاع ليمال هادي:\n\n$2\n\n{{PLURAL:$3|هاد كلمت` السرّ المأقّتة|هادي كلمات` السرّ المأقّتة}} غادي يكمل صلوحها منّا على {{PLURAL:$5|نهار واحد|$5 إيّام}}.\nمادابيك تسجّل داخل ضركا و تختار كلمت` سرّ جديدة. يلا كان وحداخُر دار هاد المطلب، ولا راك ضركا تفكّرت كلمت` السرّ تاعك القديمة و ما بقيتش باغي تبدّلها، تنجم برك تتنسّا هاد الميساج و تدخُل ب كلمت` السرّ تاعك تاع مضاري.",
+       "passwordreset-emailelement": "سميّت` المستعملي: $1\nكلمت` السرّ المأقّتة: $2",
+       "passwordreset-emailsent": "راه نبعَت إيمال تاع تبدال كلمت` السرّ.",
+       "passwordreset-emailsent-capture": "راه اترسل إيمال تاع تبدال كلمت` السرّ، و راه محطوط هنا لتحت.",
+       "passwordreset-emailerror-capture": "راه اترسل الإيمال تاع تبدال كلمت` السرّ، الّي راح محطوط هنا لتحت، بصّح البعيت تاعهُ لل {{GENDER:$2|مستعملي}} ما نجحش: $1",
+       "changeemail": "بدّل لادريسة تاع الإيمال",
+       "changeemail-text": "كمّل الكتبة ف` الجدوال هادا باش تبدّل لادريسة تاع الإيمال تاعك. يلزم لك تدخّل كلمت` السرّ تاعك باش تأكّد هاد التبدال.",
+       "changeemail-no-info": "لازم لك تكون مسجّل داخل باش توصَل ل هاد الپاجة بسّراح.",
+       "changeemail-oldemail": "لادريسة تاع الإيمال السارية:",
+       "changeemail-newemail": "لادريسة تاع الإيمال الجديدة:",
+       "changeemail-none": "(والو)",
+       "changeemail-password": "كلمت` السرّ تاعك ف {{SITENAME}}:",
+       "changeemail-submit": "بدّل الإيمال",
+       "changeemail-throttled": "راك درت بزّاف تاع المسيّات (كتَر منل مقبول!) باش تسجّل الدخول.\nالله يحفضك اصبر $1 قبَل ما تعاود تسيّي.",
+       "resettokens": "بدّل المفاتح",
+       "resettokens-text": "تنجم تبدّل المفاتح الّي يخلّيوك توصل ل شي معلومات خوصوصيّة، مربوطة بل حساب تاعك هنا.\n\nلازم لك تديرها يلا كُنت نتا مدّيتهم ل شي واحد ولا بلا كان الحساب تاعك اتهدّد.",
+       "resettokens-no-tokens": "ما كاين حتا مفاتح تنجم تبدّلهم.",
+       "resettokens-legend": "بدّل المفاتح",
+       "resettokens-tokens": "مفاتح:",
+       "resettokens-token-label": "$1 (القيمة تاع ضركا: $2)",
+       "resettokens-watchlist-token": "المفتاح تاع السيل (Atom/RSS) تاع [[Special:Watchlist|التبدالات الّي فل ليستة تاع المتابعة تاعك]]",
+       "resettokens-done": "المفاتح راهي تبدّلت.",
+       "resettokens-resetbutton": "بدّل المفاتح الّي راك ختاريتها",
        "bold_sample": "كتيبة غليظه",
        "bold_tip": "كتيبة غليظه",
        "italic_sample": "كتبة مايلة",
        "sig_tip": "سنياتورتك بالساعة و التاريخ",
        "hr_tip": "خط أفقي (ما تستعملوش بزاف)",
        "summary": "ملخص:",
+       "subject": "موضوع / علوان:",
        "minoredit": "هذي تبديلة صغيرة",
        "watchthis": "تبع الباجة",
        "savearticle": "سجل الباجة",
        "preview": "شوفه-قبلي",
        "showpreview": "بين معاينة",
        "showdiff": "عرض التبديلات",
+       "blankarticle": "<strong>ردّ البال:</strong> الپاجة الّي كريّيتها راهي خاوية.\nيلا تعاود تكليكي على {{int:savearticle}}\"، الپاجة غادي تنخلق بلا ما يكون فيها حتا محتاوا.",
        "anoneditwarning": "'''توليهة:''' راك ما دخلتش بل حساب تاعك.\nيلا تدير شي تبدال، غادي تتسجّل لادريسة آيبي تاعك فل متراخ تاع هاد الصفحة و تكون باينة ل كلّ واحد. يلا [$1 تتكونيكتا]</strong> ولا <strong>[$2 تخلق حساب]</strong>، التبدالات تاعك غادي يبانو تحت السميّة تاع المستعملي تاعك، و كاين تاني مزيّات وحدخرين.",
+       "anonpreviewwarning": "<em>ما راكش مسجّل داخل. لوكان تحفّظ التبدالات ضركا غادي تتسجّل لادريسة إيپي تاعك فل تاريخ تاع هاد الپاجة.</em>",
+       "missingsummary": "<strong>تفكار:</strong> راك ما مدّيتش تلخيص على التبدال تاعك.\nيلا تكليكي على \"{{int:savearticle}}\" مجّديد، التبدال تاعك غادي يتسجّل بلاش.",
+       "selfredirect": "<strong>ردّ البال:</strong> راك توجّه هاد الپاجة على روحها.\nبالاك راك غلطت فل ختيّار تاع التقيان تاع الپاجة، ولا تاني ما راكش فل پاجة الّي راك حاب تإيديتيها.\nيلا تكليكي على \"{{int:savearticle}}\" مجّديد، هاد التوجاه غادي ينخلق كيما هاك.",
+       "missingcommenttext": "الله يحفضك حُطّ شي تعليق هنا لتحت.",
+       "missingcommentheader": "<strong>تفكار:</strong> راك ما حطّيتش علوان تاع الموضوع تاع التعليق تاعك.\nيلا تكليكي على \"{{int:savearticle}}\" مجّديد، التبدال تاعك غادي يتسجّل بلاش.",
+       "summary-preview": "شوفة خفيفة على التلخيص:",
+       "subject-preview": "شوفة خفيفة على العلوان / الموضوع:",
+       "previewerrortext": "صرات غلطة فل محاولة باش تشوف خفيف ف` التبدالات تاعك.",
+       "blockedtitle": "المستعملي هادا راه محبّس",
+       "blockedtext": "<strong>السميّة تاع المستعملي تاع ولا الإييي راهم محبّسين</strong>\n\nالّي دار التحباس هوّا $1.\nالسبّة تاع التحباس هيّا: <em>$2</em>.\n\n* البدية تاع التحباس: $8\n* الكمال تاع التحباس: $6\n* المقصود تاع التحباس: $7\n\nتنجم تتاصل ب $1 ولا شي واحد من  [[{{MediaWiki:Grouppage-sysop}}|الإيداريّين]] باش تهدر على التحباس.\nما تنجمش تستعمل الخاصيّة تاع  \"ابعت إيمال ل هاد المستعملي\" غير يلا راك وضّعت إيمال صحيح فل  [[Special:Preferences|الختيّارات تاع الحساب تاعك]] و تاني ما راكش مبلوكي فيهم.\nلادريسة إيپي تاعك تاع ضركا هيّا $3، و النمرو تاع التعراف تاع التحباس هوّا #$5.\nالله يخلّيك حطّ كامل هاد المعلومات يلا بغيت تبعت مطلب على هاد الشي.",
+       "autoblockedtext": "لادريسة تاع الإيپي تاعك راهي محبّسة خاطر راهي اتستعملت من عند مستعملي الّي راه بداتهُ محبّس من عند $1.\nالسبّة تاع التحباس هيّا: <em>$2</em>.\n\n* البدية تاع التحباس: $8\n* الكمال تاع التحباس: $6\n* المقصود تاع التحباس: $7\n\nتنجم تتاصل ب $1 ولا شي واحد من  [[{{MediaWiki:Grouppage-sysop}}|الإيداريّين]] باش تهدر على التحباس.\nما تنجمش تستعمل الخاصيّة تاع  \"ابعت إيمال ل هاد المستعملي\" غير يلا راك وضّعت إيمال صحيح فل  [[Special:Preferences|الختيّارات تاع الحساب تاعك]] و تاني ما راكش مبلوكي فيهم.\nلادريسة إيپي تاعك تاع ضركا هيّا $3، و النمرو تاع التعراف تاع التحباس هوّا #$5.\nالله يخلّيك حطّ كامل هاد المعلومات يلا بغيت تبعت مطلب على هاد الشي.",
+       "blockednoreason": "ما تمدّت حتا سبّة",
+       "whitelistedittext": "لازم لك $1 باش تنجم تبدّل الپاجات.",
+       "confirmedittext": "لازم لك تكونفيرمي لادريسة تاع الإيمال تاعك قبل ما تنجم تإيديتي الپاجة.\nالله يسترك صاوب و أكّد لادريسة تاع الإيمال ديالك فل [[Special:Preferences|ختيّارات تاع المستعملي]].",
+       "nosuchsectiontitle": "ما مكنش تنصاب التقسيمة",
+       "nosuchsectiontext": "راك سيّيت تبدّل شي تقسيمة الّي ما كاينش منها.\nبالاك راهي تحوّلت ولا اتّمحات مين كنت نتا تشوف فل پاجة.",
+       "loginreqtitle": "تسجال الدخول راه ملزوم",
        "loginreqlink": "اتكونيكتا",
+       "loginreqpagetext": "الله يخلّيك لازم $1 باش تشوف الپاجات لُخرة.",
+       "accmailtitle": "كلمت` السرّ راهي انبعتَت",
+       "accmailtext": "راهي انخلقت كلمت` سرّ مختارة على الزهَر لل مستعملي [[User talk:$1|$1]] و و انبعتت ل $2.\nتنجم تبدّلها فل پاجة<em>[[Special:ChangePassword|بدّل كلمت` السرّ]]</em> كي تتسجّل داخل.",
        "newarticle": "(جديد)",
        "newarticletext": "راك تبعت وصيلة لباجه لم ما تخدمتش بعد.\nباش تصنع هاذ الباجه ابدا الكتبه فالصندوق التحت (شوف في [$1  زياده باجه المساعده] لمعلومات).\nإذا كانت زيارتك لهاذ الباجه غلطه، ادرك على بوطون''ولى'' في نافيقاتور الإنترنت نتاعك.",
+       "anontalkpagetext": "----''هاذ الباجة نقاش لمستخدم مجهول ما قامش بإنشاء حساب بعد و الا ما يستعملش ذاك الحساب.\nلذا لازم علينا استعمال رقم الأيبي باش نتعرفو عليه/عليها.\nمثل هذا العنوان يمكنلو يشترك فيه مستخدمين بزاف.\nإذا كنت مستخدم مجهول وتشعر بلي التعليقات ما تخصكش وصلتلك ، من فضلك [[Special:UserLogin/signup|أصنع حساب]] ولا [[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}} أصنع هاذ الباجه]</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": "'''ملاحظة:''' بعد الحفظ، بلاك تحتاج باش تفرغ الكاش نتاع المتصفح و تشوف التبديلات.\n* '''فايرفوكس / سفاري:''' ادرك ''Shift'' منين تكون تدرك ''Reload''، ولاادرك ثاني إما  ''Ctrl-F5'' ولا''Ctrl-R'' (''⌘-R'' على ماك)\n* '''قوقل كروم:''' ادرك ''Ctrl-Shift-R'' (''⌘-Shift-R'' على ماك)\n* '''إنترنت إكسبلورر:''' ادرك ''Ctrl'' منين تدرك على ''Refresh''، ولا ادرك ''Ctrl-F5''\n* '''كنكرر:''' ادرك ''Reload'' ولا ادرك ''F5''\n* '''أوبرا:''' فرغ الكاش في ''Tools → Preferences''",
+       "usercssyoucanpreview": "'''ملاحظة:''' استعمل بوطون \"{{int:showpreview}}\" لاش تجرب CSS الجديد قبل ما تسجل الباجة.",
+       "userjsyoucanpreview": "'''ملاحظة:''' استعمل بوطون\"{{int:showpreview}}\" لتجربة جافاسكربت الجديدة قبل تسجل الباجة.",
+       "usercsspreview": "'''تفكر أنك راك تعرض الأنماط المتراصة (CSS) الخاصة بيك فقط\nو تمش حفظها بعد!'''",
+       "userjspreview": "'''تذكر أنك فقط تجرب/تعاين جافاسكربت.'''\n'''مازال ما  صراش التسجيل!'''",
+       "sitecsspreview": "'''تفكر أنك راك تعرض الأنماط المتراصة (CSS) الخاصة بيك فقط\nو تمش حفظها بعد!'''",
+       "sitejspreview": "'''تذكر أنك فقط تجرب/تعاين جافاسكربت.'''\n'''مازال ما  صراش التسجيل!'''",
+       "userinvalidcssjstitle": "'''تحذير:''' ما كانش تلبيسة\"$1\".\nتفكر بلي ملفات ال.css و ال.js تستعمل حروف صغيرة في العنوان ، كمثال {{ns:user}}:Foo/vector.css و ليس {{ns:user}}:Foo/Vector.css.",
+       "updated": "ميزاجور (تحديث)",
+       "note": "'''ملاحظة:'''",
        "previewnote": "'''ما تنساش هذي معاينه قبليه.'''\nلدوك التبديلات دياولك ما تسجلوش!",
+       "continue-editing": "روح لصندوق التحرير",
+       "previewconflict": "هاذ العرض يبين النص الموجود في صندوق التحرير الفوقاني اللي يبانلك إذا اختاريت النشر.",
+       "session_fail_preview": "'''مانقدروش نسجلو التبديلات نتاوعك علا خاطر كاين معلومات تودرو في ما يخص القعدة .'''\nمن فضلت حاول مرة اخرى.\nإذا ما نجحتش مرة جديدة, حاول باش [[Special:UserLogout|تخرج]], و تدخل مرة اخرى",
+       "session_fail_preview_html": "'''مانقدروش نسجلو التبديلات نتاوعك علا خاطر كاين معلومات تودرو في ما يخص القعدة .'''\n\n''على خاطر {{SITENAME}} فعل HTML brut, الإستضهار تخبا باش نتوخاو الهجمات بالجافاسكريبت.''\n\n'''إذا كانت محاولة التبديل صادقة, حاول مرة اخرى.'''\nالا ما نجحتش مرة اخرى, [[Special:UserLogout|اخرج]], و ادخل مرة اخرى",
        "editing": "تحرير $1",
        "creating": "خليق $1",
        "editingsection": "كتيبه $1 (قسم)",
        "compareselectedversions": "كومباري بين نسختين مخيرين",
        "editundo": "نحي",
        "diff-multi-sameuser": "({{PLURAL:$1|تبديلة متوسّطة وحدة|$1 تبديلات متوسّطين}} ماشي {{PLURAL:$1|مورّية|$1 مورّيين}} من عند نفس المستعملي)",
-       "searchresults": "نتاج تاع التفتيشة",
-       "searchresults-title": "رÙ\8aزÙ\8aÙ\84تÙ\87 ØªØ§Ø¹ Ø§Ù\84تحÙ\88اس \"$1\"",
+       "searchresults": "الناتج تاع التفتاش",
+       "searchresults-title": "اÙ\84Ù\86اتج ØªØ§Ø¹ Ø§Ù\84تÙ\81تاش \"$1\"",
        "prevn": "{{PLURAL:$1|précédente|$1 اللولانيين}}",
        "nextn": "{{PLURAL:$1|suivante|$1 التاليين}}",
        "prevn-title": "$1 {{PLURAL:$1|النتيجة التالية|النتايج التواله}}",
        "action-edit": "عدل هاذ الباجه",
        "nchanges": "$1 تبديله{{PLURAL:$1||s}}",
        "enhancedrc-history": "تاريخ",
-       "recentchanges": "تبدÙ\8aÙ\84ات توالا",
-       "recentchanges-legend": "ابسيون التبديلات التواله",
+       "recentchanges": "اÙ\84تبداÙ\84ات Ø§Ù\84توالا",
+       "recentchanges-legend": "واش تختار ف`التبدالات التوالا",
        "recentchanges-summary": "اجبر التبدالات اللواخر الّي صراو ف هاد الصفحة.",
        "recentchanges-feed-description": "تبع التبديلات الجدد للويكي في هاذ التيار .",
-       "recentchanges-label-newpage": " Ù\87اذ Ø§Ù\84تبدÙ\8aÙ\84 ØµÙ\86ع Ø¨Ø§Ø¬Ù\87 Ø¬Ø¯Ù\8aدÙ\87",
+       "recentchanges-label-newpage": " Ù\87اد Ø§Ù\84تبداÙ\84 Ø±Ø§Ù\87 ØµÙ\86ع Ø¨Ø§Ø¬Ø© Ø¬Ø¯Ù\8aدة",
        "recentchanges-label-minor": "هاذا تبديل صغير",
        "recentchanges-label-bot": "هاذ التبديل ندار بروبو",
        "recentchanges-label-unpatrolled": "ما تراجعتش هاذ التبديله للآن",
        "recentchanges-label-plusminus": "الحجَم تاع الصفحة راه تبدّل ب هاد العدّة تاع البايتات",
        "recentchanges-legend-heading": "'''تفسار:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (شوف تاني [[Special:NewPages|ليستة تاع صفحات جديدة]])",
-       "rcnotefrom": "هاهي التبديلات  من'''$2''' (ل'''$1''' معروضه).",
+       "rcnotefrom": "التحت التبديلات من <strong>$2</strong> (إلى <strong>$1</strong> معروضة).",
        "rclistfrom": "بين التبديلات البديه من $3 $2",
        "rcshowhideminor": "$1 التبديلات الصغير",
        "rcshowhideminor-show": "ورّي",
        "newpageletter": "ج‌",
        "boteditletter": "ب",
        "rc-change-size-new": "$1 {{PLURAL:$1|octet|octets}} مورا التبدال",
-       "rc-enhanced-expand": "بÙ\8aÙ\86 Ø§Ù\84تÙ\81اصÙ\8aÙ\84 (Ù\8aÙ\84زÙ\85Ù\87ا Ø¬Ø§Ù\81اسÙ\83رÙ\8aبت)",
+       "rc-enhanced-expand": "Ø´Ù\88Ù\81 Ø§Ù\84تÙ\81اصÙ\8aÙ\84",
        "rc-enhanced-hide": "خبي التفاصيل",
        "recentchangeslinked": "تبديلات مربوطه",
        "recentchangeslinked-toolbox": "تبديلات الباجات المرتبطه",
        "sharedupload-desc-here": "هاذ الملف جاي من $1. يمكن يكون مستعمل من بروجيات وحد أخرين.\nالتوصيف نتاعو في [$2 باجت الصفات] محطوطه هنا لتحت.",
        "upload-disallowed-here": "ما تنحمش تعدّل هاد التصويرة",
        "randompage": "باجة على الزهر",
-       "statistics": "إحصاويّات",
+       "statistics": "إحصائيّات",
        "nbytes": "{{PLURAL:$1|بايت 1|$1 بايت}}",
        "nmembers": "$1 اعضاء{{PLURAL:$1||s}}",
        "prefixindex": "كامل الباجات الباديه ب",
        "watchlistfor2": "ل$1 ($2)",
        "watch": "تبع",
        "unwatch": "ما تزيدش تعس",
-       "watchlist-details": "{{PLURAL:$1||باجÙ\87 Ù\88حدÙ\87²Ù\88ج Ø¨Ø§Ø¬Ø§Øª|$1 Ø¨Ø§Ø¬Ø§Øª|$1 Ø¨Ø§Ø¬Ù\87 }} Ù\81Ù\8a Ù\84Ù\8aستت Ù\85راÙ\82بتÙ\83Ø\8c Ø¨Ù\84ا Ù\85ا ØªØ¹Ø¯ Ø¨Ø§Ø¬Ø§Øª Ø§Ù\84Ù\86Ù\82اش.",
+       "watchlist-details": "{{PLURAL:$1||باجÙ\87 Ù\88حدÙ\87¨Ø§Ø¬ØªÙ\8aÙ\86|$1 Ø¨Ø§Ø¬Ø§Øª|$1 Ø¨Ø§Ø¬Ù\87}} Ù\81Ù\8a Ù\84Ù\8aستت Ù\85راÙ\82بتÙ\83Ø\8c Ù\85Ù\86 ØºÙ\8aر Ø§Ø¹ØªØ¨Ø§Ø± Ø¨Ø§Ø¬Ø§Øª Ø§Ù\84Ù\86Ù\82اش Ù\87Ù\8a Ø¨Ø§Ø¬Ø§Øª Ù\85Ù\86Ù\81صÙ\84Ù\87.",
        "wlshowlast": "بين آخر $1 سوايع $2 يامات",
        "watchlist-options": "ابسيون ليستت المراقبه",
        "actioncomplete": "العمليه اندارت",
        "blanknamespace": "أساسي",
        "contributions": "مساهمات {{GENDER:$1|المستخدم|المستخدمه}}",
        "contributions-title": "مساهمات {{GENDER:$1|المستخدم|المستخدمه}} $1",
-       "mycontris": "مساهماتي",
-       "contribsub2": "ل$1 ($2)",
+       "mycontris": "المساهمات تاعي",
+       "contribsub2": "ل{{GENDER:$3|$1}} ($2)",
        "uctop": "ذ الوقت",
        "month": "من شهر (وأقدم):",
        "year": "من عام (وأقدم):",
        "tooltip-ca-watch": "زيد هذ الباجة لل ليستة تاعك تاع التتباع",
        "tooltip-ca-unwatch": "اقلع هاد الباجة منل ليستة تاعك تاع التتباع",
        "tooltip-search": " فتّش في {{SITENAME}}",
-       "tooltip-search-go": "روح لباجه عندها ذاك الآسم نفسو  إذا كانت",
+       "tooltip-search-go": "روح ل باجة عندها ذاك الآسم بدّات يلا كانت كاينة",
        "tooltip-search-fulltext": "فتّش على باجه بهاد الكتبة",
        "tooltip-p-logo": "زور الپاجة اللولانيّة",
        "tooltip-n-mainpage": "زور الپاجة اللولانيّة",
        "tooltip-undo": "\"نحّي\" فاصي هاد الـمعاودة و حلّ تاقة تاع تبدال بشوفه قبلانيّه. تخلّي باش ترجع لل معاوده التاليه و تزيد الـسبّة علاش فل قابسه تاع الـحويصله.",
        "tooltip-summary": "دخل تلخيص صغير",
        "simpleantispam-label": "مسيّة ضدّ السبام.\nما تعمّرش هادا!",
-       "pageinfo-toolboxlink": "معلومات على هاد الباجه",
+       "pageinfo-toolboxlink": "معلومات على هاد الباجة",
        "previousdiff": "→ التعديل الي قبل",
        "nextdiff": "التبديل الجاي ←",
        "file-info-size": "$1 × $2 بكسل حجم الملف: $3، نوع MIME: $4",
index e61f4a8..d5916eb 100644 (file)
@@ -17,7 +17,8 @@
                        "아라",
                        "Aftabuzzaman",
                        "Macofe",
-                       "IKHazarika"
+                       "IKHazarika",
+                       "Dibya Dutta"
                ]
        },
        "tog-underline": "সংযোগসমূহ অধোৰেখিত কৰক:",
@@ -34,6 +35,7 @@
        "tog-watchdefault": "মই সম্পাদনা কৰা সকলো পৃষ্ঠা মোৰ লক্ষ্য-তালিকাত যোগ কৰক",
        "tog-watchmoves": "মই স্থানান্তৰ কৰা সকলো পৃষ্ঠা আৰু ফাইল মোৰ লক্ষ্য-তালিকাত যোগ কৰক",
        "tog-watchdeletion": "মই বিলোপ কৰা সকলো পৃষ্ঠা মোৰ লক্ষ্য-তালিকাত যোগ কৰক",
+       "tog-watchrollback": "মই পূৰ্ববত কৰা পৃষ্ঠা মোৰ লক্ষ্য-তালিকাত যোগ কৰা হওক",
        "tog-minordefault": "সকলো সম্পাদনা অগুৰুত্বপূৰ্ণ বুলি নিজে নিজে চিহ্নিত কৰক",
        "tog-previewontop": "সম্পাদনা বাকছৰ ওপৰত খচৰা দেখুৱাওক",
        "tog-previewonfirst": "প্ৰথম সম্পাদনাৰ পিছত খচৰা দেখুৱাওক",
        "disclaimers": "দায়লুপ্তি",
        "disclaimerpage": "Project:সাধাৰণ দায়লুপ্তি",
        "edithelp": "সম্পাদনাৰ বাবে সহায়",
+       "helppage-top-gethelp": "সহায়",
        "mainpage": "বেটুপাত",
        "mainpage-description": "বেটুপাত",
        "policy-url": "Project:নীতি",
        "no-null-revision": "\"$1\" পৃষ্ঠাৰ বাবে নতুন শূন্য সংশোধন সৃষ্টি কৰিব পৰা নগ'ল",
        "badtitle": "অগ্ৰহণীয় শিৰোনামা",
        "badtitletext": "আপুনি বিচৰা পৃষ্ঠাটোৰ শিৰোনামা অযোগ্য, খালী বা ভুলকৈ জড়িত আন্তৰ্ভাষিক বা আন্তৰ্ৱিকি শিৰোনামা। ইয়াত এক বা ততোধিক বৰ্ণ আছে যাক শিৰোনামাত ব্যৱহাৰ কৰিব নোৱাৰি।",
+       "title-invalid-empty": "অনুৰোধ কৰা পৃষ্ঠা খালি নাইবা কেৱল এটা নামস্থানৰ নামহে আছে।",
+       "title-invalid-utf8": "অনুৰোধ কৰা পৃষ্ঠাৰ শিৰোনামত এটা অবৈধ UTF-8 শৃংখল আছে।",
+       "title-invalid-interwiki": "শিৰোনামত এটা আন্তঃৱিকি সংযোগ আছে",
+       "title-invalid-talk-namespace": "অনুৰোধ কৰা পৃষ্ঠাৰ শিৰোনামে এটা আলোচনা পৃষ্ঠা সূচাইছে যিটো থাকিব নোৱাৰে।",
+       "title-invalid-characters": "অনুৰোধ কৰা পৃষ্ঠাৰ শিৰোনামত অবৈধ চিহ্ন আছে: \"$1\"।",
+       "title-invalid-magic-tilde": "অনুৰোধ কৰা পৃষ্ঠাৰ শিৰোনামত অবৈধ যাদুকৰী টাইল্ড শৃংখল আছে (<nowiki>~~~</nowiki>)।",
+       "title-invalid-too-long": "অনুৰোধ কৰা পৃষ্ঠাৰ শিৰোনাম অতি দীঘল। UTF-8 এন্‌ক'ডিঙত ই $1 বাইটতকৈ দীঘল হ'ব নালাগে।",
+       "title-invalid-leading-colon": "অনুৰোধ কৰা পৃষ্ঠাৰ শিৰোনামৰ আৰম্ভণিত এটা অবৈধ ক'ল'ন আছে।",
        "perfcached": "তলত দিয়া তথ্যখিনি আগতে জমা কৰি থোৱা (cached) আৰু সাম্প্ৰতিক নহ'ব পাৰে। এই তথ্যখিনিত সৰ্বোচ্চ {{PLURAL:$1|এটা ফলাফল|$1টা ফলাফল}} উপলব্ধ।",
        "perfcachedts": "তলত দিয়া তথ্য খিনি আগতে জমা কৰি থোৱা (cached) আৰু শেষবাৰৰ কাৰণে $1 ত নবীকৰণ কৰা হৈছিল। সৰ্বাধিক {{PLURAL:$4|এটা ফলাফল|$4 টা ফলাফল}} এই কেশ্বত পাব।",
        "querypage-no-updates": "এই পৃষ্ঠাটো নৱীকৰণ কৰা ৰোধ কৰা হৈছে। ইয়াৰ তথ্য এতিয়া সতেজ কৰিব নোৱাৰি।",
        "wrongpassword": "আপুনি ভুল গুপ্তশব্দ দিছে। অনুগ্ৰহ কৰি আকৌ এবাৰ চেষ্টা কৰক।",
        "wrongpasswordempty": "দিয়া গুপ্তশব্দতো খালী; অনুগ্ৰহ কৰি আকৌ এবাৰ চেষ্টা কৰক। ।",
        "passwordtooshort": "গুপ্তশব্দ কমেও {{PLURAL:$1|১ টা|$1 টা}} আখৰৰ হ'ব লাগিব ।",
+       "passwordtoolong": "গুপ্তশব্দ {{PLURAL:$1|১ টা আখৰতকৈ|$1 টা আখৰতকৈ}} দীঘল হ'ব নোৱাৰে।",
        "password-name-match": "আপোনাৰ গুপ্তশব্দ আৰু আপোনাৰ সদস্যনাম বেলেগ হ'ব লাগিব",
        "password-login-forbidden": "এই সদস্যনাম আৰু গুপ্তশব্দৰ ব্যৱহাৰ নিষিদ্ধ কৰা হৈছে ।",
        "mailmypassword": "গুপ্তশব্দ ন-কৈ বহুৱাওক",
        "missingcommentheader": "'''স্মাৰক:''' আপুনি এই মন্তব্যটোত শিৰোনামা দিয়া নাই।\nযদি আকৌ এবাৰ যদি \"{{int:savearticle}}\" টিপে, তেনেহলে সম্পাদনা শিৰোনামা অবিহনে সংৰক্ষিত হব।",
        "summary-preview": "সাৰাংশৰ খচৰা:",
        "subject-preview": "বিষয়/শিৰোনামাৰ খচৰা:",
+       "previewerrortext": "আপোনাৰ সালসলনিৰ প্ৰাক্‌দৰ্শন কৰাত কিবা ত্ৰুটি হৈছে।",
        "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\n:''$2''\n\n* অৱৰোধ আৰম্ভণি:  $8\n* অৱৰোধ সমাপ্তি: $6\n* অৱৰোধ কৰা হৈছে: $7\n\nআপুনি এই অবৰোধৰ বিষয়ে আলোচনা কৰিবলৈ $1 বা [[{{MediaWiki:Grouppage-sysop}}|প্ৰশাসক]]ৰ লগত সম্পৰ্ক স্থাপন কৰিব পাৰে ।\n\nআপুনি যেতিয়ালৈ [[Special:Preferences|সদস্য পছন্দ]] পৃষ্ঠাত আপোনাৰ ই-মেইল ঠিকনা নিদিয়ে তেতিয়ালৈ ’সদস্যক ই-মেইল পঠাওক’ সুবিধাতো ব্যৱহাৰ কৰিব নোৱাৰে। আপোনাক এয়া কৰিবলৈ ৰোধ কৰা হোৱা নাই ।\nআপোনাৰ এতিয়াৰ আই পি ঠিকনা হৈছে $3, আৰু আপোনাৰ অৱৰোধ ক্ৰমিক হৈছে $5 ।\nএই বিষয়ে হোৱা আলোচনাত ইয়াক ব্যৱহাৰ কৰিবলৈ অনুৰোধ কৰা হ’ল।",
        "content-model-text": "সাধাৰণ পাঠ্য",
        "content-model-javascript": "জাভাস্ক্ৰিপ্ট",
        "content-model-css": "চি.এচ.এচ.",
+       "content-json-empty-object": "খালি বস্তু",
        "expensive-parserfunction-warning": "'''সতৰ্কবাণী:''' এই পৃষ্ঠাখনত অধিক এক্সপেনচিভ পাৰ্চাৰ ফাংচন কল আছে ।\n\nইয়াত $2 {{PLURAL:$2|কল|কল}} তকৈ কম থকা উচিত, এতিয়া মুঠ কলৰ সংখ্যা {{PLURAL:$1|বৰ্তমান $1|বৰ্তমান $1}} ।",
        "expensive-parserfunction-category": "অধিক পৰিমাণে এক্সপেনসিভ পাৰ্চাৰ ফাংচন কল থকা পৃষ্ঠাসমূহ",
        "post-expand-template-inclusion-warning": "'''সতৰ্কবাণী:''' সাঁচৰ আকাৰ ডাঙৰ হৈছে ।\nকিছুমান সাঁচ অন্তৰ্ভুক্ত কৰিব পৰা নাযাব ।",
        "revdelete-no-file": "নিৰ্ধাৰিত ফাইলটো নাই।",
        "revdelete-show-file-confirm": "আপুনি \"<nowiki>$1</nowiki>\"  ফাইলৰ বিলোপ কৰা কৰা সংশোধন $2 তাৰিখৰ পৰা $3 সময়ত চাব বিচাৰিছে নেকি?",
        "revdelete-show-file-submit": "হয়",
+       "revdelete-selected-text": "[[:$2]]ৰ {{PLURAL:$1|নিৰ্বাচিত সংশোধন|\nনিৰ্বাচিত সংশোধনসমূহ}} :",
        "logdelete-selected": "{{PLURAL:$1|টা নিৰ্বাচিত ল’গ ভৰ্তি|টা নিৰ্বাচিত ল’গ ভৰ্তি}}:",
        "revdelete-confirm": "অনুগ্ৰহ কৰি সাব্যস্ত কৰক যে আপুনি ইয়াৰ পৰিণাম বুজি আৰু [[{{MediaWiki:Policy-url}}|the policy]] ৰ সৈতে সহমত হৈ এই কামটো কৰিব বিচাৰিছে |",
        "revdelete-suppress-text": "নিবাৰণ '''কেৱল''' তলত দিয়া কাৰণসমূহত ব্যৱহৃত হ’ব:\n* সম্ভাব্য ক্ষতিকাৰক তথ্য \n* অনুপযুক্ত ব্যক্তিগত তথ্য \n* : ''ঘৰৰ ঠিকনা আৰু টেলিফোন সংখ্যা, ৰাষ্ট্ৰীয় পৰিচয় সংখ্যা, আদি । ''",
        "revdelete-legend": "দৃষ্টিপাত সীমাবদ্ধ কৰক",
        "revdelete-hide-text": "সংশোধিত পাঠ",
        "revdelete-hide-image": "ফাইলৰ বিষয়বস্তু গোপন কৰক",
-       "revdelete-hide-name": "à¦\95াৰà§\8dয à¦\86ৰà§\81 à¦²à¦\95à§\8dষà§\8dয গোপন কৰক",
+       "revdelete-hide-name": "লà¦\95à§\8dষà§\8dয à¦\86ৰà§\81 à¦ªà¦¾à§°à¦¾à¦®à¦¿à¦\9fাৰ গোপন কৰক",
        "revdelete-hide-comment": "সম্পাদনা সাৰাংশ",
        "revdelete-hide-user": "সম্পাদকৰ সদস্যনাম/আই-পি ঠিকনা",
        "revdelete-hide-restricted": "প্ৰশাসকবৃন্দৰ লগতে আনৰ পৰাও তথ্য ৰোধ কৰক",
        "notextmatches": "কোনো পৃষ্ঠাৰ পাঠ মিলা নাই",
        "prevn": "পূৰ্বৱৰ্তী {{PLURAL:$1|$1}}টা",
        "nextn": "পৰৱৰ্তী {{PLURAL:$1|$1}}টা",
+       "prev-page": "পূৰ্বৱৰ্তী পৃষ্ঠা",
+       "next-page": "পৰৱৰ্তী পৃষ্ঠা",
        "prevn-title": "আগৰ $1 {{PLURAL:$1|ফলাফল|ফলাফলবোৰ}}",
        "nextn-title": "পিছৰ $1 {{PLURAL:$1|ফলাফল|ফলাফলবোৰ}}",
        "shown-title": "পৃষ্ঠাই প্ৰতি $1 {{PLURAL:$1|টা ফলাফল|টা ফলাফল}} দেখুৱাওক",
        "searchrelated": "সম্পৰ্কিত",
        "searchall": "সকলো",
        "showingresults": "তলত #'''$2'''ৰ পৰা {{PLURAL:$1|'''1''' ফলাফল|'''$1''' ফলাফল}} দেখুওৱা হৈছে।",
+       "showingresultsinrange": "তলত #<strong>$2</strong>ৰ পৰা #<strong>$3</strong> পৰিসৰৰ ভিতৰত {{PLURAL:$1|<strong>1</strong>টা ফলাফল|<strong>$1</strong>টা লৈকে ফলাফল}} দেখুওৱা হৈছে।",
        "search-showingresults": "{{PLURAL:$4|<strong>$3</strong>-ৰ <strong>$1</strong>টো ফলাফল|<strong>$3</strong>-ৰ <strong>$1 - $2</strong>টো ফলাফল}}",
        "search-nonefound": "এই অনুসন্ধানৰ কোনো ফলাফল নাই ।",
        "powersearch-legend": "শক্তিশালী সন্ধান",
        "preferences": "পছন্দসমূহ",
        "mypreferences": "পছন্দসমূহ",
        "prefs-edits": "সম্পাদনাৰ সংখ্যা:",
-       "prefsnologintext2": "আপোনাৰ পছন্দসমূহৰ সালসলনি কৰিবলৈ অনুগ্ৰহ কৰি $1 কৰক।",
+       "prefsnologintext2": "আপোনাৰ পছন্দসমূহ সলাবলৈ কৰিবলৈ অনুগ্ৰহ কৰি প্ৰৱেশ কৰক।",
        "prefs-skin": "আৱৰণ",
        "skin-preview": "খচৰা",
        "datedefault": "কোনো পছন্দ নাই",
        "prefs-personal": "সদস্যৰ বিৱৰণ",
        "prefs-rc": "শেহতীয়া সাল-সলনি",
        "prefs-watchlist": "লক্ষ্য তালিকা",
+       "prefs-editwatchlist": "লক্ষ্য-তালিকা সম্পাদনা কৰক",
+       "prefs-editwatchlist-label": "আপোনাৰ লক্ষ্য-তালিকাৰ ভুক্তি সম্পাদনা কৰক",
+       "prefs-editwatchlist-edit": "আপোনাৰ লক্ষ্য-তালিকাত থকা শিৰোনাম চাওক আৰু আঁতৰাওক",
+       "prefs-editwatchlist-raw": "অশোধিত লক্ষ্য-তালিকা সম্পাদনা কৰক",
+       "prefs-editwatchlist-clear": "লক্ষ্য-তালিকা পৰিষ্কাৰ কৰক",
        "prefs-watchlist-days": "লক্ষ্য তালিকাত দেখুৱাব লগা দিন:",
        "prefs-watchlist-days-max": "সৰ্বাধিক $1 {{PLURAL:$1|day|days}}",
        "prefs-watchlist-edits": "বৰ্ধিত লক্ষ্যসুচীত দেখুৱাব লগা সৰ্বোচ্চ সাল-সলনি:",
        "gender-female": "তেওঁ (মহিলা) ৱিকি পৃষ্ঠা সম্পাদনা কৰে",
        "prefs-help-gender": "এই পছন্দ ছে'ট কৰাটো বৈকল্পিক।\nএই ছফ্টৱেৰে আপোনাক সম্বোধন কৰিবলৈ আৰু আনৰ আগত আপোনাৰ উল্লেখ কৰিবলৈ উপযুক্ত ব্যাকৰণগত লিংগ ব্যৱহাৰ কৰিব পাৰে।\nএই তথ্য ৰাজহুৱা কৰা হ’ব ।",
        "email": "ই-মেইল",
-       "prefs-help-realname": "à¦\86পà§\8bনাৰ à¦\86à¦\9aল à¦¨à¦¾à¦® à¦¦à¦¿à¦¯à¦¼à¦¾à¦¤à§\8b à¦\9cৰà§\81ৰà§\80 à¦¨à¦¹à¦¯à¦¼, à¦\95িনà§\8dতà§\81 দিলে আপোনাৰ কামবোৰ আপোনাৰ নামত দেখুওৱা হব।",
+       "prefs-help-realname": "পà§\8dৰà¦\95à§\83ত à¦¨à¦¾à¦® à¦¦à¦¿à¦¯à¦¼à¦¾à¦\9fà§\8b à¦¬à§\88à¦\95লà§\8dপিà¦\95। \nপà§\8dৰà¦\95à§\83ত à¦¨à¦¾à¦® দিলে আপোনাৰ কামবোৰ আপোনাৰ নামত দেখুওৱা হব।",
        "prefs-help-email": "ই-মেইল ঠিকনা দিয়াটো বৈকল্পিক, কিন্তু আপুনি গুপ্তশব্দ পাহৰি গ’লে ন-কৈ বহুৱাবৰ বাবে ই প্ৰয়োজনীয়।",
        "prefs-help-email-others": "আপুনি আপোনাৰ সদস্যপৃষ্ঠা বা কথা-বতৰা পৃষ্ঠাত দিয়া লিংকৰ জৰিয়তে আনে আপোনাক যোগাযোগ কৰিব পাৰে ।\nআন সদস্যই যোগাযোগ কৰিলে আপোনাৰ ই-মেইল ঠিকনা প্ৰকাশ নাপায় ।",
        "prefs-help-email-required": "ই-মেইল ঠিকনা দিবই লাগিব",
        "license-nopreview": "(প্ৰাকদৰ্শন উপলব্ধ নহয়)",
        "upload_source_url": "(এটা বৈধ, ৰাজহুৱাকৈ উন্মুক্ত URL)",
        "upload_source_file": "(আপোনাৰ কম্পিউটাৰৰ এটা ফাইল)",
+       "listfiles-delete": "বিলোপ কৰক",
        "listfiles-summary": "এই বিশেষ পৃষ্ঠাত সকলো আপল’ড হোৱা ফাইল দেখা পাব।",
        "listfiles_search_for": "মিডিয়াৰ নাম অনুসন্ধান:",
        "imgfile": "ফাইল",
        "randomredirect-nopages": "\"$1\" নামস্থানত কোনো পুননিৰ্দেশ নাই ।",
        "statistics": "পৰিসংখ্যা",
        "statistics-header-pages": "পৃষ্ঠা পৰিসংখ্যা",
-       "statistics-header-edits": "পৰিসà¦\82à¦\96à§\8dযা à¦¸à¦®à§\8dপাদনা à¦\95ৰà¦\95",
+       "statistics-header-edits": "সমà§\8dপাদনা à¦ªà§°à¦¿à¦¸à¦\82à¦\96à§\8dযা",
        "statistics-header-users": "ব্যৱহাৰকাৰীৰ পৰিসংখ্যা",
        "statistics-header-hooks": "অন্য পৰিসংখ্যা",
        "statistics-articles": "বিষয়বস্তুৰ পৃষ্ঠা",
        "withoutinterwiki-summary": "তলৰ পৃষ্ঠাসমূহ আন ভাষাৰ সংস্কৰণৰ লগত সংযুক্ত নহয়।",
        "withoutinterwiki-legend": "উপসৰ্গ",
        "withoutinterwiki-submit": "দেখুৱাওক",
-       "fewestrevisions": "à¦\95মবাৰ সম্পাদনা কৰা পৃষ্ঠাসমূহ",
+       "fewestrevisions": "à¦\95মà¦\95à§\88 সম্পাদনা কৰা পৃষ্ঠাসমূহ",
        "nbytes": "$1 {{PLURAL:$1|বাইট|বাইট}}",
        "ncategories": "$1টা {{PLURAL:$1|শ্ৰেণী|শ্ৰেণী}}",
        "ninterwikis": "$1 {{PLURAL:$1|ইণ্টাৰৱিকি|ইণ্টাৰৱিকিসমূহ}}",
        "deletereason-dropdown": "* বিলোপনৰ সাধাৰণ কাৰণসমূহ\n** স্পাম\n** অসভ্যালি\n** কপিৰাইট উলঙ্ঘন\n** লেখকৰ অনুৰোধ\n** ভঙা পুনঃনিৰ্দেশনা",
        "delete-edit-reasonlist": "অপসাৰণ কৰা কাৰণ সম্পাদনা কৰক",
        "delete-toobig": "এই পৃষ্ঠাটোৰ সম্পাদনা ইতিহাস অতি দীঘল, $1 {{PLURAL:$1|টা সংশোধনৰো|টা সংশোধনৰো}} বেছি ।\n{{SITENAME}}ৰ আকস্মিক ক্ষতি ৰোধ কৰিবলৈ এনে পৃষ্ঠাৰ ইতিহাস বিলোপ কৰাত সীমাবদ্ধতা আৰোপ কৰা হৈছে ।",
-       "delete-warning-toobig": "এই পৃষ্ঠাখনৰ সম্পাদনা ইতিহাস অতি দীঘল, $1 {{PLURAL:$1|টা সংশোধনৰো|টা সংশোধনৰো}} বেছি ।\nইয়াক বিলোপ কৰিলে {{SITENAME}} ৰ তথ্যভঁৰালৰ কাৰ্য্যকাৰীতাত সমস্যা হ’ব পাৰে;\nসাৱধানেৰে আগ বাঢ়ক ।",
+       "delete-warning-toobig": "এই পৃষ্ঠাটোৰ সম্পাদনা ইতিহাস অতি দীঘল, $1 {{PLURAL:$1|টা সংশোধনৰো|টা সংশোধনৰো}} বেছি।\nইয়াক বিলোপ কৰিলে {{SITENAME}}ৰ তথ্যভঁৰালৰ কাৰ্য্যকাৰীতাত সমস্যা হ’ব পাৰে;\nসাৱধানেৰে আগ বাঢ়ক ।",
+       "deleteprotected": "আপুনি এই পৃষ্ঠাটো বিলোপ কৰিব নোৱাৰে কাৰণ ইয়াক সুৰক্ষিত কৰা হৈছে।",
        "rollback": "সম্পাদনা পূৰ্ববৎ কৰক",
        "rollbacklink": "পূৰ্ববৎ কৰক",
        "rollbacklinkcount": "$1 {{PLURAL:$1|সম্পাদনা|সম্পাদনাসমূহ}} পূৰ্বৱত কৰক",
        "viewdeletedpage": "বিলোপ কৰা পৃষ্ঠাসমূহ চাওক",
        "undeletepagetext": "তলৰ {{PLURAL:$1|পৃষ্ঠাটো বিলোপ কৰা হৈছে কিন্তু সেয়া|$1 পৃষ্ঠাসমূহ বিলোপ কৰা হৈছে কিন্তু সেয়া}} এতিয়াও আৰ্কাইভত আছে আৰু পুনৰুদ্ধাৰ সম্ভৱ ।\nআৰ্কাইভটো সময়ে সময়ে পৰিষ্কাৰ কৰা হ’ব পাৰে ।",
        "undelete-fieldset-title": "সংশোধনসমূহ পুনৰুদ্ধাৰ কৰক",
-       "undeleteextrahelp": "পà§\83ষà§\8dঠাà¦\96নৰ à¦¸à¦®à§\8dপà§\82ৰà§\8dণ à¦\87তিহাস à¦ªà§\81নৰà§\81দà§\8dধাৰ à¦\95ৰিবলà§\88 à¦¸à¦\95লà§\8b à¦\98ৰ à¦\9fিà¦\95 à¦¦à¦¿à¦¯à¦¼à¦\95 à§°à¦¾à¦\96à¦\95 à¦\86ৰà§\81 '''''{{int:undeletebtn}}'''''ত à¦\95à§\8dলিà¦\95 à¦\95ৰà¦\95 à¥¤\nনিৰà§\8dবাà¦\9aিত à¦ªà§\81নৰà§\81দà§\8dধাৰ à¦\95ৰিবলà§\88 à¦¬à¦¾à¦\9bি à¦²à§\8bৱা à¦¸à¦\82শà§\8bধনসমà§\82হৰ à¦\95াষত à¦¥à¦\95া à¦\98ৰবà§\8bৰত à¦\9fিà¦\95 à¦¦à¦¿à¦¯à¦¼à¦\95 à¦\86ৰà§\81 '''''{{int:undeletebtn}}'''''ত à¦\95à§\8dলিà¦\95 à¦\95ৰà¦\95 ।",
+       "undeleteextrahelp": "পà§\83ষà§\8dঠাà¦\9fà§\8bৰ à¦¸à¦®à§\8dপà§\82ৰà§\8dণ à¦\87তিহাস à¦ªà§\81নৰà§\81দà§\8dধাৰ à¦\95ৰিবলà§\88 à¦¸à¦\95লà§\8b à¦\98ৰ à¦¬à¦¾à¦\9bনি à§°à¦¾à¦\96à¦\95 à¦\86ৰà§\81 '''''{{int:undeletebtn}}'''''ত à¦\95à§\8dলিà¦\95 à¦\95ৰà¦\95 à¥¤\nনিৰà§\8dবাà¦\9aিত à¦ªà§\81নৰà§\81দà§\8dধাৰৰ à¦¬à¦¾à¦¬à§\87 à¦¨à¦¿à§°à§\8dদিষà§\8dà¦\9f à¦¸à¦\82শà§\8bধনসমà§\82হৰ à¦\95াষত à¦¥à¦\95া à¦\98ৰবà§\8bৰ à¦¬à¦¾à¦\9bনি à¦\95ৰà¦\95 à¦\86ৰà§\81 '''''{{int:undeletebtn}}'''''ত à¦\95à§\8dলিà¦\95 à¦\95ৰà¦\95।",
        "undeleterevisions": "$1 {{PLURAL:$1|টা সংশোধন|টা সংশোধন}} আৰ্কাইভত আছে",
        "undeletehistory": "যদি আপুনি পৃষ্ঠাটো পুনৰুদ্ধাৰ কৰে, তাৰ সকলো সংশোধন ইতিহাসলৈ ঘূৰি যাব ।\nযদি বিলোপৰ পিছত একে নামৰ নতুন পৃষ্ঠা সৃষ্টি কৰা হৈছে, তেন্তে পুনৰুদ্ধাৰ হোৱা সংশোধনসমূহ পূৰ্বৰ ইতিহাসত দেখা যাব ।",
        "undeleterevdel": "শীৰ্ষ পৃষ্ঠা বা ফাইল সংশোধন আংশিকভাৱে বিলোপ হোৱাৰ সম্ভাৱনা থাকিলে বিলোপ বাতিল কৰা নহ’ব ।\nতেনে ক্ষেত্ৰত আপুনি নতুনকৈ বিলোপ কৰা সংশোধন অনিৰ্বাচিত আৰু অগোপন কৰক ।",
        "export": "পৃষ্ঠা ৰপ্তানি কৰক",
        "exporttext": "আপুনি কোনো XMLৰে আবৃত পাঠ আৰু বিশেষ পৃষ্ঠা বা পৃষ্ঠাৰ সংহতিৰ সম্পাদনা ইতিহাস ৰপ্তানি কৰিব পাৰে।\nমিডিয়াৱিকি ব্যৱহাৰ কৰি [[Special:Import|আমদানি পৃষ্ঠা]]ৰ যোগেদি ইয়াক আন ৱিকিলৈও আমদানি কৰিব পাৰি।\n\nপৃষ্ঠা ৰপ্তানি কৰিবৰ বাবে তলৰ পাঠ্যত এশাৰীত এটাকৈ তলৰ পাঠত শিৰোনামাবোৰ ভৰাওক। লগতে সাম্প্ৰতিক সংশোধন, পুৰণি সংশোধন আৰু পৃষ্ঠা ইতিহাস ৰাখিব লাগেনে শেষ সম্পাদনাৰ তথ্যৰ লগত সাম্প্ৰতিক সংশোধন লাগে বাছনি কৰক।\n\nপিছৰ ক্ষেত্ৰত আপুনি সংযোগ এটাও ব্যৱহাৰ কৰিব পাৰে, যেনে\n\"[[{{MediaWiki:Mainpage}}]]\" পৃষ্ঠাৰ কাৰণে [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]",
        "exportall": "সকলো পৃষ্ঠা ৰপ্তানি কৰক",
-       "exportcuronly": "কেৱল সাম্প্ৰতিক সংশোধনটোহে অন্তৰ্ভুক্ত কৰক, সম্পূৰ্ণ ইতিহাস নহয় ।",
+       "exportcuronly": "কেৱল সাম্প্ৰতিক সংশোধনটোহে অন্তৰ্ভুক্ত কৰক, সম্পূৰ্ণ ইতিহাস নহয়।",
        "exportnohistory": "----\n'''টোকা:''' কৰ্মদক্ষতা-সম্পৰ্কীয় কাৰণত এই প্ৰপত্ৰৰ মাধ্যমেৰে কোনো পৃষ্ঠাৰ সম্পূৰ্ণ ইতিহাস ৰপ্তানি কৰাটো নিষ্ক্ৰিয় কৰা হৈছে।",
        "exportlistauthors": "প্ৰত্যেক পৃষ্ঠাৰ বৰঙনিদাতাৰ সম্পূৰ্ণ তালিকা অন্তৰ্ভুক্ত কৰক",
        "export-submit": "ৰপ্তানি কৰক",
        "javascripttest": "জাভাস্ক্ৰিপ্ট পৰীক্ষা।",
        "javascripttest-pagetext-noframework": "এই পৃষ্ঠাটো জাভাস্ক্ৰিপ্ট পৰীক্ষা চলোৱাৰ বাবে সংৰক্ষিত।",
        "javascripttest-pagetext-unknownframework": "অজ্ঞাত সম্পৰীক্ষা ফ্ৰেমৱৰ্ক \"$1\"।",
+       "javascripttest-pagetext-unknownaction": "অজ্ঞাত কাৰ্য \"$1\"।",
        "javascripttest-pagetext-frameworks": "অনুগ্ৰহ কৰি তলৰ যিকোনো এটা সম্পৰীক্ষা ফ্ৰেমৱৰ্ক বাছনি কৰক: $1",
        "javascripttest-pagetext-skins": "পৰীক্ষা কৰিবলৈ আৱৰণ এখন বাছনি কৰক:",
        "javascripttest-qunit-intro": "mediawiki.org-ত [$1 পৰীক্ষা নথিকৰণ] চাওক।",
        "pageinfo-redirects-name": "এই পৃষ্ঠালৈ থকা পুনৰ্নিৰ্দেশৰ সংখ্যা",
        "pageinfo-subpages-name": "এই পৃষ্ঠাৰ উপপৃষ্ঠাসমূহ",
        "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|পুনৰ্নিৰ্দেশ|পুনৰ্নিৰ্দেশসমূহ}}; $3 {{PLURAL:$3|অপুনৰ্নিৰ্দেশ নাই|অপুনৰ্নিৰ্দেশসমূহ}})",
-       "pageinfo-firstuser": "পà§\83ষà§\8dঠাà¦\96নৰ সৃষ্টিকৰ্তা",
+       "pageinfo-firstuser": "পà§\83ষà§\8dঠাà¦\9fà§\8bৰ সৃষ্টিকৰ্তা",
        "pageinfo-firsttime": "পৃষ্ঠা সৃষ্টিৰ তাৰিখ",
        "pageinfo-lastuser": "অন্তিম সম্পাদক",
        "pageinfo-lasttime": "অন্তিম সম্পাদনাৰ তাৰিখ",
        "pageinfo-hidden-categories": "অদৃশ্য {{PLURAL:$1|শ্ৰেণী|শ্ৰেণীসমূহ}} ($1)",
        "pageinfo-templates": "সংযুক্ত {{PLURAL:$1|সাঁচ|সাঁচসমূহ}} ($1)",
        "pageinfo-transclusions": "{{PLURAL:$1|পৃষ্ঠা|পৃষ্ঠাসমূহ}} ট্রান্সক্লুড কৰাৰ সময় ($1)",
-       "pageinfo-toolboxlink": "পà§\83ষà§\8dঠাà¦\96নৰ বিষয়ে তথ্য",
+       "pageinfo-toolboxlink": "পà§\83ষà§\8dঠাà¦\9fà§\8bৰ বিষয়ে তথ্য",
        "pageinfo-redirectsto": "পুনৰ্নিৰ্দেশ কৰা হৈছে",
        "pageinfo-redirectsto-info": "তথ্য",
        "pageinfo-contentpage": "সমল পৃষ্ঠাৰূপে গণনা কৰা হৈছে",
        "pageinfo-protect-cascading-yes": "হয়",
        "pageinfo-protect-cascading-from": "সুৰক্ষাসমূহ প্ৰপাতাকাৰ হৈছে",
        "pageinfo-category-info": "শ্ৰেণী তথ্য",
+       "pageinfo-category-total": "মুঠ সদস্যৰ সংখ্যা",
        "pageinfo-category-pages": "পৃষ্ঠাৰ সংখ্যা",
        "pageinfo-category-subcats": "উপশ্ৰেণীৰ সংখ্যা",
        "pageinfo-category-files": "ফাইলৰ সংখ্যা",
        "filedelete-current-unregistered": "নিৰ্ধাৰিত নথি \"$1\" তথ্যকোষত নাই ।",
        "filedelete-archive-read-only": "আৰ্কাইভ নিৰ্দেশিকা \"$1\"ত ৱেবচাৰ্ভাৰ দ্বাৰা লিখিব নোৱাৰি।",
        "previousdiff": "প্ৰবীণ সম্পাদনা",
-       "nextdiff": "নতুনতৰ সম্পাদনা →",
+       "nextdiff": "নতুন সম্পাদনা →",
        "mediawarning": "'''সতৰ্কবাৰ্তা''': এই নথিপত্ৰত ত্ৰুটিপূৰ্ণ ক'ড অন্তৰ্ভুক্ত থাকিব পাৰে।\nইয়াক প্ৰেৰণ কৰিলে আপোনাৰ চিষ্টেমৰ ক্ষতি হব পাৰে।",
        "imagemaxsize": "ছবিৰ আকাৰৰ সীমা: <br />''(নথিপত্ৰ বিৱৰণ পৃষ্ঠাসমূহৰ বাবে)''",
        "thumbsize": "ক্ষুদ্ৰ প্ৰতিকৃতিৰ আকাৰ:",
        "scarytranscludetoolong": "[URL অত্যাধিক দীঘল]",
        "deletedwhileediting": "'''সতৰ্কবাণী''': আপুনি সম্পাদনা আৰম্ভ কৰাৰ পাছত পৃষ্ঠাটো বিলোপ কৰা হৈছে !",
        "confirmrecreate": "আপুনি সম্পাদনা আৰম্ভ কৰাৰ পিছত সদস্য [[User:$1|$1]] ([[User talk:$1|আলোচনা]])য়ে পৃষ্ঠাটো বিলোপ কৰিছে, তাৰ কাৰণ:\n: ''$2''\nআপুনি এই পৃষ্ঠাটো আকৌ সৃষ্টি কৰিব খোজাটো নিশ্চিত কৰক ।",
-       "confirmrecreate-noreason": "à¦\86পà§\81নি à¦¸à¦®à§\8dপাদনা à¦\86ৰমà§\8dভ à¦\95ৰাৰ à¦ªà¦¿à¦\9bত à¦¸à¦¦à¦¸à§\8dয [[User:$1|$1]] ([[User talk:$1|à¦\86লà§\8bà¦\9aনা]])য়à§\87 à¦ªà§\83ষà§\8dঠাà¦\9fà§\8b à¦¬à¦¿à¦²à§\8bপ à¦\95ৰিà¦\9bà§\87। à¦\86পà§\81নি à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাà¦\96ন à¦\86à¦\95à§\8c à¦¸à§\83ষà§\8dà¦\9fি à¦\95ৰিব à¦\96à§\8bà¦\9cাà¦\9fà§\8b অনুগ্ৰহ কৰি নিশ্চিত কৰক।",
+       "confirmrecreate-noreason": "à¦\86পà§\81নি à¦¸à¦®à§\8dপাদনা à¦\86ৰমà§\8dভ à¦\95ৰাৰ à¦ªà¦¿à¦\9bত à¦¸à¦¦à¦¸à§\8dয [[User:$1|$1]] ([[User talk:$1|à¦\86লà§\8bà¦\9aনা]])য়à§\87 à¦ªà§\83ষà§\8dঠাà¦\9fà§\8b à¦¬à¦¿à¦²à§\8bপ à¦\95ৰিà¦\9bà§\87। à¦\86পà§\81নি à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাà¦\9fà§\8b à¦\86à¦\95à§\8c à¦¸à§\83ষà§\8dà¦\9fি à¦\95ৰিব à¦\96à§\8bà¦\9cা à¦\95াৰà§\8dয অনুগ্ৰহ কৰি নিশ্চিত কৰক।",
        "recreate": "পুনৰ সৃষ্টি কৰক",
        "confirm_purge_button": "শুদ্ধ",
        "confirm-purge-top": "এই পৃষ্ঠাৰ কেচ্‌ খালী কৰা হওক ?",
        "duplicate-defaultsort": "'''সাৱধান!''' পূৰ্বনিৰ্ধাৰিত ক্ৰমসূচক \"$2\"-এ আগৰ ক্ৰমসূচক \"$1\"ক বিস্থাপিত কৰিছে।",
        "version": "সংস্কৰণ",
        "version-extensions": "ইন্‌ষ্টল কৰা এক্সটেনচনসমূহ",
-       "version-skins": "à¦\86ৱৰণ",
+       "version-skins": "à¦\87নà§\8dâ\80\8cষà§\8dà¦\9fল à¦\95ৰা à¦\86ৱৰণসমà§\82হ",
        "version-specialpages": "বিশেষ পৃষ্ঠাসমূহ",
        "version-parserhooks": "পাৰ্চাৰ হুক",
        "version-variables": "চলকসমূহ",
        "version-parser-extensiontags": "পাৰ্চাৰ এক্সটেনচন টেগসমূহ",
        "version-parser-function-hooks": "পাৰ্চাৰ ফাংচন হুকসমূহ",
        "version-hook-name": "হুক নাম",
-       "version-hook-subscribedby": "à¦\9aাবসà§\8dà¦\95à§\8dৰাà¦\87ব à¦\95ৰিছে",
+       "version-hook-subscribedby": "পাঠà¦\95ভà§\81à¦\95à§\8dত à¦¹à§\88ছে",
        "version-version": "($1)",
+       "version-no-ext-name": "[নাম নাই]",
        "version-license": "অনুজ্ঞাপত্ৰ",
        "version-ext-license": "অনুজ্ঞাপত্ৰ",
        "version-ext-colheader-name": "এক্সটেন্‌চন",
        "version-entrypoints": "প্ৰৱেশ পইণ্ট ইউআৰএল",
        "version-entrypoints-header-entrypoint": "প্ৰৱেশ পইণ্ট",
        "version-entrypoints-header-url": "ইউআৰএল",
+       "version-libraries-version": "সংস্কৰণ",
        "redirect": "ফাইল, সদস্য, পৃষ্ঠা বা সংশোধন আই ডি-ৰে পুনঃনিৰ্দেশ",
        "redirect-legend": "এটা ফাইল বা পৃষ্ঠালৈ পুনঃনিৰ্দেশ",
        "redirect-summary": "এই বিশেষ পৃষ্ঠাটোৱে আপোনাক অন্য এটা ফাইললৈ (ফাইলৰ নাম), এটা পৃষ্ঠালৈ (সংশোধন আই ডি বা পৃষ্ঠা আই ডি), অথবা অন্য সদস্যৰ পৃষ্ঠালৈ (সদস্যৰ সাংখ্যিক আই ডি) পুনঃনির্দেশিত কৰিছে।\nব্যৱহাৰ: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], বা [[{{#Special:Redirect}}/user/101]]।",
        "specialpages-group-wiki": "তথ্য আৰু সা-সঁজুলি",
        "specialpages-group-redirects": "পুনৰ্নিৰ্দেশ কৰা বিশেষ পৃষ্ঠাসমূহ",
        "specialpages-group-spam": "স্পাম সা-সঁজুলি",
+       "specialpages-group-developer": "বিকাশক সঁজুলি",
        "blankpage": "উকা পৃষ্ঠা",
        "intentionallyblankpage": "এই পৃষ্ঠা ইচ্ছাকৃতভাৱে খালি ৰখা হৈছে ।",
        "external_image_whitelist": " #এই শাৰী যেনেকৈ আছে তেনেকৈয়ে ৰাখক<pre>\n#স্বাভাৱিক অভিব্যক্তি অংশসমূহ (কেৱল সেই অংশ যি // মাজেৰে যায়) তলত দিয়ক\n#ইহঁতক বহিৰ্তম (hotlinked) ছবিসমূহৰ URL সমূহৰ সৈতে মিলাই চোৱা হ'ব\n#যিসমূহ মিল খায় সেইসমূহক ছবি হিচাপে প্ৰদৰ্শন কৰা হব, নহলে কেৱল ছবিখনলৈ এটা সংযোগ দেখুওৱা হ'ব\n# # -ৰ সৈতে আৰম্ভ হোৱা শাৰীসমূহক মন্তব্য বুলি ধৰা হয়\n#ই ফলা-সংবেদ্য\n\n#সকলো regex অংশক এই শাৰীৰ ওপৰত দিব। এই শাৰী যেনেকৈ আছে তেনেকৈয়ে ৰাখক</pre>",
        "tags-tag": "টেগ নাম",
        "tags-display-header": "পৰিৱৰ্তন তালিকাসমূহত ৰূপ",
        "tags-description-header": "অৰ্থৰ পূৰ্ণ বৰ্ণনা",
+       "tags-source-header": "উৎস",
        "tags-active-header": "সক্ৰিয়?",
        "tags-hitcount-header": "টেগকৃত সালসলনি",
+       "tags-actions-header": "কাৰ্যসমূহ",
        "tags-active-yes": "হয়",
        "tags-active-no": "নহয়",
        "tags-edit": "সম্পাদনা",
        "tags-hitcount": "$1 {{PLURAL:$1|সাল-সলনি|সাল-সলনিসমূহ}}",
+       "tags-create-reason": "কাৰণ:",
+       "tags-create-submit": "সৃষ্টি কৰক",
        "comparepages": "পৃষ্ঠা তুলনা কৰক",
        "compare-page1": "পৃষ্ঠা ১",
        "compare-page2": "পৃষ্ঠা ২",
index 2d591cb..61acb97 100644 (file)
        "no-null-revision": "Nun pudo crease una nueva revisión nula pa la páxina «$1»",
        "badtitle": "Títulu incorreutu",
        "badtitletext": "El títulu de páxina solicitáu nun ye válidu, ta baleru o tien enllaces interllingua o interwiki incorreutos.\nPue contener un caráuter o más que nun puen usase nos títulos.",
+       "title-invalid-characters": "El títulu de la páxina solicitada contien calteres non válidos: «$1»",
        "perfcached": "Los datos siguientes tán na caché y seique nun tean anovaos. Hai un máximu {{PLURAL:$1|d'un resultáu disponible|de $1 resultaos disponibles}} na caché.",
        "perfcachedts": "Los datos siguientes tán na caché y anovaronse por última vegada'l $1. Hai un máximu {{PLURAL:$4|d'un resultáu disponible|de $4 resultaos disponibles}} na caché.",
        "querypage-no-updates": "Anguaño los anovamientos d'esta páxina tán desactivaos.\nEstos datos nun van refrescase nestos momentos.",
index dc7cfd7..1a73a3b 100644 (file)
        "permalink": "Даими һылтанма",
        "print": "Баҫыу",
        "view": "Ҡарау",
+       "view-foreign": "$1 сайтында ҡарау",
        "edit": "Үҙгәртеү",
+       "edit-local": "Локаль тасуирламаны үҙгәртергә",
        "create": "Яһарға",
+       "create-local": "Локаль тасуирлама өҫтәргә",
        "editthispage": "Был мәҡәләне үҙгәртергә",
        "create-this-page": "Был битте яһарға",
        "delete": "Юҡ  итергә",
        "otherlanguages": "Башҡа телдәрҙә",
        "redirectedfrom": "($1 битенән йүнәлтелде)",
        "redirectpagesub": "Йүнәлтеү бите",
+       "redirectto": "Йүнәлтергә:",
        "lastmodifiedat": "Был биттең һуңғы тапҡыр үҙгәртелеү ваҡыты: $2, $1 .",
        "viewcount": "Был биткә $1 {{PLURAL:$1|тапҡыр}} мөрәжәғәт иттеләр.",
        "protectedpage": "Һаҡланған бит",
        "jumptonavigation": "төп йүнәлештәр",
        "jumptosearch": "эҙләү",
        "view-pool-error": "Ғәфү итегеҙ, хәҙерге ваҡытта серверҙар артыҡ тейәлгән.\nБыл битте ҡарарға теләүселәр бик күп.\nЗинһар был биткә һуңырак кереп ҡарағыҙ.\n\n$1",
+       "generic-pool-error": "Ғәфү итегеҙ, хәҙерге ваҡытта серверҙар көсөргәнешле эшләй.\nБыл болды ҡарарға теләүселәр бик күп.\nЗинһар, бер ни тиклем көтөгөҙ һәм һуңыраҡ тағы мөрәжәғәт итеп ҡарағыҙ.",
        "pool-timeout": "Блоклауҙы көтөү ваҡыты үтте",
        "pool-queuefull": "Һорауҙар сираты тулы",
        "pool-errorunknown": "Билдәһеҙ хата",
+       "poolcounter-usage-error": "$1: ҡулланыу хатаһы",
        "aboutsite": "{{SITENAME}} тураһында",
        "aboutpage": "Project:Тасуирлама",
        "copyright": "$1 лицензияһына ярашлы, эстәлеге менән һәр кем файҙалана ала (башҡаһы күрһәтелмәһә)",
        "disclaimers": "Яуаплылыҡтан баш тартыу",
        "disclaimerpage": "Project:Яуаплылыҡтан баш тартыу",
        "edithelp": "Төҙәтеү белешмәһе",
+       "helppage-top-gethelp": "Ярҙам",
        "mainpage": "Баш бит",
        "mainpage-description": "Баш бит",
        "policy-url": "Project:Ҡағиҙәләр",
        "hidetoc": "йәшерергә",
        "collapsible-collapse": "төрөргә",
        "collapsible-expand": "асырға",
+       "confirmable-confirm": "{{GENDER:$1|Һеҙ}} инанаһығыҙмы?",
+       "confirmable-yes": "Эйе",
+       "confirmable-no": "Юҡ",
        "thisisdeleted": "Ҡарарғамы йәки тергеҙергәме? — $1",
        "viewdeleted": "$1 ҡарарғамы?",
        "restorelink": "{{PLURAL:$1|1=1 юйылған үҙгәртеүҙе|$1 юйылған үҙгәртеүҙе}}",
        "filerenameerror": "«$1» файлының исемен «$2» исеменә алмаштырып булмай.",
        "filedeleteerror": "«$1» файлын юйып булмай.",
        "directorycreateerror": "«$1» директорияһын яһап булмай.",
+       "directoryreadonlyerror": "«$1» каталогы уҡыу өсөн генә.",
+       "directorynotreadableerror": "«$1» каталогы уҡылмай.",
        "filenotfound": "«$1» файлын табып булмай.",
        "unexpected": "Көтөлмәгән ҡиммәт: «$1»=«$2».",
        "formerror": "Хата: форма мәғлүмәттәрен ебәреп булмай",
        "no-null-revision": "«$1» бите өсөн яңы нулле төҙәтеү яһап булманы",
        "badtitle": "Ярамаған исем",
        "badtitletext": "Биттең һоратылған исеме дөрөҫ түгел, буш йәки телдәр араһы йәки интервики исеме яңылыш күрһәтелгән. Исемдә тыйылған символдар булыуы ла мөмкин.",
+       "title-invalid-empty": "Һоратылған бит башлығы буш йәки исемдәр арауығы була.",
        "perfcached": "Был мәғлүмәттәр кэштан алынған, уларҙа һуңғы үҙгәртеүҙәр булмаҫҡа мөмкин. Кэшта иң күбе {{PLURAL:$1|язма}} һаҡлана.",
        "perfcachedts": "Был мәғлүмәттәр кэштан алынған, ул һуңғы тапҡыр $1 яңыртылды.  Кэшта иң күбе  {{PLURAL:$4|язма}} һаҡлана",
        "querypage-no-updates": "Был битте яңыртыу хәҙер тыйылған.\nБында күрһәтелгән мәғлүмәттәр яңыртылмаясаҡ.",
        "gotaccount": "Әгәр Һеҙ теркәлеү үткән булһағыҙ? '''$1'''.",
        "gotaccountlink": "Танылыу",
        "userlogin-resetlink": "Танылыу мәғлүмәттәрен оноттоғоҙмо?",
-       "userlogin-resetpassword-link": "Серһүҙҙе ҡабул итмәү",
+       "userlogin-resetpassword-link": "Серһүҙҙе оноттоғоҙмо?",
+       "userlogin-helplink2": "Танылыу буйынса ярҙам",
        "userlogin-loggedin": " Һеҙ {{GENDER:$1|$1}} булараҡ индегеҙ инде. Башҡа файҙаланыусы булып инер өсөн аҫтағы ҡалыпты ҡулланығыҙ.",
        "userlogin-createanother": "Башҡа иҫәп яҙмаһын булдырырға",
        "createacct-emailrequired": "Электрон почта адресы",
        "createacct-another-realname-tip": "Ысын исемегеҙ (мотлаҡ түгел).\nУны яҙып ҡуйһағыҙ, ул биткә кем төҙәтеү индергәнен күрһәтеү өсөн ҡулланыласаҡ.",
        "pt-login": "Танылыу",
        "pt-login-button": "Танылыу",
+       "pt-createaccount": "Яңы ҡатнашыусыны теркәү",
        "pt-userlogout": "Тамамлау",
        "php-mail-error-unknown": "PHP-ның mail() функцияһында билдәһеҙ хата",
        "user-mail-no-addy": "Электрон почта адресы булмайынса электрон хәбәр ебәреп ҡараны",
        "edit-gone-missing": "Битте яңыртып булмай.\nБәлки ул юйылғандыр.",
        "edit-conflict": "Төҙәтеүҙәр конфликты",
        "edit-no-change": "Текста үҙгәртеүҙер булмау сәбәпле үҙгәртеүегеҙгә иғтибар ителмәне.",
+       "postedit-confirmation-created": "Бит төҙөлгән",
+       "postedit-confirmation-restored": "Бит тергеҙелгән",
        "postedit-confirmation-saved": "Үҙгәртеүегеҙ һаҡланды.",
        "edit-already-exists": "Яңы бит яһап булмай.\nУл былай ҙа бар.",
        "defaultmessagetext": "Алдан билдәләнгән яҙма",
        "content-model-text": "ғәҙәти яҙма",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "content-json-empty-object": "Буш нәмә",
+       "content-json-empty-array": "Буш массив",
+       "duplicate-args-category": "Ҡалыпты сығарғанда ҡабатланған аргументтарҙы ҡулланған биттәр",
+       "duplicate-args-category-desc": "Түбәндәге ҡабатланған аргументтары <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> или <code><nowiki>{{foo|bar|1=bar}}</nowiki></code> булған ҡалыпты сығарыу эстәлекле биттәр.",
        "expensive-parserfunction-warning": "'''Иғтибар:''' был биттә хәтерҙе күп ҡулланыусы функциялар ныҡ күп.\n\nҠуйылған сикләү: $2 {{PLURAL:$2|ҡулланыу}}, был осраҡта {{PLURAL:$1|$1 тапҡыр}} башҡарырға рөхсәт ителә.",
        "expensive-parserfunction-category": "Хәтерҙе күп ҡулланыусы функциялары күп булған биттәр",
        "post-expand-template-inclusion-warning": "'''Иғтибар:''' Өҫтәлгән ҡалыптар күләме бик ҙур.\nҠайһы бер ҡалыптар өҫтәлмәйәсәк.",
        "node-count-exceeded-category": "Төйөндәр һаны артҡан биттәр",
        "node-count-exceeded-warning": "Биттә төйөндәр һаны артып киткән",
        "expansion-depth-exceeded-category": "Асылыу тәрәнлеге артып киткән биттәр",
+       "expansion-depth-exceeded-category-desc": "Биттең асылыу тәрәнлеге мөмкин булған юғары сикте уҙған.",
        "expansion-depth-exceeded-warning": "Биттә һалыныу тәрәнлеге сиге үтеп кителгән",
        "parser-unstrip-loop-warning": "Ябылмаған pre табылды",
        "parser-unstrip-recursion-limit": "($1) рекурсия сиге үтеп кителгән",
        "currentrev": "Ағымдағы версия",
        "currentrev-asof": "$1, ағымдағы версия",
        "revisionasof": "$1 версияһы",
-       "revision-info": "Версия: $1; $2",
+       "revision-info": "$1 версияһы; {{GENDER:$6|$2}}$7",
        "previousrevision": "← Алдағы",
        "nextrevision": "Киләһе →",
        "currentrevisionlink": "Ағымдағы версия",
        "notextmatches": "Тап килгән бит табылманы",
        "prevn": "алдағы {{PLURAL:$1|$1}}",
        "nextn": "киләһе {{PLURAL:$1|$1}}",
-       "prevn-title": "Һуңғы $1 {{PLURAL:$1|1=һөҙөмтә|һөҙөмтә}}",
-       "nextn-title": "Тәүге $1 {{PLURAL:$1|1=һөҙөмтә|һөҙөмтә}}",
-       "shown-title": "Бер биттә $1 {{PLURAL:$1|1=һөҙөмтә|һөҙөмтә}} күрһәт",
+       "prev-page": "алдағы бит",
+       "next-page": "киләһе бит",
+       "prevn-title": "Алдағы $1 {{PLURAL:$1|1=һөҙөмтә|һөҙөмтә}}",
+       "nextn-title": "Киләһе $1 {{PLURAL:$1|1=һөҙөмтә|һөҙөмтә}}",
+       "shown-title": "Бер биттә $1 {{PLURAL:$1|1=һөҙөмтә|һөҙөмтә}} күрһәтергә",
        "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3) ҡарарға",
        "searchmenu-exists": "'''Был вики-проектта «[[:$1]]» бите бар'''",
        "searchmenu-new": "'''Был википроектта \"[[:$1]]\" бите булдырырға.'''",
        "search-result-category-size": "{{PLURAL:$1|1=$1 ағза}} ({{PLURAL:$2|$2 эске категория}}, {{PLURAL:$3|$3 файл}})",
        "search-redirect": "(йүнәлтеү $1)",
        "search-section": "($1 бүлеге)",
+       "search-file-match": "(файл эстәлеге менән тура килә)",
        "search-suggest": "Бәлки, ошоно эҙләйһегеҙҙер: $1",
        "search-interwiki-caption": "Туғандаш проекттар",
-       "search-interwiki-default": "$1 һөҙөмтә:",
+       "search-interwiki-default": "$1 һөҙөмтәһе:",
        "search-interwiki-more": "(тағы)",
        "search-relatedarticle": "Ҡағылышлы",
        "searchrelated": "ҡағылышлы",
        "powersearch-togglelabel": "Һайла:",
        "powersearch-toggleall": "Барыһы",
        "powersearch-togglenone": "Һис бере",
+       "powersearch-remember": "Һайланғанды киләсәк эҙләүҙәр өсөн иҫтә ҡалдырырға",
        "search-external": "Тышҡы эҙләү",
        "searchdisabled": "{{SITENAME}} эҙләүе ябыҡ.\nХәҙергә эҙләүҙе Google менән үтәй алаһығыҙ.\nТик унда {{SITENAME}} өсөн индекслауҙың иҫке булыуы мөмкинлеген онотмағыҙ.",
        "search-error": "Эҙләүҙә хата китте: $1",
        "preferences": "Көйләүҙәр",
        "mypreferences": "Көйләүҙәр",
        "prefs-edits": "Төҙәтеүҙәр һаны:",
+       "prefsnologintext2": "Көйләүҙәрҙе үҙгәртеү өсән иҫәп яҙмаһы менән керегеҙ.",
        "prefs-skin": "Күренеш",
        "skin-preview": "Алдан байҡау",
        "datedefault": "Ғәҙәттәге",
        "prefs-personal": "Шәхси мәғлүмәттәр",
        "prefs-rc": "Һуңғы үҙгәртеүҙәр",
        "prefs-watchlist": "Күҙәтеү исемлеге",
+       "prefs-editwatchlist": "Күҙәтеү исемлеген үҙгәртеү",
+       "prefs-editwatchlist-label": "Күҙәтеү исемлеге яҙмаларын үҙгәртеү:",
+       "prefs-editwatchlist-edit": "Күҙәтеү исемлегенән исемдәрҙе ҡарау һәм юйыу",
+       "prefs-editwatchlist-raw": "Күҙәтеү исемлеген текст һымаҡ үҙгәртеү",
+       "prefs-editwatchlist-clear": "Күҙәтеүҙәр исемлеген таҙартыу",
        "prefs-watchlist-days": "Күҙәтеү исемлегендә нисә көн керетелгән үҙгәртеүҙәрҙе күрһәтергә:",
-       "prefs-watchlist-days-max": "Ð\9cакÑ\81имÑ\83м $1 {{PLURAL:$1|1=көн|көн}}",
+       "prefs-watchlist-days-max": "Ð\98Ò£ ÐºÒ¯Ð±Ðµ $1 {{PLURAL:$1|1=көн|көн}}",
        "prefs-watchlist-edits": "Киңәйтелгән күҙәтеү исемлегендә күрһәтелә торған үҙгәртеүҙәр һанының сиге:",
        "prefs-watchlist-edits-max": "Иң күбе: 1000",
        "prefs-watchlist-token": "Күҙәтеү исемлеге токены:",
        "prefs-emailconfirm-label": "Электрон почтаны раҫлау:",
        "youremail": "Электрон почта *",
        "username": "{{GENDER:$1|Ҡулланыусы исеме}}:",
-       "prefs-memberingroups": "{{PLURAL:$1|төркөм}} {{GENDER:$2|ағзаһы}}:",
+       "prefs-memberingroups": "{{GENDER:$2|Ағза}} {{PLURAL:$1|төркөмө|төркөмдәре}}:",
        "prefs-registration": "Теркәлеү ваҡыты:",
        "yourrealname": "Һеҙҙең ысын исемегеҙ (*)",
        "yourlanguage": "Тышҡы күренештә ҡулланылған тел:",
        "yournick": "Һеҙҙең уйҙырма исемегеҙ/ҡушаматығыҙ (имза өсөн):",
        "prefs-help-signature": "Әңгәмә биттәрендәге хәбәрҙәрегеҙ һеҙҙең имзағыҙға һәм ваҡытҡа әйләнәсәк \"<nowiki>~~~~</nowiki>\" тамғаларын өҫтәү юлы менән имзаланырға тейеш.",
        "badsig": "Хаталы имза. HTML-тегдарҙың дөрөҫлөгөн тикшерегеҙ.",
-       "badsiglength": "Бигерәк оҙон имза. Имза оҙонлоғо $1 {{PLURAL:$1|символдан}} артыҡ булмаҫҡа тейеш.",
+       "badsiglength": "Бигерәк оҙон имза. \nИмза оҙонлоғо $1 {{PLURAL:$1|символдан}} артыҡ булмаҫҡа тейеш.",
        "yourgender": "Ҡайһы тасуирлама һеҙгә ҡулайыраҡ?",
        "gender-unknown": "Күрһәткем килмәй",
        "gender-male": "Ул вики биттәрен мөхәррирләй",
        "right-move": "Биттәрҙең исемен үҙгәртеү",
        "right-move-subpages": "Ҡушымталары менән бергә биттәрҙең исемен алыштырыу",
        "right-move-rootuserpages": "Ҡулланыусыларҙың төп биттәренең исемен үҙгәртеү",
+       "right-move-categorypages": "Категория биттәренең исемен үҙгәртеү",
        "right-movefile": "файл исемдәрен үҙгәртеү",
        "right-suppressredirect": "Биттәрҙең исемен үҙгәрткән ваҡытта сығанаҡ биттән йүнәлтмә булдырылмай",
        "right-upload": "Файл тейәү",
        "action-userrights-interwiki": "Ҡатнашыусыларҙың башҡа Викиларҙағы хоҡуҡтарын үҙгәртеү",
        "action-siteadmin": "Мәғлүмәттәр базаһын асыу һәм ябыу",
        "action-sendemail": "электрон хат ебәреү",
-       "action-editmywatchlist": "һеÒ\99Ò\99ең ÐºÒ¯Ò\99Ó\99Ñ\82еүÒ\99Ó\99Ñ\80 Ð¸Ñ\81емелеген Ð¼Ó©Ñ\85Ó\99Ñ\80Ñ\80иÑ\80лÓ\99Ò¯",
+       "action-editmywatchlist": "һеҙҙең күҙәтеүҙәр исемлеген мөхәррирләү",
        "action-viewmywatchlist": "һеҙҙең күҙәтеүҙәр исемлеген байҡау",
        "action-viewmyprivateinfo": "һеҙҙең шәхси мәғлүмәтте байҡау",
        "action-editmyprivateinfo": "һеҙҙең шәхси мәғлүмәтте мөхәррирләү",
        "recentchanges-label-minor": "Был әҙ үҙгәреш",
        "recentchanges-label-bot": "Был төҙәтеү бот тарафынан башҡарылды",
        "recentchanges-label-unpatrolled": "Был төҙәтеү ҡаралмаған әле",
+       "recentchanges-label-plusminus": "Бит шул тиклем байтҡа үҙгәрҙе",
+       "recentchanges-legend-heading": "'''Легенда:'''",
        "recentchanges-legend-newpage": "$1 — яңы бит",
        "rcnotefrom": "Түбәндә '''$2''' башлап ('''$1''' тиклем) үҙгәртеүҙәр күрһәтелгән.",
        "rclistfrom": "$3 $2 башлап яңы үҙгәртеүҙәрҙе күрһәт.",
        "rcshowhideminor": "бәләкәй төҙәтеүҙәрҙе $1",
+       "rcshowhideminor-show": "Күрһәтергә",
+       "rcshowhideminor-hide": "Йәшерергә",
        "rcshowhidebots": "боттарҙы $1",
-       "rcshowhideliu": "танылған ҡулланыусыларҙы $1",
+       "rcshowhidebots-show": "Күрһәтергә",
+       "rcshowhidebots-hide": "Йәшерергә",
+       "rcshowhideliu": "$1 танылған ҡулланыусылар",
+       "rcshowhideliu-show": "Күрһәтергә",
+       "rcshowhideliu-hide": "Йәшерергә",
        "rcshowhideanons": "танылмаған ҡулланыусыларҙы $1",
+       "rcshowhideanons-show": "Күрһәтергә",
+       "rcshowhideanons-hide": "Йәшерергә",
        "rcshowhidepatr": "$1 — ҡаралған төҙәтеүҙәр",
+       "rcshowhidepatr-show": "Күрһәтергә",
+       "rcshowhidepatr-hide": "Йәшерергә",
        "rcshowhidemine": "минең үҙгәртеүҙәремде $1",
+       "rcshowhidemine-show": "Күрһәтергә",
+       "rcshowhidemine-hide": "Йәшерергә",
        "rclinks": "Һуңғы $2 көн эсендәге һуңғы $1 үҙгәртеүҙе күрһәтергә<br />$3",
        "diff": "айыр.",
        "hist": "тарих",
        "minoreditletter": "ә",
        "newpageletter": "Я",
        "boteditletter": "б",
-       "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|ҡатнашыусы}} күҙәтә]",
+       "number_of_watching_users_pageview": "[$1 күҙәткән {{PLURAL:$1|ҡатнашыусы}}]",
        "rc_categories": "Ошо категорияларҙан ғына («|» менән айырырға)",
        "rc_categories_any": "Һәр",
-       "rc-change-size-new": "Үҙгәртештән һуң $1 {{PLURAL:$1|1=байт|байт}}",
+       "rc-change-size-new": "Үҙгәртештән һуң күләм: $1 {{PLURAL:$1|1=байт|байт}}",
        "newsectionsummary": "/* $1 */ яңы бүлек",
        "rc-enhanced-expand": "Ваҡ-төйәгенә тиклем күрһәтергә",
        "rc-enhanced-hide": "Ваҡлыҡтарҙы йәшерергә",
        "uploaderror": "Тейәү хатаһы",
        "upload-recreate-warning": "'''Иғтибар. Бындай исемле файл юйылған йәки күсерелгән. '''\nБыл биттең юйыуҙары һәм күсереүҙәре яҙмалары журналы түбәндә килтерелгән:",
        "uploadtext": "Файл тейәү өсөн түбәндәге форманы ҡулланығыҙ.\nЭлек тейәлгән файлдарҙы байҡар өсөн [[Special:FileList|тейәлгән файлдар исемлеген]] ҡарағыҙ. Файл тейәүҙәр шулай уҡ [[Special:Log/upload|тейәү яҙмаларына]], юйыуҙар иһә [[Special:Log/delete|юйыу яҙмаларына]] яҙылып баралар.\n\nФайлды мәҡәләгә өҫтәү өсөн киләһе юлдарҙы ҡуллана алаһығыҙ:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' — файлдың тулы өлгөһөн ҡуйыр өсөн;\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|тасуирлама]]</nowiki></code>''' — файлдың киңлек буйынса 200 нөктәгә тиклем бәләкәсәйтелгән, һулға тигеҙләнгән һәм аҫтында тасуирламаһы булған өлгөһөн ҡуйыр өсөн;\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' — эстәлеген биттә күрһәтмәйенсә файлға һылтанма ҡуйыу өсөн.",
-       "upload-permitted": "Рөхсәт ителгән файл типтары: $1.",
+       "upload-permitted": "{{PLURAL:$2|Рөхсәт ителгән файл төрө|Рөхсәт ителгән файл төрҙөре}}: $1.",
        "upload-preferred": "Уңайлы файл типтары: $1.",
-       "upload-prohibited": "Тыйылған файл типтары: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Тыйылған файл төрө|Тыйылған файл төрҙәре}}: $1.",
        "uploadlogpage": "Тейәү яҙмалары",
        "uploadlogpagetext": "Түбәндә, һуңғы файл тейәүҙәр исемлеге күрһәтелгән.\nШулай уҡ [[Special:NewFiles|яңы файлдар галереяһын]] ҡарағыҙ; һуңғы тейәүҙәр ентекле рәүештә күрһәтелгән.",
        "filename": "Файл исеме",
        "filetype-mime-mismatch": "Файлдың «.$1» киңәйеүе файлдың ($2) MIME-төрөнә  тап килмәй.",
        "filetype-badmime": "MIME-төрө «$1» булған файлдарҙы тейәп булмай.",
        "filetype-bad-ie-mime": "Был файлды тейәп булмай, сөнки Internet Explorer уны \"$1\", йәғни рөхсәт ителмәгән һәм хәүефле файл төрө тип билдәләйәсәк.",
-       "filetype-unwanted-type": "'''\".$1\"''' — теләнмәгән файл тибы.\n{{PLURAL:$3|1=Уңайлы файл тибы|Уңайлы файл типтары:}} $2.",
+       "filetype-unwanted-type": "'''\".$1\"''' — кәрәкмәгән файл төрө.\n{{PLURAL:$3|1=Өҫтөнлөклө файл төрө|Өҫтөнлөклө файл төрҙөре:}} $2.",
        "filetype-banned-type": "'''\".$1\"''' — {{PLURAL:$4|1=тыйылған файл төрө|тыйылған файл төрҙәре}}.\n{{PLURAL:$3|1=Файлдың рөхсәт ителгән төрө|Файлдың рөхсәт ителгән төрҙәре:}} $2.",
        "filetype-missing": "Файлдың киңәйтелмәһе юҡ (мәҫәлән, \".jpg\").",
        "empty-file": "Һеҙ ебәргән файл буш.",
        "license": "Рөхсәтнамә:",
        "license-header": "Рөхсәтнәмә",
        "nolicense": "Бер нимә лә һайланмаған",
+       "licenses-edit": "Лицензия параметрҙарын үҙгәртергә",
        "license-nopreview": "(Ҡарап сығыу мөмкин түгел)",
        "upload_source_url": "(Дөрөҫ, дөйөм ҡулланыу өсөн асыҡ URL-адрес)",
        "upload_source_file": "(һеҙҙең компьютерҙағы файл)",
        "listfiles-summary": "Был ярҙамсы бит бөтә тейәлгән файлдарҙы күрһәтә.",
        "listfiles_search_for": "Файл исеме буйынса эҙләү:",
+       "listfiles-userdoesnotexist": "\"$1\" иҫәп яҙмаһы теркәлмәгән.",
        "imgfile": "файл",
        "listfiles": "Файлдар исемлеге",
        "listfiles_thumb": "Шартлы рәсем",
        "download": "күсереп яҙырға",
        "unwatchedpages": "Бер кем дә күҙәтмәгән биттәр",
        "listredirects": "Йүнәлтеүҙәр исемлеге",
+       "listduplicatedfiles": "Күсермәләр менән файлдар исемлеге",
        "unusedtemplates": "Ҡулланылмаған ҡалыптар",
        "unusedtemplatestext": "Был биттә {{ns:template}} исемдәр арауығының бөтә башҡа биттәргә индерелмәгән биттәре исемлеге килтерелгән.\nҠалыпты юйыр алдынан, уға башҡа һылтанмалар юҡлығын тикшерергә онотмағыҙ.",
        "unusedtemplateswlh": "Башҡа һылтанмалар",
        "randomincategory": "Категориялағы осраҡлы бит",
        "randomincategory-invalidcategory": "$1 тигән категория юҡ.",
        "randomincategory-nopages": "[[:Category:$1|$1]] категорияһында биттәр юҡ.",
+       "randomincategory-category": "Категория:",
+       "randomincategory-legend": "Категорияла осраҡлы файл",
        "randomredirect": "Осраҡлы биткә күсеү",
        "randomredirect-nopages": "\"$1\" исемдәр арауығында йүнәлтеүҙәр юҡ.",
        "statistics": "Статистика",
        "ninterwikis": "$1 {{PLURAL:$1|интервики-һылтанма}}",
        "nlinks": "$1 {{PLURAL:$1|һылтанма}}",
        "nmembers": "$1 {{PLURAL:$1|объект}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|объект}}",
        "nrevisions": "$1 {{PLURAL:$1|1=өлгө|өлгө}}",
        "nviews": "$1 {{PLURAL:$1|ҡарап сығыу}}",
        "nimagelinks": "$1 {{PLURAL:$1|биттә}} ҡулланыла",
        "protectedpages": "Һаҡланған биттәр",
        "protectedpages-indef": "Сикләнмәгән һаҡлауҙар ғына",
        "protectedpages-cascade": "Эҙмә-эҙлекле һаҡлауҙар ғына",
+       "protectedpages-noredirect": "Йүнәлтеүҙәрҙе йәшерергә",
        "protectedpagesempty": "Әлеге ваҡытта күрһәтелгән шарттар менән һаҡланған биттәр юҡ.",
+       "protectedpages-timestamp": "Ваҡыт",
+       "protectedpages-page": "Бит",
+       "protectedpages-expiry": "Тамамлана",
+       "protectedpages-performer": "Ҡатнашыусыны һаҡлау",
+       "protectedpages-params": "Һаҡ параметрҙары",
+       "protectedpages-reason": "Сәбәп",
+       "protectedpages-unknown-timestamp": "Билдәһеҙ",
+       "protectedpages-unknown-performer": "Билдәһеҙ ҡатнашыусы",
        "protectedtitles": "Тыйылған исемдәр",
        "protectedtitlesempty": "Әлеге ваҡытта күрһәтелгән шарттар менән һаҡланған исемдәр юҡ.",
        "listusers": "Ҡатнашыусылар исемлеге",
        "pager-older-n": "{{PLURAL:$1|1=1 иҫкерәк|$1 иҫкерәк}}",
        "suppress": "Йәшереү",
        "querypage-disabled": "Был махсус бит һөҙөмтәлелекте арттырыу өсөн ябылған.",
+       "apihelp": "API белешмәһе",
+       "apihelp-no-such-module": "«$1» модуле табылмаған.",
        "booksources": "Китап сығанаҡтары",
        "booksources-search-legend": "Китап сығанаҡтарын эҙлә",
+       "booksources-search": "Эҙләү",
        "booksources-text": "Түбәндәге исемлектә — китаптар һатыу менән шөғөлләнеүсе сайттарға һәм китапханаларҙың эҙләү системаларына һылтанмалар, һәм уларҙа һеҙ эҙләгән китаптар тураһында өҫтәмә мәғлүмәт булыуы мөмкин.",
        "booksources-invalid-isbn": "Күрһәтелгән ISBN номерҙа хата булырға тейеш. Зинһар, номерҙы сығанаҡтан дөрөҫ күсереүегеҙҙе тикшерегеҙ.",
        "specialloguserlabel": "Башҡарыусы:",
        "listgrouprights-removegroup-self": "Үҙенең иҫәп яҙмаһынан $1 {{PLURAL:$2|1=төркөмөн|төркөмдәрен}} юйыу",
        "listgrouprights-addgroup-self-all": "Үҙенең иҫәп яҙмаһына бөтә төркөмдәрҙе өҫтәү",
        "listgrouprights-removegroup-self-all": "Үҙенең иҫәп яҙмаһынан бөтә төркөмдәрҙе юйыу",
+       "listgrouprights-namespaceprotection-header": "Исемдәр арауығы сикләүҙәре",
+       "listgrouprights-namespaceprotection-namespace": "Исемдәр арауығы",
+       "trackingcategories-name": "Хәбәр исеме",
        "mailnologin": "Хат ебәреү өсөн адрес юҡ",
        "mailnologintext": "Башҡа ҡатнашыусыларға хат ебәреү өсөн, һеҙ [[Special:UserLogin|танылырға]] һәм [[Special:Preferences|көйләүҙәрегеҙҙә]] ысын электрон адрес почтаһы кереткән булырға тейешһегеҙ.",
        "emailuser": "Ҡатнашыусыға хат",
        "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\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\n {{grammar:genitive|{{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": "Битте юйырға",
        "isredirect": "йүнәлтеү бите",
        "istemplate": "ҡушылған",
        "isimage": "файл һылтанмаһы",
-       "whatlinkshere-prev": "{{PLURAL:$1|1=алдағы|алдағы $1}}",
-       "whatlinkshere-next": "{{PLURAL:$1|1=киләһе|киләһе $1}}",
+       "whatlinkshere-prev": "{{PLURAL:$1|1=алдағы}} $1",
+       "whatlinkshere-next": "{{PLURAL:$1|1=киләһе}} $1",
        "whatlinkshere-links": "← һылтанмалар",
        "whatlinkshere-hideredirs": "Йүнәлтеүҙәрҙе $1",
        "whatlinkshere-hidetrans": "Ҡушылғандарҙы $1",
        "allmessages-prefix": "Ҡушылмаһы буйынса һайлау:",
        "allmessages-language": "Тел:",
        "allmessages-filter-submit": "Күсергә",
+       "allmessages-filter-translate": "Тәржемә итергә",
        "thumbnail-more": "Ҙурайтырға",
        "filemissing": "Файл юҡ",
        "thumbnail_error": "Шартлы рәсем булдырыу хатаһы: $1",
        "import": "Биттәрҙе тейәү",
        "importinterwiki": "Вики проекттар-ара индереү",
        "import-interwiki-text": "Вики проектты һәм тейәлә торған биттең исемен күрһәтегеҙ.\nҮҙгәртеү ваҡыттары һәм автор исемдәре һаҡланасаҡ.\nБөтә вики проекттары-ара тейәүҙәр [[Special:Log/import|тейәү яҙмалары журналында]] теркәлә.",
+       "import-interwiki-sourcepage": "Сығанаҡ бит:",
        "import-interwiki-history": "Был биттең бөтә үҙгәртеү тарихын яҙҙырырға",
        "import-interwiki-templates": "Бөтә ҡалыптарҙы индерергә",
        "import-interwiki-submit": "Тейәргә",
        "tooltip-pt-mycontris": "Кереткән өлөшөгөҙ",
        "tooltip-pt-login": "Бында теркәлеү үтергә була, әммә был эш мәжбүри түгел.",
        "tooltip-pt-logout": "Сығырға",
+       "tooltip-pt-createaccount": "Мотлаҡ булмаһа ла, Һеҙгә иҫәп яҙмаһы төҙөргө һәм системала танылырға тәҡдим итәбеҙ.",
        "tooltip-ca-talk": "Биттең эстәлеге тураһында фекерләшеү",
        "tooltip-ca-edit": "Һеҙ был битте үҙгәртә алаһығыҙ. Зинһар, яҙып ҡуйыр алдынан ҡарап сығығыҙ",
        "tooltip-ca-addsection": "Яңы бүлек эшләргә",
        "svg-long-desc": "SVG файлы, номиналь $1 × $2 нөктә, файлдың дәүмәле: $3",
        "svg-long-desc-animated": "Анимациялы SVG файлы, номиналь $1 × $2 нөктә, файлдың дәүмәле: $3",
        "svg-long-error": "Яңылыш SVG файл: $1",
-       "show-big-image": "ТÑ\83лÑ\8b Ð°Ñ\81Ñ\8bҡлÑ\8bÒ¡",
+       "show-big-image": "Ð\91аÑ\88ланÒ\93Ñ\8bÑ\81 Ñ\84айл",
        "show-big-image-preview": "Байҡау ваҡытындағы күләм: $1.",
        "show-big-image-other": "{{PLURAL:$2|1=Башҡа сиселеш|Башҡа сиселештәр}}: $1.",
        "show-big-image-size": "$1 × $2 пиксель",
        "htmlform-no": "Юҡ",
        "htmlform-yes": "Эйе",
        "htmlform-chosen-placeholder": "Вариант һайлағыҙ",
+       "htmlform-cloner-create": "Тағы өҫтәргә",
+       "htmlform-cloner-delete": "Юйырға",
        "sqlite-has-fts": "$1, тулы текст буйынса эҙләү мөмкинлеге менән",
        "sqlite-no-fts": "$1, тулы текст буйынса эҙләү мөмкинлекһеҙ",
        "logentry-delete-delete": "$1 $3 битен {{GENDER:$2|юйҙы}}",
        "logentry-rights-rights": "$1  $3 файҙаланыусының төркөмдәрҙәге ағзалығын $4 урынына $5 тип {{GENDER:$2|үҙгәртте}}",
        "logentry-rights-rights-legacy": "$1  $3 өсөн төркөмдәрҙәге ағзалыҡты {{GENDER:$2|үҙгәртте}}",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|}} автоматик рәүештә {{GENDER:$2|}} $4 урынына $5 ителде.",
+       "logentry-upload-upload": "$1 $3 {{GENDER:$2|күсерҙе}}",
        "rightsnone": "(юҡ)",
        "revdelete-summary": "үҙгәртеүҙәр тасуирламаһы",
        "feedback-adding": "Биткә кире белдереү өҫтәлә",
        "feedback-bugornote": "Әгәр Һеҙ техник проблеманы ентекле рәүештә аңлатырға теләһәгеҙ, зинһар, [$1 хата тураһында белдерегеҙ].\nБашҡа осраҡта, ошо ябай форманы ҡуллана алаһығыҙ. Комментарийығыҙ «[$3 $2]» битенә ҡулланыусы исемегеҙ һәм браузер мәғлүмәте менән өҫтәләсәк.",
        "feedback-cancel": "Кире алырға",
        "feedback-close": "Әҙер",
+       "feedback-error-title": "Хата",
        "feedback-error1": "Хата: API-нан беленмәгән хата",
        "feedback-error2": "Хата: Мөхәррирләү хатаһы",
        "feedback-error3": "Хата: API-нан яуап юҡ",
index 71e1204..4864fe5 100644 (file)
        "no-null-revision": "Dae makakamukna nin baguhong bunyaw na rebisyon para sa pahina \"$1\"",
        "badtitle": "Raot na titulo",
        "badtitletext": "An pinaghagad na titulo kan pahina imbalido, daeng laog, o sarong salaon na sinugpunan na titulo kan inter-lengguwahe o inter-wiki.\nIni gayod may laog nin o dakol na mga karakter na dae pinaggagamit sa mga titulo.",
+       "title-invalid-interwiki": "An pinaghahagad na titulo kan pahina igwang laman nin saguysoy sa panlaog na wiki na dae puwedeng gamiton sa mga titulo.",
        "perfcached": "An minasunod na datos pinagtago asin bakong gayo napapanahon. An maximum na {{PLURAL:$1|sarong resulta na|$1 mga resulta na}} yaon sana sa pinagtago.",
        "perfcachedts": "An minasunod na datos pinagtago, asin huring pinagdagdagan kan $1. An maximum na {{PLURAL:$4|sarong result na |$4 mga resulta na }} yaon sana sa pinagtago.",
        "querypage-no-updates": "Mga kasugponan para sa pahinang ini sa ngunyan pinagpupugulan. An datos na yaon digde dae sa presente maipagpresko.",
        "content-model-text": "yanong-teksto",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-warning": "<strong>Patanid:</strong> [[:$1]] nag-aapod [[:$2]] na igwa nin sobra sa sarong halaga para sa \"$3\" na parametro. An pinakahuring halaga sanang ipinagtao an magagamit.",
        "expensive-parserfunction-warning": "'''Patanid tabi:''' Ining pahina naglalaman nin grabe kadakulon na ekspensibong programang pambaranga sa punksyon nin mga pag-aapod.\n\nIni dapat magkaigwa nin menos sanang $2 {{PLURAL:$2|apod|mga apod}}, igwa na {{PLURAL:$1|ngunyan nin $1 apod|ngunyan nin $1 mga apod}}.",
        "expensive-parserfunction-category": "Mga pahina na igwa nin grabe kadakulon na mga ekspensibong programang pambaranga sa punksyon nin mga pag-aapod",
        "post-expand-template-inclusion-warning": "'''Patanid tabi:''' An panguyog (template) igwang sukol na grabe kadakula.\nAn ibang mga panguyog dae tabi maipagdadagdag.",
        "userrights-lookup-user": "Magmaného kan mga grupo nin parágamit",
        "userrights-user-editname": "Ilaog an pangaran kan parágamit:",
        "editusergroup": "Hirahón an mga Grupo kan Parágamit",
-       "editinguser": "Sinasanglian an paragamit na karapatan kan paragamit '''[[User:$1|$1]]''' $2",
+       "editinguser": "Sinasanglian an mga karapatan kan paragamit na si {{GENDER:$1|paragamit}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Hirahón an mga grupo kan parágamit",
        "saveusergroups": "Itagama an mga Grupo nin Páragamit",
        "userrights-groupsmember": "Myembro kan:",
index 2cc69b6..72c1ed6 100644 (file)
        "badtitle": "Няслушная назва",
        "badtitletext": "Запытаная назва старонкі няслушная ці пустая, альбо няслушна ўказаная міжмоўная ці інтэрвікі-назва. Яна можа ўтрымліваць сымбалі, якія нельга ўжываць у назвах.",
        "title-invalid-empty": "Запытаная назва старонкі пустая або ўтрымлівае толькі прастору назваў.",
+       "title-invalid-utf8": "Запытаная назва старонкі ўтрымлівае няслушныя сымбалі UTF-8.",
+       "title-invalid-interwiki": "Назва запытанай старонкі ўтрымлівае інтэрвікі-спасылку, чаго ня можа быць у назвах.",
+       "title-invalid-talk-namespace": "Запытаная назва старонкі адпавядае старонцы абмеркаваньня, якая ня можа існаваць.",
+       "title-invalid-characters": "Запытаная назва старонкі ўтрымлівае няслушныя сымбалі: «$1».",
+       "title-invalid-relative": "Назва мае адносны шлях. Адносныя назвы старонак (./, ../) няслушныя, бо яны часта робяцца недаступнымі, калі апрацоўваюцца браўзэрам карыстальніка.",
+       "title-invalid-magic-tilde": "Запытаная назва старонкі ўтрымлівае недазволенае спалучэньне тыльдаў (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Запытаная назва старонкі занадта доўгая. Яна ня мусіць быць даўжэй за $1 {{PLURAL:$1|байт у|байты ў|байтаў у}} кадаваньні UTF-8.",
+       "title-invalid-leading-colon": "Запытаная назва старонкі ўтрымлівае памылковае двукроп’е ў пачатку.",
        "perfcached": "Наступныя зьвесткі кэшаваныя і могуць быць састарэлымі. У кэшы {{PLURAL:$1|даступны|даступныя}} ня больш за $1 {{PLURAL:$1|вынік|вынікі|вынікаў}}.",
        "perfcachedts": "Наступныя зьвесткі кэшаваныя і апошні раз былі абноўленыя $1. У кэшы {{PLURAL:$4|даступны|даступныя}} ня больш за $4 {{PLURAL:$4|вынік|вынікі|вынікаў}}.",
        "querypage-no-updates": "Абнаўленьні гэтай старонкі цяпер адключаныя. Зьвесткі ня будуць абнаўляцца.",
        "content-model-css": "CSS",
        "content-json-empty-object": "Пусты аб’ект",
        "content-json-empty-array": "Пусты масіў",
+       "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>.",
        "expensive-parserfunction-warning": "Папярэджаньне: гэтая старонка ўтрымлівае зашмат працаёмістых зваротаў да функцыяў парсэра.\n\nПавінна быць ня болей за $2 {{PLURAL:$2|зварот|звароты|зваротаў}}, а цяпер ўтрымліваецца {{PLURAL:$1|$1 зварот|$1 звароты|$1 зваротаў}}.",
        "userrights-lookup-user": "Кіраваньне групамі ўдзельнікаў і ўдзельніц",
        "userrights-user-editname": "Увядзіце імя ўдзельніка:",
        "editusergroup": "Рэдагаваць групы ўдзельнікаў і ўдзельніц",
-       "editinguser": "Зьмена правоў {{GENDER:$1|удзельніка|удзельніцы}} '''[[User:$1|$1]]''' $2",
+       "editinguser": "Зьмена правоў {{GENDER:$1|удзельніка|удзельніцы}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Рэдагаваць групы ўдзельнікаў і ўдзельніц",
        "saveusergroups": "Захаваць групы ўдзельнікаў і ўдзельніц",
        "userrights-groupsmember": "Уваходзіць у:",
        "uploaddisabledtext": "Загрузка файлаў забароненая.",
        "php-uploaddisabledtext": "Загрузка файлаў была адключаная ў парамэтрах канфігурацыі PHP. Калі ласка, праверце значэньне парамэтра «file_uploads».",
        "uploadscripted": "Гэты файл утрымлівае HTML-код альбо скрыпт, які можа памылкова апрацоўвацца браўзэрам.",
+       "upload-scripted-pi-callback": "Немагчыма загрузіць файл, які ўтрымлівае інструкцыі апрацоўкі табліцы стыляў XML.",
+       "uploaded-script-svg": "У загружаным SVG-файле знойдзены небясьпечны элемэнт з падтрымкай сцэнароў «$1».",
+       "uploaded-hostile-svg": "Знойдзены небясьпечны CSS у элемэнце стылю загружанага SVG-файла.",
+       "uploaded-event-handler-on-svg": "Усталёўваць атрыбуты апрацоўніка падзеяў <code>$1=\"$2\"</code> не дазволена для SVG-файлаў.",
+       "uploaded-href-attribute-svg": "Href-атрыбуты <code>&lt;$1 $2=\"$3\"&gt;</code> зь нелякальнай мэтай (напрыклад, http://, javascript:, і г. д.) не дазволеныя ў SVG-файлах.",
+       "uploaded-href-unsafe-target-svg": "У загружаным SVG-файле знойдзеная спасылка на небясьпечную мэту <code>&lt;$1 $2=\"$3\"&gt;</code>.",
+       "uploaded-animate-svg": "У загружаным SVG-файле знойдзены тэг «animate», які можа зьмяняць спасылку з дапамогай атрыбуту «from» <code>&lt;$1 $2=\"$3\"&gt;</code>.",
+       "uploaded-setting-event-handler-svg": "Усталёўка атрыбутаў апрацоўкі падзеяў заблякаваная, у загружаным SVG-файле знойдзены код <code>&lt;$1 $2=\"$3\"&gt;</code>.",
+       "uploaded-setting-href-svg": "Выкарыстаньне тэгу «set» для дадаваньня атрыбуту «href» у бацькоўскі элемэнт заблякаванае.",
        "uploadscriptednamespace": "Гэты SVG-файл утрымлівае няслушную прастору назваў «$1»",
        "uploadinvalidxml": "Не атрымалася прааналізаваць XML у загружаным файле.",
        "uploadvirus": "Файл утрымлівае вірус! Падрабязнасьці: $1",
        "unusedimages": "Файлы, якія не выкарыстоўваюцца",
        "wantedcategories": "Запатрабаваныя катэгорыі",
        "wantedpages": "Запатрабаваныя старонкі",
-       "wantedpages-summary": "Сьпіс няісных старонак з найбольшай колькасьцю спасылак на іх, за выключэньнем старонак, на якія спасылаюцца толькі старонкі-перанакіраваньні. Дзеля сьпісу няісных старонак, на якія спасылаюцца перанакіраваньні, глядзіце [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "Сьпіс няісных старонак з найбольшай колькасьцю спасылак на іх, за выключэньнем старонак, на якія спасылаюцца толькі старонкі-перанакіраваньні. Дзеля сьпісу няісных старонак, на якія спасылаюцца перанакіраваньні, глядзіце [[{{#special:BrokenRedirects}}|сьпіс няслушных перанакіраваньняў]].",
        "wantedpages-badtitle": "Няслушная назва сярод вынікаў: $1",
        "wantedfiles": "Запатрабаваныя файлы",
        "wantedfiletext-cat": "Наступныя файлы выкарыстоўваюцца, але іх няма. Файлы са зьнешніх сховішчаў могуць знаходзіцца ў сьпісе без уліку іх існаваньня. Любыя такія няслушныя ўваходжаньні будуць <del>выкрасьленыя</del>. Дадаткова, старонкі, якія ўбудоўваюць неіснуючыя файлы прыведзеныя на [[:$1]].",
        "tooltip-t-contributions": "Паказаць унёсак гэтага удзельніка/гэтай удзельніцы",
        "tooltip-t-emailuser": "Даслаць ліст гэтаму ўдзельніку/гэтай удзельніцы па электроннай пошце",
        "tooltip-t-info": "Болей інфармацыі пра гэтую старонку",
-       "tooltip-t-upload": "Загрузіць файл",
+       "tooltip-t-upload": "Загрузіць файлы",
        "tooltip-t-specialpages": "Сьпіс усіх спэцыяльных старонак",
        "tooltip-t-print": "Вэрсія гэтай старонкі для друку",
        "tooltip-t-permalink": "Сталая спасылка на гэтую вэрсію старонкі",
        "tags-create-invalid-title-chars": "Назвы метак ня мусяць утрымліваць сымбалі, якія нельга ўжываць у назвах старонак.",
        "tags-create-already-exists": "Метка «$1» ужо існуе.",
        "tags-create-warnings-above": "Пры спробе стварыць метку «$1» {{PLURAL:$2|выяўленае наступнае папярэджаньне|выяўленыя наступныя папярэджаньні}}:",
+       "tags-create-warnings-below": "Вы хочаце працягнуць стварэньне меткі?",
+       "tags-delete-title": "Выдаліць метку",
+       "tags-delete-explanation-initial": "Вы зьбіраецеся выдаліць метку «$1» з базы зьвестак.",
+       "tags-delete-explanation-in-use": "Яна будзе выдаленая з {{PLURAL:$2|$2 вэрсіі або запісу ў журнале, да якой|$2 вэрсіяў або запісаў у журнале, да якіх}} яна цяпер ужытая.",
+       "tags-delete-explanation-warning": "Гэтае дзеяньне <strong>незваротнае</strong> і <strong>ня можа быць адмененае</strong> нават адміністратарамі базы зьвестак. Упэўніцеся, што менавіта гэтую метку вы хочаце выдаліць.",
+       "tags-delete-explanation-active": "<strong>Метка «$1» яшчэ актыўная і будзе па-ранейшаму ўжывацца ў будучыні.</strong> Каб спыніць гэта, перайдзіце туды, дзе ўсталяванае выкарыстаньне меткі і адключыце яе там.",
+       "tags-delete-reason": "Прычына:",
+       "tags-delete-submit": "Незваротна выдаліць гэтую метку",
+       "tags-delete-not-found": "Метка «$1» не існуе.",
        "comparepages": "Параўнаньне старонак",
        "compare-page1": "Старонка 1",
        "compare-page2": "Старонка 2",
        "log-name-pagelang": "Журнал зьменаў мовы",
        "log-description-pagelang": "Гэта журнал зьменаў мовы старонак.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|зьмяніў|зьмяніла}} мову старонкі $3 з $4 на $5.",
-       "default-skin-not-found": "Упс! Тэма афармленьня па змоўчаньні для вашай вікі, вызначаная ў <code dir=\"ltr\">$wgDefaultSkin</code> як <code>$1</code> недаступная.\n\nВашае ўсталяваньне, падобна, уключае {{PLURAL:$4|наступную тэму афармленьне|наступныя тэмы афармленьня}}. Глядзіце старонку [https://www.mediawiki.org/wiki/Manual:Skin_configuration Інструкцыя:Наладка тэмаў афармленьня] дзеля інфармацыі, як падключыць {{PLURAL:$4|яе|іх і абраць тэму па змоўчаньні}}.\n\n$2\n\n; Калі вы толькі што ўсталявалі MediaWiki:\n: Напэўна вы ўсталявалі з git або наўпрост з крынічнага коду з ужываньнем іншага мэтаду. Гэта чакана. Паспрабуйце ўсталяваць некалькі тэмаў афармленьня з [https://www.mediawiki.org/wiki/Category:All_skins каталёгу тэмаў mediawiki.org]:\n:* Спампуйце [https://www.mediawiki.org/wiki/Download tarball-усталёўнік], які ўтрымлівае некалькі тэмаў і пашырэньняў. Вы можаце скапіяваць каталёг <code>skins/</code> зь яго.\n:* Спампуйце tarball-усталёўнікі для асобных тэмаў з [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Зрабіце клон аднаго з сховішчаў <code>mediawiki/skins/*</code> праз git у каталёг <code dir=\"ltr\">skins/</code> вашай усталёўкі MediaWiki.\n: Калі вы распрацоўнік MediaWiki, гэта не павінна ўплываць на вашае git-сховішча.\n\n; Калі вы толькі што абнавілі MediaWiki:\n: MediaWiki вэрсіі 1.24 і навейшыя больш не падключаюць тэмы афармленьня аўтаматычна (глядзіце [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Інструкцыя:Аўтаматычнае выяўленьне тэмаў афармленьня]). Вы можаце дадаць {{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>$wgDefaultSkin</code> як <code>$1</code>, недаступная.\n\nВы ня маеце ўсталяваных тэмаў афармленьня.\n\n; Калі вы толькі што ўсталявалі або абнавілі MediaWiki:\n: Напэўна вы ўсталявалі з git або наўпрост з крынічнага коду з ужываньнем іншага мэтаду. Гэта чакана. MediaWiki вэрсіі 1.24 і навейшыя ня ўтрымліваюць тэмы афармленьня ў галоўным сховішчы. Паспрабуйце ўсталяваць некалькі тэмаў афармленьня з [https://www.mediawiki.org/wiki/Category:All_skins каталёгу тэмаў mediawiki.org]:\n:* Спампуйце [https://www.mediawiki.org/wiki/Download tarball-усталёўнік], які ўтрымлівае некалькі тэмаў і пашырэньняў. Вы можаце скапіяваць каталёг <code dir=\"ltr\">skins/</code> зь яго.\n:* Спампуйце tarball-усталёўнікі для асобны тэмаў афармленьня з [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Зрабіце клон аднаго з сховішчаў <code>mediawiki/skins/*</code> праз git у каталёг <code>skins/</code> вашай усталёўкі MediaWiki.\n: Калі вы распрацоўнік MediaWiki, гэта не павінна ўплываць на вашае git-сховішча. Глядзіце [https://www.mediawiki.org/wiki/Manual:Skin_configuration Інструкцыя:Наладка тэмаў афармленьня] дзеля інфармацыі, як падключыць іх і абраць тэму па змоўчаньні.",
+       "default-skin-not-found": "Упс! Тэма афармленьня па змоўчаньні для вашай вікі, вызначаная ў <code dir=\"ltr\">$wgDefaultSkin</code> як <code>$1</code> недаступная.\n\nВашае ўсталяваньне, падобна, уключае {{PLURAL:$4|наступную тэму афармленьне|наступныя тэмы афармленьня}}. Глядзіце старонку [https://www.mediawiki.org/wiki/Manual:Skin_configuration Інструкцыя:Наладка тэмаў афармленьня] дзеля інфармацыі, як падключыць {{PLURAL:$4|яе|іх і абраць тэму па змоўчаньні}}.\n\n$2\n\n; Калі вы толькі што ўсталявалі MediaWiki:\n: Напэўна вы ўсталявалі з git або наўпрост з крынічнага коду з ужываньнем іншага мэтаду. Гэта чакана. Паспрабуйце ўсталяваць некалькі тэмаў афармленьня з [https://www.mediawiki.org/wiki/Category:All_skins каталёгу тэмаў mediawiki.org]:\n:* Спампуйце [https://www.mediawiki.org/wiki/Download tarball-усталёўнік], які ўтрымлівае некалькі тэмаў і пашырэньняў. Вы можаце скапіяваць каталёг <code>skins/</code> зь яго.\n:* Спампуйце tarball-усталёўнікі для асобных тэмаў з [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Выкарыстайце Git, каб спампаваць тэмы афармленьня].\n: Калі вы распрацоўнік MediaWiki, гэта не павінна ўплываць на вашае git-сховішча.\n\n; Калі вы толькі што абнавілі MediaWiki:\n: MediaWiki вэрсіі 1.24 і навейшыя больш не падключаюць тэмы афармленьня аўтаматычна (глядзіце [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Інструкцыя:Аўтаматычнае выяўленьне тэмаў афармленьня]). Вы можаце дадаць {{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>$wgDefaultSkin</code> як <code>$1</code>, недаступная.\n\nВы ня маеце ўсталяваных тэмаў афармленьня.\n\n; Калі вы толькі што ўсталявалі або абнавілі MediaWiki:\n: Напэўна вы ўсталявалі з git або наўпрост з крынічнага коду з ужываньнем іншага мэтаду. Гэта чакана. MediaWiki вэрсіі 1.24 і навейшыя ня ўтрымліваюць тэмы афармленьня ў галоўным сховішчы. Паспрабуйце ўсталяваць некалькі тэмаў афармленьня з [https://www.mediawiki.org/wiki/Category:All_skins каталёгу тэмаў mediawiki.org]:\n:* Спампуйце [https://www.mediawiki.org/wiki/Download tarball-усталёўнік], які ўтрымлівае некалькі тэмаў і пашырэньняў. Вы можаце скапіяваць каталёг <code dir=\"ltr\">skins/</code> зь яго.\n:* Спампуйце tarball-усталёўнікі для асобны тэмаў афармленьня з [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Выкарыстайце Git, каб спампаваць тэмы афармленьня].\n: Калі вы распрацоўнік MediaWiki, гэта не павінна ўплываць на вашае git-сховішча. Глядзіце [https://www.mediawiki.org/wiki/Manual:Skin_configuration Інструкцыя:Наладка тэмаў афармленьня] дзеля інфармацыі, як падключыць іх і абраць тэму па змоўчаньні.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (уключана)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''адключана''')",
        "mediastatistics": "Статыстыка мэдыяфайлаў",
index e3b6658..59edae7 100644 (file)
@@ -50,7 +50,7 @@
        "tog-shownumberswatching": "Паказваць колькасць назіральнікаў",
        "tog-oldsig": "Існуючы подпіс:",
        "tog-fancysig": "Апрацоўваць подпіс як вікі-тэкст (без аўтаматычнай спасылкі)",
-       "tog-uselivepreview": "Жывы перадпаказ (эксперыментальн.)",
+       "tog-uselivepreview": "Жывы перадпаказ",
        "tog-forceeditsummary": "Папярэджваць пра пустое поле тлумачэння праўкі",
        "tog-watchlisthideown": "Не паказваць маіх правак са спіса назірання",
        "tog-watchlisthidebots": "Не паказваць праўкі ботаў са спіса назірання",
        "pool-queuefull": "Чарга запытаў перапоўнена",
        "pool-errorunknown": "Невядомая памылка",
        "pool-servererror": "Служба лічыльніка пулу недаступная ($1).",
+       "poolcounter-usage-error": "Памылка выкарыстання: $1",
        "aboutsite": "Пра {{GRAMMAR:вінавальны|{{SITENAME}}}}",
        "aboutpage": "Project:Пра {{GRAMMAR:вінавальны|{{SITENAME}}}}",
        "copyright": "Матэрыял даступны на ўмовах $1 (калі не пазначана іншае).",
        "readonly_lag": "База даных была аўтаматычна зачынена, каб з ёй маглі ўзгадніцца яе базы-паслядоўнікі",
        "internalerror": "Унутраная памылка",
        "internalerror_info": "Унутраная памылка: $1",
+       "internalerror-fatal-exception": "Фатальнае выключэнне тыпу \"$1\"",
        "filecopyerror": "Не ўдалося капіраваць файл \"$1\" у \"$2\".",
        "filerenameerror": "Не ўдалося назваць файл \"$1\" назвай \"$2\".",
        "filedeleteerror": "Не ўдалося сцерці файл \"$1\".",
        "directorycreateerror": "Немагчыма стварыць тэчку \"$1\".",
+       "directoryreadonlyerror": "Каталог \"$1\" прызначаны толькі для чытання.",
+       "directorynotreadableerror": "Каталог \"$1\" не для чытання.",
        "filenotfound": "Не ўдалося знайсці файл \"$1\".",
        "unexpected": "Нечаканае значэнне: \"$1\"=\"$2\".",
        "formerror": "Памылка: не ўдалося падаць форму",
        "no-null-revision": "Немагчыма стварыць нуль-версію (null revision) для старонкі \"$1\"",
        "badtitle": "Няправільная назва",
        "badtitletext": "Назва старонкі, па якую звярталіся, аказалася недапушчальнай, пустой, або няправільна прылучанай між-моўнай ці між-вікі назвай. Магчыма, у ёй ёсць знакі, якія нельга ўжываць у назвах.",
+       "title-invalid-empty": "Назва запытанай старонкі пустая ці змяшчае толькі назву прасторы назваў.",
+       "title-invalid-utf8": "Назва запытанай старонкі ўтрымлівае недапушчальную ў UTF-8 паслядоўнасць.",
+       "title-invalid-interwiki": "Запытаны загаловак зьмяшчае інтэрвікі-спасылку, якую нельга ўжываць у назвах.",
        "perfcached": "Гэта ўзятыя з кэшу звесткі, і яны могуць не быць актуальнымі. У кэшы захоўваецца не больш за {{PLURAL:$1|адзін вынік|$1 вынікі|$1 вынікаў}}.",
        "perfcachedts": "Наступныя звесткі кэшаваныя і апошні раз былі абноўленыя $1. У кэшы {{PLURAL:$4|даступны|даступныя}} не больш за $4 {{PLURAL:$4|вынік|вынікі|вынікаў}}.",
        "querypage-no-updates": "Немагчыма абнавіць паказаныя звесткі, таму што зараз абнаўленні гэтай старонкі не дазволены.",
        "history-feed-empty": "Не знойдзена такая старонка.\nМагчыма, яна была сцёртая або названая іначай.\nПаспрабуйце [[Special:Search|пашукаць яе на гэтай Вікі]] сярод новых старонак.",
        "rev-deleted-comment": "(выдаленае кароткае апісанне змен)",
        "rev-deleted-user": "(удзельнік выдалены)",
-       "rev-deleted-event": "(сцёртае дзеянне з журналам)",
+       "rev-deleted-event": "(падрабязнасці з журнала сцёртыя)",
        "rev-deleted-user-contribs": "[імя ўдзельніка альбо IP-адрас выдалены — рэдагаванне скрытыя ад узносаў]",
        "rev-deleted-text-permission": "Гэтая версія старонкі была '''сцёртая'''.\nПадрабязнасці гл. у [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале сціранняў].",
        "rev-suppressed-text-permission": "Гэта версія старонкі <strong>схаваная</strong>.\nПадрабязнасці можна пабачыць у [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} журнале ўтойвання].",
index 9d33a6f..a3d77f7 100644 (file)
        "resettokens-legend": "Изчистване на маркерите",
        "resettokens-tokens": "Маркери:",
        "resettokens-token-label": "$1 (текуща стойност: $2)",
-       "resettokens-watchlist-token": "Маркер за уеб хранилка (Atom/RSS) на [[Special: Watchlist|промени на страници от списъка Ви за наблюдение]]",
+       "resettokens-watchlist-token": "Маркер за уеб хранилка (Atom/RSS) на [[Special:Watchlist|промени на страници от списъка Ви за наблюдение]]",
        "resettokens-done": "Маркерите са изчистени.",
        "resettokens-resetbutton": "Изчистване на избраните маркери",
        "bold_sample": "Получер текст",
        "rev-deleted-user-contribs": "[потребителското име или IP адрес са премахнати - редакцията е скрита от приносите]",
        "rev-deleted-text-permission": "Тази версия на страницата е била '''изтрита'''.\nДопълнителна информация може да се съдържа в [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Дневника на изтриванията].",
        "rev-deleted-text-unhide": "Тази версия на страницата е била '''изтрита'''.\nДопълнителна информация може се съдържа в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Дневника на изтриванията].\nКато администратор на сайта вие можете да [$1 прегледате тази редакция], ако желаете да продължите.",
-       "rev-suppressed-text-unhide": "Тази Ð²ÐµÑ\80Ñ\81иÑ\8f Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86аÑ\82а Ðµ Ð±Ð¸Ð»Ð° '''пÑ\80икÑ\80иÑ\82а'''.\nÐ\94опÑ\8aлниÑ\82елна Ð¸Ð½Ñ\84оÑ\80маÑ\86иÑ\8f Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñ\81е Ñ\81Ñ\8aдÑ\8aÑ\80жа Ð² [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Ð\94невника Ð½Ð° Ð¿Ñ\80икÑ\80иваниÑ\8fÑ\82а].\nÐ\9aаÑ\82о Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñ\81Ñ\82Ñ\80аÑ\82оÑ\80 Ð½Ð° Ñ\81айÑ\82а, Ð²Ð¸Ðµ Ð¼ожете да [$1 прегледате версията], ако желаете да продължите.",
+       "rev-suppressed-text-unhide": "Тази Ð²ÐµÑ\80Ñ\81иÑ\8f Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86аÑ\82а Ðµ Ð±Ð¸Ð»Ð° '''пÑ\80икÑ\80иÑ\82а'''.\nÐ\94опÑ\8aлниÑ\82елна Ð¸Ð½Ñ\84оÑ\80маÑ\86иÑ\8f Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñ\81е Ñ\81Ñ\8aдÑ\8aÑ\80жа Ð² [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Ð\94невника Ð½Ð° Ð¿Ñ\80икÑ\80иваниÑ\8fÑ\82а].\nÐ\9cожете да [$1 прегледате версията], ако желаете да продължите.",
        "rev-deleted-text-view": "Тази редация на страницата е била '''изтрита'''.\nКато администратор на сайта, вие можете да я прегледате.\nДопълнителна информация може да се съдържа в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Дневника на изтриванията].",
        "rev-suppressed-text-view": "Тази редация на страницата е била '''прикрита'''.\nКато администратор на сайта, вие можете да я прегледате.\nДопълнителна информация може да се съдържа в [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Дневника на прикриванията].",
        "rev-deleted-no-diff": "Нямате достъп до тази разликова препратка, тъй като една от съставящите я редакции е била '''изтрита'''.\nДопълнителна информация може да се съдържа в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Дневника на изтриванията].",
        "rev-suppressed-no-diff": "Не можете да прегледате тази разликова връзка, защото една от участващите в нея версии е била '''изтрита'''.",
        "rev-deleted-unhide-diff": "Една от редакциите в тази разликова препратка е била '''изтрита'''.\nДопълнителна информация може да се съдържа в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Дневника на изтриванията].\nКато администратор на сайта, вие можете да [$1 прегледате разликовата препратка], ако желаете.",
-       "rev-suppressed-unhide-diff": "Ð\95дна Ð¾Ñ\82 Ð²ÐµÑ\80Ñ\81ииÑ\82е, Ñ\81Ñ\8aÑ\81Ñ\82авлÑ\8fваÑ\89и Ñ\82ази Ñ\80азликова Ð¿Ñ\80епÑ\80аÑ\82ка, Ðµ Ð±Ð¸Ð»Ð° '''пÑ\80икÑ\80иÑ\82а'''.\nÐ\94опÑ\8aлниÑ\82елна Ð¸Ð½Ñ\84оÑ\80маÑ\86иÑ\8f Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñ\81е Ñ\81Ñ\8aдÑ\8aÑ\80жа Ð² [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Ð\94невника Ð½Ð° Ð¿Ñ\80икÑ\80иваниÑ\8fÑ\82а].\nаÑ\82о Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñ\81Ñ\82Ñ\80аÑ\82оÑ\80 Ð½Ð° Ñ\81айÑ\82а, Ð²Ð¸Ðµ Ð¼ожете да [$1 прегледате тази разликова препратка], ако желаете да продължите.",
+       "rev-suppressed-unhide-diff": "Ð\95дна Ð¾Ñ\82 Ð²ÐµÑ\80Ñ\81ииÑ\82е, Ñ\81Ñ\8aÑ\81Ñ\82авлÑ\8fваÑ\89и Ñ\82ази Ñ\80азликова Ð¿Ñ\80епÑ\80аÑ\82ка, Ðµ Ð±Ð¸Ð»Ð° '''пÑ\80икÑ\80иÑ\82а'''.\nÐ\94опÑ\8aлниÑ\82елна Ð¸Ð½Ñ\84оÑ\80маÑ\86иÑ\8f Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñ\81е Ñ\81Ñ\8aдÑ\8aÑ\80жа Ð² [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Ð\94невника Ð½Ð° Ð¿Ñ\80икÑ\80иваниÑ\8fÑ\82а].\nÐ\9cожете да [$1 прегледате тази разликова препратка], ако желаете да продължите.",
        "rev-deleted-diff-view": "Една от версиите на тази разлика е била '''изтрита'''.\nМожете да видите тази разлика; възможно е да има повече информация в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дневника на изтриванията].",
        "rev-suppressed-diff-view": "Една от редакциите от тази разлика между версиите е била '''прикрита'''.\nКато администратор, можете да видите тази разлика; повече подробности има в [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} дневника за прикриванията].",
        "rev-delundel": "показване/скриване",
        "prefs-help-signature": "Коментарите в дискусионните страници трябва да се подписват с поредица от четири тилди \"<nowiki>~~~~</nowiki>\", която при съхранение на редакцията сървърът превръща в подпис с потребителско име, дата и час.",
        "badsig": "Избраният подпис не е валиден. Проверете HTML-етикетите!",
        "badsiglength": "Вашият подпис е твърде дълъг.\nПодписите не могат да надвишават $1 {{PLURAL:$1|знак|знака}}.",
-       "yourgender": "Ð\9fол:",
+       "yourgender": "Ð\9aакво Ð¾Ð¿Ð¸Ñ\81ание Ð\92и Ð¿Ð¾Ð´Ñ\85ожда Ð½Ð°Ð¹-много?",
        "gender-unknown": "Предпочитам да не посоча",
        "gender-male": "Той редактира уики страниците",
        "gender-female": "Тя редактира уики страниците",
        "uploaderror": "Грешка при качване",
        "upload-recreate-warning": "'''Внимание: Файл с това име вече е бил изтрит или преместен.'''\n\nЗа повече информация можете да прегледате записите от дневниците на изтриванията и преместванията:",
        "uploadtext": "Формулярът по-долу служи за качване на файлове, които ще могат да се използват в страниците.\nЗа преглеждане и търсене на вече качените файлове, може да се използва [[Special:FileList|списъка с качени файлове]]. Качванията се записват в [[Special:Log/upload|дневника на качванията]], а изтриванията &mdash; в [[Special:Log/delete|дневник на изтриванията]].\n\nЗа включване на файл в страница, може да се използва една от следния синтаксис: \n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' за използване пълната версия на файла\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' за определяне на широчина от 200 пиксела, ляво позициониране и 'alt text' за описание\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' за директна препратка, без файлът да бъде показван",
-       "upload-permitted": "Разрешени файлови формати: $1.",
-       "upload-preferred": "Предпочитани файлови формати: $1.",
-       "upload-prohibited": "Непозволени файлови формати: $1.",
+       "upload-permitted": "{{PLURAL:$2|Разрешен файлов формат|Разрешени файлови формати}}: $1.",
+       "upload-preferred": "{{PLURAL:$2|Предпочитан файлов формат|Предпочитани файлови формати}}: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Непозволен файлов формат|Непозволени файлови формати}}: $1.",
        "uploadlogpage": "Дневник на качванията",
        "uploadlogpagetext": "Списък на последните качвания.",
        "filename": "Име на файл",
        "largefileserver": "Файлът е по-голям от допустимия от сървъра размер.",
        "emptyfile": "Каченият от вас файл е празен. Това може да е предизвикано от грешка в името на файла. Уверете се дали наистина желаете да го качите.",
        "windows-nonascii-filename": "Уикито не поддържа имена на файлове със специални знаци.",
-       "fileexists": "Вече съществува файл с това име! Прегледайте <strong>[[:$1]]</strong>, ако не сте сигурни, че желаете да го промените.\n[[$1|thumb]]",
+       "fileexists": "Вече съществува файл с това име! Прегледайте <strong>[[:$1]]</strong>, ако не сте {{GENDER:|сигурен|сигурна}}, че желаете да го промените.\n[[$1|thumb]]",
        "filepageexists": "Описателната страница за този файл вече е създадена на <strong>[[:$1]]</strong>, въпреки че файл с това име в момента не съществува. Въведеното от вас резюме няма да се появи на описателната страница. За целта, страницата трябва да бъде редактирана ръчно.\n[[$1|thumb]]",
        "fileexists-extension": "Съществува файл със сходно име: [[$2|thumb]]\n* Име на файла за качване: <strong>[[:$1]]</strong>\n* Име на съществуващия файл: <strong>[[:$2]]</strong>\nМоля, изберете друго име на файла за качване.",
        "fileexists-thumbnail-yes": "Изглежда, че файлът е картинка с намален размер ''(миникартинка)''. [[$1|thumb]]\nПроверете файла <strong>[[:$1]]</strong>.\nАко съществуващият файл представлява оригиналната версия на картинката, няма нужда да се качва неин умален вариант.",
        "license-header": "Лицензиране",
        "nolicense": "Нищо не е избрано",
        "license-nopreview": "(Не е наличен предварителен преглед)",
-       "upload_source_url": " (правилен, публично достъпен интернет-адрес)",
+       "upload_source_url": "(избраният от вас файл от валиден, публично достъпен интернет-адрес)",
        "upload_source_file": "(файл на вашия компютър)",
        "listfiles-delete": "изтриване",
        "listfiles-summary": "Тази специална страница показва всички качени файлове.",
        "filedelete-maintenance": "Поради поддръжка на сайта, изтриването и възстановяването на файлове е временно ограничено.",
        "filedelete-maintenance-title": "Файлът не може да бъде изтрит",
        "mimesearch": "MIME-търсене",
-       "mimesearch-summary": "На тази страница можете да филтрирате файловете по техния MIME-тип. Заявката трябва да се състои от медиен тип и подтип, разделени с наклонена черта (слеш), напр. <code>image/jpeg</code>.",
+       "mimesearch-summary": "На тази страница можете да филтрирате файловете по техния MIME-тип.\nВход: медиен тип/подтип или медиен тип/*, напр. <code>image/jpeg</code>.",
        "mimetype": "MIME-тип:",
        "download": "сваляне",
        "unwatchedpages": "Ненаблюдавани страници",
        "pageswithprop-submit": "Отваряне",
        "doubleredirects": "Двойни пренасочвания",
        "doubleredirectstext": "Тази страница съдържа списък със страници, които пренасочват към друга пренасочваща страница.\nВсеки ред съдържа препратки към първото и второто пренасочване, както и целта на второто пренасочване, която обикновено е „истинската“ целева страница, към която първото пренасочване би трябвало да сочи.\n<del>Задрасканите</del> записи са коригирани.",
-       "double-redirect-fixed-move": "Ð\9eпÑ\80авÑ\8fне Ð½Ð° Ð´Ð²Ð¾Ð¹Ð½Ð¾ Ð¿Ñ\80енаÑ\81оÑ\87ване Ñ\81лед Ð¿Ñ\80емеÑ\81Ñ\82ванеÑ\82о Ð½Ð° [[$1]] ÐºÐ°Ñ\82о [[$2]]",
-       "double-redirect-fixed-maintenance": "Ð\9fопÑ\80авÑ\8fне Ð½Ð° Ð´Ð²Ð¾Ð¹Ð½Ð¾ Ð¿Ñ\80енаÑ\81оÑ\87ване Ð¾Ñ\82 [[$1]] ÐºÑ\8aм [[$2]].",
+       "double-redirect-fixed-move": "СÑ\82Ñ\80аниÑ\86а [[$1]] Ð±ÐµÑ\88е Ð¿Ñ\80емеÑ\81Ñ\82ена.\nÐ\91еÑ\88е Ð°Ð²Ñ\82омаÑ\82иÑ\87но Ð¾Ð±Ð½Ð¾Ð²ÐµÐ½Ð° Ð¸ Ñ\81ега Ð¿Ñ\80енаÑ\81оÑ\87ва ÐºÑ\8aм [[$2]].",
+       "double-redirect-fixed-maintenance": "Ð\90вÑ\82омаÑ\82иÑ\87но ÐºÐ¾Ñ\80игиÑ\80ане Ð½Ð° Ð´Ð²Ð¾Ð¹Ð½Ð¾ Ð¿Ñ\80енаÑ\81оÑ\87ване Ð¾Ñ\82 [[$1]] ÐºÑ\8aм [[$2]] Ð¿Ñ\80и Ð¸Ð·Ð²Ñ\8aÑ\80Ñ\88ване Ð½Ð° Ñ\82еÑ\85ниÑ\87еÑ\81ко Ð¾Ð±Ñ\81лÑ\83жване.",
        "double-redirect-fixer": "Redirect fixer",
        "brokenredirects": "Невалидни пренасочвания",
        "brokenredirectstext": "Следните пренасочващи страници сочат към несъществуващи страници:",
        "wantedtemplates": "Желани шаблони",
        "mostlinked": "Най-препращани страници",
        "mostlinkedcategories": "Най-препращани категории",
-       "mostlinkedtemplates": "Ð\9dай-пÑ\80епÑ\80аÑ\89ани шаблони",
+       "mostlinkedtemplates": "Ð\9dай-използвани шаблони",
        "mostcategories": "Страници с най-много категории",
        "mostimages": "Най-препращани картинки",
        "mostinterwikis": "Страници с най-много междууикита",
        "autoblockid": "Автоматично блокиране #$1",
        "block": "Блокиране на потребител",
        "unblock": "Отблокиране на потребител",
-       "blockip": "Блокиране",
+       "blockip": "Блокиране на {{GENDER:$1|потребител}}",
        "blockip-legend": "Блокиране на потребител",
        "blockiptext": "Формулярът по-долу се използва, за да се забрани правото на писане\nна определен IP-адрес или потребител.\nТова трябва да се направи само за да се предотвратят прояви на вандализъм\nи в съответствие с [[{{MediaWiki:Policy-url}}|политиката за поведение]] в {{SITENAME}}.\nНеобходимо е да се посочи и причина за блокирането (например заглавия на страници, станали обект на вандализъм).",
        "ipaddressorusername": "IP-адрес или потребител:",
        "change-blocklink": "промяна на параметрите на блокирането",
        "contribslink": "приноси",
        "emaillink": "изпращане на е-писмо",
-       "autoblocker": "Ð\91Ñ\8fÑ\85Ñ\82е Ð±Ð»Ð¾ÐºÐ¸Ñ\80ан Ð°Ð²Ñ\82омаÑ\82иÑ\87но, Ñ\82Ñ\8aй ÐºÐ°Ñ\82о Ð½ÐµÐ¾Ñ\82давна IP-адÑ\80еÑ\81Ñ\8aÑ\82 Ð²Ð¸ Ðµ Ð±Ð¸Ð» Ð¿Ð¾Ð»Ð·Ð²Ð°Ð½ Ð¾Ñ\82 Ð±Ð»Ð¾ÐºÐ¸Ñ\80аниÑ\8f Ð² Ð¼Ð¾Ð¼ÐµÐ½Ñ\82а Ð¿Ð¾Ñ\82Ñ\80ебиÑ\82ел [[User:$1|$1]]. Ð\9fÑ\80иÑ\87инаÑ\82а Ð·Ð° Ð½ÐµÐ³Ð¾Ð²Ð¾Ñ\82о Ð±Ð»Ð¾ÐºÐ¸Ñ\80ане е: „$2“.",
+       "autoblocker": "Ð\91Ñ\8fÑ\85Ñ\82е Ð±Ð»Ð¾ÐºÐ¸Ñ\80ан Ð°Ð²Ñ\82омаÑ\82иÑ\87но, Ñ\82Ñ\8aй ÐºÐ°Ñ\82о Ð½ÐµÐ¾Ñ\82давна IP-адÑ\80еÑ\81Ñ\8aÑ\82 Ð\92и Ðµ Ð±Ð¸Ð» Ð¿Ð¾Ð»Ð·Ð²Ð°Ð½ Ð¾Ñ\82 Ð±Ð»Ð¾ÐºÐ¸Ñ\80аниÑ\8f Ð² Ð¼Ð¾Ð¼ÐµÐ½Ñ\82а Ð¿Ð¾Ñ\82Ñ\80ебиÑ\82ел â\80\9e[[User:$1|$1]]â\80\9c.\nÐ\9fÑ\80иÑ\87инаÑ\82а Ð·Ð° Ð±Ð»Ð¾ÐºÐ¸Ñ\80анеÑ\82о Ð½Ð° â\80\9e$1â\80\9c е: „$2“.",
        "blocklogpage": "Дневник на блокиранията",
        "blocklog-showlog": "Потребителят е бил блокиран в миналото.\nЗа справка по-долу е дадено извлечение от дневника на блокиранията:",
        "blocklog-showsuppresslog": "Потребителят е бил блокиран и прикриван в миналото.\nЗа справка по-долу е дадено извлечение от дневника на прикриванията:",
        "range_block_disabled": "Възможността на администраторите да задават интервали при IP-адресите е изключена.",
        "ipb_expiry_invalid": "Невалиден срок на изтичане.",
        "ipb_expiry_temp": "Скритите потребителски имена трябва да се блокират безсрочно.",
-       "ipb_hide_invalid": "Тази потребителска сметка не може да бъде прикрита; може би с нея да са правени твърде много редакции.",
+       "ipb_hide_invalid": "Тази потребителска сметка не може да бъде прикрита; с нея са направени повече от {{PLURAL:$1|една редакция|$1 редакции}}.",
        "ipb_already_blocked": "„$1“ е вече блокиран",
        "ipb-needreblock": "$1 е вече блокиран. Желаете ли да промените настройките?",
        "ipb-otherblocks-header": "{{PLURAL:$1|Друго блокиране|Други блокирания}}",
        "thumbnail_gd-library": "Непълна конфугурация на библиотеката GD: липсва функцията $1",
        "thumbnail_image-missing": "Изглежда следният файл липсва: $1",
        "import": "Внасяне на страници",
-       "importinterwiki": "Внасяне чрез Трансуики",
+       "importinterwiki": "Внасяне от друго уики",
        "import-interwiki-text": "Изберете уики и име на страницата.\nДатите на редакциите и имената на авторите ще бъдат запазени.\nВсички операции при внасянето от друго уики се записват в [[Special:Log/import|дневника на внасянията]].",
+       "import-interwiki-sourcewiki": "Изходно уики:",
+       "import-interwiki-sourcepage": "Изходна страница:",
        "import-interwiki-history": "Копиране на всички версии на страницата",
        "import-interwiki-templates": "Включване на всички шаблони",
        "import-interwiki-submit": "Внасяне",
+       "import-mapping-namespace": "Импортиране в именно пространство:",
+       "import-mapping-subpage": "Импортиране като подстраници на следната страница:",
        "import-upload-filename": "Име на файл:",
        "import-comment": "Коментар:",
        "importtext": "Изнесете файла от изходното уики чрез „[[Special:Export|инструмента за изнасяне]]“. Съхранете го на твърдия диск на компютъра си и го качете тук.",
        "importcantopen": "Не е възможно да се отвори файла за внасяне",
        "importbadinterwiki": "Невалидна уики препратка",
        "importsuccess": "Внасянето беше успешно!",
-       "importnosources": "Ð\9dе Ñ\81а Ð¿Ð¾Ñ\81оÑ\87ени Ð¸Ð·Ñ\82оÑ\87ниÑ\86и Ð·Ð° Ð²Ð½Ð°Ñ\81Ñ\8fне Ñ\87Ñ\80ез Ð¢Ñ\80анÑ\81Ñ\83ики. Ð\9fÑ\80Ñ\8fкоÑ\82о ÐºÐ°Ñ\87ване Ð½Ð° Ð²ÐµÑ\80Ñ\81ионни Ð¸Ñ\81Ñ\82оÑ\80ии Ð½Ðµ Ðµ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð¾.",
+       "importnosources": "Ð\9dе Ñ\81а Ð¿Ð¾Ñ\81оÑ\87ени Ð¸Ð·Ñ\85одни Ñ\83икиÑ\82а Ð¸ Ð¿Ñ\80екиÑ\82е ÐºÐ°Ñ\87ваниÑ\8f Ð½Ð° Ð¸Ñ\81Ñ\82оÑ\80иÑ\8f Ñ\81а Ð¸Ð·ÐºÐ»Ñ\8eÑ\87ени.",
        "importnofile": "Файлът за внасяне не беше качен.",
        "importuploaderrorsize": "Качването на файла за внасяне беше неуспешно. Файлът е по-голям от максималната допустима за качване големина.",
        "importuploaderrorpartial": "Качването на файла за внасяне беше неуспешно. Файлът беше качен частично.",
        "importuploaderrortemp": "Качването на файла за внасяне беше неуспешно. Временната директория липсва.",
        "import-parse-failure": "Грешка в разбора при внасяне на XML",
        "import-noarticle": "Няма страници, които да бъдат внесени!",
-       "import-nonewrevisions": "Ð\92Ñ\81иÑ\87ки Ð²ÐµÑ\80Ñ\81ии Ñ\81а Ð±Ð¸Ð»Ð¸ Ð²Ð½ÐµÑ\81ени Ð¿Ñ\80еди.",
+       "import-nonewrevisions": "Ð\9dе Ñ\81а Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82иÑ\80ани Ð²ÐµÑ\80Ñ\81ии (вÑ\81иÑ\87ки Ð²ÐµÑ\87е Ñ\81Ñ\8aÑ\89еÑ\81Ñ\82вÑ\83ваÑ\82 Ð¸Ð»Ð¸ Ñ\81а Ð¿Ñ\80опÑ\83Ñ\81наÑ\82и Ð¿Ð¾Ñ\80ади Ð³Ñ\80еÑ\88ки).",
        "xml-error-string": "$1 на ред $2, колона $3 (байт $4): $5",
        "import-upload": "Качване на XML данни",
        "import-token-mismatch": "Загубени са данните за сесията. Опитайте отново.",
        "import-invalid-interwiki": "Не може да бъде извършено внасяне от посоченото уики.",
-       "import-error-edit": "СÑ\82Ñ\80аниÑ\86аÑ\82а â\80\9e$1â\80\9c Ð½Ðµ Ð±ÐµÑ\88е Ð²Ð½ÐµÑ\81ена, тъй като нямате права да я редактирате.",
-       "import-error-create": "СÑ\82Ñ\80аниÑ\86аÑ\82а â\80\9e$1â\80\9c Ð½Ðµ Ð±ÐµÑ\88е Ð²Ð½ÐµÑ\81ена, тъй като нямате права да я създадете.",
-       "import-error-interwiki": "СÑ\82Ñ\80аниÑ\86аÑ\82а â\80\9e$1â\80\9c Ð½Ðµ Ð±ÐµÑ\88е Ð²Ð½ÐµÑ\81ена, тъй като името ѝ е запазено за външно свързване (междууики).",
+       "import-error-edit": "СÑ\82Ñ\80аниÑ\86аÑ\82а â\80\9e$1â\80\9c Ð½Ðµ Ð±ÐµÑ\88е Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82иÑ\80ана, тъй като нямате права да я редактирате.",
+       "import-error-create": "СÑ\82Ñ\80аниÑ\86аÑ\82а â\80\9e$1â\80\9c Ð½Ðµ Ð±ÐµÑ\88е Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82иÑ\80ана, тъй като нямате права да я създадете.",
+       "import-error-interwiki": "СÑ\82Ñ\80аниÑ\86аÑ\82а â\80\9e$1â\80\9c Ð½Ðµ Ð±ÐµÑ\88е Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82иÑ\80ана, тъй като името ѝ е запазено за външно свързване (междууики).",
        "import-error-special": "Страницата „$1“ не беше внесена, тъй като принадлежи към специално именно пространство, което не позволява страници.",
        "import-error-invalid": "Страницата „$1“ не беше внесена, тъй като името към което трябваше да бъде внесена е невалидно на това уики.",
        "import-rootpage-invalid": "Посочената основна страница е с невалидно заглавие.",
        "importlogpage": "Дневник на внасянията",
        "importlogpagetext": "Административни внасяния на страници с редакционна история от други уикита.",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|версия беше внесена|версии бяха внесени}}",
-       "import-logentry-interwiki-detail": "{{PLURAL:$1|една версия|$1 версии}} на $2 бяха внесени",
+       "import-logentry-interwiki-detail": "{{PLURAL:$1|една версия беше внесена|$1 версии бяха внесени}} от $2",
        "javascripttest": "Тестване на JavaScript",
        "javascripttest-pagetext-noframework": "Тази страница е запазена за изпълнение на Джаваскрипт тестове.",
+       "javascripttest-pagetext-unknownaction": "Неизвестно действие \"$1\".",
+       "javascripttest-pagetext-frameworks": "Моля, изберете една от предложените тестови структури: $1",
        "javascripttest-pagetext-skins": "Избор на облик за тестванията:",
        "javascripttest-qunit-intro": "Вижте [$1 тестовата документация] на mediawiki.org.",
        "tooltip-pt-userpage": "Вашата потребителска страница",
        "tooltip-feed-atom": "Atom feed за страницата",
        "tooltip-t-contributions": "Показване на приносите на потребителя",
        "tooltip-t-emailuser": "Изпращане на писмо до потребителя",
+       "tooltip-t-info": "Повече за тази страница",
        "tooltip-t-upload": "Качване на файлове",
        "tooltip-t-specialpages": "Списък на всички специални страници",
        "tooltip-t-print": "Версия за печат на страницата",
        "pageinfo-edits": "Общ брой редакции",
        "pageinfo-authors": "Общ брой на отделните автори",
        "pageinfo-recent-edits": "Скорошен брой редакции (в рамките на $1)",
+       "pageinfo-recent-authors": "Общ брой на отделните автори",
        "pageinfo-magic-words": "{{PLURAL:$1|Вълшебна думичка|Вълшебни думички}} ($1)",
        "pageinfo-hidden-categories": "{{PLURAL:$1|Скрита категория|Скрити категории}} ($1)",
        "pageinfo-templates": "{{PLURAL:$1|Включен шаблон|Включени шаблони}} ($1)",
        "exif-objectcycle-p": "Само вечер",
        "exif-gpsdirection-t": "истинска",
        "exif-gpsdirection-m": "магнитна",
+       "exif-ycbcrpositioning-1": "Центрирани",
        "exif-dc-contributor": "Сътрудници",
        "exif-dc-date": "Дата(и)",
        "exif-dc-rights": "Права",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 страница беше добавена|$1 страници бяха добавени}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|Една страница беше премахната|$1 страници бяха премахнати}}:",
        "watchlistedit-clear-legend": "Изчистване на списъка за наблюдение",
+       "watchlistedit-clear-titles": "Заглавия:",
        "watchlistedit-clear-submit": "Изчистване на списъка за наблюдение (Необратимо!)",
        "watchlistedit-clear-done": "Списъкът за наблюдение беше изчистен.",
        "watchlisttools-clear": "Изчистване на списъка за наблюдение",
        "tags-source-extension": "Дефиниран от разширение",
        "tags-source-none": "Вече не се използва",
        "tags-edit": "редактиране",
+       "tags-delete": "изтриване",
+       "tags-activate": "активиране",
+       "tags-deactivate": "спиране",
        "tags-hitcount": "$1 {{PLURAL:$1|промяна|промени}}",
+       "tags-create-heading": "Създаване на нов етикет",
+       "tags-create-explanation": "По подразбиране, новосъздадените етикети са достъпни за използване от потребители и ботове.",
+       "tags-create-tag-name": "Име на етикета:",
        "tags-create-reason": "Причина:",
        "tags-create-submit": "Създаване",
        "tags-create-no-name": "Трябва да посочите име на етикет.",
        "tags-activate-title": "Активиране на етикета",
        "tags-activate-reason": "Причина:",
        "tags-activate-not-found": "Етикет „$1“ не съществува.",
+       "tags-activate-submit": "Активиране",
+       "tags-deactivate-title": "Деактивиране на етикета",
+       "tags-deactivate-question": "Вие ще деактивирате етикет \"$1\".",
        "tags-deactivate-reason": "Причина:",
+       "tags-deactivate-not-allowed": "Деактивирането на етикет \"$1\" не е възможно.",
+       "tags-deactivate-submit": "Деактивиране",
        "tags-update-no-permission": "Нямате права за добавяне или премахване на етикети от индивидуални версии или дневници.",
+       "tags-edit-title": "Редактиране на етикетите",
+       "tags-edit-manage-link": "Управление на етикетите",
        "tags-edit-revision-selected": "{{PLURAL:$1|Избрана версия|Избрани версии}} от [[:$2]]:",
        "tags-edit-revision-legend": "Добавяне или премахване на етикети от {{PLURAL:$1|тази редакция|всичките $1 редакции}}",
+       "tags-edit-existing-tags": "Съществуващи етикети:",
        "tags-edit-new-tags": "Нови етикети:",
+       "tags-edit-add": "Добавете тези етикети:",
+       "tags-edit-remove": "Премахнете тези етикети:",
+       "tags-edit-remove-all-tags": "(изтриване на всички етикети)",
+       "tags-edit-chosen-placeholder": "Избиране на няколко етикета",
        "tags-edit-reason": "Причина:",
        "tags-edit-revision-submit": "Прилагане на промените към {{PLURAL:$1|тази редакция|$1 редакции}}",
        "tags-edit-nooldid-title": "Не е зададена версия",
        "compare-revision-not-exists": "Посочената версия не съществува.",
        "dberr-problems": "Съжаляваме! Сайтът изпитва технически затруднения.",
        "dberr-again": "Изчакайте няколко минути и опитайте да презаредите.",
-       "dberr-info": "(Няма достъп до сървъра с базата данни: $1)",
-       "dberr-info-hidden": "(Няма връска със сървъра на базата данни)",
+       "dberr-info": "(Няма достъп до базата от данни: $1)",
+       "dberr-info-hidden": "(Няма връзка със сървъра на базата данни)",
        "dberr-usegoogle": "Междувременно опитайте да потърсите в Google.",
        "dberr-outofdate": "Имайте предвид, че индексираното от Гугъл наше съдържание може вече да е неактуално.",
        "dberr-cachederror": "Следва складирано копие на поисканата страница. Възможно е складираното копие да не е актуално.",
        "rightsnone": "(никакви)",
        "revdelete-summary": "резюме",
        "feedback-adding": "Добавяне на коментар към страницата...",
+       "feedback-back": "Обратно",
        "feedback-bugcheck": "Страхотно! Само проверете дали това не сред вече [$1 докладваните грешки].",
        "feedback-bugnew": "Проверих. Докладвай за нова грешка",
        "feedback-bugornote": "Ако сте готови подробно да опишете технически проблем, моля [$1 докладвайте го тук].\nВ противен случай, можете да използвате лесния формуляр по-долу. Коментарът ви ще бъде добавен към страницата \"[$3 $2]\", наред с вашето потребителско име.",
        "feedback-cancel": "Отказване",
        "feedback-close": "Готово",
+       "feedback-error-title": "Грешка",
        "feedback-error1": "Грешка: Неразпознат резултат от API",
        "feedback-error2": "Грешка: Неуспешна редакция",
        "feedback-error3": "Грешка: Няма отговор от API",
        "feedback-subject": "Тема:",
        "feedback-submit": "Изпращане",
        "feedback-thanks": "Благодарности! Вашата обратна информация е публикувана на страницата „[$2  $1]“.",
+       "feedback-thanks-title": "Благодарим ви!",
        "searchsuggest-search": "Търсене",
+       "searchsuggest-containing": "съдържа...",
        "api-error-badaccess-groups": "Нямате необходимите права, за да качвате файлове в това уики.",
        "api-error-badtoken": "Вътрешна грешка: неправилен маркер.",
        "api-error-copyuploaddisabled": "Качването през URL е забранено на този сървър.",
index 2ab85d2..5b3ab20 100644 (file)
        "tags-deactivate-reason": "دلیل:",
        "tags-deactivate-not-allowed": "«$1» ئی تگی غیر په هال کورتین ممکن نه اینت.",
        "tags-deactivate-submit": "غیرپئال کورتین",
+       "tags-edit-existing-tags": "موجودین ٹاپه ئان:",
+       "tags-edit-existing-tags-none": "\"هیچگوجام\"",
+       "tags-edit-new-tags": "نوکین ٹاپه:",
+       "tags-edit-add": "ای ٹاپه ئانی ایزاپه کورتین:",
+       "tags-edit-remove": "ای تاٹه ئانی پاک کورتین:",
+       "tags-edit-remove-all-tags": "(موچین ٹاپه ئانی پاک کورتین)",
+       "tags-edit-chosen-placeholder": "ٹاپه ئانی گیچێن کورتین",
+       "tags-edit-chosen-no-results": "ٹاپه ئی په گیچێن ئاودی نه بوت",
+       "tags-edit-reason": "دلیل:",
        "comparepages": "تاکدیمانئ مقایسه",
        "compare-page1": "تاکدیم ۱",
        "compare-page2": "تاکدیم ۲",
        "json-error-syntax": "نحوی ئین خطا",
        "json-error-inf-or-nan": "INF یا NAN ئی مقادیر یک یا گیشتیر بی مقداری که کدگذاری ئا بیئنت",
        "json-error-unsupported-type": "یک اندازه که نتوانت کد گذاری بیئت داته بوته",
-       "headline-anchor-title": "لینک بئ ای قیسمت ئا"
+       "headline-anchor-title": "لینک بئ ای قیسمت ئا",
+       "special-characters-group-latin": "لاتین",
+       "special-characters-group-latinextended": "پیشرپته ئین لاتین",
+       "special-characters-group-ipa": "آی پی ای",
+       "special-characters-group-symbols": "نشانگ ئان",
+       "special-characters-group-greek": "یونانی",
+       "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": "خمر",
+       "special-characters-title-endash": "پاسیله خت",
+       "special-characters-title-emdash": "تچکین پاسیله خت",
+       "special-characters-title-minus": "منپی نشانگ"
 }
index e4ac6ea..f5189a1 100644 (file)
        "aug": "अग",
        "sep": "सित",
        "oct": "अक्टू",
-       "nov": "नव",
+       "nov": "नव",
        "dec": "दिस",
        "january-date": "जनवरी $1",
        "february-date": "फरवरी $1",
        "subcategories": "उपश्रेणी",
        "category-media-header": "\"$1\" श्रेणी में मीडिया",
        "category-empty": "''इ श्रेणी में इ समय कउनो पन्ना या मीडिया नइखे।''",
-       "hidden-categories": "{{PLURAL:$1|à¤\9bà¥\81पावल à¤\97à¤\88ल à¤¶à¥\8dरà¥\87णà¥\80|à¤\9bà¥\81पावल à¤\97à¤\88ल à¤¶à¥\8dरà¥\87णà¥\80à¤\82}}",
+       "hidden-categories": "{{PLURAL:$1|à¤\9bिपावल à¤\97à¤\87ल à¤¶à¥\8dरà¥\87णà¥\80|à¤\9bिपावल à¤\97à¤\87ल à¤¶à¥\8dरà¥\87णà¥\80 à¤¸à¤¬}}",
        "hidden-category-category": "छुपावल गइल श्रेणी",
-       "category-subcat-count": "{{PLURAL:$2|à¤\8f à¤¶à¥\8dरà¥\87णà¥\80 à¤®à¥\87à¤\82 à¤\96ालà¥\80 à¤¨à¤¿à¤®à¥\8dनलिà¤\96ित à¤\89पशà¥\8dरà¥\87णà¥\80 à¤¬à¤¾à¥¤|à¤\87 à¤¶à¥\8dरà¥\87णà¥\80 à¤®à¥\87à¤\82 à¤\95à¥\81ल $2 à¤\89पशà¥\8dरà¥\87णिन à¤®à¥\87à¤\82 à¤¸à¥\87 à¤¨à¤¿à¤®à¥\8dनलिà¤\96ित {{PLURAL:$1|à¤\89पशà¥\8dरà¥\87णà¥\80|$1 à¤\89पशà¥\8dरà¥\87णà¥\80}} à¤¬à¤¾à¤¡à¤¼à¥\80à¤\82 à¤\95à¥\81ल।}}",
+       "category-subcat-count": "{{PLURAL:$2|à¤\8f à¤¶à¥\8dरà¥\87णà¥\80 à¤®à¥\87à¤\82 à¤\96ालà¥\80 à¤¨à¤¿à¤®à¥\8dनलिà¤\96ित à¤¶à¥\8dरà¥\87णà¥\80 à¤¬à¤¾|à¤\8f à¤¶à¥\8dरà¥\87णà¥\80 à¤®à¥\87à¤\82 à¤\95à¥\81ल $2 à¤®à¥\87à¤\82 à¤¸à¥\87 {{PLURAL:$1|à¤\89पशà¥\8dरà¥\87णà¥\80|$1 à¤\89पशà¥\8dरà¥\87णà¥\80 à¤¸à¤¬}} à¤¬à¤¾।}}",
        "category-subcat-count-limited": "ए श्रेणी में निम्नलिखित {{PLURAL:$1|उपश्रेणी बा|$1 उपश्रेणी बाड़ीं।}}",
        "category-article-count": "{{PLURAL:$2|ए श्रेणी में मात्र निम्नलिखित पन्न बा।|इ श्रेणी में निम्नलिखित {{PLURAL:$1|पन्ना बा|$1 पन्ना बाड़े}}, कुल पन्ना $2}}",
        "category-article-count-limited": "निम्नलिखित {{PLURAL:$1|पन्ना|$1 पन्ना}} इ श्रेणीं में बा।",
-       "category-file-count": "{{PLURAL:$2|à¤\87 à¤¶à¥\8dरà¥\87णà¥\80 à¤®à¥\87à¤\82 à¤®à¤¾à¤¤à¥\8dर à¤¨à¤¿à¤®à¥\8dनलिà¤\96ित à¤«à¤¼à¤¾à¤\87ल à¤¬à¤¾à¥¤|à¤\87 à¤¶à¥\8dरà¥\87णà¥\80 à¤®à¥\87à¤\82 à¤¨à¤¿à¤®à¥\8dनलिà¤\96ित {{PLURAL:$1|फ़ाà¤\87ल|$1 à¤«à¤¼à¤¾à¤\87लà¤\82}} à¤¬à¤¾à¤¡à¤¼à¥\87, à¤\95à¥\81ल à¤«à¤¼à¤¾à¤\87लà¤\82 $2}}",
+       "category-file-count": "{{PLURAL:$2|à¤\8f à¤¶à¥\8dरà¥\87णà¥\80 à¤®à¥\87à¤\82 à¤\96ालà¥\80 à¤¨à¤¿à¤®à¥\8dनलिà¤\96ित à¤«à¤\87ल à¤¬à¤¾à¥¤|à¤\8f à¤¶à¥\8dरà¥\87णà¥\80 à¤®à¥\87à¤\82 à¤¨à¤¿à¤®à¥\8dनलिà¤\96ित à¤\95à¥\81ल à¤«à¤¼à¤¾à¤\87लà¤\82 $2 {{PLURAL:$1|फाà¤\87ल|$1फाà¤\87लà¤\82}} à¤¬à¤¾à¤¡à¤¼à¥\87}}",
        "category-file-count-limited": "वर्तमान में निम्नलिखित {{PLURAL:$1|पन्ना|$1 पन्नां}} इ श्रेणीं में बाड़े।",
-       "listingcontinuesabbrev": "जारी",
+       "listingcontinuesabbrev": "जारी...",
        "index-category": "सूचीबद्ध पृष्ठ",
        "noindex-category": "असूचीबद्ध पृष्ठ",
        "broken-file-category": "टूटल फ़ाइल कड़ियन वाला पन्ना",
        "about": "बारे में",
        "article": "सामग्री पन्ना",
        "newwindow": "(नया विंडो में खोलीं)",
-       "cancel": "निरसà¥\8dत",
+       "cancel": "à¤\95à¥\88à¤\82सिल",
        "moredotdotdot": "अउर...",
        "morenotlisted": "इ सूची पूर्ण नइखे।",
        "mypage": "पन्ना",
-       "mytalk": "राà¤\89र à¤¬à¤¾à¤¤",
+       "mytalk": "हमार à¤¬à¤¾à¤¤à¤\9aà¥\80त à¤ªà¤¨à¥\8dना",
        "anontalk": "इ आइ॰पी खातिर वार्ता",
-       "navigation": "परिभà¥\8dरमण",
+       "navigation": "नà¥\87विà¤\97à¥\87शन",
        "and": "&#32;अउर",
        "qbfind": "खोज",
        "qbbrowse": "ब्राउज",
        "faqpage": "Project:साधारण सवाल",
        "actions": "क्रिया",
        "namespaces": "नामस्थान",
-       "variants": "सà¤\82सà¥\8dà¤\95रण",
+       "variants": "à¤\85à¤\89रà¥\80 à¤ªà¥\8dरà¤\95ार",
        "navigation-heading": "नेविगेशन मेनु",
        "errorpagetitle": "त्रुटी",
        "returnto": "जाईं $1 पर।",
        "history_short": "इतिहास",
        "updatedmarker": "हमार अन्तिम आगमन से बदलाव",
        "printableversion": "छापे लायक संस्करण",
-       "permalink": "सà¥\8dथायà¥\80 à¤²à¤¿à¤\82à¤\95",
+       "permalink": "सà¥\8dथायà¥\80 à¤\95ड़à¥\80",
        "print": "छापीं",
        "view": "देखीं",
        "view-foreign": "$1 पर देखीं",
        "talkpage": "इ पन्ना पर चर्चा करीं",
        "talkpagelinktext": "बात-चीत",
        "specialpage": "खास पन्ना",
-       "personaltools": "ब्यक्तिगत औजार",
+       "personaltools": "व्यक्तिगत औजार",
        "articlepage": "सामग्री पन्ना देखीं",
        "talk": "बात-चीत",
-       "views": "विà¤\9aारसà¥\82à¤\9aà¥\80",
-       "toolbox": "à¤\89पà¤\95रण",
+       "views": "राय",
+       "toolbox": "à¤\94à¤\9cार",
        "userpage": "प्रयोगकर्ता पन्ना देखीं",
        "projectpage": "परियोजना पन्ना देखीं",
        "imagepage": "फाइल पन्ना देखीं",
        "viewhelppage": "मदद पन्ना देखीं",
        "categorypage": "श्रेणी पन्ना देखीं",
        "viewtalkpage": "बात-चीत देखीं",
-       "otherlanguages": "à¤\85नà¥\8dय भाषा में",
-       "redirectedfrom": "($1 à¤¦à¥\8dवारा à¤ªà¥\81न: à¤¨à¤¿à¤°à¥\8dदà¥\87शित)",
+       "otherlanguages": "दà¥\81सरà¥\80 भाषा में",
+       "redirectedfrom": "($1 à¤¦à¥\8dवारा à¤\85नà¥\81पà¥\8dरà¥\87षित)",
        "redirectpagesub": "पुन: निर्देशित पन्ना",
-       "redirectto": "पà¥\81नà¤\83 à¤¨à¤¿à¤°à¥\8dदà¥\87शित:",
-       "lastmodifiedat": "$1 à¤\95à¥\87 $2 à¤ªà¤° à¤\88 à¤ªà¤¨à¥\8dना à¤ªà¤° à¤\85नà¥\8dतिम à¤¬à¤¾à¤° à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤­à¤\88ल।",
+       "redirectto": "à¤\85नà¥\81पà¥\8dरà¥\87षित:",
+       "lastmodifiedat": "$1 à¤\95à¥\87 $2 à¤ªà¤° à¤\8f à¤ªà¤¨à¥\8dना à¤ªà¤° à¤\85नà¥\8dतिम à¤¬à¥\87र à¤¬à¤¦à¤²à¤¾à¤µ à¤­à¤\87ल।",
        "viewcount": "ई पन्ना {{PLURAL:$1|एक|$1}} बार देखल गईल बा।",
        "protectedpage": "सुरक्षित पन्ना",
-       "jumpto": "à¤\85हिà¤\9cा जाईं:",
-       "jumptonavigation": "परिभà¥\8dरमण",
+       "jumpto": "à¤\87हाà¤\81 जाईं:",
+       "jumptonavigation": "नà¥\87विà¤\97à¥\87शन",
        "jumptosearch": "खोजीं",
        "view-pool-error": "क्षमा करीं, ई समय सर्वर पर बहुत ज्यादा लोड बढ़ गईल बा।\nई पन्ना के बहुते प्रयोगकर्ता लोग देखे के कोशिश कर रहल बानी।\nई पन्ना के फिर से देखे से पहिले कृपया कुछ देर तक इन्तजार करीं।\n\n$1",
        "generic-pool-error": "क्षमा करीं, ई समय सर्वर पर बहुत ज्यादा लोड बढ़ गईल बा।\nई संसाधन के बहुते प्रयोगकर्ता लोग देखे के कोशिश कर रहल बानी।\nई संसाधन तक पहुँच बनावे के कोशिश से पहिले कृपया कुछ देर तक इन्तजार करीं।",
        "aboutsite": "{{SITENAME}} के बारे में",
        "aboutpage": "Project:बारे में",
        "copyright": "उपलब्ध सामग्री $1 के अधीन उपलब्ध बा जब तक की अलग से उल्लेख ना करल गईल होखे ।",
-       "copyrightpage": "{{ns:project}}:लà¥\87à¤\96ाधिà¤\95ार",
-       "currentevents": "हाल के घटना",
-       "currentevents-url": "Project:हाल के घटना",
-       "disclaimers": "à¤\85सà¥\8dविà¤\95रण",
-       "disclaimerpage": "Project:सामानà¥\8dय à¤\85सà¥\8dविà¤\95रण",
-       "edithelp": "मदद à¤¸à¤®à¥\8dपादन",
+       "copyrightpage": "{{ns:project}}:à¤\95ापà¥\80राà¤\87à¤\9f à¤¸à¤¬",
+       "currentevents": "हाल के घटना सब",
+       "currentevents-url": "Project:हाल के घटना सब",
+       "disclaimers": "नामà¤\82à¤\9cà¥\82रà¥\80",
+       "disclaimerpage": "Project:सामानà¥\8dय à¤¨à¤¾à¤®à¤\82à¤\9cà¥\82रà¥\80",
+       "edithelp": "सà¤\82पादन à¤®à¥\87à¤\82 à¤®à¤¦à¤¦",
        "helppage-top-gethelp": "मदद",
        "mainpage": "मुख्य पन्ना",
        "mainpage-description": "मुख्य पन्ना",
        "policy-url": "Project:नीति",
-       "portal": "सामà¥\81दायिà¤\95 पन्ना",
-       "portal-url": "Project:सामà¥\81दायिà¤\95 à¤ªà¥\8bरà¥\8dà¤\9fल",
+       "portal": "सदसà¥\8dय-समाà¤\9c à¤®à¥\81à¤\96à¥\8dयपन्ना",
+       "portal-url": "Project:सदसà¥\8dय-समाà¤\9c à¤®à¥\81à¤\96à¥\8dयपनà¥\8dना",
        "privacy": "गोपनीयता नीति",
        "privacypage": "Project:गोपनीयता नीति",
        "badaccess": "अनुमति त्रुटी",
        "versionrequired": "मिडीयाविकी के संस्करण $1 के होखल जरुरी बा",
        "versionrequiredtext": "इ पन्ना के प्रयोग करे खातिर मीडियाविकी के $1 संस्करण ज़रूरी बा।\nदेखीं [[Special:Version|संस्करण पन्ना]]।",
        "ok": "ठिक",
-       "retrievedfrom": "\"$1\" à¤¸à¥\87 à¤²à¤¿à¤¯à¤² à¤\97à¤\88ल",
+       "retrievedfrom": "\"$1\" à¤¸à¥\87 à¤²à¤¿à¤¹à¤² à¤\97à¤\87ल",
        "youhavenewmessages": "रउआ लगे बा $1 ($2).",
        "youhavenewmessagesfromusers": "रउआ खातिर {{PLURAL:$3|एगो अन्य सदस्य|$3 अन्य सदस्यन}} के $1 बा। ($2)",
        "youhavenewmessagesmanyusers": "रउआ खातिर कई सदस्यन द्वारा $1 बा। ($2)",
        "newmessageslinkplural": "{{PLURAL:$1|एक नया सन्देश|999=नयका सन्देश}}",
        "newmessagesdifflinkplural": "पिछला {{PLURAL:$1|बदलाव|999=बदलावं}}",
        "youhavenewmessagesmulti": "रउआ लगे $1 पर नया सन्देश बा",
-       "editsection": "समà¥\8dपादन",
-       "editold": "समà¥\8dपादन",
+       "editsection": "सà¤\82पादन",
+       "editold": "सà¤\82पादन",
        "viewsourceold": "स्रोत देखीं",
-       "editlink": "समà¥\8dपादन",
+       "editlink": "सà¤\82पादन",
        "viewsourcelink": "स्रोत देखीं",
-       "editsectionhint": "समà¥\8dपादन à¤\96णà¥\8dड: $1",
+       "editsectionhint": "सà¤\82पादन à¤\96à¤\82ड: $1",
        "toc": "सामग्री",
        "showtoc": "देखाईं",
        "hidetoc": "छुपाईं",
        "feed-invalid": "गलत सब्स्क्रीप्शन फ़ीड प्रकार",
        "feed-unavailable": "संघ फ़ीड उपलब्ध नइखे",
        "site-rss-feed": "$1 आर एस एस फिड",
-       "site-atom-feed": "$1 à¤\8fà¤\9fम à¤«à¤¿ड",
+       "site-atom-feed": "$1 à¤\8fà¤\9fम à¤«à¥\80ड",
        "page-rss-feed": "\"$1\" आर एस एस फिड",
-       "page-atom-feed": "\"$1\" à¤\8fà¤\9fम à¤«à¤¿ड",
-       "red-link-title": "$1 (पनà¥\8dना à¤®à¥\8cà¤\9cà¥\82द à¤¨à¤\88खे)।",
+       "page-atom-feed": "\"$1\" à¤\8fà¤\9fम à¤«à¥\80ड",
+       "red-link-title": "$1 (पनà¥\8dना à¤®à¥\8cà¤\9cà¥\82द à¤¨à¤\87खे)।",
        "sort-descending": "अवरोही क्रम में",
        "sort-ascending": "आरोही क्रम में",
        "nstab-main": "पन्ना",
-       "nstab-user": "पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता पन्ना",
+       "nstab-user": "सदसà¥\8dय पन्ना",
        "nstab-media": "मिडीया पन्ना",
        "nstab-special": "विशेष पन्ना",
-       "nstab-project": "परियà¥\8bà¤\9cना पन्ना",
+       "nstab-project": "पà¥\8dरà¥\8bà¤\9cà¥\87à¤\95à¥\8dà¤\9f पन्ना",
        "nstab-image": "फाइल",
        "nstab-mediawiki": "सन्देश",
-       "nstab-template": "à¤\96ाँचा",
+       "nstab-template": "साँचा",
        "nstab-help": "मदद पन्ना",
        "nstab-category": "श्रेणी",
        "nosuchaction": "अईसन कौनो कार्रवाई नाहि",
        "cannotdelete-title": "\"$1\" पन्ना के हटावल नइखे जा सकत",
        "delete-hook-aborted": "हुक द्वारा हटायेके क्रिया बीचे में छोड़ल गईल।\nइ कउनो कारण नईखे बतवले।",
        "no-null-revision": "पन्ना \"$1\" खातिर नया अशक्त संशोधन ना बन सकल",
-       "badtitle": "à¤\96राब à¤¶à¥\80रà¥\8dषà¤\95",
-       "badtitletext": "रà¤\89à¤\86 à¤¦à¥\8dवारा à¤\85नà¥\81रà¥\8bधित à¤¶à¥\80रà¥\8dषà¤\95 à¤\85यà¥\8bà¤\97à¥\8dय, à¤\96़ालà¥\80 à¤¯à¤¾ à¤\97लत à¤\9cà¥\81ड़ल à¤\85à¤\82तर-भाषà¥\80य à¤¯à¤¾ à¤\85à¤\82तर-विà¤\95ि à¤¶à¥\80रà¥\8dषà¤\95 à¤¬à¤¾à¥¤\nà¤\87 à¤®à¥\87à¤\82 à¤\8fà¤\95 à¤¯à¤¾ à¤\8fà¤\95 à¤¸à¥\87 à¤\85धिà¤\95 à¤\85à¤\87सन à¤\95à¥\85रà¥\87à¤\95à¥\8dà¤\9fर à¤¹à¥\8b à¤¸à¤\95त à¤¬à¤¾ à¤\9cà¤\89न à¤¶à¥\80रà¥\8dषà¤\95 à¤®à¥\87à¤\82 à¤ªà¥\8dरयà¥\8bà¤\97 à¤¨à¤\87à¤\96à¥\87 à¤\95रल जा सकत।",
+       "badtitle": "à¤\96राब à¤\9fाà¤\87à¤\9fिल",
+       "badtitletext": "रà¤\89à¤\86 à¤¦à¥\8dवारा à¤\85नà¥\81रà¥\8bधित à¤¶à¥\80रà¥\8dषà¤\95 à¤\85यà¥\8bà¤\97à¥\8dय, à¤\96़ालà¥\80 à¤¯à¤¾ à¤\97लत à¤\9cà¥\81ड़ल à¤\85à¤\82तर-भाषà¥\80य à¤¯à¤¾ à¤\85à¤\82तर-विà¤\95ि à¤¶à¥\80रà¥\8dषà¤\95 à¤¬à¤¾à¥¤\nà¤\8f à¤®à¥\87à¤\82 à¤\8fà¤\95 à¤¯à¤¾ à¤\8fà¤\95 à¤¸à¥\87 à¤¢à¥\87र à¤\85à¤\87सन à¤\95à¥\85रà¥\87à¤\95à¥\8dà¤\9fर à¤¹à¥\8b à¤¸à¤\95त à¤¬à¤¾ à¤\9cवन à¤¶à¥\80रà¥\8dषà¤\95 à¤®à¥\87à¤\82 à¤ªà¥\8dरयà¥\8bà¤\97 à¤¨à¤\87à¤\96à¥\87 à¤\95à¤\87ल जा सकत।",
        "perfcached": "नीचे दिहल गइल डेटा कैशे मेमोरी से लिहल गइल बा, अतः हो सकता बा कि इ के पूर्ण अद्यतन ना भइल होखे। कैशे मेमोरी में अधिकतम {{PLURAL:$1|एक  नतीजा|$1 नतीजं}} उपलब्ध बाड़े।",
        "perfcachedts": "नीचे दिहल गइल डेटा कैशे मेमोरी से बा, आ एकर अंतिम अपडेट $1 के भइल रहल। कैश मेमोरी में अधिकतम {{PLURAL:$4|एक  नतीजा|$4 नतीजां}} उपलब्ध बा।",
        "querypage-no-updates": "इ पृष्ठ के अपडेट करल अयोग्य बा। अभी अहिजा के डाटा के ताज़ा नइखे करल जा सकत।",
        "welcomeuser": "राउर स्वागत बा, $1!",
        "welcomecreation-msg": "राउर खाता बना दिहल गईल बा।\nआपन [[Special:Preferences|{{SITENAME}} वरीयतां]] के बदले के ना भूलब।",
        "yourname": "सदस्यनाम:",
-       "userlogin-yourname": "सदसà¥\8dयनाम",
-       "userlogin-yourname-ph": "à¤\86पन à¤¸à¤¦à¤¸à¥\8dयनाम लिखीं",
+       "userlogin-yourname": "सदसà¥\8dयनाà¤\81व",
+       "userlogin-yourname-ph": "à¤\86पन à¤¸à¤¦à¤¸à¥\8dयनाà¤\81व लिखीं",
        "createacct-another-username-ph": "सदस्यनाम लिखीं",
        "yourpassword": "गुप्त शब्द",
        "userlogin-yourpassword": "गुप्तशब्द (पासवर्ड)",
        "userlogin-yourpassword-ph": "आपन गुप्तशब्द लिखीं",
-       "createacct-yourpassword-ph": "एगो गुप्तशब्द प्रवेश करीं",
+       "createacct-yourpassword-ph": "एगो गुप्तशब्द (पासवर्ड) प्रवेश करीं",
        "yourpasswordagain": "गुप्त-शब्द पुन:डालीं:",
-       "createacct-yourpasswordagain": "गुप्तशब्द के पुष्टि करीं",
-       "createacct-yourpasswordagain-ph": "गुप्तशब्द फेर से प्रवेश करीं",
+       "createacct-yourpasswordagain": "गुप्तशब्द (पासवर्ड) के पुष्टि करीं",
+       "createacct-yourpasswordagain-ph": "गुप्तशब्द (पासवर्ड) फेर से प्रवेश करीं",
        "remembermypassword": "इ ब्राउजर पर हमार प्रवेश याद रखीं (अधिकतम $1 {{PLURAL:$1|दिन|दिनं}} तक)",
-       "userlogin-remembermypassword": "हमà¤\95à¥\87 à¤ªà¥\8dरवà¥\87शित à¤°à¤¹à¥\87 à¤¦à¤¿ं",
+       "userlogin-remembermypassword": "हमà¤\95à¥\87 à¤²à¥\89à¤\97 à¤\87न à¤°à¤¹à¥\87 à¤¦à¥\80ं",
        "userlogin-signwithsecure": "सुरक्षित कनेक्शन के प्रयोग करीं",
        "yourdomainname": "राउर डोमेनः",
        "password-change-forbidden": "रउआ इ विकी पर गुप्तशब्द नइखीं बदल सकत।",
        "externaldberror": "या त प्रमाणिकरण डाटाबेस में भइल बा या फिर रउआ के आपन बाह्य खाता अपडेट करे के अनुमति नइखे।",
-       "login": "à¤\96ाता à¤®à¥\87à¤\82 à¤ªà¥\8dरवà¥\87श",
+       "login": "लà¥\89à¤\97 à¤\87न",
        "nav-login-createaccount": "खाता प्रवेश / खाता बनाईं",
        "userlogin": "खाता प्रवेश / खाता बनाईं",
        "userloginnocreate": "खाता में प्रवेश",
        "logout": "खाता से बाहर",
        "userlogout": "खाता से बाहर",
        "notloggedin": "खाता में प्रवेश नईखीं भईल",
-       "userlogin-noaccount": "à¤\95ा à¤\8fà¤\97à¥\8b à¤\96ाता à¤¨à¤\88खे?",
+       "userlogin-noaccount": "à¤\95ा à¤\8fà¤\97à¥\8b à¤\96ाता à¤¨à¤\87खे?",
        "userlogin-joinproject": "{{SITENAME}} से जुड़ीं",
        "nologin": "का एगो खाता नईखे? $1.",
        "nologinlink": "एगो खाता बनाईं",
        "gotaccountlink": "खाता में प्रवेश",
        "userlogin-resetlink": "का रउआ आपन प्रवेश जानकारी भूला गइल बानी?",
        "userlogin-resetpassword-link": "आपन गुप्तशब्द भूला गईनी का?",
-       "userlogin-helplink2": "à¤\96ाता à¤ªà¥\8dरवà¥\87श à¤¸à¤¾à¤¥ मदद",
+       "userlogin-helplink2": "लà¥\89à¤\97 à¤\87न à¤®à¥\87à¤\82 मदद",
        "userlogin-loggedin": "रउआ {{GENDER:$1|$1}} के रूप में पहिले से लॉग्ड इन बानीं।\nकौनो अन्य सदस्य के रूप में लॉग इन करे खातिर निम्नलिखित फ़ॉर्म के प्रयोग करीं।",
        "userlogin-createanother": "एगो दूसर खाता बनाईं",
        "createacct-emailrequired": "ई-मेल पता",
        "createacct-reason": "कारण",
        "createacct-reason-ph": "रउआ एगो अन्य खाता काहे बना रहल बानी",
        "createacct-captcha": "सुरक्षा जाँच",
-       "createacct-imgcaptcha-ph": "उपर लिखल पाठ्य लिखीं",
+       "createacct-imgcaptcha-ph": "उपर लिखल पाठ लिखीं",
        "createacct-submit": "आपन खाता बनाईं",
        "createacct-another-submit": "एगो दोसर खाता बनाईं",
        "createacct-benefit-heading": "{{SITENAME}} रउआ जइसन लोगन द्वारा बनावल गईल बा।",
-       "createacct-benefit-body1": "{{PLURAL:$1|समà¥\8dपादन}}",
+       "createacct-benefit-body1": "{{PLURAL:$1|सà¤\82पादन}}",
        "createacct-benefit-body2": "{{PLURAL:$1|पन्ना}}",
        "createacct-benefit-body3": "हाल के {{PLURAL:$1|योगदानकर्ता}}",
        "badretype": "रउआ जौन गुप्त शब्द डालत बानी उ नईखे मेल खात।",
        "suspicious-userlogout": "राउर खाता से बाहर जाये के अनुरोध अस्वीकृत कर दिहल गइल बा काहे कि  अइसन लग रहल बा कि इ कउनो खराब ब्राउज़र या कैश करे वाली प्रॉक्सी द्वारा भेजल गईल रहल।",
        "createacct-another-realname-tip": "असली नाम वैकल्पिक बा।\nयदि रउआ इ के उपलब्ध करावे के चुनत बानी त, एकर प्रयोग सदस्य के ओकरा काम के अधिकार देवे खातिर होखी।",
        "pt-login": "खाता में प्रवेश",
-       "pt-login-button": "à¤\96ाता à¤®à¥\87à¤\82 à¤ªà¥\8dरवà¥\87श",
+       "pt-login-button": "लà¥\89à¤\97 à¤\87न",
        "pt-createaccount": "खाता बनाईं",
-       "pt-userlogout": "à¤\96ाता à¤¸à¥\87 à¤¬à¤¾à¤¹à¤°",
+       "pt-userlogout": "लà¥\89à¤\97 à¤\86à¤\89à¤\9f",
        "php-mail-error-unknown": "PHP के mail() फ़ंक्शन में अज्ञात त्रुटि बा।",
        "user-mail-no-addy": "बिना कउनो ई-मेल पता के ई-मेल भेजे के प्रयत्न भईल बा।",
        "user-mail-no-body": "एगो खाली अथवा बहुत छोट ई-मेल भेजे के प्रयत्न भईल बा।",
        "resetpass-expired": "राउर पासवर्ड की वैधता अवधि समाप्त हो चुकल बा। कृपया लॉग इन करे खातिर एगो नया पासवर्ड सेट करीं।",
        "resetpass-expired-soft": "राउर गुप्तशब्द अमान्य हो चुकल बा इ के पुनः स्थापित करे के पड़ी। कृपया अभी एगो नया गुप्तशब्द चुनीं या \"{{int:resetpass-submit-cancel}}\" पर बाद में पुनः स्थापित कर सकत बानी।",
        "resetpass-validity-soft": "राउर पासवर्ड मान्य नईखे: $1 \n\nकृपया अब एक नया पासवर्ड चुनीं, या उ के बाद में पुनर्स्थापित करे खातिर \"{{int:resetpass-submit-cancel}}\" पर क्लिक करीं।",
-       "passwordreset": "गुप्तशब्द रिसेट करीं",
+       "passwordreset": "गुप्तशब्द (पासवर्ड) रिसेट करीं",
        "passwordreset-text-one": "आपन गुप्तशब्द के पुनर्स्थापित करे खातिर इ फॉर्म भरीं।",
        "passwordreset-text-many": "{{PLURAL:$1|ईमेल द्वारा अस्थाई पासवर्ड पावे खातिर निम्न में से कउनो एगो स्थान भरीं।}}",
        "passwordreset-legend": "गुप्तशब्द रिसेट करीं",
        "resettokens-watchlist-token": "[[Special:Watchlist|आपके ध्यानसूची के पन्नन में बदलावसभ]] के वेब फ़ीड (Atom/RSS) हेतु टोकन",
        "resettokens-done": "टोकन रीसेट हो चुकल बा।",
        "resettokens-resetbutton": "चुनल गइल टोकन रीसेट करीं",
-       "bold_sample": "मà¥\8bà¤\9f à¤ªà¤¾à¤ à¥\8dय",
-       "bold_tip": "मà¥\8bà¤\9f à¤ªà¤¾à¤ à¥\8dय",
-       "italic_sample": "à¤\87à¤\9fालिà¤\95 à¤ªà¤¾à¤ à¥\8dय",
-       "italic_tip": "à¤\87à¤\9fालिà¤\95 à¤ªà¤¾à¤ à¥\8dय",
-       "link_sample": "à¤\95ड़à¥\80 à¤¶à¥\80रà¥\8dषà¤\95",
-       "link_tip": "à¤\86à¤\82तरिà¤\95 कड़ी",
-       "extlink_sample": "http://www.example.com à¤\95ड़à¥\80 à¤¶à¥\80रà¥\8dषà¤\95",
-       "extlink_tip": "बाहरà¥\80 à¤\95ड़à¥\80 (à¤\89पसरà¥\8dà¤\97 http:// जरुर लगाईं)",
-       "headline_sample": "शिरà¥\8dषà¤\95 à¤ªà¤¾à¤ à¥\8dय",
-       "headline_tip": "दà¥\8dवितà¥\80य-शà¥\8dरà¥\87णà¥\80 à¤\95à¥\87 à¤¶à¥\80रà¥\8dषà¤\95",
-       "nowiki_sample": "à¤\85पà¥\8dरारà¥\82पित à¤ªà¤¾à¤ à¥\8dय à¤\85हिà¤\9cा डालीं",
-       "nowiki_tip": "विà¤\95ि à¤ªà¥\8dरारà¥\82पण à¤\85नदà¥\87à¤\96ा करीं",
+       "bold_sample": "मà¥\8bà¤\9f à¤\85à¤\9aà¥\8dà¤\9bर à¤®à¥\87à¤\82",
+       "bold_tip": "मà¥\8bà¤\9f à¤\85à¤\9aà¥\8dà¤\9bर à¤®à¥\87à¤\82",
+       "italic_sample": "तिरà¤\9bा à¤ªà¤¾à¤ ",
+       "italic_tip": "तिरà¤\9bा à¤ªà¤¾à¤ ",
+       "link_sample": "à¤\95ड़à¥\80 à¤\9fाà¤\87à¤\9fिल",
+       "link_tip": "à¤\85à¤\82दरà¥\82नà¥\80 कड़ी",
+       "extlink_sample": "http://www.example.com à¤\95ड़à¥\80 à¤\9fाà¤\87à¤\9fिल",
+       "extlink_tip": "बाहरà¥\80 à¤\95ड़à¥\80 (शà¥\81रà¥\82 à¤®à¥\87à¤\82 http:// जरुर लगाईं)",
+       "headline_sample": "हà¥\87डिà¤\82à¤\97 à¤ªà¤¾à¤ ",
+       "headline_tip": "दà¥\81सरा à¤²à¥\87वल à¤\95à¥\87 à¤¹à¥\87डिà¤\82à¤\97",
+       "nowiki_sample": "बिना-फà¥\89रमà¥\87à¤\9f à¤\95à¤\87ल à¤ªà¤¾à¤  à¤\87हाà¤\81 डालीं",
+       "nowiki_tip": "विà¤\95ि à¤«à¥\89रमà¥\87à¤\9fिà¤\82à¤\97 à¤\95à¥\87 à¤\85नदà¥\87à¤\96à¥\80 करीं",
        "image_sample": "उदाहरण.jpg",
-       "image_tip": "à¤\9cà¥\81ड़ल(à¤\8fमà¥\8dबà¥\87ड à¤\95रल) फाइल",
+       "image_tip": "समाहित (à¤\8fमà¥\8dबà¥\87ड à¤\95à¤\87ल) फाइल",
        "media_sample": "उदाहरण.ogg",
-       "media_tip": "फाà¤\88ल à¤²à¤¿à¤\82à¤\95",
-       "sig_tip": "timestamp के साथ राउर हस्ताक्षर",
-       "hr_tip": "à¤\95à¥\8dषà¥\88तिà¤\9c à¤°à¥\87à¤\96ा (कम प्रयोग करीं)",
-       "summary": "साराà¤\82श:",
+       "media_tip": "फाà¤\87ल à¤\95ड़à¥\80",
+       "sig_tip": "समय मोहर की संघे राउर दस्खत",
+       "hr_tip": "पड़à¥\80 à¤²à¤\95à¥\80र (कम प्रयोग करीं)",
+       "summary": "à¤\9bà¥\8bà¤\9f à¤µà¤¿à¤µà¤°à¤£ (साराà¤\82श):",
        "subject": "विषय/शिर्षक:",
        "minoredit": "छोट परिवर्तन",
-       "watchthis": "à¤\88 à¤ªà¤¨à¥\8dना à¤§à¥\8dयानसूची में डालीं",
-       "savearticle": "पनà¥\8dना à¤¸à¥\81रà¤\95à¥\8dषित à¤\95रीं",
+       "watchthis": "धियानसूची में डालीं",
+       "savearticle": "पनà¥\8dना à¤¸à¤¹à¥\87à¤\9cीं",
        "preview": "पूर्वावलोकन",
-       "showpreview": "पà¥\82रà¥\8dवावलà¥\8bà¤\95न देखाईं",
+       "showpreview": "नमà¥\82ना देखाईं",
        "showdiff": "परिवर्तन देखाईं",
        "blankarticle": "<strong>चेतावनी:</strong> आप एगो खाली पन्ना के बनावे जा रहल बानी।\nयदि आप \"{{int:savearticle}}\" के फेर से दबायेब त पन्ना बिना कउनो सामग्री के बन जाई।",
-       "anoneditwarning": "<strong>à¤\9aà¥\87तावनà¥\80:</strong> à¤°à¤\89à¤\86 à¤\86पन à¤\96ाता à¤®à¥\87à¤\82 à¤ªà¥\8dरवà¥\87श à¤¨à¤\88à¤\96à¥\80à¤\82 à¤\95à¤\88लà¥\87। à¤¯à¤¦à¤¿ à¤°à¤\89à¤\86 à¤\95वनà¥\8b à¤¬à¤¦à¤²à¤¾à¤µ à¤\95रत à¤¬à¤¾à¤¨à¥\80 à¤¤ à¤°à¤¾à¤\89र à¤\86à¤\88पà¥\80 à¤ªà¤¤à¤¾ à¤\96à¥\81लà¥\87à¤\86म à¤¦à¤¿à¤\96ाà¤\88 à¤¦à¥\80। à¤¯à¤¦à¤¿ à¤°à¤\89à¤\86 <strong>[$1 à¤²à¥\89à¤\97 à¤\87न]</strong> à¤¯à¤¾ <strong>[$2 à¤¨à¤¯à¤¾ à¤\96ाता à¤¬à¤¨à¤¾à¤¯à¥\87ब]</strong> à¤¤, à¤\85नà¥\8dय à¤¸à¥\81विधावन à¤\95à¥\87 à¤¸à¤¾à¤¥ à¤°à¤¾à¤\89र à¤¸à¤®à¥\8dपादन à¤\95à¥\87 à¤¶à¥\8dरà¥\87य à¤°à¤¾à¤\89र à¤¸à¤¦à¤¸à¥\8dयनाम à¤ªà¤° à¤\9aल à¤\9cाà¤\88।",
+       "anoneditwarning": "<strong>à¤\9aà¥\87तावनà¥\80:</strong> à¤°à¤\89à¤\86 à¤\86पन à¤\96ाता à¤®à¥\87à¤\82 à¤ªà¥\8dरवà¥\87श à¤¨à¤\87à¤\96à¥\80à¤\82 à¤\95à¤\87लà¥\87। à¤\85à¤\97र à¤°à¤\89à¤\86 à¤\95à¥\8cनà¥\8bà¤\82 à¤¬à¤¦à¤²à¤¾à¤µ à¤\95रत à¤¬à¤¾à¤¨à¥\80 à¤¤ à¤°à¤¾à¤\89र à¤\86à¤\88पà¥\80 à¤ªà¤¤à¤¾ à¤¦à¤°à¥\8dà¤\9c à¤¹à¥\8bà¤\88। à¤\85à¤\97र à¤°à¤\89à¤\86 <strong>[$1 à¤²à¥\89à¤\97 à¤\87न]</strong> à¤¯à¤¾ <strong>[$2 à¤¨à¤¯à¤¾ à¤\96ाता à¤¬à¤¨à¤¾à¤\87ब]</strong> à¤¤, à¤\85à¤\89रà¥\80 à¤¸à¥\81बिधा à¤¸à¤¬ à¤\95à¥\80 à¤¸à¤\82à¤\98à¥\87 à¤°à¤¾à¤\89र à¤¸à¤\82पादन à¤\95à¥\87 à¤¶à¥\8dरà¥\87य à¤­à¥\80 à¤°à¤¾à¤\89र à¤¸à¤¦à¤¸à¥\8dय-नाà¤\81व à¤¸à¥\87 à¤\9cà¥\81ड़ à¤\9cाà¤\88!",
        "anonpreviewwarning": "''रउआ खाता में प्रवेश नईखीं भईल। सुरक्षित करेब त ई पन्ना के सम्पादन इतिहास पर राउर आई पी पता दर्ज हो जाई।\"",
        "missingsummary": "'''स्मरणपत्र:'''रउआ एगो सारांश के सम्पादन नईखीं प्रदान कईले। अगर रउआ \"फिर से सुरक्षित करीं\" पर क्लिक करेब, त राउर सम्पादन बिना एगो सारांश के सुरक्षित हो जाई।",
        "selfredirect": "<strong>चेतावनी:</strong> आप खुद के इ पन्ना पर पुनः निर्देशित कर रहल बानी।\nआप अनुप्रेषित खातिर गलत लक्ष्य निर्दिष्ट हो सकत बानी, या आप के द्वारा गलत पन्ना के संपादन हो सकत बा।\nआप यदि फेर से \"{{int:savearticle}}\" क्लिक करत बानी त, पुन: निर्देषण ओइसहु बनावल जाई।",
        "nosuchsectiontitle": "खण्ड ना मिल सकल।",
        "nosuchsectiontext": "आप एगो अइसन अनुभाग के सम्पादन करे के प्रयत्न कर रहल बानी जवन अस्तित्व में नइखे।\nसंभव बा कि जब आप पन्ना पढत या देखत रहनी तवने घड़ी उ के अपनी जगह से हिलावल गइल होखे या हटा दिहल गईल होई।",
        "loginreqtitle": "खाता में प्रवेश जरुरी बा",
-       "loginreqlink": "à¤\96ाता à¤®à¥\87à¤\82 à¤ªà¥\8dरवà¥\87श",
+       "loginreqlink": "लà¥\89à¤\97 à¤\87न",
        "loginreqpagetext": "रउआ अन्य पन्ना देखे खातिर $1 करे के पड़ी।",
        "accmailtitle": "गुप्त-शब्द भेजा गईल",
        "accmailtext": "[[User talk:$1|$1]] खातिर एगो यंत्र जनित गुप्तशब्द $2 के भेज दिहल गइल बा। खाता में प्रवेश कइला के बाद इ '''[[Special:ChangePassword|गुप्तशब्द बदल लीं]]'' वाला पन्ना पर बदलल जा सकत बा।",
        "newarticle": "(नया)",
-       "newarticletext": "रà¤\89à¤\86 à¤\8fà¤\97à¥\8b à¤\85à¤\87सन à¤²à¤¿à¤\82à¤\95 à¤\95à¥\87 à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤\85नà¥\81सरण à¤\95à¤\87लà¥\87 à¤¬à¤¾à¤¨à¥\80 à¤\9cà¤\89न à¤\85भà¥\80 à¤¤à¤\95 à¤\89पलबà¥\8dध à¤¨à¤\87à¤\96à¥\87।\nपनà¥\8dना à¤¬à¤¨à¤¾à¤µà¥\87 à¤\96ातिर, à¤¨à¥\80à¤\9aà¥\87 à¤\95à¥\87 à¤¬à¤¾à¤\95स à¤®à¥\87à¤\82 à¤\9fाà¤\88प à¤\95रà¥\87 à¤\95à¥\87 à¤¶à¥\81रà¥\81 à¤\95रà¥\80à¤\82 (à¤\9cà¥\8dयादा à¤\9cानà¤\95ारà¥\80 à¤\96ातिर à¤¦à¥\87à¤\96à¥\80à¤\82 [$1 à¤®à¤¦à¤¦ à¤ªà¤¨à¥\8dना])।\nयदि à¤°à¤\89à¤\86 à¤\85हिà¤\9cा à¤\97लतà¥\80 à¤¸à¥\87 à¤\86 à¤\97à¤\88ल à¤¬à¤¾à¤¨à¥\80 à¤¤, à¤\86पन à¤¬à¥\8dराà¤\89à¤\9cर à¤\95à¥\87 '''back''' (बà¥\88à¤\95) à¤¬à¤\9fन à¤¦à¤¬à¤¾à¤\88à¤\82",
+       "newarticletext": "रà¤\89à¤\86 à¤\8fà¤\97à¥\8b à¤\85à¤\87सन à¤\95ड़à¥\80 à¤\95à¥\87 à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤\85नà¥\81सरण à¤\95à¤\87लà¥\87 à¤¬à¤¾à¤¨à¥\80 à¤\9cवन à¤\85भà¥\80 à¤¤à¤\95 à¤\89पलबà¥\8dध à¤¨à¤\87à¤\96à¥\87।\nपनà¥\8dना à¤¬à¤¨à¤¾à¤µà¥\87 à¤\96ातिर, à¤¨à¥\80à¤\9aà¥\87 à¤\95à¥\87 à¤¬à¤¾à¤\95स à¤®à¥\87à¤\82 à¤\9fाà¤\87प à¤\95रà¥\87 à¤\95à¥\87 à¤¶à¥\81रà¥\81 à¤\95रà¥\80à¤\82 (à¤\9cà¥\8dयादा à¤\9cानà¤\95ारà¥\80 à¤\96ातिर à¤¦à¥\87à¤\96à¥\80à¤\82 [$1 à¤®à¤¦à¤¦ à¤ªà¤¨à¥\8dना])।\nयदि à¤°à¤\89à¤\86 à¤\85हिà¤\9cा à¤\97लतà¥\80 à¤¸à¥\87 à¤\86 à¤\97à¤\87ल à¤¬à¤¾à¤¨à¥\80 à¤¤, à¤\86पन à¤¬à¥\8dराà¤\89à¤\9cर à¤\95à¥\87 '''बà¥\88à¤\95''' (Back) à¤¬à¤\9fन à¤¦à¤¬à¤¾à¤\88à¤\82!",
        "anontalkpagetext": "----''इ वार्ता पन्ना उन अनाम सदस्यन खातिर बा जिन्हन के या त खाता नइखे खोलल गइल या खाता के प्रयोग नइखन करत।\nएहि खातिर उन्हन के पहिचान खातिर हमनी के उनकर आइ॰पी पता के प्रयोग करे के पड़ेला।\nआइ॰पी पता कई सदस्यन खातिर साझा हो सकत बा।\nयदि आप एगो अनाम सदस्य बानी अउर आपके लागत बा कि आपके बारे में अप्रासंगिक टीका टिप्पणी करल गइल बा त कृपया [[Special:UserLogin/signup|सदस्यता लिहीं]] या [[Special:UserLogin|सत्रारंभ करीं]] ताकि अन्य अनाम सदस्यन में से आपके अलग से पहिचानल जा सके।''",
-       "noarticletext": "à¤\88 à¤ªà¤¨à¥\8dना à¤®à¥\87 à¤\85भà¥\80 à¤\95à¤\89नà¥\8b à¤¸à¤¾à¤®à¤\97à¥\8dरà¥\80 à¤¨à¤\88à¤\96à¥\87 à¤¬à¤¾ à¥¤\nरà¤\89à¤\86 à¤\85नà¥\8dय à¤ªà¤¨à¥\8dना à¤®à¥\87à¤\82 [[Special:Search/{{PAGENAME}}|à¤\88 à¤¶à¥\80रà¥\8dषà¤\95 à¤\95à¥\87 à¤\96à¥\8bà¤\9c]] à¤\95र à¤¸à¤\95त à¤¬à¤¾à¤¨à¥\80à¤\82",
-       "noarticletext-nopermission": "à¤\88 à¤ªà¤¨à¥\8dना à¤®à¥\87 à¤\85भà¥\80 à¤\95à¤\89नà¥\8b à¤¸à¤¾à¤®à¤\97à¥\8dरà¥\80 à¤¨à¤\88à¤\96à¥\87।\nरà¤\89à¤\86 à¤\85नà¥\8dय à¤ªà¤¨à¥\8dना à¤®à¥\87à¤\82 [[Special:Search/{{PAGENAME}}|à¤\87 à¤¶à¥\80रà¥\8dषà¤\95 à¤\95à¥\87 à¤\96à¥\8bà¤\9c]] à¤\95र à¤¸à¤\95त à¤¬à¤¾à¤¨à¥\80à¤\82,\nया <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} à¤¯à¤¾ à¤¸à¤\82बà¤\82धित à¤²à¥\89à¤\97 à¤\96à¥\8bà¤\9c à¤¸à¤\95त à¤¬à¤¾à¤¨à¥\80]</span>, à¤ªà¤°à¤¨à¥\8dतà¥\81 à¤°à¤\89à¤\86 à¤\87 à¤ªà¤¨à¥\8dना à¤¬à¤¨à¤¾à¤µà¥\87 à¤\95à¥\87 à¤\85नà¥\81मति नइखे।",
+       "noarticletext": "à¤\8f à¤ªà¤¨à¥\8dना à¤®à¥\87 à¤\85भà¥\80 à¤²à¥\87 à¤\95à¥\8cनà¥\8bà¤\82 à¤¸à¤¾à¤®à¤\97à¥\8dरà¥\80 à¤¨à¤\87à¤\96à¥\87। \nरà¤\89à¤\86 à¤¦à¥\81सरा à¤ªà¤¨à¥\8dना à¤®à¥\87à¤\82 [[Special:Search/{{PAGENAME}}|à¤\8f à¤\9fाà¤\87à¤\9fिल à¤\95à¥\87 à¤\96à¥\8bà¤\9c]] à¤\95र à¤¸à¤\95त à¤¬à¤¾à¤¨à¥\80à¤\82।",
+       "noarticletext-nopermission": "à¤\8f à¤ªà¤¨à¥\8dना à¤®à¥\87 à¤\85भà¥\80 à¤\95à¥\8cनà¥\8bà¤\82 à¤¸à¤¾à¤®à¤\97à¥\8dरà¥\80 à¤¨à¤\87à¤\96à¥\87।\nरà¤\89à¤\86à¤\81 à¤¦à¥\81सरा à¤ªà¤¨à¥\8dना à¤®à¥\87à¤\82 [[Special:Search/{{PAGENAME}}|à¤\8f à¤\9fाà¤\87à¤\9fिल à¤\95à¥\87 à¤\96à¥\8bà¤\9c]] à¤\95र à¤¸à¤\95त à¤¬à¤¾à¤¨à¥\80à¤\82,\nया <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} à¤¯à¤¾ à¤¸à¤\82बà¤\82धित à¤²à¥\89à¤\97 à¤\96à¥\8bà¤\9c à¤¸à¤\95त à¤¬à¤¾à¤¨à¥\80]</span>, à¤¬à¤¾à¤\95à¥\80 à¤°à¤\89à¤\86 à¤\95à¥\87 à¤\88 à¤ªà¤¨à¥\8dना à¤¬à¤¨à¤¾à¤µà¥\87 à¤\95à¥\87 à¤ªà¤°à¤®à¥\80शन नइखे।",
        "missing-revision": "\"{{FULLPAGENAME}}\" पन्ना के संशोधन #$1 उपलब्ध नइखे।\n\nसाधारण रुप से इ एगो हटावल गइल पन्ना के पुरान लिंक पर क्लिक कइला से होखेला।\nअधिक जानकारी खातिर आप [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} हटावे के लॉग] देख सकत बानी।",
        "userpage-userdoesnotexist": "सदस्य खाता \"$1\" पंजीकृत नइखे।\nकृपया जाँच लीं कि आप इ पन्ना संपादित अथवा निर्मित करे के चाहत बानी कि ना।",
        "userpage-userdoesnotexist-view": "सदस्य खाता \"$1\" पंजीकृत नईखे भईल।",
        "note": "'''सूचना:'''",
        "previewnote": "'''याद रखीं, इ एगो झलक मात्र हो।'''\nराउर बदलाव अभी तक सुरक्षित नईखे करल गईल!",
        "continue-editing": "संपादन क्षेत्र में जाईं",
-       "editing": "$1 à¤¸à¤®à¥\8dपादन",
+       "editing": "$1 à¤¸à¤\82पादन",
        "creating": "$1 बनावे जा रहल बानी",
-       "editingsection": "$1 à¤¸à¤®à¥\8dपादन (à¤\85नà¥\81भाà¤\97)",
+       "editingsection": "$1 à¤¸à¤\82पादन (à¤\96à¤\82ड)",
        "editingcomment": "$1 सम्पादन (नया अनुभाग)",
        "editconflict": "संपादन अंतर्विरोध: $1",
        "yourtext": "राउर पाठ्य",
        "storedversion": "सुरक्षित करल गईल संशोधन",
        "yourdiff": "अंतर",
-       "templatesused": "à¤\87 à¤ªà¤¨à¥\8dना à¤ªà¤° à¤ªà¥\8dरयà¥\81à¤\95à¥\8dत {{PLURAL:$1|à¤\96ाà¤\81à¤\9aा|à¤\96ाँचा कुल}}:",
+       "templatesused": "à¤\8f à¤ªà¤¨à¥\8dना à¤ªà¤° à¤\87सà¥\8dतà¥\87माल {{PLURAL:$1|साà¤\81à¤\9aा|साँचा कुल}}:",
        "templatesusedpreview": "इ पुर्वावलोकन में प्रयुक्त {{PLURAL:$1|खाँचा|खाँचा कुल}}:",
-       "template-protected": "(सà¤\82रक्षित)",
-       "template-semiprotected": "(à¤\85रà¥\8dध-सुरक्षित)",
-       "hiddencategories": "à¤\87 à¤ªà¤¨à¥\8dना {{PLURAL:$1|1 à¤\9bà¥\81पल à¤¶à¥\8dरà¥\87णà¥\80|$1 à¤\9bà¥\81पल श्रेणीसभ}} के सदस्य बा:",
+       "template-protected": "(सà¥\81रक्षित)",
+       "template-semiprotected": "(à¤\95à¥\81à¤\9b-सुरक्षित)",
+       "hiddencategories": "à¤\88 à¤ªà¤¨à¥\8dना {{PLURAL:$1|1 à¤\9bिपल à¤¶à¥\8dरà¥\87णà¥\80|$1 à¤\9bिपल श्रेणीसभ}} के सदस्य बा:",
        "nocreate-loggedin": "नया पन्ना बनावे रउआ अधिकार नइखे।",
        "sectioneditnotsupported-title": "अनुभाग सम्पादन समर्थित नइखे",
        "sectioneditnotsupported-text": "इ पन्ना पर अनुभाग सम्पादन समर्थित नइखे",
        "permissionserrors": "अनुमति त्रुटी",
        "permissionserrorstext": "निम्नलिखित {{PLURAL:$1|कारण|कारणन}} के चलते आपके अइसन करे के अनुमति नइखे:",
+       "permissionserrorstext-withaction": "नीचे दिहल {{PLURAL:$1|कारण|कारणन}} से रउआँ के $2 के परमीशन नइखे:",
+       "moveddeleted-notice": "ई पन्ना हटा दिहल गइल बा।\nसंदर्भ खातिर हटावे आ स्थानांतरण के लॉग नीचे दिहल जात बाटे।",
        "log-fulllog": "पूरा लॉग देखीं",
        "edit-conflict": "संपादन अंतर्विरोध",
        "postedit-confirmation-created": "पन्ना बना दिहल गईल।",
        "post-expand-template-inclusion-warning": "'''चेतावनी:''' खाँचा जोड़े के सीमा पार हो चुकल बा।\nकुछ खाँचा ना जोड़ल जाई।",
        "post-expand-template-inclusion-category": "अइसन पृष्ठ जे पर साँचा जोडे के सीमा पार हो गइल बा",
        "cantcreateaccounttitle": "खाता खुल नईखे सकत",
+       "viewpagelogs": "ए पन्ना खातिर लॉग कुल देखीं",
        "nohistory": "ए पन्ना के कौनों संपादन इतिहास नइखे",
        "currentrev": "सबसे नया बदलाव",
        "currentrev-asof": "$1 ले भइल नया बदलाव",
-       "revisionasof": "$1 à¤\95à¥\87 à¤°à¥\81प à¤®à¥\87à¤\82 à¤¸à¤\82शà¥\8bधन",
+       "revisionasof": "$1 à¤²à¥\87 à¤­à¤\87ल à¤¨à¤¯à¤¾ à¤¬à¤¦à¤²à¤¾à¤µ",
        "revision-info": "{{GENDER:$6|$2}}$7 के द्वारा $1 के संशोधन",
        "previousrevision": "← पुरान संशोधन",
        "nextrevision": "नया संशोधन →",
        "rev-deleted-user-contribs": "[प्रयोगकर्ता नाम आ चाहे आइ पी पता हटा दिहल गईल बा - योगदान से सम्पादन छुप गईल बा]",
        "rev-deleted-text-permission": "ई पन्ना के संशोधन '''मिटा'''' दिहल गईल बा।\nमेटावल जानकारी [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} डिलेशन लॉग] में मिली।",
        "rev-suppressed-text-permission": "ए पन्ना के बदलाव<strong>दबा दिहल गइल बा</strong>।\nबिस्तृत जानकारी [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} दबावल चीज के लॉग] पर मिल जाई।",
-       "rev-delundel": "दिà¤\96ाà¤\88à¤\82/à¤\9bà¥\81पाईं",
+       "rev-delundel": "दà¥\87à¤\96ाà¤\88à¤\82/à¤\9bिपाईं",
        "rev-showdeleted": "देखाईं",
        "revdelete-show-file-submit": "जी",
        "revdelete-hide-text": "संशोधन पाठ्य",
        "revdelete-reasonotherlist": "अन्य कारण",
        "revdelete-edit-reasonlist": "हटावे के कारण बदलीं",
        "revdelete-offender": "संशोधन सम्पादक:",
+       "mergehistory": "पन्नवन के इतिहास विलय करीं",
+       "mergehistory-box": "दू गो पन्नवन के अवतरण विलय करीं",
        "mergehistory-from": "स्रोत पन्ना:",
+       "mergehistory-into": "लक्ष्य पन्ना:",
+       "mergehistory-list": "विलय जोग्य संपादन इतिहास",
+       "mergehistory-submit": "अवतरण विलय करीं",
+       "mergehistory-empty": "कौनों अवतरण विलय नइखे कइल जा सकत।",
+       "mergehistory-success": " [[:$1]] के $3 {{PLURAL:$3|अवतरण|अवतरण सभ}} सफलता से [[:$2]] में विलय भइल।",
+       "mergehistory-fail": "इतिहास विलय करे में अक्षम, पन्ना आ एकर टाइम पैरामीटर चेक करीं।",
        "mergehistory-reason": "कारण:",
        "revertmerge": "अलग करीं",
        "mergelogpagetext": "एक पन्ना इतिहास के दुसर पन्ना इतिहास में तुरंत विलय भइले के एगो सूची नीचे दिहल बा।",
        "history-title": "''$1'' के संशोधन इतिहास",
-       "lineno": "पंक्ति $1:",
+       "difference-title": "\"$1\" की अवतरण में अंतर",
+       "lineno": "लाइन $1:",
        "compareselectedversions": "चुनल गईल संशोधन में अन्तर देखीं",
        "showhideselectedversions": "चुनल गईल संशोधन दिखाईं/छुपाईं",
-       "editundo": "पूर्ववत",
+       "editundo": "वापस लीं",
+       "diff-multi-sameuser": "(एही सदस्य द्वारा कइल {{PLURAL:$1|बीच के एगो बदलाव|$1 बीच के बदलाव सब}} नइखे देखावल जात)",
        "searchresults": "खोज परिणाम",
        "searchresults-title": "$1 खातिर खोज परिणाम",
        "titlematches": "पन्ना के शिर्षक मिलत बा।",
        "textmatches": "पन्ना के पाठ्य मिलत बा",
        "notextmatches": "पन्ना के पाठ्य नईखे मिलत",
-       "prevn": "पिà¤\9bला {{PLURAL:$1|$1}}",
-       "nextn": "अगला {{PLURAL:$1|$1}}",
+       "prevn": "पà¤\9bिला {{PLURAL:$1|$1}}",
+       "nextn": "à¤\85à¤\97िला {{PLURAL:$1|$1}}",
        "prev-page": "पिछलका पन्ना",
        "next-page": "अगला पन्ना",
        "prevn-title": "पिछला $1 {{PLURAL:$1|परिणाम}}",
-       "nextn-title": "अगला $1 {{PLURAL:$1|परिणाम}}",
-       "shown-title": "दिà¤\96ाà¤\88à¤\82 $1 {{PLURAL:$1|परिणाम}}",
+       "nextn-title": "à¤\85à¤\97िला $1 {{PLURAL:$1|परिणाम}}",
+       "shown-title": "à¤\8fà¤\95 à¤ªà¤¨à¥\8dना à¤ªà¤° $1 {{PLURAL:$1|परिणाम}} à¤¦à¥\87à¤\96ाà¤\88à¤\82",
        "viewprevnext": "देखीं ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''इ विकि पर ''[[:$1]]'' नाम से एगो पन्ना उपलब्ध बा'''",
-       "searchmenu-new": "<strong> à¤\88 à¤µà¤¿à¤\95ि à¤ªà¤° \"[[:$1]]\" à¤¨à¤¾à¤® à¤\95à¥\87 à¤ªà¤¨à¥\8dना à¤¬à¤¨à¤¾à¤\88à¤\82 !</strong> {{PLURAL:$2|0=|à¤\86पà¤\95à¥\87 à¤\96à¥\8bà¤\9c à¤¸à¥\87 à¤®à¤¿à¤²à¤² à¤ªà¤¨à¥\8dना à¤­à¥\80 à¤¦à¥\87à¤\96à¥\80à¤\82|à¤\96à¥\8bà¤\9c परिणाम भी देखीं।}}",
+       "searchmenu-new": "<strong> à¤\8f à¤µà¤¿à¤\95ि à¤ªà¤° \"[[:$1]]\" à¤¨à¤¾à¤\81व à¤\95à¥\87 à¤ªà¤¨à¥\8dना à¤¬à¤¨à¤¾à¤\88à¤\82 !</strong> {{PLURAL:$2|0=|à¤\85पनà¥\80 à¤\96à¥\8bà¤\9c à¤¸à¥\87 à¤®à¤¿à¤²à¤² à¤ªà¤¨à¥\8dना à¤­à¥\80 à¤¦à¥\87à¤\96à¥\80à¤\82|à¤\96à¥\8bà¤\9c à¤\95à¥\87 परिणाम भी देखीं।}}",
        "searchprofile-articles": "सामग्री पन्ना",
-       "searchprofile-images": "मलà¥\8dà¤\9fिमीडिया",
+       "searchprofile-images": "मलà¥\8dà¤\9fà¥\80मीडिया",
        "searchprofile-everything": "सब कुछ",
-       "searchprofile-advanced": "à¤\85à¤\97à¥\8dरिम",
+       "searchprofile-advanced": "नामसà¥\8dथान à¤\85नà¥\81सार",
        "searchprofile-articles-tooltip": "$1 में खोजीं",
-       "searchprofile-images-tooltip": "फाà¤\88ल खातिर खोज",
-       "searchprofile-everything-tooltip": "सभन à¤¸à¤¾à¤®à¤\97à¥\8dरà¥\80 à¤®à¥\87à¤\82 à¤\96à¥\8bà¤\9cà¥\80à¤\82 (वारà¥\8dता पन्ना सहित)",
+       "searchprofile-images-tooltip": "फाà¤\87ल खातिर खोज",
+       "searchprofile-everything-tooltip": "सब à¤\9cà¤\97ह à¤\96à¥\8bà¤\9cà¥\80à¤\82 (बातà¤\9aà¥\80त पन्ना सहित)",
        "searchprofile-advanced-tooltip": "विशेष नामस्थान में खोजीं",
        "search-result-size": "$1 ({{PLURAL:$2|1 शब्द|$2 शब्द}})",
-       "search-redirect": "(पà¥\81न: à¤¨à¤¿à¤°à¥\8dदà¥\87शण $1)",
+       "search-redirect": "(à¤\85नà¥\81पà¥\8dरà¥\87षण$1)",
        "search-section": "(खंड $1)",
        "search-category": "(श्रेणी $1)",
        "search-suggest": "का राउर मतलब बा: $1",
        "search-interwiki-more": "(अउर)",
        "search-relatedarticle": "संबंधित",
        "searchrelated": "संबंधित",
-       "searchall": "सब",
+       "searchall": "सà¤\97रà¥\80",
        "showingresults": "नीचे देखावल जा रहल बा {{PLURAL:$1|'''1''' परिणाम|'''$1''' परिणाम}} #'''$2''' से शुरु होवे वाला।",
-       "search-nonefound": "राà¤\89र à¤\96à¥\8bà¤\9c à¤®à¥\87 à¤¸à¥\87 à¤®à¥\87ल à¤\96ात à¤\95à¤\89नà¥\8b à¤ªà¤°à¤¿à¤£à¤¾à¤® à¤¨à¤\88à¤\96à¥\87 à¤¬à¤¾",
+       "search-nonefound": "राà¤\89र à¤\96à¥\8bà¤\9c à¤¸à¥\87 à¤®à¥\87ल à¤\96ात à¤\95à¥\8cनà¥\8bà¤\82 à¤ªà¤°à¤¿à¤£à¤¾à¤® à¤¨à¤\87à¤\96à¥\87 à¤®à¤¿à¤²à¤¤",
        "powersearch-legend": "उन्नत खोज",
        "powersearch-ns": "सन्दर्भ में खोजीं",
        "powersearch-togglelabel": "जाँच:",
        "powersearch-togglenone": "कउनो ना",
        "search-external": "बाहरी खोज",
        "preferences": "वरीयता",
-       "mypreferences": "राà¤\89र à¤ªà¤¸à¤¨à¥\8dद",
+       "mypreferences": "हमार à¤¸à¥\87à¤\9fिà¤\82à¤\97",
        "prefs-edits": "सम्पादन संख्या",
        "prefsnologintext2": "आपन वरीयता में बदलाव लावे खातिर प्रवेश करीं।",
        "prefs-skin": "त्वचा",
        "yourgender": "रउआँ के का बोलावल जाय?",
        "gender-unknown": "हम न बताइब",
        "email": "ईमेल",
+       "prefs-help-email-required": "ईमेल पता चाहत बाटे।",
        "prefs-info": "बेसिक जानकारी",
        "prefs-i18n": "वैश्वीकरण",
        "prefs-signature": "दसखत",
        "prefs-editor": "संपादक",
        "prefs-preview": "पूर्वावलोकन",
        "prefs-advancedrc": "एडवांस बिकल्प",
+       "prefs-advancedrendering": "एडवांस बिकल्प",
+       "prefs-advancedsearchoptions": "एडवांस बिकल्प",
+       "prefs-advancedwatchlist": "एडवांस बिकल्प",
+       "prefs-displayrc": "डिस्प्ले बिकल्प",
+       "prefs-displaywatchlist": "डिस्प्ले बिकल्प",
+       "prefs-tokenwatchlist": "टोकन",
+       "prefs-diffs": "अंतर",
+       "prefs-help-prefershttps": "राउर ई पसंद के सेटिंग अगिला बेर लॉग इन कइले पर लागू होई।",
        "group": "मंडली (ग्रुप):",
        "group-user": "सदस्य",
        "group-autoconfirmed": "खुद परीक्षित सदस्य",
        "group-bureaucrat": "ब्यूरोक्रेट",
        "group-suppress": "ओवरसाइटर",
        "group-all": "(सब)",
+       "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}}:सदस्य सभ",
+       "grouppage-autoconfirmed": "{{ns:project}}:खुद अस्थापित सदस्य सभ",
+       "grouppage-bot": "{{ns:project}}:बॉट सभ",
+       "grouppage-sysop": "{{ns:project}}:प्रबंधक सभ",
+       "grouppage-bureaucrat": "{{ns:project}}:प्रशासक सभ",
+       "grouppage-suppress": "{{ns:project}}:ओवरसाइटर सभ",
        "right-read": "पन्ना पढ़ीं",
+       "right-edit": "पन्नवन के संपादन करीं",
        "right-createpage": "पन्ना बनाईं (बातचीत पन्ना की अलावा)",
        "right-createtalk": "बातचीत पन्ना बनाईं",
        "right-createaccount": "नया सदस्य खाता बनाईं",
        "right-upload": "फाइल अपलोड करीं",
        "right-reupload": "पुरान फाइल की ऊपर नया लादीं",
        "right-reupload-own": "खुदे लादल फाइल पर नया फाइल लादीं",
+       "right-reupload-shared": "लोकल में साझा मीडिया भण्डार के फाइल सभ के ओवरराइड करीं",
+       "right-upload_by_url": "यूआरयल से फाइल अपलोड करीं",
+       "right-purge": "बिना पुछले कौनों पन्ना के साइट कैश के फिर लोड करीं",
+       "right-autoconfirmed": "आइ पी आधारित रेट के सीमा से प्रभावित ना होखे",
+       "right-bot": "ऑटोमेटेड प्रोसेस मानल जाय",
+       "right-writeapi": "API लेखन के इस्तेमाल",
        "right-delete": "पन्ना हटाईं",
        "right-bigdelete": "लंबा इतिहास वाला पन्ना हटाईं",
        "right-deletelogentry": "लॉग आइटम के हटाईं या वापस करीं",
        "right-undelete": "हटावल पन्ना वापस ले आईं",
        "right-protect": "सुरक्षा स्तर बदलीं आ कास्केड-सुरक्षित पन्ना के सम्पादन करीं",
        "right-unwatchedpages": "ध्यानसूची में जवन पन्ना नइखे ओकर सूची देखीं",
-       "newuserlogpage": "à¤\96ाता à¤¨à¤¿à¤°à¥\8dमाण के लॉग",
+       "newuserlogpage": "à¤\96ाता à¤¬à¤¨à¤µà¤²à¥\87 के लॉग",
        "newuserlogpagetext": "ई खाता निर्माण के लॉग बा",
        "rightslog": "सदस्य अधिकार लॉग",
        "rightslogtext": "ई सदस्यन के सदस्य-अधिकार के बदलाव के लॉग बा",
        "action-reupload": "पहिले से मौजूद ए फाइल पर दूसर लादीं",
        "action-delete": "ई पन्ना के मिटाईं",
        "action-unwatchedpages": "ध्यानसूची में जवन पन्ना नइखे ओकर सूची देखीं",
-       "recentchanges": "तुरंत भइल परिवर्तन",
-       "recentchanges-legend": "हाल के परिवर्तन संबंधी विकल्प",
-       "recentchanges-summary": "इ विकि पर हाल में भइल बदलाव इ पन्ना पर देखल जा सकत बा।",
-       "recentchanges-label-newpage": "ई सम्पादन से एगो नवका पृष्ठ तैयार हो गइल बा",
-       "recentchanges-label-minor": "ई एगो छोटा सम्पाद बा",
-       "recentchanges-label-bot": "इ सम्पादन एगो बॉट द्वारा करल गइल रहल",
-       "recentchanges-label-unpatrolled": "इ संपादन के अभीले जाँचल नइखे गइल",
-       "recentchanges-label-plusminus": "बाइट के इ संख्या से पन्ना के आकार बदलल गइल",
-       "recentchanges-legend-heading": "'''कुंजी:'''",
-       "rclistfrom": "$2, $3 से शुरु भइल नया बदलाव दिखाईं",
-       "rcshowhideminor": "$1 छोट सम्पादन",
-       "rcshowhideminor-show": "दिखाईं",
-       "rcshowhideminor-hide": "छुपाँई",
+       "enhancedrc-history": "इतिहास",
+       "recentchanges": "तुरंत भइल बदलाव",
+       "recentchanges-legend": "हाल के बदलाव संबंधी बिकल्प",
+       "recentchanges-summary": "ए विकि पर हाल में भइल बदलाव इहाँ देखल जा सकत बा।",
+       "recentchanges-label-newpage": "ए संपादन से एगो नया पन्ना बनल",
+       "recentchanges-label-minor": "ई एगो छोट संपादन बा",
+       "recentchanges-label-bot": "इ संपादन एगो बॉट द्वारा कइल गइल बा",
+       "recentchanges-label-unpatrolled": "ए संपादन के अभिन ले जाँचल नइखे गइल",
+       "recentchanges-label-plusminus": "एतना बाइटस् से पन्ना के साइज बदलल गइल",
+       "recentchanges-legend-heading": "'''संकेत:'''",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (इहो देखीं [[Special:NewPages|नया पन्नवन के लिस्ट]])",
+       "rclistfrom": "$2, $3 से शुरु नया बदलाव देखाईं",
+       "rcshowhideminor": "$1 छोट संपादन",
+       "rcshowhideminor-show": "देखाईं",
+       "rcshowhideminor-hide": "छिपाईं",
        "rcshowhidebots": "बॉट $1",
        "rcshowhidebots-show": "देखाईं",
        "rcshowhidebots-hide": "छिपाईं",
        "rcshowhidemine": "हमार संपादन $1",
        "rcshowhidemine-show": "देखाईं",
        "rcshowhidemine-hide": "छिपाईं",
-       "rclinks": "पिà¤\9bला $2 दिन में भइल $1 बदलाव देखाईं<br />$3",
+       "rclinks": "पà¤\9bिला $2 दिन में भइल $1 बदलाव देखाईं<br />$3",
        "diff": "अन्तर",
        "hist": "इति",
-       "hide": "à¤\9bà¥\81पाà¤\81à¤\88",
-       "show": "दिखाईं",
+       "hide": "à¤\9bिपाà¤\88à¤\82",
+       "show": "दà¥\87खाईं",
        "minoreditletter": "छो",
        "newpageletter": "न",
-       "boteditletter": "बà¥\8b",
+       "boteditletter": "बà¥\89",
        "number_of_watching_users_pageview": "[$1 देखल जा रहल बा {{PLURAL:$1|प्रयोगकर्ता|प्रयोगकर्ता}}]",
        "rc_categories": "श्रेणिन के सीमा (\"|\" से अलगा करीं)",
        "rc_categories_any": "कौनों",
        "rc-change-size-new": "$1 {{PLURAL:$1|बाइट|बाइट सब}} बदलाव के बाद",
-       "recentchangeslinked": "समà¥\8dबनà¥\8dधित बदलाव",
+       "recentchangeslinked": "सà¤\82बà¤\82धित बदलाव",
        "recentchangeslinked-feed": "सम्बन्धित बदलाव",
-       "recentchangeslinked-toolbox": "सम्बन्धित बदलाव",
-       "recentchangeslinked-page": "पन्ना नाम:",
-       "upload": "फाईल अपलोड करीं",
+       "recentchangeslinked-toolbox": "संबंधित बदलाव",
+       "recentchangeslinked-title": "\"$1\" से संबधी बदलाव",
+       "recentchangeslinked-summary": "ई एगो पन्ना बिसेस से (या एगो श्रेणी बिसेस की सदस्य से) जुड़ल पन्नवन में हाल में भइल बदलाव के एगो लिस्ट हवे। \n[[Special:Watchlist|आपकी धियानसूची]] के पन्ना सब <strong>मोट अच्छर में</strong> लउकत बाटे।",
+       "recentchangeslinked-page": "पन्ना नाँव:",
+       "recentchangeslinked-to": "ए पन्ना से जुड़ल पन्नवन मे भइल बदलाव भले देखाईं",
+       "upload": "फाइल अपलोड करीं",
        "uploadlogpage": "लदनी (अपलोड) के लॉग",
        "uploadlogpagetext": "नीचे हाल में अपलोड करल गइल फाइलन के सूची बा।\nदृश्य अवलोकन खातिर [[Special:NewFiles|नया फाइलन के गैलरी]] देखीं।",
        "filename": "फाइलनाँव",
-       "filedesc": "साराà¤\82श",
+       "filedesc": "à¤\9bà¥\8bà¤\9f à¤µà¤¿à¤µà¤°à¤£ (साराà¤\82श)",
        "fileuploadsummary": "सारांश:",
        "filereuploadsummary": "फाइल बदलाव:",
        "filestatus": "कापीराइट स्टेटस",
        "ignorewarnings": "चेतावनी छोड़ीं",
        "minlength1": "फाइलनाँव कमसेकम एक अच्छर के चाही",
        "unknown-error": "अज्ञात त्रुटि उत्पन्न हो गईल बा।",
+       "upload-source": "सोर्स फाइल",
+       "sourcefilename": "सोर्स फाइलनाँव:",
+       "sourceurl": "सोर्स यूआरयल:",
+       "destfilename": "लक्ष्य फाइलनाँव:",
+       "upload-maxfilesize": "अधिक से अधिक फाइल साइज: $1",
+       "upload-description": "फाइल के विवरण",
+       "upload-options": "अपलोड बिकल्प",
+       "watchthisupload": "ई फाइल के धियान रखीं",
+       "filewasdeleted": "एही नाँव के एगो फाइल पहिले अपलोड भइल रहे आ बाद में हटावल गइल। पहिले आप $1 के जाँच लीं फिर अपलोड करे खातिर आगे बढ़ीं।",
+       "upload-success-subj": "सफलता से अपलोड भइल",
+       "upload-failure-subj": "अपलोड समस्या",
+       "upload-warning-subj": "अपलोड चेतावनी",
+       "upload-proto-error": "गलत प्रोटोकाल",
+       "upload-file-error": "इंटरनल खराबी",
+       "upload-misc-error": "नामालूम अपलोड खराबी",
+       "backend-fail-alreadyexists": "फाइल $1 पहिले से मौजूद बाटे",
+       "backend-fail-store": "फाइल $1 के $2 पर सहेजल ना जा सकल।",
+       "backend-fail-copy": "फाइल $1 के $2 पर कॉपी ना कइल जा सकल।",
+       "backend-fail-move": "फाइल $1 के $2 पर स्थानांतरण ना हो सकल।",
+       "backend-fail-opentemp": "टेम्परेरी फाइल के ना खोलल जा सकल।",
+       "backend-fail-writetemp": "टेम्परेरी फाइल में ना राइट कइल जा सकल।",
+       "backend-fail-closetemp": "टेम्परेरी फाइल के बंद ना कइल जा सकल।",
        "license": "लाइसेंस जानकारी:",
-       "license-header": "लाà¤\88सेंसिंग",
+       "license-header": "लाà¤\87सेंसिंग",
        "nolicense": "कौनों नइखे",
        "licenses-edit": "लाइसेंस बिकल्प संपादन",
        "license-nopreview": "(नमूना देखल उपलब्ध नइखे)",
+       "imgfile": "फाइल",
        "listfiles": "फाइल सूची",
        "listfiles_thumb": "चिप्पी",
        "listfiles_date": "तिथि",
        "listfiles_name": "नाँव",
-       "file-anchor-link": "फ़ाà¤\87ल",
+       "file-anchor-link": "फाइल",
        "filehist": "पन्ना के इतिहास",
+       "filehist-help": "ओ समय ई फाइल कइसन लउके ई देखे खातिर कौनों तारीख/समय पर क्लिक करीं।",
        "filehist-deleteall": "सब मिटाईं",
        "filehist-deleteone": "मिटाईं",
-       "filehist-current": "मà¥\8cà¤\9cà¥\82दा",
-       "filehist-datetime": "तारिख/समय",
-       "filehist-thumb": "थमà¥\8dबनà¥\87ल",
-       "filehist-thumbtext": "$1 à¤¸à¤\82सà¥\8dà¤\95रण à¤\95à¥\87 à¤\85à¤\82à¤\97à¥\82ठाà¤\95ार à¤ªà¥\8dरारूप।",
+       "filehist-current": "वरà¥\8dतमान",
+       "filehist-datetime": "तारà¥\80ख/समय",
+       "filehist-thumb": "à¤\9aिपà¥\8dपà¥\80 à¤°à¥\82प",
+       "filehist-thumbtext": "$1 à¤²à¥\87 à¤\95à¥\87 à¤¸à¤\82सà¥\8dà¤\95रण à¤\95à¥\87 à¤\9aिपà¥\8dपà¥\80 रूप।",
        "filehist-nothumb": "बिन थम्बनेल",
-       "filehist-user": "पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता",
+       "filehist-user": "सदसà¥\8dय",
        "filehist-dimensions": "आयाम",
        "filehist-filesize": "फाईल के आकार",
        "filehist-comment": "टिप्पणी",
-       "imagelinks": "फाईल के उपयोग",
-       "nolinkstoimage": "इ फाईल जोड़े कौनो फाइल लिंक नईखे।",
+       "imagelinks": "फाइल के उपयोग",
+       "linkstoimage": "ए फाइल से ई {{PLURAL:$1|पन्ना जुड़ल बा|$1 पन्ना जुड़ल बाड़ें}}:",
+       "nolinkstoimage": "कौनों पन्ना अइसन नइखे जेवन ए फाइल से जुड़ल होखे",
        "morelinkstoimage": "इ फाइल संगे जुड़ल [[Special:WhatLinksHere/$1|सब लिंक]] देखीं।",
        "sharedupload": "इ फाईल $1 से बा आ दुसर परियोजना में प्रयोग करल जा सकत बा।",
        "sharedupload-desc-there": "इ फाईल $1 से बा आ दुसर परियोजना में प्रयोग करल जा सकत बा। अधिक जानकारी खातिर कृपया [$2 फाईल विवरण पन्ना] देखीं।",
+       "sharedupload-desc-here": "ई फाइल $1 से बा आ अउरी प्रोजेक्ट भी एकर इस्तेमाल कर सकत बाड़ें। \nएकर विवरण [$2 फाइल विवरण पन्ना] नीचे देखावल गइल बा।",
        "filepage-nofile": "इ नाम से कौनो फाईल उपलब्ध नईखे।",
        "filepage-nofile-link": "इ नाम से कौनो फाईल उपलब्ध नईखे, लेकिन रउआ [$1 के अपलोड कर] सकत बानी।",
        "uploadnewversion-linktext": "इ फाईल के नया संस्करण लादीं।",
        "shared-repo-from": "$1 से",
        "shared-repo": "एगो आवटिंत भंडार गृह",
        "shared-repo-name-wikimediacommons": "विकिमीडिया कॉमन्स",
+       "upload-disallowed-here": "आप ए फाइल पर ओवरराइट ना कर सकत बानीं",
        "filerevert": "पुन: निर्देशित $1",
        "filerevert-legend": "पुन: निर्देशित फाईल",
        "filerevert-comment": "कारण:",
        "unwatchedpages": "ध्यान न दिहल गइल पन्ना",
        "listredirects": "पुनर्निर्देशन के सूची",
        "unusedtemplates": "बिना प्रयोग के खाँचा",
-       "randompage": "à¤\85विशिषà¥\8dà¤\9f पन्ना",
+       "randompage": "बà¥\87तरतà¥\80ब पन्ना",
        "randomincategory": "श्रेणी में अनियमित पन्ना",
        "randomincategory-nopages": "[[:Category:$1|$1]] श्रेणी में कउनो पन्ना नइखे।",
        "randomincategory-legend": "श्रेणी में अनियमित पन्ना",
        "brokenredirects": "टूटल पुनर्निर्देशन पन्ना",
        "withoutinterwiki": "बिना अंतरविकि जोड़ वाला पन्ना",
        "fewestrevisions": "सबसे कम संशोधन वाला पन्ना",
-       "nbytes": "$1 {{PLURAL:$1|बाà¤\88à¤\9f|बाà¤\88ट्स}}",
+       "nbytes": "$1 {{PLURAL:$1|बाà¤\87à¤\9f|बाà¤\87ट्स}}",
        "ncategories": "{{PLURAL:$1|श्रेणी|श्रेणीसभ}}",
        "lonelypages": "अनाथ पन्ना",
        "lonelypagestext": "ई पन्ना कुल कौनों दूसर पन्ना से नइखें जुड़ल न कौनों में ट्रांसक्लूड बाड़ें",
        "protectedpages": "सुरक्षित पन्ना",
        "protectedtitles": "सुरक्षित शीर्षक",
        "listusers": "सदस्यसूची",
-       "newpages": "नवà¤\95ा पन्ना",
+       "newpages": "नया पन्ना",
        "ancientpages": "सभन से पुरान पन्नासभ",
        "move": "स्थान्तरण",
        "movethispage": "ई पन्ना के स्थांतरण करीं",
        "apihelp-no-such-module": "मॉड्युल $1 ना मिलल।",
        "booksources": "किताबी स्रोत",
        "booksources-search-legend": "किताबी स्रोत के खोज",
-       "allarticles": "सभी पन्ना",
+       "booksources-search": "खोज",
+       "log": "सगरी लॉग",
+       "allarticles": "सगरी पन्ना",
        "allpagessubmit": "जाईं",
        "allpagesprefix": "उपसर्ग के साथे पन्ना प्रदर्शन:",
        "categories": "श्रेणीसभ",
        "trackingcategories": "नजर रखे वाला श्रेणीसभ",
        "emailuser": "ई प्रयोगकर्ता के ईमेल करीं",
        "watchlist": "ध्यानसूची",
-       "mywatchlist": "धà¥\8dयानसूची",
-       "watch": "धà¥\8dयानसूची में डालीं",
+       "mywatchlist": "धियानसूची",
+       "watch": "धियानसूची में डालीं",
        "watchthispage": "ई पन्ना ध्यानसूची में डालीं",
        "unwatch": "ध्यानसूची से हटाईं",
        "watching": "ध्यानसूची में जाते हुए",
        "unwatching": "ध्यानसूची से हटते हुए",
        "created": "बनावल गईल",
        "actioncomplete": "काम पुरा भइल",
+       "dellogpage": "हटवले के लिस्ट",
        "rollbacklink": "वापिस लीं",
+       "rollbacklinkcount": "रोलबैक $1 {{PLURAL:$1|संपादन|संपादन सब}}",
+       "protectlogpage": "सुरक्षा लॉग",
        "protectlogtext": "नीचे पन्ना सुरक्षा में भइल बदलावकुल के सूची बा।\nहाल में सुरक्षित पन्नन के सूची खातिर [[Special:ProtectedPages|सुरक्षित पन्नन के सूची]] देखीं।",
        "undeletelink": "देखीं/बहाल करीं",
-       "namespace": "सन्दर्भ",
-       "invert": "चयनित पलटीं",
-       "tooltip-invert": "चुनल गइल नामस्थान के साथ बदलाव छुपाये खातिर इ बाकस के चिन्हित करीं (आ सम्बन्धित नामस्थान यदि चिन्हित करल जाई)",
-       "namespace_association": "सम्बन्धित नामस्थान",
+       "namespace": "नामस्थान:",
+       "invert": "चुनाव पलटीं",
+       "tooltip-invert": "चुनल गइल नामस्थान की संघे बदलाव छिपावे खातिर ए बाकस के चिन्हित करीं (सम्बन्धित नामस्थान के भी, अगर चिन्हित होखे)",
+       "namespace_association": "संबंधित नामस्थान",
+       "tooltip-namespace_association": "चुनल गइल नामस्थान से जुड़ल बातचीत या बिसय नामस्थान के शामिल करे खातिर ए बाकस के चिन्हित करीं",
        "blanknamespace": "(मुख्य)",
        "contributions": "{{GENDER:$1|सदस्य}} योगदान",
        "contributions-title": " $1 खातिर प्रयोगकर्ता योगदान",
-       "mycontris": "राà¤\89र à¤¯à¥\8bà¤\97दान à¤\95à¥\87 à¤¸à¥\82à¤\9aà¥\80",
+       "mycontris": "हमार à¤¯à¥\8bà¤\97दान",
        "nocontribs": "ई मानदंड से मिलत जुलत कौनो बदलाव ना मिलल।",
        "uctop": "(हाल के)",
-       "month": "महिना à¤¸à¥\87 (à¤\86 à¤\89 से पहिले):",
-       "year": "साल à¤¸à¥\87 (à¤\86 à¤\89 से पहिले):",
+       "month": "महà¥\80ना à¤¸à¥\87 (à¤\86 à¤\93 से पहिले):",
+       "year": "साल à¤¸à¥\87 (à¤\86 à¤\93 से पहिले):",
        "sp-contributions-newbies": "खाली नया खाता के योगदान देखीं।",
        "sp-contributions-newbies-sub": "नया खाता खातिर",
        "sp-contributions-newbies-title": "नया खाता खातिर प्रयोगकर्ता के योगदान।",
        "sp-contributions-talk": "बात-चीत",
        "sp-contributions-userrights": "प्रयोगकर्ता अधिकार प्रबन्धन",
        "sp-contributions-blocked-notice": "ई प्रयोगकर्ता के ई समय निष्क्रीय करल गईल बा।\nनविनतम नष्ट लौग प्रविष्टी उद्धरण खातिर निचे दिहल बा:",
-       "whatlinkshere": "à¤\85हिà¤\9cा à¤\95ा à¤\9cà¥\81ड़à¥\80",
-       "whatlinkshere-title": "पनà¥\8dना à¤\9cà¥\8cन \"$1\" à¤¸à¥\87 à¤\9cà¥\81ड़à¥\87ला",
+       "whatlinkshere": "à¤\87हाà¤\81 à¤\95ा à¤\9cà¥\81ड़ल à¤¬à¤¾",
+       "whatlinkshere-title": "पनà¥\8dना à¤\9cà¥\87वन \"$1\" à¤¸à¥\87 à¤\9cà¥\81ड़ल à¤¬ा",
        "whatlinkshere-page": "पन्ना:",
-       "linkshere": "नà¥\80à¤\9aà¥\87 à¤\95à¥\87 à¤¸à¤¬ à¤ªà¤¨à¥\8dना '''[[:$1]]''' à¤¸à¥\87 à¤\9cà¥\81ड़à¥\87ला:",
+       "linkshere": "नà¥\80à¤\9aà¥\87 à¤\95à¥\87 à¤¸à¤¬ à¤ªà¤¨à¥\8dना '''[[:$1]]''' à¤¸à¥\87 à¤\9cà¥\81ड़ल à¤¬ा:",
        "nolinkshere": "'''[[:$1]]''' से कौनो पन्ना नईखे जुड़ल।",
        "nolinkshere-ns": "चुनल गईल सन्दर्भ में '''[[:$1]]''' से कौनो पन्ना ना जुड़ेला।",
-       "isredirect": "पुन: निर्दिष्ट पन्ना",
-       "isimage": "फाईल लिंक",
-       "whatlinkshere-prev": "{{PLURAL:$1|पिछला|पिछला $1}}",
-       "whatlinkshere-next": "{{PLURAL:$1|अगला|अगला $1}}",
-       "whatlinkshere-links": "← लिंक",
-       "whatlinkshere-hideredirs": "$1 पुन: निर्देशित",
+       "isredirect": "अनुप्रेषित पन्ना",
+       "istemplate": "ट्रांस्क्ल्यूजन",
+       "isimage": "फाइल कड़ी",
+       "whatlinkshere-prev": "{{PLURAL:$1|पछिला|पछिला $1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|अगिला|अगिला $1}}",
+       "whatlinkshere-links": "← कड़ी",
+       "whatlinkshere-hideredirs": "$1 अनुप्रेषण",
        "whatlinkshere-hidetrans": "$1 ट्रान्स्क्ल्युजन्स",
-       "whatlinkshere-hidelinks": "$1 à¤²à¤¿à¤\82à¤\95",
+       "whatlinkshere-hidelinks": "$1 à¤\95ड़à¥\80",
        "whatlinkshere-hideimages": "$1 फ़ाइल लिंक",
-       "whatlinkshere-filters": "फिलà¥\8dà¤\9fर",
+       "whatlinkshere-filters": "à¤\9bननà¥\80",
        "blockip": "{{GENDER:$1|सदस्य}} अवरोधित करीं",
        "ipboptions": "२ घंटे:2 hours,१ दिन:1 day,३ दिन:3 days,१ हफ्ता:1 week,२ हफ्ते:2 weeks,१ महिना:1 month,३ महिने:3 months,६ महिने:6 months,१ साल:1 year,हमेशा खातिर:infinite",
        "blocklist": "अवरोधित प्रयोगकर्तासभ",
-       "blocklink": "निषà¥\8dà¤\95à¥\8dरिय",
+       "blocklink": "रà¥\8bà¤\95 à¤¦à¥\80à¤\82",
        "unblocklink": "ताला खोलीं",
        "change-blocklink": "ब्लॉक बदलीं",
        "contribslink": "योगदान",
        "blocklogpage": "निष्क्रिय खाता",
        "movepagebtn": "पन्ना स्थांतरण करीं",
+       "movelogpage": "स्थानांतरण लॉग",
        "revertmove": "पिछलका स्थिति",
        "export": "पन्ना निर्यात करीं",
        "thumbnail-more": "बढ़ाईं",
        "filemissing": "फाईल गायब",
        "imported-log-entries": "लावल गइल $1 {{PLURAL:$1|लॉग प्रविष्टि|लॉग प्रविष्टिसभ}}",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|संशोधन|संशोधनसभ}} लावल गइल",
-       "tooltip-pt-userpage": "राà¤\89र à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता पन्ना",
-       "tooltip-pt-mytalk": "राà¤\89र à¤µà¤¾à¤°à¥\8dता पन्ना",
-       "tooltip-pt-preferences": "राà¤\89र à¤ªà¤¸à¤¨à¥\8dद",
-       "tooltip-pt-watchlist": "राà¤\89र à¤§à¥\8dयान à¤¦à¤¿à¤¯à¤² à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤¸à¥\82à¤\9aà¥\80",
-       "tooltip-pt-mycontris": "राà¤\89र à¤¯à¥\8bà¤\97दान à¤\95à¥\87 à¤¸à¥\82à¤\9aà¥\80",
-       "tooltip-pt-login": "रà¤\89à¤\86 à¤\95à¥\87 à¤\96ाता à¤ªà¥\8dरवà¥\87श à¤\96ातिर à¤ªà¥\8dरà¥\8bतà¥\8dसाहित à¤\95रल à¤\9cा à¤°à¤¹à¤² à¤¬à¤¾, à¤¬à¤¾à¤\95ि à¤\88 à¤\85निवारà¥\8dय à¤¨à¤\88खे",
-       "tooltip-pt-logout": "à¤\96ाता à¤¸à¥\87 à¤¬à¤¾à¤¹à¤°",
-       "tooltip-pt-createaccount": "हमनà¥\80 à¤\95à¥\87 à¤¸à¥\81à¤\9dाव à¤¬à¤¾ à¤\95à¥\80 à¤\86प à¤\96ाता à¤¬à¤¨à¤¾à¤\88à¤\82 à¤\86 à¤ªà¥\8dरवà¥\87श à¤\95रà¥\80à¤\82, à¤ªà¤°à¤¨à¥\8dतà¥\81 à¤\88 à¤\85निवारà¥\8dय à¤¨à¤\88खे",
-       "tooltip-ca-talk": "सामà¤\97à¥\8dरà¥\80 à¤ªà¤¨à¥\8dना à¤\95à¥\87 बारे में बात-चीत",
-       "tooltip-ca-edit": "रà¤\89à¤\86 à¤\88 à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤¸à¤®à¥\8dपादन à¤\95र à¤¸à¤\95त à¤¬à¤¾à¤¨à¥\80। à¤\95à¥\83पया à¤ªà¤¨à¥\8dना à¤¸à¥\81रà¤\95à¥\8dषित à¤\95रà¥\87 à¤¸à¥\87 à¤ªà¤¹à¤¿à¤²à¥\87 à¤ªà¥\82रà¥\8dवावलà¥\8bà¤\95न बटन के इस्तेमाल करीं।",
-       "tooltip-ca-addsection": "à¤\8fà¤\97à¥\8b à¤¨à¤¯à¤¾ à¤\96णà¥\8dड शुरु करीं",
-       "tooltip-ca-viewsource": "à¤\87 à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤¸à¤\82रà¤\95à¥\8dषित à¤\95र à¤¦à¤¿à¤¹à¤² à¤\97à¤\88ल à¤¬à¤¾à¥¤ à¤°à¤\8aà¤\86 à¤\8fà¤\95र à¤®à¥\82ल देख सकत बानी।",
-       "tooltip-ca-history": "à¤\88 à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤ªà¤¿à¤\9bला संशोधन",
+       "tooltip-pt-userpage": "हमार à¤¸à¤¦à¤¸à¥\8dय पन्ना",
+       "tooltip-pt-mytalk": "हमार à¤¬à¤¾à¤¤à¤\9aà¥\80त पन्ना",
+       "tooltip-pt-preferences": "हमार à¤¸à¥\87à¤\9fिà¤\82à¤\97",
+       "tooltip-pt-watchlist": "राà¤\89र à¤§à¤¿à¤¯à¤¾à¤¨à¤¸à¥\82à¤\9aà¥\80 à¤®à¥\87à¤\82 à¤ªà¤¨à¥\8dना à¤¸à¤¬ à¤\95à¥\87 à¤²à¤¿à¤¸à¥\8dà¤\9f",
+       "tooltip-pt-mycontris": "राà¤\89र à¤¸à¤¬ à¤¯à¥\8bà¤\97दान à¤\95à¥\87 à¤²à¤¿à¤¸à¥\8dà¤\9f",
+       "tooltip-pt-login": "रà¤\89à¤\86 à¤\95à¥\87 à¤\96ाता à¤®à¥\87 à¤ªà¥\8dरवà¥\87श (लà¥\89à¤\97 à¤\87न) à¤\96ातिर à¤\89तà¥\8dसाहित à¤\95à¤\87ल à¤\9cात à¤¬à¤¾, à¤¬à¤¾à¤\95ि à¤\88 à¤\9cरà¥\82रà¥\80 à¤¨à¤\87खे",
+       "tooltip-pt-logout": "लà¥\89à¤\97 à¤\86à¤\89à¤\9f",
+       "tooltip-pt-createaccount": "हमनà¥\80 à¤\95à¥\87 à¤¸à¥\81à¤\9dाव à¤¬à¤¾ à¤\95à¥\80 à¤\86प à¤\96ाता à¤¬à¤¨à¤¾à¤\88à¤\82 à¤\86 à¤²à¥\89à¤\97 à¤\87न à¤\95रà¥\80à¤\82, à¤¬à¤¾à¤\95à¥\80 à¤\88 à¤\9cरà¥\82रà¥\80 à¤¨à¤\87खे",
+       "tooltip-ca-talk": "सामà¤\97à¥\8dरà¥\80 à¤ªà¤¨à¥\8dना à¤\95à¥\80 बारे में बात-चीत",
+       "tooltip-ca-edit": "रà¤\89à¤\86 à¤\8f à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤¸à¤\82पादन à¤\95र à¤¸à¤\95त à¤¬à¤¾à¤¨à¥\80। à¤ªà¤¨à¥\8dना à¤¸à¤¹à¥\87à¤\9cà¥\87 à¤¸à¥\87 à¤ªà¤¹à¤¿à¤²à¥\87 à¤¨à¤®à¥\82ना  à¤¦à¥\87à¤\96ाà¤\88à¤\82 बटन के इस्तेमाल करीं।",
+       "tooltip-ca-addsection": "à¤\8fà¤\97à¥\8b à¤¨à¤¯à¤¾ à¤\96à¤\82ड शुरु करीं",
+       "tooltip-ca-viewsource": "à¤\8f à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤¸à¥\81रà¤\95à¥\8dषित à¤\95à¤\87 à¤¦à¤¿à¤¹à¤² à¤\97à¤\87ल à¤¬à¤¾à¥¤ à¤\86प à¤\8fà¤\95र à¤¸à¥\8dरà¥\8bत देख सकत बानी।",
+       "tooltip-ca-history": "à¤\8f à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤ªà¤\9bिला संशोधन",
        "tooltip-ca-protect": "इ पन्ना के संरक्षित करीं।",
        "tooltip-ca-unprotect": "ई पन्ना के सुरक्षा बदलीं।",
        "tooltip-ca-delete": "ई पन्ना मिटाईं",
-       "tooltip-ca-move": "à¤\88 à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤¸à¥\8dथांतरण करीं",
-       "tooltip-ca-watch": "à¤\87 à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤\86पन à¤§à¥\8dयानसà¥\82à¤\9aà¥\80 à¤®à¥\87à¤\82 à¤¡à¤¾à¤²ीं",
+       "tooltip-ca-move": "à¤\8f à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤¸à¥\8dथानांतरण करीं",
+       "tooltip-ca-watch": "à¤\8f à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤\85पनà¥\80 à¤§à¤¿à¤¯à¤¾à¤¨à¤¸à¥\82à¤\9aà¥\80 à¤®à¥\87à¤\82 à¤\9cà¥\8bड़ीं",
        "tooltip-search": "{{SITENAME}} खोजीं",
-       "tooltip-search-go": "यदि à¤ªà¤¨à¥\8dना à¤®à¥\8cà¤\9cà¥\82द à¤¹à¥\8bà¤\88 à¤¤ à¤\88हà¥\87 à¤¸à¤\9fà¥\80à¤\95 à¤¨à¤¾à¤® à¤\95à¥\87 à¤¸à¤¾à¤¥ à¤\89 पन्ना पर जाईं",
-       "tooltip-search-fulltext": "à¤\88 à¤ªà¤¾à¤ ्य खातिर पन्ना खोजीं",
+       "tooltip-search-go": "à¤\85à¤\97र à¤ªà¤¨à¥\8dना à¤®à¥\8cà¤\9cà¥\82द à¤¹à¥\8bà¤\96à¥\87 à¤¤ à¤ à¥\80à¤\95 à¤\8fहà¥\80 à¤¨à¤¾à¤\81व à¤\95à¥\80 पन्ना पर जाईं",
+       "tooltip-search-fulltext": "à¤\8f à¤¶à¤¬à¥\8dद/वाà¤\95्य खातिर पन्ना खोजीं",
        "tooltip-p-logo": "मुख्य पन्ना पर जाईं",
        "tooltip-n-mainpage": "मुख्य पन्ना पर जाईं",
-       "tooltip-n-mainpage-description": "मà¥\81à¤\96à¥\8dय à¤ªà¤¨à¥\8dना à¤ªà¤° à¤ªà¤§à¤¾à¤°à¥\80ं",
-       "tooltip-n-portal": "परियà¥\8bà¤\9cना à¤\95à¥\87 à¤¬à¤¾à¤°à¥\87 à¤®à¥\87à¤\81, à¤°à¤\89à¤\86 à¤\95ा à¤\95र à¤¸à¤\95त à¤¬à¤¾à¤¨à¥\80, à¤µà¤¸à¥\8dतà¥\81 कहाँ खोजब",
+       "tooltip-n-mainpage-description": "मà¥\81à¤\96à¥\8dय à¤ªà¤¨à¥\8dना à¤ªà¤° à¤\9cाà¤\88ं",
+       "tooltip-n-portal": "पà¥\8dरà¥\8bà¤\9cà¥\87à¤\95à¥\8dà¤\9f à¤\95à¥\80 à¤¬à¤¾à¤°à¥\87 à¤®à¥\87à¤\81, à¤°à¤\89à¤\86à¤\81 à¤\95ा à¤\95र à¤¸à¤\95त à¤¬à¤¾à¤¨à¥\80, à¤\95à¥\8cनà¥\8bà¤\82 à¤\9aà¥\80à¤\9c कहाँ खोजब",
        "tooltip-n-currentevents": "वर्तमान के घटना पर पृष्ठभूमी जानकारी खोजीं",
-       "tooltip-n-recentchanges": "विà¤\95ि à¤ªà¤° à¤¤à¥\81रà¤\82त à¤­à¤\88ल à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤\95à¥\87 à¤¸à¥\82à¤\9aà¥\80",
-       "tooltip-n-randompage": "बà¥\87तरतिब à¤ªà¤¨à¥\8dना à¤²à¤¾à¤¦à¥\80à¤\82 (Load à¤\95रà¥\80à¤\82)",
+       "tooltip-n-recentchanges": "विà¤\95ि à¤ªà¤° à¤¤à¥\81रà¤\82त à¤­à¤\87ल à¤¬à¤¦à¤²à¤¾à¤µ à¤\95à¥\87 à¤²à¤¿à¤¸à¥\8dà¤\9f",
+       "tooltip-n-randompage": "बà¥\87तरतà¥\80ब à¤ªà¤¨à¥\8dना à¤²à¥\8bड à¤\95रà¥\80à¤\82",
        "tooltip-n-help": "जगह पता लगावे खातिर",
-       "tooltip-t-whatlinkshere": "à¤\85हिà¤\9cा à¤²à¤¿à¤\82à¤\95 à¤¹à¥\8bà¤\96à¥\87 à¤µà¤¾à¤²à¤¾ à¤¸à¤¬ à¤µà¤¿à¤\95ि à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤¸à¥\82à¤\9aà¥\80",
-       "tooltip-t-recentchangeslinked": "à¤\88 à¤ªà¤¨à¥\8dना à¤¸à¥\87 à¤\9cà¥\81ड़ल à¤ªà¤¨à¥\8dनवन à¤ªà¤° à¤¤à¥\81रà¤\82त à¤­à¤\88ल à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन",
-       "tooltip-feed-atom": "à¤\88 à¤ªà¤¨à¥\8dना à¤\96ातिर à¤\85णà¥\81 à¤«à¤¼ीड",
-       "tooltip-t-contributions": "à¤\87 à¤¸à¤¦à¤¸à¥\8dय à¤\95à¥\87 à¤¯à¥\8bà¤\97दान à¤\95à¥\87 à¤¸à¥\82à¤\9aà¥\80",
-       "tooltip-t-upload": "फाà¤\88ल अपलोड करीं",
-       "tooltip-t-specialpages": "à¤\96़ाश à¤ªà¤¨à¥\8dनवन à¤\95à¥\87 à¤¸à¥\82à¤\9aà¥\80",
-       "tooltip-t-print": "à¤\88 à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤\9bापà¥\87 à¤²à¤¾à¤¯à¤\95 à¤¸à¤\82सà¥\8dà¤\95रण।",
-       "tooltip-t-permalink": "à¤\88 à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤¸à¤\82सà¥\8bधन à¤\96ातिर à¤¸à¥\8dथायà¥\80 à¤²à¤¿à¤\82à¤\95।",
+       "tooltip-t-whatlinkshere": "à¤\87हाà¤\81 à¤\9cà¥\81ड़à¥\87 à¤µà¤¾à¤²à¤¾ à¤¸à¤¬ à¤µà¤¿à¤\95ि à¤ªà¤¨à¥\8dनवन à¤\95à¥\87 à¤²à¤¿à¤¸à¥\8dà¤\9f",
+       "tooltip-t-recentchangeslinked": "à¤\8f à¤ªà¤¨à¥\8dना à¤¸à¥\87 à¤\9cà¥\81ड़ल à¤ªà¤¨à¥\8dनवन à¤ªà¤° à¤¤à¥\81रà¤\82त à¤­à¤\87ल à¤¬à¤¦à¤²à¤¾à¤µ",
+       "tooltip-feed-atom": "à¤\8f à¤ªà¤¨à¥\8dना à¤\96ातिर à¤\8fà¤\9fम à¤«ीड",
+       "tooltip-t-contributions": "à¤\8f à¤¸à¤¦à¤¸à¥\8dय à¤\95à¥\87 à¤\95à¥\81ल à¤¯à¥\8bà¤\97दान à¤\95à¥\87 à¤²à¤¿à¤¸à¥\8dà¤\9f",
+       "tooltip-t-upload": "फाà¤\87ल अपलोड करीं",
+       "tooltip-t-specialpages": "à¤\96ास à¤ªà¤¨à¥\8dनवन à¤\95à¥\87 à¤²à¤¿à¤¸à¥\8dà¤\9f",
+       "tooltip-t-print": "à¤\8f à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤\9bापà¥\87 à¤²à¤¾à¤¯à¤\95 à¤¸à¤\82सà¥\8dà¤\95रण",
+       "tooltip-t-permalink": "à¤\8f à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤¸à¤\82शà¥\8bधन à¤\96ातिर à¤¸à¥\8dथायà¥\80 à¤\95ड़à¥\80।",
        "tooltip-ca-nstab-main": "सामग्री पन्ना देखीं",
-       "tooltip-ca-nstab-user": "पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता पन्ना देखीं",
-       "tooltip-ca-nstab-special": "à¤\88 à¤\8fà¤\97à¥\8b à¤\96़ाश à¤ªà¤¨à¥\8dना à¤¹, à¤°à¤\89à¤\86 à¤\88 à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤¸à¤®à¥\8dपादन à¤¨à¤\88खीं कर सकत",
-       "tooltip-ca-nstab-image": "सà¤\82à¤\9aिà¤\95ा के पन्ना देखीं",
-       "tooltip-ca-nstab-template": "à¤\9fà¥\87मà¥\8dपà¥\8dलà¥\87à¤\9f देखीं",
+       "tooltip-ca-nstab-user": "सदसà¥\8dय-पन्ना देखीं",
+       "tooltip-ca-nstab-special": "à¤\88 à¤\8fà¤\97à¥\8b à¤\96ास à¤ªà¤¨à¥\8dना à¤¹, à¤°à¤\89à¤\86à¤\81 à¤\8f à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤¸à¤\82पादन à¤¨à¤\87खीं कर सकत",
+       "tooltip-ca-nstab-image": "फाà¤\87ल के पन्ना देखीं",
+       "tooltip-ca-nstab-template": "साà¤\81à¤\9aा देखीं",
        "tooltip-ca-nstab-category": "श्रेणी के पन्ना देखीं",
-       "tooltip-save": "à¤\86पन à¤¬à¤¦à¤²à¤¾à¤µ à¤\95à¥\87 à¤¸à¥\81रà¤\95à¥\8dषित à¤\95रीं",
+       "tooltip-save": "बदलाव à¤\95à¥\87 à¤¸à¤¹à¥\87à¤\9cीं",
        "tooltip-preview": "आपन द्वारा कियल गइल बदलाव के देखीं, संजोये से पहले ईका इस्तेमाल करीं!",
-       "tooltip-rollback": "\"वापिस लीं\" ई पन्ना के पिछ्ला योगदाता के बदलाव एकही चटके मे गायब कर देवेला",
-       "tooltip-summary": "एगो संक्षिप्त सारांश दर्ज करीं",
-       "pageinfo-toolboxlink": "जानकारी पन्ना",
-       "file-nohires": " उच्च गुणवत्ता उपलब्ध नईखे।",
-       "svg-long-desc": "एस वी जी फाईल, नॉमिनल्ली $1 x $2 पिक्सल्स, फाईल के आकार $3",
-       "show-big-image": "मूल फाईल",
+       "tooltip-diff": "देखाईं कि पाठ में आप कवन बदलाव कइलीं",
+       "tooltip-rollback": "\"वापिस लीं\" ए पन्ना के पछिला संपादन करे वाला के कइल बदलाव एकही क्लिक में हटा देला",
+       "tooltip-undo": "\"पलटीं\" ए संपादन के पलट देला आ संपादन फार्म के नमूना (प्रीव्यू) मोड में खोलेला। ई छोट विवरण (सारांश) में कारण जोड़े के सुबिधा देला।",
+       "tooltip-summary": "अपनी संपादन के छोट विवरण (सारांश) लिखीं",
+       "simpleantispam-label": "स्पैम-बिरोधी रोक (Anti-spam check)\nएके <strong>मत</strong> भरीं!",
+       "pageinfo-toolboxlink": "पन्ना के जानकारी",
+       "previousdiff": "← पुरान संपादन",
+       "nextdiff": "नया संपादन →",
+       "file-info-size": "$1 × $2 पिक्सेल, फाइल साइज: $3, MIME टाइप: $4",
+       "file-nohires": "ए से उच्च गुणवत्ता उपलब्ध नइखे।",
+       "svg-long-desc": "एसवीजी फाइल, नॉमिनल्ली $1 x $2 पिक्सल्स, फाइल के आकार $3",
+       "show-big-image": "ओरिजनल फाइल",
+       "show-big-image-preview": "ए नमूना के साइज: $1.",
+       "show-big-image-other": "अउरी {{PLURAL:$2|resolution|रिजोल्यूशन}}: $1.",
        "show-big-image-size": "$1 × $2 पिक्सल",
        "file-info-gif-looped": "लूप्ड",
        "file-info-gif-frames": "$1 {{PLURAL:$1|फ्रेम}}",
        "newimages": "नया फाईलन के गैलरी",
        "bad_image_list": "फोर्मेट निम्न अनुसार बा:\nखाली सूची सामग्री (* से शुरु होवे वाला पंक्ति ) मानल गईल बा।\nपंक्ति पर पहिला लिंक एगो खराब फाईल के साथ जुड़ल होवे के चाहीं।\nकोई भी बाद वाला लिंक ओही पंक्ति पर अईला पर उ के अपवाद मानल जाई, अर्थात जौन पन्ना पर फाईल इनलाईन हो सकत बा।",
        "metadata": "मेटाडाटा",
-       "metadata-help": "à¤\87 à¤«à¤¾à¤\88ल à¤®à¥\87à¤\82 à¤\85तिरिà¤\95à¥\8dत à¤\9cानà¤\95ारà¥\80 à¤\89पलबà¥\8dध à¤¬à¤¾, à¤¹à¥\8b à¤¸à¤\95त à¤¬à¤¾ à¤\95ि à¤\87 à¤¡à¤¿à¤\9cà¥\80à¤\9fल à¤\95à¥\88मरा à¤¯à¤¾ à¤¸à¥\8dà¤\95à¥\88नर à¤¸à¥\87 à¤²à¥\87वल à¤\97à¤\88ल à¤¹à¥\8bà¤\96à¥\87। à¤¯à¤¦à¤¿ à¤\87 à¤«à¤¾à¤\88ल à¤\8fà¤\95र à¤®à¥\82ल à¤«à¤¾à¤\88ल à¤®à¥\87à¤\82 à¤¸à¥\87 à¤¸à¤\82शà¥\8bधित à¤\95रल à¤\97à¤\88ल à¤¬à¤¾ à¤¤ à¤\95à¥\81à¤\9b à¤\9cानà¤\95ारà¥\80 à¤\89à¤\9cाà¤\97र à¤¨à¤¾ à¤¹à¥\8b à¤¸à¤\95à¥\80।",
+       "metadata-help": "à¤\8f à¤«à¤¾à¤\87ल à¤®à¥\87à¤\82 à¤\8fà¤\95à¥\8dसà¥\8dà¤\9fà¥\8dरा à¤\9cानà¤\95ारà¥\80 à¤\89पलबà¥\8dध à¤¬à¤¾, à¤¹à¥\8b à¤¸à¤\95त à¤¬à¤¾ à¤\95ि à¤\88 à¤¡à¤¿à¤\9cिà¤\9fल à¤\95à¥\88मरा à¤¯à¤¾ à¤¸à¥\8dà¤\95à¥\88नर à¤¸à¥\87 à¤²à¥\87वल à¤\97à¤\87ल à¤¹à¥\8bà¤\96à¥\87। à¤\85à¤\97र à¤\88 à¤µà¤°à¥\8dतमान à¤«à¤¾à¤\87ल à¤\8fà¤\95रà¥\80 à¤\93रिà¤\9cनल à¤«à¤¾à¤\87ल à¤¸à¥\87 à¤¸à¥\81धार à¤\95à¥\87 à¤¬à¤¨à¤² à¤¬à¤¾ à¤¤ à¤¹à¥\8b à¤¸à¤\95à¥\87ला à¤\95à¥\81à¤\9b à¤\9cानà¤\95ारà¥\80 à¤¨à¤¾ à¤²à¤\89à¤\95à¥\87।",
        "metadata-expand": "विस्तृत विवरण देखाईं",
        "metadata-collapse": "विस्तृत विवरण छुपाँईं",
        "exif-imagewidth": "चौड़ाई",
        "exif-bitspersample": "अवयव प्रति बीट",
        "exif-compression": "सम्पीड़न प्रणाली",
        "exif-photometricinterpretation": "पिक्सल रचना",
-       "exif-orientation": "à¤\85भिसà¤\82सà¥\8dà¤\95रण",
+       "exif-orientation": "à¤\96ड़ा à¤¯à¤¾ à¤ªà¤\9f",
        "exif-samplesperpixel": "अवयवन के संख्या",
        "exif-planarconfiguration": "डेटा प्रबन्धन",
-       "exif-xresolution": "à¤\95à¥\8dषà¥\88तिà¤\9c à¤¸à¤®à¤¾à¤§à¤¾à¤¨",
-       "exif-yresolution": "लमà¥\8dबवत à¤¸à¤®à¤¾à¤§à¤¾à¤¨",
+       "exif-xresolution": "बà¥\87à¤\82ड़à¥\80-बà¥\87à¤\82ड़ा à¤ªà¤\9f à¤¸à¤¾à¤\87à¤\9c (Horizontal resolution)",
+       "exif-yresolution": "à¤\96ड़à¥\80-à¤\96ड़ा à¤¸à¤¾à¤\87à¤\9c (Vertical resolution)",
        "exif-stripoffsets": "चित्र डेटा के स्थिती",
        "exif-jpeginterchangeformatlength": "JPEG डेटा के बाइट",
-       "exif-make": "कैमेरा उत्पादक",
-       "exif-model": "कैमेरा मॉडेल",
-       "exif-software": "प्रयोग करल गईल सॉफ्टवेयर",
-       "exif-datetimeoriginal": "डाटा बनावे के दिनांक अउर समय",
+       "exif-datetime": "फाइल बदलाव के तारीख आ समय",
+       "exif-make": "कैमरा निर्माता",
+       "exif-model": "कैमरा मॉडल",
+       "exif-software": "प्रयोग कइल गइल सॉफ्टवेयर",
+       "exif-exifversion": "एक्सिफ वर्जन",
+       "exif-colorspace": "रंग बिस्तार",
+       "exif-datetimeoriginal": "डाटा बनावे के तारीख आ समय",
+       "exif-datetimedigitized": "डिजिटाइजेशन के तारीख आ समय",
        "exif-iimcategory": "श्रेणी",
        "exif-orientation-1": "सामान्य",
-       "namespacesall": "सब",
+       "namespacesall": "सà¤\97रà¥\80",
        "monthsall": "सब",
        "confirmemail": "इ-मेल पता कन्फर्म करीं",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|बात करीं]])",
        "version-no-ext-name": "[अज्ञात नाम]",
        "fileduplicatesearch": "नकल प्रति फाइल खोजीं",
-       "specialpages": "à¤\96़ाश पन्ना",
+       "specialpages": "à¤\96ास पन्ना",
        "specialpages-group-login": "प्रवेश / खाता निर्माण",
        "specialpages-group-changes": "तुरंत भइल परिवर्तन आ लॉगसभ",
        "specialpages-group-media": "मीडिया रिपोर्ट आ अपलोडसभ",
        "specialpages-group-users": "सदस्य अउर अधिकार",
        "specialpages-group-pages": "पन्नन के सूचीसभ",
        "specialpages-group-wiki": "डेटा अउर औजार",
+       "tag-filter": "[[Special:Tags|टैग]] छननी:",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|टैग|टैग कुल}}]]: $2)",
-       "logentry-delete-delete": "$1 à¤¦à¥\8dवारा à¤ªà¤¨à¥\8dना $3 {{GENDER:$2|हà¤\9fा}} à¤¦à¤¿à¤¹à¤² à¤\97à¤\88ल",
+       "logentry-delete-delete": "$1 à¤¦à¥\8dवारा à¤ªà¤¨à¥\8dना $3 {{GENDER:$2|हà¤\9fा}} à¤¦à¤¿à¤¹à¤² à¤\97à¤\87ल",
        "revdelete-restricted": "प्रबंधक पर प्रतिबंध लागू",
        "revdelete-unrestricted": "प्रबंधक पर से प्रतिबंध समाप्त",
+       "logentry-newusers-create": "खाता $1 {{GENDER:$2|बनावल गइल}}",
        "revdelete-summary": "सारांश संपादन",
        "searchsuggest-search": "खोजीं",
        "api-error-nomodule": "भितरी त्रुटी:कउनो अपलोड मॉड्युल सेट नइखे",
index ba9e38e..8ad53fb 100644 (file)
        "internalerror": "আভ্যন্তরীণ ত্রুটি",
        "internalerror_info": "আভ্যন্তরীণ ত্রুটি: $1",
        "internalerror-fatal-exception": "\"$1\" ধরনের মারাত্মক ব্যতিক্রম",
-       "filecopyerror": "\"$1\" à¦¥à§\87à¦\95à§\87 \"$2\" à¦«à¦¾à¦\87ল à¦\95পি à¦\95রা à¦¯à¦¾à¦¯à¦¼à¦¨à¦¿",
+       "filecopyerror": "\"$1\" à¦¥à§\87à¦\95à§\87 \"$2\" à¦«à¦¾à¦\87ল à¦\85নà§\81লিপি à¦\95রা à¦¯à¦¾à¦¯à¦¼à¦¨à¦¿à¥¤",
        "filerenameerror": "\"$1\" ফাইলটির নাম বদলে \"$2\" করা সম্ভব হচ্ছে না।",
        "filedeleteerror": "\"$1\" ফাইলটি মুছে ফেলা সম্ভব হচ্ছে না।",
        "directorycreateerror": "\"$1\" ডাইরেক্টরি তৈরি করা যায়নি।",
+       "directoryreadonlyerror": "নির্দেশিকা \"$1\" শুধুমাত্র পাঠযোগ্য।",
+       "directorynotreadableerror": "নির্দেশিকা \"$1\" পাঠযোগ্য নয়।",
        "filenotfound": "\"$1\" ফাইলটি খুঁজে পাওয়া যাচ্ছে না।",
        "unexpected": "অপ্রত্যাশিত মান: \"$1\"=\"$2\"।",
        "formerror": "ত্রুটি: ফরমটি জমা দেওয়া যায়নি",
        "no-null-revision": "\"$1\" এর জন্য নাল রিভিশন তৈরী করা যায়নি",
        "badtitle": "শিরোনামটি গ্রহনযোগ্য নয়।",
        "badtitletext": "অনুরোধকৃত পাতার শিরোনামটি অবৈধ, খালি কিংবা কোন ভুল আন্তঃভাষা বা আন্তঃউইকি শিরোনাম সংযোগ ছিল। এটিতে সম্ভবত এমন এক (একাধিক) ক্যারেক্টার আছে, যা (যেগুলি) শিরোনামে ব্যবহারযোগ্য নয়।",
+       "title-invalid-empty": "অনুরোধকৃত পাতার শিরোনামটি খালি বা শুধুমাত্র একটি নামস্থানের নাম ধারণ করে।",
+       "title-invalid-utf8": "অনুরোধকৃত পাতার শিরোনামটিতে একটি অবৈধ ইউটিএফ-৮ অনুক্রম রয়েছে।",
+       "title-invalid-interwiki": "অনুরোধকৃত পাতার শিরোনামে একটি আন্তঃউইকি সংযোগ উপস্থিত রয়েছে যা শিরোনামে ব্যবহার করা যাবে না।",
+       "title-invalid-talk-namespace": "অনুরোধকৃত পাতার শিরোনাম একটি আলাপ পাতা নির্দেশ করে যার অস্তিত্ব থাকতে পারে না।",
+       "title-invalid-characters": "অনুরোধকৃত পাতার শিরোনামে অবৈধ অক্ষর রয়েছে: \"$1\"।",
+       "title-invalid-relative": "শিরনামে রিলেটিভ পাথ ব্যবহার করা হয়েছে (./, ../), রিলেটিভ পাথ ব্যবহার উপযোগী নয়, কারণ ব্যবহারকারীর ব্রাউজারে এটি সঠিকভাবে কাজ করে না।",
+       "title-invalid-magic-tilde": "অনুরোধকৃত পাতার শিরোনামে অবৈধ জাদু টিল্ডা অনুক্রম (<nowiki>~~~</nowiki>) রয়েছে।",
+       "title-invalid-too-long": "পাতার শিরোনামটি অত্যাধিক দীর্ঘ। ইউটিএফ-৮ এনকোডিং অনুযায়ী এটি $1 {{PLURAL:$1|বাইটের}} থেকে দীর্ঘ হতে পারবে না।",
+       "title-invalid-leading-colon": "অনুরোধকৃত পাতার শিরোনামের শুরুতে একটি অবৈধ কোলন রয়েছে।",
        "perfcached": "নিচের উপাত্তগুলো ক্যাশ থেকে নেয়া এবং সম্পূর্ণ হালনাগাদকৃত না-ও হতে পারে। সর্বোচ্চ {{PLURAL:$1|একটি ফলাফল|$1 টি ফলাফল}} ক্যাশে থাকতে পারে।",
        "perfcachedts": "নিচের উপাত্তগুলো ক্যাশ থেকে নেয়া এবং $1 তারিখে হালনাগাদ করা হয়েছে। সর্বোচ্চ {{PLURAL:$4|একটি ফলাফল|$4 টি ফলাফল}} ক্যাশে থাকতে পারে।",
        "querypage-no-updates": "এই পাতার জন্য হালনাগাদ নিষ্ক্রিয় করা হয়েছে। এখানে রাখা উপাত্ত এ মুহূর্তে রিফ্রেশ করা হবে না।",
        "actionthrottledtext": "স্প্যাম-রোধী সমাধান হিসেবে এই কাজটি খুব কম সময়ে অনেক বেশিবার সম্পাদনা করার সীমা বেঁধে দেওয়া হয়েছে। আপনি সেই সীমা অতিক্রম করেছেন। অনুগ্রহ করে কয়েক মিনিট পরে আবার চেষ্টা করুন।",
        "protectedpagetext": "সম্পাদনা অথবা স্থানান্তর এড়াতে এ পাতাটির ব্যবহার নিয়ন্ত্রণ করা হয়েছে।",
        "viewsourcetext": "এ পাতাটি আপনি দেখতে এবং উৎসের অনুলিপি নিতে পারবেন:",
-       "viewyourtext": "আপনি ' ' ' আপনার সম্পাদনা ' ' ' এই পাতায় দেখতে এবং কপি করতে পারেন:",
+       "viewyourtext": "আপনি এই পাতায় <strong>আপনার সম্পাদনা</strong>দেখতে এবং অনুলিপি করতে পারেন:",
        "protectedinterface": "এই পাতার বিষয়বস্তু এই উইকি সফটওয়্যারের একটি ইন্টারফেস বার্তা প্রদান করে, তাই এটিকে সুরক্ষিত করে রাখা হয়েছে।\nসকল উইকির অনুবাদে কোনো ধরনের সংযোজন বা পরিবর্তন করতে, অনুগ্রহ করে মিডিয়াউইকি স্থানীয়করন প্রকল্প [//translatewiki.net/ translatewiki.net] ব্যবহার করুন।",
        "editinginterface": "<strong>সতর্কীকরণ:</strong> আপনি এমন একটি পাতা সম্পাদনা করছেন যা সফটওয়্যারের জন্য ইন্টারফেস টেক্সট প্রদান করে।\nএই পাতাতে সংঘটিত পরিবর্তন এই উইকির ব্যবহারকারীদের ইন্টারফেসে প্রভাব ফেলবে, যা অন্য ব্যবহারকারীরা দেখতে পাবেন।",
        "translateinterface": "সকল উইকির জন্য অনুবাদ যোগ বা পরিবর্তন করতে, দয়া করে [//translatewiki.net/ translatewiki.net], মিডিয়াউইকি স্থানীয়করণ প্রকল্প ব্যবহার করুন।",
        "wrongpassword": "আপনি ভুল পাসওয়ার্ড ব্যবহার করেছেন। অনুগ্রহ করে আবার চেষ্টা করুন।",
        "wrongpasswordempty": "পাসওয়ার্ড প্রবেশের ঘরটি খালি ছিল। দয়া করে আবার চেষ্টা করুন।",
        "passwordtooshort": "পাসওয়ার্ড কমপক্ষে {{PLURAL:$1|১ অক্ষরের|$1 অক্ষরের}} হতে হবে।",
+       "passwordtoolong": "পাসওয়ার্ড {{PLURAL:$1|১|$1}} অক্ষরের চেয়ে দীর্ঘ হতে পারবে না।",
        "password-name-match": "আপনার পাসওয়ার্ড আপনার ব্যবহারকারী নাম থেকে আলাদা হতে হবে।",
        "password-login-forbidden": "এই ব্যবহারকারীর নাম এবং পাসওয়ার্ডটি ব্যবহার নিষিদ্ধ করা হয়েছে।",
        "mailmypassword": "পাসওয়ার্ড রিসেট",
        "anoneditwarning": "<strong>সতর্কতা:</strong> আপনি বর্তমানে প্রবেশ করেননি। যদি আপনি সম্পাদনা করেন এই পাতার সম্পাদনার ইতিহাসে আপনার আইপি ঠিকানা সার্বজনীনভাবে সংরক্ষিত হবে। যদি আপনি  <strong>[$1 প্রবেশ করেন]</strong> বা  <strong>[$2 একটি অ্যাকাউন্ট তৈরি করেন]</strong>, তাহলে আপনি আপনার আইপি ঠিকানা গোপন রাখতে পারবেন ও অন্যান্য অনেক কিছু সুবিধা পাবেন।",
        "anonpreviewwarning": "আপনি লগ ইন করেননি। এই পাতার সম্পাদনার ইতিহাসে আপনার আইপি সংখ্যা সংরক্ষিত হবে।",
        "missingsummary": "'''খেয়াল করুন''':  আপনি কিন্তু সম্পাদনার সারাংশ দেননি। আবার যদি \"সংরক্ষণ\" বোতামে ক্লিক করেন, তাহলে ঐ সারাংশ বাক্যটি ছাড়াই আপনার সম্পাদনা সংরক্ষিত হবে।",
+       "selfredirect": "<strong>সতর্কতা:</strong> আপনি এই পাতাকে এর নিজের দিকে পুনঃনির্দেশিত করছেন।\nআপনাকে পুনঃনির্দেশিত করার জন্য হয় ভুল লক্ষ্য নির্দিষ্ট করেছেন, অথবা আপনি ভুল পাতা সম্পাদনা করছেন।\nআপনি যদি আবার \"{{int:savearticle}}\" ক্লিক করেন, পুনর্নির্দেশ যেকোনোভাবেই হোক তৈরি করা হবে।",
        "missingcommenttext": "দয়া করে নিচে মন্তব্য যোগ করুন।",
        "missingcommentheader": "'''খেয়াল করুন:''' আপনি এই মন্তব্যের জন্য কোন বিষয়/শিরোনাম দেননি। সংরক্ষণ বোতামে ক্লিক করলে, আপনার এই সম্পাদনা কোন বিষয়/শিরোনাম ছাড়াই সংরক্ষিত হবে।",
        "summary-preview": "সারাংশ প্রাকদর্শন:",
        "history-feed-description": "এ উইকিতে এই পাতার সংশোধনের ইতিহাস",
        "history-feed-item-nocomment": "$2-এ $1",
        "history-feed-empty": "অনুরোধকৃত পাতাটির কোন অস্তিত্ব নেই।\nহয়ত পাতাটি উইকি থেকে মুছে ফেলা হয়েছে, কিংবা নতুন নামকরণ করা হয়েছে।\nপ্রাসঙ্গিক নতুন পাতাগুলির জন্য [[Special:Search|উইকি অনুসন্ধানের]] চেষ্টা করুন।",
+       "history-edit-tags": "নির্বাচিত সংশোধনের ট্যাগ সম্পাদনা করুন",
        "rev-deleted-comment": "(সম্পাদনা সারাংশ অপসারিত)",
        "rev-deleted-user": "(ব্যবহারকারীর নাম সরিয়ে নেওয়া হয়েছে)",
        "rev-deleted-event": "(লগ তথ্য সরানো হয়েছে)",
        "rev-showdeleted": "দেখাও",
        "revisiondelete": "অবলুপ্ত/পুনঃস্থাপন সংশোধনসমূহ",
        "revdelete-nooldid-title": "বেঠিক লক্ষ্য সংশোধন",
-       "revdelete-nooldid-text": "এই কাজটি সম্পন্ন করার জন্য আপনি কোন লক্ষ্য সংশোধন নির্বাচন করেননি, নির্বাচিত সংশোধন নেই, অথবা আপনি বর্তমান সংশোধন লুকাতে চাইছেন।",
+       "revdelete-nooldid-text": "এই কাজটি সম্পন্ন করার জন্য আপনি কোন লক্ষ্য সংশোধন নির্বাচন করেননি যেখানে এই কাজটি সম্পাদন করা হবে, অথবা নির্বাচিত সংশোধনটি নেই, অথবা আপনি বর্তমান সংশোধন আড়াল করার চেষ্টা করছেন।",
        "revdelete-no-file": "নির্ধারিত ফাইলটি নেই।",
        "revdelete-show-file-confirm": "আপনি কি নিশ্চিত যে \"<nowiki>$1</nowiki>\" ফাইলের $2 তারিখের $3 টার অপসারণ লগ দেখানো হবে?",
        "revdelete-show-file-submit": "হ্যাঁ",
        "revdelete-text-text": "অপসারিত সংস্করণসমূহ এখনও পাতা ইতিহাসে প্রদর্শিত হয়, কিন্তু সেই বিষয়বস্তুর অংশগুলি সর্বসাধারণ দেখতে পারবে না।",
        "revdelete-text-file": "অপসারিত ফাইলের সংস্করণসমূহ এখনও ফাইল ইতিহাসে প্রদর্শিত হয়, কিন্তু সেই বিষয়বস্তুর অংশগুলি সর্বসাধারণ দেখতে পারবে না।",
        "logdelete-text": "অপসারিত লগ ইভেন্টসমূহ এখনও লগে প্রদর্শিত হয়, কিন্তু সেই বিষয়বস্তুর অংশগুলি সর্বসাধারণ দেখতে পারেবে না।",
+       "revdelete-text-others": "অন্যান্য প্রশাষকগণ এই লুকানো তথ্য গুলো দেখতে পারবেন এবং প্রয়োজনে সেগুলো ফিরিয়ে আনতে পারবেন, যদি অন্যান্য কোনো বাধা না থাকে।",
        "revdelete-confirm": "অনুগ্রহ করে নিশ্চিত করুন যে আপনি এটি করতে চাচ্ছিলেন, আপনি এর ফলাফল সম্পর্কে অবগত আছেন, এবং [[{{MediaWiki:Policy-url}}|নীতিমালার]] উপর ভিত্তি করেই এই কাজটি করছেন।",
        "revdelete-suppress-text": "নিচের বিষয়গুলোর ক্ষেত্রেই '''কেবলমাত্র'''  চাপাচাপি করা যাবে:\n* সম্ভাব্য মানহানিকর তথ্য\n* ভুল ব্যক্তিগত তথ্য\n*: ''বাসার ঠিকানা এবং ফোন নম্বর, সোসাল সিকিউরিটি নম্বর, ইত্যাদি।''",
        "revdelete-legend": "দৃষ্টিপাত সীমাবদ্ধ করো",
        "mergehistory-empty": "কোন সংশোধন একত্র করা যাবে না.",
        "mergehistory-success": "[[:$1]] গুলোর মধ্যে $3 {{PLURAL:$3| টি সংশোধন |টি সংশোধনগুলো}} সফলভাবে [[:$2]]-এর সাথে একত্রিত করা হয়েছে।",
        "mergehistory-fail": "ইতিহাস একত্র করা গেল না। অনুগ্রহ করে পাতাটি ও সময়ের প্যারামিটারগুলি আবার পরীক্ষা করে দেখুন।",
+       "mergehistory-fail-toobig": "ইতিহাস থেকে আগের পাতাগুলো একীকরণ সম্ভব নয়, কারণ এর ফলে সর্বোচ্চ $1 টি {{PLURAL:$1|সংস্করণ}} স্থানান্তরের সীমানা অতিক্রম করবে।",
        "mergehistory-no-source": "$1 বলে কোন উৎস পাতার অস্তিত্ব নেই।",
        "mergehistory-no-destination": "$1 বলে কোন গন্তব্য পাতার অস্তিত্ব নেই।",
        "mergehistory-invalid-source": "উৎস পাতার অবশ্যই একটি বৈধ শিরোনাম থাকতে হবে।",
        "prefs-tokenwatchlist": "টোকেন",
        "prefs-diffs": "পার্থক্য",
        "prefs-help-prefershttps": "পরবর্তী লগইনের পর থেকে এই পরিবর্তনগুলো কার্যকর হবে।",
+       "prefswarning-warning": "আপানি পছন্দসমূহ পাতায় পাতায় পরিবর্তন করেছেন যেগুলো সংরক্ষণ করা হয়নি। আপনি যদি এই পাতাটি ছেড়ে যাওয়ার আগে \"$1\" ক্লিক না করেন তবে পছন্দসমূহ হালনাগাদ হবে না।",
        "prefs-tabs-navigation-hint": "সাহায্য: আপনি ডান এবং বাম অ্যারো বাটন ব্যবহার করে বিভিন্ন ট্যাবগুলোতে যেতে পারবেন।",
        "email-address-validity-valid": "ইমেইল ঠিকানাটি সঠিক",
        "email-address-validity-invalid": "সঠিক ইমেই ঠিকানা প্রদান করুন",
        "userrights-lookup-user": "ব্যবহারকারী দল ব্যবস্থাপনা করুন",
        "userrights-user-editname": "ব্যবহারকারীর নাম লিখুন:",
        "editusergroup": "ব্যবহারকারীর দল সম্পাদনা করো",
-       "editinguser": "'''[[User:$1|$1]]''' $2 ব্যবহারকারীর জন্য ব্যবহারকারী অধিকার পরিবর্তন করছেন",
+       "editinguser": "<strong>[[User:$1|$1]]</strong> $2 {{GENDER:$1|ব্যবহারকারীর}} জন্য ব্যবহারকারী অধিকার পরিবর্তন করছেন",
        "userrights-editusergroup": "ব্যবহারকারীর দল সম্পাদনা করো",
        "saveusergroups": "ব্যবহারকারীর দল সংরক্ষণ করো",
        "userrights-groupsmember": "সদস্য:",
        "right-protect": "পাতাটির সুরক্ষা সীমা পরিবর্তন করুন এবং সুরক্ষিত পাতটি সম্পাদনা করুন",
        "right-editprotected": "সুরক্ষিত পাতা সম্পাদনা (ক্যাসকাডিং সুরক্ষা ছাড়া)",
        "right-editsemiprotected": "পাতা সম্পাদনা সুরক্ষিত রয়েছে,  \"{{int:protect-level-autoconfirmed}}\"",
+       "right-editcontentmodel": "পাতার তথ্যের ধরণ সম্পাদনা করুন",
        "right-editinterface": "ব্যবহারকারী ইন্টারফেস সম্পাদনা",
        "right-editusercssjs": "অন্য ব্যবহারকারীগণের CSS এবং JS ফাইল সম্পাদনা",
        "right-editusercss": "অন্য ব্যবহারকারীগণের CSS ফাইল সম্পাদনা",
        "right-sendemail": "অন্য ব্যবহারকারীকে ইমেইল পাঠান",
        "right-passwordreset": "পাসওয়ার্ড রিসেট ইমেইল দেখুন",
        "right-managechangetags": "ডাটাবেস থেকে [[Special:Tags|ট্যাগ]] তৈরি ও অপসারণ করুন",
+       "right-applychangetags": "সম্পাদনার সাথে [[Special:Tags|ট্যাগ]] যুক্ত করুন",
+       "right-changetags": "নির্দিষ্ট সংস্করণ এবং দীর্ঘ সম্পাদনাগুলোতে [[Special:Tags|ট্যাগ]] সংযোজন ও অপসারণ করুন",
        "newuserlogpage": "ব্যবহারকারী সৃষ্টির লগ",
        "newuserlogpagetext": "এটি নতুন ব্যবহারকারী সৃষ্টির লগ",
        "rightslog": "ব্যবহারকারীর অধিকার লগ",
        "action-viewmywatchlist": "আপনার নজরতালিকা দেখুন",
        "action-viewmyprivateinfo": "আপনার ব্যক্তিগত তথ্য দেখুন",
        "action-editmyprivateinfo": "আপনার ব্যক্তিগত তথ্য সম্পাদনা করুন",
+       "action-editcontentmodel": "পাতার কন্টেন্ট মডেল সম্পাদনা করুন",
        "action-managechangetags": "ডাটাবেস থেকে ট্যাগ তৈরি ও অপসারণ করুন",
+       "action-applychangetags": "আপনার পরিবর্তনগুলোর সাথে ট্যাগ সংযোজন করুন",
+       "action-changetags": "নির্দিষ্ট সংস্করণ এবং দীর্ঘ সম্পাদনাগুলোতে ট্যাগ সংযোজন ও অপসারণ করুন",
        "nchanges": "$1টি {{PLURAL:$1|পরিবর্তন}}",
        "enhancedrc-since-last-visit": "{{PLURAL:$1|সর্বশেষ প্রদর্শনের পর}} $1টি",
        "enhancedrc-history": "ইতিহাস",
        "uploaddisabledtext": "ফাইল আপলোড নিষ্ক্রিয়।",
        "php-uploaddisabledtext": "পিএইপি -এ ফাইল আপলোড নিস্ক্রিয় রয়েছে।\nঅনুগ্রহ করে file_uploads সেটিং পরীক্ষা করুন।",
        "uploadscripted": "এই ফাইলে এমন HTML বা স্ক্রিপ্ট কোড আছে যা একটি ওয়েব ব্রাউজার ভুল বুঝতে পারে।",
+       "uploaded-hostile-svg": "আপলোড করা SVG ফাইলের শৈলী উপাদানে অনিরাপদ সিএসএস পাওয়া গেছে।",
        "uploadscriptednamespace": "এই SVG ফাইলে অবৈধ নামস্থান \"$1\" রয়েছে",
        "uploadinvalidxml": "আপলোডকৃত ফাইলে XML পার্স করা যাবে না।",
        "uploadvirus": "এই ফাইলটিতে ভাইরাস আছে! ব্যাখ্যা: $1",
        "backend-fail-describe": "\"$1\" ফাইলের মেটাডাটা পরিবর্তন সম্ভব নয়।",
        "backend-fail-alreadyexists": "\"$1\" নামের একটি ফাইল আগে থেকেই রয়েছে।",
        "backend-fail-store": "\"$2\"-এ \"$1\" ফাইলটি সংরক্ষন করা সম্ভব নয়।",
-       "backend-fail-copy": "\"$1\" à¦«à¦¾à¦\87লà¦\9fি \"$2\"-তà§\87 à¦\95পি করা সম্ভব নয়।",
+       "backend-fail-copy": "\"$1\" à¦«à¦¾à¦\87লà¦\9fি \"$2\"-তà§\87 à¦\85নà§\81লিপি করা সম্ভব নয়।",
        "backend-fail-move": "\"$2\"-এ \"$1\" ফাইলটি স্থানান্তর করা সম্ভব নয়।",
        "backend-fail-opentemp": "অস্থায়ী ফাইলটি ওপেন করা যাচ্ছে না।",
        "backend-fail-writetemp": "অস্থায়ী ফাইলটিতে লেখা যাচ্ছে না।",
        "trackingcategories": "বিষয়শ্রেণীসমূহ অনুসরণ করা হচ্ছে",
        "trackingcategories-msg": "বিষয়শ্রেণী অনুসরণ করা হচ্ছে",
        "trackingcategories-name": "বার্তা নাম",
+       "trackingcategories-desc": "বিষয়শ্রেণী অন্তর্ভুক্তির মানদণ্ড",
        "broken-file-category-desc": "এই পাতায় একটি ভাঙ্গা ফাইলের লিঙ্ক রয়েছে (একটি ফাইল এম্বেড করার জন্য একটি লিঙ্ক যখন ফাইলটির অস্তিত্ব নেই)",
        "trackingcategories-nodesc": "কোন বর্ণনা নেই।",
        "trackingcategories-disabled": "বিষয়শ্রেণীটি বিকল",
        "movepagetalktext": "পাতাটির সাথে সাথে সংশ্লিষ্ট আলোচনা পাতাটিও স্বয়ংক্রিয়ভাবে সরানো হবে '''যদি না:'''\n*খালি নয় এমন একটি আলাপ পাতা নতুন শিরোনামটির অধীনে ইতিমধ্যেই বিদ্যমান থাকে, অথবা\n*আপনি নিচের বাক্সটি থেকে টিক সরিয়ে নিতে পারেন।\n\nএসব ক্ষেত্রে আপনি চাইলে নিজের হাতে পাতাটিকে সরাতে বা একত্রীকরণ করতে পারেন।",
        "movearticle": "যে পাতা সরিয়ে ফেলা হবে",
        "moveuserpage-warning": "'''সতর্কতা:''' আপনি একটি ব্যবহারকারী পাতা স্থানান্তর করছেন। অনুগ্রহ করে লক্ষ্য করুন যে এর মাধ্যমে কেবলমাত্র পাতাটি স্থানান্তর হবে, কিন্তু পাতার নাম পরিবর্তন হবে ''না''।",
+       "movecategorypage-warning": "<strong>সতর্কীকরণ:</strong> আপনি একটি বিষয়শ্রেণীর পাতা স্থানান্তর করতে চলেছেন। দয়া করে মনে রাখবেন যে এতে শুধুমাত্র পাতাটি স্থানান্তরিত হবে এবং পুরাতন বিষয়শ্রেণীতে থাকা কোন পাতা নতুনটিতে পুনঃশ্রেণীকরণ করা হবে <em>না</em>।",
        "movenologintext": "কোন পাতা সরিয়ে ফেলতে চাইলে আপনাকে অবশ্যই একজন নিবন্ধিত ব্যবহারকারী হতে হবে ও অ্যাকাউন্টে [[Special:UserLogin|প্রবেশ]] করতে হবে।",
        "movenotallowed": "আপনার {{SITENAME}}-তে পাতা স্থানান্তরের অনুমতি নেই।",
        "movenotallowedfile": "আপনার এই ফাইলটি স্থানান্তরের অনুমতি নেই।",
        "thumbnail-temp-create": "অস্থায়ী থাম্বনেইল ফাইল তৈরী করা সম্ভব নয়",
        "thumbnail-dest-create": "নির্ধারিত স্থানে থাম্বনেইল তৈরী করা সম্ভব নয়",
        "thumbnail_invalid_params": "থাম্বনেইল প্যারামিটারগুলি অবৈধ",
+       "thumbnail_toobigimagearea": "$1 মাত্রার চেয়ে বড় ফাইল",
        "thumbnail_dest_directory": "গন্তব্য ডিরেক্টরি তৈরি করা যায়নি",
        "thumbnail_image-type": "চিত্রের ধরন সমর্থন করে না",
        "thumbnail_gd-library": "অসম্পূর্ণ জিডি লাইব্রেরী কনফিগারেশন: $1 ফাংশন নেই",
        "import-interwiki-history": "এই পাতার সমস্ত ইতিহাসের সংস্করণের অনুলিপি করা হোক",
        "import-interwiki-templates": "সকল টেম্পলেট অন্তর্ভুক্ত",
        "import-interwiki-submit": "আমদানি",
+       "import-mapping-default": "পূর্বনির্ধারিত অবস্থানে আমদানি করুন",
+       "import-mapping-namespace": "একটি নামস্থানে আমদানি করুন:",
        "import-mapping-subpage": "নিচের পাতার উপপাতাসমূহ হিসাবে আমদানি করুন:",
        "import-upload-filename": "ফাইলনাম:",
        "import-comment": "মন্তব্য:",
        "importcantopen": "আমদানি ফাইল খোলা যায়নি",
        "importbadinterwiki": "খারাপ আন্তঃউইকি সংযোগ",
        "importsuccess": "আমদানি সফল!",
-       "importnosources": "à¦\95à§\8bন à¦\86নà§\8dতà¦\83à¦\89à¦\87à¦\95ি à¦\86মদানি à¦\89à§\8eস à¦¸à¦\82à¦\9cà§\8dà¦\9eায়িত à¦\95রা à¦¹à¦¯à¦¼à¦¨à¦¿ এবং সরাসরি ইতিহাস আপলোডের ক্ষমতা নিষ্ক্রিয় করা হয়েছে।",
+       "importnosources": "à¦\95à§\8bন à¦\89à¦\87à¦\95ি à¦¯à§\87à¦\96ান à¦¥à§\87à¦\95à§\87 à¦\86মদানি à¦\95রতà§\87 à¦¸à¦\82à¦\9cà§\8dà¦\9eায়িত à¦\95রা à¦¹à¦¯à¦¼à§\87à¦\9bà§\87 এবং সরাসরি ইতিহাস আপলোডের ক্ষমতা নিষ্ক্রিয় করা হয়েছে।",
        "importnofile": "কোন আমদানি ফাইল আপলোড করা হয়নি।",
        "importuploaderrorsize": "আমদানি ফাইল আপলোড ব্যর্থ। ফাইলটির আকার অনুমোদিত আপলোডের আকারের চেয়ে বড়।",
        "importuploaderrorpartial": "আমদানি ফাইল আপলোড ব্যর্থ। ফাইলটি কেবল আংশিকভাবে আপলোড করা হয়েছে।",
        "pageinfo-protect-cascading-yes": "হ্যাঁ",
        "pageinfo-protect-cascading-from": "ক্যাসকেডিং সুরক্ষা পদ্ধতি",
        "pageinfo-category-info": "বিষয়শ্রেণী তথ্য",
+       "pageinfo-category-total": "মোট সদস্যদের সংখ্যা",
        "pageinfo-category-pages": "পাতার সংখ্যা",
        "pageinfo-category-subcats": "উপবিষয়শ্রেণীর সংখ্যা",
        "pageinfo-category-files": "ফাইলের সংখ্যা",
        "tags-deactivate-reason": "কারণ:",
        "tags-deactivate-submit": "নিষ্ক্রিয়",
        "tags-edit-title": "ট্যাগ সম্পাদনা করুন",
+       "tags-edit-manage-link": "ট্যাগ পরিচালনা করুন",
+       "tags-edit-revision-selected": "[[:$2]] পাতার {{PLURAL:$1|নির্বাচিত সংশোধন|নির্বাচিত সংশোধনসমূহ}}:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|নির্বাচিত লগ ইভেন্ট}}:",
+       "tags-edit-new-tags": "নতুন ট্যাগ:",
        "tags-edit-reason": "কারণ:",
+       "tags-edit-success": "পরিবর্তন সফলভাবে প্রয়োগ করা হয়েছে।",
+       "tags-edit-failure": "পরিবর্তন প্রয়োগ করা যায়নি: $1",
+       "tags-edit-nooldid-title": "লক্ষ্য সংশোধন অবৈধ",
+       "tags-edit-none-selected": "যোগ করতে অথবা অপসারণ করতে অন্ততপক্ষে একটি ট্যাগ দয়া করে নির্বাচন করুন।",
        "comparepages": "পাতার তুলনা",
        "compare-page1": "পাতা ১",
        "compare-page2": "পাতা ২",
        "revdelete-unrestricted": "এই সীমাবদ্ধতা প্রশাসকের ক্ষেত্রে তুলে নাও",
        "logentry-block-block": "$1 {{GENDER:$4|$3}} কে $5 মেয়াদের জন্য {{GENDER:$2|বাধাদান}} করেছেন $6",
        "logentry-block-unblock": "$1 {{GENDER:$4|$3}}-এর উপর থেকে বাধা তুলে {{GENDER:$2|নিয়েছেন}}",
+       "logentry-import-upload": "$1 ফাইল আপলোড দ্বারা $3 {{GENDER:$2|আমদানি করেছেন}}",
        "logentry-import-interwiki": "$1 অন্য একটি উইকিতে থেকে $3 {{GENDER:$2|আমদানি করেছে}}",
        "logentry-move-move": "$1 ব্যবহারকারী $3 পাতাটিকে $4 শিরোনামে {{GENDER:$2|স্থানান্তর}} করেছেন",
        "logentry-move-move-noredirect": "$1 ব্যবহারকারী $3 পাতাটিকে $4 শিরোনামে কোনো পুনর্নির্দেশনা ছাড়াই {{GENDER:$2|স্থানান্তর}} করেছেন",
        "logentry-upload-overwrite": "$1 $3-এর একটি নতুন সংস্করণ {{GENDER:$2|আপলোড করেছেন}}",
        "logentry-upload-revert": "$1 $3 {{GENDER:$2|আপলোড করেছেন}}",
        "log-name-managetags": "ট্যাগ ব্যবস্থাপনা লগ",
+       "logentry-managetags-create": "$1 \"$4\" ট্যাগ {{GENDER:$2|তৈরি করেছে}}",
        "log-name-tag": "ট্যাগ লগ",
        "rightsnone": "(কিছু নাই)",
        "revdelete-summary": "সম্পাদনা সারাংশ",
index 2ff0ef4..d2f3850 100644 (file)
@@ -6,7 +6,8 @@
                        "Phurbutsering",
                        "Shirayuki",
                        "YeshiTuhden",
-                       "아라"
+                       "아라",
+                       "Sawuche"
                ]
        },
        "tog-underline": "འོག་ཐིག་ཅན་ལ་སྦྲེལ་མཐུད།",
@@ -33,7 +34,7 @@
        "tog-shownumberswatching": "ཤོག་ངོས་ལ་ལྟ་བཞིན་པའི་སྤྱོད་མིའི་ཁ་གྲངས་སྟོན།",
        "tog-oldsig": "ད་ཡོད་མིང་རྟགས།",
        "tog-fancysig": "མིང་རྟགས་རྣམས་ཝེ་ཁེ་ཡི་གེར་བརྩིས་རོགས། (རང་འགུལ་གྱི་སྦྲེལ་མཐུད་མེད་པ།)",
-       "tog-uselivepreview": "འà½\86རà¼\8bà½\96à½\9eིà½\93à¼\8bà½\94འིà¼\8bསà¾\94ོà½\93à¼\8bལà¾\9fà¼\8bསà¾\9fོà½\93à¼\8bརོà½\82སà¼\8d (à½\9aོà½\91à¼\8bལà¾\9fའིà¼\8bà½\86ེà½\91à¼\8d)",
+       "tog-uselivepreview": "à½\96à½\85ོསà¼\8bà½\9fིà½\93à¼\8bà½\94à¼\8bསà¾\94ོà½\93à¼\8bལà¾\9fà¼\8bà½\96ྱེà½\91à¼\8d",
        "tog-forceeditsummary": "རྩོམ་སྒྲིག་ཀྱི་བསྡུས་དོན་སྟོང་པ་ནང་འཇུག་བྱེད་སྐབས་ང་ལ་དྲན་སྐུལ་བྱེད་རོགས།",
        "tog-watchlisthideown": "ངའི་རྩོམ་སྒྲིག་རྣམས་ལྟ་ཞིབ་ཐོ་ལས་སྦས་རོགས།",
        "tog-watchlisthidebots": "རང་འགུལ་འཕྱུལ་ཆས་ཀྱི་བཟོ་འཅོས་བྱས་པ་རྣམས་ངའི་ལྟ་ཞིབ་ཐོ་ལས་སྦས་རོགས།",
        "otherlanguages": "སྐད་རིགས་གཞན་ཐོག།",
        "redirectedfrom": "$1 ནས་ཁ་ཕྱོགས་བསྐྱར་དུ་བཟོས་པ།",
        "redirectpagesub": "རིམ་འགྲེམ་ཤོག་ངོས།",
+       "redirectto": "འདི་རུ་ གསར་བཀོད་བྱེད།",
        "lastmodifiedat": "ཤོག་ངོས་འདི་ཡི་བཟོ་བཅོས་མཐའ་མ་$1 ཀྱི་ $2 ལ་རེད།",
        "viewcount": "ཤོགངོས་འདི་{{PLURAL:$1|ཐེངས་གཅིག་|ཐེངས་ $1}}བལྟས་འདུག།",
        "protectedpage": "སྲུང་སྐྱོབ་བྱས་པའི་ཤོག་ངོས།",
        "pool-queuefull": "སྤྱི་པའི་ཐེབས་རྩའི་བསྟར་པ་ཁེངས་འདུག།",
        "pool-errorunknown": "ངོས་མ་ཟིན་པའི་ནོར་འཁྲུལ།",
        "pool-servererror": "($1) ,ཐུན་མོང་ཡ་ལན་གི་ཞབས་ཞུ་གནས་སྐབས་རིང་མིན་འདུག།",
+       "poolcounter-usage-error": "བཀོལ་སྤྱོད་མཁན་ལ་ནོར་འཁྲུལ། $1",
        "aboutsite": "{{SITENAME}}ཡི་སྐོར།",
        "aboutpage": "Project:སྐོར།",
        "copyright": "དེ་མིན་གྱི་མཆན་འགྲེལ་ཡོད་ན་མ་གཏོགས། དྲ་བའི་ནང་དོན་ $1 སྟེང་དུ་ཡོད།",
        "disclaimers": "བདག་སྤྲོད་འདོར་མཁན།",
        "disclaimerpage": "Project:ཡོངས་ཁྱབ་ཀྱི་བདག་སྤྲོད་ཁེ་དབང་རྩོད་ལེན།",
        "edithelp": "རྩོམ་སྒྲིག་རོགས་རམ།",
+       "helppage-top-gethelp": "རོགས་རམ།",
        "mainpage": "གཙོ་གནད་ཤོག་ངོས།",
        "mainpage-description": "གཙོ་གནད་ཤོག་ངོས།",
        "policy-url": "Project: སྒྲིག་གཞི།",
        "hidetoc": "སྦས།",
        "collapsible-collapse": "རྡིབ་སྐྱོན།",
        "collapsible-expand": "རྒྱ་སྐྱེད།",
+       "confirmable-confirm": "འདི་ལྟར་ {{GENDER:$1|you}} ལ་བྱེད་པ་གཏན་ཁེལ་ལམ",
+       "confirmable-yes": "ཡིན།",
+       "confirmable-no": "མིན།",
        "thisisdeleted": "$1 ལ་ལྟ་བའམ་རང་ལོགས་བྱེད་རོགས།",
        "viewdeleted": " $1 ལ་ལྟ་དགོས་སམ།",
        "restorelink": "{{PLURAL:$1|བསུབས་པའི་རྩོམ་སྒྲིག|$1 བསུབས་པའི་རྩོམ་སྒྲིག}}",
        "feedlinks": "འདྲན་ཆས། :",
        "feed-invalid": "རྒྱུན་མངགས་ཡ་ལན་ཕན་མེད་རེད་འདུག།",
+       "feed-unavailable": "མཉམ་འབྲེལ་མཐུན་རྐྱེན་ད་ལྟ་སྒྲུབ་མི་ཐུབ།",
        "site-rss-feed": "$1 ཡི་RSS འབྱུང་ཁུངས།",
        "site-atom-feed": "$1 ཡི་ཆ་ཤས་ཡ་ལན།",
        "page-rss-feed": "$1 ཡི་RSS འབྱུང་ཁུངས།",
        "enterlockreason": "བཀག་སྡོམ་བྱས་དགོས་རྐྱེན་བཀོད་རོགས དེ་མིན་བཀག་སྡོམ་འདི་དུས་ཚོད་ནམ་ཞིག་ལ་བཀྲོལ་རྒྱུ་ཡིན་མིན་སོགས་བཀོད་རོགས།",
        "readonlytext": "རྨང་གཞི་གྲངས་མཛོད་འདི་གནས་སྐབས་བཀག་སྡོམ་བྱས་འདུག། ཕལ་ཆེར་རྨང་གཞི་གྲངས་མཛོད་འདི་ཉར་འཚག་བྱད་བཞིན་འདུག། \n$1 རྒྱུ་རྐྱེན་འདི་འོག་དོ་དམ་པས་བཀག་སྡོམ་བྱས་འདུག།",
        "missing-article": "གཞི་གྲངས་མཛོད་ནང་ཤོག་ངོས་ཀྱི་ཡི་གེ་བཙལ་ཐུབ་ཀྱི་མི་འདུག་པས། \"$1\" $2 \nཕལ་ཆེར་འདི་གཤམ་ཀྱི་འགོག་རྐྱེན་ལོ་རྒྱུས་སུབ་པ་འམ་དུས་ཡོལ་ཀྱི་ཁྱད་པར་སོགས་ཀྱི་རྒྱུ་རྐྱེན་ཡིན།\nགལ་སྲིད་དེ་ལྟར་མིན་ཚེ། ཕལ་ཆེར་ཁྱེད་ཀྱི་ནོར་སྐྱོན་འཙལ་རྙེད་བྱང་བས།  [[Special:ListUsers/sysop|administrator]], དྲ་རྒྱའི་ས་ཚིགས་འདི་ཐོག་ཞུ་ཡིག་འབུལ་གནང་ཡོང་བ་མཁྱེན།",
+       "missingarticle-rev": "(བསྐྱར་ཞིབ།#: $1)",
        "readonly_lag": "གཞི་གྲངས་མཛོད་རང་འགུལ་གི་སྒོ་ཐེབས་འདུག།",
        "internalerror": "ནང་ལོག་ནོར་སྐྱོན།",
        "internalerror_info": "ནང་ལོགས་ནོར་སྐྱོན། $1",
index 5ff574a..98cd52e 100644 (file)
        "ipb-hardblock": "Mirout ouzh an implijerien kevreet da zegas kemmoù adalek ar chomlec'h IP-mañ",
        "ipbcreateaccount": "Mirout ouzh an implijer da grouiñ kontoù",
        "ipbemailban": "Mirout ouzh an implijer da gas posteloù",
-       "ipbenableautoblock": "Stankañ war-eeun ar chomlec'h IP diwezhañ implijet gant an den-mañ hag an holl chomlec'hioù a c'hallfe klask kemmañ traoù drezo drezo diwezhatoc'h",
+       "ipbenableautoblock": "Stankañ war-eeun ar chomlec'h IP diwezhañ implijet gant an den-mañ hag an holl chomlec'hioù a c'hallfe klask kemmañ traoù drezo diwezhatoc'h",
        "ipbsubmit": "Stankañ an implijer-mañ",
        "ipbother": "Prantad all",
        "ipboptions": "2 eurvezh:2 hours,1 devezh:1 day,3 devezh:3 days,1 sizhunvezh:1 week,2 sizhunvezh:2 weeks,1 mizvezh:1 month,3 mizvezh:3 months,6 mizvezh:6 months,1 bloaz:1 year,da viken:infinite",
index cc56895..baa7e08 100644 (file)
@@ -19,7 +19,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "Milicevic01",
-                       "Macofe"
+                       "Macofe",
+                       "Emir Mujadzic"
                ]
        },
        "tog-underline": "Podvuci veze:",
        "no-null-revision": "Ne mogu napraviti novu ništavnu reviziju za stranicu \"$1\"",
        "badtitle": "Loš naslov",
        "badtitletext": "Zahtjevani naslov stranice je bio neispravan, prazan ili neispravno povezan međujezički ili interviki naslov.",
+       "title-invalid-interwiki": "Traženi naslov stranice sadrži interwiki link koji ne može biti korišten u naslovima.",
        "perfcached": "Slijedeći podaci su keširani i možda neće biti u potpunosti ažurirani. Keš sadrži najviše {{PLURAL:$1|jedan rezultat|$1 rezultata}}.",
        "perfcachedts": "Sljedeći podaci nalaze se u memoriji i posljednji put ažurirani su $1. Keš sadrži najviše {{PLURAL:$4|jedan rezultat|$4 rezultata}}.",
        "querypage-no-updates": "Ažuriranje ove stranice je isključeno.\nPodaci koji se ovdje nalaze ne moraju biti aktuelni.",
        "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.",
-       "cascadeprotected": "Uređivanje ove stranice je zabranjeno jer sadrži {{PLURAL:$1|stranicu zaštićenu|stranice zaštićene}} od uređivanja iz razloga:\n$2",
+       "cascadeprotected": "Uređivanje ove stranice zabranjeno je jer sadrži {{PLURAL:$1|stranicu zaštićenu|stranice zaštićene}} od uređivanja iz razloga:\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.",
        "customjsprotected": "Nemate dozvolu za mijenjanje ove JavaScript stranice jer sadrži osobne postavke nekog drugog korisnika.",
        "whitelistedittext": "Da bi ste uređivali stranice, morate se $1.",
        "confirmedittext": "Morate potvrditi Vašu e-mail adresu prije nego počnete mijenjati stranice.\nMolimo da postavite i verifikujete Vašu e-mail adresu putem Vaših [[Special:Preferences|korisničkih opcija]].",
        "nosuchsectiontitle": "Ne mogu pronaći sekciju",
-       "nosuchsectiontext": "Pokušali ste uređivati sekciju koja ne postoji.\nMožda je pomjerena ili obrisana dok ste pregledavali stranicu.",
+       "nosuchsectiontext": "Pokušali ste uređivati sekciju koja ne postoji.\nMožda je preusmjerena ili obrisana dok ste pregledavali stranicu.",
        "loginreqtitle": "Potrebno je prijavljivanje",
        "loginreqlink": "prijavi se",
        "loginreqpagetext": "Morate $1 da bi ste vidjeli druge strane.",
        "permissionserrors": "Greške pri odobrenju",
        "permissionserrorstext": "Nemate dopuštenje da to uradite, iz {{PLURAL:$1|slijedećeg razloga|slijedećih razloga}}:",
        "permissionserrorstext-withaction": "Nemate dopuštenje da $2, iz {{PLURAL:$1|slijedećeg|slijedećih}} razloga:",
-       "recreate-moveddeleted-warn": "'''Upozorenje: Postavljate stranicu koja je prethodno brisana.'''\n\nRazmotrite da li je nastavljanje uređivanja ove stranice u skladu s pravilima.\nOvdje je naveden zapisnik brisanja i pomjeranja s obrazloženjem:",
+       "recreate-moveddeleted-warn": "'''Upozorenje: Postavljate stranicu koja je prethodno brisana.'''\n\nRazmotrite da li je nastavljanje uređivanja ove stranice u skladu s pravilima.\nOvdje je naveden zapisnik brisanja i preusmjeravanja s obrazloženjem:",
        "moveddeleted-notice": "Ova stranica je obrisana.\nZapis brisanja i pomjeranja stranice je prikazan ispod kao referenca.",
        "log-fulllog": "Vidi potpuni zapisnik",
        "edit-hook-aborted": "Izmjena je poništena putem interfejsa.\nNije ponuđeno nikakvo objašnjenje.",
        "right-viewmyprivateinfo": "Pogledajte Vaše privatne podatke (npr, adresa e-pošte, pravo ime)",
        "right-editmyprivateinfo": "Uredite svoje privatne podatke (npr. adresa e-pošte, pravo ime)",
        "right-editmyoptions": "Uredite svoje postavke",
-       "right-rollback": "Brzo vraćanje izmjena na zadnjeg korisnika koji je uređivao određenu stranicu",
+       "right-rollback": "Brzo vraćanje izmjena posljednjeg korisnika koji je uređivao određenu stranicu",
        "right-markbotedits": "Označavanje vraćenih izmjena kao izmjene bota",
        "right-noratelimit": "Izbjegavanje ograničenja uzrokovanih brzinom",
        "right-import": "Uvoz stranica iz drugih wikija",
        "action-suppressionlog": "vidite ovaj privatni zapis",
        "action-block": "blokirate uređivanje ovog korisnika",
        "action-protect": "promijeniti nivo zaštite za ovu stranicu",
-       "action-rollback": "brzo vraćanje izmjena zadnjeg korisnika koji je uređivao određenu stranicu",
+       "action-rollback": "brzo vraćanje izmjena posljednjeg korisnika koji je uređivao određenu stranicu",
        "action-import": "uvozite stranice iz druge wiki",
        "action-importupload": "uvoz stranica putem postavljanja datoteke",
        "action-patrol": "označite izmjene drugih kao patrolirane",
        "upload_directory_missing": "Folder za postavljanje ($1) nedostaje i webserver ga ne može napraviti.",
        "upload_directory_read_only": "Folder za postavljanje ($1) na webserveru je postavljen samo za čitanje.",
        "uploaderror": "Greška pri slanju",
-       "upload-recreate-warning": "'''Upozorenje: Datoteka s tim imenom je obrisana ili preusmjerena.'''\nZapisnik brisanja i preusmjeravanja za ovu stranicu dostupan je ovdje:",
+       "upload-recreate-warning": "'''Upozorenje: Datoteka s tim imenom obrisana je ili preusmjerena.'''\nZapisnik brisanja i preusmjeravanja za ovu stranicu dostupan je ovdje:",
        "uploadtext": "Koristite formu ispod za postavljanje datoteka.\nDa bi ste vidjeli ili pretražili ranije postavljene datoteke, pogledajte [[Special:FileList|spisak postavljenih datoteka]], ponovna postavljanja su također zapisana u [[Special:Log/upload|zapisnik postavljanja]], a brisanja u [[Special:Log/delete|zapisnik brisanja]].\n\nDa bi ste prikazali datoteku na stranici, koristite link na jedan od slijedećih načina:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.jpg]]</nowiki></code>''' da upotrijebite potpunu veziju datoteke\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.png|200px|thumb|lijevo|opis slike]]</nowiki></code>''' da upotrijebite smanjeni prikaz širine 200 piksela unutar okvira, s lijevim poravnanjem i ''opisom slike''.\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datoteka.ogg]]</nowiki></code>''' za direkno povezivanje datoteke bez njenog prikazivanja",
        "upload-permitted": "Podržane vrste datoteka: $1.",
        "upload-preferred": "Preferirane vrste datoteka: $1.",
        "watcherrortext": "Desila se greška pri promjeni postavki vašeg spiska praćenja za \"$1\".",
        "enotif_reset": "Označi sve strane kao posjećene",
        "enotif_impersonal_salutation": "{{SITENAME}} korisnik",
-       "enotif_subject_deleted": "{{gender:$2|Korisnik|Korisnica}} $2 je {{gender:$2|obrisao|obrisala}} stranicu $1 projekta {{SITENAME}}",
-       "enotif_subject_created": "{{gender:$2|Korisnik|Korisnica}} $2 je {{gender:$2|napravio|napravila}} stranicu $1 projekta {{SITENAME}}",
-       "enotif_subject_moved": "{{gender:$2|Korisnik|Korisnica}} $2 je {{gender:$2|premjestio|premjestila}} stranicu $1 projekta {{SITENAME}}",
+       "enotif_subject_deleted": "{{gender:$2|Korisnik|Korisnica}} $2 {{gender:$2|obrisao|obrisala}} je stranicu $1 projekta {{SITENAME}}",
+       "enotif_subject_created": "{{gender:$2|Korisnik|Korisnica}} $2 {{gender:$2|napravio|napravila}} je stranicu $1 projekta {{SITENAME}}",
+       "enotif_subject_moved": "{{gender:$2|Korisnik|Korisnica}} $2 {{gender:$2|premjestio|premjestila}} je stranicu $1 projekta {{SITENAME}}",
        "enotif_subject_restored": "{{gender:$2|Korisnik|Korisnica}} $2 je {{gender:$2|vratio|vratila}} stranicu $1 projekta {{SITENAME}}",
-       "enotif_subject_changed": "{{gender:$2|Korisnik|Korisnica}} $2 je {{gender:$2|promijenio|promijenila}} stranicu $1 projekta {{SITENAME}}",
-       "enotif_body_intro_deleted": "Stranicu $1 projekta {{SITENAME}} {{GENDER:$2|obrisao|obrisala}} je dana $PAGEEDITDATE {{GENDER:$2|korisnik|korisnica}} $2, pogledajte $3.",
+       "enotif_subject_changed": "{{gender:$2|Korisnik|Korisnica}} $2 {{gender:$2|promijenio|promijenila}} je stranicu $1 projekta {{SITENAME}}",
+       "enotif_body_intro_deleted": "{{GENDER:$2|korisnik|korisnica}} $2 {{GENDER:$2|obrisao|obrisala}} je stranicu $1 projekta {{SITENAME}} $PAGEEDITDATE; pogledajte $3.",
        "enotif_body_intro_created": "Stranicu $1 projekta {{SITENAME}} {{GENDER:$2|napravio|napravila}} je dana $PAGEEDITDATE {{GENDER:$2|korisnik|korisnica}} $2, pogledajte $3 za trenutnu verziju.",
-       "enotif_body_intro_moved": "Stranicu $1 projekta {{SITENAME}} {{GENDER:$2|premjestio|premjestila}} je dana $PAGEEDITDATE {{GENDER:$2|korisnik|korisnica}} $2, pogledajte $3 za trenutnu verziju.",
+       "enotif_body_intro_moved": "Stranicu $1 projekta {{SITENAME}} {{GENDER:$2|premjestio|premjestila}} je $PAGEEDITDATE {{GENDER:$2|korisnik|korisnica}} $2, pogledajte $3 za trenutnu verziju.",
        "enotif_body_intro_restored": "Stranicu $1 projekta {{SITENAME}} {{GENDER:$2|vratio|vratila}} je dana $PAGEEDITDATE {{GENDER:$2|korisnik|korisnica}} $2, pogledajte $3 za trenutnu verziju.",
        "enotif_body_intro_changed": "Stranicu $1 projekta {{SITENAME}} {{GENDER:$2|promijenio|promijenila}} je dana $PAGEEDITDATE {{GENDER:$2|korisnik|korisnica}} $2, pogledajte $3 za trenutnu verziju.",
        "enotif_lastvisited": "Pogledajte $1 za sve izmjene od vaše posljednje posjete.",
        "protect-unchain-permissions": "Otključaj daljnje opcije zaštite",
        "protect-text": "Ovdje možete gledati i izmjeniti level zaštite za stranicu '''$1'''.",
        "protect-locked-blocked": "Ne možete promijeniti nivo zaštite dok ste blokirani.\nOvo su trenutne postavke za stranicu '''$1''':",
-       "protect-locked-dblock": "Nivoi zaštite se ne mogu mijenjati jer je aktivna baza podataka zaključana.\nTrenutna postavka za stranicu '''$1''' je:",
+       "protect-locked-dblock": "Nivoi zaštite ne mogu se mijenjati jer je aktivna baza podataka zaključana.\nTrenutna postavka za stranicu '''$1''' jest:",
        "protect-locked-access": "Nemate ovlasti za mijenjanje stepena zaštite.\nSlijede trenutne postavke stranice '''$1''':",
        "protect-cascadeon": "Ova stranica je trenutno zaštićena jer je uključena u {{PLURAL:$1|stranicu, koja ima|stranice, koje imaju|stranice, koje imaju}} uključenu prenosnu zaštitu.\nPromijene stepena zaštite ove stranice neće uticati na prenosnu zaštitu.",
        "protect-default": "Dopusti svim korisnicima",
        "ipboptions": "2 sata:2 hours,1 dan:1 day,3 dana:3 days,1 sedmica:1 week,2 sedmice:2 weeks,1 mjesec:1 month,3 mjeseca:3 months,6 mjeseci:6 months,1 godine:1 year,zauvijek:infinite",
        "ipbhidename": "Sakrij korisničko ime iz uređivanja i spiskova",
        "ipbwatchuser": "Prati korisničku stranicu i stranicu za razgovor ovog korisnika",
-       "ipb-disableusertalk": "Onemogući ovog korisnika da uređuje svoju vlastitu stranicu za razgovor dok je blokiran",
+       "ipb-disableusertalk": "Onemogući ovog korisnika da uređuje svoju stranicu za razgovor dok je blokiran",
        "ipb-change-block": "Ponovno blokiraj korisnika sa novim postavkama",
        "ipb-confirm": "Potvrdite blokiranje",
        "badipaddress": "Pogrešna IP adresa",
        "movepage-moved-redirect": "Preusmjerenje je napravljeno.",
        "movepage-moved-noredirect": "Pravljenje preusmjerenja je onemogućeno.",
        "articleexists": "Stranica pod tim imenom već postoji ili je ime koje ste izabrali neispravno. Molimo Vas da izaberete drugo ime.",
-       "cantmove-titleprotected": "Ne možete premjestiti stranicu na ovu lokaciju, jer je novi naslov zaštićen od pravljenja",
-       "movetalk": "Premjestite \"stranicu za razgovor\" takođe, ako je moguće.",
+       "cantmove-titleprotected": "Ne možete premjestiti stranicu na ovu lokaciju jer je novi naslov zaštićen od pravljenja.",
+       "movetalk": "Premjestite i stranicu za razgovor ako je moguće.",
        "move-subpages": "Premjesti sve podstranice (do $1)",
        "move-talk-subpages": "Premjesti podstranice stranica za razgovor (do $1)",
        "movepage-page-exists": "Stranica $1 već postoji i ne može biti automatski zamijenjena.",
        "thumbnail_gd-library": "Nekompletna konfiguracija GD biblioteke: nedostaje funkcija $1",
        "thumbnail_image-missing": "Datoteka ne dostaje: $1",
        "import": "Uvoz stranica",
-       "importinterwiki": "Međuwiki uvoz",
+       "importinterwiki": "Uvezeno sa druge wiki",
        "import-interwiki-text": "Izaberi wiki i naslov stranice za uvoz.\nDatumi revizija i imena autora će biti sačuvani.\nSve akcije pri međuwiki uvozu će biti zapisane u [[Special:Log/import|zapisu uvoza]].",
        "import-interwiki-history": "Kopiraj sve verzije historije za ovu stranicu",
        "import-interwiki-templates": "Uključi sve šablone",
        "anonymous": "{{PLURAL:$1|Anonimni korisnik|$1 anonimna korisnika|$1 anonimnih korisnika}} projekta {{SITENAME}}",
        "siteuser": "{{SITENAME}} korisnik $1",
        "anonuser": "{{SITENAME}} anonimni korisnik $1",
-       "lastmodifiedatby": "Ovu stranicu posljednji je put promijenio $3, u $2, $1",
+       "lastmodifiedatby": "Ovu stranicu posljednji je put promijenio $3 u $2, $1",
        "othercontribs": "Bazirano na radu od strane korisnika $1.",
        "others": "ostali",
        "siteusers": "{{SITENAME}} {{PLURAL:$2|korisnik|korisnika}} $1",
        "htmlform-cloner-delete": "Ukloni",
        "sqlite-has-fts": "$1 sa podrškom pretrage cijelog teksta",
        "sqlite-no-fts": "$1 bez podrške pretrage cijelog teksta",
-       "logentry-delete-delete": "$1 je {{GENDER:$2|obrisao|obrisala}} stranicu $3",
-       "logentry-delete-restore": "$1 je {{GENDER:$2|vratio|vratila}} stranicu $3",
+       "logentry-delete-delete": "$1 {{GENDER:$2|obrisao|obrisala}} je stranicu $3",
+       "logentry-delete-restore": "$1 {{GENDER:$2|vratio|vratila}} je stranicu $3",
        "logentry-delete-event": "$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost {{PLURAL:$5|događaja|$5 događaja}} u evidenciji na $3: $4",
        "logentry-delete-revision": "$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost {{PLURAL:$5|izmjene|$5 izmjene|$5 izmjena}} na stranici $3: $4",
        "logentry-delete-event-legacy": "$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost događaja u evidenciji na $3",
        "logentry-delete-revision-legacy": "$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost izmjena na stranici $3",
-       "logentry-suppress-delete": "$1 je {{GENDER:$2|potisnuo|potisnula}} stranicu $3",
+       "logentry-suppress-delete": "$1 {{GENDER:$2|potisnuo|potisnula}} je stranicu $3",
        "logentry-suppress-event": "$1 je tajno {{GENDER:$2|promijenio|promijenila}} vidljivost {{PLURAL:$5|događaja|$5 događaja}} u evidenciji na $3: $4",
        "logentry-suppress-revision": "$1 je tajno {{GENDER:$2|promijenio|promijenila}} vidljivost {{PLURAL:$5|izmjene|$5 izmjene|$5 izmjena}} na stranici $3: $4",
        "logentry-suppress-event-legacy": "$1 je tajno {{GENDER:$2|promijenio|promijenila}} vidljivost događaja u evidenciji na $3",
        "revdelete-uname-unhid": "korisničko ime je otkriveno",
        "revdelete-restricted": "primijenjena ograničenja za administratore",
        "revdelete-unrestricted": "uklonjena ograničenja za administratore",
-       "logentry-move-move": "$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4",
-       "logentry-move-move-noredirect": "$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4 bez ostavljanja preusmjerenja",
-       "logentry-move-move_redir": "$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4 preko preusmjeravanja",
-       "logentry-move-move_redir-noredirect": "$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4 preko preusmjeravanja bez ostavljanja preusmjeravanja",
+       "logentry-move-move": "$1 {{GENDER:$2|premjestio|premjestila}} je stranicu $3 na $4",
+       "logentry-move-move-noredirect": "$1 {{GENDER:$2|premjestio|premjestila}} je stranicu $3 na $4 bez ostavljanja preusmjerenja",
+       "logentry-move-move_redir": "$1 {{GENDER:$2|premjestio|premjestila}} je stranicu $3 na $4 preko preusmjeravanja",
+       "logentry-move-move_redir-noredirect": "$1 {{GENDER:$2|premjestio|premjestila}} je stranicu $3 na $4 preko preusmjeravanja bez ostavljanja preusmjeravanja",
        "logentry-patrol-patrol": "$1 je {{GENDER:$2|označio|označila}} izmjenu $4 stranice $3 pregledanim",
        "logentry-patrol-patrol-auto": "$1 je automatski {{GENDER:$2|označio|označila}} izmjenu $4 stranice $3 pregledanim",
        "logentry-newusers-newusers": "Korisnički račun $1 je {{GENDER:$2|napravljen}}",
        "feedback-message": "Poruka:",
        "feedback-subject": "Tema:",
        "feedback-submit": "Pošalji",
-       "feedback-thanks": "Hvala! Vaša povratna informacija je postavljena na stranicu „[$2 $1]“.",
+       "feedback-thanks": "Hvala! Vaša povratna informacija postavljena je na stranicu \"[$2 $1]\".",
        "searchsuggest-search": "Traži",
        "searchsuggest-containing": "sadrži...",
        "api-error-badaccess-groups": "Nemate ovlasti da postavljate datoteke na ovoj wiki.",
index 910f0ba..531b9a5 100644 (file)
        "no-null-revision": "No s'ha pogut crear una nova revisió nul·la de la pàgina «$1»",
        "badtitle": "El títol no és correcte",
        "badtitletext": "El títol de la pàgina que heu introduït no és correcte, és en blanc o conté un enllaç trencat amb un altre projecte. També podria contenir algun caràcter no acceptat als títols de pàgina.",
+       "title-invalid-empty": "El títol de la pàgina sol·licitada és buit o només conté el nom d’un espai de noms.",
+       "title-invalid-utf8": "El títol de la pàgina sol·licitada conté una seqüència UTF-8 no vàlida.",
+       "title-invalid-interwiki": "El títol conté un enllaç interwiki",
+       "title-invalid-talk-namespace": "El títol de la pàgina sol·licitada fa referència a una pàgina de discussió impossible.",
+       "title-invalid-characters": "El títol de la pàgina sol·licitada conté caràcters no vàlids: «$1».",
+       "title-invalid-relative": "El títol conté un camí relatiu. Els títols relatius (./, ../) no són vàlids perquè els navegadors web sovint no poden arribar-hi.",
+       "title-invalid-magic-tilde": "El títol de la pàgina sol·licitada conté una seqüència de titlles no vàlida (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "El títol de la pàgina sol·licitada és massa llarg. No ha d’excedir $1 bytes en codificació UTF-8.",
+       "title-invalid-leading-colon": "El títol de la pàgina sol·licitada conté dos punts a l’inici.",
        "perfcached": "Les dades següents es troben a la memòria cau i podrien no estar al dia. Hi ha un màxim {{PLURAL:$1|d'un resultat|de $1 resultats}} disponibles a la memòria cau.",
        "perfcachedts": "Les dades següents es troben a la memòria cau i es van actualitzar per darrera vegada el $1. Hi ha un màxim {{PLURAL:$4|d'un resultat|de $4 resultats}} disponibles a la memòria cau.",
        "querypage-no-updates": "S'ha inhabilitat l'actualització d'aquesta pàgina. Les dades que hi contenen podrien no estar al dia.",
        "action-editcontentmodel": "editar el model de contingut d'una pàgina",
        "action-managechangetags": "crear i suprimir etiquetes de la base de dades",
        "action-applychangetags": "aplica les etiquetes juntament amb els canvis",
+       "action-changetags": "afegeix i elimina etiquetes a les revisions y entrades de registre individuals",
        "nchanges": "$1 {{PLURAL:$1|canvi|canvis}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|des de la darrera visita}}",
        "enhancedrc-history": "historial",
        "listfiles-delete": "elimina",
        "listfiles-summary": "Aquesta pàgina especial mostra tots els fitxers carregats.\nSi filtreu per usuari només es mostraran els fitxers la versió més recent dels quals hagi estat carregada per aquell.",
        "listfiles_search_for": "Cerca el nom d'un fitxer de medis:",
+       "listfiles-userdoesnotexist": "El compte d’usuari «$1» no s’ha registrat.",
        "imgfile": "fitxer",
        "listfiles": "Llista de fitxers",
        "listfiles_thumb": "Miniatura",
        "logempty": "No hi ha cap coincidència en el registre.",
        "log-title-wildcard": "Cerca els títols que comencin amb aquest text",
        "showhideselectedlogentries": "Mostra/amaga les entrades de registre seleccionades",
+       "log-edit-tags": "Edita les etiquetes de les entrades seleccionades del registre",
        "allpages": "Totes les pàgines",
        "nextpage": "Pàgina següent ($1)",
        "prevpage": "Pàgina anterior ($1)",
        "import-interwiki-history": "Copia totes les versions de l'historial d'aquesta pàgina",
        "import-interwiki-templates": "Inclou totes les plantilles",
        "import-interwiki-submit": "Importa",
+       "import-mapping-default": "Importa a les ubicacions per defecte",
+       "import-mapping-namespace": "Importa a un espai de noms:",
+       "import-mapping-subpage": "Importa com a subpàgines de la pàgina següent:",
        "import-upload-filename": "Nom de fitxer:",
        "import-comment": "Comentari:",
        "importtext": "Exporteu el fitxer des del wiki d'origen utilitzant l'[[Special:Export|eina d'exportació]].\nDeseu-lo al vostre ordinador i carregueu-ne una còpia ací.",
        "patrol-log-page": "Registre de supervisió",
        "patrol-log-header": "Això és un registre de les revisions patrullades.",
        "log-show-hide-patrol": "$1 el registre de patrulla",
+       "log-show-hide-tag": "$1 el registre d’etiquetes",
        "deletedrevision": "S'ha eliminat la revisió antiga $1.",
        "filedeleteerror-short": "Error en suprimir el fitxer: $1",
        "filedeleteerror-long": "S'han produït errors en suprimir el fitxer:\n\n$1",
        "tags-deactivate-reason": "Motiu:",
        "tags-deactivate-not-allowed": "No és possible desactivar l'etiqueta «$1».",
        "tags-deactivate-submit": "Desactiva",
+       "tags-apply-no-permission": "No teniu permís per canviar etiquetes juntament amb altres canvis.",
        "tags-apply-not-allowed-one": "No es permet aplicar l'etiqueta «$1» manualment.",
        "tags-apply-not-allowed-multi": "No es permet aplicar manualment {{PLURAL:$2|l'etiqueta següent|les etiquetes següents}}: $1",
        "tags-update-no-permission": "No teniu permisos per a afegir o suprimir etiquetes de canvi de revisions individuals o entrades de registre.",
        "tags-update-add-not-allowed-one": "No es permet afegir manualment l'etiqueta «$1».",
+       "tags-update-add-not-allowed-multi": "No es permet afegir manualment {{PLURAL:$2|la etiqueta següent|les etiquetes següents}}: $1",
+       "tags-update-remove-not-allowed-one": "No es permet treure l’etiqueta «$1».",
+       "tags-update-remove-not-allowed-multi": "No es permet eliminar manualment {{PLURAL:$2|la etiqueta següent|les etiquetes següents}}: $1",
        "tags-edit-title": "Modifica les etiquetes",
        "tags-edit-manage-link": "Gestiona les etiquetes",
        "tags-edit-existing-tags": "Etiquetes existents:",
+       "tags-edit-existing-tags-none": "''Cap''",
        "tags-edit-new-tags": "Etiquetes noves:",
+       "tags-edit-add": "Afegeix aquestes etiquetes:",
+       "tags-edit-remove": "Treu aquestes etiquetes:",
+       "tags-edit-remove-all-tags": "(treu totes les etiquetes)",
+       "tags-edit-chosen-placeholder": "Seleccioneu algunes etiquetes",
+       "tags-edit-chosen-no-results": "No s’han trobat coincidències d’etiquetes",
        "tags-edit-reason": "Motiu:",
+       "tags-edit-success": "S’han aplicat els canvis correctament.",
+       "tags-edit-failure": "No s’han pogut aplicar els canvis:\n$1",
+       "tags-edit-none-selected": "Seleccioneu com a mínim una etiqueta per afegir o suprimir.",
        "comparepages": "Comparar pàgines",
        "compare-page1": "Pàgina 1",
        "compare-page2": "Pàgina 2",
index fdc7105..e1b26cf 100644 (file)
@@ -23,7 +23,7 @@
        "tog-editsectiononrightclick": "Нисде дакъа шозза бакъехьар дахка тӀетаӀийча оцу кортан (JavaScript)",
        "tog-watchcreations": "ТӀетоха ас кхоьллина агӀонаш тергаме могӀам чу",
        "tog-watchdefault": "ТӀетоха ас нисйина агӀонаш тергаме могӀам чу",
-       "tog-watchmoves": "ТӀетоха ас цӀераш хийцина агӀонаш тергаме могӀам чу",
+       "tog-watchmoves": "ТӀетоха ас цӀерш хийцина агӀонаш тергаме могӀам чу",
        "tog-watchdeletion": "ТӀетоха ас дӀаяьхна агӀонаш тергаме могӀанан чу",
        "tog-watchrollback": "Аса нисдар юхудаькхина агӀо сан тергаме могӀанан тӀетуху",
        "tog-minordefault": "Къастам бе нисйиначарн хlумцадеш кегийра долушсанна",
        "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": "декабрь",
+       "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": "март",
        "create": "Кхолла",
        "create-local": "ТӀетоха локальни цуьнах лаьцна",
        "editthispage": "Нисъе хӀъара агӀо",
-       "create-this-page": "Кхолла хlара агlо",
+       "create-this-page": "Кхолла хӀара агӀо",
        "delete": "ДӀаяккха",
        "deletethispage": "ДӀаяккха хӀара агӀо",
        "undeletethispage": "ХӀара агӀо меттахӀоттор",
        "editinginterface": "<strong>Тергам бе:</strong> Ахьа таеш ю интерфейсан йоза долу агӀо программин латторан.\nЦуна бина хийцам хьокху Википедин кхечу декъашхошна гур бу.",
        "translateinterface": "ХӀокху хааман гоч тӀетоха я хийца дехар до лелае локализацин сайт MediaWiki [//translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "АгӀо хийцам ца байта гӀоралла дина ю {{PLURAL:$1|хӀокху агӀона|хӀокху агӀонийн}} юкъа йогӀуш хилар бахьнехь:\n$2",
-       "namespaceprotected": "ХӀан бакъо яц анна цӀераш чохь тадарш да «$1».",
+       "namespaceprotected": "ХӀан бакъо яц анна цӀерш чохь тадарш да «$1».",
        "customcssprotected": "Хьан бакъо яц хӀара CSS-агӀо тая, иза кхечу декъашхочун гӀерс болу дера.",
        "customjsprotected": "Хьан бакъо яц хӀара JavaScript-агӀо тая, иза кхечу декъашхочун гӀерс болу дера.",
        "mycustomcssprotected": "Хьан бакъо яц хӀара CSS агӀо тая.",
        "noname": "Ахьа магийтина йолу декъашхочун цӀе билгал йина яц.",
        "loginsuccesstitle": "Хьан пароль тӀеэца, марша догӀила Википеди чу!",
        "loginsuccess": "Хlинца ахьа болх бó оцу цlарца $1.",
-       "nosuchuser": "Иштта $1 цӀе йолуш декъашхочун дӀаяздар дац.\nДекъашхой цӀераш хаалуш ю дӀаяздарца элпаш.\nНийса юьй хьажа цӀе я [[Special:UserLogin/signup|дӀаяздар кхолла керла]].",
+       "nosuchuser": "Иштта $1 цӀе йолуш декъашхочун дӀаяздар дац.\nДекъашхой цӀерш хаалуш ю дӀаяздарца элпаш.\nНийса юьй хьажа цӀе я [[Special:UserLogin/signup|дӀаяздар кхолла керла]].",
        "nosuchusershort": "Ишта «$1» цӀе йолу декъашхо вац/яц. Хьажа цӀе нийса язйина юй.",
        "nouserspecified": "Ахьа декъашхочун цӀе билгал ян езаш ю.",
        "login-userblocked": "ХӀара декъашхо блоктоьхна ву/ю. Системин чувала/яла магийна дац.",
        "missingcommentheader": "'''Дагадаийтар.''' Ахьа хӀокху къамелан дӀахьедар/корта билгал бина бац. Кнопка «{{int:savearticle}}» юху тӀетаӀича хийцамах лаьцна хӀума доцуш Ӏалашбира бу.",
        "summary-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Дехар до, хьайн хаам чохь билгалде и.",
        "blockednoreason": "бахьана билгалдина дац",
        "newarticle": "(Kерла)",
        "newarticletext": "ХӀара агӀо хӀинца йоцаш ю.\nНагахь иза кхолла лаахь, хӀотта де лахо гуш долу корехь йоза (мадарра хьажа. [$1 гӀон агӀон чу]).\nНагахь гӀалат даьлла цахууш кхечехь кхузе, атта тӀе тӀаӀа йе '''юха йоккхуриг''' хьай браузеран тӀехь.",
        "anontalkpagetext": "----''ХӀара дийцаре агӀо къайлаха декъашхочуьна ю, хӀинца дӀаяздар доцу, я лелош воцуш/йоцуш.\nЦундела иза вовзийта/йовзийта лелош ду терахьца IP-адрес.\nИза терахь долу меттиг хила мега кхечу декъашхойчух терра.\nНагахь хьо къайлах волу декъашхо валахь хьайна хаам кхаьчна аьлла хеташн, хьуна хьажийна доцуш, дехар до, кхолла хьай меттиг кху чохь[[Special:UserLogin/signup|дӀаяздар кхоллар]] я [[Special:UserLogin|системин чугӀо]],",
-       "noarticletext": "Хlокх хан чохь кху агlонца йоза дац.\nШуьга далундерг [[Special:Search/{{PAGENAME}}|лахар ишта хьехош йолу цlе]] кхечу яззамашкахь,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} лахар кхечу тептаршкахь],\nйа '''[{{fullurl:{{FULLPAGENAME}}|action=edit}} кхолла ишта цlе йолу агlо]'''</span>.",
-       "noarticletext-nopermission": "ХӀокх хан чохь кху агӀонца йоза дац.\nШуьга далундерг [[Special:Search/{{PAGENAME}}|лахар ишта хьехош йолу цӀе]] кхечу яззамашкахь,\nйа <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} лаха оцуьнах терадерг кхечу тептаршкахь].</span>",
+       "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}}}} дӀайаьхарш йолу тептар] чохь.",
        "userpage-userdoesnotexist": "Ишта декъашхочун дӀаяздар «<nowiki>$1</nowiki>» хӀинца дац. Хьажа билгал, хьуна бакъалла лаьий кхолла я хийцам ба хӀокху агӀон.",
        "userpage-userdoesnotexist-view": "«$1» ишта декъашхочун дӀаяздар дац.",
        "diff-multi-manyusers": "({{PLURAL:$1|гайтина яц $1 юккъера верси, йина|не показаны $1 юккъера версеш, йина}} {{PLURAL:$2|$2 декъашхочо|$2 декъашхоша}})",
        "searchresults": "Карийнарш",
        "searchresults-title": "Лахар «$1»",
-       "titlematches": "АгӀонийн цӀераш цхьаьнанисялар",
+       "titlematches": "АгӀонийн цӀерш цхьаьнанисялар",
        "textmatches": "АгӀонийн йоза цхьаьнанисдалар",
        "notextmatches": "АгӀонаш чура йозанашца цхьатерра йогӀуш яц",
        "prevn": "хьалхарнаш {{PLURAL:$1|$1}}",
        "right-createtalk": "Дийцаре агӀонаш кхоллар",
        "right-createaccount": "декъашхошна керла дӀаяздарш кхоллар",
        "right-minoredit": "«къезиг хийцам» аьлла билгало хӀоттор",
-       "right-move": "АгӀонийн цӀераш хийцар",
-       "right-move-subpages": "АгӀонийн цӀераш хийцар цера бухара агӀонашцан",
-       "right-move-rootuserpages": "декъашхочун ораман агӀонийн цӀераш хийцар",
-       "right-move-categorypages": "Категорийн агӀонийн цӀераш хийцар",
+       "right-move": "АгӀонийн цӀерш хийцар",
+       "right-move-subpages": "АгӀонийн цӀерш хийцар цера бухара агӀонашцан",
+       "right-move-rootuserpages": "декъашхочун ораман агӀонийн цӀерш хийцар",
+       "right-move-categorypages": "Категорийн агӀонийн цӀерш хийцар",
        "right-movefile": "Файлийн цӀе хийцар",
        "right-suppressredirect": "агӀона цӀе хуьйцуш ширчу цӀарах ма кхолла дӀасахьажорг",
        "right-upload": "Файлаш чуйаьхар",
        "action-minoredit": "жима нисдар сана билгало",
        "action-move": "хӀокху агӀон цӀе хийца",
        "action-move-subpages": "хӀокху агӀона цӀе хийцар цуна массо бухара агӀонийн а",
-       "action-move-rootuserpages": "декъашхочун ораман агӀонийн цӀераш хийцар",
-       "action-move-categorypages": "категорийн агӀонийн цӀераш хийцар",
+       "action-move-rootuserpages": "декъашхочун ораман агӀонийн цӀерш хийцар",
+       "action-move-categorypages": "категорийн агӀонийн цӀерш хийцар",
        "action-movefile": "хӀокху файлан цӀе хийца",
        "action-upload": "чуяккха хӀара файл",
        "action-reupload": "йолуш йолу файлан тӀехула дӀаязъяр",
        "action-viewmyprivateinfo": "хьан долара хааме хьажар",
        "action-editmyprivateinfo": "хьан долара хаам табар",
        "action-managechangetags": "хаамийн базан чохь билгалонаш кхоллар а дӀаяхар а",
-       "nchanges": "$1 {{PLURAL:$1|хийцам|хийцамаш}}",
+       "nchanges": "$1 {{PLURAL:$1|хийцам}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|тӀеххьара чудаларца}}",
        "enhancedrc-history": "истори",
        "recentchanges": "Керла нисдарш",
-       "recentchanges-legend": "Керла нисдаршка хьажар тадар",
+       "recentchanges-legend": "Керлачу хийцамийн нисдарш",
        "recentchanges-summary": "Лахахь гайтина хене хьаьжжина Википедин агӀонашкахь тӀаьхьара бина хийцамаш",
        "recentchanges-noresult": "Билгал йинчу хенахь цхьа хийцамаш бина бац.",
        "recentchanges-feed-description": "Тергам бе тlаьхьара вики хийцаман хlокху ларца.",
        "mostimages": "Массарел дуккха лелайо файлаш",
        "mostinterwikis": "Дуккха юкъарвики хьажоргаш тӀе тоьхна йолу агӀонаш",
        "mostrevisions": "Сих сиха нисйина йолу агӀонаш",
-       "prefixindex": "Хьалха агӀонийн цӀераш хӀотто еза",
-       "prefixindex-namespace": "Хьалха агӀонийн цӀераш хӀотто еза («{{ns:$1}}»)",
+       "prefixindex": "Хьалха агӀонийн цӀерш хӀотто еза",
+       "prefixindex-namespace": "Хьалха агӀонийн цӀерш хӀотто еза («{{ns:$1}}»)",
        "prefixindex-strip": "Хиламийн могӀам чура префикс къайлаяккха",
        "shortpages": "Боца яззамаш",
        "longpages": "Беха яззамаш",
        "protectedpages-reason": "Бахьна",
        "protectedpages-unknown-timestamp": "Хууш дац",
        "protectedpages-unknown-performer": "Хууш доцу декъашхо",
-       "protectedtitles": "ГIаролла дина цIераш",
+       "protectedtitles": "ГӀаролла дина цӀерш",
        "listusers": "Декъашхойн могӀам",
        "listusers-editsonly": "Цхаъ мукъане а хийцам бина декъашхой гайта",
        "listusers-creationsort": "Кхоьллина хене хьаьжжина нисъяр",
        "allinnamespace": "Массо агӀонаш оцу цӀерийн анахь «$1»",
        "allpagessubmit": "Кхочушдé",
        "allpagesprefix": "Лаха агӀонаш, дӀайолалуш йолу:",
-       "allpagesbadtitle": "ЦамагоÑ\88 Ð¹Ð¾Ð»Ñ\83 Ð°Ð³Ó\80он Ñ\86Ó\80е. Ð\9aоÑ\8cÑ\80Ñ\82а Ð¼Ð¾Ð³Ó\80ан Ñ\8eкÑ\8aаÑ\85 Ñ\8e Ñ\8eкÑ\8aаÑ\80вики Ð¼ÐµÑ\82Ñ\82анаÑ\88ан Ñ\8eкÑ\8aе Ñ\82Ó\80еÑ\87Ó\80агÓ\80йина Ð¹Ð¾Ð»Ñ\83 Ñ\85Ñ\8cаÑ\8cÑ\80к Ð¹Ð° Ð¼Ð°Ð³Ð¸Ð¹Ð½Ð° Ð´Ð¾Ñ\86Ñ\83 Ð¾Ñ\86Ñ\83 ÐºÐ¾Ñ\8cÑ\80Ñ\82а Ð¼Ð¾Ó\80анÑ\86а Ñ\81имволаÑ\88 Ð¹Ð° кхин.",
-       "allpages-bad-ns": "{{SITENAME}} кху чохь ана цӀераш яц «$1».",
+       "allpagesbadtitle": "ЦамагоÑ\88 Ð¹Ð¾Ð»Ñ\83 Ð°Ð³Ó\80он Ñ\86Ó\80е. Ð\9aоÑ\8cÑ\80Ñ\82а Ð¼Ð¾Ð³Ó\80ан Ñ\8eкÑ\8aаÑ\85 Ñ\8e Ñ\8eкÑ\8aаÑ\80вики Ð¼ÐµÑ\82Ñ\82анийн Ñ\8eкÑ\8aе Ñ\82Ó\80еÑ\87Ó\80агÓ\80йина Ð¹Ð¾Ð»Ñ\83 Ñ\85Ñ\8cаÑ\8cÑ\80к Ñ\8f Ð¼Ð°Ð³Ð¸Ð¹Ð½Ð° Ð´Ð¾Ñ\86Ñ\83 Ð¾Ñ\86Ñ\83 ÐºÐ¾Ñ\8cÑ\80Ñ\82а Ð¼Ð¾Ó\80анÑ\86а Ñ\81имволаÑ\88 Ñ\8f кхин.",
+       "allpages-bad-ns": "{{SITENAME}} кху чохь ана цӀерш яц «$1».",
        "allpages-hide-redirects": "Къайлаяха дӀасахьажийнарш",
        "cachedspecial-viewing-cached-ttl": "Хьо хьоьжу агӀона верси кэш чура ю, иза карлаяьккхина хила мега $1 хьалха.",
        "cachedspecial-refresh-now": "Хьажа тӀехьарчу версега.",
        "listgrouprights-namespaceprotection-namespace": "ЦӀерийн ана",
        "listgrouprights-namespaceprotection-restrictedto": "Декъашхочун хийцамаш бан таро хуьлуьйту бакъонаш",
        "trackingcategories": "Хьожуш йолу категореш",
-       "trackingcategories-summary": "ХӀокху агӀонгахь ю хьожуш йолу категореш, MediaWikiс тӀеюзаш ю уьш. {{ns:8}} цӀерийн меттигера системин хаам хийцина цера цӀераш хийца йиш ю.",
+       "trackingcategories-summary": "ХӀокху агӀонгахь ю хьожуш йолу категореш, MediaWikiс тӀеюзаш ю уьш. {{ns:8}} цӀерийн меттигера системин хаам хийцина цера цӀерш хийца йиш ю.",
        "trackingcategories-msg": "Категореш зер",
        "trackingcategories-name": "Хааман цӀе",
        "trackingcategories-desc": "Категорин чутухуш йолчун хила деза хьал",
        "watchlist-details": "Хьан тергаме могӀанца $1 {{PLURAL:$1|агӀо}} ю, дийцаре агӀонаш йоцуш.",
        "wlheader-enotif": "Электронан почте хаамаш байтар латина ду.",
        "wlheader-showupdated": "Хийцам бина агӀонаш '''Ӏаьржа''' шрифтцан билгальяха ю.",
-       "wlnote": "Ð\9bаÑ\85аÑ\85Ñ\8cа {{PLURAL:$1|Ñ\82Ó\80аÑ\8cÑ\85Ñ\8cабогÓ\80Ñ\83 $1 Ñ\85ийÑ\86ам|Ñ\82Ó\80аÑ\8cÑ\85Ñ\8cабогÓ\80Ñ\83 $1 Ñ\85ийÑ\86амаÑ\88}} Ñ\85Ó\80окÑ\85Ñ\83 {{PLURAL:$2|Ñ\82Ó\80аÑ\8cÑ\85Ñ\8cаÑ\80}} <strong>$2</strong> {{PLURAL:$2|Ñ\81аÑ\85Ñ\8cÑ\82еÑ\85Ñ\8c}}.",
+       "wlnote": "Ð\93ойÑ\82Ñ\83 <strong>$2</strong> {{plural:$2|Ñ\81аÑ\85Ñ\8cÑ\82Ñ\87оÑ\85Ñ\8c}} Ð±Ð¸Ð½Ð° {{PLURAL:$1|Ñ\82Ó\80еÑ\85Ñ\85Ñ\8cаÑ\80а '''$1''' Ñ\85ийÑ\86ам}}, Ñ\85ан $3 $4",
        "wlshowlast": "Гайта тӀаьххьара $1 сахьт $2 де",
        "watchlist-options": "Тергаме могlаман гlирс нисбар",
        "watching": "Тергаме мlогаман юкъаяккха…",
        "sp-contributions-blocked-notice-anon": "ХӀара IP-адрес хӀинца блоктоьхна ду.\nЛахахь гойту блоктохарийн тептар чура тӀаьххьарлера дӀаяздар:",
        "sp-contributions-search": "Къинхьегам лахар",
        "sp-contributions-username": "IP-адрес я декъашхочун цӀе:",
-       "sp-contributions-toponly": "ТÓ\80аÑ\8cÑ\85Ñ\8cаÑ\80а Ð±Ð¸Ð½Ð° Ñ\85ийÑ\86амаÑ\88 Ð³Ð°Ð¹Ñ\82а",
+       "sp-contributions-toponly": "Ð\93айÑ\82а Ñ\82Ó\80аÑ\8cÑ\85Ñ\85Ñ\8cаÑ\80леÑ\80а Ñ\85ийÑ\86амаÑ\88",
        "sp-contributions-newonly": "АгӀонаш кхоллар бен ма гайта",
        "sp-contributions-submit": "Лахар",
        "whatlinkshere": "Хьажоргаш кхузе",
        "whatlinkshere-title": "«$1» тӀе хьажоргаш йолу агӀонаш",
-       "whatlinkshere-page": "Агlо:",
+       "whatlinkshere-page": "АгӀо:",
        "linkshere": "ТӀаьхьайогӀу агӀонаш оцу '''[[:$1]]''': хьажоргца ю",
        "nolinkshere": "ХӀокху '''[[:$1]]''' агӀона тӀе кхечу агӀонашкахь хьажоргаш яц.",
        "nolinkshere-ns": "Хаьржинчу анахь яц '''[[:$1]]''' цӀе йолу агӀонаш",
        "move-page-legend": "ЦӀе хийцар",
        "movepagetext": "Бухахь йолу форманца агӀон цӀе хийцало. Цул совнах цуьна хийцаман тептар кхоьчу метте доккха. Хьалхалера цӀарахь хиръю керла кхоьллина агӀонан хьажорг.\n\nХьовсалаш [[Special:DoubleRedirects|шалха]] а [[Special:BrokenRedirects|йохна хьажоргаш]] юй техь аьлла.\n\nШу жоьпехь ду хьажоргаш нийса некъ гойтуш хиларан.\n\nТидам бе хьалхалера агӀон цӀе ‘’’хийцалур яц’’’ иштта цӀе йолу агӀо йолуш елахь. Юкъардаккхар: йолуш йолу агӀо кхоьчухьа хьажорг елахь, я еса елахь а, цуьна хийцаме истори яцахь а.\n\nИ бохург ду шун агӀонан цӀе юха а хьалха хиллачун тӀе хийца йиш ю, амма йолуш йолу агӀо дӀаяккха йиш яц.\n\n'''ДӀАХЬЕДАР!'''\n\nЦӀе хийцар бахьнехь гӀаръяьлла агӀонашна дукха дагахь боцу хийцамаш хила тарло. Цундела цӀе хийцале шеш хила тарлучу тӀехьонашах кхета аьлла тешна хила.",
        "movepagetext-noredirectfixer": "Бухахь йолу форманца агӀон цӀе хийцало. Цул совнах цуьна хийцаман тептар кхоьчу метте доккха. Хьалхалера цӀарахь хиръю керла кхоьллина агӀонан хьажорг.\n\nХьовсалаш [[Special:DoubleRedirects|шалха]] а [[Special:BrokenRedirects|йохна хьажоргаш]] юй техь аьлла.\n\nШу жоьпехь ду хьажоргаш нийса некъ гойтуш хиларан.\n\nТидам бе хьалхалера агӀон цӀе ‘’’хийцалур яц’’’ иштта цӀе йолу агӀо йолуш елахь. Юкъардаккхар: йолуш йолу агӀо кхоьчухьа хьажорг елахь, я еса елахь а, цуьна хийцаме истори яцахь а.\n\nИ бохург ду шун агӀонан цӀе юха а хьалха хиллачун тӀе хийца йиш ю, амма йолуш йолу агӀо дӀаяккха йиш яц.\n\n'''ДӀАХЬЕДАР!'''\n\nЦӀе хийцар бахьнехь гӀаръяьлла агӀонашна дукха дагахь боцу хийцамаш хила тарло. Цундела цӀе хийцале шеш хила тарлучу тӀехьонашах кхета аьлла тешна хила.",
-       "movepagetalktext": "ТÓ\80е Ñ\85Ó\80оÑ\8cÑ\82Ñ\82ина Ð¹Ð¾Ð»Ñ\83 Ð´Ð¸Ð¹Ñ\86аÑ\80е Ð°Ð³Ó\80о Ð¸Ñ\88Ñ\82а Ñ\86Ó\80е Ñ\85ийÑ\86ина Ñ\85иÑ\80а Ñ\8e, '''Ñ\86Ñ\85Ñ\8cа Ð¹Ð¾Ð»Ñ\83 Ñ\85анÑ\87оÑ\85Ñ\8c, Ð¼Ð°Ñ\86а:'''\n\n*Ð\99аÑ\8cÑ\81Ñ\81а Ð¹Ð¾Ñ\86Ñ\83 Ð´Ð¸Ð¹Ñ\86аÑ\80е Ð°Ð³Ó\80о Ð¹Ð¾Ð»Ñ\83Ñ\88 Ñ\8e Ð¾Ñ\86Ñ\83 Ñ\86Ó\80аÑ\80Ñ\86а Ð¹Ð°\n*Ð\90Ñ\85Ñ\8cа ÐºÑ\8aаÑ\81Ñ\82аман Ñ\85аÑ\80жам Ñ\86абинÑ\8fÑ\85Ñ\8c Ð° ÐºÑ\8aаÑ\81Ñ\82ам Ñ\85Ó\80оÑ\82Ñ\82оÑ\87еÑ\85Ñ\8c.\n\nÐ\98Ñ\88Ñ\82а Ñ\87Ñ\83 Ñ\85анÑ\87оÑ\85Ñ\8c, Ð°Ñ\85Ñ\8cа Ð´ÐµÑ\85Ñ\8cа Ñ\8fккÑ\85а Ð¹ÐµÐ·Ð°Ñ\80 Ñ\8e Ð¹Ð° ÐºÑ\83Ñ\8cйга Ñ\85Ó\80оÑ\82Ñ\82айаÑ\80, Ð½Ð°Ð³Ð°Ñ\85Ñ\8c Ð¸Ð·Ð° Ñ\85Ñ\8cаÑ\88Ñ\82 Ð¹Ð°лахь.",
+       "movepagetalktext": "ТÓ\80е Ñ\85Ó\80оÑ\8cÑ\82Ñ\82ина Ð¹Ð¾Ð»Ñ\83 Ð´Ð¸Ð¹Ñ\86аÑ\80е Ð°Ð³Ó\80о Ð¸Ñ\88Ñ\82а Ñ\86Ó\80е Ñ\85ийÑ\86ина Ñ\85иÑ\80а Ñ\8e, '''Ñ\86Ñ\85Ñ\8cа Ð¹Ð¾Ð»Ñ\83 Ñ\85анÑ\87оÑ\85Ñ\8c, Ð¼Ð°Ñ\86а:'''\n\n*Ð\95Ñ\81а Ð¹Ð¾Ñ\86Ñ\83 Ð´Ð¸Ð¹Ñ\86аÑ\80е Ð°Ð³Ó\80о Ð¹Ð¾Ð»Ñ\83Ñ\88 Ñ\8e Ð¾Ñ\86Ñ\83 Ñ\86Ó\80аÑ\80Ñ\86а Ñ\8f\n*Ð\90Ñ\85Ñ\8cа ÐºÑ\8aаÑ\81Ñ\82аман Ñ\85аÑ\80жам Ñ\86абинÑ\8fÑ\85Ñ\8c Ð° ÐºÑ\8aаÑ\81Ñ\82ам Ñ\85Ó\80оÑ\82Ñ\82оÑ\87еÑ\85Ñ\8c.\n\nÐ\98Ñ\88Ñ\82а Ñ\87Ñ\83 Ñ\85анÑ\87оÑ\85Ñ\8c, Ð°Ñ\85Ñ\8cа Ð´ÐµÑ\85Ñ\8cа Ñ\8fккÑ\85а Ð¹ÐµÐ·Ð°Ñ\80 Ñ\8e Ñ\8f ÐºÑ\83Ñ\8cйга Ñ\85Ó\80оÑ\82Ñ\82айаÑ\80, Ð½Ð°Ð³Ð°Ñ\85Ñ\8c Ð¸Ð·Ð° Ñ\85Ñ\8cаÑ\88Ñ\82 Ñ\8fлахь.",
        "movearticle": "ЦӀе хийца агӀон",
        "moveuserpage-warning": "'''Тергам бе.''' Хьо декъашхочун агӀона цӀе хийца гӀерта. Дехар до, тергам бе, декъашхочун агӀона цӀе бен хийца лур яц, декъашхочун дӀаяздаран цӀе хийца лур яц.",
        "movecategorypage-warning": "<strong>ДӀахьедар:</strong> Хьо категорин агӀон цӀе хийца гӀерта. Дехар до, терго йе, хӀокху агӀона бен цӀе хуьйцур яц, шира чу категори чура массо агӀонаш керла категори чу йохур <em>яц</em>.",
        "movenologintext": "АгӀона цӀе хийца [[Special:UserLogin|системин чугӀо]].",
        "movenotallowed": "Хьан бакъо яц керла агӀонаш кхолла.",
-       "movenotallowedfile": "Хьан файлийн цӀераш хийца бакъо яц.",
-       "cant-move-user-page": "Хьан бакъо яц декъашхойн коьрта агӀонийн цӀераш хийца.",
+       "movenotallowedfile": "Хьан файлийн цӀерш хийца бакъо яц.",
+       "cant-move-user-page": "Хьан бакъо яц декъашхойн коьрта агӀонийн цӀерш хийца.",
        "cant-move-to-user-page": "Хьан бакъо яц агӀона цӀе декъашхочун агӀон тӀе хийца (бухара агӀон тӀе хийца мега).",
-       "cant-move-category-page": "Хьан категорийн цӀераш хийца бакъо яц.",
-       "cant-move-to-category-page": "Хьан категорийн цӀераш хийца бакъо яц.",
+       "cant-move-category-page": "Хьан категорийн цӀерш хийца бакъо яц.",
+       "cant-move-to-category-page": "Хьан категорийн цӀерш хийца бакъо яц.",
        "newtitle": "Керла цӀе",
        "move-watch": "Латайé хӀара агӀо тергаме могӀанан юкъахь",
        "movepagebtn": "АгӀон цӀе хийца",
        "movepage-moved-noredirect": "ДӀасхьажорг кхоллар дохина.",
        "articleexists": "ХӀарасанна цӀе йолу агӀо йолуш ю йа ахьа гойтуш йолу цӀе магош яц.\nДехар до, харжа кхин цӀе.",
        "movetalk": "Цуьнца йогӀуш йолу дийцаре агӀон цӀе хийцар",
-       "move-subpages": "ЦӀераш хийца бухара агӀонийн ($1 кхаччалц)",
+       "move-subpages": "ЦӀерш хийца бухара агӀонийн ($1 кхаччалц)",
        "move-talk-subpages": "ЦӀе хийца бухара агӀонийн а агӀонийн дийцаре а ($1  кхаччалц)",
        "movepage-page-exists": "Агӏо $1 йолуш ю цундела и ша юху дӏаязъян йиш яц.",
        "movepage-page-moved": "АгӀона $1 цӀе хийцина → $2.",
-       "movelogpage": "ЦӀераш хийцаран тептар",
+       "movelogpage": "ЦӀерш хийцаран тептар",
        "movelogpagetext": "Лахахьа гойтуш ю цӀе хийцина агӀонаш.",
        "movesubpage": "{{PLURAL:$1|1=Бухара агӀо|Бухара агӀонаш}}",
        "movesubpagetext": "ХӀокху агӀона $1 {{PLURAL:$1|1=бухара агӀо ю|бухара агӀонаш ю}}.",
        "immobile-source-page": "ХӀокху агӏона цӏе хийца йиш яц.",
        "bad-target-model": "Йиш яц хийца $1 оцу $2: цхьаьна ца догӀу моделин хаамаш.",
        "imagenocrossnamespace": "Кхечу цӀерийн меттигийн чура цӀе файлан тилла йиш яц",
-       "nonfile-cannot-move-to-file": "АгӀонийн цӀераш хийца йиш яц",
+       "nonfile-cannot-move-to-file": "АгӀонийн цӀерш файлан тайпа хийца йиш яц",
        "imagetypemismatch": "Файлан керла шоръелла оцунна тайпанца йогӀуш яц",
        "imageinvalidfilename": "Файлан цӀе гӀалате ю",
        "fix-double-redirects": "Хьалхара цӀе йолу дӀасахьажорг нисъян",
        "tooltip-diff": "Гайта долуш долу йозанах бина болу хийцам.",
        "tooltip-compareselectedversions": "ХӀокху агӀона шина хаьржина версийн башхалле хьажар.",
        "tooltip-watch": "ТӀетоха хӀара агӀо сан тергаме могӀанан юкъа",
-       "tooltip-watchlistedit-normal-submit": "Билгалйина цӀераш дӀаяха",
+       "tooltip-watchlistedit-normal-submit": "Билгалйина цӀерш дӀаяха",
        "tooltip-watchlistedit-raw-submit": "Тергаме могӀам карлабаккха",
        "tooltip-recreate": "АгӀо дӀаяьккхина хиларе ца хьоьжуш меттахӀоттае агӀо",
        "tooltip-upload": "Доладе чуяккхар",
        "interlanguage-link-title-nonlang": "$1 – $2",
        "common.css": "/** Чуйиллина йолу кхузе CSS хир ю лелош масхьа кечйечу чохь */",
        "print.css": "/* Чуйиллина йолу кхузе CSS хир ю лелош масхьа зорба тухучуче чохь */",
-       "common.js": "/* Чуйиллина йолу кхузе JavaScript код гучу ера ю массо декъашхошна оцара схьаелларца хlора агlо */",
+       "common.js": "/* Чуйиллина йолу кхузе JavaScript код гучу ера ю массо декъашхошна оцара схьаелларца хӀора агӀо */",
        "anonymous": "{{PLURAL:$1|1=ЦӀе хьулйина декъашхо|ЦӀе хьулйина декъашхой}} {{grammar:genitive|{{SITENAME}}}}",
        "siteuser": "декъашхо {{grammar:genitive|{{SITENAME}}}} $1",
        "anonuser": "цӀе хьулйина декъашхо {{grammar:genitive|{{SITENAME}}}} $1",
        "watchlistedit-normal-done": "Хьан тергаме могӀам чура {{PLURAL:$1|дӀадаьккхина|дӀадяьхна}} $1 {{PLURAL:$1|дӀаяздар|дӀаяздарш}}:",
        "watchlistedit-raw-title": "Тергаме могӀам йоза санна нисбар",
        "watchlistedit-raw-legend": "Тергаме могӀам нисбар",
-       "watchlistedit-raw-explain": "Лахахь гойтуш ю хьа тергаме могӀанийн юкъахь йолу агӀонаш. Хьан йиш ю могӀан хийцам ба, оьцу чура цӀераш тӀетухуш а дӀайохкуш а.\nХийцамаш бина баьлчи тӀетаӀе кнопка «{{int:Watchlistedit-raw-submit}}».\nХьа кхин йиш ю [[Special:EditWatchlist|лело стандартни тадар]].",
+       "watchlistedit-raw-explain": "Лахахь гойтуш ю хьа тергаме могӀанийн юкъахь йолу агӀонаш. Хьан йиш ю могӀан хийцам ба, оьцу чура цӀерш тӀетухуш а дӀайохкуш а.\nХийцамаш бина баьлчи тӀетаӀе кнопка «{{int:Watchlistedit-raw-submit}}».\nХьа кхин йиш ю [[Special:EditWatchlist|лело стандартни тадар]].",
        "watchlistedit-raw-titles": "ДӀаяздарш:",
        "watchlistedit-raw-submit": "МогӀам Ӏалашбар",
        "watchlistedit-raw-done": "Хьан тергаман могӀам Ӏалашбина",
        "tag-filter-submit": "Литта",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|1=Билгало|Билгалонаш}}]]: $2)",
        "tags-title": "Билгалонаш",
-       "tags-intro": "ХӀокху агӀона чохь гойтуш бу билгалошан могӀам царца программин латторо билгал доху нисдарш, кхин билгалошан маьӀна а.",
+       "tags-intro": "ХӀокху агӀона чохь гойтуш бу билгалонийн могӀам царца программин латторо билгал доху нисдарш, кхин билгалонийн маьӀна а.",
        "tags-tag": "Билгалона цӀе",
        "tags-display-header": "МогӀам чохь хийцамаш гар",
-       "tags-description-header": "Ð\9cаÑ\8cÓ\80нан Ð´Ñ\83Ñ\8cззина Ñ\81Ñ\83Ñ\80Ñ\82 Ñ\85Ó\80оÑ\82Ñ\82оÑ\80",
+       "tags-description-header": "Ð\9cаÑ\8cÓ\80нан Ð±Ñ\83Ñ\8cззина Ñ\85аам",
        "tags-source-header": "Хьост",
        "tags-active-header": "Жигара?",
        "tags-hitcount-header": "Къастам бина нисдарш",
        "tags-delete": "дӀаяккха",
        "tags-activate": "активациян",
        "tags-deactivate": "дӀаяйа",
-       "tags-hitcount": "$1 {{PLURAL:$1|хийцам|хийцамаш}}",
+       "tags-hitcount": "$1 {{PLURAL:$1|хийцам}}",
        "tags-create-heading": "Кхолла керла билгало",
        "tags-create-explanation": "Юха кхоьллина билгалонаш декъашхошна а боташна а Ӏад йтарца тӀекхочуш хира ю.",
        "tags-create-tag-name": "Билгалонна цӀе:",
        "logentry-suppress-block": "$1 {{GENDER:$2|блоктоьхна}} {{GENDER:$4|$3}} $5 $6 хан чекхйолу",
        "logentry-merge-merge": "$1 {{GENDER:$2|вовшахтоьхна}} $3 $4 чохь ($5 кхаччалц версеш)",
        "logentry-move-move": "$1 {{GENDER:$2|цӀе хийцина}} $3 → $4",
-       "logentry-move-move-noredirect": "$1 {{GENDER:$2|Ñ\86Ó\80е Ñ\85ийÑ\86ина}} $3 â\86\92 $4 Ð´Ó\80аÑ\81аÑ\85Ñ\8cажийнарг цаюьтуш",
+       "logentry-move-move-noredirect": "$1 {{GENDER:$2|Ñ\86Ó\80е Ñ\85ийÑ\86ина}} $3 â\86\92 $4 Ð´Ó\80аÑ\81аÑ\85Ñ\8cажорг цаюьтуш",
        "logentry-move-move_redir": "$1 {{GENDER:$2|цӀе хийцина}} $3 → $4 дӀасахьажоран тӀохул",
-       "logentry-move-move_redir-noredirect": "$1 {{GENDER:$2|Ñ\86Ó\80е Ñ\85ийÑ\86ина}} $3 â\86\92 $4 Ð´Ó\80аÑ\81аÑ\85Ñ\8cажоÑ\80ан Ñ\82Ó\80оÑ\85Ñ\83л Ð° Ð´Ó\80аÑ\81аÑ\85Ñ\8cажийнарг цаюьтуш а",
+       "logentry-move-move_redir-noredirect": "$1 {{GENDER:$2|Ñ\86Ó\80е Ñ\85ийÑ\86ина}} $3 â\86\92 $4 Ð´Ó\80аÑ\81аÑ\85Ñ\8cажоÑ\80ган Ñ\82Ó\80еÑ\85Ñ\83л Ð°, Ð´Ó\80аÑ\81аÑ\85Ñ\8cажорг цаюьтуш а",
        "logentry-patrol-patrol": "$1 {{GENDER:$2|хьаьжина}}  агӀона $3 $4 версега",
        "logentry-patrol-patrol-auto": "$1 автоматически {{GENDER:$2|хьаьжина}} $3 агӀона версега $4",
        "logentry-newusers-newusers": "{{GENDER:$2|ДӀавазвелла|ДӀаязелла}} керла декъашхо $1",
index 051c7de..d7b6e7a 100644 (file)
        "view-foreign": "لە $1دا بیبینە",
        "edit": "دەستکاری",
        "create": "دروستکردن",
+       "create-local": "وەسفی ناوچەیی زۆر بکە",
        "editthispage": "دەستکاری ئەم پەڕەیە بکە‌",
        "create-this-page": "ئەم پەڕە دروست بکە",
        "delete": "سڕینەوە",
        "userlogout": "بچۆ دەرەوە",
        "notloggedin": "لە ژوورەوە نیت",
        "userlogin-noaccount": "ھەژمارت نییە؟",
-       "userlogin-joinproject": "وێڕای {{SITENAME}} کەوە",
+       "userlogin-joinproject": "ببە بە ئەندامی {{SITENAME}}",
        "nologin": "ھەژمارت نییە؟  $1.",
        "nologinlink": "ھەژمارێک دروست بکە",
        "createaccount": "ھەژمار دروست بکە",
        "loginreqlink": "بچییە ژوورەوە",
        "loginreqpagetext": "بۆ دیتنی لاپەڕەکانی دیکە دەبێ $1 .",
        "accmailtitle": "وشه‌ی نهێنی ناردرا.",
-       "accmailtext": "تێپەڕوشەیەکی هەرەمەکی درووست‌کراو بۆ [[User talk:$1|$1]] ناردرا بۆ $2 .\n\nکاتێ چوویتە ‌ژوورەوە، لە ''[[Special:ChangePassword|گۆڕینی تێپەڕوشە]]'' دەتوانی وشەی تێپەڕبوون بۆ ئەم هەژمارە نوێیە بگۆڕی.",
+       "accmailtext": "تێپەڕوشەیەک کە بە هەڕەمەکی بۆ [[User talk:$1|$1]] دروست کرا، نێررا بۆ $2. دەتوانیت لە پەڕەی <em>[[Special:ChangePassword|گۆڕینی تێپەڕوشەدا]]</em> لە کاتی چوونەژوورەوەدا بیگۆڕی.",
        "newarticle": "(نوێ)",
        "newarticletext": "بە دوای بەستەری پەڕەیەک کەوتووی کە ھێشتا دروست نەکراوە.\nبۆ دروست کردنی پەڕەکە، لە چوارچێوەکەی خوارەوە دەست بکە بە تایپ کردن. (بۆ زانیاری زورتر\n[$1 یارمەتی] ببینە).\nئەگەر بە ھەڵەوە ھاتویتە ئێرە، لە سەر دوگمەی '''back'''ی وێبگەڕەکەت کلیک بکە.",
        "anontalkpagetext": "----''ئەمە لاپەڕەی وتووێژە بۆ بەکارهێنەرێکی نەناسراوە کە هێشتا هەژمارەی درووست‌نەکردووه یان کەڵکی‌ لێ وەرناگرێ .\nلەبەر ئەوە مەجبوورین ئای‌پی ئەدرەسەکی ژمارەیی بۆ ناساندنی بەکار بێنین.\nئای‌پی ئەدرەسی وا لەوانەیه لە لایەن چەندین بەکارهێنەروە بەکاربێت.\nئەگەر تۆ بەکارهێنەرێکی نەناسراوی و هەست ئەکەی ئەم لێدوانە پەیوەندی بە تۆوە نیە تکایە [[Special:UserLogin/signup|ھەژمارێکی نوێ دروست بکە]] یان [[Special:UserLogin|بچۆ ژوورەوە]] لەبەر ئەوەی لەداهاتوودا دەگەڵ بەکارهێنەرانی‌ نەناسراوی دی تێکەڵ نەکرێیت. ''",
        "copyrightwarning": "تکایە ئاگادار بە کە هەموو بەشدارییەکان لە {{SITENAME}} وا فەرز دەکرێت کە لە ژێر  $2دا بڵاودەبنەوە (سەیری $1 بکە بۆ وردەکاریەکان).\nئەگەر ناتەوێ نووسراوەکانت بە بێبەزەیی دەستکاری بکرێن و بە دڵخواز دابەشبکرێنەوە، مەینێرە بۆ ئێرە.<br />\nھەروەھا تۆ بەڵێنمان پێدەدەی کە خۆت ئەمەت نووسیوە یان لە پاوانێکی گشتی (public domain) یان سەرچاوە ئازادەکانی وەک ئەو وەرتگرتووە.\n'''ئەو کارانە کە مافی لەبەرگرتنەوەیان پارێزراوەکان بە بێ وەرگرتنی ئیجازە مەنێرە!'''",
        "copyrightwarning2": "ئاگادار بە کە هەموو بەشدارییەکان لە {{SITENAME}} لەوانەیە بەدەستی بەشداربووانی دیکەوە دەستکاری بکرێن، بگۆڕدرێن یا بسڕێنەوە.\nئەگەر ناتەوێ نووسراوەکانت بێبەزەیی دەستکاری بکرێن، ھەر مەینێرە بۆ ئێرە.<br />\nھەروەھا تۆ بەڵێنمان پێدەدەی کە خۆت ئەمەت نووسیوە یان لە پاوانێکی گشتی (public domain) یان سەرچاوە ئازادەکانی وەک ئەو وەرتگرتووە (سەیری $1 بکە بۆ وردەکاریەکان).\n'''ئەو کارانە کە مافی لەبەرگرتنەوەیان پارێزراوەکان بە بێ وەرگرتنی ئیجازە مەنێرە!'''",
        "longpageerror": "'''ھەڵە: ئەو دەقە تۆ ناردووتە {{PLURAL:$1|یەک کیلۆبایت|$1 کیلۆبایت}} درێژە، کە درێژترە لە زۆرینەی {{PLURAL:$2|یەک کیلۆبایت|$2 کیلۆبایت}}.'''\nئەمە پاشەکەوت ناکرێت.",
-       "readonlywarning": "'''ئاگاداری: بنکەدراوە بۆ چاکردنەوە داخراوە، بۆیە ئێستا ناتوانی دەستکاریەکانت پاشەکەوت بکەیت.'''<br />\nباشتر وایە دەقەکە cut و paste بکەیتە ناو پەڕگەیەکی دەق و پاشەکەوتی بکەی بۆ دوایی.<br /><br />\nئەو بەڕێوبەرەی کە دایخستوە، ئەم هۆکارەی بەردەست خستووە: $1",
+       "readonlywarning": "<strong>ئاگاداری: داتابەیس بۆ چاکسازی داخراوە، بۆیە ئێستا ناتوانی دەستکاریەکانت پاشەکەوت بکەیت.</strong>\nدەتوانیت دەقەکەت کۆپی بکەیت بۆ فایلێک و ھەڵی بگریت بۆ دوایی.\nئەو بەڕێوەبەرەی کە دای خستووە، ئەم هۆکارەی دەستنیشان کردووە: $1",
        "protectedpagewarning": "'''وشیار بە: ئەم پەڕە پارێزراوە بۆ ئەوی تەنیا ئەو بەکارھێنەرانە کە مافەکانی بەڕێوەبەرایەتییان ھەیە بتوانن دەستکاریی بکەن.'''\nدوایین لۆگ بۆ ژێدەر لە خوارەوەدا ھاتووە:",
        "semiprotectedpagewarning": "'''ئاگاداری:''' ئەم پەڕە داخراوە بۆ ئەوی تەنھا بەکارھێنەرە تۆمارکراوەکان بتوانن دەستکاریی بکەن.\nدوایین لۆگ بۆ ژێدەر لە خوارەوەدا ھاتووە:",
        "cascadeprotectedwarning": "'''ئاگاداری:''' ئەم لاپەڕە داخراوە بۆیە تەنها ئەو کەسانەی مافی بەڕێوبەرایەتی‌یان هەیە ئەتوانن دەستکاری بکەن، چۆنکا ئەمە {{PLURAL:$1|لاپه‌ڕه‌|لاپه‌ڕانه‌}} لە زنجیرەی پارێزراوەکانی لە خۆ گرتووە‌:",
        "unusedtemplateswlh": "بەستەرەکانی تر",
        "randompage": "پەڕەی ھەڕەمەکی",
        "randompage-nopages": "هیچ لاپەڕەیەک لەم {{PLURAL:$2|ناوبۆشاییەدا|ناوبۆشاییانەدا}} نیە: $1.",
-       "randomincategory": "پەڕەی پۆلی ھەڕەمەکی",
+       "randomincategory": "پەڕەیەک بە ھەڵکەوت لە پۆلدا",
        "randomredirect": "ڕەوانەکەری ھەڕەمەکی",
        "randomredirect-nopages": "لە ناوبۆشایی \"$1\" هیچ ڕەوانکەرێک نییە.",
        "statistics": "ئامارەکان",
        "sp-contributions-toponly": "تەنیا ئەو دەستکارییانە نیشان بدە کە دوایین پێداچوونەوەن",
        "sp-contributions-newonly": "تەنیا ئەو دەستکارییانە نیشان بدە کە دروستکردنی پەڕەن",
        "sp-contributions-submit": "بگەڕێ",
-       "whatlinkshere": "بەسراوەکان بە ئێرەوە",
+       "whatlinkshere": "پەیوەندیدار بە ئێرەوە",
        "whatlinkshere-title": "ئەو پەڕانەی بەستەریان ھەیە بۆ «$1»",
        "whatlinkshere-page": "پەڕە:",
        "linkshere": "پەڕەکانی ژێرەوە بەستەر دراون بۆ <strong>[[:$1]]</strong>:",
        "thumbnail_gd-library": "شێوەپێدانی‌ ناتەواوی ژێدەرگەی GD: ون‌بوونی فەنکشێن $1",
        "thumbnail_image-missing": "وا دیارە پەڕگە بزر بووبێت: $1",
        "import": "ھاوردنی پەڕەکان",
-       "importinterwiki": "ھاوردنی ناووویکی",
-       "import-interwiki-text": "بۆ ھاوردن، ویکییەک و سەردێڕێکی پەڕە ھەڵبژێرە.\nڕێکەوتەکانی پێداچوونەوە و ناوی دەستکاریکەرەکان دەپارێزرێت.\nهەموو کردەوەکانی ھاوردنی ناوویکی لە [[Special:Log/import|لۆگی ھاوردن]]دا تۆمار دەکرێت.",
+       "importinterwiki": "ھاوردەکردن لە ویکییەکی ترەوە",
+       "import-interwiki-text": "ویکییەک و ناوی پەڕەیەک ھەڵبژێرە بۆ ھاوردە کردن.\nمێژووی پێداچوونەوە و ناوی دەستکاریکەرەکان دەپارێزرێت.\nهەموو کردەوەکانی ھاوردەکردن لە ویکییەکانی ترەوە لە [[Special:Log/import|لۆگی ھاوردەکردن]]دا تۆمار دەکرێت.",
        "import-interwiki-sourcewiki": "ویکی سەرچاوە:",
        "import-interwiki-sourcepage": "پەڕەی سەرچاوە:",
        "import-interwiki-history": "هەموو مێژووی پێداچوونەوەکانی ئەم پەڕەیە کۆپی بکە",
        "import-error-create": "پەڕەی «$1» ھاوردە نەکرا، چون ناتوانی ئەم پەڕەیە دروست بکەی.",
        "import-error-interwiki": "پەڕەی «$1» ھاوردە نەکرا چون ناوەکەی بۆ بەستەری دەرەکیی (interwiki) گیراوەتەوە.",
        "import-error-special": "پەڕەی «$1» ھاوردە نەکرا چون لە بۆشاییی ناوی نەگونجاودایە.",
-       "import-error-invalid": "پەڕەی «$1» ھاوردە ناکرێ چون ناوەکەی نادروستە.",
+       "import-error-invalid": "پەڕەی «$1» ھاوردە نەکرا چونکوو ناوەکەی بۆ ئەم ویکییە ڕێگەپێنەدراوە.",
        "importlogpage": "لۆگی ھاوردن",
        "importlogpagetext": "ھاوردنی پەڕەکان لەگەڵ مێژووی دەستکاری لە ویکییەکانی ترەوە.",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|پێداچوونەوە}} ھاوردە کرا",
        "exif-pixelxdimension": "بەرزی وێنە",
        "exif-usercomment": "بۆچوونەکانی بەکارهێنەر",
        "exif-relatedsoundfile": "فایلی ده‌نگی لێکچوو",
+       "exif-datetimeoriginal": "ڕێکەوت و کاتی بەرھەمھێنانی داتا",
        "exif-datetimedigitized": "ڕێکەوت و کاتی بە دیجیتاڵی کردن",
        "exif-exposuretime-format": "$1 چرکە ($2)",
        "exif-fnumber": "ڕێژەی ئێف",
        "fileduplicatesearch-noresults": "پەڕگەیەک بە ناوی «$1» نەدۆزرایەوە.",
        "specialpages": "پەڕە تایبەتەکان",
        "specialpages-note": "* پەڕە تایبەتە ئاسایییەکان.\n* <span class=\"mw-specialpagerestricted\">پەڕە تایبەتە بەرگری‌لێکراوەکان.</span>",
-       "specialpages-group-maintenance": "Ú\95اپÛ\86رتÛ\95کاÙ\86Û\8c Ú\95اگرتÙ\86",
+       "specialpages-group-maintenance": "Ú\95اپÛ\86رتÛ\95کاÙ\86Û\8c Ú\86اکسازÛ\8c",
        "specialpages-group-other": "پەڕە تایبەتەکانی دیکە",
        "specialpages-group-login": "چوونەژوورەوە / دروستکردنی ھەژمار",
        "specialpages-group-changes": "دوایین گۆڕانکارییەکان و لۆگەکان",
index f44d81f..2ba7c4c 100644 (file)
        "badtitletext": "Požadovaný název stránky byl neplatný, prázdný nebo obsahoval nesprávnou předponu mezijazykového či interwiki odkazu. Možná obsahoval znaky, které v názvu nejsou dovoleny.",
        "title-invalid-empty": "Požadovaný název stránky je prázdný nebo obsahuje pouze název jmenného prostoru.",
        "title-invalid-utf8": "Požadovaný název stránky obsahuje neplatnou sekvenci UTF-8.",
-       "title-invalid-interwiki": "Název obsahuje interwiki odkaz",
+       "title-invalid-interwiki": "Požadovaný název stránky obsahuje interwiki odkaz, který nelze v názvech používat.",
        "title-invalid-talk-namespace": "Požadovaný název stránky odkazuje na diskusní stránku, která neexistuje.",
        "title-invalid-characters": "Požadovaný název stránky obsahuje neplatné znaky: „$1“.",
        "title-invalid-relative": "Název obsahuje relativní cestu. Relativní názvy stránek (./, ../) jsou neplatné, protože často budou nedostupné, když je zpracuje prohlížeč uživatele.",
        "title-invalid-magic-tilde": "Požadovaný název stránky obsahuje neplatnou magickou posloupnost vlnovek (<nowiki>~~~</nowiki>).",
-       "title-invalid-too-long": "Požadovaný název stránky je příliš dlouhý. V kódování UTF-8 nesmí být delší než $1 bajtů.",
+       "title-invalid-too-long": "Požadovaný název stránky je příliš dlouhý. V kódování UTF-8 nesmí být delší než $1 {{PLURAL:$1|bajt|bajty|bajtů}}.",
        "title-invalid-leading-colon": "Požadovaný název stránku na začátku obsahuje neplatnou dvojtečku.",
        "perfcached": "Následující data jsou z cache a nemusí být plně aktuální. Cache může obsahovat maximálně {{PLURAL:$1|jeden výsledek|$1 výsledky|$1 výsledků}}.",
        "perfcachedts": "Následující data jsou z cache, která byla naposledy aktualizována $1. Cache může obsahovat maximálně {{PLURAL:$4|jeden výsledek|$4 výsledky|$4 výsledků}}.",
        "subject-preview": "Náhled předmětu/nadpisu:",
        "previewerrortext": "Při pokusu o zobrazení náhledu vašich změn došlo k chybě.",
        "blockedtitle": "Uživatel zablokován",
-       "blockedtext": "<strong>Vaší IP adrese či uživatelskému jménu byla zablokována možnost editace.<strong>\n\nZablokování provedl{{GENDER:$4||a}} $1.\nUdaným důvodem bylo <em>$2</em>.\n\n* Začátek blokování: $8\n* Zablokování vyprší: $6\n* Blokovaný uživatel: $7\n\nPokud chcete zablokování prodiskutovat, můžete kontaktovat {{GENDER:$4|uživatele|uživatelku}} $1 či jiného [[{{MediaWiki:Grouppage-sysop}}|správce]].\nUvědomte si, že nemůžete použít nabídku „Poslat e-mail“, jestliže nemáte ve svém [[Special:Preferences|nastavení]] uvedenu platnou e-mailovou adresu nebo pokud vám byla tato možnost zakázána.\nVaše IP adresa je $3 a&nbsp;identifikační číslo bloku je #$5; tyto údaje uvádějte ve všech dotazech na správce.",
+       "blockedtext": "<strong>Vaší IP adrese či uživatelskému jménu byla zablokována možnost editace.</strong>\n\nZablokování {{GENDER:$4|provedl|provedla}} $1.\nUdaným důvodem bylo <em>$2</em>.\n\n* Začátek blokování: $8\n* Zablokování vyprší: $6\n* Blokovaný uživatel: $7\n\nPokud chcete zablokování prodiskutovat, můžete kontaktovat {{GENDER:$4|uživatele|uživatelku}} $1 či jiného [[{{MediaWiki:Grouppage-sysop}}|správce]].\nUvědomte si, že nemůžete použít funkci „Poslat e-mail“, jestliže nemáte ve svém [[Special:Preferences|nastavení]] uvedenu platnou e-mailovou adresu nebo pokud vám byla tato možnost zakázána.\nVaše IP adresa je $3 a&nbsp;identifikační číslo bloku je #$5; tyto údaje uvádějte ve všech dotazech na správce.",
        "autoblockedtext": "Vaše IP adresa byla automaticky zablokována, protože ji používal jiný uživatel, kterého zablokoval $1.\nUdaný důvod blokování:\n\n:<em>$2</em>\n\n* Začátek blokování: $8\n* Konec blokování: $6\n* Původně blokovaný uživatel: $7\n\nZablokování můžete prodiskutovat se správcem $1 nebo některým z dalších [[{{MediaWiki:Grouppage-sysop}}|správců]].\n\nUvědomte si však, že funkci „Poslat e-mail tomuto uživateli“ nemůžete použít, pokud nemáte ve svém [[Special:Preferences|uživatelském nastavení]] zadaný platný e-mail a nebylo vám zablokováno jeho užívání.\n\nVaše současná IP adresa je $3, číslo vašeho zablokování je #$5.\nProsíme, uveďte tyto údaje při komunikaci se správci.",
        "blockednoreason": "důvod nebyl zadán",
        "whitelistedittext": "Pro editaci se musíte $1.",
        "content-model-css": "CSS",
        "content-json-empty-object": "Prázdný objekt",
        "content-json-empty-array": "Prázdné pole",
+       "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>.",
        "expensive-parserfunction-warning": "'''Varování:''' Tato stránka obsahuje příliš mnoho volání výkonnostně náročných funkcí syntaktického analyzátoru.\n\nPovolený limit je $2, v současné chvíli však {{PLURAL:$1|zde jedno volání je|zde jsou $1 volání|zde je $1 volání}}.",
        "userrights-lookup-user": "Spravovat uživatelské skupiny",
        "userrights-user-editname": "Zadejte uživatelské jméno:",
        "editusergroup": "Upravit uživatelské skupiny",
-       "editinguser": "Úprava práv {{GENDER:$1|uživatele|uživatelky}} '''[[User:$1|$1]]''' $2",
+       "editinguser": "Úprava práv {{GENDER:$1|uživatele|uživatelky}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Upravit uživatelské skupiny",
        "saveusergroups": "Uložit uživatelské skupiny",
        "userrights-groupsmember": "{{GENDER:$2|Člen|Členka}} {{PLURAL:$1|skupiny|skupin}}:",
        "uploaddisabledtext": "Načítání souborů je vypnuto.",
        "php-uploaddisabledtext": "V PHP je vypnuto načítání souborů. Prosím, zkontrolujte nastavení file_uploads.",
        "uploadscripted": "Tento soubor obsahuje HTML nebo kód skriptu, který by mohl být prohlížečem chybně interpretován.",
+       "upload-scripted-pi-callback": "Nelze načíst soubor, který obsahuje instrukci xml-stylesheet.",
+       "uploaded-script-svg": "V načteném SVG souboru byl nalezen skriptovatelný element „$1“.",
+       "uploaded-hostile-svg": "V načteném SVG souboru bylo v elementu se styly nalezeno nebezpečné CSS.",
+       "uploaded-event-handler-on-svg": "Nastavování atributů pro obsluhu událostí <code>$1=\"$2\"</code> není v SVG souborech dovoleno.",
+       "uploaded-href-attribute-svg": "Atributy href <code>&lt;$1 $2=\"$3\"&gt;</code> s nelokálním cílem (např. http://, javascript: apod.) nejsou v SVG souborech dovoleny.",
+       "uploaded-href-unsafe-target-svg": "V načteném SVG souboru byl nalezen href s nebezpečným cílem <code>&lt;$1 $2=\"$3\"&gt;</code>.",
+       "uploaded-animate-svg": "V načteném SVG souboru byla nalezena značka „animate“, která by mohla měnit href, s atributem „from“ <code>&lt;$1 $2=\"$3\"&gt;</code>.",
+       "uploaded-setting-event-handler-svg": "Nastavování atributů pro obsluhu událostí je zablokováno, v načteném SVG souboru bylo nalezeno <code>&lt;$1 $2=\"$3\"&gt;</code>.",
+       "uploaded-setting-href-svg": "Použití značky „set“ pro přidání atributu „href“ rodičovskému elementu je zablokováno.",
+       "uploaded-wrong-setting-svg": "Použití značky „set“ pro přidání vzdáleného/datového/skriptového cíle libovolnému atributu je zablokováno. V načteném SVG souboru bylo nalezeno <code>&lt;set to=\"$1\"&gt;</code>.",
+       "uploaded-setting-handler-svg": "SVG, které nastavuje atribut „handler“ na nelokální/data/skript, je zablokováno. V načteném SVG souboru bylo nalezeno <code>$1=\"$2\"</code>.",
+       "uploaded-remote-url-svg": "SVG, které nastavuje libovolný stylový atribut se vzdáleným URL, je zablokováno. V načteném SVG souboru bylo nalezeno <code>$1=\"$2\"</code>.",
+       "uploaded-image-filter-svg": "V načteném SVG souboru byl nalezen obrazový filtr s URL: <code>&lt;$1 $2=\"$3\"&gt;</code>.",
        "uploadscriptednamespace": "Tento SVG soubor obsahuje nedovolený jmenný prostor „$1“",
        "uploadinvalidxml": "XML v načteném souboru nelze zpracovat.",
        "uploadvirus": "Tento soubor obsahuje virus! Podrobnosti: $1",
        "unusedimages": "Nepoužívané soubory",
        "wantedcategories": "Chybějící kategorie",
        "wantedpages": "Chybějící stránky",
-       "wantedpages-summary": "Seznam neexistujících stránek, na které vede nejvíce odkazů, kromě stránek, na které odkazují jen přesměrování. Pro seznam neexistujících stránek, na které odkazují přesměrování, vizte stránku [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "Seznam neexistujících stránek, na které vede nejvíce odkazů, kromě stránek, na které odkazují jen přesměrování. Pro seznam neexistujících stránek, na které odkazují přesměrování, vizte [[{{#special:BrokenRedirects}}|seznam přerušených přesměrování]].",
        "wantedpages-badtitle": "Výsledky obsahují neplatný název: $1",
        "wantedfiles": "Chybějící soubory",
        "wantedfiletext-cat": "Následující soubory se používají, ale neexistují. Soubory ze vzdálených úložišť zde mohou být uvedeny, přestože existují. Taková falešná pozitiva budou zobrazena <del>přeškrtnutě</del>. Stránky, které vkládají neexistující soubory, jsou navíc uvedeny v [[:$1]].",
        "log-name-pagelang": "Kniha změn jazyků",
        "log-description-pagelang": "Toto je protokol změn jazyků stránek.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|změnil|změnila}} jazyk stránky $3 z $4 na $5.",
-       "default-skin-not-found": "Jejda! Výchozí vzhled vaší wiki, definovaný ve <code dir=\"ltr\">$wgDefaultSkin</code> jako <code>$1</code>, není dostupný.\n\nVaše instalace zřejmě obsahuje následující {{PLURAL:$4|vzhled|vzhledy}}. Informace o tom, jak {{PLURAL:$4|jej|je}} povolit a vybrat výchozí, najdete na stránce [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skin_configuration/cs Manual:Skin configuration].\n\n$2\n\n; Pokud jste právě nainstalovali MediaWiki:\n: Zřejmě jste instalovali z gitu nebo nějakým jiným způsobem přímo ze zdrojového kódu. Tak to má fungovat. Zkuste nainstalovat některé vzhledy ze [https://www.mediawiki.org/wiki/Category:All_skins seznamu vzhledů na mediawiki.org] buď:\n:* Můžete si stáhnout [https://www.mediawiki.org/wiki/Download/cs instalaci v tarballu], která zahrnuje několik vzhledů a rozšíření, a vykopírovat si z ní adresář <code dir=\"ltr\">skins/</code>.\n:* Nebo si můžete stáhnout tarbally jednotlivých vzhledů z [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Nebo si můžete gitem naklonovat jeden z repozitářů <code>mediawiki/skins/*</code> do adresáře <code>skins/</code> ve vaší instalaci MediaWiki.\n: Pokud jste vývojářem MediaWiki, nemělo by to nijak narušit váš gitový repozitář.\n\n; Pokud jste právě aktualizovali MediaWiki:\n: MediaWiki 1.24 a novější již automaticky nepovolují nainstalované vzhledy (vizte [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skin_autodiscovery/cs Manual:Skin autodiscovery]). Pro povolení {{PLURAL:$5|právě nainstalovaného vzhledu|všech právě nainstalovaných vzhledů}} vlepte následující {{PLURAL:$5|řádku|řádky}} do <code>LocalSettings.php</code>:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Pokud jste právě upravili <code>LocalSettings.php</code>:\n: Překontrolujte případné překlepy v názvech vzhledů.",
-       "default-skin-not-found-no-skins": "Jejda! Výchozí vzhled vaší wiki, definovaný ve <code dir=\"ltr\">$wgDefaultSkin</code> jako <code>$1</code>, není dostupný.\n\nNemáte nainstalovány žádné vzhledy.\n\n; Pokud jste právě nainstalovali nebo aktualizovali MediaWiki:\n: Zřejmě jste instalovali z gitu nebo nějakým jiným způsobem přímo ze zdrojového kódu. Tak to má fungovat. MediaWiki 1.24 a novější již v hlavním repozitáři neobsahují žádné vzhledy. Zkuste nainstalovat některé vzhledy ze [https://www.mediawiki.org/wiki/Category:All_skins seznamu vzhledů na mediawiki.org] buď:\n:* Můžete si stáhnout [https://www.mediawiki.org/wiki/Download/cs instalaci v tarballu], která zahrnuje několik vzhledů a rozšíření, a vykopírovat si z ní adresář <code>skins/</code>.\n:* Nebo si můžete stáhnout tarbally jednotlivých vzhledů z [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Nebo si můžete gitem naklonovat jeden z repozitářů <code>mediawiki/skins/*</code> do adresáře <code dir=\"ltr\">skins/</code> ve vaší instalaci MediaWiki.\n: Pokud jste vývojářem MediaWiki, nemělo by to nijak narušit váš gitový repozitář. Informace o tom, jak povolit vzhledy a vybrat výchozí, najdete na stránce [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skin_configuration/cs Manual:Skin configuration].",
+       "default-skin-not-found": "Jejda! Výchozí vzhled vaší wiki, definovaný ve <code dir=\"ltr\">$wgDefaultSkin</code> jako <code>$1</code>, není dostupný.\n\nVaše instalace zřejmě obsahuje následující {{PLURAL:$4|vzhled|vzhledy}}. Informace o tom, jak {{PLURAL:$4|jej|je}} povolit a vybrat výchozí, najdete na stránce [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skin_configuration/cs Manual:Skin configuration].\n\n$2\n\n; Pokud jste právě nainstalovali MediaWiki:\n: Zřejmě jste instalovali z gitu nebo nějakým jiným způsobem přímo ze zdrojového kódu. Tak to má fungovat. Zkuste nainstalovat některé vzhledy ze [https://www.mediawiki.org/wiki/Category:All_skins seznamu vzhledů na mediawiki.org] buď:\n:* Můžete si stáhnout [https://www.mediawiki.org/wiki/Download/cs instalaci v tarballu], která zahrnuje několik vzhledů a rozšíření, a vykopírovat si z ní adresář <code dir=\"ltr\">skins/</code>.\n:* Nebo si můžete stáhnout tarbally jednotlivých vzhledů z [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Nebo si můžete [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins vzhledy stáhnout pomocí Gitu].\n: Pokud jste vývojářem MediaWiki, nemělo by to nijak narušit váš gitový repozitář.\n\n; Pokud jste právě aktualizovali MediaWiki:\n: MediaWiki 1.24 a novější již automaticky nepovolují nainstalované vzhledy (vizte [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skin_autodiscovery/cs Manual:Skin autodiscovery]). Pro povolení {{PLURAL:$5|právě nainstalovaného vzhledu|všech nainstalovaných vzhledů}} vlepte následující {{PLURAL:$5|řádku|řádky}} do <code>LocalSettings.php</code>:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Pokud jste právě upravili <code>LocalSettings.php</code>:\n: Překontrolujte případné překlepy v názvech vzhledů.",
+       "default-skin-not-found-no-skins": "Jejda! Výchozí vzhled vaší wiki, definovaný ve <code dir=\"ltr\">$wgDefaultSkin</code> jako <code>$1</code>, není dostupný.\n\nNemáte nainstalovány žádné vzhledy.\n\n; Pokud jste právě nainstalovali nebo aktualizovali MediaWiki:\n: Zřejmě jste instalovali z gitu nebo nějakým jiným způsobem přímo ze zdrojového kódu. Tak to má fungovat. MediaWiki 1.24 a novější již v hlavním repozitáři neobsahují žádné vzhledy. Zkuste nainstalovat některé vzhledy ze [https://www.mediawiki.org/wiki/Category:All_skins seznamu vzhledů na mediawiki.org] buď:\n:* Můžete si stáhnout [https://www.mediawiki.org/wiki/Download/cs instalaci v tarballu], která zahrnuje několik vzhledů a rozšíření, a vykopírovat si z ní adresář <code>skins/</code>.\n:* Nebo si můžete stáhnout tarbally jednotlivých vzhledů z [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Nebo si můžete [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins vzhledy stáhnout pomocí Gitu].\n: Pokud jste vývojářem MediaWiki, nemělo by to nijak narušit váš gitový repozitář. Informace o tom, jak povolit vzhledy a vybrat výchozí, najdete na stránce [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skin_configuration/cs Manual:Skin configuration].",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (povolený)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''zakázaný''')",
        "mediastatistics": "Statistika souborů",
index 958a504..037455f 100644 (file)
        "undo-norev": "Ку тӳрлетĕве пăрахăçлама май çук — вăл е пулман та, е ăна кăларса пăрахнă.",
        "undo-summary": "$1 хутшăнакан [[Special:Contributions/$2|$2]] ([[User_talk:$2|сӳтсе яв]]) кĕртнĕ № улшăнăва тавăрнă",
        "cantcreateaccounttitle": "Хутшăнакана кĕртме май çук",
-       "viewpagelogs": "Ð\9aÑ\83 Ñ\81Ñ\82Ñ\80аниÑ\86Ä\83н Ð¶Ñ\83Ñ\80налÄ\95Ñ\81ене Ð¿Ä\83Ñ\85аÑ\81Ñ\81и",
+       "viewpagelogs": "Ð\9aÑ\83 Ñ\81Ñ\82Ñ\80аниÑ\86Ä\83н Ð¶Ñ\83Ñ\80налÄ\95Ñ\81ене Ð¿Ä\83Ñ\85малли",
        "nohistory": "Ку страницăн улшăнусен журналĕ çук.",
        "currentrev": "Хальхи верси",
        "revisionasof": "$1 сăнташ",
        "nextrevision": "Тепĕр сăнташ →",
        "currentrevisionlink": "хальхи верси çине куç",
        "cur": "хальхи",
-       "next": "тепěр",
+       "next": "тепри",
        "last": "малт.",
        "page_first": "пĕрремĕш",
        "page_last": "юлашки",
        "prefs-misc": "Ытти ĕнерлевсем",
        "saveprefs": "Çырса хур",
        "prefs-editing": "Тӳрлетни",
-       "rows": "Ð\99Ä\9bÑ\80кеÑ\81ем",
+       "rows": "Ð\99Ä\95Ñ\80кеÑ\81ем:",
        "columns": "Юпасем:",
        "searchresultshead": "Шырамалли",
        "recentchangesdays": "Çак кунсен хушшинчи юлашки улшăнусене кăтартмалла:",
        "savedprefs": "Сирĕн ĕнерлевсене сыхласа хăвартăмăр",
        "timezonelegend": "Сехет поясĕ",
        "localtime": "Вырăнти вăхăт",
-       "servertime": "СеÑ\80веÑ\80 Ð²Ä\83Ñ\85Ä\83Ñ\87Ä\9b",
+       "servertime": "СеÑ\80веÑ\80 Ð²Ä\83Ñ\85Ä\83Ñ\87Ä\95:",
        "timezoneregion-africa": "Африка",
        "timezoneregion-america": "Америка",
        "timezoneregion-antarctica": "Антарктика",
        "grouppage-sysop": "{{ns:project}}:Администраторсем",
        "grouppage-bureaucrat": "{{ns:project}}:Бюрократсем",
        "grouppage-suppress": "{{ns:project}}:Тĕрĕслекенсем",
-       "rightslogtext": "Ку пользовательсен прависене улăштарниссен журналě",
+       "rightslogtext": "Ку хутшăнакансен прависене улăштарнисен журналĕ.",
        "enhancedrc-history": "истори",
        "recentchanges": "Улшăнусем",
        "recentchanges-legend": "Çĕнĕ улшăнусен ĕнерлевĕ",
        "listfiles-summary": "Ку ятарлă страницăра эсир пур кĕртнĕ файлсене куратăр.\nНумай пулмасть кĕртнисем çулте вырнаçнă.\nЮпа тăррине пуссан йĕркелӳ майĕ улшăнĕ.",
        "listfiles_search_for": "Ӳкерчĕк ячĕ тăрăх шырани:",
        "imgfile": "файл",
-       "listfiles": "Ӳкерчěксен списокě",
+       "listfiles": "Файлсен списокĕ",
        "listfiles_name": "Файл ячĕ",
        "listfiles_user": "Хутшăнакан",
        "listfiles_size": "Виçи",
        "deletionlog": "кăларса пăрахнисем",
        "reverted": "Малтанхи версине тавăрнă",
        "deletecomment": "Сăлтавĕ",
-       "rollback": "Тÿрлетÿсене каялла куçарасси",
+       "rollback": "Тӳрлетнисене каялла куçарасси",
        "rollbacklink": "каялла тавăр",
        "rollbackfailed": "Каялла куçарнă çухна йăнăш тухнă",
        "protectlogpage": "Хӳтĕлев журналĕ",
index d936714..cc2c9a5 100644 (file)
        "pool-timeout": "Timeout mens man venter på låsningen",
        "pool-queuefull": "Pool køen er fuld",
        "pool-errorunknown": "Ukendt fejl",
+       "pool-servererror": "Pool-counter servicen er ikke til rådighed ($1).",
        "poolcounter-usage-error": "Brugsfejl: $1",
        "aboutsite": "Om {{SITENAME}}",
        "aboutpage": "Project:Om",
        "viewsourceold": "vis wikikode",
        "editlink": "redigér",
        "viewsourcelink": "vis kildetekst",
-       "editsectionhint": "Rediger afsnit: $1",
+       "editsectionhint": "Redigér afsnit: $1",
        "toc": "Indholdsfortegnelse",
        "showtoc": "vis",
        "hidetoc": "skjul",
        "filerenameerror": "Kunne ikke omdøbe filen \"$1\" til \"$2\".",
        "filedeleteerror": "Kunne ikke slette filen \"$1\".",
        "directorycreateerror": "Kunne ikke oprette mappen \"$1\".",
+       "directoryreadonlyerror": "Folderen \"$1\" er skrivebeskyttet.",
+       "directorynotreadableerror": "Folderen \"$1\" er ikke læsbar.",
        "filenotfound": "Kunne ikke finde filen \"$1\".",
        "unexpected": "Uventet værdi: \"$1\"=\"$2\".",
        "formerror": "Fejl: Kunne ikke afsende formular",
        "no-null-revision": "Kunne ikke oprette nye tom revision for side \"$1\"",
        "badtitle": "Ugyldig titel",
        "badtitletext": "Den ønskede sides titel var ikke tilladt, tom eller siden er forkert henvist fra {{SITENAME}} på et andet sprog.\nDen kan indeholde et eller flere tegn, som ikke må anvendes i titler.",
+       "title-invalid-empty": "Den ønskede sidetitel er tom eller indeholder kun navnet på et navnerum.",
+       "title-invalid-utf8": "Den anmodede sidetitel indeholder en ugyldig UTF-8-sekvens.",
+       "title-invalid-interwiki": "Den ønskede sidetitel indeholder et interwiki-link, hvilket ikke kan bruges i titler.",
+       "title-invalid-talk-namespace": "Den anmodede sidetitel henviser til en diskussionsside der ikke kan eksistere.",
+       "title-invalid-characters": "Den anmodede sidetitel indeholder ugyldige tegn: \"$1\".",
+       "title-invalid-relative": "Titlen har en relativ sti. Relative sidetitler (./, ../), er ugyldige, fordi de ofte vil være utilgængelig, når de håndteres af brugerens browser.",
+       "title-invalid-magic-tilde": "Den anmodede sidetitel indeholder en ugyldig magisk tilde sekvens (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Den ønskede sidetitel er for lang. Den må ikke være længere end $1 {{PLURAL:$1|byte|bytes}} i UTF-8-kodning.",
+       "title-invalid-leading-colon": "Den ønskede sidetitel indeholder et ugyldigt kolon i starten.",
        "perfcached": "Følgende data er gemt i cachen, der muligvis ikke er helt opdateret. Der gemmes højst {{PLURAL:$1|ét resultat|$1 resultater}} i cachen.",
        "perfcachedts": "Disse data stammer fra cachen, som senest blev opdateret $1. Der gemmes højst {{PLURAL:$4|ét resultat|$4 resultater}} i cachen.",
        "querypage-no-updates": "Opdateringer til denne side er deaktiveret for øjeblikket. Dataene bliver indtil videre ikke fornyet.",
        "wrongpassword": "Den indtastede adgangskode var forkert. Prøv igen.",
        "wrongpasswordempty": "Du glemte at indtaste adgangskode. Prøv igen.",
        "passwordtooshort": "Adgangskoden skal mindst være på $1 {{PLURAL:$1|tegn|tegn}}.",
+       "passwordtoolong": "Adgangskoden må ikke være længere end {{PLURAL:$1|et tegn|$1 tegn}}.",
        "password-name-match": "Adgangskoden må ikke være det samme som brugernavnet.",
        "password-login-forbidden": "Brugen af dette brugernavn og adgangskode er blevet forbudt.",
        "mailmypassword": "Nulstil adgangskode",
        "content-model-css": "CSS",
        "content-json-empty-object": "Tomt objekt",
        "content-json-empty-array": "Tomt array",
+       "duplicate-args-category": "Sider der bruger samme argument mere end en gang i en skabelon",
+       "duplicate-args-category-desc": "Siden indeholder en skabelon hvor et argument er brugt mere end en gang, som <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> eller <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Advarsel: Der er for mange beregningstunge oversætter-funktionskald på denne side.\n\nDer bør være færre end {{PLURAL:$2|$2 kald}}, lige nu er der {{PLURAL:$1|$1 kald}}.",
        "expensive-parserfunction-category": "Sider med for mange beregningstunge oversætter-funktioner",
        "post-expand-template-inclusion-warning": "Advarsel: Der er tilføjet for mange skabeloner til denne side, så nogle af dem bliver ikke vist..",
        "node-count-exceeded-category-desc": "Siden overstiger det maksimale antal af noder.",
        "node-count-exceeded-warning": "Siden har overskredet antallet af noder",
        "expansion-depth-exceeded-category": "Sider, der overskrider ekspansionsdybden",
+       "expansion-depth-exceeded-category-desc": "Siden overskrider den maksimale udvidelsesdybde.",
        "expansion-depth-exceeded-warning": "Siden overskred ekspansionsdybden",
        "parser-unstrip-loop-warning": "Unstrip-loop opdaget",
        "parser-unstrip-recursion-limit": "Unstrip rekursionsgrænse er nået ($1)",
        "history-feed-description": "Versionshistorie for denne side i {{SITENAME}}",
        "history-feed-item-nocomment": "$1 med $2",
        "history-feed-empty": "Den ønskede side findes ikke. Måske er den slettet eller flyttet. [[Special:Search|Gennemsøg]] {{SITENAME}} efter passende nye sider.",
+       "history-edit-tags": "Redigér tags for de valgte versioner",
        "rev-deleted-comment": "(redigeringsbeskrivelsen er fjernet)",
        "rev-deleted-user": "(brugernavn fjernet)",
        "rev-deleted-event": "(logdetaljer fjernet)",
        "rev-deleted-user-contribs": "[brugernavn eller IP-adresse er fjernet - redigeringer er skjult fra bidragene]",
        "rev-deleted-text-permission": "Denne version af siden er blevet '''slettet'''.\nDer er måske flere detaljer i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} sletteloggen].",
+       "rev-suppressed-text-permission": "Denne version af siden er <strong>skjult</strong>.\nDetaljer kan findes i [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} skjulningsloggen].",
        "rev-deleted-text-unhide": "Denne version af siden er '''slettet'''.\nDer er måske flere detaljer i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} sletningsloggen].\nDu kan du stadig [$1 se versionen], hvis du ønsker at fortsætte.",
        "rev-suppressed-text-unhide": "Denne version af siden er '''skjult'''.\nDer er måske flere detaljer i [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} skjulningsloggen].\nDu kan stadig [$1 se versionen], hvis du ønsker at fortsætte.",
        "rev-deleted-text-view": "Denne version af siden er '''slettet'''.\nDu kan du se den. Der er måske flere detaljer i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} sletningsloggen].",
        "rev-showdeleted": "vis",
        "revisiondelete": "Slette/gendanne versioner",
        "revdelete-nooldid-title": "Ingen version angivet",
-       "revdelete-nooldid-text": "Du har ikke angivet en version, som denne handling kan udføres på.",
+       "revdelete-nooldid-text": "Du har ikke angivet en version, som denne handling kan udføres på, eller den angivne version findes ikke, eller du forsøger at skjule den seneste version.",
        "revdelete-no-file": "Den angivne fil findes ikke.",
        "revdelete-show-file-confirm": "Er du sikker på, at du vil vise en slettet version af filen \"<nowiki>$1</nowiki>\" fra den $2, klokken $3?",
        "revdelete-show-file-submit": "Ja",
+       "revdelete-selected-text": "{{PLURAL:$1|Valgte version|Valgte versioner}} af [[:$2]]:",
+       "revdelete-selected-file": "{{PLURAL:$1|Valgte filversion|Valgte filversioner}} af [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|Valgt logindførsel|Valgte logindførsler}}:",
        "revdelete-text-text": "Slettede versioner vil stadig fremgå af sidehistorikken, men dele af indholdet vil ikke være offentlig tilgængeligt.",
+       "revdelete-text-file": "Slettede filversioner vil stadig fremgå af sidehistorikken, men dele af indholdet vil ikke være offentlig tilgængeligt.",
+       "logdelete-text": "Slettede log hændelser vil stadig fremgå af loggen, men dele af indholdet vil ikke være offentlig tilgængeligt.",
        "revdelete-text-others": "Andre administratorer vil fortsat have adgang til det skjulte indhold og have mulighed for at genskabe det, med mindre andre begrænsninger er sat.",
        "revdelete-confirm": "Vær venlig at bekræfte at du vil gøre dette, at du forstår konsekvenserne, og at du gør det i overensstemmelse med [[{{MediaWiki:Policy-url}}|retningslinjerne]].",
        "revdelete-suppress-text": "Der bør '''kun''' skjules i de følgende tilfælde:\n* Potentielt injurierende oplysninger\n* Upassende personlige oplysninger\n*: ''hjemmeadresser og -telefonnumre, CPR-numre og lign.''",
        "revdelete-legend": "Fastlægge begrænsninger for versionerne:",
        "revdelete-hide-text": "Tekst for versionen",
        "revdelete-hide-image": "Skjul filindhold",
-       "revdelete-hide-name": "Skjul handling og mål",
+       "revdelete-hide-name": "Skjul mål og parametre",
        "revdelete-hide-comment": "Redigeringssammendrag",
        "revdelete-hide-user": "Brugerens brugernavn/IP-adresse",
        "revdelete-hide-restricted": "Skjul også informationen for administratorer",
        "mergehistory-empty": "Der findes ingen sammenflettelige udgaver",
        "mergehistory-success": "$3 {{PLURAL:$3|version|versioner}} af [[:$1]] blev flettet sammen med [[:$2]].",
        "mergehistory-fail": "Sammenfletningen kunne ikke gennemføres. Vær venlig at kontrollere sidenavne og tidsafgrænsning.",
+       "mergehistory-fail-toobig": "Ude af stand til at flette historiken sammen, fordi flere end grænsen på $1 {{PLURAL:$1|version|versioner}} ville blive flyttet.",
        "mergehistory-no-source": "Kildesiden $1 findes ikke.",
        "mergehistory-no-destination": "Destinationssiden $1 findes ikke.",
        "mergehistory-invalid-source": "Angiv et gyldigt sidenavn som kildeside.",
        "notextmatches": "Ingen artikeltekster opfyldte forespørgslen",
        "prevn": "forrige {{PLURAL:$1|$1}}",
        "nextn": "næste {{PLURAL:$1|$1}}",
+       "prev-page": "forrige side",
+       "next-page": "næste side",
        "prevn-title": "Forrige $1 {{PLURAL:$1|resultat|resultater}}",
        "nextn-title": "Næste {{PLURAL:$1|resultat|$1 resultater}}",
        "shown-title": "Vis $1 {{PLURAL:$1|resultat|resultater}} per side",
        "searchrelated": "relateret",
        "searchall": "alle",
        "showingresults": "Nedenfor vises <b>$1</b> {{PLURAL:$1|resultat|resultater}} startende med nummer <b>$2</b>.",
+       "showingresultsinrange": "Herunder vises op til {{PLURAL:$1|<strong>1</strong> resultat|<strong>$1</strong> resultater}} fra nummer <strong>$2</strong> til nummer <strong>$3</strong>.",
        "search-showingresults": "{{PLURAL:$4|Resultat <strong>$1</strong> af <strong>$3</strong>|Resultat <strong>$1 - $2</strong> af <strong>$3</strong>}}",
        "search-nonefound": "Søgningen gav ingen resultater.",
        "powersearch-legend": "Avanceret søgning",
        "powersearch-togglelabel": "Marker:",
        "powersearch-toggleall": "Alle",
        "powersearch-togglenone": "Ingen",
+       "powersearch-remember": "Husk valgene for fremtidige søgninger",
        "search-external": "Brug anden søgemaskine",
        "searchdisabled": "<p>Beklager! Fuldtekstsøgningen er midlertidigt afbrudt på grund af for stor belastning på serverne. I mellemtidem kan du anvende Google- eller Yahoo!-søgefelterne herunder. Bemærk at deres kopier af {{SITENAME}}s indhold kan være forældet.</p>",
        "search-error": "Der opstod en fejl under søgning: $1",
        "prefs-rc": "Seneste ændringer",
        "prefs-watchlist": "Overvågningsliste",
        "prefs-editwatchlist": "Rediger overvågningsliste",
+       "prefs-editwatchlist-label": "Redigér elementer på din overvågningsliste:",
+       "prefs-editwatchlist-edit": "Vis og fjern titler fra din overvågningsliste",
        "prefs-editwatchlist-raw": "Rediger rå overvågningsliste",
        "prefs-editwatchlist-clear": "Ryd din overvågningsliste",
        "prefs-watchlist-days": "Antal dage der skal vises i overvågningslisten:",
        "prefs-tokenwatchlist": "Mærke",
        "prefs-diffs": "Forskelle",
        "prefs-help-prefershttps": "Denne indstilling træder i kraft næste gang du logger på.",
+       "prefswarning-warning": "Du har foretaget ændringer af dine indstillinger, som ikke er gemt endnu.\nHvis du forlader denne side uden at klikke \"$1\", vil dine indstillinger ikke blive opdateret.",
        "prefs-tabs-navigation-hint": "Tip: Du kan bruge venstre og højre piletasterne til at navigere mellem fanerne i fanelisten.",
        "email-address-validity-valid": "E-mailadressen ser ud til at være gyldig",
        "email-address-validity-invalid": "Indtast en gyldig e-mailadresse",
        "userrights-lookup-user": "Administrér brugergrupper",
        "userrights-user-editname": "Skriv et brugernavn:",
        "editusergroup": "Redigér brugergrupper",
-       "editinguser": "Ændrer brugerrettigheder for brugeren '''[[User:$1|$1]]''' $2",
+       "editinguser": "Ændrer brugerrettigheder for {{GENDER:$1|brugeren}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Redigér brugergrupper",
        "saveusergroups": "Gem brugergrupper",
        "userrights-groupsmember": "Medlem af:",
        "right-protect": "Ændre beskyttelsesniveauer og redigere cascade-beskyttede sider",
        "right-editprotected": "Redigere sider beskyttet som \"{{int:protect-level-sysop}}\"",
        "right-editsemiprotected": "Rediger sider, der er beskyttet som \"{{int:protect-level-autoconfirmed}}\"",
+       "right-editcontentmodel": "Redigere indholdsmodellen for en side",
        "right-editinterface": "Ændre brugergrænsefladens tekster",
        "right-editusercssjs": "Ændre andre brugeres JS og CSS filer",
        "right-editusercss": "Ændre andre brugeres CSS filer",
        "right-override-export-depth": "Eksportere sider inkl. henviste sider op til en dybde på 5",
        "right-sendemail": "Sende e-mail til andre brugere",
        "right-passwordreset": "Se e-mails til nulstilling af adgangskoder",
+       "right-managechangetags": "Oprette og slette [[Special:Tags|tags]] fra databasen",
+       "right-applychangetags": "Tilføje [[Special:Tags|tags]] sammen med ens ændringer",
+       "right-changetags": "Tilføje og fjerne vilkårlige [[Special:Tags|tags]] for enkelte versioner og logposter",
        "newuserlogpage": "Brugeroprettelseslog",
        "newuserlogpagetext": "Dette er en log over de senest oprettede brugere.",
        "rightslog": "Rettighedslog",
        "action-viewmywatchlist": "se din overvågningsliste",
        "action-viewmyprivateinfo": "se din private information",
        "action-editmyprivateinfo": "rediger dine private oplysninger",
+       "action-editcontentmodel": "redigere indholdsmodellen for en side",
+       "action-managechangetags": "oprette og slette tags fra databasen",
+       "action-applychangetags": "tilføje tags sammen med dine ændringer",
+       "action-changetags": "tilføje og fjerne vilkårlige tags for enkelte versioner og logposter",
        "nchanges": "$1 {{PLURAL:$1|ændring|ændringer}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|siden sidste besøg}}",
        "enhancedrc-history": "historik",
        "listfiles-delete": "slet",
        "listfiles-summary": "Denne specialside viser alle oplagte filer.",
        "listfiles_search_for": "Søge efter fil:",
+       "listfiles-userdoesnotexist": "Brugerkontoen \"$1\" er ikke registreret.",
        "imgfile": "Fil",
        "listfiles": "Filliste",
        "listfiles_thumb": "Thumbnail",
        "filedelete-maintenance": "Sletning og gendannelse af filer er midlertidigt forhindret på grund af vedligeholdelse.",
        "filedelete-maintenance-title": "Kan ikke slette fil",
        "mimesearch": "Søge efter MIME-type",
-       "mimesearch-summary": "På denne specialside kan filerne filtreres efter MIME-typen. Indtastningen skal altid indeholde medie- og undertypen: <code>image/jpeg</code> (se billedbeskrivelsessiden).",
+       "mimesearch-summary": "Denne side gør det muligt at filtrere filer efter deres MIME-type.\nInput: indholdstype/subtype eller indholdstype/*, f.eks. <code>image/jpeg</code>.",
        "mimetype": "MIME-type:",
        "download": "DownloadHerunterladen",
        "unwatchedpages": "Ikke overvågede sider",
        "listredirects": "Henvisningsliste",
+       "listduplicatedfiles": "Liste over filer med dubletter",
+       "listduplicatedfiles-summary": "Dette er en liste over filer, hvor den seneste version af filen er en kopi af den seneste version af en anden fil. Kun lokale filer er taget i betragtning.",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]] har [[$3|{{PLURAL:$2|en dublet|$2 dubletter}}]].",
        "unusedtemplates": "Ubrugte skabeloner",
        "unusedtemplatestext": "Her opremses alle sider i {{ns:template}}-navnerummet, der ikke er inkluderet på andre sider.\nHusk at kontrollere for andre henvisninger til skabelonerne før de slettes.",
        "unusedtemplateswlh": "andre henvisninger",
        "unusedimages": "Ubrugte filer",
        "wantedcategories": "Ønskede kategorier",
        "wantedpages": "Ønskede sider",
+       "wantedpages-summary": "Liste over ikke-eksisterende sider, der har flest links til dem, undtagen sider, som kun har omdirigeringer, der forbinder dem. For en liste over ikke-eksisterende sider, der har omdirigeringer, der linker til dem, se [[{{#special:BrokenRedirects}}]].",
        "wantedpages-badtitle": "Ugyldig titel i resultaterne: $1",
        "wantedfiles": "Ønskede filer",
        "wantedfiletext-cat": "De følgende filer er i brug, men findes ikke. Filer fra eksterne databaser kan være medtaget, selvom de reelt findes. Sådanne falske positiver vil være <del>streget over</del>. Sider, der bruger ikke-eksisterende filer, kan findes i [[:$1]].",
+       "wantedfiletext-cat-noforeign": "Følgende filer er i brug, men findes ikke. I øvrigt er sider der indeholder filer der ikke findes, listet på [[:$1]].",
        "wantedfiletext-nocat": "De følgende filer er i brug, men findes ikke. Filer fra eksterne databaser kan være medtaget, selvom de reelt findes. Sådanne falske positiver vil være <del>streget over</del>.",
+       "wantedfiletext-nocat-noforeign": "Følgende filer er i brug, men findes ikke.",
        "wantedtemplates": "Ønskede skabeloner",
        "mostlinked": "Sider med flest henvisninger",
        "mostlinkedcategories": "Mest brugte kategorier",
-       "mostlinkedtemplates": "Hyppigst brugte skabeloner",
+       "mostlinkedtemplates": "Mest brugte sider",
        "mostcategories": "Mest brugte sider",
        "mostimages": "Mest brugte filer",
        "mostinterwikis": "Sider med flest interwikilinks",
        "pager-older-n": "{{PLURAL:$1|1 ældre|$1 ældre}}",
        "suppress": "Skjul logs",
        "querypage-disabled": "Denne specialside er deaktiveret af hensyn til ydeevnen.",
+       "apihelp": "API-hjælp",
+       "apihelp-no-such-module": "Modul \"$1\" ikke fundet.",
        "booksources": "Bogkilder",
        "booksources-search-legend": "Søgning efter bøger",
        "booksources-search": "Søg",
        "logempty": "Intet passende fundet.",
        "log-title-wildcard": "Søg i titler som begynder med teksten",
        "showhideselectedlogentries": "Vis/skjul de markerede loghændelser",
+       "log-edit-tags": "Rediger tags i valgte logposter",
        "allpages": "Alle sider",
        "nextpage": "Næste side ($1)",
        "prevpage": "Forrige side ($1)",
        "listgrouprights-namespaceprotection-namespace": "Navnerum",
        "listgrouprights-namespaceprotection-restrictedto": "Rettighed(er) der giver brugeren mulighed for at redigere",
        "trackingcategories": "Sporingskategorier",
+       "trackingcategories-summary": "Denne side viser sporing af de kategorier, som er automatisk udfyldt af MediaWiki-softwaren. Deres navne kan ændres ved at ændre de relevante system-beskeder i {{ns:8}}-navnerummet.",
        "trackingcategories-msg": "Sporingskategori",
+       "trackingcategories-name": "Navn på besked",
        "trackingcategories-desc": "Optagelseskriterier for kategori",
        "noindex-category-desc": "Siden indekseres ikke af robotter, fordi den indeholder det magiske ord <code><nowiki>__NOINDEX__</nowiki></code> og er i et navnerum, hvor dette flag er tilladt.",
        "index-category-desc": "Siden indeholder <code><nowiki>__INDEX__</nowiki></code> (og er i et navnerum, hvor dette flag er tilladt), og bliver derfor indekseret af robotter, hvor den normalt ikke ville blive det.",
+       "post-expand-template-inclusion-category-desc": "Siden er større end <code>$wgMaxArticleSize</code> efter alle skabeloner er udvidet, så nogle skabeloner blev ikke udvidet.",
+       "post-expand-template-argument-category-desc": "Siden er større end <code>$wgMaxArticleSize</code> efter udvidelse af et skabelon argument (noget i triple krøllede paranteser, som <code>{{{Foo}}}</code>).",
+       "expensive-parserfunction-category-desc": "Siden bruger alt for mange beregningstunge funktioner (som <code>#ifexist</code>). Se [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
+       "broken-file-category-desc": "Siden indeholder en defekt filhenvisning (en henvisning til at indlejre en fil der ikke eksisterer).",
+       "hidden-category-category-desc": "Kategorien indeholder <code><nowiki>__HIDDENCAT__</nowiki></code> i sideindholdet, hvilket som standard forhindrer den i at blive vist i kategorilisten på sider.",
        "trackingcategories-nodesc": "Ingen beskrivelse tilgængelig.",
        "trackingcategories-disabled": "Kategorien er deaktiveret",
        "mailnologin": "Du er ikke logget på",
        "emailccsubject": "Kopi af din besked til $1: $2",
        "emailsent": "E-mail sendt",
        "emailsenttext": "Din e-mail er blevet sendt.",
-       "emailuserfooter": "Denne e-mail er sendt af $1 til $2 ved hjælp af funktionen \"E-mail til denne bruger\" på {{SITENAME}}.",
+       "emailuserfooter": "Denne e-mail er sendt af $1 til $2 ved hjælp af funktionen \"{{int:emailpage}}\" på {{SITENAME}}.",
        "usermessage-summary": "Efterlader system besked.",
        "usermessage-editor": "System messenger",
        "watchlist": "Overvågningsliste",
        "tags-actions-header": "Handlinger",
        "tags-active-yes": "Ja",
        "tags-active-no": "Nej",
+       "tags-source-extension": "Defineret af en tilføjelse",
+       "tags-source-none": "Anvendes ikke længere",
        "tags-edit": "redigér",
        "tags-delete": "slet",
        "tags-activate": "aktiver",
        "tags-deactivate": "deaktiver",
        "tags-hitcount": "{{PLURAL:$1|en ændring|$1 ændringer}}",
+       "tags-create-reason": "Årsag:",
+       "tags-create-submit": "Opret",
+       "tags-delete-reason": "Årsag:",
+       "tags-activate-reason": "Årsag:",
+       "tags-activate-submit": "Aktiver",
+       "tags-deactivate-reason": "Årsag:",
+       "tags-deactivate-submit": "Deaktiver",
+       "tags-edit-existing-tags-none": "\"Ingen\"",
+       "tags-edit-reason": "Årsag:",
        "comparepages": "Sammenlign sider",
        "compare-page1": "Side 1",
        "compare-page2": "Side 2",
        "compare-revision-not-exists": "Den version, du har angivet, findes ikke.",
        "dberr-problems": "Undskyld! Siden har tekniske problemer.",
        "dberr-again": "Prøv at vente et par minutter og opdater så siden igen.",
-       "dberr-info": "(Kan ikke komme i kontakt med databaseserveren: $1)",
-       "dberr-info-hidden": "(Kan ikke komme i kontakt med databaseserveren)",
+       "dberr-info": "(Kan ikke tilgå databasen: $1)",
+       "dberr-info-hidden": "(Kan ikke tilgå databasen)",
        "dberr-usegoogle": "Du kan prøve at søge med Google imens.",
        "dberr-outofdate": "Bemærk at deres indeks over vores sider kan være forældet.",
        "dberr-cachederror": "Det følgende er en mellemlagret kopi af den forespurgte side. Den kan være forældet.",
        "rightsnone": "(-)",
        "revdelete-summary": "redigeringsbeskrivelse",
        "feedback-adding": "Tilføjer kommentar til side...",
+       "feedback-back": "Tilbage",
        "feedback-bugcheck": "Skønt! Men tjek venligst, at det ikke er en af de [$1 kendte fejl].",
        "feedback-bugnew": "Jeg har kontrolleret. Rapporter en ny fejl.",
        "feedback-bugornote": "Hvis du er klar til at beskrive et teknisk problem i detaljer, bedes du [$1 rapportere en fejl].\nEllers kan du bruge den enkle formular nedenfor. Din kommentar vil blive tilføjet siden \"[$3 $2]\" sammen med dit brugernavn og den browser, du anvender.",
        "feedback-cancel": "Afbryd",
        "feedback-close": "Færdig",
+       "feedback-dialog-title": "Indsend feedback",
+       "feedback-error-title": "Fejl",
        "feedback-error1": "Fejl: Ukendt resultat fra API",
        "feedback-error2": "Fejl: Redigering mislykkedes",
        "feedback-error3": "Fejl: Intet svar fra API",
        "mediastatistics-table-count": "Antal filer",
        "mediastatistics-table-totalbytes": "Samlet størrelse",
        "mediastatistics-header-unknown": "Ukendt",
+       "mediastatistics-header-bitmap": "Bitmapbilleder",
+       "mediastatistics-header-drawing": "Tegninger (vektorbilleder)",
        "mediastatistics-header-audio": "Lyd",
        "mediastatistics-header-video": "Videoer",
+       "mediastatistics-header-office": "Kontor",
        "mediastatistics-header-text": "Tekstformat",
        "mediastatistics-header-executable": "Kørbare filer",
        "mediastatistics-header-archive": "Komprimerede formater",
+       "json-error-state-mismatch": "Ugyldig eller fejlbehæftet JSON",
        "json-error-syntax": "Syntaksfejl",
        "special-characters-group-latin": "Latin",
        "special-characters-group-latinextended": "Udvidet latin",
index 8237090..52c9d64 100644 (file)
@@ -77,7 +77,8 @@
                        "XenonX3",
                        "Brackenheim",
                        "Robby",
-                       "Andreasburmeister"
+                       "Andreasburmeister",
+                       "Tiin"
                ]
        },
        "tog-underline": "Links unterstreichen:",
        "pagetitle": "$1 – {{SITENAME}}",
        "retrievedfrom": "Von „$1“",
        "youhavenewmessages": "Du hast $1 ($2).",
-       "youhavenewmessagesfromusers": "Du hast $1 von {{PLURAL:$3|einem anderen Benutzer|$3 Benutzern}} ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|Du hast}} $1 von {{PLURAL:$3|einem anderen Benutzer|$3 Benutzern}} ($2).",
        "youhavenewmessagesmanyusers": "Du hast $1 von vielen Benutzern ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|eine neue Nachricht|999=neue Nachrichten}}",
        "newmessagesdifflinkplural": "letzte {{PLURAL:$1|Änderung|999=Änderungen}}",
        "badtitletext": "Der Titel der angeforderten Seite ist ungültig, leer oder ein ungültiger Sprachlink von einem anderen Wiki.",
        "title-invalid-empty": "Der angeforderte Seitentitel ist leer oder enthält nur den Namen eines Namensraums.",
        "title-invalid-utf8": "Der angeforderte Seitentitel enthält eine ungültige UTF-8-Sequenz.",
-       "title-invalid-interwiki": "Der Titel enthält einen Interwiki-Link",
+       "title-invalid-interwiki": "Der angeforderte Seitentitel enthält einen Interwiki-Link, der nicht in Titel verwendet werden kann.",
        "title-invalid-talk-namespace": "Der angeforderte Seitentitel bezieht sich auf eine Diskussionsseite, die nicht existieren kann.",
        "title-invalid-characters": "Der angeforderte Seitentitel enthält ungültige Zeichen: „$1“.",
        "title-invalid-relative": "Der Titel hat einen relativen Pfad. Relative Seitentitel (./, ../) sind ungültig, da sie durch Webbrowser oft unerreichbar sind.",
        "title-invalid-magic-tilde": "Der angeforderte Seitentitel enthält eine ungültige Magische-Tilden-Sequenz (<nowiki>~~~</nowiki>).",
-       "title-invalid-too-long": "Der angeforderte Seitentitel ist zu lang. Er darf nicht länger als $1 Bytes in UTF-8-Kodierung sein.",
+       "title-invalid-too-long": "Der angeforderte Seitentitel ist zu lang. Er darf nicht länger als {{PLURAL:$1|ein Byte|$1 Bytes}} in UTF-8-Kodierung sein.",
        "title-invalid-leading-colon": "Der angeforderte Seitentitel enthält am Anfang einen ungültigen Doppelpunkt.",
        "perfcached": "Die folgenden Daten stammen aus dem Cache und sind möglicherweise nicht aktuell. Maximal {{PLURAL:$1|ein Ergebnis ist|$1 Ergebnisse sind}} im Cache verfügbar.",
        "perfcachedts": "Diese Daten stammen aus dem Cache. Der Zeitpunkt der letzten Aktualisierung: $2, $3 Uhr. Maximal {{PLURAL:$4|ein Ergebnis ist|$4 Ergebnisse sind}} im Cache verfügbar.",
        "passwordreset-capture-help": "Wenn du dieses Kästchen ankreuzt, wird die E-Mail-Nachricht mit dem temporären Passwort sowohl dir angezeigt als auch dem Benutzer zugesandt.",
        "passwordreset-email": "E-Mail-Adresse:",
        "passwordreset-emailtitle": "Benutzerkontoinformationen auf {{SITENAME}}",
-       "passwordreset-emailtext-ip": "Jemand mit der IP-Adresse $1, wahrscheinlich du selbst, hat eine Zurücksetzung deines\nPassworts bei {{SITENAME}} angefordert ($4). {{PLURAL:$3|Das folgende Benutzerkonto ist|Die folgenden Benutzerkonten sind}}\nmit dieser E-Mail-Adresse verknüpft:\n\n$2\n\n{{PLURAL:$3|Dieses temporäre Passwort läuft|Diese temporären Passwörter laufen}} innerhalb von {{PLURAL:$5|einem Tag|$5 Tagen}} ab.\nDu solltest dich anmelden und ein neues Passwort vergeben. Falls jemand anderes diese\nAnfrage getätigt hat oder du dich wieder an dein ursprüngliches Passwort erinnern kannst und es nicht länger\nändern möchtest, kannst du diese Nachricht ignorieren und weiterhin dein altes\nPasswort benutzen.",
+       "passwordreset-emailtext-ip": "Jemand mit der IP-Adresse $1, wahrscheinlich du selbst, hat eine Zurücksetzung deines Passworts bei {{SITENAME}} angefordert ($4). {{PLURAL:$3|Das folgende Benutzerkonto ist|Die folgenden Benutzerkonten sind}} mit dieser E-Mail-Adresse verknüpft:\n\n$2\n\n{{PLURAL:$3|Dieses temporäre Passwort läuft|Diese temporären Passwörter laufen}} innerhalb von {{PLURAL:$5|einem Tag|$5 Tagen}} ab.\nDu solltest dich anmelden und ein neues Passwort vergeben. Falls jemand anderes diese Anfrage getätigt hat oder du dich wieder an dein ursprüngliches Passwort erinnern kannst und es nicht länger ändern möchtest, kannst du diese Nachricht ignorieren und weiterhin dein altes Passwort benutzen.",
        "passwordreset-emailtext-user": "Benutzer $1 bei {{SITENAME}} hat eine Zurücksetzung deines Passworts bei {{SITENAME}} angefordert ($4). {{PLURAL:$3|Das folgende Benutzerkonto ist|Die folgenden Benutzerkonten sind}} mit dieser E-Mail-Adresse verknüpft:\n\n$2\n\n{{PLURAL:$3|Dieses temporäre Passwort läuft|Diese temporären Passwörter laufen}} innerhalb von {{PLURAL:$5|einem Tag|$5 Tagen}} ab. Du solltest dich anmelden und ein neues Passwort vergeben. Falls jemand anderes diese Anfrage getätigt hat oder du dich wieder an dein ursprüngliches Passwort erinnern kannst und es nicht ändern möchtest, kannst du diese Nachricht ignorieren und weiterhin dein altes Passwort benutzen.",
        "passwordreset-emailelement": "Benutzername: $1\nTemporäres Passwort: $2",
        "passwordreset-emailsent": "Eine Passwortzurücksetzungs-E-Mail wurde versandt.",
        "content-model-css": "CSS",
        "content-json-empty-object": "Leeres Objekt",
        "content-json-empty-array": "Leeres Array",
+       "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>.",
        "expensive-parserfunction-warning": "'''Achtung:''' Diese Seite enthält zu viele Aufrufe aufwändiger Parserfunktionen.\n\nSie darf nicht mehr als $2 {{PLURAL:$2|Aufruf|Aufrufe}} haben, es {{PLURAL:$1|ist aktuell $1 Aufruf|sind aktuell $1 Aufrufe}}.",
        "nextn-title": "{{PLURAL:$1|Folgendes Ergebnis|Folgende $1 Ergebnisse}}",
        "shown-title": "Zeige $1 {{PLURAL:$1|Ergebnis|Ergebnisse}} pro Seite",
        "viewprevnext": "Zeige ($1 {{int:pipe-separator}} $2) ($3)",
-       "searchmenu-exists": "'''Es gibt eine Seite, die den Namen „[[:$1]]“ hat.'''",
+       "searchmenu-exists": "<strong>Es gibt eine Seite, die den Namen „[[:$1]]“ hat.</strong> {{PLURAL:$2|0=|Weitere Suchergebnisse anzeigen.}}",
        "searchmenu-new": "<strong>Erstelle die Seite „[[:$1]]“ in diesem Wiki.</strong> {{PLURAL:$2|0=|Siehe auch die über deine Suche gefundene Seite.|Siehe auch die gefundenen Suchergebnisse.}}",
        "searchprofile-articles": "Inhaltsseiten",
        "searchprofile-images": "Multimedia",
        "userrights-lookup-user": "Gruppenzugehörigkeit verwalten",
        "userrights-user-editname": "Benutzername:",
        "editusergroup": "Benutzerrechte bearbeiten",
-       "editinguser": "Ändere Benutzerrechte von '''[[User:$1|$1]]''' $2",
+       "editinguser": "Ändere Benutzerrechte {{GENDER:$1|des Benutzers|der Benutzerin}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Benutzer-Gruppenzugehörigkeit bearbeiten",
        "saveusergroups": "Gruppenzugehörigkeit ändern",
        "userrights-groupsmember": "Mitglied von:",
        "uploaddisabledtext": "Das Hochladen von Dateien ist deaktiviert.",
        "php-uploaddisabledtext": "Das Hochladen von Dateien wurde in PHP deaktiviert.\nBitte überprüfe die <code>file_uploads</code>-Einstellung.",
        "uploadscripted": "Diese Datei enthält HTML- oder Scriptcode, der irrtümlich von einem Webbrowser ausgeführt werden könnte.",
+       "upload-scripted-pi-callback": "Es kann keine Datei hochgeladen werden, die XML-Stylesheet-Verarbeitungsbefehle enthält.",
+       "uploaded-script-svg": "Skriptelement „$1“ in der hochgeladenen SVG-Datei gefunden.",
+       "uploaded-hostile-svg": "Unsicheres CSS im Styleelement der hochgeladenen SVG-Datei gefunden.",
+       "uploaded-event-handler-on-svg": "Das Festlegen von Ereignis-Handler-Attributen <code>$1=\"$2\"</code> ist in SVG-Dateien nicht erlaubt.",
+       "uploaded-href-attribute-svg": "Href-Attribute <code>&lt;$1 $2=\"$3\"&gt;</code> mit nicht-lokalem Ziel (z.&nbsp;B. http://, javascript: etc.) sind in SVG-Dateien nicht erlaubt.",
+       "uploaded-href-unsafe-target-svg": "href zu unsicherem Ziel <code>&lt;$1 $2=\"$3\"&gt;</code> in der hochgeladenen SVG-Datei gefunden.",
+       "uploaded-animate-svg": "Tag „animate“ gefunden, das href mithilfe des Attributs „from“ <code>&lt;$1 $2=\"$3\"&gt;</code> in der hochgeladenen SVG-Datei ändern könnte.",
+       "uploaded-setting-event-handler-svg": "Das Festlegen von Ereignis-Handler-Attributen ist gesperrt. <code>&lt;$1 $2=\"$3\"&gt;</code> in der hochgeladenen SVG-Datei gefunden.",
+       "uploaded-setting-href-svg": "Die Verwendung des Tags „set“ zum Hinzufügen des Attributs „href“ zum übergeordneten Element ist gesperrt.",
+       "uploaded-wrong-setting-svg": "Die Verwendung des Tags „set“ zum Hinzufügen eines Remote-/Daten-/Skriptziels zu einem beliebigen Attribut ist gesperrt. <code>&lt;set to=\"$1\"&gt;</code> in der hochgeladenen SVG-Datei gefunden.",
+       "uploaded-setting-handler-svg": "SVG, das das Attribut „handler“ mit Remote/Daten/Skript festlegt, ist gesperrt. <code>$1=\"$2\"</code> in der hochgeladenen SVG-Datei gefunden.",
+       "uploaded-remote-url-svg": "SVG, das ein beliebiges Style-Attribut mit einer Remote-URL festlegt, ist gesperrt. <code>$1=\"$2\"</code> in der hochgeladenen SVG-Datei gefunden.",
+       "uploaded-image-filter-svg": "Bildfilter mit der URL <code>&lt;$1 $2=\"$3\"&gt;</code> in der hochgeladenen SVG-Datei gefunden.",
        "uploadscriptednamespace": "Diese SVG-Datei enthält den ungültigen Namensraum „$1“.",
        "uploadinvalidxml": "Das XML in der hochgeladenen Datei konnte nicht geparst werden.",
        "uploadvirus": "Diese Datei enthält einen Virus! Details: $1",
        "randompage-nopages": "Es sind keine Seiten {{PLURAL:$2|im folgenden Namensraum|in den folgenden Namensräumen}} enthalten: „$1“",
        "randomincategory": "Zufällige Seite einer Kategorie",
        "randomincategory-invalidcategory": "„$1“ ist kein gültiger Kategorienname.",
-       "randomincategory-nopages": "Es gibt keine Seiten in [[:Category:$1]].",
+       "randomincategory-nopages": "Es gibt keine Seiten in der Kategorie [[:Category:$1|$1]].",
        "randomincategory-category": "Kategorie:",
        "randomincategory-legend": "Zufällige Seite in Kategorie",
        "randomredirect": "Zufällige Weiterleitung",
        "unusedimages": "Verwaiste Dateien",
        "wantedcategories": "Gewünschte Kategorien",
        "wantedpages": "Gewünschte Seiten",
-       "wantedpages-summary": "Liste nicht vorhandener Seiten mit den meisten Links auf diese Seiten, ausschließlich solche, die nur Weiterleitungen haben. Für eine Liste nicht vorhandener Seiten mit Weiterleitungen, siehe [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "Liste nicht vorhandener Seiten mit den meisten Links auf diese Seiten, ausschließlich solche, die nur Weiterleitungen haben. Für eine Liste nicht vorhandener Seiten mit Weiterleitungen, siehe [[{{#special:BrokenRedirects}}|die Liste defekter Weiterleitungen]].",
        "wantedpages-badtitle": "Ungültiger Titel im Ergebnis: $1",
        "wantedfiles": "Gewünschte Dateien",
        "wantedfiletext-cat": "Die folgenden Dateien werden verwendet, sind jedoch nicht vorhanden. Vorhandene Dateien aus fremden Repositorien können dennoch hier aufgelistet sein und werden <del>durchgestrichen</del> dargestellt. Zusätzlich werden Seiten, die nicht vorhandene Dateien enthalten, in die [[:$1]] eingeordnet.",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|Version|Versionen}} importiert",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|Version|Versionen}} von $2 importiert",
        "javascripttest": "JavaScript-Test",
-       "javascripttest-pagetext-noframework": "Diese Seite ist JavaSkript-Tests vorbehalten.",
+       "javascripttest-pagetext-noframework": "Diese Seite ist JavaScript-Tests vorbehalten.",
        "javascripttest-pagetext-unknownframework": "Unbekanntes Framework „$1“.",
        "javascripttest-pagetext-unknownaction": "Unbekannte Aktion „$1“.",
        "javascripttest-pagetext-frameworks": "Bitte wähle eine der folgenden Prüfumgebungen aus: $1",
        "log-name-pagelang": "Sprachenänderungs-Logbuch",
        "log-description-pagelang": "Dies ist ein Logbuch mit Änderungen an Seitensprachen.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|änderte}} die Seitensprache für $3 von $4 nach $5.",
-       "default-skin-not-found": "Hoppla! Die mit <code>$wgDefaultSkin</code> als <code>$1</code>&nbsp;für dein Wiki definierte Standardbenutzeroberfläche ist nicht verfügbar.\n\n{{PLURAL:$4|Die folgende Benutzeroberfläche scheint|Die folgenden Benutzeroberflächen scheinen}} vorhanden zu sein:\n\n$2\n\nSiehe hierzu das [https://www.mediawiki.org/wiki/Manual:Skin_configuration/de Benutzerhandbuch zur Konfiguration von Benutzeroberflächen].\n\n; Sofern du MediaWiki gerade installiert hast\n: Du hast MediaWiki vermutlich mit Hilfe von Git oder den Quellcode direkt anhand einer anderen Methode installiert. Das aktuelle Problem war deshalb zu erwarten. Installiere zumindest eine im [https://www.mediawiki.org/wiki/Category:All_skins Verzeichnis der Benutzeroberflächen] enthaltene Benutzeroberfläche indem du:\n:* eines der Repositorien aus <code>mediawiki/skins/*</code> mit Hilfe von Git in das Verzeichnis <code dir=\"ltr\">skins/</code> deiner MediaWiki-Installation klonst,\n:* die Dateiveröffentlichungen einzelner Benutzeroberflächen aus [https://www.mediawiki.org/wiki/Special:SkinDistributor MediaWiki.org] herunterlädst und in das Verzeichnis <code dir=\"ltr\">skins/</code> deiner MediaWiki-Installation kopierst,\n:* die [https://www.mediawiki.org/wiki/Download/de Dateiveröffentlichung von MediaWiki] herunterlädst, die verschiedene Benutzeroberflächen sowie Erweiterungen enthält. Du kannst das dort enthaltene Verzeichnis <code>skins/</code> Verzeichnis nutzen und in das Verzeichnis <code dir=\"ltr\">skins/</code> deiner MediaWiki-Installation kopieren.\n\n; Sofern du MediaWiki gerade aktualisiert hast\n: Bei MediaWiki 1.24 und neueren Versionen werden die installierten Benutzeroberflächen nicht mehr automatisch aktiviert (siehe das [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Benutzerhandbuch]). Du kannst die {{PLURAL:$5|folgende Zeile|folgenden Zeilen}} in die Datei <code>LocalSettings.php</code> einfügen, um {{PLURAL:$5|die derzeit installierte Benutzeroberfläche|alle derzeit installierten Benutzeroberflächen}} zu aktivieren:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Falls du gerade die Datei <code>LocalSettings.php</code> geändert hast\n: Überprüfe die Namen der Benutzeroberflächen auf Tippfehler.",
-       "default-skin-not-found-no-skins": "Hoppla! Die mit <code>$wgDefaultSkin</code> als <code>$1</code>&nbsp;für dein Wiki definierte Standardbenutzeroberfläche ist nicht verfügbar.\n\nDu hast keine Benutzeroberfläche installiert.\n\n; Sofern du MediaWiki gerade installiert oder aktualisiert hast\n: Du hast MediaWiki vermutlich mit Hilfe von Git oder den Quellcode direkt anhand einer anderen Methode installiert. Das aktuelle Problem war deshalb zu erwarten, da MediaWiki 1.24 und neuere Versionen keine Benutzeroberflächen im Hauptrepositorium enthalten. Installiere zumindest eine im [https://www.mediawiki.org/wiki/Category:All_skins Verzeichnis der Benutzeroberflächen] enthaltene Benutzeroberfläche indem du:\n:* eines der Repositorien aus <code>mediawiki/skins/*</code> mit Hilfe von Git in das Verzeichnis <code dir=\"ltr\">skins/</code> deiner MediaWiki-Installation klonst,\n:* die Dateiveröffentlichungen einzelner Benutzeroberflächen aus [https://www.mediawiki.org/wiki/Special:SkinDistributor MediaWiki.org] herunterlädst und in das Verzeichnis <code dir=\"ltr\">skins/</code> deiner MediaWiki-Installation kopierst,\n:* die [https://www.mediawiki.org/wiki/Download/de Dateiveröffentlichung von MediaWiki] herunterlädst, die verschiedene Benutzeroberflächen sowie Erweiterungen enthält. Du kannst das dort enthaltene Verzeichnis <code>skins/</code> Verzeichnis nutzen und in das Verzeichnis <code dir=\"ltr\">skins/</code> deiner MediaWiki-Installation kopieren.\n: Siehe hierzu das [https://www.mediawiki.org/wiki/Manual:Skin_configuration/de Benutzerhandbuch zur Konfiguration von Benutzeroberflächen].",
+       "default-skin-not-found": "Hoppla! Die mit <code>$wgDefaultSkin</code> als <code>$1</code>&nbsp;für dein Wiki definierte Standardbenutzeroberfläche ist nicht verfügbar.\n\n{{PLURAL:$4|Die folgende Benutzeroberfläche scheint|Die folgenden Benutzeroberflächen scheinen}} vorhanden zu sein:\n\n$2\n\nSiehe hierzu das [https://www.mediawiki.org/wiki/Manual:Skin_configuration/de Benutzerhandbuch zur Konfiguration von Benutzeroberflächen].\n\n; Sofern du MediaWiki gerade installiert hast\n: Du hast MediaWiki vermutlich mit Hilfe von Git oder den Quellcode direkt anhand einer anderen Methode installiert. Das aktuelle Problem war deshalb zu erwarten. Installiere zumindest eine im [https://www.mediawiki.org/wiki/Category:All_skins Verzeichnis der Benutzeroberflächen] enthaltene Benutzeroberfläche indem du:\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Git zum Herunterladen von Benutzeroberflächen verwendest].\n:* die Dateiveröffentlichungen einzelner Benutzeroberflächen aus [https://www.mediawiki.org/wiki/Special:SkinDistributor MediaWiki.org] herunterlädst und in das Verzeichnis <code dir=\"ltr\">skins/</code> deiner MediaWiki-Installation kopierst,\n:* die [https://www.mediawiki.org/wiki/Download/de Dateiveröffentlichung von MediaWiki] herunterlädst, die verschiedene Benutzeroberflächen sowie Erweiterungen enthält. Du kannst das dort enthaltene Verzeichnis <code>skins/</code> Verzeichnis nutzen und in das Verzeichnis <code dir=\"ltr\">skins/</code> deiner MediaWiki-Installation kopieren.\n\n; Sofern du MediaWiki gerade aktualisiert hast\n: Bei MediaWiki 1.24 und neueren Versionen werden die installierten Benutzeroberflächen nicht mehr automatisch aktiviert (siehe das [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Benutzerhandbuch]). Du kannst die {{PLURAL:$5|folgende Zeile|folgenden Zeilen}} in die Datei <code>LocalSettings.php</code> einfügen, um {{PLURAL:$5|die installierte Benutzeroberfläche|alle installierten Benutzeroberflächen}} zu aktivieren:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Falls du gerade die Datei <code>LocalSettings.php</code> geändert hast\n: Überprüfe die Namen der Benutzeroberflächen auf Tippfehler.",
+       "default-skin-not-found-no-skins": "Hoppla! Die mit <code>$wgDefaultSkin</code> als <code>$1</code>&nbsp;für dein Wiki definierte Standardbenutzeroberfläche ist nicht verfügbar.\n\nDu hast keine Benutzeroberfläche installiert.\n\n; Sofern du MediaWiki gerade installiert oder aktualisiert hast\n: Du hast MediaWiki vermutlich mit Hilfe von Git oder den Quellcode direkt anhand einer anderen Methode installiert. Das aktuelle Problem war deshalb zu erwarten, da MediaWiki 1.24 und neuere Versionen keine Benutzeroberflächen im Hauptrepositorium enthalten. Installiere zumindest eine im [https://www.mediawiki.org/wiki/Category:All_skins Verzeichnis der Benutzeroberflächen] enthaltene Benutzeroberfläche indem du:\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Git zum Herunterladen von Benutzeroberflächen verwendest].\n:* die Dateiveröffentlichungen einzelner Benutzeroberflächen aus [https://www.mediawiki.org/wiki/Special:SkinDistributor MediaWiki.org] herunterlädst und in das Verzeichnis <code dir=\"ltr\">skins/</code> deiner MediaWiki-Installation kopierst,\n:* die [https://www.mediawiki.org/wiki/Download/de Dateiveröffentlichung von MediaWiki] herunterlädst, die verschiedene Benutzeroberflächen sowie Erweiterungen enthält. Du kannst das dort enthaltene Verzeichnis <code>skins/</code> Verzeichnis nutzen und in das Verzeichnis <code dir=\"ltr\">skins/</code> deiner MediaWiki-Installation kopieren.\n: Siehe hierzu das [https://www.mediawiki.org/wiki/Manual:Skin_configuration/de Benutzerhandbuch zur Konfiguration von Benutzeroberflächen].",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (aktiviert)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''deaktiviert''')",
        "mediastatistics": "Medienstatistiken",
index 88d3493..fc0c9ec 100644 (file)
        "edit-no-change": "Vurnayişê şıma qebul nêbı, çunke nuşte de yew vurnayiş n3evıraziya.",
        "postedit-confirmation-created": "Pele vıraziye.",
        "postedit-confirmation-restored": "Pele anciya vıraziye.",
-       "postedit-confirmation-saved": "Vurnayışê to qeyd bi.",
+       "postedit-confirmation-saved": "Vurnayışê to qeyd biyo.",
        "edit-already-exists": "Pelo newe nêvıraziyeno.\nPel ca ra esto.",
        "defaultmessagetext": "Metnê mesacê hesabiyayey",
        "content-failed-to-parse": "Qandê madela $3 zereyê $1, $2 sero nêagozyayo",
        "currentrev": "Çımraviyarnayışo rocane",
        "currentrev-asof": "Revizyonanê peniyan, tarixê $1",
        "revisionasof": "Verziyonê roca $1ine",
-       "revision-info": "Vıraştena cı karber $2 ra rewizyona $1",
+       "revision-info": "Vurnayışo ke $1 de terefê {{GENDER:$6|$2}}$7 ra biyo",
        "previousrevision": "← Çımraviyarnayışo kıhanêr",
        "nextrevision": "Rewizyono newên →",
        "currentrevisionlink": "Tewr halê rocaniye bımocne",
diff --git a/languages/i18n/dty.json b/languages/i18n/dty.json
new file mode 100644 (file)
index 0000000..aa7e75f
--- /dev/null
@@ -0,0 +1,943 @@
+{
+       "@metadata": {
+               "authors": [
+                       "जनक राज भट्ट",
+                       "बिप्लब आनन्द",
+                       "रमेश सिंह बोहरा",
+                       "राम प्रसाद जोशी"
+               ]
+       },
+       "tog-underline": "सम्बन्ध निम्न रेखाङ्कन:",
+       "tog-hideminor": "अहिलका मामूली सम्पादनलाई लुकाउन्या",
+       "tog-hidepatrolled": "गस्ती(patrolled)सम्पादनलाई लुकाउन्या",
+       "tog-newpageshidepatrolled": "गस्ती गरिया पानानलाई नयाँ पाना  सूचीबठेई लुकाउन्या",
+       "tog-extendwatchlist": "निगरानी सूचीलाई सबै परिवर्तन धेकुन्या गरी बढुन्या , ऐईलका बाहेक",
+       "tog-usenewrc": "पानाका अहिलका  परिवर्तन र अवलोकन सूचीका आधारमी सामूहिक परिवर्तनहरू",
+       "tog-numberheadings": "शीर्षकहरूलाई स्वत:अङ्कित गर",
+       "tog-showtoolbar": "सम्पादन औजारबट्टा धेकौन्या",
+       "tog-editondblclick": "दोहोरो क्लिकमा पाना सम्पादन गर्ने",
+       "tog-editsectiononrightclick": "शीर्षकमा दाहिने क्लिकद्वारा खण्ड सम्पादन सक्षम पारन्या",
+       "tog-watchcreations": "मेरा ध्यान सूचीमा मुइले सृजना गरयाका पाना र अपलोड जोड्न्या",
+       "tog-watchdefault": "मुइले सम्पादन गरयाको पाना र फाइल ध्यान सूचीमाई थप्दया",
+       "tog-watchmoves": "मुइले सारया पानाहरु र फाइलहरूलाई ध्यान सूचीमी थप्दया",
+       "tog-watchdeletion": "मुइले हटाएका पानाहरु र फाइलहरूलाई ध्यान सूचीमी थप्दया",
+       "tog-watchrollback": "मुइले रोलब्याक गर्याका पानाहरू मेरो ध्यानसूचीमी थप्द्या ।",
+       "tog-minordefault": "सबै सम्पादनहरुलाई पहिल्लईनिर्धारित रुपमी सामान्य चिनो लगाउन्या",
+       "tog-previewontop": "सम्पादन बाकस अगि पहिलाकोरूप देखाउन्या",
+       "tog-previewonfirst": "पैल्लीको सम्पादनमी झलक धेकाउन्या",
+       "tog-enotifwatchlistpages": "मेरा ध्यान सूचीमी रहेयाका पाना अथवा चित्र बदलिएका मुलाई ई-मेल गरियोस्",
+       "tog-enotifusertalkpages": "मेरो कुरडी पानामी परिवर्तन भया मलाई इमेल पठाउन्या",
+       "tog-enotifminoredits": "पानाहरु र फाइलहरूमी सामान्य सम्पादन भयालै मुइलाई ई-मेल गरियोस्",
+       "tog-enotifrevealaddr": "जानकारी इ-मेलहरूमी मेरो इ-मेल खुलाउन्या",
+       "tog-shownumberswatching": "निगरानी गरिरहेका प्रयोगकर्ताहरूको संख्या धेखाउन्या",
+       "tog-oldsig": "अहिलको हस्ताक्षर:",
+       "tog-fancysig": "मेरा दस्तखतलाई विकि पाठको रुपमी लिने (स्वत लिङ्क बिना)",
+       "tog-uselivepreview": "प्रत्यक्ष पैल्लीकोरुप प्रयोग गर",
+       "tog-forceeditsummary": "खाली सम्पादन शीर्षक प्रविष्टि गरेपछा मलाई सोधन्या",
+       "tog-watchlisthideown": "मेरा सम्पादनहरू निगनारी सूचीबठेई लुकाऊन्या",
+       "tog-watchlisthidebots": "बोट सम्पादनहरू ध्यान सूचीबठेई लुकाउन्या",
+       "tog-watchlisthideminor": "मेरा सम्पादनहरू ध्यान सूचीबाट लुकाउन्या",
+       "tog-watchlisthideliu": "प्रवेश गरेका प्रयोगकर्ताहरूको सम्पादन ध्यान सूचीबठेई लुकाउन्या",
+       "tog-watchlisthideanons": "अज्ञात प्रयोगकर्ताहरूबाट गरिएको सम्पादन ध्यान सूचीबठेई लुकाउन्या",
+       "tog-watchlisthidepatrolled": "बोट सम्पादनहरू ध्यान सूचीबठेई लुकाउन्या",
+       "tog-ccmeonemails": "मुईले अन्य प्रयोगकर्ताहरूलाई पठाउन्या इ-मेलको प्रतिलिपि मुईलाई पठाउन्या",
+       "tog-diffonly": "तलका पानाहरुको भिन्नहरू सामग्री नदेखाउन्या",
+       "tog-showhiddencats": "लुकाइएका श्रेणीहरू धेखाउन्या",
+       "tog-norollbackdiff": "पैलास्थितिमी फर्काएपछि भिन्नता हटाउन्या",
+       "tog-useeditwarning": "सम्पादनहरू सङ्ग्रह नगरिएका अवस्थामी अर्को पानामी जान खोज्या चेतावनी धेखाउन्या",
+       "tog-prefershttps": "प्रवेश गर्दा जबलै सुरक्षित जडानको प्रयोग गर्न्या",
+       "underline-always": "सधैं",
+       "underline-never": "कभैई नाई",
+       "underline-default": "खोल अथवा ब्राउजर पैलीकाजसो",
+       "editfont-style": "फन्ट प्रकार क्षेत्र सम्पादन गर:",
+       "editfont-default": "ब्राउजर पूर्वस्थिति",
+       "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": "जनवरी",
+       "feb": "फेब्रुअरी",
+       "mar": "मार्च",
+       "apr": "अप्रिल",
+       "may": "मे",
+       "jun": "जुन",
+       "jul": "जुलाई",
+       "aug": "अगस्ट",
+       "sep": "सेप्टेम्बर",
+       "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",
+       "pagecategories": "{{PLURAL:$1|श्रेणी|श्रेणीहरू}}",
+       "category_header": "\"$1\" श्रेणीमी भया लेखहरू",
+       "subcategories": "उपश्रेणीहरू",
+       "category-media-header": "\"$1\" श्रेणीमी भया लेखहरू",
+       "category-empty": "''यै श्रेणीमी हाल कोइलै पाना या मिडिया रया नाइँथिन ।''",
+       "hidden-categories": "{{PLURAL:$1|लुकाया श्रेणी|लुकायाका श्रेणीहरू}}",
+       "hidden-category-category": "लुकाइया श्रेणीहरू",
+       "category-subcat-count": "{{PLURAL:$2|यै श्रेणीमी निम्न उपश्रेणीहरू मात्र रया छन्।|यै श्रेणीको निम्न {{PLURAL:$1|उपश्रेणी|$1 उपश्रेणीहरू}},  $2 कुल मध्ये श्रेणीहरू रया छन् ।}}",
+       "category-subcat-count-limited": "यै श्रेणीको निम्न {{PLURAL:$1|उपश्रेणी|$1 उपश्रेणीहरु}} छ।",
+       "category-article-count": "{{PLURAL:$2|यै श्रेणीमी एक मात्र पानो रया छ।|कुल $2 मध्ये यै श्रेणीमी {{PLURAL:$1|पानो|$1 पानाहरु}} रहेका छन् । }}",
+       "category-article-count-limited": "निम्न {{PLURAL:$1|पानो|$1 पानाहरू}} ये श्रेणीमी रया छ ।",
+       "category-file-count": "{{PLURAL:$2|यै श्रेणीमी एक मात्र पानो रया छ।|कुल $2 मध्ये यै श्रेणीमी {{PLURAL:$1|पानो|$1 पानाहरु}} रहेका छन् । }}",
+       "category-file-count-limited": "निम्न {{PLURAL:$1|पानो|$1 पानाहरू}} ये श्रेणीमी रया छ ।",
+       "listingcontinuesabbrev": "निरन्तरता...",
+       "index-category": "क्रमाङ्कित पानाहरू",
+       "noindex-category": "क्रमाङ्कन नगरीयाका पानाहरू",
+       "broken-file-category": "टुटेको फाइल लिङ्कहरूसितको पाना",
+       "about": "बारेमी",
+       "article": "सामाग्री पानो",
+       "newwindow": "(नौलो विन्डोमी खुलन्छ)",
+       "cancel": "रद्द",
+       "moredotdotdot": "झिक्कु...",
+       "morenotlisted": "यो सूची पूरा नाइँ हो ।",
+       "mypage": "पानो",
+       "mytalk": "मेरी कुरडी",
+       "anontalk": "यै आइ. पी. का बारेमी कुरडी गर",
+       "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": "अवलोकन गर",
+       "view-foreign": " $1 हेर",
+       "edit": "सम्पादन",
+       "edit-local": "स्थानिय वर्णन सम्पादन गर",
+       "create": "सृजना गर",
+       "create-local": "स्थानिय वर्णन सम्पादन गर",
+       "editthispage": "यो पाना सम्पादन गर",
+       "create-this-page": "यो पाना बनाउन्या",
+       "delete": "मेट्न्या",
+       "deletethispage": "पाना मेट्न्या",
+       "undeletethispage": "मेट्याको पाना फर्काउने",
+       "undelete_short": "{{PLURAL:$1|एउटा  मेटियाको सम्पादन|$1 मेटियाका सम्पादनहरु}} फर्काउन्या",
+       "viewdeleted_short": "{{PLURAL:$1|मेटियाको सम्पादन |$1 मेटियाका सम्पादनहरू}}",
+       "protect": "सुरक्षित राख",
+       "protect_change": "बदल्न्या",
+       "protectthispage": "यै पानाकी सुरक्षित गर",
+       "unprotect": "सुरक्षा परिवर्तन गर",
+       "unprotectthispage": "यै पानाको सुरक्षा परिवर्तन गर",
+       "newpage": "नयाँ पाना",
+       "talkpage": "यै पानाका बारेमी छलफल गर",
+       "talkpagelinktext": "कुरडी",
+       "specialpage": "खास पानो",
+       "personaltools": "व्यक्तिगत औजारहरू",
+       "articlepage": "कन्टेन्ट पानो हेर",
+       "talk": "कुरडी कानी",
+       "views": "अवलोकन गर",
+       "toolbox": "औजारहरू",
+       "userpage": "प्रयोगकर्ता पाना हेर्न्या",
+       "projectpage": "प्रोजेक्ट पानो हेर्न्या",
+       "imagepage": "चित्र पानो हेर",
+       "mediawikipage": "कुरडी पानो हेर",
+       "templatepage": "ढाँचा पानो हेर",
+       "viewhelppage": "सहायता पानो हेर्ने",
+       "categorypage": "श्रेणी पानो हेर",
+       "viewtalkpage": "छलफल हेर",
+       "otherlanguages": "अन्य भाषामी",
+       "redirectedfrom": "($1 बाट पठाइयाको)",
+       "redirectpagesub": "अनुप्रेषित पानो",
+       "redirectto": "पठाएको पाना:",
+       "lastmodifiedat": "यै पानालाई आन्तिम पटक $2, $1 मी परिवर्तन गरिया थ्यो।",
+       "viewcount": "यो पाना हेरियाको थियो {{PLURAL:$1|एकपटक|$1 पटक}}",
+       "protectedpage": "सुरक्षित गरिएका पानाहरु",
+       "jumpto": "यैमी जाओ:",
+       "jumptonavigation": "भ्रमण गर",
+       "jumptosearch": "खोज",
+       "view-pool-error": "माफ गरया , ये समयमी सर्भरहरुमी कामको भार भौत रह्या छ।\nभौत भौत प्रयोगकर्ताहरु ये पाना हेद्या प्रयास गरी रहनु भएको छ।\nकृपया यो पाना पुन: हेर्नु अगाडि केही समय पर्खिदिनुहोस् ।\n\n$1",
+       "generic-pool-error": "माफ गरया , ये समयमी सर्भरहरुमी कामको भार भौत रह्या छ।\nभौत भौत प्रयोगकर्ताहरु ये पाना हेद्या प्रयास गरी रहनु भएको छ।\nकृपया यो पाना पुन: हेर्नु अगाडि केही समय पर्खिदिनुहोस् ।",
+       "pool-timeout": "समय सकियो बन्द गर्ने प्रतीक्षामी",
+       "pool-queuefull": "प्रतीक्षा पङ्क्ति भरियो",
+       "pool-errorunknown": "अज्ञात गल्ती",
+       "pool-servererror": "पुल काउन्टर सेवा उपलब्ध नाइथिन् ($1)।",
+       "poolcounter-usage-error": "प्रयोग गल्ती:$1",
+       "aboutsite": "{{SITENAME}}को बारेमी",
+       "aboutpage": "Project:बारेमी",
+       "copyright": "सामाग्री $1 अनुसार उपलब्ध छ, खुलाइएको अवस्था बाहेकका हकमी ।",
+       "copyrightpage": "{{ns:project}}:प्रतिलिपी अधिकारहरू",
+       "currentevents": "आजभोलका घटनाहरू",
+       "currentevents-url": "Project:आजभोलका घटनाहरू",
+       "disclaimers": "अस्विकारोक्तिहरू",
+       "disclaimerpage": "Project:सामान्य अस्वीकारोक्ति",
+       "edithelp": "सम्पादन सहायता",
+       "helppage-top-gethelp": "सहायता",
+       "mainpage": "मुख्य पानो",
+       "mainpage-description": "मुख्य पानो",
+       "policy-url": "Project:निति",
+       "portal": "सामाजिक पोर्टल",
+       "portal-url": "Project:सामाजिक पोर्टल",
+       "privacy": "गोपनियता नीति",
+       "privacypage": "Project:गोपनीयता नीति",
+       "badaccess": "अनुमतिमी गल्ती",
+       "badaccess-group0": "तमले अनुरोध गरया काम अदाईलाई तमलाई अनुमति दिया नाईथिन।",
+       "badaccess-groups": "तमले अनुरोध गरया काम  {{PLURAL:$2|समूह |कोइ एक समूह}}: $1 मी रया प्रयोगकर्ताहरुले मात्र अद्दु सक्दान ।",
+       "versionrequired": "MediaWiki संस्करण $1 चाईन्या",
+       "versionrequiredtext": "ये पाना प्रयोग गर्नका लागि MediaWiki $1 संस्करण चाहिन्छ ।\nहेर  [[Special:Version|version page]]",
+       "ok": "भयो",
+       "retrievedfrom": " \"$1\" बठे निकालिया",
+       "youhavenewmessages": "तमखी लेखा ($2)मी $1 छ।",
+       "youhavenewmessagesfromusers": "तमखी लेखा {{PLURAL:$3|प्रयोगकर्ता|$3 प्रयोगकर्तान}} ($2)बठे$1",
+       "youhavenewmessagesmanyusers": "तमलाई धेरै प्रयोगकर्ताहरू($2) बठे $1 छ ।",
+       "newmessageslinkplural": "{{PLURAL:$1|एक नयाँ रैबार|999=नयाँ रैबारहरू}}",
+       "newmessagesdifflinkplural": "छाड्डीबारको {{PLURAL:$1|परिवर्तन|999=परिवर्तनहरू}}",
+       "youhavenewmessagesmulti": "तमरा लागि $1 मी  नयाँ रैबारहरू छन्",
+       "editsection": "सम्पादन",
+       "editold": "सम्पादन गर्न्या",
+       "viewsourceold": "स्रोत हेर",
+       "editlink": "सम्पादन",
+       "viewsourcelink": "स्रोत हेर",
+       "editsectionhint": "खण्ड: $1 सम्पादन गर",
+       "toc": "विषयसूची",
+       "showtoc": "धेकाउन्या",
+       "hidetoc": "लुकाउन्या",
+       "collapsible-collapse": "खुम्च्याउन्या",
+       "collapsible-expand": "फैलाउ",
+       "confirmable-confirm": "तमरो {{GENDER:$1|लिङ्ग}} हो?",
+       "confirmable-yes": "हो",
+       "confirmable-no": "नाइँ",
+       "thisisdeleted": "$1 हेर्न्या या पैल्लीका रुपमी फर्काउन्या हो?",
+       "viewdeleted": "$1 हेर्न्या?",
+       "restorelink": "{{PLURAL:$1|मेटियाको सम्पादन |$1 मेटियाका सम्पादनहरू}}",
+       "feedlinks": "फिड :",
+       "feed-invalid": "अमान्य फिड प्रकार ग्राह्याता ।",
+       "feed-unavailable": "सिन्डीकेसन फिडहरु उपलब्ध नाइथिन्",
+       "site-rss-feed": "$1 आरएसएस फिड",
+       "site-atom-feed": "$1 एटम फिड",
+       "page-rss-feed": "\"$1\" आरएसएस फिड",
+       "page-atom-feed": "\"$1\" एटम फिड",
+       "red-link-title": "$1 (पाना उपलब्ध नाइँथिन)",
+       "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": "यसो काम हैन",
+       "nosuchactiontext": "URL ले खुलाएको काम मान्य छैन ।\nतमुले URL गलत टाइपगरेका हौ , वा गलत लिंकक पछाडी लागेका हुनसक्देहौ ।\nयै{{SITENAME}}ले सफ्टवेयरमी भएको गल्ति देखायाको पनि हुनसक्छ ।",
+       "nosuchspecialpage": "तसो विशेष पानो छैन",
+       "nospecialpagetext": "<strong>तमीले अनुरोध गरयाको विशेष पानो अमान्य छ ।</strong>\n\nमान्य पानाहरूको सूची यहाँ [[Special:SpecialPages|{{int:specialpages}}]] उपलब्ध छ ।",
+       "error": "त्रुटी",
+       "databaseerror": "डेटावेस गल्ति",
+       "databaseerror-text": "डेटाबेस कावेरीमी खराबी धेकियो ।\nयैले सफ्टवेयरमी गल्ती रयाको धेकाउन सकन्छ ।",
+       "databaseerror-textcl": "डेटावेस कावेरीमी खराबी धेकियो ।",
+       "databaseerror-query": "अनुरोध: $1",
+       "databaseerror-function": "फङ्सन : $1",
+       "databaseerror-error": "गल्ती: $1",
+       "laggedslavemode": "<strong>चेतावनी:</strong> पानामी हालका अद्यतनहरू नहुनस्कदान ।",
+       "readonly": "डेटाबेस बन्द गरिया छ",
+       "enterlockreason": "ताल्चा मार्नुको कारण दिया, साथै ताल्चा हटाउने समयको अवधि अनुमान लगा।",
+       "readonlytext": "सम्भवतः नियमित डेटाबेस रख-रखाउको कारण अहिलेलाई नयाँ डेटाबेस प्रविष्टी र अन्य संशोधनहरु  बन्द राखिया छ, जईलाई पछि बठे सामान्य गरिन्या छ। \nप्रबन्धक जईले यो बन्द गरयाछन्, यो स्पष्टीकरण दिएकाछन्: $1",
+       "missing-article": "नाम \"$1\" $2 भयाको भेटिनु पड्डे पानो पाठ डेटाबेसले  भेटाएन, \n\nयिसो प्राय: मिति नाघिसक्याको भिन्न वा इतिहास वा कुनै मेटिसक्याको पानाको लिंक पहिल्याउनाले हुन्छ ।\n\nयदि यसो भया नाइँहो भणे सफ्टवेयरको गल्ती लै हुनसकुन्छ ।\nकृपया यैको url खुलाइ [[Special:ListUsers/sysop|प्रबन्धक]]लाई उजुरी गर",
+       "missingarticle-rev": "(संशोधन #: $1)",
+       "missingarticle-diff": "(भिन्नता: $1, $2)",
+       "readonly_lag": "डेटाबेस स्वतः बन्द गरिया छ जबकि अधिनस्थ डेटाबेस सर्वरले मूल पहिल्याउँनाछ।",
+       "internalerror": "भित्रका गल्ती",
+       "internalerror_info": "भित्रका गल्ती: $1",
+       "internalerror-fatal-exception": "प्रकारको गम्भीर अपवाद \"$1\"",
+       "filecopyerror": "फाइल  \"$1\" लाई \"$2\" मी प्रतिलिपि गद्दु सकिएन ।",
+       "filerenameerror": "फाइल \"$1\" को नाम \"$2\" मी परिवर्तन गद्दु सकिएन ।",
+       "filedeleteerror": "फाइल \"$1\"  मेट्टू सकिएन ।",
+       "directorycreateerror": "डाइरेक्टरी \"$1\" निर्माण गद्दु सकिएन ।",
+       "directoryreadonlyerror": "निर्देशिका \"$1\" मात्रै पढाईलाई योग्य छ।",
+       "directorynotreadableerror": "निर्देशिका \"$1\" पढ्न जसो नाइँथिन।",
+       "filenotfound": "\"$1\" फाइल नाइँ भेटियो ।",
+       "unexpected": "अप्रत्यासित मान :\"$1\"=\"$2\" ।",
+       "formerror": "गल्ती : फर्म बुझाउन सकिएन",
+       "badarticleerror": "यो कार्य यै पनामी गर्न नाईंमिल्लो।",
+       "cannotdelete": "\"$1\" पाना वा फाइल मेट्ट सकिएन।\nयो पैल्लीबठे मेटियाको हुनु पडन्छ।",
+       "cannotdelete-title": "पाना  \"$1\" लाई मेट्टू सकिएन",
+       "delete-hook-aborted": "हुकले सम्पादनकार्य बन्द गरिदियो ।\nकोइ कारण दिइएन ।",
+       "no-null-revision": "$1 पाना लागि खालि पुनरावलोकन सिर्जना गर्न सकिएन",
+       "badtitle": "गलत शीर्षक",
+       "badtitletext": "अनुरोध अरेको पानो शीर्षक नाइमानियो, खाली और गलत रुपमि अन्तर भाषा वा अन्तर विकी सम्बन्ध गरियाको थ्यो।  यैमि शीर्षकमा प्रयोग गर्न नमिल्या एक और जेधा अक्षरहरू रयाका हुनसक्कान ।",
+       "title-invalid-empty": "निवेदन अरियाको पानाको शिर्षक कित खाली छ और नाउस्पेसको नाउ मात्तरै छ।",
+       "title-invalid-utf8": "निवेदन अरियाको पानाको शिर्षकमि अवैध युटिएफ-८ अनुक्रम रयाको छ ।",
+       "title-invalid-interwiki": "अनुरोध गरियाको शिर्षकमी अन्तर विकि लिङ्क छ जइलाई शिर्षकमी प्रयोग गद्द नाइपाइनो ।",
+       "title-invalid-talk-namespace": "निवेदन गरियाको पानाको शिर्षकले उपलब्ध नभएका कुरडी पानालाई सन्दर्भको रूपमी राख्याको छ ।",
+       "title-invalid-characters": "निवेदन गरियाको यै पानाको शिर्षकमी अवैध अक्षर रयाको छः \"$1\" ।",
+       "viewsource": "स्रोत हेर",
+       "viewsource-title": " $1 को स्रोत हेर",
+       "actionthrottled": "कार्य रोकिईयो",
+       "namespaceprotected": "तमलाई '''$1'''  नेमस्पेसमी रह्याका पानाहरू सम्पादन गद्या अनुमति छैन ।",
+       "exception-nologin": "प्रवेश (लग ईन) नगरिएको",
+       "welcomeuser": "$1स्वागत छ!",
+       "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": "आजी पासवर्ड लेख",
+       "userlogin-remembermypassword": "मुलाई अघाडी झान्या काम गराइराख्या",
+       "yourdomainname": "तमरो ज्ञानक्षेत्र(डोमेन):",
+       "password-change-forbidden": "ये विकिमी पासवर्ड परिवर्तन गर्न सक्नुहुन्न।",
+       "login": "प्रवेश (लगईन)",
+       "nav-login-createaccount": "प्रवेश गर्ने/नयाँ खाता बनाउन्या",
+       "userlogin": "प्रवेश गर्ने / नयाँ खाता बनाउन्या",
+       "userloginnocreate": "प्रवेश",
+       "logout": "बाहिर निस्कन्या",
+       "userlogout": "बाहिर निस्कन्या",
+       "notloggedin": "प्रवेश (लग ईन) नगरिएको",
+       "userlogin-noaccount": "के खाता छैन ?",
+       "userlogin-joinproject": "{{SITENAME}} मी खाता खोल ।",
+       "nologin": "तमरो खाता छैन? $1।",
+       "nologinlink": "नयाँ खाता खोल",
+       "createaccount": "खाता खोल",
+       "gotaccountlink": "प्रवेश",
+       "userlogin-resetlink": "प्रवेश सम्बन्धी विवरणहरू बिसरया भयो?",
+       "userlogin-resetpassword-link": "पासवर्ड भुलिगया?",
+       "userlogin-helplink2": "प्रवेश गद्दलाई सहयोग",
+       "userlogin-createanother": "दोसरो खाता खोल",
+       "createacct-emailrequired": "इमेल ठेगाना",
+       "createacct-emailoptional": "इमेल ठेगाना (ऐच्छिक)",
+       "createacct-email-ph": "तमरो इमेल ठेगाना भरया",
+       "createacct-another-email-ph": "इमेल ठेगाना भर",
+       "createacct-realname": "वास्तविक नाम (ऐच्छिक)",
+       "createaccountreason": "कारण:",
+       "createacct-reason": "कारण",
+       "createacct-reason-ph": "क्याई तम नयाँ खाता खोल्ला छौ?",
+       "createacct-captcha": "सुरक्षा जाँच",
+       "createacct-imgcaptcha-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|योगदानकर्ता|योगदानकर्ताहरू}}",
+       "badretype": "तमले दिया पासवर्ड मिल्लो नाइँ।",
+       "loginerror": "प्रवेश गल्ती",
+       "createacct-error": "खाता बनाउँन्ज्या गल्ती",
+       "createaccounterror": "खाता बनाउन सकिएन: $1",
+       "loginsuccesstitle": "प्रवेश सफल",
+       "loginsuccess": "'''तमले {{SITENAME}}मी  \"$1\" को रुपमी प्रवेश गरया छौ।'''",
+       "nouserspecified": "प्रयोगकर्ता नाम दिनु अनिवार्य छ।",
+       "mailmypassword": "पासवर्ड पूर्वनिर्धारित गर",
+       "passwordremindertitle": "{{SITENAME}}का लागि नयाँ अस्थायी पासवर्ड",
+       "mailerror": " चिठी :$1 पठाउँदा गल्ती भयो",
+       "emailconfirmlink": "तमरो ई-मेल ठेगाना पक्का गर",
+       "emaildisabled": "ये साइटले इमेलहरू पठाउन सक्दैन।",
+       "accountcreated": "खाता खोलिईयो",
+       "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|वार्ता]])$1 प्रयोगकर्ताको लागि खाता खोलिइया छ ।",
+       "createaccount-title": "{{SITENAME}}कोलागि खाता खोल्ने काम",
+       "loginlanguagelabel": "भाषा: $1",
+       "pt-login": "प्रवेश (लग ईन)",
+       "pt-login-button": "प्रवेश",
+       "pt-createaccount": "नयाँ खाता खोल",
+       "pt-userlogout": "बाहिर निस्कन्या (लग आउट)",
+       "php-mail-error-unknown": "PHP मेल() क्रियामा अज्ञात गल्ती",
+       "user-mail-no-addy": "इमेल ठेगाना बिनाई इमेल पठाउन खोजिया थ्यो।",
+       "user-mail-no-body": "खाली वा भौत कम सन्देश भया इमेल पठाउन खोजिया ।",
+       "changepassword": "पासवर्ड परिवर्तन गर",
+       "resetpass_announce": "प्रवेश पूरा गद्दाई तमले पासवर्ड परिवर्तन गद्दु पडुन्छ।",
+       "resetpass_header": "खाताको पासवर्ड परिवर्तन गद्दे",
+       "oldpassword": "पुरानो पासवर्ड:",
+       "newpassword": "नयाँ पासवर्ड:",
+       "retypenew": "पासवर्ड दोसरया टाईप गर",
+       "resetpass_submit": "पासवर्ड व्यवस्थित गरी र प्रवेशगर्ने",
+       "changepassword-success": "तमरो पासवर्ड सफलतापूर्वक परिवर्तन भयो!",
+       "changepassword-throttled": "तमले अलै भौत फेर प्रवेशका निम्ति प्रयास गरया छौ।\nकृपया $1 थोक्कै जागी मात्र प्रयास गर।",
+       "resetpass_forbidden": "पासवर्ड परिवर्तन गर्न नाइँमिल्लो",
+       "resetpass-no-info": "ये पाना सिधाई हेद्दाई तमले प्रवेश गद्दु पडून्छ ।",
+       "resetpass-submit-loggedin": "पासवर्ड परिवर्तन गर",
+       "resetpass-submit-cancel": "रद्द",
+       "resetpass-temp-password": "अस्थाइ पासवर्ड",
+       "resetpass-abort-generic": "एक्सटेन्सनले पासवर्ड परिवर्तनलाई बन्द गराईया छ ।",
+       "passwordreset": "पासवर्ड पूर्वनिर्धारित गर",
+       "passwordreset-legend": "पासवर्ड पूर्वनिर्धारित गर",
+       "passwordreset-username": "प्रयोगकर्ता-नाम:",
+       "passwordreset-domain": "डोमेन",
+       "passwordreset-capture": "निस्कने इमेलको नमुना हेर्ने ?",
+       "passwordreset-email": "इमेल ठेगाना:",
+       "passwordreset-emailtitle": "{{SITENAME}}मा खाता विवरण",
+       "passwordreset-emailelement": "प्रयोगकर्ताको नाम: $1\nअस्थाई पासवर्ड: $2",
+       "passwordreset-emailsent": "पासवर्ड परिवर्तनका लागि इमेल पठाइया छ।",
+       "changeemail": "इमेल ठेगाना बदेल",
+       "changeemail-oldemail": "अईलको इमेल-ठेगाना:",
+       "changeemail-newemail": "नयाँ इमेल-ठेगाना:",
+       "changeemail-none": "(के लै नाइँ)",
+       "changeemail-password": "तमरो {{SITENAME}} पासवर्ड:",
+       "changeemail-submit": "इमेल परिवर्तन गद्या",
+       "changeemail-throttled": "तमले अलै भौत फेर प्रवेशका निम्ति प्रयास गरया छौ।\nकृपया $1 पर्खेर मात्र प्रयास गर।",
+       "resettokens": "टोकन पूर्वरुपमी फर्काउन्या",
+       "resettokens-no-tokens": "पूर्वरुमी फर्काउन्या कोई लै टोकन नाइथिन् ।",
+       "resettokens-legend": "टोकन पूर्वरुपमी फर्काउन्या",
+       "resettokens-tokens": "टोकनहरू:",
+       "resettokens-token-label": "$1 (यैलको मूल्यः $2)",
+       "resettokens-done": "टोकन पूर्वरुपमी फर्काइयो ।",
+       "resettokens-resetbutton": "चयन गरिया टोकनहरूलाई पुनमिलाउनुहोस्",
+       "bold_sample": "गाढा अक्षर",
+       "bold_tip": "गाढा अक्षर",
+       "italic_sample": "इटालिक पाठ",
+       "italic_tip": "इटालिक पाठ",
+       "link_sample": "शीर्षक लिंङ्क",
+       "link_tip": "भित्रि लिङ्क",
+       "extlink_sample": "http://www.उदाहरण.com लिङ्क शीर्षक",
+       "extlink_tip": "भाईरको लिङ्क (समझ्या http:// prefix)",
+       "headline_sample": "शीर्षक अक्षर",
+       "headline_tip": "दोसरो स्तर शीर्षपंक्ति",
+       "nowiki_sample": "प्रारुप नभया पाठ याँ दिया",
+       "nowiki_tip": "विकि फरम्याटिङ्लाई वास्ता जनगरया",
+       "image_tip": "इम्बेडेड(जडान गरिया) चित्र",
+       "media_tip": "फाइल लिङ्क",
+       "sig_tip": "तमरो समयछाप सहितको दस्तखत",
+       "hr_tip": "क्षितिजिय रेखा (कम प्रयोग गर्नुहोस्)",
+       "summary": "सारांश:",
+       "subject": "विषय/शीर्षक:",
+       "minoredit": "यो नानो सम्पादन हो",
+       "watchthis": "यै पानाको ध्यान राख",
+       "savearticle": "सङ्ग्रह गर",
+       "preview": "पूर्वावलोकन",
+       "showpreview": "पूर्वालोकन धेकाउन्या",
+       "showdiff": "परिवर्तन धेकाउन्या",
+       "anoneditwarning": "<strong>चेतावनी:</strong> तमले प्रवेश अरेको नाइथिन । तमरो आइपि ठेगाना पाना सम्पादन इतिहासमि दर्ता गरिन्या छ र यो सब्बैले हेद्द सक्कान । यदि तमलाईँ <strong>[$1 लगईन]</strong> वा <strong>[$2 नयाँ खाता बनाउन्या] गर्याभण्या तमबठे गरियाको सम्पादन तमरो प्रयोगकर्तानाममि जोडिन्याछ ।",
+       "summary-preview": "सारांश पूर्वालोकन:",
+       "subject-preview": "विषय/शीर्षपंक्ति पूर्वरुप:",
+       "blockedtitle": "प्रयोककर्तालाई रोक लगाइया छ",
+       "blockedtext": "'''तमरो प्रयोगकर्ता नाम या IP ठेगानालाई रोक लगाइएको छ ।'''\n\nरोक लगाउने  $1.\nरोक लगाउनाको कारण ''$2''.\n\n* रोक सुरू हुने : $8\n* रोक सकिने: $6\n* रोकबाट लक्षित: $7\n\nतमले  $1 वा और कोइ  [[{{MediaWiki:Grouppage-sysop}}|administrator]] सँग रोकको बारेमी छलफल गर्न सम्पर्क गर्न सकुन्छौ ।\nतमले  'प्रयोगकर्तालाई इ-मेल गर्ने ' सुविधा मान्य इमेल ठेगाना [[Special:Preferences|account preferences]] मी नखुलाए सम्म प्रयोगगर्न पाउनुहुन्या छैन र येको प्रयोग गर्नबठे रोक लगाइया छैन ।\nतमरो IP ठेगाना $3 को, र रोक्का संख्या #$5.\nकृपया तमरा प्रश्नमी सबै जानकारी खुलाया ।",
+       "blockednoreason": "कारण दिइईया नाइँथिन",
+       "whitelistedittext": "पाना सम्पादन गर्न तमले $1 गद्दु पडन्छ।",
+       "loginreqtitle": "प्रवेशगर्नु जरुरी छ।",
+       "loginreqlink": "प्रवेश (लग ईन)",
+       "loginreqpagetext": "अरु पृष्ठहेर्न तमले $1 गद्दु पडन्छ ।",
+       "accmailtitle": "पासवर्ड पठाइयो",
+       "newarticle": "(नयाँ)",
+       "newarticletext": "तमले ऐलसम्म नभयाका पानाको लिंङ्क पहिल्याउनु भयाको छ।\nयो पानो बनौनाखी तल्तिरको कोष्ठमा टाइप गरिदिय ।(और जाण्णाखीलेखा [$1 help page] हेरिदिय )।\nताखाइ सुधिसार आइपुग्या हौ भण्या, ब्राउजरको  '''back''' बटन थिचिहाल ।",
+       "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>.",
+       "updated": "नौला",
+       "note": "'''सूचना:'''",
+       "continue-editing": "सम्पादन क्षेत्रमी जाओ",
+       "editing": "$1 सम्पादन गरिँदै",
+       "creating": "$1 बनाइँदै",
+       "editingsection": "$1 (खण्ड) सम्पादन गरिँदै",
+       "editingcomment": "$1 सम्पादन गर्दै(नयाँ खण्ड)",
+       "editconflict": "सम्पादन बाँझ्यो: $1",
+       "yourtext": "तमरा पाठहरू",
+       "storedversion": "संग्रहित पुनरावलोकन",
+       "yourdiff": "भिन्नताहरू",
+       "templatesused": "यै पानामी राखियाका {{PLURAL:$1|Template|ढाँचाहरू}} :",
+       "template-protected": "(सुरक्षित)",
+       "template-semiprotected": "(अर्ध-सुरक्षित)",
+       "hiddencategories": "यो पानो निम्न {{PLURAL:$1|1 लुकाइयाको श्रेणी|$1 लुकाइयाका श्रेणीहरू}}को हिस्सादार(सदस्य) हो :",
+       "permissionserrors": "अधिकारमी त्रुटी",
+       "permissionserrorstext-withaction": "$2 कि लेखा तमलाईँ अनुमति नाइथिन , यिन {{PLURAL:$1|कारणले|कारणहरुले}} गद्दा :",
+       "moveddeleted-notice": "पानो मेटियाको छ।\nमेटियाका और सारियाका पानाहरुको सूची तल्तिर सन्दर्भखि लेखा दिइयाको छ।",
+       "log-fulllog": "पूरा लग हेर",
+       "edit-hook-aborted": "हुकले सम्पादन बन्द गरिदियो ।\nयेले कोइ कारण दिएन ।",
+       "edit-gone-missing": "पाना अद्यतन गर्न सकिएन\nयो मेटिया जसो धेकिन्छ ।",
+       "edit-conflict": "सम्पादन द्वन्द्व भयो",
+       "postedit-confirmation-created": "पाना सिर्जना गरियो ।",
+       "postedit-confirmation-restored": "पाना पूर्वरूपमी फर्कायो ।",
+       "postedit-confirmation-saved": "तमरो सम्पादन संग्रह गरिया छ ।",
+       "edit-already-exists": "नयाँ पाना बनाउन सकिएन ।\nयो पल्ली बठे  रया छ।",
+       "defaultmessagetext": "डिफल्ट सन्देश पाठ",
+       "content-failed-to-parse": "$1 को लागि $2 सामग्रीलाई पार्स गर्न विफल, गल्ती: $3",
+       "invalid-content-data": "अमान्य सामग्री डेटा",
+       "content-not-allowed-here": "सामग्री \"$1\"  [[$2]] पानामी राख्न अनुमती छैन ।",
+       "content-model-wikitext": "विकिपाठ",
+       "content-model-text": "साधारण पाठ",
+       "content-model-javascript": "जाभास्क्रिप्ट",
+       "content-json-empty-object": "खाली वस्तु",
+       "content-json-empty-array": "खाली एरे",
+       "post-expand-template-inclusion-category": "तसा पानाहरू जहाँ ढाँचा (टेम्पलेट) राख्ने सिमा पार भयाको छ ।",
+       "parser-template-loop-warning": "ढाँचागत ग़ाँठो पडयो : [[$1]]",
+       "parser-template-recursion-depth-warning": "ढाँचा पुन:चक्र गहिराई सिमा ($1) भन्दा झिक भयो",
+       "language-converter-depth-warning": "भाषा परिवर्तनकर्ता गहिराई  ($1) नाघेको छ",
+       "node-count-exceeded-category": "पानाहरू जहाँ नोड संख्या बढी भएको छ",
+       "node-count-exceeded-category-desc": "ये पानाले उच्च नोड संख्या नाघ्या छ ।",
+       "node-count-exceeded-warning": "पानाले नोड संख्या नाघ्यो ।",
+       "expansion-depth-exceeded-category": "पानाहरू जाँ सल्दिले सिमा नाघ्या छ",
+       "expansion-depth-exceeded-category-desc": "ये पानाले उच्चतम विस्तार सिमा नाघ्या छ ।",
+       "expansion-depth-exceeded-warning": "पानाले सल्दिले सिमालाई नाघ्या छ",
+       "parser-unstrip-loop-warning": "अनस्ट्रिप लुप धेखिन्छ",
+       "parser-unstrip-recursion-limit": "अन्स्ट्रिप पुनरावर्तन सिमा पार गरियो ($1)",
+       "converter-manual-rule-error": "म्यानुअल भाषा अनुवाद सिध्दान्तमी समस्या धेखियो",
+       "cantcreateaccounttitle": "खाता बनाउन सकिएन",
+       "viewpagelogs": "यै पानाका लगहरू हेर",
+       "currentrev": "अहिलको पुनरावलोकन",
+       "currentrev-asof": "$1को रुपमी अहिलको पुनरावलोकनहरू",
+       "revisionasof": "$1 जस्तै गरी पुनरावलोकन",
+       "revision-info": "{{GENDER:$6|$2}}$7 द्वारा $1को संशोधन",
+       "previousrevision": "← पुरानो संशोधन",
+       "nextrevision": "नयाँ संशोधन →",
+       "currentrevisionlink": "अहिलको पुनरावलोकन",
+       "cur": "वर्तमान पाना लिङ्क इतिहास",
+       "next": "दोसरो",
+       "last": "पल्लिको",
+       "page_first": "पैल्लो",
+       "page_last": "छाड्डीबारको",
+       "history-fieldset-title": "इतिहासको विचरण गर्ने",
+       "history-show-deleted": "मेटिएका मात्र",
+       "histfirst": "सबहै पुरानो",
+       "histlast": "नयाँ",
+       "historysize": "({{PLURAL:$1|१ बाइट |$1 बाइटहरू}})",
+       "historyempty": "(खाली)",
+       "history-feed-title": "पुनरावलोकन इतिहास",
+       "history-feed-description": "विकीमा यो पानको पुनरावलोकन इतिहास",
+       "history-feed-item-nocomment": "$1  $2मी",
+       "history-edit-tags": "चयन गरिया संशोधनको ट्यागहरू सम्पादन",
+       "rev-deleted-comment": "(सम्पादन सारांश हटाइयो)",
+       "rev-deleted-user": "(प्रयोगकर्ता नाम हटाइयो)",
+       "rev-deleted-event": "(लग विवरण हटाइयो)",
+       "rev-delundel": "दधेखाउने/लुकाउन्या",
+       "rev-showdeleted": "धेकाउन्या",
+       "revisiondelete": "मेटाउन्या/मेटाईया रद्दगर्ने  पुनरावलोकनहरु",
+       "revdelete-nooldid-title": "अमान्य पुनरावलोकन लक्ष",
+       "revdelete-no-file": "खुलाइएको पाना अस्तित्वमी छैन",
+       "revdelete-show-file-submit": "हो",
+       "revdelete-legend": "दृष्टि बन्देज मिलाउन्या",
+       "revdelete-hide-text": "पुनरावलोकन पाठ",
+       "revdelete-hide-image": "फाइल कमेन्ट लुकाउन्या",
+       "revdelete-hide-name": "कार्य र प्यारामिटर लुकाउन्या",
+       "revdelete-hide-comment": "सम्पादन टिप्पणी",
+       "revdelete-hide-user": "सम्पादकको प्रयोगकर्ता नाम/IP ठेगाना",
+       "revdelete-hide-restricted": "प्रवन्धक वा अरुबठे डेटा थोका लिन्या",
+       "revdelete-radio-same": "(परिवर्तन जनगर)",
+       "revdelete-radio-set": "लुकाइएको",
+       "revdelete-radio-unset": "धेखिने",
+       "revdelete-suppress": "प्रवन्धक वा अरुबठे डेटा थोका लिन्या",
+       "revdelete-unsuppress": "पुनर्स्थापित पुनरावृत्तिबठे बन्देज हटाउन्या",
+       "revdelete-log": "कारण:",
+       "revdelete-submit": "{{PLURAL:$1|छानिया संशोधन|छान्निया संशोधनहरू}}मी प्रयोग गर्न्या",
+       "revdelete-success": "'''संशोधन दृश्यता सफलतापूर्वक अद्यतन भयो।'''",
+       "revdelete-failure": "'''संशोधन दृश्यता अद्यतन गर्न सकिएन:'''\n$1",
+       "logdelete-success": "'''लग दृष्टि सफलतापूर्वक मिलाइयो ।'''",
+       "logdelete-failure": "'''लग दृष्टि मिलाउन सकिएन :'''\n$1",
+       "revdel-restore": "दृष्टि परिवर्तन गर्न्या",
+       "pagehist": "पाना इतिहास",
+       "deletedhist": "मेटाईया इतिहास",
+       "revdelete-concurrent-change": " $2, $1 मिति गरियाको वस्तु परिवर्तन गद्द सकिएन: यसको स्थितीले तमीले परिवर्तन गर्नलाग्दे बेला कोहीअरुले नै परिवर्तन गर्याजसो धेकाउँछ\nकृपया लगहरू हेर्न सकन्छौ ।",
+       "revdelete-otherreason": "और/थप कारण:",
+       "revdelete-reasonotherlist": "और कारण",
+       "revdelete-edit-reasonlist": "मेट्ने कार्यहरु सम्पादन गर्ने",
+       "revdelete-offender": "संशोधन कर्ता:",
+       "suppressionlog": "लुकाउन्या लग",
+       "mergehistory": "पानाका इतिहासहरू मिसाउन्या",
+       "mergehistory-box": "दुई पानाहरूको पुनरावलोकन जोड्न्या :",
+       "mergehistory-from": "स्रोत पाना:",
+       "mergehistory-into": "गन्तब्य पाना :",
+       "mergehistory-list": "जोड्ड मिल्न्या इतिहास सम्पादन",
+       "mergehistory-go": "जोड्ड मिल्न्या सम्पादनहरू",
+       "mergehistory-submit": "पुनरावलोकहरू जोड",
+       "mergehistory-empty": "कोइलै पुनरावलोकनहरू जोड्ड नाइँमिल्लो ।",
+       "mergehistory-success": "$3 {{PLURAL:$3|संस्करण|संस्करणहरु}}  [[:$1]]बठे सफलतापूर्वक [[:$2]]मी थपियो ।",
+       "mergehistory-autocomment": " [[:$1]] लाई [[:$2]] मी जोडियो",
+       "mergehistory-comment": " [[:$1]] लाई[[:$2]] मी जोडियो : $3",
+       "mergehistory-same-destination": "स्रोत र गन्तव्य पाना एउटै हुनसक्दैनन्",
+       "mergehistory-reason": "कारण:",
+       "mergelog": "जोडेको लग",
+       "revertmerge": "नमिलाउने",
+       "history-title": "\"$1\" को दोहरिया इतिहास",
+       "difference-title": "\"$1\" को बिचमी भिन्नता",
+       "difference-title-multipage": "\"$1\" तथा \"$2\" को बिचमी भिन्नता",
+       "difference-multipage": "(पानाहरूमी भिन्नता)",
+       "lineno": "पंक्ति $1:",
+       "compareselectedversions": "छानिईया संस्करणहरू दाँज",
+       "showhideselectedversions": "छानिईयाका पुनरावलोकनहरू धेखाउने/लुकाउन्या",
+       "editundo": "रद्द गर्न्या",
+       "diff-empty": "(कोइ भिन्नता छैन)",
+       "diff-multi-sameuser": "(यिन प्रयोगकर्ताबठे {{PLURAL:$1|गरियाका बीचको एक बस्या काम नाइधेकियो|गरियाको बीचको $1 बस्याकाम नाइधेकियो}})",
+       "searchresults": "खोज नतिजाहरू",
+       "searchresults-title": " \"$1\"का लागि खोज नतिजाहरू",
+       "titlematches": "पाना शिर्षक मिलन्छ",
+       "textmatches": "पाना पाठ मिलन्छ",
+       "notextmatches": "कुनै पानामी लै यो सामाग्री भेटिएन",
+       "prevn": "पैल्लिको{{PLURAL:$1|$1}}",
+       "nextn": "अर्को {{PLURAL:$1|$1}}",
+       "prev-page": "अघिल्लो पाना",
+       "next-page": "अर्को पाना",
+       "prevn-title": "पैल्लिको  $1 {{PLURAL:$1|नतिजा|नतिजाहरू}}",
+       "nextn-title": "यै पछाका $1 {{PLURAL:$1|नतिजा |नतिजाहरू}}",
+       "shown-title": "धेखाउने $1 {{PLURAL:$1|नतिजा|नतिजाहरू}} प्रति पाना",
+       "viewprevnext": "हेर ($1 {{int:pipe-separator}} $2) ($3)",
+       "searchmenu-exists": "''' \"[[:$1]]\" नाम गरया पाना  ये विकीमी रह्या छ'''",
+       "searchmenu-new": "<strong>\"[[:$1]]\" यै पानो इसै विकिमि बनाइदिय !</strong> {{PLURAL:$2|0=|तमले खोज अरी भेटियाको पानो पन सङ्ङै जोड्या काम अर ।|तमरो खोज परिणाम पन हेरिदिय।}}",
+       "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|1 शब्द|$2 शब्दहरू}})",
+       "search-result-category-size": "{{PLURAL:$1|एक सदस्य|$1 सदस्यहरू}} ({{PLURAL:$2|1 उपश्रेणी|$2  उपश्रेणीहरू}}, {{PLURAL:$3|एउटा फाइल|$3 फाइलहरू}})",
+       "search-redirect": "(जान्या $1)",
+       "search-section": "(खण्ड $1)",
+       "search-category": "(श्रेणी $1)",
+       "search-file-match": "(भेटिईया फाइल सामाग्री)",
+       "search-suggest": "क्या तमरो खोजाई : $1 हो?",
+       "search-interwiki-caption": "बैना आयोजना",
+       "search-interwiki-default": "$1बठेका नतिजाहरू:",
+       "search-interwiki-more": "(आजी)",
+       "search-relatedarticle": "सम्बन्धित",
+       "searchrelated": "सम्बन्धित",
+       "searchall": "सबै",
+       "showingresults": "धेखाउँदै  {{PLURAL:$1|'''१''' नतिजा|'''$1''' नतिजाहरू }} , #'''$2''' बठे सुरुहुन्या ।",
+       "showingresultsinrange": "देखाई रह्या छ{{PLURAL:$1|<strong>1</strong> result|<strong>$1</strong> परिणाम}} सम्म पहुँच  #<strong>$2</strong> देखि #<strong>$3</strong> मी।",
+       "search-showingresults": "{{PLURAL:$4|<strong>$3</strong> मै बठे <strong>$1</strong> परिणाम|<strong>$3</strong> मै बठे परिणाम <strong>$1 - $2</strong>}}",
+       "search-nonefound": "तमरो क्वेरीसँग ठक्कर खान्या नतिजाहरू नाइभेटिया",
+       "powersearch-legend": "उन्नत खोज",
+       "powersearch-ns": "नेमस्पेसेजहरुमी खोज्ने :",
+       "powersearch-togglelabel": "जाँच्ने :",
+       "powersearch-toggleall": "सबै",
+       "powersearch-togglenone": "कोइ लै होइनन",
+       "search-external": "भाइरका खोज",
+       "preferences": "मेरी रोजाई",
+       "mypreferences": "मेरी रोजाई",
+       "prefs-edits": "सम्पादन संख्या:",
+       "prefs-skin": "काँचुली",
+       "skin-preview": "पूर्वावलोकन",
+       "datedefault": "कोइ अभिरुचि नाइँथिन",
+       "prefs-labs": "प्रयोगशाला गुणहरू",
+       "prefs-user-pages": "प्रयोगकर्ता पानाहरु",
+       "prefs-personal": "प्रयोगकर्ताको विवरण",
+       "prefs-rc": "नौला परिवर्तनहरू",
+       "prefs-watchlist": "मेरो ध्यान सूची",
+       "prefs-editwatchlist": "अवलोकनसूची सम्पादन",
+       "prefs-watchlist-days": "ध्यान सूचीमी धेकाउने दिनहरू:",
+       "prefs-watchlist-edits-max": "सबै है ज्यादा संख्या : १०००",
+       "prefs-watchlist-token": "अवलोकन सूची टोकन:",
+       "prefs-misc": "साधारण",
+       "prefs-resetpass": "पासवर्ड परिवर्तन गर",
+       "prefs-changeemail": "इमेल परिवर्तन गर्न्या",
+       "prefs-setemail": "इमेल ठेगाना प्रविष्ट गर्न्या",
+       "prefs-email": "इमेल  विकल्पहरू",
+       "prefs-rendering": "स्वरुप",
+       "saveprefs": "संग्रह",
+       "prefs-editing": "सम्पादन",
+       "rows": "हरफहरू :",
+       "columns": "स्तम्भहरू :",
+       "searchresultshead": "खोज",
+       "stub-threshold": "<a href=\"#\" class=\"stub\">ठूटो</a> को लागि थ्रेसहोल्ड स्वरूपण (बाइट):",
+       "stub-threshold-disabled": "निष्क्रिय",
+       "recentchangesdays": "हालको परिवर्तनमी धेकाउने दिनहरू:",
+       "recentchangesdays-max": "अधिकतम $1 {{PLURAL:$1|दिन|दिन}}",
+       "timezonelegend": "समय क्षेत्र :",
+       "localtime": "स्थानिय समय:",
+       "timezoneuseserverdefault": "विकि मूल  ($1) रुपमी प्रयोग गर्ने",
+       "timezoneuseoffset": "औरुई(अफसेट खुलाउनुहोस्)",
+       "servertime": "सर्भर समय:",
+       "guesstimezone": "ब्राउजरबठे भरा",
+       "timezoneregion-africa": "अफ्रिका",
+       "timezoneregion-america": "अमेरिका",
+       "timezoneregion-antarctica": "एन्टार्टिका",
+       "timezoneregion-arctic": "आर्टिक",
+       "timezoneregion-asia": "एसिया",
+       "timezoneregion-atlantic": "एट्लान्टिक महासागर",
+       "timezoneregion-australia": "अष्ट्रेलिया",
+       "timezoneregion-indian": "हिन्द महासागर",
+       "right-move-subpages": "तिनीहरूको उपपाना सहित पानाको नाम बदल्ने",
+       "right-move-rootuserpages": "मूल(root) प्रयोगकर्ताको पानाहरू साद्या",
+       "right-writeapi": "लेखन API प्रयोग गद्य्या",
+       "right-bigdelete": "लामो इतिहास भयाका पानाहरू मेट्ट्या",
+       "right-deleterevision": "खुलाइयाको पानाहरू मेटाउन्या र मेटायाको रद्द गद्या",
+       "right-suppressionlog": "व्यक्तिगत लगहरू हेद्या",
+       "right-editprotected": "\"{{int:protect-level-sysop}}\" को हैसियतले सुरक्षित पानाहरू सम्पादन गद्या",
+       "right-import": "अरु विकि बठे पानाहरू आयात गद्या",
+       "right-override-export-depth": "गहिराइ ५ सम्म लिंक गरियाका पानाहरू सहित निर्यात गद्या",
+       "newuserlogpage": "प्रयोगकर्ता श्रृजना लग",
+       "enhancedrc-history": "इतिहास",
+       "recentchanges": "नौला फेरबदली",
+       "recentchanges-legend": "अच्यालैका परिवर्तन विकल्पहरू",
+       "recentchanges-summary": "विकिका यैल्लैका फेरबदललाई यै पानामि पहिल्याउन्या",
+       "recentchanges-label-newpage": "यो सम्पादनले नयाँ पानो बनौन्या अर्याको छ",
+       "recentchanges-label-minor": "यो नानो सम्पादन हो",
+       "recentchanges-label-bot": "यो सम्पादन बोटबठे गरियाको थ्यो",
+       "recentchanges-label-unpatrolled": "यो सम्पादन यैलसम्म गस्ती गरियाको नाइथी",
+       "recentchanges-label-plusminus": "यति बाइटहरू संख्याले पानाको आकार फेरबदल  भयाको छ",
+       "recentchanges-legend-heading": "'''आदर्श वाक्य:'''",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|list of new pages]] यैलाई लै हेरिदिय)",
+       "rclistfrom": "$3 $2 देखिका नयाँ परिवर्तनहरू देखाउन्या",
+       "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": "सा",
+       "newpageletter": "न",
+       "boteditletter": "बो",
+       "rc-change-size-new": "फेरबदलपाछा $1 {{PLURAL:$1|बाइट|बाइट}}",
+       "recentchangeslinked": "सम्बन्धित फेरबदल",
+       "recentchangeslinked-toolbox": "सम्बन्धित फेरबदल",
+       "recentchangeslinked-title": "\"$1\" सित सम्बन्धित परिवर्तन",
+       "recentchangeslinked-summary": "यो सूची निर्दिष्ट पाना (वा निर्दिष्ट श्रेणी)सित जोडियाका अल्लै परिवर्तन भयाका पानाको  हो। [[Special:Watchlist|तमरो ध्यानसूची]]का पानाहरू <strong>गाढा अक्षरमी</strong> छन्।",
+       "recentchangeslinked-page": "पाना नाम:",
+       "recentchangeslinked-to": "यैको सट्टा यो पानासित जोडियाका पानानको परिवर्तन धेखाउन्या",
+       "upload": "चित्र अपलोड गर",
+       "filedesc": "सारांश:",
+       "license-header": "कोइ केइ नाइथिन",
+       "imgfile": "चित्र",
+       "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|}}|$1 पानाहरू जोडिनान्}}:",
+       "nolinkstoimage": "यो चित्रसित लिंकभयाकि कोइ पाना नाइथी",
+       "sharedupload-desc-here": "यो फाइल $1 बठे हो र और  परियोजनाहरू बठे पन प्रयोग गद्द सकिन्याछ । \nताखाइ यैको [$2 फ़ाइल विवरण पानो]मि रयाका विवरण तल्तिर दियाको छ।",
+       "upload-disallowed-here": "तमलाई यो फाइल अधिलेखन गद्द नाइसक्का ।",
+       "randompage": "कोइ एक लेख",
+       "nbytes": "$1 {{PLURAL:$1|बाइट|बाइटहरू}}",
+       "nmembers": "$1 {{PLURAL:$1|सदस्य|सदस्यहरू}}",
+       "prefixindex": "प्रिफिक्स सहितका पानाहरू",
+       "deadendpagestext": "निम्न पानाहरू {{SITENAME}}मी रह्याका अरु पानाहरूसँग जोडिदाइनन् ।",
+       "protectedpagesempty": "यै बेला यी नियम बठे कुनै पाना लै शुरक्षित नाइथिन्",
+       "newpages": "नयाँ पानाहरू",
+       "move": "नाम बदल",
+       "movethispage": "पानाको नाम बदल्न्या",
+       "pager-older-n": "{{PLURAL:$1|पुरानो १|पुरानो $1}}",
+       "booksources": "किताबका श्रोतहरु",
+       "booksources-search-legend": "किताबका श्रोतहरु खोज्या",
+       "booksources-search": "खोज अर",
+       "log": "लगहरू",
+       "all-logs-page": "सब्बै सार्वजनिक लगहरू",
+       "allarticles": "सब्बै लेखहरू",
+       "allpagessubmit": "जान्या",
+       "allpagesprefix": "यी सुरुका अक्षरसहितका पानाहरू हेद्या:",
+       "categories": "श्रेणीहरू",
+       "mywatchlist": "मेरो ध्यान सूची",
+       "watch": "ध्यान राख",
+       "watchthispage": "यै पानाको ध्यान राख",
+       "unwatch": "ध्यान हटाओ",
+       "unwatchthispage": "ध्यान हटाओ",
+       "notanarticle": "सामाग्री छैन",
+       "enotif_reset": "सब्बै पानाहरू हेर्याको भनी चिनो लाउन्या",
+       "dellogpage": "मेटाइयाको लग",
+       "rollbacklink": "पैल्लिका रुपमि फर्काउन्या",
+       "rollbacklinkcount": "रोल्ब्याक $1 {{PLURAL:$1|सम्पादन|सम्पादनहरू}}",
+       "protectlogpage": "सुरक्षण लग",
+       "protect-cascade": "यै पानामी संलग्न सुरक्षित पानाहरू (लामबद्द सुरक्षा)",
+       "undeletepage": "मेट्याका पानाहरू हेद्या र पूर्वरुपमी फर्काउन्या",
+       "undelete-header": "भर्खरै मेटायाका पानाहरू हेद्दाकीलाई [[Special:Log/delete|मेटायाका लग]]मी जाओ।",
+       "undelete-search-prefix": "सुरुवाती शब्द अनुसार पानाहरू खोज",
+       "undelete-no-results": "मेटियाका पानाहरूको अभिलेखमी क्वै पन मिल्दा पानाहरू नाइभेटिया ।",
+       "namespace": "नामठौर:",
+       "invert": "रोजाइ उल्टाउन्या",
+       "tooltip-invert": "छानिएका नेमस्पेसहरुमि रयाका पृष्ठहरुमि गरिएका फेरबदलहरु लुकौन यैमी चिनो लगाइदिय  (और सम्वन्धित नेमस्पेस यदि छानिएका भए)",
+       "namespace_association": "सम्बन्धित नेमस्पेस",
+       "tooltip-namespace_association": "कुरडिकानी या विषय नेमस्पेसहरुलाई सम्वन्धित नेमस्पेसको रुपमि लिनकि लेखा सन्दुकमि चिनो लगाइदिय ।",
+       "blanknamespace": "(मुख्य)",
+       "contributions": "{{GENDER:$1|प्रयोगकर्ता}}को योगदान",
+       "mycontris": "मेरो योगदानहरू",
+       "month": "महिना बठे (लै पैल्ली):",
+       "year": "वर्ष बठे( लौ पैल्ली):",
+       "whatlinkshere": "याँखाइ की जुडन्छ",
+       "whatlinkshere-title": "$1 सित जोडियाका पानाहरू",
+       "whatlinkshere-page": "पानो",
+       "linkshere": "निम्न पानाहरू '''[[:$1]]''' मी जुडन्छ :",
+       "nolinkshere-ns": "चुनियाको नामस्थानमी '''[[:$1]]''' सित जुड्न्या पानाहरू नाइथिन्।",
+       "isredirect": "अनुप्रेषित पानो",
+       "istemplate": "पारदर्शिता",
+       "isimage": "फाइल लिङ्क",
+       "whatlinkshere-prev": "{{PLURAL:$1|पैलो|पैलो $1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|अर्को|अर्को $1}}",
+       "whatlinkshere-links": "← लिंकहरु",
+       "whatlinkshere-hideredirs": "$1 अनुप्रेषित हुन्छ",
+       "whatlinkshere-hidetrans": "$1 पारदर्शन",
+       "whatlinkshere-hidelinks": "$1 लिङ्कहरु",
+       "whatlinkshere-filters": "छानियाका",
+       "ipboptions": "२ घण्टाहरू:2 hours,१ दिन :1 day,३ दिनहरू:3 days,१ हप्ता:1 week,२ हप्ताहरू:2 weeks,१ महिना:1 month,३ महिनाहरू:3 months,६ महिनाहरू:6 months,१ वर्ष:1 year,अनगिन्ती:infinite",
+       "blocklink": "रोक्न्या",
+       "contribslink": "योगदानहरू",
+       "cant-move-user-page": "तमसँग प्रयोगकर्ता पानाहरू साद्या अनुमती नाइथिन् (सहपानाहरू बाहेक)",
+       "cant-move-to-user-page": "तमसँग पानाहरूलाई प्रयोगकर्ता पानामी साद्या अनुमती नाइथिन् (प्रयोगकर्ता सहपृष्ठहरूमी बाहेक)",
+       "move-subpages": "उप पानाहरू सार्न्या($1 सम्मको)",
+       "move-talk-subpages": "कुरडी पानाको सह-पानाहरू साद्य($1 सम्मको )",
+       "movepage-max-pages": "अधिकतम $1 {{PLURAL:$1|पाना|पानाहरू}}को नाम बदलि सकियाको छ र अरु स्वत: नाम बदलिन्या छैन ।",
+       "movelogpage": "लग साद्य्या",
+       "movesubpagetext": "यै पानाको $1 {{PLURAL:$1|सह-पाना|सह-पानाहरू}} तल धेकायाको :",
+       "movenosubpage": "यै पानाको उपपाना नाइथी",
+       "export": "पानहरु पठौन्या",
+       "thumbnail-more": "ठूलो बनौन्या",
+       "import-noarticle": "आयात गद्दाकी लाई पानाहरू नाइथिन्",
+       "tooltip-pt-userpage": "तमरो प्रयोगकर्ता पानो",
+       "tooltip-pt-mytalk": "तमरो कुरणिकानी पानो",
+       "tooltip-pt-preferences": "तमरा अभिरुचिहरू",
+       "tooltip-pt-watchlist": "पृष्ठहरूको सूची जैका फेरबदलहरुलाई तमले पहरा गरिराखेका छौ ।",
+       "tooltip-pt-mycontris": "तमरो योगदानको सूची",
+       "tooltip-pt-login": "तमलाई प्रवेशगद्द सुझाव दिइन्छ ; याद अर यो जरुरी आथिन भण्या ।",
+       "tooltip-pt-logout": "बाहिर निस्कन्या (लग आउट)",
+       "tooltip-pt-createaccount": "तमलाई खाता बनौन लै लग इन अद्द हम हौसला अद्दाउ; काइकि, यो अनिवार्य नाइथी भण्या ।",
+       "tooltip-ca-talk": "सामाग्री पृष्ठबारेमी छलफल",
+       "tooltip-ca-edit": "तम यो पृष्ठ सम्पादन अद्द सकन्छौ । कृपया सङ्ग्रह ‍गद्द अगाडी पूर्वावलोकन बटन प्रयोग अरिदिय ।",
+       "tooltip-ca-addsection": "नयाँ खण्ड सुरु अरिदिय",
+       "tooltip-ca-viewsource": "यो पानो सुरक्षित अरियाको छ। यैको श्रोत हेद्द सकन्छौ ।",
+       "tooltip-ca-history": "यै पृष्ठका पैल्लिका पुनरावलोकनहरु",
+       "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-currentevents": "हालैका घटनाको बारेमी पृष्ठभूमि जानकारी पत्ता लागाइदिय",
+       "tooltip-n-recentchanges": "विकिमा अरियाका हालैका भया फेरबदलका शुचि ।",
+       "tooltip-n-randompage": "जो कोइ पानो खोल्या",
+       "tooltip-n-help": "खोज्जु पड्या ठौर ।",
+       "tooltip-t-whatlinkshere": "यो सित जोडियाका सब्बै विकि पानानको सूची",
+       "tooltip-t-recentchangeslinked": "यै पानामी जोडियाका पानामी अहिलको परिवर्तन",
+       "tooltip-feed-atom": "यै पानाकी लेखा एक एटम फिड",
+       "tooltip-t-contributions": "यिन प्रयोगकर्ताका योगदानहरूको सूची हेरपुई",
+       "tooltip-t-upload": "चित्र अप्लोड अर",
+       "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": "तमले अरेका परिवर्तनहरू संग्रह अरिदिय",
+       "tooltip-preview": "तमरा परिवर्तनको पूर्वरूप , कृपया संग्रह गद्दाहै अगाडी यो प्रयोग गरिदिय !",
+       "tooltip-diff": "तमले पाठमि के के परिवर्तन गर्या भणिबरे धेकाउन्या",
+       "tooltip-rollback": "\"पूर्वरुप\" ले यो पानाक्क सम्पादन(हरू) खारेज अरिबरे पानालाई एक क्लिकमि पाछाडीको सम्पादनमि पुगाइदिन्छ ।",
+       "tooltip-undo": "\"रद्द\"ले पछिल्लो सम्पादन खारेज गरिबरे पूर्वावलोकनमा धेकाउछ ।\nयैले सारांशमा कारण राख्ख दिन्याछ।",
+       "tooltip-summary": "नानो सारांश हालिदिय",
+       "simpleantispam-label": "ऐन्टी-स्प्याम जाँच।\nयैलाई <strong>नहीं</strong> भद्य्या!",
+       "pageinfo-toolboxlink": "यै पानाको जाणकारी",
+       "previousdiff": "← पुरानो सम्पादन",
+       "nextdiff": "नौलो सम्पादन →",
+       "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|पानो|पानाहरू}}",
+       "file-info-size": "$1 × $2 पिक्सेलहरु, फाइल आकार: $3, MIME प्रकार: $4",
+       "file-info-size-pages": "$1 × $2 पिक्सेलहरू, फाइल आकार: $3, MIME प्रकार: $4, $5 {{PLURAL:$5|पानो|पानाहरू}}",
+       "file-nohires": "उपर रिजोल्युशन अनुपलब्ध",
+       "svg-long-desc": "SVG चित्र,सानतिनो $1 × $2 पिक्सेलहरु, फाइल आकार: $3",
+       "show-big-image": "खास फाइल",
+       "show-big-image-preview": "यै पूर्व रुपको आकार: $1।",
+       "show-big-image-other": "और {{PLURAL:$2|resolution|रिजोल्युशनहरु}}: $1।",
+       "show-big-image-size": "$1 × $2 पिक्सल",
+       "days": "{{PLURAL:$1|$1 दिन|$1 दिनहरू}}",
+       "metadata": "मेटाडेटा",
+       "metadata-help": "यै फाइलमि अतिरिक्त जानकारीहरु छन्, यैलाई बनाउन सम्भवतः डिजिटल क्यामेरा और स्क्यानर प्रयोग गरियाको हुनसकन्छ । यदि यै फाइललाई खास अवस्थाबठे फेरबदल गरियाको हो भण्या यै फाइलले  सब्बै विवरण प्रतिबिम्बित गद्द सक्यानाइथी ।",
+       "metadata-fields": "Image metadata fields listed in this message will be included on image page display when the metadata table is collapsed.\nOthers will be hidden by default.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "exif-orientation": "अभिविन्यास",
+       "exif-xresolution": "क्षैतिज संकल्प(resolution)",
+       "exif-yresolution": "ऊर्ध्वाधर संकल्प(resolution)",
+       "exif-datetime": "फाइल परिवर्तन मिति और समय",
+       "exif-make": "क्यामेरा बनौन्या",
+       "exif-model": "क्यामरा मोडल",
+       "exif-software": "प्रयोग अरियाको सफ्टवेयर",
+       "exif-exifversion": "Exif संस्करण",
+       "exif-colorspace": "वर्ण ठौर",
+       "exif-datetimeoriginal": "डेटा चल्याको मिति और समय",
+       "exif-datetimedigitized": "मिति लै समय अंकीयकरण",
+       "exif-orientation-1": "सानतिनो",
+       "namespacesall": "सब्बै",
+       "monthsall": "सब्बै",
+       "signature": "[[{{ns:user}}:$1|$2 ]]",
+       "specialpages": "खास पानो",
+       "specialpages-note": "* साधारण खास पानाहरू।\n* <span class=\"mw-specialpagerestricted\">निषेधित खास पानाहरू।</span>",
+       "specialpages-group-changes": "अल्लैका परिवर्तन लगहरू",
+       "tag-filter": "[[Special:Tags|पुछड]] छानिन्या",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|ट्याग|ट्यागहरू}}]]: $2)",
+       "logentry-delete-delete": "$1 बठे पानो $3 {{GENDER:$2|मेटाइयो}}",
+       "logentry-move-move": "$1 {{GENDER:$2|द्वारा}} $3 पृष्ठलाई $4 मि सारियो",
+       "logentry-newusers-create": "प्रयोगकर्ता खाता $1 {{GENDER:$2|खोलियो}}",
+       "logentry-upload-upload": "$1 ले $3 {{GENDER:$2|अपलोड अरेका छन्}}",
+       "searchsuggest-search": "खोज"
+}
index 3b9fba1..c6224c2 100644 (file)
        "readonly_lag": "Η βάση δεδομένων έχει κλειδωθεί αυτόματα για να μπορέσουν οι επιμέρους servers των αντιγράφων της βάσης δεδομένων (slaves) να καλύψουν τη διαφορά με τον κεντρικό server του πρωτοτύπου της βάσης (master).",
        "internalerror": "Εσωτερικό σφάλμα",
        "internalerror_info": "Εσωτερικό σφάλμα: $1",
+       "internalerror-fatal-exception": "Ανεπανόρθωτη εξαίρεση τύπου «$1»",
        "filecopyerror": "Δεν ήταν δυνατή η αντιγραφή του αρχείου «$1» στο «$2».",
        "filerenameerror": "Δεν είναι δυνατή η μετονομασία του αρχείου «$1» σε «$2».",
        "filedeleteerror": "Δεν ήταν δυνατή η διαγραφή του αρχείου «$1».",
        "no-null-revision": "Δεν μπορούσε να δημιουργηθεί νέα μηδενική αναθεώρηση για τη σελίδα \"$1\"",
        "badtitle": "Ακατάλληλος τίτλος",
        "badtitletext": "Ο τίτλος της σελίδας που ζητήσατε δεν είναι έγκυρος ή είναι κενός ή πρόκειται για έναν εσφαλμένα συνδεδεμένο διαγλωσσικό τίτλο ή εσφαλμένα συνδεδεμένο τίτλο ανάμεσα σε διαφορετικά wiki.",
+       "title-invalid-empty": "Ο τίτλος σελίδας που ζητήσατε είναι κενός ή περιέχει μόνο όνομα ονοματοχώρου.",
+       "title-invalid-utf8": "Ο τίτλος σελίδας που ζητήσατε περιέχει μη έγκυρη ακολουθία UTF-8.",
+       "title-invalid-interwiki": "Ο τίτλος περιέχει σύνδεσμο interwiki",
+       "title-invalid-talk-namespace": "Ο τίτλος σελίδας που ζητήσατε αναφέρεται σε σελίδα συζήτησης που δεν μπορεί να υπάρχει.",
+       "title-invalid-characters": "Ο τίτλος σελίδας που ζητήσατε περιέχει μη έγκυρους χαρακτήρες: «$1».",
+       "title-invalid-relative": "Ο τίτλος έχει σχετική διαδρομή. Τίτλοι παρόμοιων σελίδων (./, ../) δεν είναι έγκυροι, διότι συχνά δεν θα είναι προσβάσιμοι όταν χειρίζονται από το πρόγραμμα περιήγησης του χρήστη.",
+       "title-invalid-magic-tilde": "Ο τίτλος σελίδας που ζητήσατε περιέχει μη έγκυρη ακολουθίας μαγικών περισπωμένων (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Ο τίτλος σελίδας που ζητήσατε είναι υπερβολικά μεγάλος. Δεν πρέπει να είναι μεγαλύτερος από $1 bytes σε κωδικοποίηση UTF-8.",
+       "title-invalid-leading-colon": "Ο τίτλος σελίδας που ζητήσατε περιέχει μια μη έγκυρη άνω και κάτω τελεία στην αρχή.",
        "perfcached": "Τα δεδομένα που ακολουθούν είναι cached και είναι πιθανόν να μην είναι επικαιροποιημένα. Ένα μέγιστο των  {{PLURAL:$1|one result is|$1 results are}} διαθέσιμο στην cache.",
        "perfcachedts": "Τα ακόλουθα δεδομένα είναι αποθηκευμένα στην προσωρινή μνήμη και ενημερώθηκαν τελευταία φορά στις $2 στις $3. Υπάρχει διαθέσιμο ένα μέγιστο {{PLURAL:$4|ενός αποτελέσματος|$4 αποτελεσμάτων}} στην προσωρινή μνήμη.",
        "querypage-no-updates": "Οι ενημερώσεις για αυτή τη σελίδα είναι απενεργοποιημένες. Τα δεδομένα εδώ δεν θα ανανεωθούν προς το παρόν.",
        "history-feed-description": "Ιστορικό αναθεωρήσεων για αυτή τη σελίδα στο wiki",
        "history-feed-item-nocomment": "$1 στις $2",
        "history-feed-empty": "Η ζητούμενη σελίδα δεν υπάρχει.\nΜπορεί να έχει διαγραφεί από το wiki, ή να μετονομάστηκε.\nΔοκιμάστε [[Special:Search|να αναζητήσετε στο wiki]] για σχετικές νέες σελίδες.",
-       "rev-deleted-comment": "(σχόλιο αφαιρέθηκε)",
+       "history-edit-tags": "Επεξεργασία ετικετών των επιλεγμένων αναθεωρήσεων",
+       "rev-deleted-comment": "(η σύνοψη επεξεργασίας αφαιρέθηκε)",
        "rev-deleted-user": "(όνομα χρήστη αφαιρέθηκε)",
        "rev-deleted-event": "(οι λεπτομέρειες καταγραφής αφαιρέθηκαν)",
        "rev-deleted-user-contribs": "[όνομα χρήστη ή διεύθυνση ΙΡ έχουν αφαιρεθεί - η επεξεργασία έχει αποκρυφθεί από τις συνεισφορές]",
        "rev-suppressed-unhide-diff": "Μια από τις εκδόσεις αυτής της διαφοράς έχει '''κατασταλεί'''.\nΛεπτομέρειες μπορούν να βρεθούν στο [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} αρχείο καταστολών].\nΜπορείτε ακόμα [$1 να δείτε αυτή τη διαφορά] αν θέλετε να συνεχίσετε.",
        "rev-deleted-diff-view": "Μια από τις εκδόσεις αυτής της διαφοράς έχει '''διαγραφεί'''.\nΜπορείτε να δείτε αυτή τη διαφορά. Λεπτομέρειες μπορούν να βρεθούν στο [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} αρχείο διαγραφών].",
        "rev-suppressed-diff-view": "Μια από τις εκδόσεις αυτής της διαφοράς έχει '''κατασταλεί'''.\nMπορείτε να δείτε αυτή την διαφορά. Λεπτομέρειες μπορούν να βρεθούν στο [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} αρχείο καταστολών].",
-       "rev-delundel": "εμÏ\86άνιÏ\83η/αÏ\80Ï\8cκÏ\81Ï\85Ï\88η",
+       "rev-delundel": "αλλαγή Î¿Ï\81αÏ\84Ï\8cÏ\84ηÏ\84αÏ\82",
        "rev-showdeleted": "εμφάνιση",
        "revisiondelete": "Διαγραφή/επαναφορά αναθεωρήσεων",
        "revdelete-nooldid-title": "Άκυρη έκδοση-στόχος",
-       "revdelete-nooldid-text": "Είτε δεν έχετε ορίσει μία έκδοση-στόχο για να εκτελεστεί η λειτουργία σε αυτή, είτε η ορισμένη έκδοση δεν υπάρχει, είτε δοκιμάσετε να κρύψετε την τρέχουσα έκδοση.",
+       "revdelete-nooldid-text": "Είτε δεν έχετε ορίσει μία έκδοση-στόχο για να εκτελεστεί η λειτουργία σε αυτή, είτε η ορισμένη έκδοση δεν υπάρχει, είτε προσπαθείτε να κρύψετε την τρέχουσα έκδοση.",
        "revdelete-no-file": "Το αρχείο που καθορίσατε δεν υπάρχει.",
        "revdelete-show-file-confirm": "Είστε σίγουροι ότι θέλετε να δείτε μία διεγραμμένη αναθεώρηση του αρχείου \"<nowiki>$1</nowiki>\" από τις $2 στις $3;",
        "revdelete-show-file-submit": "Ναι",
        "revdelete-selected-file": "{{PLURAL:$1|Επιλεγμένη έκδοση αρχείου|Επιλεγμένες εκδόσεις αρχείου}} του [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|Επιλεγμένο γεγονός αρχείου καταγραφής|Επιλεγμένα γεγονότα αρχείου καταγραφής}}:",
        "revdelete-text-text": "Οι διαγραμμένες αναθεωρήσεις θα εξακολουθούν να εμφανίζονται στο ιστορικό της σελίδας, αλλά τα μέρη του περιεχομένου τους θα είναι απροσπέλαστα για το κοινό.",
+       "revdelete-text-file": "Οι διαγραμμένες αναθεωρήσεις θα εξακολουθούν να εμφανίζονται στο ιστορικό του αρχείου, αλλά μέρη του περιεχομένου τους δεν θα είναι προσβάσιμα για το κοινό.",
        "logdelete-text": "Οι διαγραμμένες καταγραφές ενεργειών θα εξακολουθούν να εμφανίζονται στις σελίδες καταγραφών, αλλά μέρη του περιεχομένου τους, θα είναι απροσπέλαστα για το κοινό.",
        "revdelete-text-others": "Άλλοι διαχειριστές θα εξακολουθεί να είναι σε θέση να αποκτήσουν πρόσβαση στο κρυφό περιεχόμενο και για να αναιρέσουν τη διαγραφή, εκτός αν τίθενται πρόσθετοι περιορισμοί.",
        "revdelete-confirm": "Παρακαλούμε επιβεβαιώστε ότι σκοπεύετε να το κάνετε αυτό, ότι αντιλαμβάνεσθε τις συνέπειες, και ότι το κάνετε σύμφωνα με την [[{{MediaWiki:Policy-url}}|πολιτική]].",
        "revdelete-suppress-text": "Η καταστολή μπορεί να χρησιμοποιηθεί <strong> μόνο </strong> για τις ακόλουθες περιπτώσεις:\n* Ενδεχόμενη συκοφαντική δυσφήμιση\n* Ακατάλληλες προσωπικές πληροφορίες\n*: <em>διευθύνσεις κατοικίας και αριθμοί τηλεφώνου, αριθμοί ταυτότητας, κλπ. </em>",
-       "revdelete-legend": "Î\98έÏ\83Ï\84ε Ï\80εÏ\81ιοÏ\81ιÏ\83μοÏ\8dÏ\82 ορατότητας",
+       "revdelete-legend": "Î\9fÏ\81ιÏ\83μÏ\8cÏ\82 Ï\80εÏ\81ιοÏ\81ιÏ\83μÏ\8eν ορατότητας",
        "revdelete-hide-text": "Κείμενο αναθεώρησης",
        "revdelete-hide-image": "Κρύψε περιεχόμενο αρχείου",
        "revdelete-hide-name": "Απόκρυψη στόχου και παραμέτρων",
        "revdelete-suppress": "Απόκρυψε δεδομένα από διαχειριστές όπως και από άλλους",
        "revdelete-unsuppress": "Αφαίρεσε περιορισμούς στις αποκατεστημένες αναθεωρήσεις",
        "revdelete-log": "Αιτία:",
-       "revdelete-submit": "Î\95Ï\86άÏ\81μοÏ\83ε {{PLURAL:$1|στην επιλεγμένη αναθεώρηση|στις επιλεγμένες αναθεωρήσεις}}",
+       "revdelete-submit": "Î\95Ï\86αÏ\81μογή {{PLURAL:$1|στην επιλεγμένη αναθεώρηση|στις επιλεγμένες αναθεωρήσεις}}",
        "revdelete-success": "'''Η ορατότητα έκδοσης ενημερώθηκε επιτυχώς.'''",
        "revdelete-failure": "'''Η ορατότητα της επεξεργασίας δεν ήταν δυνατόν να ενημερωθεί:''' $1",
        "logdelete-success": "'''Η ορατότητα γεγονότος τέθηκε επιτυχώς.'''",
        "mergehistory-empty": "Καμία έκδοση δεν μπορεί να συγχωνευθεί.",
        "mergehistory-success": "$3 {{PLURAL:$3|έκδοση|εκδόσεις}} του [[:$1]] συγχωνεύθηκαν επιτυχώς στο [[:$2]].",
        "mergehistory-fail": "Αδύνατη η εκτέλεση της συγχώνευσης ιστορικού, παρακαλούμε κάντε επανέλεγχο των παραμέτρων σελίδας και χρόνου.",
+       "mergehistory-fail-toobig": "Δεν είναι δυνατό να πραγματοποιηθεί η συγχώνευση ιστορικών, καθώς πάνω από $1 {{PLURAL:$1|αναθεώρηση|αναθεωρήσεις}} θα μετακινούνταν.",
        "mergehistory-no-source": "Η σελίδα πηγής $1 δεν υπάρχει.",
        "mergehistory-no-destination": "Η σελίδα προορισμού $1 δεν υπάρχει.",
        "mergehistory-invalid-source": "Η σελίδα πηγής πρέπει να είναι έγκυρος τίτλος.",
        "difference-title-multipage": "Διαφορά μεταξύ των σελίδων \"$1\" και \"$2\"",
        "difference-multipage": "(Διαφορές μεταξύ των σελίδων)",
        "lineno": "Γραμμή $1:",
-       "compareselectedversions": "ΣÏ\8dγκÏ\81ιÏ\83η Ï\84Ï\89ν ÎµÏ\80ιλεγμένÏ\89ν ÎµÎºÎ´Ï\8cσεων",
-       "showhideselectedversions": "Î\95μÏ\86άνιÏ\83η/αÏ\80Ï\8cκÏ\81Ï\85Ï\88η Ï\84Ï\89ν ÎµÏ\80ιλεγμένÏ\89ν ÎµÎºÎ´Î¿Ï\87Ï\8eν",
+       "compareselectedversions": "ΣÏ\8dγκÏ\81ιÏ\83η Ï\84Ï\89ν ÎµÏ\80ιλεγμένÏ\89ν Î±Î½Î±Î¸ÎµÏ\89Ï\81ήσεων",
+       "showhideselectedversions": "Î\91λλαγή Î¿Ï\81αÏ\84Ï\8cÏ\84ηÏ\84αÏ\82 Ï\84Ï\89ν ÎµÏ\80ιλεγμένÏ\89ν Î±Î½Î±Î¸ÎµÏ\89Ï\81ήÏ\83εÏ\89ν",
        "editundo": "αναίρεση",
        "diff-empty": "(Καμία διαφορά)",
        "diff-multi-sameuser": "({{PLURAL:$1|Μία ενδιάμεση αναθεώρηση|$1 ενδιάμεσες αναθεωρήσεις}} από τον ίδιο χρήστη δεν εμφανίζεται)",
+       "diff-multi-otherusers": "({{PLURAL:$1|Μία ενδιάμεση έκδοση|$1 ενδιάμεσες εκδόσεις}} από {{PLURAL:$2|ένα χρήστη|$2 χρήστες}} δεν εμφανίζ{{PLURAL:$1|εται|ονται}})",
        "diff-multi-manyusers": "({{PLURAL:$1|Μία ενδιάμεση αναθεώρηση|$1 ενδιάμεσες αναθεωρήσεις}} από περισσότερο από $2 {{PLURAL:$2|χρήστη|χρήστες}} δεν εμφανίζ{{PLURAL:$1|εται|ονται}})",
        "difference-missing-revision": "{{PLURAL:$2|Μία αναθεώρηση|$2 αναθεωρήσεις}} αυτής της διαφοράς ($1) δεν {{PLURAL:$2|μπόρεσε να βρεθεί|μπόρεσαν να βρεθούν}}.\n\nΑυτό συνήθως προκαλείται από παλιό σύνδεσμο διαφοράς προς σελίδα που έχει διαγραφεί.\nΛεπτομέρειες θα βρείτε στο [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ημερολόγιο καταγραφής διαγραφών].",
        "searchresults": "Αποτελέσματα αναζήτησης",
        "notextmatches": "Δεν υπάρχουν αντίστοιχα κείμενα σελίδων.",
        "prevn": "{{PLURAL:$1|$1}} προηγουμένων",
        "nextn": "{{PLURAL:$1|$1}} επομένων",
+       "prev-page": "προηγούμενη σελίδα",
+       "next-page": "επόμενη σελίδα",
        "prevn-title": "{{PLURAL:$1|Προηγούμενο $1 αποτέλεσμα|Προηγούμενα $1 αποτελέσματα}}",
        "nextn-title": "{{PLURAL:$1|Επόμενο $1 αποτέλεσμα|Επόμενα $1 αποτελέσματα}}",
        "shown-title": "Εμφάνιση $1 {{PLURAL:$1|αποτελέσματος|αποτελεσμάτων}} ανά σελίδα",
        "prefs-personal": "Στοιχεία χρήστη",
        "prefs-rc": "Πρόσφατες αλλαγές και εμφάνιση πολύ σύντομων άρθρων",
        "prefs-watchlist": "Λίστα παρακολούθησης",
+       "prefs-editwatchlist": "Επεξεργασία λίστας παρακολούθησης",
+       "prefs-editwatchlist-label": "Επεξεργασία καταχωρίσεων στη λίστα παρακολούθησής σας:",
+       "prefs-editwatchlist-edit": "Προβολή και κατάργηση τίτλων στη λίστα παρακολούθησής σας",
+       "prefs-editwatchlist-raw": "Επεξεργασία πηγαίας λίστας παρακολούθησης",
+       "prefs-editwatchlist-clear": "Εκκαθάριση της λίστας παρακολούθησής σας",
        "prefs-watchlist-days": "Ημέρες προς εμφάνιση στη λίστα παρακολούθησης:",
        "prefs-watchlist-days-max": "Mέγιστο $1 {{PLURAL:$1|ημέρα|ημέρες}}",
        "prefs-watchlist-edits": "Αριθμός επεξεργασιών προς εμφάνιση στην εκτεταμένη λίστα παρακολούθησης:",
        "group": "Ομάδα:",
        "group-user": "Χρήστες",
        "group-autoconfirmed": "Αυτοεπιβεβαιωμένοι χρήστες",
-       "group-bot": "Bots",
+       "group-bot": "Ρομπότ",
        "group-sysop": "Διαχειριστές",
        "group-bureaucrat": "Γραφειοκράτες",
        "group-suppress": "Παρατηρητές",
        "group-all": "(όλοι)",
-       "group-user-member": "χρήστης",
-       "group-autoconfirmed-member": "αυτοεπιβεβαιωμένος χρήστης",
+       "group-user-member": "{{GENDER:$1|χρήστης|χρήστρια}}",
+       "group-autoconfirmed-member": "{{GENDER:$1|αυτοεπιβεβαιωμένος χρήστης|αυτοεπιβεβαιωμένη χρήστρια}}",
        "group-bot-member": "ρομπότ",
-       "group-sysop-member": "διαχειριστές",
-       "group-bureaucrat-member": "γραφειοκράτης",
-       "group-suppress-member": "{{GENDER:$1|επιτηρητής}}",
+       "group-sysop-member": "{{GENDER:$1|διαχειριστής|διαχειρίστρια}}",
+       "group-bureaucrat-member": "{{GENDER:$1|γραφειοκράτης|γραφειοκράτις}}",
+       "group-suppress-member": "{{GENDER:$1|επιτηρητής|επιτηρήτρια}}",
        "grouppage-user": "{{ns:project}}:Χρήστες",
        "grouppage-autoconfirmed": "{{ns:project}}:Αυτόματα επιβεβαιωμένοι χρήστες",
        "grouppage-bot": "{{ns:project}}:Bots",
        "right-delete": "Διαγραφή σελίδων",
        "right-bigdelete": "Διαγραφή σελίδων με εκτεταμένο ιστορικό",
        "right-deletelogentry": "Διαγραφή και επαναφορά διαγραφής συγκεκριμένων καταχωρήσεων στη λίστα καταγραφών",
-       "right-deleterevision": "Î\94ιαγÏ\81αÏ\86ή ÎºÎ±Î¹ ÎµÏ\80αναÏ\86οÏ\81ά Ï\83Ï\85γκεκÏ\81ιμένÏ\89ν ÎµÎºÎ´Ï\8cσεων σελίδων",
+       "right-deleterevision": "Î\94ιαγÏ\81αÏ\86ή ÎºÎ±Î¹ ÎµÏ\80αναÏ\86οÏ\81ά Ï\83Ï\85γκεκÏ\81ιμένÏ\89ν Î±Î½Î±Î¸ÎµÏ\89Ï\81ήσεων σελίδων",
        "right-deletedhistory": "Προβολή διαγραμμένων εκδόσεων του ιστορικού, χωρίς το σχετικό κείμενο",
        "right-deletedtext": "Εμφάνιση διεγραμμένου κειμένου και αλλαγών ανάμεσα στις διεγραμμένες εκδόσεις",
        "right-browsearchive": "Αναζήτηση στις διαγραμμένες σελίδες",
        "right-undelete": "Ανάκληση διαγραφής μίας σελίδας",
-       "right-suppressrevision": "Προβολή, απόκρυψη και επανεμφάνιση συγκεκριμένων αναθεωρήσεων σελίδων από κάθε χρήστη",
+       "right-suppressrevision": "Προβολή, απόκρυψη και επανεμφάνιση από οποιονδήποτε χρήστη συγκεκριμένων αναθεωρήσεων σελίδων",
        "right-viewsuppressed": "Προβολή αναθεωρήσεων κρυμμένων από κάθε χρήστη",
        "right-suppressionlog": "Προβολή ιδιωτικών καταγραφών",
        "right-block": "Φραγή άλλων χρηστών από την επεξεργασία",
        "right-protect": "Αλλαγή των επιπέδων προστασίας και επεξεργασία προστατευμένων σελίδων",
        "right-editprotected": "Επεξεργασία προστατευμένων σελίδων (χωρίς διαδοχική προστασία)",
        "right-editsemiprotected": "Επεξεργασία προστατευμένων σελίδων ως \"{{int:protect-level-autoconfirmed}}\"",
+       "right-editcontentmodel": "Επεξεργασίας του μοντέλου περιεχόμενου σελίδας",
        "right-editinterface": "Επεξεργασία της διασύνδεσης χρήστη",
        "right-editusercssjs": "Μεταγραφή των αρχείων CSS και JS άλλων χρηστών",
        "right-editusercss": "Μεταγραφή των αρχείων CSS άλλων χρηστών",
        "right-override-export-depth": "Εξαγωγή σελίδων συμπεριλαμβάνοντας συνδεδεμένες σελίδες έως ένα βάθος 5 επιπέδων",
        "right-sendemail": "Αποστολή ηλεκτρονικού μηνύματος σε άλλους χρήστες",
        "right-passwordreset": "Εμφάνιση email επαναφοράς κωδικού πρόσβασης",
+       "right-managechangetags": "Δημιουργία και διαγραφή [[Special:Tags|ετικετών]] από τη βάση δεδομένων",
+       "right-applychangetags": "Εφαρμόστε [[Special:Tags|ετικέτες]] μαζί με τις αλλαγές",
+       "right-changetags": "Προσθέστε και αφαιρέστε αυθαίρετες [[Special:Tags|ετικέτες]] σε μεμονωμένες εκδόσεις και καταχωρήσεις καταγραφών",
        "newuserlogpage": "Αρχείο καταγραφών δημιουργίας χρηστών",
        "newuserlogpagetext": "Αυτή είναι μια καταγραφή δημιουργίας χρηστών.",
        "rightslog": "Αρχείο καταγραφών δικαιωμάτων χρηστών",
        "action-viewmywatchlist": "προβάλετε τη λίστα παρακολούθησής σας",
        "action-viewmyprivateinfo": "προβάλετε τις προσωπικές σας πληροφορίες",
        "action-editmyprivateinfo": "επεξεργαστείτε τις προσωπικές σας πληροφορίες",
+       "action-editcontentmodel": "επεξεργαστείτε το μοντέλο περιεχομένου σελίδας",
+       "action-managechangetags": "δημιουργία και διαγραφή ετικετών από τη βάση δεδομένων",
+       "action-applychangetags": "εφαρμογή ετικετών μαζί με τις αλλαγές σας",
+       "action-changetags": "πρόσθεση και αφαίρεση αυθαίρετων ετικετών σε μεμονωμένες εκδόσεις και καταχωρήσεις καταγραφών",
        "nchanges": "$1 {{PLURAL:$1|αλλαγή|αλλαγές}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|από την τελευταία επίσκεψη}}",
        "enhancedrc-history": "ιστορικό",
        "fileexists-shared-forbidden": "Ένα αρχείο με αυτό το όνομα υπάρχει ήδη στο χώρο φύλαξης κοινών αρχείων.\nΕάν θέλετε παρ' όλ' αυτά να επιφορτώσετε το δικό σας αρχείο, παρακαλούμε πηγαίνετε πίσω και χρησιμοποιήστε ένα νέο όνομα. [[File:$1|thumb|center|$1]]",
        "file-exists-duplicate": "Αυτό το αρχείο είναι διπλότυπο {{PLURAL:$1|αυτού του αρχείου|αυτών των αρχείων}}:",
        "file-deleted-duplicate": "Αρχείο παρόμοιο με αυτό εδώ ([[:$1]]) έχει προηγουμένως διαγραφεί. Θα πρέπει να ελέγξετε το ιστορικό διαγραφής του πριν να προχωρήσετε στην επαναφόρτωσή του.",
+       "file-deleted-duplicate-notitle": "Ένα αρχείο πανομοιότυπο με αυτό έχει προηγουμένως διαγραφεί, και ο τίτλος έχει κατασταλεί.\nΘα πρέπει να ζητήσετε από κάποιον με την δυνατότητα προβολής κατεσταλμένου αρχείου δεδομένων για να εξετάσει την κατάσταση προτού προχωρήσετε σε επαναφόρτωση του.",
        "uploadwarning": "Προειδοποίηση φόρτωσης",
        "uploadwarning-text": "Παρακαλώ αλλάξτε την περιγραφή του αρχείου παρακάτω και προσπαθήστε ξανά.",
        "savefile": "Αποθήκευση αρχείου",
        "backend-fail-connect": "Δεν ήταν δυνατή η σύνδεση στο αντικείμενο αποθήκευσης \"$1\".",
        "backend-fail-internal": "Παρουσιάστηκε ένα άγνωστο σφάλμα στην αποθήκευση παρασκηνίου \"$1\".",
        "backend-fail-contenttype": "Δεν μπόρεσε να προσδιοριστεί ο τύπος περιεχομένου του αρχείου για την αποθήκευση σε \"$1\".",
+       "backend-fail-batchsize": "Το σύστημα αποθήκευσης δέχθηκε ένα μαζικό πακέτο $1 {{PLURAL:$1|λειτουργίας αρχείου|λειτουργιών αρχείου}}; το όριο είναι $2 {{PLURAL:$2|λειτουργία|λειτουργίες}}.",
        "backend-fail-usable": "Δεν ήταν δυνατή η ανάγνωση ή εγγραφή του αρχείου \"$1\" λόγω ανεπαρκών δικαιωμάτων ή απουσίας καταλόγων/φακέλων.",
        "filejournal-fail-dbconnect": "Δεν ήταν δυνατή η σύνδεση με τη βάση δεδομένων εγγραφών για αποθηκευτικό σύστημα υποστήριξης \"$1\".",
        "filejournal-fail-dbquery": "Δεν ήταν δυνατή η ενημέρωση της βάσης δεδομένων εγγραφών για αποθηκευτικό σύστημα υποστήριξης \"$1\".",
        "lockmanager-fail-deletelock": "Δεν μπόρεσε να διαγράψει το αρχείο κλειδώματος για το \"$1\".",
        "lockmanager-fail-acquirelock": "Δεν ήταν δυνατή η απόκτηση κλειδώματος για \"$1\".",
        "lockmanager-fail-openlock": "Δεν μπόρεσε να ανοίξει το αρχείο κλειδώματος για το \"$1\".",
+       "lockmanager-fail-releaselock": "Δεν ήταν δυνατή η έκδοση κλειδώματος για \"$1\".",
+       "lockmanager-fail-db-bucket": "Δεν ήταν δυνατή η εντόπιση αρκετών αρχείων δεδομένων κλειδωμάτων στο σύστημα $1.",
+       "lockmanager-fail-db-release": "Δεν ήταν δυνατή η έκδοση κλειδωμάτων για τη βάση δεδομένων $1.",
+       "lockmanager-fail-svr-acquire": "Δεν ήταν δυνατή η απόκτηση κλειδωμάτων στο σέρβερ $1.",
        "zip-file-open-error": "Παρουσιάστηκε σφάλμα κατά το άνοιγμα του αρχείου για ZIP ελέγχους.",
        "zip-wrong-format": "Το καθορισμένο αρχείο δεν ήταν  αρχείο ZIP.",
        "zip-bad": "Το αρχείο είναι κατεστραμμένο ή με άλλο τρόπο μη αναγνώσιμο αρχείο ZIP.! N! Δεν μπορεί να ελεγχθεί  δεόντως ως προς την ασφάλεια.",
        "wantedpages-badtitle": "Μη εγκυρός τίτλος στο σύνολο αποτελέσματος: $1",
        "wantedfiles": "Ζητούμενα αρχεία",
        "wantedfiletext-cat": "Τα ακόλουθα αρχεία χρησιμοποιούνται αλλά δεν υπάρχουν. Αρχεία από εξωτερικά αποθετήρια ενδέχεται να παρατίθενται παρότι υπάρχουν. Κάθε τέτοιες λανθασμένες αναφορές θα <del>διαγραμμίζονται</del>. Επιπλέον, σελίδες που ενσωματώνουν αρχεία που δεν υπάρχουν παρατίθενται στο [[:$1]].",
+       "wantedfiletext-cat-noforeign": "Τα ακόλουθα αρχεία χρησιμοποιούνται αλλά δεν υπάρχουν. Επιπλέον, οι σελίδες που ενσωματώνουν αρχεία που δεν υπάρχουν παρατίθενται στο [[:$1]].",
        "wantedfiletext-nocat": "Τα ακόλουθα αρχεία χρησιμοποιούνται αλλά δεν υπάρχουν. Πέρα από τα υπάρχοντα ενδέχεται να έχουν καταχωριστεί και αρχεία από εξωτερικές πηγές λογισμικού. Τέτοιες ψευδο-υπαρκτές καταχωρίσεις θα εμφανίζονται <del>διαγραμμισμένες</del>.",
+       "wantedfiletext-nocat-noforeign": "Τα ακόλουθα αρχεία χρησιμοποιούνται αλλά δεν υπάρχουν.",
        "wantedtemplates": "Ζητούμενα πρότυπα",
        "mostlinked": "Σελίδες με τους περισσότερους συνδέσμους προς αυτές",
        "mostlinkedcategories": "Περισσότερο χρησιμοποιούμενες κατηγορίες",
        "alllogstext": "Εποπτική εμφάνιση όλων των ενεργειών φόρτωσης αρχείων, διαγραφής, προστασίας, φραγής και όλων των καταγραφών των διαχειριστών στο αρχείο γεγονότων του {{SITENAME}}. Μπορείτε να περιορίσετε τα αποτελέσματα που εμφανίζονται επιλέγοντας συγκεκριμένο είδος γεγονότων, όνομα χρήστη ή τη σελίδα που επηρεάστηκε.",
        "logempty": "Δεν υπάρχουν στοιχεία που να ταιριάζουν στο αρχείο καταγραφών.",
        "log-title-wildcard": "Αναζήτησε τίτλους που αρχίζουν με αυτό το κείμενο",
-       "showhideselectedlogentries": "Εμφάνιση/απόκρυψη επιλεγμένων καταχωρήσεων στη λίστα καταγραφών",
+       "showhideselectedlogentries": "Αλλαγή ορατότητας των επιλεγμένων καταχωρήσεων στο αρχείο καταγραφής συμβάντων",
+       "log-edit-tags": "Επεξεργασία ετικετών των επιλεγμένων καταχωρήσεων του αρχείου καταγραφής",
        "allpages": "Όλες οι σελίδες",
        "nextpage": "Επόμενη σελίδα ($1)",
        "prevpage": "Προηγούμενη σελίδα ($1)",
        "namespace": "Ονοματοχώρος:",
        "invert": "Αντιστροφή επιλογής",
        "tooltip-invert": "Επιλέξτε αυτό το πλαίσιο για να αποκρύψετε αλλαγές σε σελίδες μέσα στον επιλεγμένο χώρο ονομάτων (και των συσχετικών χώρων ονομάτων, εάν επιλεγχθούν)",
+       "tooltip-whatlinkshere-invert": "Ενεργοποιήστε αυτό το πλαίσιο ελέγχου για να αποκρύψετε συνδέσμους από σελίδες εντός του επιλεγμένου ονοματοχώρου.",
        "namespace_association": "Συσχετισμένος ονοματοχώρος",
        "tooltip-namespace_association": "Επιλέξτε αυτό το κουτάκι για να συμπεριλάβετε τον ονοματοχώρο συζήτησης ή θέματος που σχετίζεται με τον επιλεγμένο ονοματοχώρο",
        "blanknamespace": "(Κύριος ονοματοχώρος)",
        "unblocked": "Η φραγή για τον/την [[User:$1|$1]] έχει τερματιστεί",
        "unblocked-range": "$1 έχει αρθεί η φραγή",
        "unblocked-id": "Η φραγή του $1 έχει τερματιστεί",
+       "unblocked-ip": "Έχει αρθεί η φραγή της [[Special:Contributions/$1|$1]].",
        "blocklist": "Αποκλεισμένοι χρήστες",
        "ipblocklist": "Αποκλεισμένοι χρήστες",
        "ipblocklist-legend": "Εύρεση ενός χρήστη που έχει υποστεί φραγή",
        "thumbnail-temp-create": "Αδύνατη η δημιουργία προσωρινού αρχείου μικρογραφίας",
        "thumbnail-dest-create": "Αδύνατη η αποθήκευση της μικρογραφίας στον προορισμό",
        "thumbnail_invalid_params": "Άκυρες παράμετροι μικρογραφίας",
+       "thumbnail_toobigimagearea": "Αρχείο με διαστάσεις μεγαλύτερες από $1",
        "thumbnail_dest_directory": "Αδυναμία δημιουργίας καταλόγου προορισμού",
        "thumbnail_image-type": "Δεν υποστηρίζεται αυτός ο τύπος εικόνας",
        "thumbnail_gd-library": "Ατελής ενεργοποίηση της βιβλιοθήκης GD: αγνοούμενη λειτουργία $1",
        "import-interwiki-history": "Αντιγραφή όλων των εκδόσεων του ιστορικού για αυτή τη σελίδα",
        "import-interwiki-templates": "Συμπερίληψη όλων των προτύπων",
        "import-interwiki-submit": "Εισαγωγή",
+       "import-mapping-default": "Εισαγωγή στις προεπιλεγμένες τοποθεσίες",
+       "import-mapping-namespace": "Εισαγωγή σε ονοματοχώρο:",
+       "import-mapping-subpage": "Εισαγωγή ως υποσελίδες της ακόλουθης σελίδας:",
        "import-upload-filename": "Όνομα αρχείου:",
        "import-comment": "Σχόλιο:",
        "importtext": "Παρακαλούμε εξαγάγετε το αρχείο από το πηγαίο wiki (χρησιμοποιώντας το [[Special:Export|εργαλείο εξαγωγής]]). \nΑποθηκεύστε το στον υπολογιστή σας και ανεβάστε το εδώ.",
        "import-error-invalid": "Η σελίδα «$1» δεν εισήχθη επειδή το όνομά με το οποίο επρόκειτο να εισαχθεί δεν είναι έγκυρο σε αυτό το wiki.",
        "import-options-wrong": "Λάθος {{PLURAL:$2|επιλογή|επιλογές}}: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "Η δεδομένη ριζική σελίδα είναι μη έγκυρος τίτλος",
+       "import-rootpage-nosubpage": "Ο ονοματοχώρος «$1» της βασικής σελίδας δεν επιτρέπει υποσελίδες.",
        "importlogpage": "Αρχείο καταγραφής εισαγωγών",
        "importlogpagetext": "Διαχειριστικές εισαγωγές σελίδων με ιστορικό επεξεργασίας από άλλα wiki.",
        "import-logentry-upload-detail": "{{PLURAL:$1|Εισήχθη $1 αναθεώρηση|Εισήχθησαν $1 αναθεωρήσεις}}",
        "javascripttest": "Δοκιμή JavaScript",
        "javascripttest-pagetext-noframework": "Αυτή η σελίδα είναι δεσμευμένη για την εκτέλεση δοκιμών σε JavaScript.",
        "javascripttest-pagetext-unknownframework": "Άγνωστο πλαίσιο δοκιμών \" $1 \".",
+       "javascripttest-pagetext-unknownaction": "Άγνωστη ενέργεια «$1».",
        "javascripttest-pagetext-frameworks": "Παρακαλώ επιλέξτε ένα από τα ακόλουθα πλαίσια δοκιμών: $1",
        "javascripttest-pagetext-skins": "Επιλέξτε ένα skin για να εκτελέσετε δοκιμές με αυτό:",
        "javascripttest-qunit-intro": "Ανατρέξτε στην ενότητα [ $1 τεκμηρίωση δοκιμών] στο mediawiki.org.",
        "pageinfo-protect-cascading-yes": "Ναι",
        "pageinfo-protect-cascading-from": "Οι προστασίες ξεκινούν τη διαδοχή τους από",
        "pageinfo-category-info": "Πληροφορίες κατηγορίας",
+       "pageinfo-category-total": "Συνολικός αριθμός μελών",
        "pageinfo-category-pages": "Αριθμός σελίδων",
        "pageinfo-category-subcats": "Αριθμός υποκατηγοριών",
        "pageinfo-category-files": "Αριθμός αρχείων",
        "markaspatrolleddiff": "Να σημειωθεί 'υπό παρακολούθηση'",
-       "markaspatrolledtext": "Î\9dα Ï\83ημειÏ\89θεί Î±Ï\85Ï\84Ï\8c Ï\84ο Î¬Ï\81θÏ\81ο Ï\89Ï\82 'Ï\85Ï\80Ï\8c Ï\80αÏ\81ακολοÏ\8dθηÏ\83η'.",
+       "markaspatrolledtext": "ΣήμανÏ\83η Î±Ï\85Ï\84ήÏ\82 Ï\84ηÏ\82 Ï\83ελίδαÏ\82 Ï\89Ï\82 ÎµÎ»ÎµÎ³Î¼Î­Î½Î·Ï\82",
        "markedaspatrolled": "Σημειωμένο ως 'υπό παρακολούθηση'",
        "markedaspatrolledtext": "Η επιλεγμένη αναθεώρηση της [[:$1]] έχει σημειωθεί ως ελεγμένη.",
        "rcpatroldisabled": "Η λειτουργία 'Παρακολούθηση Πρόσφατων Αλλαγών' έχει απενεργοποιηθεί.",
        "version-entrypoints": "Διευθύνσεις URL σημείων εισόδου",
        "version-entrypoints-header-entrypoint": "Σημείο εισόδου",
        "version-entrypoints-header-url": "URL",
+       "version-libraries": "Εγκαταστημένες βιβλιοθήκες",
+       "version-libraries-library": "Βιβλιοθήκη",
+       "version-libraries-version": "Έκδοση",
        "redirect": "Ανακατεύθυνση κατά αρχείο, χρήστη, σελίδα ή αναγνωριστικό αναθεώρησης",
        "redirect-legend": "Ανακατεύθυνση σε ένα αρχείο ή μια σελίδα",
        "redirect-submit": "Μετάβαση",
        "tags-tag": "Όνομα ετικέτας",
        "tags-display-header": "Εμφάνιση στις λίστες αλλαγής",
        "tags-description-header": "Πλήρης περιγραφή του νοήματος",
+       "tags-source-header": "Πηγή",
        "tags-active-header": "Ενεργή;",
        "tags-hitcount-header": "Αλλαγές με ετικέτα",
+       "tags-actions-header": "Ενέργειες",
        "tags-active-yes": "Ναι",
        "tags-active-no": "Όχι",
+       "tags-source-none": "Όχι σε χρήση πλέον",
        "tags-edit": "επεξεργασία",
        "tags-hitcount": "$1 {{PLURAL:$1|αλλαγή|αλλαγές}}",
+       "tags-create-heading": "Δημιουργία νέας ετικέτας",
+       "tags-create-tag-name": "Όνομα ετικέτας:",
+       "tags-create-reason": "Αιτία:",
+       "tags-create-submit": "Δημιουργία",
+       "tags-create-no-name": "Πρέπει να καθορίσετε όνομα ετικέτας.",
+       "tags-create-invalid-chars": "Τα ονόματα ετικετών δεν πρέπει να περιέχουν κόμματα (<code>,</code>) ή καθέτους (<code>/</code>).",
+       "tags-create-invalid-title-chars": "Τα ονόματα ετικετών δεν πρέπει να περιέχουν χαρακτήρες που δεν είναι δυνατό να χρησιμοποιηθούν σε τίτλους σελίδων.",
+       "tags-create-already-exists": "Η ετικέτα «$1» υπάρχει ήδη.",
+       "tags-delete-title": "Διαγραφή ετικέτας",
+       "tags-delete-reason": "Αιτία:",
+       "tags-delete-submit": "Μη αναστρέψιμη διαγραφή αυτής της ετικέτας",
+       "tags-delete-not-found": "Η ετικέτα «$1» δεν υπάρχει.",
+       "tags-activate-title": "Ενεργοποίηση ετικέτας",
+       "tags-activate-reason": "Αιτία:",
+       "tags-activate-not-allowed": "Δεν είναι δυνατή η ενεργοποίηση της ετικέτας «$1».",
+       "tags-activate-not-found": "Η ετικέτα «$1» δεν υπάρχει.",
+       "tags-activate-submit": "Ενεργοποίηση",
+       "tags-deactivate-title": "Απενεργοποίηση ετικέτας",
+       "tags-deactivate-question": "Πρόκειται να απενεργοποιήσετε την ετικέτα «$1».",
+       "tags-deactivate-reason": "Αιτία:",
+       "tags-deactivate-not-allowed": "Δεν είναι δυνατή η απενεργοποίηση της ετικέτας «$1».",
+       "tags-deactivate-submit": "Απενεργοποίηση",
+       "tags-apply-no-permission": "Δεν έχετε τα απαραίτητα δικαιώματα για να εφαρμόσετε αλλαγή ετικετών μαζί με τις αλλαγές σας.",
+       "tags-apply-not-allowed-one": "Η ετικέτα «$1» δεν επιτρέπεται να εφαρμοστεί με μη αυτόματο τρόπο.",
+       "tags-apply-not-allowed-multi": "{{PLURAL:$2|Η ακόλουθη ετικέτα δεν επιτρέπεται να εφαρμοστεί|Οι ακόλουθες ετικέτες δεν επιτρέπεται να εφαρμοστούν}} με μη αυτόματο τρόπο: $1",
+       "tags-edit-title": "Επεξεργασία ετικετών",
+       "tags-edit-manage-link": "Διαχείριση ετικετών",
+       "tags-edit-existing-tags": "Υπάρχουσες ετικέτες:",
+       "tags-edit-existing-tags-none": "''Καμία''",
+       "tags-edit-new-tags": "Νέες ετικέτες:",
+       "tags-edit-add": "Προσθήκη αυτών των ετικετών:",
+       "tags-edit-remove": "Κατάργηση αυτών των ετικετών:",
+       "tags-edit-remove-all-tags": "(αφαίρεση όλων των ετικετών)",
+       "tags-edit-chosen-placeholder": "Επιλέξτε μερικές ετικέτες",
+       "tags-edit-chosen-no-results": "Δεν βρέθηκαν ετικέτες που να ταιριάζουν",
+       "tags-edit-reason": "Αιτία:",
+       "tags-edit-nooldid-title": "Μη έγκυρη αναθεώρηση προορισμού",
+       "tags-edit-none-selected": "Παρακαλώ επιλέξτε τουλάχιστον μία ετικέτα για να προσθέσετε ή να αφαιρέσετε.",
        "comparepages": "Σύγκριση σελίδων",
        "compare-page1": "Σελίδα 1",
        "compare-page2": "Σελίδα 2",
        "sqlite-no-fts": "$1 χωρίς την υποστήριξη αναζήτησης πλήρους κειμένου",
        "logentry-delete-delete": "{{GENDER:$1|Ο|Η}} $1 διέγραψε τη σελίδα $3",
        "logentry-delete-restore": "Ο/Η $1 αποκατέστησε τη σελίδα $3",
-       "logentry-delete-event": " $1 {{GENDER:$1|άλλαξε}} την ορατότητα σε {{PLURAL:$5|ένα γεγονός καταγραφής|$5 γεγονότα καταγραφής}} στο $3: $4",
-       "logentry-delete-revision": "$1 {{GENDER:$2|άλλαξε}} την ορατότητα για {{PLURAL:$5|μία έκδοση|$5 εκδόσεις}} στη σελίδα $3: $4",
+       "logentry-delete-event": "{{GENDER:$2|Ο|Η}} $1 άλλαξε την ορατότητα {{PLURAL:$5|ενός καταγραφόμενου συμβάντος|$5 καταγραφόμενων συμβάντων}} στο $3: $4",
+       "logentry-delete-revision": "{{GENDER:$2|Ο|Η}} $1 άλλαξε την ορατότητα {{PLURAL:$5|μίας αναθεώρησης|$5 αναθεωρήσεων}} στη σελίδα $3: $4",
        "logentry-delete-event-legacy": "{{GENDER:$2|Ο|Η}} $1 άλλαξε την ορατότητα των καταγραφόμενων συμβάντων στη σελίδα $3",
-       "logentry-delete-revision-legacy": "$1 {{GENDER:$2|άλλαξε}} την  ορατότητα των αναθεωρήσεων στη σελίδα $3",
+       "logentry-delete-revision-legacy": "{{GENDER:$2|Ο|Η}} $1 άλλαξε την ορατότητα των αναθεωρήσεων στη σελίδα $3",
        "logentry-suppress-delete": "$1 {{GENDER:$2|διέγραψε}} τη σελίδα $3",
        "logentry-suppress-event": "{{Gender:$2|Ο|Η}} $1 άλλαξε μυστικά την ορατότητα {{PLURAL:$5|ενός καταγραφόμενου συμβάντος|$5 καταγραφόμενων συμβάντων}} στη σελίδα $3: $4",
        "logentry-suppress-revision": "{{Gender:$2|Ο|Η}} $1 άλλαξε μυστικά την ορατότητα {{PLURAL:$5|μίας αναθεώρησης|$5 αναθεωρήσεων}} στη σελίδα $3: $4",
        "revdelete-content-unhid": "το περιεχόμενο έπαψε να είναι κρυφό",
        "revdelete-summary-unhid": "η σύνοψη επεξεργασίας έπαψε να είναι κρυφή",
        "revdelete-uname-unhid": "το όνομα χρήστη έπαψε να είναι κρυφό",
-       "revdelete-restricted": "εÏ\86άρμοσε περιορισμούς στους sysops",
+       "revdelete-restricted": "εÏ\86ήρμοσε περιορισμούς στους sysops",
        "revdelete-unrestricted": "αφαίρεσε περιορισμούς στους sysops",
+       "logentry-block-unblock": "{{GENDER:$2|Ο|Η}} $1 αφαίρεσε τη φραγή {{GENDER:$4|του|της}} $3",
        "logentry-move-move": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στη $4",
        "logentry-move-move-noredirect": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στη $4 χωρίς να αφήσει ανακατεύθυνση",
        "logentry-move-move_redir": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στη $4 πάνω από την ανακατεύθυνση",
        "logentry-upload-upload": "{{GENDER:$2|Ο|Η}} $1 ανέβασε το $3",
        "logentry-upload-overwrite": "{{GENDER:$2|Ο|Η}} $1 ανέβασε μια νέα έκδοση του $3",
        "logentry-upload-revert": "{{GENDER:$2|Ο|Η}} $1 ανέβασε το $3",
+       "log-name-managetags": "Αρχείο καταγραφών διαχείρισης ετικετών",
+       "logentry-managetags-create": "{{GENDER:$2|Ο|Η}} $1 δημιούργησε την ετικέτα «$4»",
+       "log-name-tag": "Αρχείο καταγραφών ετικετών",
        "rightsnone": "(κανένα)",
        "revdelete-summary": "επεξεργασία σύνοψης",
        "feedback-adding": "Προσθήκη σχολίων στην σελίδα...",
+       "feedback-back": "Πίσω",
        "feedback-bugcheck": "Ωραία! Ελέγξτε μόνο ότι δεν είναι ήδη ένα από τα [$1 γνωστά σφάλματα].",
        "feedback-bugnew": "Έλεγξα. Αναφέρετε ένα νέο σφάλμα",
        "feedback-bugornote": "Εάν είστε έτοιμοι να περιγράψετε ένα τεχνικό πρόβλημα λεπτομερώς παρακαλούμε [$1  κάντε μια αναφορά σφάλματος].\nΔιαφορετικά, μπορείτε να χρησιμοποιήσετε την παρακάτω απλή φόρμα. Το σχόλιό σας θα προστεθεί στη σελίδα \"[$3  $2]\", μαζί με το όνομα χρήστη σας.",
        "feedback-cancel": "Ακύρωση",
        "feedback-close": "Ολοκληρώθηκε",
+       "feedback-error-title": "Σφάλμα",
        "feedback-error1": "Σφάλμα: Μη αναγνωρίσιμο αποτέλεσμα από το API",
        "feedback-error2": "Σφάλμα: Η επεξεργασία απέτυχε",
        "feedback-error3": "Σφάλμα: Καμία απάντηση από το API",
        "feedback-subject": "Θέμα:",
        "feedback-submit": "Υποβολή",
        "feedback-thanks": "Ευχαριστούμε! Τα σχόλιά σας έχουν καταχωρηθεί στη σελίδα \"[$2 $1]\".",
+       "feedback-thanks-title": "Σας ευχαριστούμε!",
        "searchsuggest-search": "Αναζήτηση",
        "searchsuggest-containing": "περιέχει...",
        "api-error-badaccess-groups": "Δεν επιτρέπεται να ανεβάσετε αρχεία σε αυτό το wiki.",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''απενεργοποιημένο''')",
        "mediastatistics": "Στατιστικά πολυμέσων",
        "mediastatistics-summary": "Στατιστικά για τύπους ανεβασμένων αρχείων. Περιέχει μόνο την πλέον πρόσφατη έκδοση κάθε αρχείου. Δεν συμπεριλαμβάνονται παλιές ή διαγεγραμμένες εκδόσεις αρχείων.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 bytes}} ($2, $3%)",
        "mediastatistics-table-mimetype": "Τύποι MIME",
        "mediastatistics-table-extensions": "Πιθανές επεκτάσεις",
        "mediastatistics-table-count": "Αριθμός αρχείων",
        "json-error-recursion": "Μία ή περισσότερες αναδρομικές αναφορές στην προς κωδικοποίηση τιμή.",
        "json-error-inf-or-nan": "Μία ή περισσότερες τιμές NAN ή INF στην προς κωδικοποίηση τιμή.",
        "json-error-unsupported-type": "Δόθηκε τιμή τύπου που δεν μπορεί να κωδικοποιηθεί.",
+       "headline-anchor-title": "Σύνδεσμος προς αυτήν την ενότητα",
        "special-characters-group-latin": "Λατινικό",
        "special-characters-group-latinextended": "Προέκταση του λατινικού",
        "special-characters-group-ipa": "ΔΦΑ",
index 2685701..cd40649 100644 (file)
        "badtitletext": "The requested page title was invalid, empty, or an incorrectly linked inter-language or inter-wiki title.\nIt may contain one or more characters that cannot be used in titles.",
        "title-invalid-empty": "The requested page title is empty or contains only the name of a namespace.",
        "title-invalid-utf8": "The requested page title contains an invalid UTF-8 sequence.",
-       "title-invalid-interwiki": "Title contains an interwiki link",
+       "title-invalid-interwiki": "The requested page title contains an interwiki link which cannot be used in titles.",
        "title-invalid-talk-namespace": "The requested page title refers to a talk page that can not exist.",
        "title-invalid-characters": "The requested page title contains invalid characters: \"$1\".",
        "title-invalid-relative": "Title has relative path. Relative page titles (./, ../) are invalid, because they will often be unreachable when handled by user's browser.",
        "title-invalid-magic-tilde": "The requested page title contains invalid magic tilde sequence (<nowiki>~~~</nowiki>).",
-       "title-invalid-too-long": "The requested page title is too long. It must be no longer than $1 bytes in UTF-8 encoding.",
+       "title-invalid-too-long": "The requested page title is too long. It must be no longer than $1 {{PLURAL:$1|byte|bytes}} in UTF-8 encoding.",
        "title-invalid-leading-colon": "The requested page title contains an invalid colon at the beginning.",
        "perfcached": "The following data is cached and may not be up to date. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.",
        "perfcachedts": "The following data is cached, and was last updated $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.",
        "content-model-json": "JSON",
        "content-json-empty-object": "Empty object",
        "content-json-empty-array": "Empty array",
+       "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>.",
        "expensive-parserfunction-warning": "<strong>Warning:</strong> This page contains too many expensive parser function calls.\n\nIt should have less than $2 {{PLURAL:$2|call|calls}}, there {{PLURAL:$1|is now $1 call|are now $1 calls}}.",
        "userrights-lookup-user": "Manage user groups",
        "userrights-user-editname": "Enter a username:",
        "editusergroup": "Edit user groups",
-       "editinguser": "Changing user rights of user <strong>[[User:$1|$1]]</strong> $2",
+       "editinguser": "Changing user rights of {{GENDER:$1|user}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Edit user groups",
        "saveusergroups": "Save user groups",
        "userrights-groupsmember": "Member of:",
        "uploaddisabledtext": "File uploads are disabled.",
        "php-uploaddisabledtext": "File uploads are disabled in PHP.\nPlease check the file_uploads setting.",
        "uploadscripted": "This file contains HTML or script code that may be erroneously interpreted by a web browser.",
+       "upload-scripted-pi-callback": "Cannot upload a file that contains XML-stylesheet processing instruction.",
+       "uploaded-script-svg": "Found scriptable element \"$1\" in the uploaded SVG file.",
+       "uploaded-hostile-svg": "Found unsafe CSS in the style element of uploaded SVG file.",
+       "uploaded-event-handler-on-svg": "Setting event-handler attributes <code>$1=\"$2\"</code> is not allowed in SVG files.",
+       "uploaded-href-attribute-svg": "href attributes <code>&lt;$1 $2=\"$3\"&gt;</code> with non-local target (e.g. http://, javascript:, etc) are not allowed in SVG files.",
+       "uploaded-href-unsafe-target-svg": "Found href to unsafe target <code>&lt;$1 $2=\"$3\"&gt;</code> in the uploaded SVG file.",
+       "uploaded-animate-svg": "Found \"animate\" tag that might be changing href, using the \"from\" attribute <code>&lt;$1 $2=\"$3\"&gt;</code> in the uploaded SVG file.",
+       "uploaded-setting-event-handler-svg": "Setting event-handler attributes is blocked, found <code>&lt;$1 $2=\"$3\"&gt;</code> in the uploaded SVG file.",
+       "uploaded-setting-href-svg": "Using the \"set\" tag to add \"href\" attribute to parent element is blocked.",
+       "uploaded-wrong-setting-svg": "Using the \"set\" tag to add a remote/data/script target to any attribute is blocked. Found <code>&lt;set to=\"$1\"&gt;</code> in the uploaded SVG file.",
+       "uploaded-setting-handler-svg": "SVG that sets the \"handler\" attribute with remote/data/script is blocked. Found <code>$1=\"$2\"</code> in the uploaded SVG file.",
+       "uploaded-remote-url-svg": "SVG that sets any style attribute with remote URL is blocked. Found <code>$1=\"$2\"</code> in the uploaded SVG file.",
+       "uploaded-image-filter-svg": "Found image filter with URL: <code>&lt;$1 $2=\"$3\"&gt;</code> in the uploaded SVG file.",
        "uploadscriptednamespace": "This SVG file contains an illegal namespace \"$1\".",
        "uploadinvalidxml": "The XML in the uploaded file could not be parsed.",
        "uploadvirus": "The file contains a virus!\nDetails: $1",
        "wantedcategories": "Wanted categories",
        "wantedcategories-summary": "",
        "wantedpages": "Wanted pages",
-       "wantedpages-summary": "List of non-existing pages with the most links to them, excluding pages which only have redirects linking to them. For a list of non-existent pages that have redirects linking to them, see [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "List of non-existing pages with the most links to them, excluding pages which only have redirects linking to them. For a list of non-existent pages that have redirects linking to them, see [[{{#special:BrokenRedirects}}|the list of broken redirects]].",
        "wantedpages-badtitle": "Invalid title in result set: $1",
        "wantedfiles": "Wanted files",
        "wantedfiles-summary": "",
        "watchlistedit-normal-submit": "Remove titles",
        "watchlistedit-normal-done": "{{PLURAL:$1|1 title was|$1 titles were}} removed from your watchlist:",
        "watchlistedit-raw-title": "Edit raw watchlist",
-        "watchlistedit-raw-legend": "Edit raw watchlist",
+       "watchlistedit-raw-legend": "Edit raw watchlist",
        "watchlistedit-raw-explain": "Titles on your watchlist are shown below, and can be edited by adding to and removing from the list;\none title per line.\nWhen finished, click \"{{int:Watchlistedit-raw-submit}}\".\nYou can also [[Special:EditWatchlist|use the standard editor]].",
-        "watchlistedit-raw-titles": "Titles:",
-        "watchlistedit-raw-submit": "Update watchlist",
-        "watchlistedit-raw-done": "Your watchlist has been updated.",
-        "watchlistedit-raw-added": "{{PLURAL:$1|1 title was|$1 titles were}} added:",
-        "watchlistedit-raw-removed": "{{PLURAL:$1|1 title was|$1 titles were}} removed:",
+       "watchlistedit-raw-titles": "Titles:",
+       "watchlistedit-raw-submit": "Update watchlist",
+       "watchlistedit-raw-done": "Your watchlist has been updated.",
+       "watchlistedit-raw-added": "{{PLURAL:$1|1 title was|$1 titles were}} added:",
+       "watchlistedit-raw-removed": "{{PLURAL:$1|1 title was|$1 titles were}} removed:",
        "watchlistedit-clear-title": "Cleared watchlist",
        "watchlistedit-clear-legend": "Clear watchlist",
        "watchlistedit-clear-explain": "All of the titles will be removed from your watchlist",
        "log-name-pagelang": "Change language log",
        "log-description-pagelang": "This is a log of changes in page languages.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|changed}} page language for $3 from $4 to $5.",
-       "default-skin-not-found": "Whoops! The default skin for your wiki, defined in <code dir=\"ltr\">$wgDefaultSkin</code> as <code>$1</code>, is not available.\n\nYour installation seems to include the following {{PLURAL:$4|skin|skins}}. See [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for information how to enable {{PLURAL:$4|it|them and choose the default}}.\n\n$2\n\n; If you have just installed MediaWiki:\n: You probably installed from git, or directly from the source code using some other method. This is expected. Try installing some skins from [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory], by:\n:* Downloading the [https://www.mediawiki.org/wiki/Download tarball installer], which comes with several skins and extensions. You can copy and paste the <code>skins/</code> directory from it.\n:* Downloading individual skin tarballs from [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Cloning one of the <code>mediawiki/skins/*</code> repositories via git into the <code dir=\"ltr\">skins/</code> directory of your MediaWiki installation.\n: Doing this should not interfere with your git repository if you're a MediaWiki developer.\n\n; If you have just upgraded MediaWiki:\n: MediaWiki 1.24 and newer no longer automatically enables installed skins (see [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). You can paste the following {{PLURAL:$5|line|lines}} into <code>LocalSettings.php</code> to enable {{PLURAL:$5|the|all}} currently installed {{PLURAL:$5|skin|skins}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; If you have just modified <code>LocalSettings.php</code>:\n: Double-check the skin names for typos.",
-       "default-skin-not-found-no-skins": "Whoops! The default skin for your wiki, defined in <code>$wgDefaultSkin</code> as <code>$1</code>, is not available.\n\nYou have no installed skins.\n\n; If you have just installed or upgraded MediaWiki:\n: You probably installed from git, or directly from the source code using some other method. This is expected. MediaWiki 1.24 and newer doesn't include any skins in the main repository. Try installing some skins from [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory], by:\n:* Downloading the [https://www.mediawiki.org/wiki/Download tarball installer], which comes with several skins and extensions. You can copy and paste the <code>skins/</code> directory from it.\n:* Downloading individual skin tarballs from [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Cloning one of the <code>mediawiki/skins/*</code> repositories via git into the <code dir=\"ltr\">skins/</code> directory of your MediaWiki installation.\n: Doing this should not interfere with your git repository if you're a MediaWiki developer. See [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for information how to enable skins and choose the default.\n",
+       "default-skin-not-found": "Whoops! The default skin for your wiki, defined in <code dir=\"ltr\">$wgDefaultSkin</code> as <code>$1</code>, is not available.\n\nYour installation seems to include the following {{PLURAL:$4|skin|skins}}. See [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for information how to enable {{PLURAL:$4|it|them and choose the default}}.\n\n$2\n\n; If you have just installed MediaWiki:\n: You probably installed from git, or directly from the source code using some other method. This is expected. Try installing some skins from [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory], by:\n:* Downloading the [https://www.mediawiki.org/wiki/Download tarball installer], which comes with several skins and extensions. You can copy and paste the <code>skins/</code> directory from it.\n:* Downloading individual skin tarballs from [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n: Doing this should not interfere with your git repository if you're a MediaWiki developer.\n\n; If you have just upgraded MediaWiki:\n: MediaWiki 1.24 and newer no longer automatically enables installed skins (see [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). You can paste the following {{PLURAL:$5|line|lines}} into <code>LocalSettings.php</code> to enable {{PLURAL:$5|the|all}} installed {{PLURAL:$5|skin|skins}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; If you have just modified <code>LocalSettings.php</code>:\n: Double-check the skin names for typos.",
+       "default-skin-not-found-no-skins": "Whoops! The default skin for your wiki, defined in <code>$wgDefaultSkin</code> as <code>$1</code>, is not available.\n\nYou have no installed skins.\n\n; If you have just installed or upgraded MediaWiki:\n: You probably installed from git, or directly from the source code using some other method. This is expected. MediaWiki 1.24 and newer doesn't include any skins in the main repository. Try installing some skins from [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory], by:\n:* Downloading the [https://www.mediawiki.org/wiki/Download tarball installer], which comes with several skins and extensions. You can copy and paste the <code>skins/</code> directory from it.\n:* Downloading individual skin tarballs from [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n: Doing this should not interfere with your git repository if you're a MediaWiki developer. See [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for information how to enable skins and choose the default.\n",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (enabled)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''disabled''')",
        "mediastatistics": "Media statistics",
index a09c0f6..3e900cc 100644 (file)
@@ -38,7 +38,8 @@
                        "Александр Сигачёв",
                        "לערי ריינהארט",
                        "아라",
-                       "Fitoschido"
+                       "Fitoschido",
+                       "Sudastelaro"
                ]
        },
        "tog-underline": "Substreki ligilojn",
        "disclaimers": "Malgarantio",
        "disclaimerpage": "Project:Malgarantia paĝo",
        "edithelp": "Helpo pri redaktado",
+       "helppage-top-gethelp": "Helpo",
        "mainpage": "Ĉefpaĝo",
        "mainpage-description": "Ĉefpaĝo",
        "policy-url": "Project:Regularo",
        "readonly_lag": "La datumbazo estis aŭtomate ŝlosita dum la subdatumbazo atingas la ĉefan datumbazon.",
        "internalerror": "Interna eraro",
        "internalerror_info": "Interna eraro: $1",
+       "internalerror-fatal-exception": "Neriparebla escepto de la tipo \"$1\"",
        "filecopyerror": "Ne povis kopii dosieron  \"$1\" al \"$2\".",
        "filerenameerror": "Ne eblis alinomigi dosieron \"$1\" al \"$2\".",
        "filedeleteerror": "Neeblis forigi dosieron \"$1\".",
        "no-null-revision": "Ne eblis krei novan nulan revizion por paĝo \"$1\"",
        "badtitle": "Fuŝa titolo",
        "badtitletext": "La petita paĝotitolo estis malvalida, malplena, aŭ malĝuste ligita interlingva aŭ intervikia titolo.\nĜi eble enhavas unu aŭ pliaj signoj, kiuj ne povas esti uzataj en titoloj.",
+       "title-invalid-empty": "La postulata paĝotitolo estas malplena aŭ enhavas nur nomon de nomspace.",
+       "title-invalid-utf8": "La postulata paĝotitolo enhavas malvalidan sekvencon de UTF-8.",
+       "title-invalid-interwiki": "La postulata paĝotitolo enhavas intervikian ligilon, kiu ne povas esti uzita en titoloj.",
+       "title-invalid-talk-namespace": "La postulata paĝotitolo ligas al al diskutpaĝo, kiu ne ekzistas.",
+       "title-invalid-characters": "La postulata paĝotitolo enhavas malvalidajn signojn: \"$1\".",
+       "title-invalid-relative": "La titolo enhavas relativan vojon. Relativaj paĝotitoloj (./, ../) estas malvalidaj ĉar ili ofte estus malatingeblaj kiam ilin traktos foliumilo de uzanto.",
+       "title-invalid-magic-tilde": "La postulata paĝotitolo enhavas malvalidan magian tildan sekvencon (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "La postulata paĝotitolo estas tro longa. Ĝi devas esti malpli longa ol $1 {{PLURAL:$1|bitoko|bitokoj}} en la enkodado UTF-8.",
+       "title-invalid-leading-colon": "La postulata paĝotitolo enhavas malvalidan dupunkton en komenco.",
        "perfcached": "La sekvantaj informoj venas el kaŝmemoro kaj eble ne estas ĝisdataj. Maksimumo de {{PLURAL:$1|unu rezulto estas disponebla|$1 rezultoj estas disponeblaj}} en la kaŝmemoro.",
        "perfcachedts": "La jenaj datumoj estas el kaŝmemoro kaj estis laste ĝisdatigitaj $1. Maksimumo de {{PLURAL:$4|unu rezulto estas disponebla|$4 rezultoj estas disponeblaj}} en la kaŝmemoro.",
        "querypage-no-updates": "Ĝisdatigoj por ĉi tiu paĝo estas nune neebligitaj.\nDatumoj ĉi tie ne estos nune refreŝigitaj.",
        "wrongpassword": "Vi tajpis malĝustan pasvorton. Bonvolu provi denove.",
        "wrongpasswordempty": "Vi tajpis malplenan pasvorton. Bonvolu provi denove.",
        "passwordtooshort": "Pasvortoj devas esti longaj almenaŭ  $1 {{PLURAL:$1|1 signon|$1 signojn}}.",
+       "passwordtoolong": "Pasvorto ne povas esti pli longa ol {{PLURAL:$1|1 signo|$1 signoj}}.",
        "password-name-match": "Via pasvorto devas nepre malsami vian salutnomon.",
        "password-login-forbidden": "Estas malpermesite uzi tiun ĉi salutnomon kaj pasvorton.",
        "mailmypassword": "Refari pasvorton",
        "missingcommentheader": "'''Atenton:''' Vi ne provizis temon aŭ subtitolon por ĉi tiu komento.\nSe vi klakos \"Konservi\" denove, via redakto estos konservita sen ĝi.",
        "summary-preview": "Resuma antaŭrigardo:",
        "subject-preview": "Antaŭrigardo de Temo/Subitolo:",
+       "previewerrortext": "Dum provo antaŭrigardi viajn ŝanĝojn okazis eraro.",
        "blockedtitle": "La uzanto estas forbarita.",
        "blockedtext": "'''Via konto aŭ IP-adreso estis forbarita'''\n\nLa forbaro estis farita de $1.\nLa skribita kialo estas ''$2''.\n\n* Komenco de forbaro: $8\n* Findato de forbarado: $6\n* Intencita forbarito: $7\n\nVi rajtas kontakti $1 aŭ alian [[{{MediaWiki:Grouppage-sysop}}|administranton]] por pridiskuti la forbaradon.\nVi ne povas uzi la 'retpoŝtan' funkcion, escepte se vi indikis validan retpoŝtan adreson en viaj [[Special:Preferences|kontaj agordoj]] kaj vi ne estas blokita uzi ĝin.\nVia IP-adreso estas $3 kaj la ID de la forbarado estas $5.\nBonvolu mencii jenajn indikojn en viaj ĉi-temaj kontaktoj.",
        "autoblockedtext": "Via IP-adreso estas aŭtomate forbarita, ĉar uzis ĝin alia uzanto, kiun baris $1.\nLa donita kialo estas:\n\n:''$2''\n\n*Komenco de forbaro: $8\n*Limdato de la blokado: $6\n*Intencis forbari uzanton: $7\n\nVi povas kontakti $1 aŭ iun ajn el la aliaj [[{{MediaWiki:Grouppage-sysop}}|administrantojn]] por diskuti la blokon.\n\nNotu, ke vi ne povas uzi la servon \"Retpoŝtu ĉi tiu uzanton\" krom se vi havas validan retpoŝt-adreson registritan en viaj [[Special:Preferences|preferojn]], kaj vi estas ne blokita kontraŭ ĝia uzado.\n\nVia nuna IP-adreso estas $3, kaj la forbaro-identigo estas $5.\nBonvolu inkluzivi tiujn detalojn en iuj ajn demandoj kiun vi farus.",
        "history-feed-description": "Revizia historio por ĉi tiu paĝo en la vikio",
        "history-feed-item-nocomment": "$1 ĉe $2",
        "history-feed-empty": "La petita paĝo ne ekzistas.\nĜi verŝajne estis forigita de la vikio, aŭ alinomita.\nProvu [[Special:Search|serĉi en la vikio]] por rilataj novaj paĝoj.",
+       "history-edit-tags": "Redakti etikedojn de elektitaj revizioj",
        "rev-deleted-comment": "(komento forigita)",
        "rev-deleted-user": "(uzanto-nomo forigita)",
        "rev-deleted-event": "(protokolaj detaloj forigitaj)",
        "rev-showdeleted": "montri",
        "revisiondelete": "Forigi/malforigi versiojn",
        "revdelete-nooldid-title": "Nevalida cela revizio",
-       "revdelete-nooldid-text": "Vi ne specifis celan version aŭ versiojn fari ĉi tiun\nfunkcion, la specifita versio ne ekzistas, aŭ vi estas provanta kaŝi la nunan version.",
+       "revdelete-nooldid-text": "Vi specifis neniun celan version por uzi ĉi tiun funkcion, aŭ la specifita versio ne ekzistas, aŭ vi estas provanta kaŝi la nunan version.",
        "revdelete-no-file": "La specifita dosiero ne ekzistas.",
        "revdelete-show-file-confirm": "Ĉu vi certas ke vi volas vidi forigitan revizion de la dosiero \"<nowiki>$1</nowiki>\" de $2, $3?",
        "revdelete-show-file-submit": "Jes",
        "notextmatches": "Neniu trovita laŭ enhavo",
        "prevn": "{{PLURAL:$1|$1 antaŭa|$1 antaŭaj}}",
        "nextn": "{{PLURAL:$1|$1 sekva|$1 sekvaj}}",
+       "prev-page": "antaŭa paĝo",
+       "next-page": "sekva paĝo",
        "prevn-title": "{{PLURAL:$1|Antaŭa $1 rezulto|Antaŭaj $1 rezultoj}}",
        "nextn-title": "{{PLURAL:$1|Posta $1 rezulto|Postaj $1 rezultoj}}",
        "shown-title": "Montri {{PLURAL:$1|$1 rezulton|$1 rezultojn}} en paĝo",
        "userrights-lookup-user": "Administri grupojn de uzantoj",
        "userrights-user-editname": "Entajpu salutnomon:",
        "editusergroup": "Redakti grupojn de uzantoj",
-       "editinguser": "Ŝanĝante uzanto-rajtojn de uzanto '''[[User:$1|$1]]''' $2",
+       "editinguser": "Ŝanĝado de uzanto-rajtoj de la {{GENDER:$1|uzanto|uzantino}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Redakti grupojn de uzantoj",
        "saveusergroups": "Konservi grupojn de uzantoj",
        "userrights-groupsmember": "Membro de:",
        "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-applychangetags": "Aldoni [[Special:Tags|etikedojn]] al propraj ŝanĝoj",
+       "right-changetags": "Aldoni kaj forigi arbitrajn [[Special:Tags|etikedojn]] ĉe unuopaj revizioj kaj protokoleroj",
        "newuserlogpage": "Protokolo de uzanto-kreado",
        "newuserlogpagetext": "Jen protokolo de lastaj kreadoj de uzantoj.",
        "rightslog": "Protokolo de uzanto-rajtoj",
        "action-editmyprivateinfo": "redakti viajn privatajn informojn",
        "action-editcontentmodel": "redakti paĝan enhavmodelon",
        "action-managechangetags": "krei kaj forigi etikedojn de datumbazo",
+       "action-applychangetags": "aldoni etikedojn al viaj propraj ŝanĝoj",
+       "action-changetags": "aldoni kaj forigi arbitrajn etikedojn ĉe unuopaj revizioj kaj protokoleroj",
        "nchanges": "$1 {{PLURAL:$1|ŝanĝo|ŝanĝoj}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|ekde lasta vizito}}",
        "enhancedrc-history": "historio",
        "listfiles-delete": "forigi",
        "listfiles-summary": "Ĉi tiu speciala paĝo montras ĉiujn alŝutitajn dosierojn.\nKiam oni filtras ĝin laŭ uzanto, nur la aktuala versio de la dosiero estos montrita.",
        "listfiles_search_for": "Serĉi dosieran nomon:",
+       "listfiles-userdoesnotexist": "La uzantokonto \"$1\" ne estas registrita.",
        "imgfile": "dosiero",
        "listfiles": "Listo de alŝutitaj dosieroj",
        "listfiles_thumb": "Bildeto",
        "unusedimages": "Neuzataj bildoj",
        "wantedcategories": "Dezirataj kategorioj",
        "wantedpages": "Dezirataj paĝoj",
+       "wantedpages-summary": "Listo de neekzistantaj paĝoj kun plej multaj ligilo al ili, krom paĝoj al kiuj ligas nur alidirektiloj. Por listo de neekzistantaj paĝoj al kiuj ligas alidirektiloj, vidu [[{{#special:BrokenRedirects}}|liston de rompitaj alidirektiloj]].",
        "wantedpages-badtitle": "Malvalida titolo en rezulta aro: $1",
        "wantedfiles": "Dezirataj dosieroj",
        "wantedfiletext-cat": "La jenaj dosieroj estas uzataj sed ne ekzistas. Dosieroj de eksteraj konservujoj eble estos listigita malgraŭ ne ekzistante. Tia malprave pozitivaj rezultoj estos <del>forstrekita</del>. Ankaŭ, paĝoj kiuj enmetas dosierojn kiuj ne ekzistas estas listigita en [[:$1]].",
        "logempty": "Neniaj artikoloj en la protokolo.",
        "log-title-wildcard": "Serĉi titolojn komencantajn kun ĉi tiu teksto",
        "showhideselectedlogentries": "Montri/kaŝi elektitajn protokolerojn",
+       "log-edit-tags": "Redakti etikedojn ĉe elektitaj protokoleroj",
        "allpages": "Ĉiuj paĝoj",
        "nextpage": "Sekvanta paĝo ($1)",
        "prevpage": "Antaŭa paĝo ($1)",
        "trackingcategories-msg": "Kategorio pri kontrolado",
        "trackingcategories-name": "Nomo de mesaĝo",
        "trackingcategories-desc": "Kriterio por inkluzivi kategorion",
+       "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.",
+       "post-expand-template-argument-category-desc": "La paĝo post etendo de ŝablona argumento (io en triobla krampo, kiel <code>{{{argumento}}}</code>) estas pli longa ol <code>$wgMaxArticleSize</code> .",
+       "expensive-parserfunction-category-desc": "La paĝo uzas tro multajn multekostajn funkciojn (kiel <code>#ifexist</code>). Vidu [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
        "broken-file-category-desc": "La paĝo enhavas malvalidan ligilon al dosiero (ligilo por uzi dosieron kvankam la dosiero ne ekzistas).",
+       "hidden-category-category-desc": "La kategorio enhavas <code><nowiki>__HIDDENCAT__</nowiki></code>, kio preventas ĝian defaŭltan montradon en la kesto kun kategoriaj ligiloj.",
        "trackingcategories-nodesc": "Neniu priskribo estas disponebla.",
        "trackingcategories-disabled": "Kategorio estas malaktivigita",
        "mailnologin": "Neniu alsendota adreso",
        "emailccsubject": "Kopio de via mesaĝo al $1: $2",
        "emailsent": "Retmesaĝo sendita",
        "emailsenttext": "Via retmesaĝo estas sendita.",
-       "emailuserfooter": "Ĉi tiun retpoŝton sendis $1 al $2 per funkcio \"Email user\" ĉe {{SITENAME}}.",
+       "emailuserfooter": "Ĉi tiun retpoŝton sendis $1 al $2 per la funkcio \"{{int:emailpage}}\" ĉe {{SITENAME}}.",
        "usermessage-summary": "Lasanta sisteman mesaĝon.",
        "usermessage-editor": "Mesaĝanto de sistemo",
        "watchlist": "Mia atentaro",
        "prot_1movedto2": "[[$1]] movita al [[$2]]",
        "protect-badnamespace-title": "Ne-protektebla nomspaco",
        "protect-badnamespace-text": "Paĝoj en ĉi tiu datumbazo ne povas esti protektita.",
+       "protect-norestrictiontypes-text": "Tiun ĉi paĝon ne eblas protekti ĉar estas disponeblaj neniuj limigaj tipoj.",
        "protect-norestrictiontypes-title": "Neprotektebla paĝo",
        "protect-legend": "Konfirmi protektadon",
        "protectcomment": "Kialo:",
        "namespace": "Nomspaco:",
        "invert": "Inversigi elektaĵon",
        "tooltip-invert": "Marku ĉi tiu skatolon por kaŝi ŝanĝoj al paĝoj en la elektita nomspaco (kaj la asocia nomspaco, se tiel markita)",
+       "tooltip-whatlinkshere-invert": "Markante tiun ĉi markobutonon vi kaŝos ligilojn de paĝoj ene de via elektita nomspaco.",
        "namespace_association": "Asociita nomspaco",
        "tooltip-namespace_association": "Marku ĉi tiu skatolo por inkluzivi la diskutan aŭ teman nomspacon asocie de la elekta nomspaco",
        "blanknamespace": "(Ĉefa)",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] estas forbarita. <br />\nVidu la [[Special:BlockList|liston de forbaroj]] por kontroli.",
        "ipb-blockingself": "Vi preskaŭ forbaros vin mem! Ĉu vi certas ke vi volas fari ĉi tiel?",
        "ipb-confirmhideuser": "Vi preskaŭ forbaras uzanton kun ŝaltita modo \"kaŝi uzanton\". Ĉi tio kaŝos la nomon de uzanto en ĉiuj listoj kaj protokoloj. Ĉu vi certas, ke vi volas fari ĉi tion?",
+       "ipb-confirmaction": "Se vi vere certas, ke vi volas fari tion, bonvolu marki la suban butonon \"{{int:ipb-confirm}}\".",
        "ipb-edit-dropdown": "Redakti kialojn por forbaro.",
        "ipb-unblock-addr": "Restarigi $1",
        "ipb-unblock": "Malforbari salutnomon aŭ IP-adreson",
        "proxyblockreason": "Via IP-adreso estis forbarita ĉar ĝi estas malferma prokurilo. Bonvolu kontakti vian provizanto de retservo aŭ komputika helpisto kaj informu ilin de ĉi serioza problemo pri sekureco.",
        "sorbsreason": "Via IP-adreso estas listigita kiel malferma prokurilo en la DNSBL uzata de {{SITENAME}}.",
        "sorbs_create_account_reason": "Via IP-adreso estas listigita kiel malferma prokurilo en la DNSBL uzata de {{SITENAME}}. Vi ne rajtas krei konton.",
+       "xffblockreason": "La IP-adreso en la kapo de X-Forwarded-For, ĉu via aŭ de la prokurilo kiun vi uzas, estis forbarita. La origina forbarokialo estis: $1",
        "cant-see-hidden-user": "La uzanto kiun vi provas forbari jam estis forbarita kaj kaŝita. Kiel vi ne havas la rajton kaŝi uzanton, vi ne povas vidi aŭ redakti la forbaron de la uzanto.",
        "ipbblocked": "Vi ne povas forbari aŭ malforbari aliajn uzantojn, ĉar vi mem estas forbarita",
        "ipbnounblockself": "Vi ne rajtas malforbari vin mem",
        "thumbnail-temp-create": "Ne povas krei provizoran bildetan dosieron",
        "thumbnail-dest-create": "Ne povis konservi etan version al celo",
        "thumbnail_invalid_params": "Nevalidaj bildetaj parametroj",
+       "thumbnail_toobigimagearea": "Dosiero kun dimensioj pli grandaj ol $1",
        "thumbnail_dest_directory": "Ne povas krei destinan dosierujon",
        "thumbnail_image-type": "Tia bildo ne subtenata",
        "thumbnail_gd-library": "Nekompleta GD-biblioteka konfiguro: mankas funkcio $1",
        "thumbnail_image-missing": "Dosiero verŝajne estas foriga: $1",
+       "thumbnail_image-failure-limit": "Lastatempe estis tro multaj malsukcesaj provoj ($1 aŭ pli) por bildigi tiun ĉi miniaturon. Bonvolu reprovi poste.",
        "import": "Importi paĝojn",
        "importinterwiki": "Transvikia importo",
-       "import-interwiki-text": "Elektu vikion kaj paĝan titolon por importi.\nDatoj de versioj kaj nomoj de redaktantoj estos preservitaj.\nĈiuj transvikaj importoj estas raportitaj ĉe la [[Special:Log/import|loglibro de importoj]].",
+       "import-interwiki-text": "Elektu vikion kaj paĝan titolon por importi.\nDatoj de versioj kaj nomoj de redaktantoj estos konservitaj.\nĈiuj transvikaj importoj estas raportitaj ĉe la [[Special:Log/import|loglibro de importoj]].",
        "import-interwiki-sourcewiki": "Fonta vikio:",
        "import-interwiki-sourcepage": "Fonta paĝo:",
        "import-interwiki-history": "Kopiu ĉiujn historiajn versiojn por ĉi tiu pago.",
        "import-interwiki-templates": "Inkluzivi ĉiujn ŝablonojn",
        "import-interwiki-submit": "Importi",
+       "import-mapping-default": "Importi al defaŭltaj lokoj",
+       "import-mapping-namespace": "Importi en nomspacon:",
+       "import-mapping-subpage": "Importi kiel subpaĝojn de la jena paĝo:",
        "import-upload-filename": "Dosiernomo:",
        "import-comment": "Komento:",
        "importtext": "Bonvolu eksporti la dosieron el la fonta vikio per la [[Special:Export|eksportilo]]. Konservu ĝin sur via persona komputilo kaj poste alŝutu ĝin tien ĉi.",
        "importcantopen": "Ne povas malfermi import-dosieron",
        "importbadinterwiki": "Malbona intervikia ligilo",
        "importsuccess": "La importo sukcesis!",
-       "importnosources": "Neniu transvikia importfonto estis difinita kaj rekta historio de alŝutoj estas malaktivigita.",
+       "importnosources": "Neniu transvikia importfonto estis difinita kaj rekta alŝutado de historio estas malaktivigita.",
        "importnofile": "Neniu import-dosiero estis alŝutita.",
        "importuploaderrorsize": "Alŝuto de import-dosiero malsukcesis. La dosiero estas pli granda ol la permesita alŝut-grando.",
        "importuploaderrorpartial": "Alŝuto de la import-dosiero malsukcesis. La dosiero estis nur parte alŝutita.",
        "import-error-special": "Paĝo \"$1\" ne estis importata, ĉar ĝi apartenas al speciala nomspaco, kiu ne permesas paĝojn.",
        "import-error-invalid": "Paĝo \"$1\" ne estis importata, ĉar ĝia nomo estas malvalida.",
        "import-error-unserialize": "La revizio n-ro $2 de la paĝo nomata \"$1\" ne povis senseriiĝi. La revizio raportiĝis uzi enhavmodelon n-ro $3, kiu seriiĝis kiel n-ro $4.",
+       "import-error-bad-location": "La revizion $2, kiu uzas la enhavmodelon $3, ne eblas konservi en \"$1\" en tiu ĉi vikio ĉar tiu modelo ne estas subtenata en tiu paĝo.",
        "import-options-wrong": "{{PLURAL:$2|Erara elekto|Eraraj elektoj}}: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "La provizita paĝo havas nevalidan titolon.",
        "import-rootpage-nosubpage": "La nomspaco \"$1\" de la radikopaĝo ne permesas subpaĝoj.",
        "javascripttest": "Ĝavoskripta testado",
        "javascripttest-pagetext-noframework": "Ĉi tiu paĝo estas konservita por funkciigi testojn de JavaScript.",
        "javascripttest-pagetext-unknownframework": "Nekonta test-framo \"$1\".",
+       "javascripttest-pagetext-unknownaction": "Nekonata ago \"$1\".",
        "javascripttest-pagetext-frameworks": "Bonvolu elekti unu el la jenaj test-framoj: $1",
        "javascripttest-pagetext-skins": "Elektu kun kio etoso irigi la testojn:",
        "javascripttest-qunit-intro": "Vidu [$1 testa dokumentaro] en mediawiki.org.",
        "pageinfo-protect-cascading-yes": "Jes",
        "pageinfo-protect-cascading-from": "Protektado kaskade fontas el",
        "pageinfo-category-info": "Informo pri kategorio",
+       "pageinfo-category-total": "Entuta nombro de membroj",
        "pageinfo-category-pages": "Nombro de paĝoj",
        "pageinfo-category-subcats": "Nombro de subkategorioj",
        "pageinfo-category-files": "Nombro de dosieroj",
        "patrol-log-page": "Protokolo pri patrolado",
        "patrol-log-header": "Jen protokolo de patrolitaj versioj.",
        "log-show-hide-patrol": "$1 protokolo pri patrolado",
+       "log-show-hide-tag": "$1 etikedan protokolon",
        "deletedrevision": "Forigita malnova versio $1",
        "filedeleteerror-short": "Eraro dum forigo de dosiero: $1",
        "filedeleteerror-long": "Eraroj renkontritaj kiam forigante la dosieron:\n\n$1",
        "hebrew-calendar-m12-gen": "elulo",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|diskuto]])",
        "duplicate-defaultsort": "'''Averto:''' Defaŭlta ordiga ŝlosilo \"$2\" anstataŭigas pli fruan defaŭltan ordigan ŝlosilon \"$1\".",
+       "duplicate-displaytitle": "<strong>Atentigo:</strong> La montrata titolo \"$2\" transpasas la antaŭan titolon \"$1\".",
+       "invalid-indicator-name": "<strong>Eraro:</strong> Atributo de la paĝstata indikilo <code>name</code> maldevas esti malplena.",
        "version": "Versio",
        "version-extensions": "Instalitaj kromprogramoj",
        "version-skins": "Instalitaj etosoj",
        "version-libraries": "Instalitaj bibliotekoj",
        "version-libraries-library": "Biblioteko",
        "version-libraries-version": "Versio",
+       "redirect": "Alidirektilo laŭ dosiero, uzanto, paĝo aŭ identigilo de revizio.",
        "redirect-legend": "Alidirektilo al dosiero aŭ paĝo",
+       "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-submit": "Ek",
        "redirect-lookup": "Traserĉi:",
        "redirect-value": "Valoro:",
        "tags-tag": "Etikeda nomo",
        "tags-display-header": "Aspekto en ŝanĝaj listoj",
        "tags-description-header": "Plena priskribo pri signifo",
+       "tags-source-header": "Fonto",
        "tags-active-header": "Aktiva",
        "tags-hitcount-header": "Markitaj ŝanĝoj",
+       "tags-actions-header": "Agoj",
        "tags-active-yes": "Jes",
        "tags-active-no": "Ne",
+       "tags-source-extension": "Difinita de etendaĵo",
+       "tags-source-manual": "Aldonita permane de uzantoj aŭ robotoj",
+       "tags-source-none": "Ne plu uzata",
        "tags-edit": "redakti",
+       "tags-delete": "forigi",
+       "tags-activate": "aktivigi",
+       "tags-deactivate": "malaktivigi",
        "tags-hitcount": "$1 {{PLURAL:$1|ŝanĝo|ŝanĝoj}}",
+       "tags-manage-no-permission": "Vi ne havas la rajton prilabori markilojn.",
+       "tags-create-heading": "Krei novan markilon",
+       "tags-create-explanation": "Nove kreitaj etikedoj estos defaŭlte disponeblaj por uzado de uzantoj kaj robotoj.",
+       "tags-create-tag-name": "Nomo de etikedo:",
+       "tags-create-reason": "Kialo:",
+       "tags-create-submit": "Krei",
+       "tags-create-no-name": "Vi devas specifi nomon de etikedo.",
+       "tags-create-invalid-chars": "Etikednomoj maldevas enhavi komojn (<code>,</code>) aŭ suprenstrekojn (<code>/</code>).",
+       "tags-create-invalid-title-chars": "Etikednomoj maldevas enhavi signojn, kiuj ne povas esti uzitaj en paĝo-titoloj.",
+       "tags-create-already-exists": "La markilo \"$1\" jam ekzistas.",
+       "tags-create-warnings-above": "Dum provo krei la etikedon \"$1\" estis {{PLURAL:$2|trafita jena atentigo|trafitaj jenaj atentigoj}}:",
+       "tags-create-warnings-below": "Ĉu vi volas plu krei la etikedon?",
+       "tags-delete-title": "Forigi markilon",
+       "tags-delete-explanation-initial": "Vi estas forigonta la markilon \"$1\" de la datumbazo.",
+       "tags-delete-explanation-in-use": "Ĝi estos forigita de {{PLURAL:$2|$2 revizio aŭ protokolero|ĉiuj $2 revizioj kaj/aŭ protokoleroj}}, kie ĝi nun estas aldonita.",
+       "tags-delete-explanation-warning": "Tiu ĉi ago estas<strong>neinversigebla</strong> kaj <strong>ne povas esti malfarita</strong>, eĉ ne de datumbazaj administrantoj. Certiĝu, ke tio ĉi estas la etikedo, kiun vi volas forigi.",
+       "tags-delete-explanation-active": "<strong>La etikedo \"$1\" estas aktiva kaj ĝi plu estos aldonata en estonteco.</strong> Por haltigi tion, iru al la loko aŭ lokoj, kie estas la etikedo agordita kaj malŝaltu ĝin tie.",
+       "tags-delete-reason": "Kialo:",
+       "tags-delete-submit": "Neinversigeble forigi tiun ĉi etikedon",
+       "tags-delete-not-allowed": "Ne eblas forigi etikedojn difinitajn de etendaĵoj, krom se la etendaĵo eksplice permesas tion.",
+       "tags-delete-not-found": "La etikedo \"$1\" ne ekzistas.",
+       "tags-delete-too-many-uses": "La etikedo \"$1\" estas aldonita al pli ol $2 {{PLURAL:$2|revizio|revizioj}}, kio signifas, ke ĝi ne povas esti forigita.",
+       "tags-delete-warnings-after-delete": "LA etikedo \"$1\" estis sukcese forigita, sed estis {{PLURAL:$2|trafita jena atentigo|trafitaj jenaj atentigoj}}:",
+       "tags-activate-title": "Aktivigi markilon",
+       "tags-activate-question": "Vi estas aktivigonta la markilon \"$1\".",
+       "tags-activate-reason": "Kialo:",
+       "tags-activate-not-allowed": "Estas neeble aktivigi la markilon \"$1\".",
+       "tags-activate-not-found": "Etikedo \"$1\" ne eksistas.",
+       "tags-activate-submit": "Aktivigi",
+       "tags-deactivate-title": "Malaktivigi markilon",
+       "tags-deactivate-question": "Vi estas malaktivigonta la markilon \"$1\".",
+       "tags-deactivate-reason": "Kialo:",
+       "tags-deactivate-not-allowed": "Ne eblas malaktivigi la etikedon \"$1\".",
+       "tags-deactivate-submit": "Malaktivigi",
+       "tags-apply-no-permission": "Vi ne havas permeson por aldoni ŝanĝo-etikedojn al viaj ŝanĝoj.",
+       "tags-apply-not-allowed-one": "La etikedon \"$1\" ne eblas aldoni permane.",
+       "tags-apply-not-allowed-multi": "Ne estas permesite permane aldoni {{PLURAL:$2|jenan etikedon|jenajn etikedojn}}: $1",
+       "tags-update-no-permission": "Vi ne havas permeson por aldoni aŭ forigi ŝanĝo-etikedojn de unuopaj revizioj aŭ protokoleroj.",
+       "tags-update-add-not-allowed-one": "Ne estas permesite permane aldoni la etikedon \"$1\".",
+       "tags-update-add-not-allowed-multi": "Ne estas permesite permane aldoni {{PLURAL:$2|jenan etikedon|jenajn etikedojn}}: $1",
+       "tags-update-remove-not-allowed-one": "Ne estas permesite permane forigi la etikedon \"$1\".",
+       "tags-update-remove-not-allowed-multi": "Ne estas permesite permane forigi {{PLURAL:$2|jenan etikedon|jenajn etikedojn}}: $1",
+       "tags-edit-title": "Redakti etikedojn",
+       "tags-edit-manage-link": "Manipuli etikedojn",
+       "tags-edit-revision-selected": "{{PLURAL:$1|Elektita revizio|Elektitaj revizioj}} de [[:$2]]:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Elektita protokola evento|Elektitaj protokolaj eventoj}}:",
+       "tags-edit-revision-legend": "Aldoni aŭ forigi etikedojn de {{PLURAL:$1|tiu ĉi revizio|ĉiuj $1 revizioj}}",
+       "tags-edit-logentry-legend": "Aldoni aŭ forigi etikedojn de {{PLURAL:$1|tiu ĉi protokolero|ĉiuj $1 protokoleroj}}",
+       "tags-edit-existing-tags": "Ekzistantaj etikedoj:",
+       "tags-edit-existing-tags-none": "\"Neniu\"",
+       "tags-edit-new-tags": "Novaj markiloj:",
+       "tags-edit-add": "Aldoni ĉi-tiujn markilojn:",
+       "tags-edit-remove": "Forigi tiujn ĉi etikedojn:",
+       "tags-edit-remove-all-tags": "(forigi ĉiujn etikedojn)",
+       "tags-edit-chosen-placeholder": "Elektu iujn etikedojn",
+       "tags-edit-chosen-no-results": "Estis trovita neniu kongrua etikedo",
+       "tags-edit-reason": "Kialo:",
+       "tags-edit-revision-submit": "Apliki ŝanĝojn al {{PLURAL:$1|tiu ĉi revizio|$1 revizioj}}",
+       "tags-edit-logentry-submit": "Apliki ŝanĝojn al {{PLURAL:$1|tiu ĉi protokolero|$1 protokoleroj}}",
+       "tags-edit-success": "La ŝanĝoj estis sukcese aplikitaj.",
+       "tags-edit-failure": "La ŝanĝojn ne eblis apliki:\n$1",
+       "tags-edit-nooldid-title": "Nevalida cela revizio",
+       "tags-edit-nooldid-text": "Vi specifis neniun celan revizion por efektivigi la funkcion aŭ la specifita revizio ne ekzistas.",
+       "tags-edit-none-selected": "Bonvolu elekti almenaŭ unu etikedon, kiun vi volas aldoni aŭ forigi.",
        "comparepages": "Kompari paĝojn",
        "compare-page1": "Paĝo 1",
        "compare-page2": "Paĝo 2",
        "revdelete-uname-unhid": "salutnomo malkaŝita",
        "revdelete-restricted": "aplikis limojn al administrantoj",
        "revdelete-unrestricted": "forigis limojn por administrantoj",
+       "logentry-block-block": "$1 {{GENDER:$2|forbaris}} la {{GENDER:$4|uzanton|uzantinon}} $3 por daŭro de $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|malforbaris}} la {{GENDER:$4|uzanton|uzantinon}} $3",
+       "logentry-block-reblock": "$1 {{GENDER:$2|ŝanĝis}} agordojn de forbaro por la {{GENDER:$4|uzanto|uzantino}} $3 por daŭro de $5 $6",
+       "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-interwiki": "$1 {{GENDER:$2|importis}} $3 de alia vikio",
        "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-upload-upload": "$1 {{GENDER:$2|alŝutis}} $3",
        "logentry-upload-overwrite": "$1 {{GENDER:$2|alŝutis}} novan version de $3",
        "logentry-upload-revert": "$1 {{GENDER:$2|alŝutis}} $3",
+       "log-name-managetags": "Protokolo de etiked-manaĝado",
+       "log-description-managetags": "Tiu ĉi paĝo listigas manaĝajn taskojn rilatajn al [[Special:Tags|etikedoj]]. La protokolo enhavas nur agojn faritajn permane de administrantoj; etikedoj povas esti kreitaj aŭ forigitaj per la vikia programo sen enskribo en tiu ĉi protokolo.",
+       "logentry-managetags-create": "$1 {{GENDER:$2|kreis}} la etikedon \"$4\"",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|forigis}} la etikedon \"$4\" (forigita de $5 {{PLURAL:$5|revizio aŭ protokolero|revizioj kaj/aŭ protokoleroj}})",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|aktivigis}} la etikedon \"$4\" por uzantoj kaj robotoj",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|malaktivigis}} la etikedon \"$4\" por uzantoj kaj robotoj",
+       "log-name-tag": "Protokolo de etikedoj",
+       "log-description-tag": "Tiu ĉi paĝo montriĝas kiam uzanto aldonas aŭ forigas [[Special:Tags|etikedojn]] de unuopaj revizioj aŭ protokoleroj. La protokolo ne listigas etikedigojn, kiuj estis faritaj kiel parto de redakto, forigo aŭ simila ago.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|aldonis}} la {{PLURAL:$7|etikedon|etikedojn}} $6 al la revizio $4 de la paĝo $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|aldonis}} la {{PLURAL:$7|etikedon|etikedojn}} $6 al la protokolero $5 de la paĝo $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|forigis}} la {{PLURAL:$9|etikedon|etikedojn}} $8 de la revizio $4 de la paĝo $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|forigis}} la {{PLURAL:$9|etikedon|etikedojn}} $8 de la protokolero $5 de la paĝo $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|ĝisdatigis}} etikedojn de la revizio $4 de la paĝo $3 ({{PLURAL:$7|aldonita|aldonitaj}} $6; {{PLURAL:$9|forigita|forigitaj}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|ĝisdatigis}} etikedojn de la protokolero $5 de la paĝo $3 ({{PLURAL:$7|aldonita|aldonitaj}} $6; {{PLURAL:$9|forigita|forigitaj}} $8)",
        "rightsnone": "(nenia)",
        "revdelete-summary": "redaktoresumon",
        "feedback-adding": "Aldonanta respondon al la paĝo...",
+       "feedback-back": "Reen",
        "feedback-bugcheck": "Bonega! Nur konfirmu ke ĝi ne jam ekzistas inter la [$1 konataj cimoj].",
        "feedback-bugnew": "Mi konfirmis. Raportu novan cimon.",
        "feedback-bugornote": "Se vi pretas priskribi teknikan problemon detale, bonvolu [$1 raporti cimon].\nAŭ vi povas uzi la facilan formularon sube. Via komento estos aldonita al la paĝo \"[$3 $2]\", kune kun via salutnomo kaj uzita retumilo.",
        "feedback-cancel": "Nuligi",
        "feedback-close": "Farita",
+       "feedback-external-bug-report-button": "Krei teĥnikan taskon",
+       "feedback-dialog-title": "Sendi prijuĝajn rimarkojn",
+       "feedback-dialog-intro": "Vi povas uzi suban simplan formularon por sendi viajn prijuĝajn rimarkojn. Via komento estos aldonita al la paĝo \"$1\" kun via uzanto-nomo.",
+       "feedback-error-title": "Eraro",
        "feedback-error1": "Eraro: Nerekonita rezulto de API",
        "feedback-error2": "Eraro: La redakto malsukcesis",
        "feedback-error3": "Eraro: Neniu respondo de API",
+       "feedback-error4": "Eraro: Ne eblas skribi al la paĝo por prijuĝaj rimarkoj",
        "feedback-message": "Mesaĝo:",
        "feedback-subject": "Temo:",
-       "feedback-submit": "Sendi Mesaĝon",
+       "feedback-submit": "Sendi",
+       "feedback-terms": "Mmi komprenas, ke informoj pri mia klienta aplikaĵo enhavas precizajn informojn pri mia foliumilo kaj version de operaciumo kaj, ke tiuj informoj estos publikigitaj kun miaj prijuĝaj rimarkoj.",
+       "feedback-termsofuse": "Mi konsentas pri provizo de prijuĝaj rimarkoj laŭ la Kondiĉoj de Uzado.",
        "feedback-thanks": "Dankon! Via opinio-esprimo estis afiŝita al la paĝo \"[$2 $1]\".",
+       "feedback-thanks-title": "Dankon!",
+       "feedback-useragent": "Klienta aplikaĵo:",
        "searchsuggest-search": "Serĉi",
        "searchsuggest-containing": "enhavas...",
        "api-error-badaccess-groups": "Vi ne havas permeson alŝuti dosierojn al tiu ĉi vikio.",
        "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-stashedfilenotfound": "Dum provo alŝuti dosieron de rezervujo ne estis la dosiero trovita.",
+       "api-error-stashpathinvalid": "La vojo en rezervujo, kie devus esti la dosiero trovita, estas malvalida.",
+       "api-error-stashfilestorage": "Okazis eraro dum konservado de dosiero al rezervujo.",
+       "api-error-stashzerolength": "La servilo ne povis konservi dosieron en rezervujon, ĉar ĝi havis nulan longecon.",
+       "api-error-stashnotloggedin": "Vi devas esti ensalutinta por konservi dosieron en alŝutan rezervujon.",
+       "api-error-stashwrongowner": "La rezervuja dosiero, kiun vi provis aliri, ne apartenas al vi.",
+       "api-error-stashnosuchfilekey": "La dosiera ŝlosilo, kiun vi provis aliri en rezervujo, ne ekzistas.",
        "api-error-timeout": "La servilo ne respondis ene de la antaŭvidita tempo.",
        "api-error-unclassified": "Okazis nekonata eraro",
        "api-error-unknown-code": "Nekonata eraro: \"$1\"",
        "limitreport-walltime-value": "$1 {{PLURAL:$1|sekundo|sekundoj}}",
        "limitreport-ppvisitednodes": "Nombro da nodoj vizititaj de antaŭtraktilo",
        "limitreport-ppgeneratednodes": "Nombro da nodoj kreitaj de antaŭtraktilo",
+       "limitreport-postexpandincludesize": "Post-etenda inklud-grandeco",
        "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|bitoko|bitokoj}}",
        "limitreport-templateargumentsize": "Grandeco de argumentoj de ŝablonoj",
        "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|bitoko|bitokoj}}",
+       "limitreport-expansiondepth": "Plej alta profundeco de etendo",
        "limitreport-expensivefunctioncount": "Nombro de kostaj sintaks-analizilaj funkcioj",
        "expandtemplates": "Ŝablonetendilo",
        "expand_templates_intro": "Ĉi tiu speciala paĝo traktas tekston kaj ampleksigas ĉiujn ŝablonojn en ĝi rekursie.\nĜi ankaŭ ampleksigas sintaksajn funkciojn kiel\n<code><nowiki>{{</nowiki>#language:…}}</code> kaj variablojn kiel\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code>. Fakte preskaŭ iujn ajn en duoblaj krampoj.",
        "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_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",
        "pagelang-name": "Paĝo",
        "pagelang-language": "Lingvo",
        "pagelang-use-default": "Uzi defaŭltan lingvon",
        "log-name-pagelang": "Ŝanĝi la lingvan protokolon",
        "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.",
+       "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)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''malŝ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-table-mimetype": "MIME-tipo",
        "mediastatistics-table-extensions": "Eblaj dosier-sufiksoj",
        "mediastatistics-table-count": "Nombro de dosieroj",
+       "mediastatistics-table-totalbytes": "Grandeco tute",
        "mediastatistics-header-unknown": "Nekonata",
        "mediastatistics-header-bitmap": "Rastrumaj bildoj",
        "mediastatistics-header-drawing": "Desegnaĵoj (vektoraj bildoj)",
        "mediastatistics-header-office": "Oficejaj",
        "mediastatistics-header-text": "Tekstaj",
        "mediastatistics-header-executable": "Plenumeblaj dosieroj",
+       "mediastatistics-header-archive": "Densigitaj formoj",
+       "json-warn-trailing-comma": "De JSON estis {{PLURAL:$1|forigita fina komo|forigitaj finaj komoj}}",
+       "json-error-unknown": "Okazis problemo pri JSON. Eraro: $1",
+       "json-error-depth": "Maksimuma profundeco de stako estis superita",
        "json-error-state-mismatch": "JSON estas malvalida aŭ malformigita",
+       "json-error-ctrl-char": "Eraro pri kontrola signo, eble erare enkodigita",
        "json-error-syntax": "Sintaksa eraro",
+       "json-error-utf8": "Misformitaj signoj laŭ UTF-8, eble erare enkodigitaj",
+       "json-error-recursion": "Unu aŭ pliaj rikuraj referencoj en la enkodigota valoro",
+       "json-error-inf-or-nan": "Unu aŭ pliaj valoroj NAN aŭ INF en la enkodigota valoro",
+       "json-error-unsupported-type": "Donita valoro de neenkodigebla tipo",
+       "headline-anchor-title": "Ligilo al tiu ĉi sekcio",
        "special-characters-group-latin": "Latina",
        "special-characters-group-latinextended": "Latina etendita",
        "special-characters-group-ipa": "IPA",
index d010560..83fe0b1 100644 (file)
                        "Kroji",
                        "JasterTDC",
                        "Laurenslimb",
-                       "Tusca"
+                       "Tusca",
+                       "Tadol"
                ]
        },
        "tog-underline": "Subrayar los enlaces:",
        "no-null-revision": "No se pudo crear una nueva revisión nula para la página «$1»",
        "badtitle": "Título incorrecto",
        "badtitletext": "El título de la página solicitada está vacío, no es válido, o es un enlace interidioma o interwiki incorrecto.\nPuede que contenga uno o más caracteres que no se pueden usar en los títulos.",
+       "title-invalid-empty": "El título de la página solicitada está vacío o contiene solo el nombre de un espacio de nombres.",
+       "title-invalid-utf8": "El título de la página solicitada contiene una secuencia UTF-8 no válida.",
+       "title-invalid-interwiki": "El título de página solicitado contiene un enlace interwiki que no se puede usar en los títulos.",
+       "title-invalid-talk-namespace": "El título de la página solicitada apunta a una página de discusión imposible.",
+       "title-invalid-characters": "El título  de la página solicitada contiene caracteres no válidos: \"$1\".",
+       "title-invalid-relative": "El título contiene una ruta relativa. Los títulos relativos (./, ../) no son válidos porque a menudo no los pueden manejar los navegadores web.",
+       "title-invalid-magic-tilde": "El título de la página solicitada contiene una secuencia de virgulillas no válida (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "El título de la página solicitada es muy largo. No debe exceder $1 {{PLURAL:$1|byte|bytes}} en codificación UTF-8.",
+       "title-invalid-leading-colon": "El título de la página solicitada contiene un caracater (:) no válido en el comienzo.",
        "perfcached": "Los siguientes datos provienen de la caché y pueden no estar actualizados. La caché puede contener {{PLURAL:$1|un resultado|$1 resultados}} como máximo.",
        "perfcachedts": "Los siguientes datos provienen de la caché, y fueron actualizados por última vez a fecha de: $1. La caché contiene {{PLURAL:$4|un resultado|$4 resultados}} como máximo.",
        "querypage-no-updates": "Actualmente las actualizaciones de esta página están desactivadas. Estos datos no serán actualizados a corto plazo.",
        "passwordreset-emailtitle": "Detalles de la cuenta en {{SITENAME}}",
        "passwordreset-emailtext-ip": "Alguien (probablemente tú, desde la dirección IP $1) ha solicitado el restablecimiento de tu contraseña en {{SITENAME}} ($4). {{PLURAL:$3|La siguiente cuenta está asociada|Las siguientes cuentas están asociadas}}\na esta dirección de correo electrónico:\n\n$2\n\n{{PLURAL:$3|Esta contraseña temporal|Estas contraseñas temporales}} caducarán en {{PLURAL:$5|un día|$5 días}}.\nAhora puedes iniciar sesión y establecer una nueva contraseña. Si fue otra persona la que realizó esta solicitud, o si ya recuerdas tu contraseña original y, por tanto, no deseas cambiarla, puedes ignorar este mensaje y continuar usando tu contraseña anterior.",
        "passwordreset-emailtext-user": "El usuario $1 de {{SITENAME}} solicitó el restablecimiento de tu contraseña en {{SITENAME}}\n($4). {{PLURAL:$3|La siguiente cuenta está asociada|Las siguientes cuentas están asociadas}} a esta dirección de correo electrónico:\n\n$2\n\n{{PLURAL:$3|Esta contraseña temporal|Estas contraseñas temporales}} caducarán en {{PLURAL:$5|un día|$5 días}}.\nAhora puedes iniciar sesión y establecer una nueva contraseña. Si fue otra persona la que realizó esta solicitud, o si ya recuerdas tu contraseña original y, por tanto, no deseas cambiarla, puedes ignorar este mensaje y continuar usando tu contraseña anterior.",
-       "passwordreset-emailelement": "Nombre de usuario: $1\nContraseña temporal: $2",
+       "passwordreset-emailelement": "Nombre de {{GENDER:$1|usuario|usuaria}}: $1\nContraseña temporal: $2",
        "passwordreset-emailsent": "Se ha enviado un correo electrónico para el restablecimiento de tu 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",
        "subject-preview": "Previsualización del asunto/encabezado:",
        "previewerrortext": "Se ha producido un error al intentar la vista previa de los cambios.",
        "blockedtitle": "El usuario está bloqueado",
-       "blockedtext": "<strong>Tu nombre de usuario o dirección IP ha sido bloqueada.</strong>\n\nEl bloqueo fue hecho por $1.\nLa razón dada es <em>$2</em>.\n\n* Inicio del bloqueo: $8\n* Caducidad del bloqueo: $6\n* Bloqueo destinado a: $7\n\nPuedes contactar a $1 u otro [[{{MediaWiki:Grouppage-sysop}}|administrador]] para discutir el bloqueo.\nNo puedes utilizar la función «enviar correo electrónico a este usuario»  a menos que tengas una dirección de correo electrónico válida registrada en tus [[Special:Preferences|preferencias de usuario]] y que el bloqueo no haya inhabilitado esta función.\n\nTu dirección IP actual es $3, y el identificador del bloqueo es #$5.\nPor favor incluye todos los datos aquí mostrados en cualquier consulta que hagas.",
-       "autoblockedtext": "Tu dirección IP ha sido bloqueada automáticamente porque fue utilizada por otro usuario, que resultó bloqueado por $1.\nLa explicación proporcionada es la siguiente:\n\n:<em>$2</em>\n\n* Inicio del bloqueo: $8\n* Caducidad del bloqueo: $6\n* Bloqueo destinado a: $7\n\nPuedes contactar con $1 o con otro de los [[{{MediaWiki:Grouppage-sysop}}|administradores]] para discutir el bloqueo.\n\nTen en cuenta que no podrás utilizar la herramienta de «enviar correo electrónico a este usuario» a menos que tengas una dirección de correo electrónico válida registrada en tus [[Special:Preferences|preferencias de usuario]] y la función no haya sido también bloqueada.\n\nTu actual dirección IP es $3, y el identificador del bloqueo es #$5.\nPor favor, incluye todos los datos aquí mostrados en cualquier consulta que hagas al respecto.",
+       "blockedtext": "<strong>Tu nombre de usuario o dirección IP ha sido bloqueada.</strong>\n\nEl bloqueo fue hecho por $1.\nLa razón dada es <em>$2</em>.\n\n* Inicio del bloqueo: $8\n* Caducidad del bloqueo: $6\n* Bloqueo destinado a: $7\n\nPuedes contactar a $1 o con otro de los [[{{MediaWiki:Grouppage-sysop}}|administradores]] para discutir el bloqueo.\nNo puedes utilizar la función «enviar correo electrónico a este usuario»  a menos que tengas una dirección de correo electrónico válida registrada en tus [[Special:Preferences|preferencias de usuario]] y que el bloqueo no haya inhabilitado esta función.\n\nTu dirección IP actual es $3, y el identificador del bloqueo es #$5.\nPor favor incluye todos los datos aquí mostrados en cualquier consulta que hagas.",
+       "autoblockedtext": "Tu dirección IP ha sido bloqueada automáticamente porque fue utilizada por otro usuario, que resultó bloqueado por $1.\n\nEl motivo dado es el siguiente:\n\n:<em>$2</em>\n\n* Inicio del bloqueo: $8\n* Caducidad del bloqueo: $6\n* Bloqueo destinado a: $7\n\nPuedes contactar con $1 o con otro de los [[{{MediaWiki:Grouppage-sysop}}|administradores]] para discutir el bloqueo.\n\nTen en cuenta que no podrás utilizar la herramienta de «enviar correo electrónico a este usuario» a menos que tengas una dirección de correo electrónico válida registrada en tus [[Special:Preferences|preferencias de usuario]] y la función no haya sido también bloqueada.\n\nTu dirección IP actual es $3, y el identificador del bloqueo es #$5.\nPor favor, incluye todos los datos aquí mostrados en cualquier consulta que hagas al respecto.",
        "blockednoreason": "no se ha especificado el motivo",
        "whitelistedittext": "Tienes que $1 para editar artículos.",
        "confirmedittext": "Debes confirmar tu dirección de correo electrónico antes de poder editar páginas. Por favor, configura y confirma tu dirección de correo a través de tus [[Special:Preferences|preferencias de usuario]].",
        "previewconflict": "Esta previsualización muestra cómo aparecerá el texto en el área de edición superior una vez guardados los cambios.",
        "session_fail_preview": "<strong>Lo sentimos, no hemos podido procesar tu edición debido a una pérdida de los datos de sesión.</strong>\nPor favor, inténtalo de nuevo.\nSi el problema persiste, prueba a [[Special:UserLogout|cerrar sesión]] y volver a acceder.",
        "session_fail_preview_html": "<strong>Lo sentimos, no hemos podido procesar tu edición debido a una pérdida de datos de sesión.</strong>\n\n<em>La previsualización está oculta como prevención frente a ataques JavaScript, puesto que este wiki tiene habilitado el HTML en bruto.</em>\n\n<strong>Si se trata de un intento legítimo de modificación, por favor, inténtalo de nuevo.</strong>\nSi aún así no funcionase, prueba a [[Special:UserLogout|cerrar sesión]] y volver a acceder.",
-       "token_suffix_mismatch": "<strong>Tu edición ha sido rechazada porque tu cliente ha mezclado los signos de puntuación en la clave de edición.\nSe rechazó la edición para evitar la corrupción del texto de la página.\nEsto sucede en ocasiones si se usa un servicio de proxy anónimo defectuoso.</strong>",
+       "token_suffix_mismatch": "<strong>Tu edición ha sido rechazada porque tu cliente ha mezclado los signos de puntuación en la clave de edición.</strong>\nSe rechazó la edición para evitar la corrupción del texto de la página.\nEsto sucede en ocasiones si se usa un servicio de proxy anónimo defectuoso.",
        "edit_form_incomplete": "<strong>Una parte del formulario de edición no ha llegado al servidor. Comprueba que tus cambios están intactos e inténtalo de nuevo.</strong>",
        "editing": "Edición de «$1»",
        "creating": "Creación de «$1»",
        "content-model-css": "CSS",
        "content-json-empty-object": "Objeto vacío",
        "content-json-empty-array": "Matriz vacía",
+       "duplicate-args-warning": "<strong>Aviso:</strong> [[:$1]] usa [[:$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>.",
-       "expensive-parserfunction-warning": "Aviso: Esta página contiene demasiadas llamadas a funciones sintácticas costosas (#ifexist: y similares)\n\nTiene {{PLURAL:$1|una llamada|$1 llamadas}}, pero debería tener menos de $2.",
+       "expensive-parserfunction-warning": "<strong>Advertencia:</strong> esta página contiene demasiadas llamadas a funciones sintácticas costosas.\n\nTiene {{PLURAL:$1|una llamada|$1 llamadas}}, pero debería tener menos de {{PLURAL:$2|una|$2}}.",
        "expensive-parserfunction-category": "Páginas con llamadas a funciones sintácticas demasiado costosas",
        "post-expand-template-inclusion-warning": "<strong>Aviso:</strong> El tamaño de las plantillas incluidas es muy grande.\nAlgunas de ellas no se incluirán.",
        "post-expand-template-inclusion-category": "Páginas con sobrecarga de plantillas",
        "last": "ant",
        "page_first": "primeras",
        "page_last": "últimas",
-       "histlegend": "Selección de diferencias: marca las casillas correspondientes a las versiones a comparar y pulsa Intro o el botón de abajo.<br />\nLeyenda: <strong>(act)</strong> = diferencias con la versión actual,\n<strong>(ant)</strong> = diferencias con la versión anterior, <strong>m</strong> = edición menor",
+       "histlegend": "Selección de diferencias: marca las casillas correspondientes a las versiones a comparar y pulsa Intro o el botón de abajo.<br />\nLeyenda: <strong>({{int:cur}})</strong> = diferencias con la versión actual,\n<strong>({{int:last}})</strong> = diferencias con la versión anterior, <strong>{{int:minoreditletter}}</strong> = edición menor.",
        "history-fieldset-title": "Buscar en el historial",
        "history-show-deleted": "Solo eliminadas",
        "histfirst": "primeras",
        "rev-deleted-comment": "(resumen de edición eliminado)",
        "rev-deleted-user": "(nombre de usuario eliminado)",
        "rev-deleted-event": "(detalles del registro eliminados)",
-       "rev-deleted-user-contribs": "[nombre de usuario o dirección IP eliminada - edición ocultada de la lista de contribuciones]",
+       "rev-deleted-user-contribs": "[nombre de usuario o dirección IP eliminada, edición ocultada de la lista de contribuciones]",
        "rev-deleted-text-permission": "Esta revisión ha sido <strong>eliminada</strong>.\nPara más información, consulta el [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro de borrados].",
        "rev-suppressed-text-permission": "Esta revisión ha sido <strong>suprimida</strong>.\nPara más información, consulta el [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} registro de supresiones].",
        "rev-deleted-text-unhide": "Esta revisión ha sido <strong>eliminada</strong>.\nPara más información, consulta el [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro de borrados].\nComo administrador, aún puedes [$1 ver esta revisión] si lo deseas.",
        "diff-multi-sameuser": "(No se {{PLURAL:$1|muestra una edición intermedia|muestran $1 ediciones intermedias}} del mismo usuario)",
        "diff-multi-otherusers": "(No se {{PLURAL:$1|muestra una edición intermedia|muestran $1 ediciones intermedias}} de {{PLURAL:$2|otro usuario|$2 usuarios}})",
        "diff-multi-manyusers": "(No se {{PLURAL:$1|muestra una edición intermedia|muestran $1 ediciones intermedias}} de más de {{PLURAL:$2|un usuario|$2 usuarios}})",
-       "difference-missing-revision": "No {{PLURAL:$2|se ha encontrado|se han encontrado}} {{PLURAL:$2|una revisión|$2 revisiones}} de la comparación solicitada ($1).\n\nLa causa de esto suele ser un enlace obsoleto hacia una página que ya ha sido borrada.\nPara más información, consulta el [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro de borrados].",
+       "difference-missing-revision": "No se {{PLURAL:$2|ha encontrado una revisión|han encontrado $2 revisiones}} de la comparación solicitada ($1).\n\nLa causa de esto suele ser un enlace obsoleto hacia una página que ya ha sido borrada.\nPara más información, consulta el [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro de borrados].",
        "searchresults": "Resultados de la búsqueda",
        "searchresults-title": "Resultados de la búsqueda de «$1»",
        "titlematches": "Resultados por título de página",
        "searchprofile-everything-tooltip": "Buscar en todo el contenido (incluyendo páginas de discusión)",
        "searchprofile-advanced-tooltip": "Buscar en espacios de nombres personalizados",
        "search-result-size": "$1 ({{PLURAL:$2|1 palabra|$2 palabras}})",
-       "search-result-category-size": "{{PLURAL:$1|1 miembro|$1 miembros}} ({{PLURAL:$2|1 subcategoría|$2 subcategorías}}, {{PLURAL:$3|1 fichero|$3 ficheros}})",
+       "search-result-category-size": "{{PLURAL:$1|1 miembro|$1 miembros}} ({{PLURAL:$2|1 subcategoría|$2 subcategorías}}, {{PLURAL:$3|1 archivo|$3 archivos}})",
        "search-redirect": "(redirige desde $1)",
        "search-section": "(sección $1)",
        "search-category": "(categoría $1)",
        "userrights-lookup-user": "Configurar grupos de usuarios",
        "userrights-user-editname": "Escribe un nombre de usuario:",
        "editusergroup": "Modificar grupos del usuario",
-       "editinguser": "Cambio de los permisos del usuario <strong>[[User:$1|$1]]</strong> $2",
-       "userrights-editusergroup": "Modificar grupos del usuario",
+       "editinguser": "Cambio de los permisos {{GENDER:$1|del usuario|de la usuaria}} <strong>[[User:$1|$1]]</strong> $2",
+       "userrights-editusergroup": "Modificar grupos {{GENDER:$1|del usuario| de la usuaria}}",
        "saveusergroups": "Guardar grupos del usuario",
        "userrights-groupsmember": "Miembro de:",
        "userrights-groupsmember-auto": "Miembro implícito de:",
        "recentchangeslinked-to": "Mostrar los cambios en páginas enlazadas con la página seleccionada",
        "upload": "Subir archivo",
        "uploadbtn": "Subir un archivo",
-       "reuploaddesc": "Cancelar subida y volver al formulario de carga",
+       "reuploaddesc": "Cancelar subida y volver al formulario",
        "upload-tryagain": "Enviar la descripción modificada del archivo",
        "uploadnologin": "No has iniciado sesión",
        "uploadnologintext": "Tienes que $1 para subir archivos.",
        "uploaderror": "Error al intentar subir",
        "upload-recreate-warning": "<strong>Aviso: Un archivo con ese nombre ha sido eliminado o renombrado.</strong>\n\nA continuación se muestra el registro de borrados y traslados de esta página:",
        "uploadtext": "Utiliza el siguiente formulario para subir archivos.\nPara ver o buscar archivos subidos con anterioridad, ve a la [[Special:FileList|lista de archivos subidos]].\nLos archivos subidos también quedarán registrados en el [[Special:Log/upload|registro de archivos subidos]], y los borrados en el [[Special:Log/delete|registro de borrados]].\n\nPara incluir un archivo en una página, usa un enlace como los mostrados a continuación:\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code></strong> para usar la versión a tamaño completo del archivo\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|texto alternativo]]</nowiki></code></strong> para una versión de 200 píxeles de ancho situada en una caja en el margen izquierdo con \"texto alternativo\" como descripción\n* <strong><code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code></strong> para enlazar directamente al archivo sin mostrarlo.",
-       "upload-permitted": "{{PLURAL:$2|Tipo|Tipos}} de archivo permitidos: $1.",
-       "upload-preferred": "{{PLURAL:$2|Tipo|Tipos}} de archivo preferidos: $1.",
-       "upload-prohibited": "{{PLURAL:$2|Tipo|Tipos}} de archivo prohibidos: $1.",
+       "upload-permitted": "{{PLURAL:$2|Tipo de archivo permitido|Tipos de archivo permitidos}}: $1.",
+       "upload-preferred": "{{PLURAL:$2|Tipo de archivo preferido|Tipos de archivo preferidos}}: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Tipo de archivo prohibido|Tipos de archivo prohibidos}}: $1.",
        "uploadlogpage": "Subidas de archivos",
        "uploadlogpagetext": "Debajo se muestra una lista de los últimos archivos subidos.\nVéase la [[Special:NewFiles|galería de archivos nuevos]] para una vista más estilizada",
        "filename": "Nombre del archivo",
        "uploadwarning": "Advertencia de subida de archivo",
        "uploadwarning-text": "Por favor, modifique la descripción del archivo abajo indicada e inténtelo de nuevo.",
        "savefile": "Guardar archivo",
-       "uploaddisabled": "Se desactivó la carga de archivos.",
-       "copyuploaddisabled": "Carga por URL deshabilitada.",
-       "uploaddisabledtext": "Se desactivó la carga de archivos.",
+       "uploaddisabled": "Se desactivó la subida de archivos.",
+       "copyuploaddisabled": "Se desactivó la subida de archivos mediante URL.",
+       "uploaddisabledtext": "Se desactivó la subida de archivos.",
        "php-uploaddisabledtext": "La subida de archivos está deshabilitada en PHP. Por favor compruebe <code>file_uploads</code> en php.ini.",
        "uploadscripted": "Este archivo contiene script o código HTML que puede ser interpretado erróneamente por un navegador web.",
+       "upload-scripted-pi-callback": "No se pueden cargar archivos que contengan instrucciones de procesamiento en forma de hojas de estilo XML.",
+       "uploaded-script-svg": "Se encontró el elemento habilitado para secuencias de órdenes «$1» en el archivo SVG cargado.",
+       "uploaded-hostile-svg": "Se encontró código CSS no seguro en el elemento de estilo del archivo SVG cargado.",
+       "uploaded-event-handler-on-svg": "No está permitido configurar atributos controladores de eventos <code>$1=\"$2\"</code> en los archivos SVG.",
+       "uploaded-href-attribute-svg": "No se permite que los archivos SVG contengan los atributos de «href» <code>&lt;$1 $2=\"$3\"&gt;</code> apuntando a recursos no locales (p. ej., http:// o javascript:).",
+       "uploaded-href-unsafe-target-svg": "Se encontró un \"href\" hacia un destino inseguro <code><$1 $2=\"$3\"></code> en el archivo SVG cargado.",
+       "uploaded-animate-svg": "Se encontró un etiqueta \"animate\" que puede estar cambiando \"href\", mediante el atributo \"from\" <code>&lt;$1 $2=\"$3\"&gt;</code> en el archivo SVG cargado.",
+       "uploaded-setting-event-handler-svg": "Está bloqueada la configuración de atributos controladores de eventos. Se encontró <code>&lt;$1 $2=\"$3\"&gt;</code> en el archivo SVG cargado.",
+       "uploaded-setting-href-svg": "Está bloqueado el uso de la etiqueta \"set\" para añadir un atributo \"href\" al elemento padre.",
+       "uploaded-wrong-setting-svg": "Está bloqueado el uso de la etiqueta \"set\" para añadir un destino remote/data/script a cualquier atributo. Se encontró <code>&lt;set to=\"$1\"&gt;</code> en el archivo SVG cargado.",
+       "uploaded-setting-handler-svg": "Están bloqueados los archivos SVG que configuran el atributo \"handler\" con remote/data/script. Se encontró <code>$1=\"$2\"</code> en el archivo SVG cargado.",
+       "uploaded-remote-url-svg": "Se bloquean los SVG que contienen URL de estilo externas. El archivo SVG cargado contiene <code>$1=\"$2\"</code>.",
+       "uploaded-image-filter-svg": "Se encontró un filtro de imagen con URL: <code>&lt;$1 $2=\"$3\"&gt;</code> en el archivo SVG cargado.",
        "uploadscriptednamespace": "Este archivo SVG contiene un espacio de nombre no permitido '$1'",
        "uploadinvalidxml": "No se pudo analizar el XML del archivo cargado.",
        "uploadvirus": "¡El archivo contiene un virus!\nDetalles: $1",
        "destfilename": "Nombre del archivo de destino:",
        "upload-maxfilesize": "Tamaño máximo del archivo: $1",
        "upload-description": "Descripción de archivo",
-       "upload-options": "Opciones de carga",
+       "upload-options": "Opciones de subida",
        "watchthisupload": "Vigilar este archivo",
        "filewasdeleted": "Un archivo con este nombre se subió con anterioridad y posteriormente ha sido borrado. Deberías revisar el $1 antes de subirlo de nuevo.",
        "filename-bad-prefix": "El nombre del archivo que estás subiendo comienza por '''«$1»''', un nombre nada descriptivo de su contenido. Es un típico nombre de los que asignan automáticamente las cámaras digitales.\n\nPor favor, elige un nombre más descriptivo.",
        "filename-prefix-blacklist": " #<!-- deja esta línea exactamente como está --> <pre>\n# La sintaxis de esta página es la siguiente:\n#   * Todo texto que se encuentre después del carácter \"#\" hasta el final de la línea se tratará como un comentario y será ignorado\n#   * Cualquier línea que no esté en blanco será interpretada como un prefijo típico en nombres de archivo que suelen asignar automáticamente las cámaras digitales\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # algunos teléfonos móviles / celulares\nIMG # genérico\nJD # Jenoptik\nMGP # Pentax\nPICT # misc.\n #</pre> <!-- deja esta línea exactamente como está -->",
        "upload-success-subj": "Subida con éxito",
-       "upload-success-msg": "Tu carga de [$2] fue exitosa. Está disponible aquí: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Problema en la carga",
-       "upload-failure-msg": "Hubo un problema durante la carga desde [$2]:\n\n$1",
-       "upload-warning-subj": "Alerta de carga",
-       "upload-warning-msg": "Hubo un problema con tu carga de [$2]. Puedes regresar al [[Special:Upload/stash/$1|formulario de carga]] para corregir este problema.",
+       "upload-success-msg": "La subida desde [$2] se realizó correctamente. Está disponible aquí: [[:{{ns:file}}:$1]]",
+       "upload-failure-subj": "Problema en la subida",
+       "upload-failure-msg": "Hubo un problema durante la subida desde [$2]:\n\n$1",
+       "upload-warning-subj": "Alerta de subida",
+       "upload-warning-msg": "Hubo un problema con tu subida desde [$2]. Puedes regresar al [[Special:Upload/stash/$1|formulario de subida]] para corregir este problema.",
        "upload-proto-error": "Protocolo incorrecto",
        "upload-proto-error-text": "Para subir archivos desde otra página la URL debe comenzar por <code>http://</code> o <code>ftp://</code>.",
        "upload-file-error": "Error interno al subir el archivo",
        "backend-fail-closetemp": "No se pudo cerrar el archivo temporal.",
        "backend-fail-read": "No se pudo leer el archivo «$1».",
        "backend-fail-create": "No se pudo escribir el archivo $1.",
-       "backend-fail-maxsize": "No se pudo escribir el archivo $1 porque es mayor de {{PLURAL:$2|un byte|$2 bytes}}.",
+       "backend-fail-maxsize": "No se pudo escribir el archivo \"$1\" porque es mayor a {{PLURAL:$2|un byte|$2 bytes}}.",
        "backend-fail-readonly": "El servidor (back-end) de almacenamiento \"$1\" está actualmente en estado de sólo lectura. La razón aducida fue: \"$2\"",
        "backend-fail-synced": "El archivo \"$1\" se encuentra en un estado incoherente dentro de los servidores (backends) de almacenamiento interno",
        "backend-fail-connect": "No se pudo conectar al servidor (backend) de almacenamiento \"$1\".",
        "uploadstash-summary": "Esta página da acceso a los ficheros enviados (o que están en el proceso de envío) pero que aún no han sido publicados en la wiki. Estos ficheros no son visibles para nadie, excepto para el usuario que los envió.",
        "uploadstash-clear": "Borrar los ficheros escondidos",
        "uploadstash-nofiles": "No tienes archivos escondidos.",
-       "uploadstash-badtoken": "No fue posible ejecutar esa operación, tal vez porque sus credenciales de edición expiraron. Reinténtelo.",
+       "uploadstash-badtoken": "No se pudo realizar la acción. Es posible que haya finalizado el tiempo de espera de la sesión. Inténtalo de nuevo.",
        "uploadstash-errclear": "El borrado de los archivos no tuvo éxito.",
        "uploadstash-refresh": "Actualizar la lista de archivos",
        "invalid-chunk-offset": "Desplazamiento inválido del fragmento",
        "img-auth-accessdenied": "Acceso denegado",
        "img-auth-nopathinfo": "Falta PATH_INFO.\nEl servidor no está configurado para proporcionar esta información.\nEs posible que esté basado en CGI y que no sea compatible con img_auth.\nConsulte https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
-       "img-auth-notindir": "Ruta solicitad no esá en el directorio de cargas configurado",
+       "img-auth-notindir": "La ruta solicitada no figura en la carpeta de subidas configurada.",
        "img-auth-badtitle": "Incapaz de construir un título válido de «$1».",
        "img-auth-nologinnWL": "No has iniciado sesión y «$1» no está en la lista blanca.",
        "img-auth-nofile": "El archivo «$1» no existe.",
        "upload_source_url": "(un archivo elegido de una URL válida y accesible públicamente)",
        "upload_source_file": "(un archivo elegido de tu computadora)",
        "listfiles-delete": "borrar",
-       "listfiles-summary": "Esta página especial muestra todos los archivos subidos.\nCuando el usuario la filtra, solo se muestran los archivos cargados por el usuario en su versión más reciente.",
+       "listfiles-summary": "Esta página especial muestra todos los archivos subidos.",
        "listfiles_search_for": "Buscar por nombre de imagen:",
        "listfiles-userdoesnotexist": "La cuenta de usuario «$1» no está registrada.",
        "imgfile": "archivo",
        "filehist-comment": "Comentario",
        "imagelinks": "Usos del archivo",
        "linkstoimage": "{{PLURAL:$1|La siguiente página enlaza|Las siguientes páginas enlazan}} a este archivo:",
-       "linkstoimage-more": "Hay más de {{PLURAL:$1|una página que enlaza|$1 páginas que enlazan}} con este archivo.\n\nLa lista siguiente sólo muestra {{PLURAL:$1|la primera página que enlaza|las primeras $1 páginas que enlazan}} con este archivo.\nTambién puedes consultar la [[Special:WhatLinksHere/$2|lista completa]].",
+       "linkstoimage-more": "Hay más de {{PLURAL:$1|una página que enlaza|$1 páginas que enlazan}} con este archivo.\nLa lista siguiente sólo muestra {{PLURAL:$1|la primera página que enlaza|las primeras $1 páginas que enlazan}} con este archivo.\nTambién puedes consultar la [[Special:WhatLinksHere/$2|lista completa]].",
        "nolinkstoimage": "No hay páginas que enlacen a esta imagen.",
        "morelinkstoimage": "Vea [[Special:WhatLinksHere/$1|más enlaces]] a este archivo.",
        "linkstoimage-redirect": "$1 (archivo de redirección) $2",
        "filedelete-maintenance": "Borrado y restauración de archivos temporalmente deshabilitados durante el mantenimiento.",
        "filedelete-maintenance-title": "No se puede eliminar el archivo",
        "mimesearch": "Búsqueda por MIME",
-       "mimesearch-summary": "Esta página permite el filtrado de ficheros por su tipo MIME.\nEntrada: contenttype/subtype o contenttype/*, p. ej. <code>image/jpeg</code>.",
+       "mimesearch-summary": "Esta página permite el filtrado de ficheros por su tipo MIME.\nEntrada: tipo/subtipo o tipo/*, p. ej. <code>image/jpeg</code>.",
        "mimetype": "Tipo MIME:",
        "download": "descargar",
        "unwatchedpages": "Páginas no vigiladas",
        "unusedtemplatestext": "Aquí se enumeran todas las páginas en el espacio de nombres {{ns:template}} que no están incluidas en otras páginas. Recuerda mirar lo que enlaza a las plantillas antes de borrarlas.",
        "unusedtemplateswlh": "otros enlaces",
        "randompage": "Página aleatoria",
-       "randompage-nopages": "No hay páginas en los siguientes {{PLURAL:$2|espacio de nombre|espacios de nombre}}: $1.",
+       "randompage-nopages": "No hay páginas en {{PLURAL:$2|el siguiente espacio de nombres|los siguientes espacios de nombres}}: $1.",
        "randomincategory": "Página aleatoria en categoría",
        "randomincategory-invalidcategory": "\"$1\" no es una categoría válida.",
        "randomincategory-nopages": "No hay páginas en la categoría [[:Category:$1|$1]].",
        "unusedimages": "Imágenes sin uso",
        "wantedcategories": "Categorías requeridas",
        "wantedpages": "Páginas requeridas",
-       "wantedpages-summary": "Lista de páginas inexistentes con el mayor número de enlaces a ellas, excluyendo páginas con únicamente redirecciones. Para una lista de páginas con redirecciones apuntando a ellas, consulte [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "Lista de páginas inexistentes con el mayor número de enlaces a ellas, excluyendo páginas que son solo redirecciones a ellas. Para ver una lista de páginas inexistentes con redirecciones apuntando a ellas, consulta [[{{#special:BrokenRedirects}}|la lista de redirecciones rotas]].",
        "wantedpages-badtitle": "Título inválido en conjunto de resultados: $1",
        "wantedfiles": "Ficheros requeridos",
        "wantedfiletext-cat": "Los siguientes archivos están en uso, pero no existen. Es posible que algunos de ellos estén almacenados en repositorios externos y se hayan incluido aquí por error; dichas entradas aparecen <del>tachadas</del>. De igual manera, las páginas que incluyen archivos inexistentes se enumeran en [[:$1]].",
        "linksearch-pat": "Patrón de búsqueda:",
        "linksearch-ns": "Espacio de nombre:",
        "linksearch-ok": "Buscar",
-       "linksearch-text": "Se pueden usar caracteres comodín como \"*.wikipedia.org\".\nEs necesario, por lo menos, un dominio de alto nivel, por ejemplo \"*.org\".<br />\n{{PLURAL:$2|Protocolo|Protocolos}} soportados: <code>$1</code> (si no se especifica ninguno, el protocolo por defecto es http://).",
+       "linksearch-text": "Se pueden usar caracteres comodín como \"*.wikipedia.org\".\nEs necesario, por lo menos, un dominio de alto nivel, por ejemplo \"*.org\".<br />\n{{PLURAL:$2|Protocolo soportado|Protocolos soportados}}: <code>$1</code> (si no se especifica ninguno, el predeterminado es http://).",
        "linksearch-line": "$1 enlazado desde $2",
        "linksearch-error": "Los comodines sólo pueden aparecer al principio del nombre de sitio.",
        "listusersfrom": "Mostrar usuarios que empiecen por:",
        "undeletepagetext": "{{PLURAL:$1|La siguiente página ha sido borrada, pero aún está en el archivo y puede ser restaurada.|Las siguientes $1 páginas han sido borradas, pero aún están en el archivo y pueden ser restauradas.}}\nPuede que el archivo se limpie periódicamente.",
        "undelete-fieldset-title": "Restaurar revisiones",
        "undeleteextrahelp": "Para restaurar todo el historial de la página, deja todas las casillas sin seleccionar y pulsa en <strong><em>{{int:undeletebtn}}</em></strong>. Para realizar una restauración selectiva, marca las revisiones que deban restaurarse y pulsa en <strong><em>{{int:undeletebtn}}</em></strong>.",
-       "undeleterevisions": "$1 {{PLURAL:$1|revisión|revisiones}} archivadas",
+       "undeleterevisions": "$1 {{PLURAL:$1|revisión archivada|revisiones archivadas}}",
        "undeletehistory": "Si restauras la página, todas sus revisiones se restaurarán en el historial.\nSi una nueva página con el mismo nombre se ha creado desde que se borró la original, las versiones restauradas aparecerán en el historial previo.",
        "undeleterevdel": "No se deshará el borrado si éste resulta en el borrado parcial de la última revisión de la página. En tal caso, desmarque o muestre las revisiones borradas más recientes. Las revisiones de archivos que no tiene permitido ver no se restaurarán.",
        "undeletehistorynoadmin": "El artículo ha sido borrado. La razón de su eliminación se indica abajo en el resumen, así como los detalles de las ediciones realizadas antes del borrado. El texto completo del artículo está disponible sólo para usuarios con permisos de administrador.",
        "undeleteviewlink": "ver",
        "undeleteinvert": "Invertir selección",
        "undeletecomment": "Razón:",
-       "undeletedrevisions": "{{PLURAL:$1|Una edición restaurada|$1 ediciones restauradas}}",
-       "undeletedrevisions-files": "$1 {{PLURAL:$1|ediciones restauradas y $2 archivo restaurado|ediciones y $2 archivos restaurados}}",
+       "undeletedrevisions": "{{PLURAL:$1|Una revisión restaurada|$1 revisiones restauradas}}",
+       "undeletedrevisions-files": "{{PLURAL:$1|1 revisión|$1 revisiones}} y {{PLURAL:$2|1 archivo|$2 archivos}} restaurados",
        "undeletedfiles": "$1 {{PLURAL:$1|archivo restaurado|archivos restaurados}}",
        "cannotundelete": "Hubo un error durante la restauración:\n$1",
        "undeletedpage": "'''Se ha restaurado $1'''\n\nConsulta el [[Special:Log/delete|registro de borrados]] para ver una lista de los últimos borrados y restauraciones.",
        "blocklist-reason": "Motivo",
        "ipblocklist-submit": "Buscar",
        "ipblocklist-localblock": "Bloqueo local",
-       "ipblocklist-otherblocks": "Otros {{PLURAL:$1|bloqueo| bloqueos}}",
+       "ipblocklist-otherblocks": "{{PLURAL:$1|Otro bloqueo|Otros bloqueos}}",
        "infiniteblock": "infinito",
        "expiringblock": "expira el $1 a las $2",
        "anononlyblock": "sólo anón.",
        "movepagetext-noredirectfixer": "Usando el siguiente formulario se renombrará una página, trasladando todo su historial al nuevo nombre.\nEl título anterior se convertirá en una redirección al nuevo título.\nAsegúrate de no dejar [[Special:DoubleRedirects|redirecciones dobles]] o [[Special:BrokenRedirects|rotas]].\nTú eres responsable de hacer que los enlaces sigan apuntando adonde se supone que deberían hacerlo.\n\nRecuerda que la página '''no''' será renombrada si ya existe una página con el nuevo título, a no ser que sea una página vacía o una redirección sin historial.\nEsto significa que podrás renombrar una página a su título original si has cometido un error, pero que no podrás sobrescribir una página existente.\n\n'''¡Aviso!'''\nEste puede ser un cambio drástico e inesperado para una página popular;\npor favor, asegúrate de entender las consecuencias del procedimiento antes de seguir adelante.",
        "movepagetalktext": "La página de discusión asociada, si existe, será renombrada automáticamente '''a menos que:'''\n*Estés trasladando la página entre espacios de nombres diferentes,\n*Una página de discusión no vacía ya exista con el nombre nuevo, o\n*No marques el recuadro «Renombrar la página de discusión asociada».\n\nEn estos casos, deberás trasladar manualmente el contenido de la página de discusión.",
        "movearticle": "Renombrar página",
-       "moveuserpage-warning": "'''Aviso:''' estás a punto de trasladar una página de usuario. Ten en cuenta que solo será trasladada la página; el usuario '''no''' será renombrado.",
+       "moveuserpage-warning": "<strong>Advertencia:</strong> estás a punto de trasladar una página de usuario. Ten en cuenta que solo se trasladará la página; el usuario <em>no</em> se renombrará.",
        "movecategorypage-warning": "<strong>Advertencia:</strong> Estás a punto de trasladar una página de categoría. Ten en cuenta que se trasladará sólo la página y las páginas en la antigua categoría <em>no</em> serán recategorizadas en la nueva.",
        "movenologintext": "Es necesario ser usuario registrado y [[Special:UserLogin|haber iniciado sesión]] para renombrar una página.",
        "movenotallowed": "No tienes permiso para trasladar páginas.",
        "import-interwiki-history": "Copiar todas las versiones históricas para esta página",
        "import-interwiki-templates": "Incluir todas las plantillas",
        "import-interwiki-submit": "Importar",
+       "import-mapping-default": "Importar a ubicaciones predeterminadas",
+       "import-mapping-namespace": "Importar a un espacio de nombres:",
+       "import-mapping-subpage": "Importar como subpáginas de la página siguiente:",
        "import-upload-filename": "Nombre de archivo:",
        "import-comment": "Comentario:",
        "importtext": "Por favor, exporta el archivo desde el wiki de origen usando la [[Special:Export|herramienta de exportación]], guárdalo en tu disco y súbelo aquí.",
        "tooltip-preferences-save": "Guardar las preferencias",
        "tooltip-summary": "Escribe un breve resumen",
        "interlanguage-link-title": "$1 ($2)",
-       "common.css": "/* El CSS colocado en esta página será aplicado a todas las apariencias */",
+       "common.css": "/* Los estilos CSS colocados aquí se aplicarán a todas las apariencias */",
        "print.css": "/* Los estilos CSS colocados aquí afectarán la impresión */",
        "noscript.css": "/* Los estilos CSS colocados aquí se aplicarán a los usuarios que hayan desactivado el JavaScript en su navegador */",
        "group-autoconfirmed.css": "/* Los estilos CSS colocados aquí se aplicarán para todos los usuarios del grupo Usuarios autoconfirmados */",
+       "group-user.css": "/* Los estilos CSS colocados aquí se aplicarán para todos los usuarios registrados */",
        "group-bot.css": "/* Los estilos CSS colocados aquí se aplicarán para todos los usuarios del grupo Bots */",
        "group-sysop.css": "/* Los estilos CSS colocados aquí se aplicarán para todos los usuarios del grupo Administradores */",
        "group-bureaucrat.css": "/* Los estilos CSS colocados aquí se aplicarán para todos los usuarios del grupo Burócratas */",
        "common.js": "/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios en cada carga de página */",
        "group-autoconfirmed.js": "/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios del grupo Usuarios autoconfirmados */",
+       "group-user.js": "/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios registrados */",
        "group-bot.js": "/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios del grupo Bots */",
        "group-sysop.js": "/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios del grupo Administradores */",
        "group-bureaucrat.js": "/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios del grupo Burócratas */",
        "exif-compression-2": "CCITT Group 3 1-Dimensional Modified Huffman run length encoding",
        "exif-compression-3": "Codificación de fax CCITT grupo 3",
        "exif-compression-4": "Codificación de fax CCITT grupo 4",
+       "exif-compression-6": "JPEG (antiguo)",
        "exif-copyrighted-true": "Con derechos de autor",
        "exif-copyrighted-false": "No se ha definido el estado del copyright",
        "exif-unknowndate": "Fecha desconocida",
        "exif-orientation-8": "Rotada 90° a la derecha",
        "exif-planarconfiguration-1": "formato panorámico",
        "exif-planarconfiguration-2": "formato plano",
+       "exif-xyresolution-i": "$1 ppp",
        "exif-colorspace-65535": "Sin calibrar",
        "exif-componentsconfiguration-0": "no existe",
        "exif-exposureprogram-0": "No definido",
        "confirmemail_noemail": "No tienes una dirección de correo electrónico válida en tus [[Special:Preferences|preferencias de usuario]].",
        "confirmemail_text": "{{SITENAME}} requiere la validación de tu dirección de correo antes de usarlo. Pulsa el botón de abajo para enviar la confirmación.\nEl correo incluirá un enlace con un código. Introdúcelo para confirmar la validez de tu dirección.",
        "confirmemail_pending": "Ya se te ha enviado un código de confirmación; si creaste una cuenta recientemente, puede que tengas que esperar unos minutos para que te llegue antes de intentar pedir un nuevo código.",
-       "confirmemail_send": "Envíar el código de confimación.",
+       "confirmemail_send": "Enviar un código de confirmación",
        "confirmemail_sent": "Confirmación de correo enviada.",
        "confirmemail_oncreate": "Se ha enviado un código de confirmación a tu dirección de correo electrónico.\nEste código no es necesario para iniciar sesión, pero necesitarás proporcionarlo antes de activar cualquier función basada en correo electrónico en el wiki.",
        "confirmemail_sendfailed": "No fue posible enviar el correo de confirmación. Por favor, comprueba la validez de la dirección de correo.\n\nEl servidor indicó el error: $1",
        "confirmemail_success": "Su dirección de correo ha sido confirmada\nAhora puedes [[Special:UserLogin|identificarte]] y colaborar en el wiki.",
        "confirmemail_loggedin": "Tu dirección de correo electrónico ha sido confirmada.",
        "confirmemail_subject": "confirmación de la dirección de correo de {{SITENAME}}",
-       "confirmemail_body": "Alguien, probablemente usted mismo, ha registrado desde la dirección IP $1 la cuenta \"$2\" en {{SITENAME}}, utilizando esta dirección de correo.\n\nPara confirmar que esta cuenta realmente le pertenece y activar el correo en {{SITENAME}}, siga este enlace:\n\n$3\n\nSi la cuenta *no* es suya, siga este otro enlace para cancelar la confirmación de la dirección de correo:\n\n$5\n\nEl código de confirmación expirará en $4.",
-       "confirmemail_body_changed": "Alguien, probablemente tú,\nha modificado la dirección de correo electrónico asociado a la cuenta \"$2\" hacia esta en {{SITENAME}}, desde la dirección IP $1.\n\nPara confirmar que esta cuenta realmente te pertenece y reactivar las funciones de correo electrónico en {{SITENAME}}, abre este enlace en su navegador:\n\n$3\n\nSi la cuenta *no* te pertenece, sigue el siguiente enlace para cancelar la confirmación:\n\n$5\n\nEste código de confirmación expirará el $4.",
-       "confirmemail_body_set": "Alguien, probablemente tu desde la dirección IP $1,\nha cambiado la dirección de correo electrónico de la cuenta $2 a esta dirección en {{SITENAME}}.\n\nPara confirmar que esta cuenta realmente te pertenece y activar las capacidades del correo electrónico en {{SITENAME}}, abre este enlace en tu navegador:\n\n$3\n\nSi la cuenta *no* te pertenece sigue entonces este otro enlace para cancelar la confirmación del correo electrónico:\n\n$5\n\nEste código de confirmación caducará el $4.",
+       "confirmemail_body": "Alguien, probablemente tú mismo, ha registrado desde la dirección IP $1 la cuenta \"$2\" en {{SITENAME}}, utilizando esta dirección de correo.\n\nPara confirmar que esta cuenta realmente te pertenece y activar el correo en {{SITENAME}}, sigue este enlace en tu navegador:\n\n$3\n\nSi la cuenta *no* es tuya, sigue este otro enlace para cancelar la confirmación de la dirección de correo:\n\n$5\n\nEl código de confirmación expirará el $4.",
+       "confirmemail_body_changed": "Alguien, probablemente tú,\nha modificado la dirección de correo electrónico asociado a la cuenta \"$2\" hacia esta en {{SITENAME}}, desde la dirección IP $1.\n\nPara confirmar que esta cuenta realmente te pertenece y reactivar las funciones de correo electrónico en {{SITENAME}}, sigue este enlace en tu navegador:\n\n$3\n\nSi la cuenta *no* te pertenece, sigue este otro enlace para cancelar la confirmación:\n\n$5\n\nEste código de confirmación expirará el $4.",
+       "confirmemail_body_set": "Alguien, probablemente tú, ha establecido la dirección de correo electrónico de la cuenta $2 a esta dirección en {{SITENAME}}, desde la dirección IP $1.\n\nPara confirmar que esta cuenta realmente te pertenece y activar las funciones de correo electrónico en {{SITENAME}}, sigue este enlace en tu navegador:\n\n$3\n\nSi la cuenta *no* te pertenece, sigue este otro enlace para cancelar la confirmación:\n\n$5\n\nEste código de confirmación expirará el $4.",
        "confirmemail_invalidated": "La confirmación de la dirección de correo electrónico ha sido cancelada",
        "invalidateemail": "Cancelar confirmación de correo electrónico",
        "scarytranscludedisabled": "[Transclusión interwiki está deshabilitada]",
        "scarytranscludefailed": "[Obtención de plantilla falló para $1]",
        "scarytranscludefailed-httpstatus": "[Error de recuperación de plantilla para $1: HTTP $2]",
        "scarytranscludetoolong": "[El URL es demasiado largo]",
-       "deletedwhileediting": "'''Aviso''': ¡Esta página fue borrada después de que usted empezara a editar!",
-       "confirmrecreate": "El usuario [[User:$1|$1]] ([[User talk:$1|disc.]]) borró esta página después de que comenzaste a editarla, por el motivo:\n: ''$2''\nConfirma que realmente quieres volver a crear esta página.",
+       "deletedwhileediting": "<strong>Aviso</strong>: se borró esta página después de que empezaras a editarla.",
+       "confirmrecreate": "El usuario [[User:$1|$1]] ([[User talk:$1|disc.]]) borró esta página después de que comenzaras a editarla, por este motivo:\n: ''$2''\nConfirma que realmente quieres volver a crear esta página.",
        "confirmrecreate-noreason": "El usuario [[User:$1|$1]] ([[User talk:$1|discusión]]) borró esta página después de que comenzaras a editarla. Por favor confirma que realmente quieres recrear esta página.",
        "recreate": "Crear de nuevo",
        "confirm_purge_button": "Aceptar",
        "confirm-unwatch-button": "Aceptar",
        "confirm-unwatch-top": "¿Quitar esta página de tu lista de seguimiento?",
        "comma-separator": ",&#32;",
+       "percent": "$1 %",
        "quotation-marks": "«$1»",
        "imgmultipageprev": "← página anterior",
        "imgmultipagenext": "siguiente página →",
        "tags-edit-title": "Editar etiquetas",
        "tags-edit-manage-link": "Administrar etiquetas",
        "tags-edit-revision-selected": "{{PLURAL:$1|Revisión seleccionada|Revisiones seleccionadas}} de [[:$2]]:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Evento del registro seleccionado|Eventos del registro seleccionados}}:",
        "tags-edit-revision-legend": "Agregar o quitar etiquetas de {{PLURAL:$1|esta revisión|todas las $1 revisiones}}",
        "tags-edit-logentry-legend": "Agregar o quitar etiquetas de {{PLURAL:$1|esta entrada del registro|todas las $1 entradas del registro}}",
        "tags-edit-existing-tags": "Etiquetas existentes:",
        "tags-edit-logentry-submit": "Aplicar los cambios a {{PLURAL:$1|esta entrada del registro|$1 entradas del registro}}",
        "tags-edit-success": "Los cambios se aplicaron con éxito.",
        "tags-edit-failure": "No se pudieron aplicar los cambios:\n$1",
+       "tags-edit-nooldid-title": "Revisión de página no válida",
+       "tags-edit-nooldid-text": "No se especificó ninguna revisión en que realizar esta acción, o bien, la revisión especificada no existe.",
        "tags-edit-none-selected": "Selecciona al menos una etiqueta que añadir o quitar.",
        "comparepages": "Comparar páginas",
        "compare-page1": "Página 1",
        "log-name-pagelang": "Registro de cambios en idiomas",
        "log-description-pagelang": "Este es un registro de los cambios en los idiomas de las páginas.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|cambió}} el idioma de la página «$3» del $4 al $5.",
-       "default-skin-not-found": "¡Vaya! La apariencia predeterminada de tu wiki, definida en <code dir=\"ltr\">$wgDefaultSkin</code> como <code>$1</code>, no está disponible.\n\nLa instalación parece contener {{PLURAL:$4|la siguiente apariencia|las siguientes apariencias}}. Revisa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Configuración de apariencias] para más información sobre cómo {{PLURAL:$4|activarla|activarlas y seleccionar la predeterminada}}.\n\n$2\n\n; Si acabas de instalar MediaWiki:\n: Probablemente la hayas instalado desde git, o directamente desde el código fuente usando algún otro método. Es normal que ocurra esto. Intenta instalar algunas apariencias desde [https://www.mediawiki.org/wiki/Category:All_skins el directorio de apariencias de mediawiki.org] ya sea:\n:* Descargando [https://www.mediawiki.org/wiki/Download el instalador tarball], el cual contiene varias apariencias y extensiones. Puedes copiar y pegar el directorio <code>skins/</code> de ahí.\n:* Descargando tarballs individuales de cada apariencia de [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clonando uno de los repositorios en <code>mediawiki/skins/*</code> via git dentro del directorio <code dir=\"ltr\">skins/</code> de tu instalación de MediaWiki.\n: Hacer esto no debería interferir con tu repositorio git si eres un desarrollador de MediaWiki.\n\n; Si acabas de actualizar MediaWiki:\n: A partir de MediaWiki 1.24 ya no se habilitan automáticamente las apariencias instaladas (revisa [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Puedes pegar {{PLURAL:$5|la siguiente línea|las siguientes líneas}} en <code>LocalSettings.php</code> para habilitar {{PLURAL:$5|la apariencia instalada|todas las apariencias instaladas}} actualmente:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si acabas de modificar <code>LocalSettings.php</code>:\n: Comprueba detenidamente posibles errores tipográficos en los nombres de las apariencias.",
-       "default-skin-not-found-no-skins": "¡Vaya! La apariencia predeterminada de tu wiki, definida en <code>$wgDefaultSkin</code> como <code>$1</code>, no está disponible.\n\nNo tienes apariencias instaladas.\n\n; Si has instalado o actualizado MediaWiki recientemente:\n: Probablemente has instalado desde git, o directamente desde el código fuente usando algún otro método. Esto puede ocurrir en este caso. A partir de MediaWiki 1.24 ya no se incluye ninguna apariencia en el repositorio principal. Trata de instalar algunas apariencias desde el [https://www.mediawiki.org/wiki/Category:All_skins directorio de apariencias de mediawiki.org], ya sea:\n:* Descargando el [https://www.mediawiki.org/wiki/Download instalador tarball], que viene con varias apariencias y extensiones. Puedes copiar y pegar el directorio <code>skins/</code> desde ahí.\n:* Descargando tarballs individuales de cada apariencia de [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clonando alguno de los repositorios en <code>mediawiki/skins/*</code> usando git en el directorio <code dir=\"ltr\">skins/</code> de tu instalación de MediaWiki.\n: Hacer esto no debería interferir con tu repositorio de MediaWiki si eres un desarrollador de MediaWiki. Revisa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Configuración de apariencias] para información sobre cómo habilitar las apariencias y seleccionar la predeterminada.",
+       "default-skin-not-found": "¡Vaya! La apariencia predeterminada de tu wiki, definida en <code dir=\"ltr\">$wgDefaultSkin</code> como <code>$1</code>, no está disponible.\n\nLa instalación parece contener {{PLURAL:$4|la siguiente apariencia|las siguientes apariencias}}. Revisa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Configuración de apariencias] para más información sobre cómo {{PLURAL:$4|activarla|activarlas y seleccionar la predeterminada}}.\n\n$2\n\n; Si acabas de instalar MediaWiki:\n: Probablemente la hayas instalado desde git, o directamente desde el código fuente usando algún otro método. Es normal que ocurra esto. Intenta instalar algunas apariencias desde [https://www.mediawiki.org/wiki/Category:All_skins el directorio de apariencias de mediawiki.org] ya sea:\n:* Descargando [https://www.mediawiki.org/wiki/Download el instalador tarball], el cual contiene varias apariencias y extensiones. Puedes copiar y pegar el directorio <code>skins/</code> de ahí.\n:* Descargando tarballs individuales de cada apariencia 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 Usando Git para descargar apariencias].\n: Hacer esto no debería interferir con tu repositorio git si eres un desarrollador de MediaWiki.\n\n; Si acabas de actualizar MediaWiki:\n: A partir de MediaWiki 1.24 ya no se activan automáticamente las apariencias instaladas (revisa [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Puedes pegar {{PLURAL:$5|la siguiente línea|las siguientes líneas}} en <code>LocalSettings.php</code> para activar {{PLURAL:$5|la apariencia instalada|todas las apariencias instaladas}} actualmente:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si acabas de modificar <code>LocalSettings.php</code>:\n: Comprueba detenidamente posibles errores tipográficos en los nombres de las apariencias.",
+       "default-skin-not-found-no-skins": "¡Vaya! La apariencia predeterminada de tu wiki, definida en <code>$wgDefaultSkin</code> como <code>$1</code>, no está disponible.\n\nNo tienes apariencias instaladas.\n\n; Si has instalado o actualizado MediaWiki recientemente:\n: Probablemente has instalado desde git, o directamente desde el código fuente usando algún otro método. Esto puede ocurrir en este caso. A partir de MediaWiki 1.24 ya no se incluye ninguna apariencia en el repositorio principal. Trata de instalar algunas apariencias desde el [https://www.mediawiki.org/wiki/Category:All_skins directorio de apariencias de mediawiki.org], ya sea:\n:* Descargando el [https://www.mediawiki.org/wiki/Download instalador tarball], que viene con varias apariencias y extensiones. Puedes copiar y pegar el directorio <code>skins/</code> desde ahí.\n:* Descargando tarballs individuales de cada apariencia 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 Usando Git para descargar apariencias].\n: Hacer esto no debería interferir con tu repositorio de MediaWiki si eres un desarrollador de MediaWiki. Revisa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Configuración de apariencias] para información sobre cómo habilitar las apariencias y seleccionar la predeterminada.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (activado)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''desactivado''')",
        "mediastatistics": "Estadísticas de multimedia",
        "mediastatistics-summary": "Estadísticas sobre los tipos de archivos cargados. Sólo se incluyen las versiones más recientes. Los archivos antiguos o eliminados están excluidos.",
+       "mediastatistics-nfiles": "$1 ($2 %)",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 ''byte''|$1 ''bytes''}} ($2; $3 %)",
        "mediastatistics-table-mimetype": "Tipo MIME",
        "mediastatistics-table-extensions": "Extensiones posibles",
        "special-characters-group-khmer": "Jemer",
        "special-characters-title-endash": "semirraya",
        "special-characters-title-emdash": "raya",
-       "special-characters-title-minus": "signo menos"
+       "special-characters-title-minus": "signo de resta"
 }
index 782feaa..2d52780 100644 (file)
        "talkpagelinktext": "arutelu",
        "specialpage": "Erilehekülg",
        "personaltools": "Personaalsed tööriistad",
-       "articlepage": "Artiklilehekülg",
+       "articlepage": "Vaata sisulehekülge",
        "talk": "Arutelu",
        "views": "vaatamisi",
        "toolbox": "Tööriistad",
        "badtitletext": "Soovitud lehekülje pealkiri oli vigane, tühi või teisest keeleversioonist või vikist valesti lingitud.\nSee võib sisaldada ühte või enamat märki, mida ei saa pealkirjades kasutada.",
        "title-invalid-empty": "Päritud lehekülje pealkiri on tühi või sisaldab ainult nimeruumi nimi.",
        "title-invalid-utf8": "Päritud lehekülje pealkiri sisaldab vigast UTF-8 jada.",
-       "title-invalid-interwiki": "Pealkiri sisaldab intervikilinki.",
+       "title-invalid-interwiki": "Päritud lehekülje pealkiri sisaldab intervikilinki, mida ei saa pealkirjas kasutada.",
        "title-invalid-talk-namespace": "Päritud lehekülje pealkiri viitab aruteluleheküljele, mida ei saa olemas olla.",
        "title-invalid-characters": "Päritud lehekülje pealkiri sisaldab vigaseid märke: \"$1\".",
        "title-invalid-relative": "Pealkirjas on suhteline tee. Suhtelised lehekülje pealkirjad (./, ../) on vigased, sest nad on kasutaja brauseri jaoks sageli kättesaamatud.",
        "title-invalid-magic-tilde": "Päritud lehekülje pealkiri sisaldab vigast võlutildede jada (<nowiki>~~~</nowiki>).",
-       "title-invalid-too-long": "Päritud lehekülje pealkiri on liiga pikk. See ei tohi olla UTF-8 kodeeringus pikem kui $1 baiti.",
+       "title-invalid-too-long": "Päritud lehekülje pealkiri on liiga pikk. See ei tohi olla UTF-8 kodeeringus pikem kui $1 {{PLURAL:$1|bait|baiti}}.",
        "title-invalid-leading-colon": "Päritud lehekülje pealkiri sisaldab alguses vigast koolonit.",
        "perfcached": "Järgmised andmed on puhverdatud ja ei pruugi olla kõige värskemad. Puhvris on saadaval kuni {{PLURAL:$1|üks tulemus|$1 tulemust}}.",
        "perfcachedts": "Järgmised andmed on vahemälus. Viimane uuendamisaeg: $2, kell $3. Puhvris on saadaval kuni {{PLURAL:$4|üks tulemus|$4 tulemust}}.",
        "template-protected": "(kaitstud)",
        "template-semiprotected": "(poolkaitstud)",
        "hiddencategories": "See lehekülg kuulub {{PLURAL:$1|1 peidetud kategooriasse|$1 peidetud kategooriasse}}:",
+       "edittools": "<!-- Siinset teksti näidatakse redigeerimis- ja üleslaadimisvormi all. -->",
        "nocreatetext": "Lehekülje loomise õigus on {{GRAMMAR:inessive|{{SITENAME}}}} piiratud.\nVõid pöörduda tagasi ja toimetada olemasolevat lehekülge või [[Special:UserLogin|sisse logida või uue konto luua]].",
        "nocreate-loggedin": "Sul ei ole luba luua uusi lehekülgi.",
        "sectioneditnotsupported-title": "Alaosa redigeerimine pole lubatud.",
        "content-model-css": "CSS",
        "content-json-empty-object": "Tühi objekt",
        "content-json-empty-array": "Tühi massiiv",
+       "duplicate-args-warning": "<strong>Hoiatus:</strong> [[:$1]] kutsub malli [[:$2]] nii, et parameetrile \"$3\" vastab rohkem kui üks väärtus. Väärtustest kasutatakse ainult viimast.",
        "duplicate-args-category": "Leheküljed, kus mallikutses on topeltargument",
        "duplicate-args-category-desc": "Lehekülg sisaldab mallikutseid, kus mõnd argumenti on kasutatud mitu korda, näiteks <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> või <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Hoiatus:''' See lehekülg kasutab liialt palju aeglustavaid laiendusfunktsioone. Neid võiks kasutada vähem kui {{PLURAL:$2|ühel|$2}} korral, praegu on kasutatud {{PLURAL:$1|ühel|$1}} korral.",
        "uploaddisabledtext": "Faili üleslaadimine on keelatud.",
        "php-uploaddisabledtext": "Failide üleslaadmine on PHP seadetes keelatud.\nPalun vaata <code>file_uploads</code> sätet.",
        "uploadscripted": "See fail sisaldab HTML- või skriptikoodi, mida veebilehitseja võib valesti kuvada.",
+       "upload-scripted-pi-callback": "Üles ei saa laadida faili, mis sisaldab XML-laadilehe protsessikäsku.",
+       "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-attribute-svg": "Mittekohaliku sihtkohaga (nt http://, javascript:) href-atribuudid <code>&lt;$1 $2=\"$3\"&gt;</code> pole SVG-failides lubatud.",
+       "uploaded-href-unsafe-target-svg": "Üleslaaditud SVG-failist leiti href, mille sihtkoht <code>&lt;$1 $2=\"$3\"&gt;</code> on ebaturvaline.",
+       "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.",
+       "uploaded-wrong-setting-svg": "Sildi \"set\" kasutamine, selleks et lisada mistahes atribuudile kaug-, andme- või skriptisihtkoht, on keelatud. Üleslaaditud SVG-failist leiti <code>&lt;set to=\"$1\"&gt;</code>.",
+       "uploaded-setting-handler-svg": "SVG-failid, mis seavad atribuudile \"handler\" kaug-, andme- või skriptisihtkoha, on keelatud. Üleslaaditud SVG-failist leiti <code>$1=\"$2\"</code>.",
+       "uploaded-remote-url-svg": "SVG-fail, mis kasutab mistahes laadiatribuudi seadmiseks kaug-URL-i, on keelatud. Üleslaaditud SVG-failist leiti <code>$1=\"$2\"</code>.",
+       "uploaded-image-filter-svg": "Üleslaaditud SVG-failist leiti URL-iga pildifilter: <code>&lt;$1 $2=\"$3\"&gt;</code>.",
        "uploadscriptednamespace": "See SVG-fail sisaldab keelatud nimeruumi \"$1\".",
        "uploadinvalidxml": "Üleslaaditud failis sisalduvat XMLi ei õnnestunud liigendada.",
        "uploadvirus": "Fail sisaldab viirust! Täpsemalt: $1",
        "upload-maxfilesize": "Maksimaalne failisuurus: $1",
        "upload-description": "Faili kirjeldus",
        "upload-options": "Üleslaadimise sätted",
-       "watchthisupload": "Jälgi seda lehekülge",
+       "watchthisupload": "Jälgi seda faili",
        "filewasdeleted": "Selle nimega fail on lisatud ja kustutatud hiljuti.\nKontrolli $1 enne jätkamist.",
        "filename-bad-prefix": "Üleslaaditava faili nimi algab eesliitega '''\"$1\"''', mis on omane digikaamera antud ebamäärastele nimedele.\nPalun vali oma failile kirjeldavam nimi.",
+       "filename-prefix-blacklist": " #<!-- jäta see rida muutmata --> <pre>\n# Süntaks on järgmine:\n#   * Kõik alates märgist \"#\" kuni rea lõpuni on kommentaar.\n#   * Iga mittetühi rida on tüüpiline eesliide, mille digikaamerad automaatselt failinimele lisavad.\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # mõned mobiiltelefonid\nIMG # üldine\nJD # Jenoptik\nMGP # Pentax\nPICT # erinevad\n #</pre> <!-- jäta see rida muutmata -->",
        "upload-success-subj": "Üleslaadimine õnnestus",
        "upload-success-msg": "Üleslaadimine allikast [$2] läks edukalt. See on leitav siit: [[:{{ns:file}}:$1]]",
        "upload-failure-subj": "Üleslaadimisprobleem",
        "filehist-filesize": "Faili suurus",
        "filehist-comment": "Kommentaar",
        "imagelinks": "Failikasutus",
-       "linkstoimage": "Sellele pildile {{PLURAL:$1|viitab järgmine lehekülg|viitavad järgmised leheküljed}}:",
+       "linkstoimage": "Sellele failile {{PLURAL:$1|viitab järgmine lehekülg|viitavad järgmised $1 leheküljed}}:",
        "linkstoimage-more": "Sellele failile viitab enam kui {{PLURAL:$1|üks lehekülg|$1 lehekülge}}.\nJärgmises loendis on näidatud ainult {{PLURAL:$1|esimene viitav lehekülg|esimesed $1 viitavat lehekülge}}.\n[[Special:WhatLinksHere/$2|Kogu loetelu]] on saadaval.",
        "nolinkstoimage": "Sellele pildile ei viita ükski lehekülg.",
        "morelinkstoimage": "Vaata [[Special:WhatLinksHere/$1|veel linke]], mis sellele failile viitavad.",
        "uploadnewversion-linktext": "Laadi üles selle faili uus versioon",
        "shared-repo-from": "varamust $1",
        "shared-repo": "jagatud varamu",
+       "filepage.css": "/* Siin asuv kaskaadilaadistik sisaldub faili kirjeldusleheküljel, mida kasutatakse ka teistes klientvikides. */",
        "upload-disallowed-here": "Sa ei saa seda faili üle kirjutada.",
        "filerevert": "Taasta $1",
        "filerevert-legend": "Faili taastamine",
        "unusedimages": "Kasutamata failid",
        "wantedcategories": "Kõige oodatumad kategooriad",
        "wantedpages": "Kõige oodatumad leheküljed",
-       "wantedpages-summary": "Loend puuduvatest lehekülgedest, millele viitab kõige rohkem linke, välja arvatud leheküljed, millele viitavad ainult ümbersuunamised. Puuduvad leheküljed, millele viitavad ümbersuunamised, on loetletud leheküljel [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "Loend puuduvatest lehekülgedest, millele viitab kõige rohkem linke, välja arvatud leheküljed, millele viitavad ainult ümbersuunamised. Puuduvad leheküljed, millele viitavad ümbersuunamised, on toodud [[{{#special:BrokenRedirects}}|katkiste ümbersuunamiste loendis]].",
        "wantedpages-badtitle": "Tulemuste seas on vigane pealkiri: $1",
        "wantedfiles": "Kõige oodatumad failid",
        "wantedfiletext-cat": "Järgmised failid puuduvad, aga on lehekülgedel kasutuses. Siin võivad olla loetletud ka välistes hoidlates asuvad failid, hoolimata sellest, et nad tegelikult olemas on. Loendi sellised valeliikmed on <del>läbi kriipsutatud</del>. Lisaks on puuduvaid faile sisaldavad leheküljed loetletud asukohas [[:$1]].",
        "protectedtitles": "Kaitstud pealkirjad",
        "protectedtitles-summary": "Siin on loetletud pealkirjad, mis on praegu loomise eest kaitstud. Olemasolevate kaitstud lehekülgede loendi leiad [[{{#special:ProtectedPages}}|siit]].",
        "protectedtitlesempty": "Hetkel pole ükski pealkiri kaitstud.",
-       "listusers": "Kasutajad",
+       "listusers": "Kasutajate loend",
        "listusers-editsonly": "Näita vaid kasutajaid, kes on teinud muudatusi",
        "listusers-creationsort": "Järjesta konto loomise aja järgi",
        "listusers-desc": "Järjesta laskuvalt",
        "listusers-submit": "Näita",
        "listusers-noresult": "Kasutajat ei leitud.",
        "listusers-blocked": "(blokeeritud)",
-       "activeusers": "Aktiivsete kasutajate nimekiri",
+       "activeusers": "Aktiivsete kasutajate loend",
        "activeusers-intro": "See on loetelu kasutajatest, kes on viimase $1 {{PLURAL:$1|päev|päeva}} jooksul midagi teinud.",
        "activeusers-count": "$1 {{PLURAL:$1|toiming|toimingut}} viimase {{PLURAL:$3|päeva|$3 päeva}} jooksul",
        "activeusers-from": "Näita kasutajaid alates:",
        "unwatch": "Lõpeta jälgimine",
        "unwatchthispage": "Ära jälgi",
        "notanarticle": "Pole sisulehekülg",
-       "notvisiblerev": "Redaktsioon on kustutatud",
+       "notvisiblerev": "Viimane teise kasutaja redaktsioon on kustutatud",
        "watchlist-details": "Jälgimisloendis on {{PLURAL:$1|üks lehekülg|$1 lehekülge}}. Arutelulehekülgi pole eraldi välja toodud.",
        "wlheader-enotif": "E-posti teel teavitamine on lubatud.",
        "wlheader-showupdated": "Leheküljed, mida on muudetud peale sinu viimast külastust, on '''rasvases kirjas'''.",
        "protect-level-autoconfirmed": "Lubatud vaid automaatselt kinnitatud kasutajatele",
        "protect-level-sysop": "Lubatud vaid administraatoritele",
        "protect-summary-cascade": "kaskaad",
-       "protect-expiring": "aegub $1 (UTC)",
-       "protect-expiring-local": "aegub $1",
+       "protect-expiring": "aegumistähtaeg $1 (UTC)",
+       "protect-expiring-local": "aegumistähtaeg $1",
        "protect-expiry-indefinite": "määramatu",
        "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.",
        "restriction-edit": "Redigeerimine",
        "restriction-move": "Teisaldamine",
        "restriction-create": "Loomine",
-       "restriction-upload": "Laadi üles",
+       "restriction-upload": "Üleslaadimine",
        "restriction-level-sysop": "täielikult kaitstud",
        "restriction-level-autoconfirmed": "poolkaitstud",
        "restriction-level-all": "kõik tasemed",
        "undelete-fieldset-title": "Redaktsioonide taastamine",
        "undeleteextrahelp": "Kogu lehe ja selle ajaloo taastamiseks jäta kõik linnukesed tühjaks ja vajuta '''''{{int:undeletebtn}}'''''.\nEt taastada valikuliselt, tee linnukesed kastidesse, mida soovid taastada ja vajuta '''''{{int:undeletebtn}}'''''.",
        "undeleterevisions": "$1 arhiivitud {{PLURAL:$1|redaktsioon|redaktsiooni}}",
-       "undeletehistory": "Kui taastate lehekülje, taastuvad kõik versioonid artikli ajaloona.\nKui vahepeal on loodud uus samanimeline lehekülg, ilmuvad taastatud versioonid varasema ajaloona.",
+       "undeletehistory": "Kui taastad lehekülje, taastuvad ajaloos kõik redaktsioonid.\nKui vahepeal on loodud uus samanimeline lehekülg, ilmuvad taastatud redaksioonid selle lehekülje ajalukku.",
        "undeleterevdel": "Lehekülge ei taastata, kui viimane redaktsioon või failiversioon kustub seeläbi osaliselt.\nSellisel juhul tuleb uusima kustutatud redaktsiooni juurest linnuke eemaldada või see peitmata jätta.",
        "undeletehistorynoadmin": "See lehekülg on kustutatud.\nKustutamise põhjus ning selle lehekülje kustutamiseelne redigeerimislugu on näha allolevas kokkuvõttes.\nLehekülje kustutamiseelsed redaktsioonid on kättesaadavad ainult administraatoritele.",
        "undelete-revision": "Lehekülje $1 kustutatud redaktsioon, mille autor on $3, seisuga $4, kell $5.",
        "ipbhidename": "Peida kasutajatunnus muudatustest ja loenditest",
        "ipbwatchuser": "Jälgi selle kasutaja lehekülge ja arutelu",
        "ipb-disableusertalk": "Keela sellel kasutajal blokeeringu ajal oma arutelulehekülge redigeerida",
-       "ipb-change-block": "Blokeeri uuesti samade sätete alusel",
+       "ipb-change-block": "Blokeeri uuesti nende sätete alusel",
        "ipb-confirm": "Kinnita blokeering",
        "badipaddress": "Vigane IP-aadress",
        "blockipsuccesssub": "Blokeerimine õnnestus",
        "tooltip-watch": "Lisa see lehekülg oma jälgimisloendisse",
        "tooltip-watchlistedit-normal-submit": "Eemalda pealkirjad",
        "tooltip-watchlistedit-raw-submit": "Uuenda jälgimisloendit",
-       "tooltip-recreate": "Taasta kustutatud lehekülg",
+       "tooltip-recreate": "Loo lehekülg uuesti, kuigi see on kustutatud",
        "tooltip-upload": "Alusta üleslaadimist",
        "tooltip-rollback": "Tühistab ühe klõpsuga viimase kaastöölise tehtud muudatused.",
        "tooltip-undo": "\"Eemalda\" tühistab selle muudatuse ja avab teksti eelvaatega redigeerimisakna.\nSamuti võimaldab see resümee reale põhjenduse lisamist.",
        "tooltip-preferences-save": "Salvesta eelistused",
        "tooltip-summary": "Kirjuta lühike kokkuvõte",
        "common.css": "/* Siin olevat CSS-i kasutavad kõik kujundused. */",
+       "print.css": "/* Siin asuv kaskaadilaadistik puudutab prindiväljundit. */",
+       "noscript.css": "/* Siin asuv kaskaadilaadistik puudutab kasutajaid, kellel on JavaScript keelatud. */",
        "group-autoconfirmed.css": "/* Siin asuv kaskaadilaadistik puudutab ainult automaatselt kinnitatud kasutajaid. */",
        "group-user.css": "/* Siin asuv kaskaadilaadistik puudutab ainult registreeritud kasutajaid. */",
        "group-bot.css": "/* Siin asuv kaskaadilaadistik puudutab ainult roboteid. */",
        "ilsubmit": "Otsi",
        "bydate": "kuupäeva järgi",
        "sp-newimages-showfrom": "Näita uusi faile alates kuupäevast $2, kell $1",
+       "hours-abbrev": "$1 t",
+       "days-abbrev": "$1 p",
        "seconds": "{{PLURAL:$1|üks sekund|$1 sekundit}}",
        "minutes": "{{PLURAL:$1|üks minut|$1 minutit}}",
        "hours": "{{PLURAL:$1|üks tund|$1 tundi}}",
        "exif-relatedsoundfile": "Seotud helifail",
        "exif-datetimeoriginal": "Andmete loomise kuupäev ja kellaaeg",
        "exif-datetimedigitized": "Digiteerimise kuupäev ja kellaaeg",
-       "exif-subsectime": "Kuupäev/Kellaaeg sekundi murdosad",
-       "exif-subsectimeoriginal": "Loomisaja sekundi murdosad",
-       "exif-subsectimedigitized": "Digiteerimise sekundi murdosad",
+       "exif-subsectime": "Muutmisaja sekundi murdosa",
+       "exif-subsectimeoriginal": "Loomisaja sekundi murdosa",
+       "exif-subsectimedigitized": "Digiteerimise sekundi murdosa",
        "exif-exposuretime": "Säriaeg",
        "exif-exposuretime-format": "$1 sek ($2)",
        "exif-fnumber": "F-arv",
        "exif-gpslongitude": "Pikkus",
        "exif-gpsaltituderef": "Kõrgusreferents",
        "exif-gpsaltitude": "Kõrgus merepinnast",
-       "exif-gpstimestamp": "GPS aeg (aatomikell)",
+       "exif-gpstimestamp": "GPS-aeg (aatomkell)",
        "exif-gpssatellites": "Mõõtmiseks kasutatud satelliidid",
        "exif-gpsstatus": "Vastuvõtja olek",
        "exif-gpsmeasuremode": "Mõõtmise meetod",
        "exif-gpsdestdistance": "Sihtpunkti kaugus",
        "exif-gpsprocessingmethod": "GPS-töötlusmeetodi nimi",
        "exif-gpsareainformation": "GPS-ala nimi",
-       "exif-gpsdatestamp": "GPS kuupäev",
+       "exif-gpsdatestamp": "GPS-kuupäev",
        "exif-gpsdifferential": "GPS-i diferentsiaalparand",
        "exif-jpegfilecomment": "JPEG-faili kommentaar",
        "exif-keywords": "Märksõnad",
        "exif-compression-2": "CCITT G3 ühemõõtmeline muudetud Hoffmani sarikodeerimine",
        "exif-compression-3": "CCITT G3 faksikodeerimine",
        "exif-compression-4": "CCITT G4 faksikodeerimine",
+       "exif-compression-6": "JPEG (vana)",
        "exif-copyrighted-true": "Kaitstud",
        "exif-copyrighted-false": "Autoriõiguslik seisund määramata",
        "exif-unknowndate": "Kuupäev teadmata",
        "exif-objectcycle-a": "Ainult hommikuks",
        "exif-objectcycle-p": "Ainult õhtuks",
        "exif-objectcycle-b": "Nii hommikuks kui õhtuks",
-       "exif-gpsdirection-t": "Tegelik suund",
-       "exif-gpsdirection-m": "Magneetiline suund",
+       "exif-gpsdirection-t": "Tõeline suund",
+       "exif-gpsdirection-m": "Magnetiline suund",
        "exif-ycbcrpositioning-1": "Keskele asetatud",
        "exif-ycbcrpositioning-2": "Kõrvuti asetatud",
        "exif-dc-contributor": "Asjaosalised",
        "deletedwhileediting": "'''Hoiatus''': Sel ajal, kui sina lehekülge redigeerisid, kustutas keegi selle ära!",
        "confirmrecreate": "Kasutaja [[User:$1|$1]] ([[User talk:$1|arutelu]]) kustutas lehekülje sellel ajal, kui sina seda redigeerisid. Põhjus:\n: ''$2''\nPalun kinnita, et soovid tõesti selle lehekülje taasluua.",
        "confirmrecreate-noreason": "Kasutaja [[User:$1|$1]] ([[User talk:$1|arutelu]]) kustutas selle lehekülje, pärast seda kui redigeerimist alustasid. Palun kinnita, et tahad tõesti selle lehekülje uuesti luua.",
-       "recreate": "Taasta",
+       "recreate": "Loo uuesti",
        "confirm_purge_button": "Sobib",
        "confirm-purge-top": "Tühjenda selle lehekülje vahemälu?",
        "confirm-purge-bottom": "Toiming puhastab lehekülje vahemälu ja kuvab uusima versiooni.",
        "version-entrypoints": "Sisendpunktide internetiaadressid",
        "version-entrypoints-header-entrypoint": "Sisendpunkt",
        "version-entrypoints-header-url": "URL",
+       "version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath Artiklitee]",
+       "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Skriptitee]",
        "version-libraries": "Paigaldatud teegid",
        "version-libraries-library": "Teek",
        "version-libraries-version": "Versioon",
        "log-name-pagelang": "Keele muutmise logi",
        "log-description-pagelang": "Siia on logitud lehekülgede keele muutmised.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|muutis}} lehekülje \"$3\" keelt: $4 → $5.",
-       "default-skin-not-found": "Oih! Sinu viki vaikekujundus, milleks muutuja <code dir=\"ltr\">$wgDefaultSkin</code> järgi on <code>$1</code>, pole saadaval.\n\nPaistab, et sinu install sisaldab {{PLURAL:$4|järgmist kujundust|järgmisi kujundusi}}. Vaata [https://www.mediawiki.org/wiki/Manual:Skin_configuration kujunduste häälestusjuhendist], kuidas {{PLURAL:$4|seda|neid}} lubada ja kuidas valida vaikekujundus.\n\n$2\n\n; Kui oled MediaWiki just paigaldanud:\n: Paigaldasid tarkvara ilmselt Giti kaudu või otse lähtekoodist või mõnel muul viisil. See on ootuspärane. Proovi [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org-i kujunduste kataloogist] mõni kujundus paigaldada. Selleks saad:\n:* laadida alla [https://www.mediawiki.org/wiki/Download lintarhiivi paigaldaja], mis sisaldab mitut kujundust ja tarkvaralisa. Saad sealt kleepimiseks kopeerida kausta <code dir=\"ltr\">skins/</code>;\n:* [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org-ist] kindla kujunduse lintarhiivi alla laadida;\n:* kopeerida Giti kaudu ühe hoidla (<code>mediawiki/skins/*</code>) oma MediaWiki installi kausta <code>skins/</code>.\n: Selle tegemine ei tohiks häirida Giti hoidlat, kui oled MediaWiki arendaja.\n\n; Kui oled MediaWikit just täiendanud:\n: MediaWiki 1.24-s ja uuemates versioonides pole paigaldatud kujundused enam automaatselt lubatud (vaata juhendist [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery kujunduste automaatse leidmise] kohta). Saad kleepida {{PLURAL:$5|järgmise rea|järgmised read}} leheküljele <code>LocalSettings.php</code>, et lubada {{PLURAL:$5|ainus praegu paigaldatud kujundus|kõik praegu paigaldatud kujundused}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Kui oled lehekülge <code>LocalSettings.php</code> just muutnud:\n: Kontrolli üle, ega kujunduste nimedes pole trükivigu.",
-       "default-skin-not-found-no-skins": "Oih! Sinu viki vaikekujundus, milleks muutuja <code dir=\"ltr\">$wgDefaultSkin</code> järgi on <code>$1</code>, pole saadaval.\n\nÜhtegi kujundust pole paigaldatud.\n\n; Kui oled MediaWiki just paigaldanud või täiendasid seda:\n: Paigaldasid tarkvara ilmselt Giti kaudu või otse lähtekoodist või mõnel muul viisil. See on ootuspärane. MediaWiki 1.24 ja uuemad versioonid ei sisalda peahoidlas ühtegi kujundust. Proovi [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org-i kujunduste kataloogist] mõni kujundus paigaldada. Selleks saad:\n:* laadida alla [https://www.mediawiki.org/wiki/Download lintarhiivi paigaldaja], mis sisaldab mitut kujundust ja tarkvaralisa. Saad sealt kleepimiseks kopeerida kausta <code dir=\"ltr\">skins/</code>;\n:* [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org-ist] kindla kujunduse lintarhiivi alla laadida;\n:* kopeerida Giti kaudu ühe hoidla (<code>mediawiki/skins/*</code>) oma MediaWiki installi kausta <code>skins/</code>.\n: Selle tegemine ei tohiks häirida Giti hoidlat, kui oled MediaWiki arendaja. Vaata [https://www.mediawiki.org/wiki/Manual:Skin_configuration kujunduste häälestusjuhendist], kuidas kujundusi lubada ja kuidas valida vaikekujundus.",
+       "default-skin-not-found": "Oih! Sinu viki vaikekujundus, milleks muutuja <code dir=\"ltr\">$wgDefaultSkin</code> järgi on <code>$1</code>, pole saadaval.\n\nPaistab, et sinu install sisaldab {{PLURAL:$4|järgmist kujundust|järgmisi kujundusi}}. Vaata [https://www.mediawiki.org/wiki/Manual:Skin_configuration kujunduste häälestusjuhendist], kuidas {{PLURAL:$4|seda|neid}} lubada ja kuidas valida vaikekujundus.\n\n$2\n\n; Kui oled MediaWiki just paigaldanud:\n: Paigaldasid tarkvara ilmselt Giti kaudu või otse lähtekoodist või mõnel muul viisil. See on ootuspärane. Proovi [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org-i kujunduste kataloogist] mõni kujundus paigaldada. Selleks saad:\n:* laadida alla [https://www.mediawiki.org/wiki/Download lintarhiivi paigaldaja], mis sisaldab mitut kujundust ja tarkvaralisa. Saad sealt kleepimiseks kopeerida kausta <code dir=\"ltr\">skins/</code>;\n:* [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org-ist] kindla kujunduse lintarhiivi alla laadida;\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins kasutada Giti, et kujundusi alla laadida].\n: Selle tegemine ei tohiks häirida Giti hoidlat, kui oled MediaWiki arendaja.\n\n; Kui oled MediaWikit just täiendanud:\n: MediaWiki 1.24-s ja uuemates versioonides pole paigaldatud kujundused enam automaatselt lubatud (vaata juhendist [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery kujunduste automaatse leidmise] kohta). Saad kleepida {{PLURAL:$5|järgmise rea|järgmised read}} leheküljele <code>LocalSettings.php</code>, et lubada {{PLURAL:$5|ainus paigaldatud kujundus|kõik paigaldatud kujundused}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Kui oled lehekülge <code>LocalSettings.php</code> just muutnud:\n: Kontrolli üle, ega kujunduste nimedes pole trükivigu.",
+       "default-skin-not-found-no-skins": "Oih! Sinu viki vaikekujundus, milleks muutuja <code dir=\"ltr\">$wgDefaultSkin</code> järgi on <code>$1</code>, pole saadaval.\n\nÜhtegi kujundust pole paigaldatud.\n\n; Kui oled MediaWiki just paigaldanud või täiendasid seda:\n: Paigaldasid tarkvara ilmselt Giti kaudu või otse lähtekoodist või mõnel muul viisil. See on ootuspärane. MediaWiki 1.24 ja uuemad versioonid ei sisalda peahoidlas ühtegi kujundust. Proovi [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org-i kujunduste kataloogist] mõni kujundus paigaldada. Selleks saad:\n:* laadida alla [https://www.mediawiki.org/wiki/Download lintarhiivi paigaldaja], mis sisaldab mitut kujundust ja tarkvaralisa. Saad sealt kleepimiseks kopeerida kausta <code dir=\"ltr\">skins/</code>;\n:* [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org-ist] kindla kujunduse lintarhiivi alla laadida;\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins kasutada Giti, et kujundusi alla laadida].\n: Selle tegemine ei tohiks häirida Giti hoidlat, kui oled MediaWiki arendaja. Vaata [https://www.mediawiki.org/wiki/Manual:Skin_configuration kujunduste häälestusjuhendist], kuidas kujundusi lubada ja kuidas valida vaikekujundus.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (lubatud)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''keelatud''')",
        "mediastatistics": "Meediafailide arvandmestik",
index d30230a..5cf94e5 100644 (file)
        "notextmatches": "Ez dago bat datorren orrialde testurik",
        "prevn": "aurreko {{PLURAL:$1|$1}}ak",
        "nextn": "hurrengo {{PLURAL:$1|$1}}ak",
+       "prev-page": "aurreko orrialdea",
+       "next-page": "hurrengo orrialdea",
        "prevn-title": "Aurreko {{PLURAL:$1|emaitza|emaitzak}}",
        "nextn-title": "Hurrengo $1 {{PLURAL:$1|emaitza|emaitzak}}",
        "shown-title": "Erakutsi {{PLURAL:$1|emaitza $1|$1 emaitza}} orrialdeko",
        "ipb-unblock-addr": "$1 lankide edo IP helbideari blokeoa baliogabetu",
        "ipb-unblock": "Erabiltzaile izen edo IP helbide bati blokeoa kendu",
        "ipb-blocklist": "Blokeaketak ikusi",
-       "ipb-blocklist-contribs": "$1(r)en ekarpenak",
+       "ipb-blocklist-contribs": "{{GENDER:$1|$1(r)en}} ekarpenak",
        "unblockip": "Erabiltzailea desblokeatu",
        "unblockiptext": "Erabili beheko formularioa lehenago blokeatutako IP helbide edo erabiltzaile baten idazketa baimenak leheneratzeko.",
        "ipusubmit": "Blokeoa ezabatu",
        "tags": "Etiketa aldaketa zuzena",
        "tag-filter": "[[Special:Tags|Etiketa]] iragazkia:",
        "tag-filter-submit": "Iragazkia",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Etiketa|Etiketak}}]]: $2)",
        "tags-title": "Etiketak",
        "tags-intro": "Orri honek softwareak aldatzeko bezala marka ditzazkeen etiketak zerrendatzen ditu, eta berauen esanahia.",
        "tags-tag": "Etiketaren izena",
        "tags-description-header": "Esanahiaren deskribapen osoa",
        "tags-active-header": "Aktiboa?",
        "tags-hitcount-header": "Etiketatutako aldaketak",
+       "tags-actions-header": "Ekintzak",
        "tags-active-yes": "Bai",
        "tags-active-no": "Ez",
        "tags-edit": "aldatu",
        "tags-hitcount": "$1 {{PLURAL:$1|aldaketa|aldaketa}}",
+       "tags-create-reason": "Arrazoia:",
        "tags-create-submit": "Sortu",
+       "tags-delete-reason": "Arrazoia:",
+       "tags-activate-reason": "Arrazoia:",
+       "tags-deactivate-reason": "Arrazoia:",
+       "tags-edit-new-tags": "Etiketa berriak:",
+       "tags-edit-add": "Gehitu etiketa hauek:",
+       "tags-edit-remove": "Kendu etiketa hauek:",
+       "tags-edit-remove-all-tags": "(kendu etiketa guztiak)",
+       "tags-edit-chosen-placeholder": "Hautatu etiketa batzuk",
+       "tags-edit-reason": "Arrazoia:",
        "comparepages": "Orrialdeak alderatu",
        "compare-page1": "1. orrialdea",
        "compare-page2": "2. orrialdea",
index 23c8f8f..d68dc90 100644 (file)
@@ -58,7 +58,7 @@
        "tog-numberheadings": "شماره‌گذاری خودکار عنوان‌ها",
        "tog-showtoolbar": "نوار ابزار ویرایش نمایش یابد",
        "tog-editondblclick": "ویرایش صفحات با دو کلیک",
-       "tog-editsectiononrightclick": "فعالکردن ویرایش بخش‌ها با کلیک راست روی عنوان بخش‌ها",
+       "tog-editsectiononrightclick": "فعال کردن ویرایش بخش‌ها با کلیک راست روی عنوان بخش‌ها",
        "tog-watchcreations": "صفحه‌هایی که می‌سازم و پرونده‌هایی که بارگذاری می‌کنم به فهرست پیگیری‌هایم افزوده شود",
        "tog-watchdefault": "صفحه‌ها و پرونده‌هایی که ویرایش می‌کنم به فهرست پیگیری‌هایم افزوده شود",
        "tog-watchmoves": "صفحه‌ها و پرونده‌هایی که منتقل می‌کنم به فهرست پی‌گیری‌هایم افزوده شود",
        "no-null-revision": "امکان ایجاد نسخهٔ پوچ برای صفحهٔ «$1» وجود نداشت",
        "badtitle": "عنوان بد",
        "badtitletext": "عنوان درخواستی نامعتبر، خالی، یا عنوانی میان‌زبانی یا میان‌ویکی‌ای با پیوند نادرست بود.\nممکن است حاوی یک یا چند نویسه باشد که نمی‌توانند در عنوان‌ها استفاده شوند.",
+       "title-invalid-empty": "عنوان صفحهٔ مورد درخواست خالی است یا فقط عنوان فضای نام ذکر شده‌است.",
+       "title-invalid-utf8": "عنوان صفحهٔ مورد نظر دارای نویسهٔ نادرست یونیکد است.",
+       "title-invalid-interwiki": "صفحهٔ درخواست شده دارای پیوند میان‌ویکی است که نمی‌تواند در عنوان‌ها استفاده شود.",
+       "title-invalid-talk-namespace": "صفحهٔ مورد درخواست به عنوان صفحهٔ بحثی که وجود ندارد، ارجاع می‌کند",
+       "title-invalid-characters": "عنوان صفحهٔ مورد درخواست نویسهٔ نادرست «$1» دارد.",
+       "title-invalid-relative": "عنوان دارای نشانی است. عنوان نشانی‌ها (./, ../) بی‌اعتبار هستند چون معمولاً توسط مرورگر کاربران غیرقابل دسترس هستند.",
+       "title-invalid-magic-tilde": "عنوان صفحهٔ مورد درخواست دارای عبارت جادوئی بی‌اعتبار است (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "عنوان صفحهٔ مورد درخواست خیلی طولانی است. نباید از $1 {{PLURAL:$1|بایت|بایت}} نویسهٔ یونیکد باشد.",
+       "title-invalid-leading-colon": "صفحهٔ درخواستی دارای : بی‌اعتبار در ابتدای عنوانش است.",
        "perfcached": "داده‌های زیر از حافظهٔ نهانی فراخوانی شده‌اند و ممکن است کاملاً به‌روز نباشند. حداکثر {{PLURAL:$1|یک نتیجه| $1 نتیجه}} در حافظهٔ نهانی قابل دسترس است.",
        "perfcachedts": "داده‌های زیر از حافظهٔ نهانی فراخوانی شده‌اند و آخرین بار در $1 به‌روزرسانی شدند. حداکثر {{PLURAL:$4|یک نتیجه|$4 نتیجه}} در حافظهٔ نهانی قابل دسترس است.",
        "querypage-no-updates": "امکان به‌روزرسانی این صفحه فعلاً غیرفعال شده‌است.\nاطلاعات این صفحه ممکن است به‌روز نباشد.",
        "history-feed-description": "تاریخچهٔ ویرایش‌های این صفحه در ویکی",
        "history-feed-item-nocomment": "$1 در $2",
        "history-feed-empty": "صفحهٔ درخواست شده وجود ندارد.\nممکن است که از ویکی حذف یا اینکه نامش تغییر داده شده باشد.\nصفحات تازه را برای موارد مرتبط در این ویکی [[Special:Search|جستجو کنید]].",
+       "history-edit-tags": "ویرایش برچسب نسخه‌های انتخاب شده",
        "rev-deleted-comment": "(خلاصه ویرایش حذف شد)",
        "rev-deleted-user": "(نام کاربری حذف شد)",
        "rev-deleted-event": "(جزئیات سیاهه پاک شده)",
        "userrights-lookup-user": "مدیریت گروه‌های کاربری",
        "userrights-user-editname": "یک نام کاربری وارد کنید:",
        "editusergroup": "ویرایش گروه‌های کاربری",
-       "editinguser": "تغییر اختیارات کاربری کاربر '''[[User:$1|$1]]''' $2",
+       "editinguser": "تغییر اختیارات کاربری کاربر {{GENDER:$1|کاربر}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "ویرایش گروه‌های کاربری",
        "saveusergroups": "ثبت گروه‌های کاربری",
        "userrights-groupsmember": "عضو:",
        "right-sendemail": "ارسال ایمیل به دیگر کاربران",
        "right-passwordreset": "مشاهدهٔ نامه‌های تنظیم مجدد گذرواژه",
        "right-managechangetags": "ایجاد و حذف [[Special:Tags|برچسب‌ها]] از پایگاه داده",
+       "right-applychangetags": "تائید [[Special:Tags|برچسب]] بر روی تغییرات یک نفر",
+       "right-changetags": "افزودن یا حذف [[Special:Tags|برچسب]] قراردادی بر روی نسخه یا سیاهه ورودی‌ها",
        "newuserlogpage": "سیاههٔ ایجاد کاربر",
        "newuserlogpagetext": "این سیاهه‌ای از نام‌های کاربری تازه‌ساخته‌شده است.",
        "rightslog": "سیاههٔ اختیارات کاربر",
        "action-editmyprivateinfo": "اطلاعات خصوصی خود را ویرایش کنید",
        "action-editcontentmodel": "ویرایش مدل محتوای یک صفحه",
        "action-managechangetags": "ایجاد و حذف تگ‌ها از پایگاه داده",
+       "action-applychangetags": "اعمال برچسب بر روی تغییرات شما",
+       "action-changetags": "افزودن یا حذف برچسب قراردادی بر روی نسخه یا سیاهه ورودی‌ها",
        "nchanges": "$1 تغییر",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|از آخرین بازدید}}",
        "enhancedrc-history": "تاریخچه",
        "listfiles-delete": "حذف",
        "listfiles-summary": "این صفحهٔ ویژه تمام پرونده‌های بارگذاری‌شده را نمایش می‌دهد.",
        "listfiles_search_for": "جستجو به دنبال نام پرونده چندرسانه‌ای:",
+       "listfiles-userdoesnotexist": "حساب کاربری «$1» ثبت نشده‌است.",
        "imgfile": "پرونده",
        "listfiles": "فهرست پرونده‌ها",
        "listfiles_thumb": "بندانگشتی",
        "unusedimages": "پرونده‌های استفاده‌نشده",
        "wantedcategories": "رده‌های مورد نیاز",
        "wantedpages": "صفحه‌های مورد نیاز",
-       "wantedpages-summary": "فهرست صفحه‌های ناموجود با بیشترین پیوند به آنها، به استثنای صفحه‌هایی که فقط تغییرمسیر به آنها دارند. برای یک فهرست از صفحه‌های ناموجود که تغییرمسیر به آنها دارند، [[{{#special:BrokenRedirects}}]] را ببینید.",
+       "wantedpages-summary": "فهرست صفحه‌های ناموجود با بیشترین پیوند به آنها، به استثنای صفحه‌هایی که فقط تغییرمسیر به آنها دارند. برای یک فهرست از صفحه‌های ناموجود که تغییرمسیر به آنها دارند، [[{{#special:BrokenRedirects}}|فهرست تغییرمسیرهای شکسته]] را ببینید.",
        "wantedpages-badtitle": "عنوان نامجاز در مجموعهٔ نتایج: $1",
        "wantedfiles": "پرونده‌های مورد نیاز",
        "wantedfiletext-cat": "پرونده‌های زیر استفاده می‌شوند اما موجود نیستند. همچنین ممکن است پرونده‌های مخازن خارجی با وجود موجود بودن در اینجا فهرست شوند. هرگونه رتبه مثبت کاذب <del>خط خواهد خورد.</del> علاوه بر این، صفحاتی که پرونده‌هایی ناموجود را در خود جای داده‌اند در [[:$1]] فهرست شده‌اند.",
        "logempty": "مورد منطبق با منظور شما در سیاهه یافت نشد.",
        "log-title-wildcard": "صفحه‌هایی را جستجو کن که عنوانشان با این عبارت آغاز می‌شود",
        "showhideselectedlogentries": "تغییر پدیداری موارد انتخاب‌شده سیاهه",
+       "log-edit-tags": "ویرایش برچسب سیاههٔ انتخاب شده",
        "allpages": "همهٔ صفحات",
        "nextpage": "صفحهٔ بعد ($1)",
        "prevpage": "صفحهٔ قبلی ($1)",
        "emailccsubject": "رونوشت پیغام شما به $1: $2",
        "emailsent": "ایمیل ارسال شد",
        "emailsenttext": "پیام ایمیل شما فرستاده شد.",
-       "emailuserfooter": "این ایمیل با استفاده از ویژگی «ایمیل به این کاربر» {{SITENAME}} توسط $1 به $2 ارسال شد.",
+       "emailuserfooter": "این ایمیل با استفاده از ویژگی «{{int:emailpage}}» {{SITENAME}} توسط $1 به $2 ارسال شد.",
        "usermessage-summary": "گذاشتن پیغام سامانه.",
        "usermessage-editor": "پیغام رسان سامانه",
        "watchlist": "فهرست پی‌گیری",
        "expiringblock": "در $1 ساعت $2 به پایان می‌رسد",
        "anononlyblock": "فقط کاربران گمنام",
        "noautoblockblock": "بستن خودکار غیرفعال است",
-       "createaccountblock": "اÙ\85کاÙ\86 Ø§Û\8cجاد Ø­Ø³Ø§Ø¨ Ù\85سدÙ\88د Ø§Ø³Øª",
-       "emailblock": "ایمیل مسدود شد",
+       "createaccountblock": "اÙ\85کاÙ\86 Ø³Ø§Ø®Øª Ø­Ø³Ø§Ø¨ Ú¯Ø±Ù\81تÙ\87â\80\8cشدÙ\87",
+       "emailblock": "ایمیل بسته‌شده",
        "blocklist-nousertalk": "نمی تواند صفحهٔ بحث خود را ویرایش کند",
        "ipblocklist-empty": "فهرست بسته‌شدن‌ها خالی‌است.",
        "ipblocklist-no-results": "دسترسی حساب کاربری یا نشانی آی‌پی مورد نظر قطع نیست.",
        "block-log-flags-anononly": "فقط کاربران گمنام",
        "block-log-flags-nocreate": "قابلیت ایجاد حساب غیرفعال شد",
        "block-log-flags-noautoblock": "قطع دسترسی خودکار غیرفعال شد",
-       "block-log-flags-noemail": "ایمیل مسدود شد",
+       "block-log-flags-noemail": "ایمیل بسته‌شد",
        "block-log-flags-nousertalk": "صفحهٔ بحث خود را نمی‌تواند ویرایش کند",
        "block-log-flags-angry-autoblock": "قطع دسترسی خودکار پیشرفته فعال شد",
        "block-log-flags-hiddenname": "نام کاربری پنهان",
        "import-interwiki-history": "تمام نسخه‌های تاریخچهٔ این صفحه انتقال داده شود",
        "import-interwiki-templates": "تمام الگوها را شامل شود",
        "import-interwiki-submit": "درون‌ریزی شود",
+       "import-mapping-default": "درون‌ریزی برای موقعیت‌های پیش‌فرض",
+       "import-mapping-namespace": "درون‌ریزی برای یک فضای نام:",
+       "import-mapping-subpage": "درون‌ریزی به عنوان زیرصفحهٔ صفحهٔ:",
        "import-upload-filename": "نام پرونده:",
        "import-comment": "توضیح:",
        "importtext": "لطفاً پرونده را از ویکی منبع با کمک [[Special:Export|ابزار برون‌بری]] دریافت کنید.\nسپس آن را روی دستگاه‌تان ذخیره کنید و اینجا بارگذاری نمایید.",
        "pageinfo-protect-cascading-yes": "بله",
        "pageinfo-protect-cascading-from": "محافظت آبشاری از",
        "pageinfo-category-info": "اطلاعات رده",
+       "pageinfo-category-total": "تعداد کلی اعضاء",
        "pageinfo-category-pages": "تعداد صفحات",
        "pageinfo-category-subcats": "تعداد زیررده‌ها",
        "pageinfo-category-files": "تعداد پرونده‌ها",
        "tags-deactivate-reason": "دلیل:",
        "tags-deactivate-not-allowed": "غیرفعال‌سازی تگ «$1» ممکن نیست.",
        "tags-deactivate-submit": "غیرفعال‌سازی",
+       "tags-apply-no-permission": "دسترسی برای تغییر برچسب تغییراتتان را ندارید.",
+       "tags-apply-not-allowed-one": "اجازهٔ تائید برچسب «$1» به صورت دستی وجود ندارد.",
+       "tags-apply-not-allowed-multi": "اجازهٔ تائید {{PLURAL:$2|برچسب|برچسب}} به صورت دستی وجود ندارد:$1",
+       "tags-update-no-permission": "شما اجازهٔ افزودن یا حذف برچسب از خود نسخه یا سیاهه را ندارید.",
+       "tags-update-add-not-allowed-one": "اجازهٔ افزودن برچسب «$1» به صورت دستی وجود ندارد.",
+       "tags-update-add-not-allowed-multi": "اجازهٔ افزودن {{PLURAL:$2|برچسب|برچسب}} به صورت دستی وجود ندارد:$1",
+       "tags-update-remove-not-allowed-one": "اجازهٔ حذف برچسب «$1» به صورت دستی وجود ندارد.",
+       "tags-update-remove-not-allowed-multi": "اجازهٔ حذف {{PLURAL:$2|برچسب|برچسب}} به صورت دستی وجود ندارد:$1",
        "tags-edit-title": "ویرایش برچسب‌ها",
        "tags-edit-manage-link": "مدیریت برچسب‌ها",
+       "tags-edit-revision-selected": "{{PLURAL:$1|نسخهٔ انتخاب شده|نسخهٔ انتخاب شده}} [[:$2]]:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|سیاههٔ انتخاب شده|سیاههٔ انتخاب شده}}:",
+       "tags-edit-revision-legend": "افزودن یا حذف برچسب از {{PLURAL:$1|این نسخه|همهٔ $1 نسخه‌ها}}",
+       "tags-edit-logentry-legend": "افزودن یا حذف برچسب از {{PLURAL:$1|این سیاهه|همهٔ $1 سیاهه‌ها}}",
        "tags-edit-existing-tags": "برچسب‌های موجود:",
        "tags-edit-existing-tags-none": "\"هیچکدام\"",
        "tags-edit-new-tags": "برچسب جدید:",
        "tags-edit-chosen-placeholder": "انتخاب تعدادی برچسب",
        "tags-edit-chosen-no-results": "برچسبی برای انتخاب یافت نشد",
        "tags-edit-reason": "دلیل:",
+       "tags-edit-revision-submit": "اعمال تغییرات بر روی {{PLURAL:$1|این نسخه|$1 نسخه}}",
+       "tags-edit-logentry-submit": "اعمال تغییرات بر روی {{PLURAL:$1|این سیاهه|$1 سیاهه}}",
+       "tags-edit-success": "تغییرات با موفقیت اعمال شدند.",
+       "tags-edit-failure": "امکان اعمال تغییرات وجود ندارد: $1",
+       "tags-edit-nooldid-title": "نسخهٔ مقصد نادرست",
+       "tags-edit-nooldid-text": "نسخهٔ مقصد برای اعمال تابع مورد نظر را مشخص نکرده‌اید، یا نسخهٔ مورد نظر وجود ندارد.",
+       "tags-edit-none-selected": "لطفاً حداقل یک برچسب برای افزودن یا حذف انتخاب کنید.",
        "comparepages": "مقایسهٔ صفحات",
        "compare-page1": "صفحهٔ ۱",
        "compare-page2": "صفحهٔ ۲",
        "logentry-managetags-activate": "$1 {{GENDER:$2|برچسب}} فعال شده \"$4\" برای کاربران و ربات‌ها",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|برچسب}} غیرفعال شده \"$4\" برای کاربران و ربات‌ها",
        "log-name-tag": "سیاهه برچسب",
+       "log-description-tag": "اسن صفحه زمانی که کاربران [[Special:Tags|برچسب]] یک نسخه یا سیاهه ورودی را افزوده‌اند یا حذف‌کرده‌اند. سیاههٔ کار بر روی برچسب‌ها زمانی که بخشی از ویرایش یا حذف یا فعالیت‌های مشابه هستند، فهرست نمی‌شود.",
+       "logentry-tag-update-add-revision": "$1 {{PLURAL:$7|برچسب|برچسب}} $6 به نسخهٔ $4 از صفحهٔ $3 {{GENDER:$2|افزود}}",
+       "logentry-tag-update-add-logentry": "$1 {{PLURAL:$7|برچسب|برچسب}} $6 به سیاههٔ $5 صفحهٔ $3 {{GENDER:$2|افزود}}",
+       "logentry-tag-update-remove-revision": "$1 {{PLURAL:$9|برچسب|برچسب}} $8 را از نسخهٔ $4 صفحهٔ $3 {{GENDER:$2|حذف کرد}}",
+       "logentry-tag-update-remove-logentry": "$1 {{PLURAL:$9|برچسب|برچسب}} $8 را از سیاههٔ $5 صفحهٔ $3 {{GENDER:$2|حذف کرد}}",
+       "logentry-tag-update-revision": "$1 برچسب نسخهٔ $4 صفحهٔ $3 را {{GENDER:$2|به‌روز کرد}} ($6 {{PLURAL:$7|افزوده‌شد}}؛ $8 {{PLURAL:$9|حذف شد}})",
+       "logentry-tag-update-logentry": "$1 برچسب سیاههٔ $5 صفحهٔ $3 را {{GENDER:$2|به‌روز کرد}} ($6 {{PLURAL:$7|افزوده‌شد}}؛ $8 {{PLURAL:$9|حذف شد}})",
        "rightsnone": "(هیچ)",
        "revdelete-summary": "خلاصه ویرایش",
        "feedback-adding": "افزودن بازخورد به صفحه...",
        "feedback-error1": "خطا: پاسخ‌های ناشناخته از رابط برنامه‌نویسی نرم‌افزار",
        "feedback-error2": "خطا: شکست در ویرایش",
        "feedback-error3": "خطا: عدم پاسخ از رابط برنامه‌نویسی نرم‌افزار",
+       "feedback-error4": "خطا:امکان ارسال به عنوان بازخورد داده‌شده، نیست",
        "feedback-message": "پیغام:",
        "feedback-subject": "موضوع:",
        "feedback-submit": "ارسال",
        "log-name-pagelang": "تغییر سیاههٔ زبان",
        "log-description-pagelang": "این سیاههٔ تغییرات صفحهٔ زبان‌ها است.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2| تغییریافت}} زبان صفحه برای  $3  از  $4  به  $5 .",
-       "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: احتمالاً از گیت، یا به طور مستقیم از کد مبدأ که از چند متد دیگر استفاده می‌کند نصب کردید. انتظار می‌رود. چند پوسته از [https://www.mediawiki.org/wiki/Category:All_skins فهرست پوسته mediawiki.org] نصب کنید، که همراه چندین پوسته و افزونه هستند. شما می‌توانید شاخه <code>skins/</code> را از آن نسخه‌برداری کرده و بچسبانید.\n\n:* همسانه‌سازی یکی از مخازن <code>mediawiki/skins/*</code> از طریق گیت به داخل شاخه <code dir=\"ltr\">skins/</code> از نصب مدیاویکی‌تان.\n: انجام این کار با مخزن گیت‌تان تداخل نمی‌کند اگر توسعه‌دهنده مدیاویکی هستید.\n\n; اگر اخیراً مدیاویکی را ارتقاء دادید:\n: مدیاویکی ۱٫۲۴ و تازه‌تر دیگر به طور خودکار پوسته‌های نصب‌شده را فعال نمی‌کند ([https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery راهنما: کشف خودکار پوسته] را ببینید). شما می‌توانید خطوط زیر را به داخل <code>LocalSettings.php</code> بچسبانید تا همه پوسته‌های نصب‌شده جاری را فعال کنید:\n\n<pre dir=\"ltr\">$3</pre>\n\n; اگر اخیراً <code>LocalSettings.php</code> را تغییر دادید:\n: نام پوسته‌ها را برای غلط املایی دوباره بررسی کنید.",
-       "default-skin-not-found-no-skins": "پوستهٔ پیش‌فرض برای ویکی شما تعریف‌شده در<code>$wgDefaultSkin</code> به عنوان <code>$1</code>، هست موجود نیست.\n\nشما پوسته‌ها را نصب نکرده‌اید.\n\n:اگر مدیاویکی را به‌روز یا نصب کرده‌اید:\n:ممکن است از گیت یا از کند منبع با روش های دیگر نصب کرده‌اید. انتظار می‌رود MediaWiki 1.24 یا جدیدتر در پوشهٔ اصلی هیچ پوسته‌ای نداشته باشند.\nسعی کنید تعدادی پوسته از [https://www.mediawiki.org/wiki/Category:All_skins پوشهٔ پوسته‌های مدیاویکی]، با:\n:*دانلود کردن [https://www.mediawiki.org/wiki/Download نصب‌کننده تاربال]، که با چندین پوسته و افزونه هست. شما می توانید پوستهٔ <code>skins/</code> را  از آن کپی و پیست کنید.\n:*کلون کردن یکی از <code dir=\"ltr\">mediawiki/skins/*</code> از ریپوزیتوری در پوشهٔ <code>skins/</code> مدیاویکی‌تان.\n:اگر توسعه‌دهندهٔ مدیاویکی هستید، انجام این کار نباید تعارضی با ریپوزیتوری گیت شما داشته باشد. برای اطلاعات بیشتر و فعال کردن پوسته‌ها و انتخاب آنها به عنوان پیش‌فرض [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: تنظیمات پوسته] را مشاهده کنید.",
+       "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: نام پوسته‌ها را برای غلط املایی دوباره بررسی کنید.",
+       "default-skin-not-found-no-skins": "پوستهٔ پیش‌فرض برای ویکی شما تعریف‌شده در<code>$wgDefaultSkin</code> به عنوان <code>$1</code>، هست موجود نیست.\n\nشما پوسته‌ها را نصب نکرده‌اید.\n\n:اگر مدیاویکی را به‌روز یا نصب کرده‌اید:\n:ممکن است از گیت یا از کد منبع با روش‌های دیگر نصب کرده‌اید. انتظار می‌رود MediaWiki 1.24 یا جدیدتر در پوشهٔ اصلی هیچ پوسته‌ای نداشته باشند.\nسعی کنید تعدادی پوسته از [https://www.mediawiki.org/wiki/Category:All_skins پوشهٔ پوسته‌های مدیاویکی]، با:\n:*دریافت [https://www.mediawiki.org/wiki/Download نصب‌کننده تاربال]، که با چندین پوسته و افزونه هست. شما می توانید پوستهٔ <code>skins/</code> را از آن کپی و پیست کنید.\n:*کلون کردن یکی از <code dir=\"ltr\">mediawiki/skins/*</code> از مخزن در پوشهٔ <code>skins/</code> مدیاویکی‌تان.\n:اگر توسعه‌دهندهٔ مدیاویکی هستید، انجام این کار نباید تعارضی با مخزن گیت شما داشته باشد. برای اطلاعات بیشتر و فعال کردن پوسته‌ها و انتخاب آنها به عنوان پیش‌فرض [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 ('''غیر فعال''')",
        "mediastatistics": "آمار رسانه‌ها",
index 16b3f98..89f878d 100644 (file)
        "no-null-revision": "Nollamuokkausta sivulla \"$1\" ei voi tehdä",
        "badtitle": "Kelvoton sivun nimi",
        "badtitletext": "Pyytämäsi sivunimi oli virheellinen, tyhjä tai väärin linkitetty kieltenvälinen tai wikienvälinen nimi.\nSiinä saattaa olla yksi tai useampi sellainen merkki, jota ei voi käyttää sivujen nimissä.",
+       "title-invalid-empty": "Pyydetty sivunimi on tyhjä tai sisältää ainoastaan nimiavaruuden nimen.",
+       "title-invalid-utf8": "Pyydetyn sivun nimessä on kelvoton UTF–8-jakso.",
+       "title-invalid-interwiki": "Pyydetyn sivun nimessä on kieltenvälinen linkki, jota ei voi käyttää sivujen nimen osana.",
+       "title-invalid-talk-namespace": "Pyydetyn sivun nimi viittaa sellaiseen keskustelusivuun, jota ei voi olla olemassa.",
+       "title-invalid-characters": "Pyydetyn sivun nimessä on kelvottomia merkkejä: ”$1”.",
+       "title-invalid-relative": "Nimessä on suhteellinen polku. Suhteellisen polun (./, ../) sisältävät sivujen nimet eivät ole kelvollisia, koska ne eivät useinkaan toimi käyttäjien selaimissa.",
+       "title-invalid-magic-tilde": "Pyydetyn sivun nimessä on kelvoton taikamatojakso (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Pyydetyn sivun nimi on liian pitkä. Se ei saa olla pitempi kuin $1 {{PLURAL:$1|tavu|tavua}} käytettäessä UTF–8-koodausta.",
+       "title-invalid-leading-colon": "Pyydetyn sivun nimessä on kelvoton kaksoispiste nimen alussa.",
        "perfcached": "Nämä tiedot ovat välimuistista eivätkä välttämättä ole ajan tasalla. Välimuistissa on saatavilla enintään {{PLURAL:$1|yksi tulos|$1 tulosta}}.",
        "perfcachedts": "Nämä tiedot ovat välimuistista, ja ne on päivitetty viimeksi $1. Välimuistissa on saatavilla enintään {{PLURAL:$4|yksi tulos|$4 tulosta}}.",
        "querypage-no-updates": "Tämän sivun tietoja ei toistaiseksi päivitetä.",
        "userrights-lookup-user": "Hallinnoi käyttäjän ryhmiä",
        "userrights-user-editname": "Käyttäjätunnus",
        "editusergroup": "Muokkaa käyttäjän ryhmiä",
-       "editinguser": "Muutetaan käyttäjän '''[[User:$1|$1]]''' $2 oikeuksia",
+       "editinguser": "Muutetaan {{GENDER:$1|käyttäjän}} <strong>[[User:$1|$1]]</strong> $2 oikeuksia",
        "userrights-editusergroup": "Muuta käyttäjän ryhmiä",
        "saveusergroups": "Tallenna nämä käyttäjäryhmät",
        "userrights-groupsmember": "Jäsenenä ryhmissä:",
        "unusedimages": "Käyttämättömät tiedostot",
        "wantedcategories": "Halutut luokat",
        "wantedpages": "Halutut sivut",
-       "wantedpages-summary": "Luettelo olemattomista sivuista, joihin johtaa eniten linkkejä. Luettelossa ei kuitenkaan ole sellaisia sivuja, joihin johtaa ainoastaan uudelleenohjauksia. Jos haluat nähdä luettelon niistä olemattomista sivuista, joihin on linkki uudelleenohjauksista, katso sivua [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "Luettelo olemattomista sivuista, joihin johtaa eniten linkkejä. Luettelossa ei kuitenkaan ole sellaisia sivuja, joihin johtaa ainoastaan uudelleenohjauksia. Jos haluat nähdä luettelon niistä olemattomista sivuista, joihin on linkki uudelleenohjauksista, katso [[{{#special:BrokenRedirects}}|luettelo virheellisistä ohjauksista]].",
        "wantedpages-badtitle": "Virheellinen otsikko tuloksissa: $1",
        "wantedfiles": "Halutut tiedostot",
        "wantedfiletext-cat": "Seuraavia tiedostoja käytetään, mutta niitä ei ole olemassa. Ulkopuolissa mediavarastoissa olevat tiedostot voivat näkyä tällä listalla, vaikka ne ovat olemassa. Tällaiset väärät merkinnät on <del>yliviivattu</del>. Lisäksi sellaiset sivut, joihin on sisällytetty tiedostoja, jotka eivät ole olemassa, on luetteloitu [[:$1|täällä]].",
index 9c13d6e..724162c 100644 (file)
                        "0x010C",
                        "Thibaut120094",
                        "NemesisIII",
-                       "Housterdam"
+                       "Housterdam",
+                       "Chlomoh",
+                       "Wladek92",
+                       "Framafan",
+                       "Lucky"
                ]
        },
        "tog-underline": "Souligner les liens :",
        "no-null-revision": "Impossible de créer une nouvelle révision vide pour la page « $1 »",
        "badtitle": "Mauvais titre",
        "badtitletext": "Le titre de la page demandée est invalide, vide, ou il s’agit d’un titre inter-langue ou inter-projet mal formé. Il contient peut-être un ou plusieurs caractères qui ne peuvent pas être utilisés dans les titres.",
+       "title-invalid-empty": "Le titre de la page demandée est vide ou contient seulement le nom d'un espace de noms.",
+       "title-invalid-utf8": "Le titre de la page demandée contient une séquence UTF-8 invalide.",
+       "title-invalid-interwiki": "La page cible contient un lien interwiki ne pouvant être utilisé dans les titres.",
+       "title-invalid-talk-namespace": "Le titre de la page demandée fait référence à une page de discussion qui peut ne pas exister.",
+       "title-invalid-characters": "Le titre de la page demandée contient des caractères non valides: \"$1\".",
+       "title-invalid-relative": "Le titre contient un chemin relatif. Les titres référençant des pages relatives (./, ../) sont invalides, car il seront souvent inaccessibles à partir des explorateurs des utilisateurs.",
+       "title-invalid-magic-tilde": "Le titre de la page demandée contient une séquence invalide de tilde magiques (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "La demande de titre de la page est trop longue. Il ne doit pas être de plus de $1 {{PLURAL:$1|octets|bytes}} dans l'encodage UTF-8.",
+       "title-invalid-leading-colon": "Le titre de la page demandée contient une virgule invalide au début.",
        "perfcached": "Les données suivantes sont en cache et peuvent ne pas être à jour. Un maximum de {{PLURAL:$1|un résultat|$1 résultats}} est disponible dans le cache.",
        "perfcachedts": "Les données suivantes sont en cache et ont été mises à jour pour la dernière fois le $1. Un maximum de {{PLURAL:$4|un résultat est disponible|$4 résultats sont disponibles}} dans le cache.",
        "querypage-no-updates": "Les mises à jour pour cette page sont actuellement désactivées. Les données ci-dessous ne sont pas mises à jour.",
        "content-model-css": "CSS",
        "content-json-empty-object": "Objet vide",
        "content-json-empty-array": "Tableau vide",
+       "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.",
        "uploaddisabledtext": "L’import de fichiers est désactivé sur ce wiki.",
        "php-uploaddisabledtext": "L'import de fichiers a été désactivé dans PHP. Vérifiez l'option de configuration file_uploads.",
        "uploadscripted": "Ce fichier contient du code HTML ou un script qui pourrait être interprété de façon incorrecte par un navigateur web.",
+       "upload-scripted-pi-callback": "Impossible de charger un fichier qui contient des instructions de traitement de feuille de style XML.",
+       "uploaded-script-svg": "Élément scriptable « $1 » trouvé dans le fichier SVG téléchargé.",
+       "uploaded-hostile-svg": "CSS non sûr trouvé dans l’élément style d’un fichier SVG téléchargé.",
+       "uploaded-event-handler-on-svg": "Fixer des attributs de gestionnaire d’événement <code>$1=\"$2\"</code> n’est pas autorisé dans les fichiers SVG.",
+       "uploaded-href-attribute-svg": "Les attributs href <code>&lt;$1 $2=\"$3\"&gt;</code> avec une cible non locale (par ex. http://, javascript:, etc.) ne sont pas autorisés dans les fichiers SVG.",
+       "uploaded-href-unsafe-target-svg": "href vers une cible non sûre <code>&lt;$1 $2=\"$3\"&gt;</code> trouvé dans le fichier SVG téléchargé.",
+       "uploaded-animate-svg": "Balise « animate » trouvée, qui pourrait modifier le href en utilisant l’attribut « from » <code>&lt;$1 $2=\"$3\"&gt;</code> dans le fichier SVG téléchargé.",
+       "uploaded-setting-event-handler-svg": "Positionner des attributs de gestionnaire d’événement est bloqué, <code>&lt;$1 $2=\"$3\"&gt;</code> trouvé dans le fichier SVG téléchargé.",
        "uploadscriptednamespace": "Ce fichier SVG contient un espace de noms '$1' non autorisé.",
        "uploadinvalidxml": "Le XML dans le fichier importé n’a pas pu être analysé.",
        "uploadvirus": "Ce fichier contient un virus ! Pour plus de détails, consultez : $1",
        "movepagetalktext": "La page de discussion associée, si présente, sera automatiquement renommée '''sauf si :'''\n* vous déplacez la page vers un autre espace de noms, ou\n* une page de discussion non vide existe déjà sous le nouveau nom, ou\n* vous décochez la case ci-dessous.\n\nDans ces cas-là, vous devrez renommer ou fusionner cette page de discussion manuellement si vous le désirez.",
        "movearticle": "Renommer la page :",
        "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é.",
-       "movecategorypage-warning": "<strong>Avertissement :</strong> Vous êtes sur le point de renommer une page de catégorie. Veuillez noter que seule la page sera renommée et que toutes les pages dans l'ancienne catégorie ne seront <em>pas</em> transférées dans la nouvelle.",
+       "movecategorypage-warning": "<strong>Avertissement :</strong> Vous êtes sur le point de renommer une page de catégorie. Veuillez noter que seule la catégorie sera renommée et <em>qu’aucune</em> des pages de l’ancienne catégorie ne sera transférée dans la nouvelle.",
        "movenologintext": "Pour pouvoir renommer une page, vous devez être [[Special:UserLogin|identifié{{GENDER:||e}}]] avec un compte utilisateur enregistré et d'ancienneté suffisante.",
        "movenotallowed": "Vous n'avez pas la permission de renommer les pages.",
        "movenotallowedfile": "Vous n'avez pas la permission de renommer les fichiers.",
        "log-name-pagelang": "Tracer les changements de langue",
        "log-description-pagelang": "Ceci est un journal des changements dans les langues des pages.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|a changé}} la langue de la page $3 de $4 à $5.",
-       "default-skin-not-found": "Oups ! L’habillage par défaut pour votre wiki, défini par <code dir=\"ltr\">$wgDefaultSkin</code> comme <code>$1</code>, n’est pas disponible.\n\nVotre installation semble inclure {{PLURAL:$4|l’habillage suivant|les habillages suivants}}. Voyez [https://www.mediawiki.org/wiki/Manual:Skin_configuration le manuel de configuration des habillages] pour savoir comment {{PLURAL:$4|l’|les }}activer et choisir celui par défaut.\n\n$2\n\n; Si vous venez juste d’installer MediaWiki :\n: Vous l’avez probablement installé depuis git, ou directement depuis le code source avec une autre méthode. C’est normal. Essayez d’installer des habillages depuis [https://www.mediawiki.org/wiki/Category:All_skins le répertoire des habillages de mediawiki.org], en:\n:* Téléchargeant le [https://www.mediawiki.org/wiki/Download fichier tar de l’installeur], qui comprend plusieurs habillages et extensions. Vous pouvez copier et coller le répertoire <code>skins/</code> depuis là.\n:* Téléchargeant les fichiers tar d’habillage individuel depuis [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clonant un des dépôts <code>mediawiki/skins/*</code> via git dans le répertoire <code dir=\"ltr\">skins/</code> de votre installation de MediaWiki.\n: Faire ainsi ne devrait pas interférer avec votre dépôt git, si vous êtes un développeur de MediaWiki.\n\n; Si vous venez juste de mettre à jour MediaWiki :\n: MediaWiki 1.24 et au-delà n’active plus automatiquement les habillages installés (voyez [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery le manuel sur la découverte automatique des habillages]). Vous pouvez coller {{PLURAL:$5|la ligne suivante|les lignes suivantes}} dans <code>LocalSettings.php</code> pour activer {{PLURAL:$5|l’habillage actuellement installé|tous les habillages actuellement installés}} :\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si vous venez de modifier <code>LocalSettings.php</code> :\n: Vérifiez deux fois le nom des habillages pour éviter les erreurs de frappe.",
+       "default-skin-not-found": "Oups ! L’habillage par défaut pour votre wiki, défini par <code dir=\"ltr\">$wgDefaultSkin</code> comme <code>$1</code>, n’est pas disponible.\n\nVotre installation semble inclure {{PLURAL:$4|l’habillage suivant|les habillages suivants}}. Voyez [https://www.mediawiki.org/wiki/Manual:Skin_configuration le manuel de configuration des habillages] pour savoir comment {{PLURAL:$4|l’|les }}activer et choisir celui par défaut.\n\n$2\n\n; Si vous venez juste d’installer MediaWiki :\n: Vous l’avez probablement installé depuis git, ou directement depuis le code source avec une autre méthode. C’est normal. Essayez d’installer des habillages depuis [https://www.mediawiki.org/wiki/Category:All_skins le répertoire des habillages de mediawiki.org], en:\n:* Téléchargeant le [https://www.mediawiki.org/wiki/Download fichier tar de l’installeur], qui comprend plusieurs habillages et extensions. Vous pouvez copier et coller le répertoire <code>skins/</code> depuis là.\n:* Téléchargeant les fichiers tar d’habillage individuel depuis [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Téléchargeant des habillages avec Git].\n: Faire ainsi ne devrait pas interférer avec votre dépôt git, si vous êtes un développeur de MediaWiki.\n\n; Si vous venez juste de mettre à jour MediaWiki :\n: MediaWiki 1.24 et au-delà n’active plus automatiquement les habillages installés (voyez [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery le manuel sur la découverte automatique des habillages]). Vous pouvez coller {{PLURAL:$5|la ligne suivante|les lignes suivantes}} dans <code>LocalSettings.php</code> pour activer {{PLURAL:$5|l’habillage actuellement installé|tous les habillages actuellement installés}} :\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si vous venez de modifier <code>LocalSettings.php</code> :\n: Vérifiez deux fois le nom des habillages pour éviter les erreurs de frappe.",
        "default-skin-not-found-no-skins": "Oups ! L’habillage par défaut pour votre wiki , défini par <code>$wgDefaultSkin</code> comme <code>$1</code>, n’est pas disponible.\n\nVous n’avez aucun habillage d’installé.\n\n; Si vous venez juste d’installer ou de mettre à jour MediaWiki :\n: Vous l’avez sans doute fait depuis git, ou directement depuis le code source avec une autre méthode. C’est normal. MediaWiki 1.24 et au-delà n’inclut aucun habillage dans le dépôt principal. Essayez d’installer des habillages depuis [https://www.mediawiki.org/wiki/Category:All_skins le répertoire des habillages de mediawiki.org], en :\n:* Téléchargeant [https://www.mediawiki.org/wiki/Download le fichier tar de l’installeur], qui comprend différents habillages et extensions. Vous pouvez copier et coller le répertoire <code>skins/</code> depuis là.\n:* Téléchargeant les fichiers tar d’habillage individuel depuis [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:*Clonant un des dépôts <code>mediawiki/skins/*</code> via git dans le répertoire <code dir=\"ltr\">skins/</code> de votre installation de MediaWiki.\n: Faire ainsi ne devrait pas interférer avec votre dépôt git si vous êtes un développeur de MediaWiki. Voyez [https://www.mediawiki.org/wiki/Manual:Skin_configuration le manuel de la configuration des habillages] pour des instructions sur la manière d’activer les habillages et choisir celui par défaut.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (activé)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''désactivé''')",
index 616650f..b33ee71 100644 (file)
        "tog-hidepatrolled": "Cachiér los changements gouardâs dedens los dèrriérs changements",
        "tog-newpageshidepatrolled": "Cachiér les pâges gouardâyes entre-mié la lista de les pâges novèles",
        "tog-extendwatchlist": "Ètendre la lista de siuvu por montrar tôs los changements et pas ren que los ples novéls",
-       "tog-usenewrc": "Rassemblar los changements per pâge dedens los dèrriérs changements et la lista de siuvu (at fôta de JavaScript)",
+       "tog-usenewrc": "Rassemblar los changements per pâge dedens los dèrriérs changements et la lista de siuvu",
        "tog-numberheadings": "Numerotar ôtomaticament los titros de sèccion",
-       "tog-showtoolbar": "Montrar la bârra d’outils de changement (at fôta de JavaScript)",
-       "tog-editondblclick": "Changiér des pâges sur doblo-clic (at fôta de JavaScript)",
-       "tog-editsectiononrightclick": "Activar lo changement de sèccions per clic drêt sur lors titros (at fôta de JavaScript)",
+       "tog-showtoolbar": "Montrar la bârra d’outils de changement",
+       "tog-editondblclick": "Changiér des pâges sur doblo-clic",
+       "tog-editsectiononrightclick": "Activar lo changement de sèccions per clic drêt sur lors titros",
        "tog-watchcreations": "Apondre les pâges que fé et pués los fichiérs que tèlèchârjo a ma lista de siuvu",
        "tog-watchdefault": "Apondre les pâges et los fichiérs que chanjo a ma lista de siuvu",
        "tog-watchmoves": "Apondre les pâges et los fichiérs que dèplaço a ma lista de siuvu",
        "tog-watchdeletion": "Apondre les pâges et los fichiérs que suprimo a ma lista de siuvu",
+       "tog-watchrollback": "Apondre a ma lista de siuvu les pâges que j’é fêt na rèvocacion",
        "tog-minordefault": "Marcar per dèfôt tôs los changements coment petiôts",
        "tog-previewontop": "Montrar l’apèrçu d’amont la zona de changement",
        "tog-previewonfirst": "Montrar l’apèrçu pendent lo premiér changement",
@@ -34,7 +35,7 @@
        "tog-shownumberswatching": "Montrar lo nombro d’utilisators que siuvont na pâge",
        "tog-oldsig": "Signatura ègzistenta :",
        "tog-fancysig": "Trètar la signatura coment de vouiquitèxto (sen lim ôtomatico)",
-       "tog-uselivepreview": "Empleyér l’apèrçu rapido (at fôta de JavaScript) (èxpèrimentâl)",
+       "tog-uselivepreview": "Empleyér l’apèrçu rapido",
        "tog-forceeditsummary": "Mè balyér na semonce quand j’é pas buchiê de rèsumâ de changement",
        "tog-watchlisthideown": "Cachiér los mins changements dedens la lista de siuvu",
        "tog-watchlisthidebots": "Cachiér los changements fêts per des robots dedens la lista de siuvu",
@@ -47,6 +48,7 @@
        "tog-showhiddencats": "Montrar les catègories cachiêes",
        "tog-norollbackdiff": "Pas fâre vêre la dif pendent na rèvocacion",
        "tog-useeditwarning": "M’avèrtir quand quito una pâge de changement sen sôvar los changements",
+       "tog-prefershttps": "Empleyér tojorn un branchement sècurisâ en étent branchiê",
        "underline-always": "Tojorn",
        "underline-never": "Jamés",
        "underline-default": "Valor de l’habelyâjo du navigator per dèfôt",
        "hidden-category-category": "Catègories cachiêes",
        "category-subcat-count": "Cela catègorie-que at {{PLURAL:$2|ren que ceta sot-catègorie.|{{PLURAL:$1|ceta sot-catègorie|cetes $1 sot-catègories}}, sur na soma de $2.}}",
        "category-subcat-count-limited": "Cela catègorie-que at {{PLURAL:$1|ceta sot-catègorie|cetes $1 sot-catègories}}.",
-       "category-article-count": "{{PLURAL:$2|Cela catègorie-que contint ren que ceta pâge.|{{PLURAL:$1|Ceta pâge figure|Cetes $1 pâges figuront}} dedens cela catègorie-que, sur na soma de $2.}}",
+       "category-article-count": "{{PLURAL:$2|Cela catègorie-que contint ren que ceta pâge.|{{PLURAL:$1|Ceta pâge est|Cetes $1 pâges sont}} a cela catègorie-que, sur na soma de $2.}}",
        "category-article-count-limited": "{{PLURAL:$1|Ceta pâge figure|Cetes $1 pâges figuront}} dedens la presenta catègorie.",
-       "category-file-count": "{{PLURAL:$2|Cela catègorie-que contint ren que ceti fichiér.|{{PLURAL:$1|Ceti fichiér figure|Cetos $1 fichiérs figuront}} dedens cela catègorie-que, sur na soma de $2.}}",
+       "category-file-count": "{{PLURAL:$2|Cela catègorie-que contint ren que ceti fichiér.|{{PLURAL:$1|Ceti fichiér est|Cetos $1 fichiérs sont}} a cela catègorie-que, sur na soma de $2.}}",
        "category-file-count-limited": "{{PLURAL:$1|Ceti fichiér figure|Cetos $1 fichiérs figuront}} dedens la presenta catègorie.",
        "listingcontinuesabbrev": "(suita)",
        "index-category": "Pâges endèxâyes",
        "newwindow": "(ôvre na fenétra novèla)",
        "cancel": "Anular",
        "moredotdotdot": "Més...",
-       "morenotlisted": "Més pas listâ...",
+       "morenotlisted": "Ceta lista est pas complèta.",
        "mypage": "Pâge",
        "mytalk": "Discussion",
        "anontalk": "Discussion avouéc cet’adrèce IP",
        "permalink": "Lim fixo",
        "print": "Emprimar",
        "view": "Liére",
+       "view-foreign": "Vêde sur $1",
        "edit": "Changiér",
+       "edit-local": "Changiér la dèscripcion locâla",
        "create": "Fâre",
+       "create-local": "Apondre na dèscripcion locâla",
        "editthispage": "Changiér ceta pâge",
        "create-this-page": "Fâre cela pâge",
        "delete": "Suprimar",
index 366ace0..31e7e3e 100644 (file)
        "no-null-revision": "Det nul-werjuun för det sidj \"$1\" küd ei skrewen wurd.",
        "badtitle": "Ferkiard tiitel",
        "badtitletext": "Didiar sidjennööm gongt ei. Hi as ferlicht leesag of as en ferkiard ferwisang faan en ööder projekt.",
+       "title-invalid-empty": "Didiar sidjennööm as leesag of diar stäänt bluas en en nöömrüm.",
+       "title-invalid-utf8": "Didiar sidjennööm hää en ferkiard UTF-8-sekwens.",
+       "title-invalid-interwiki": "Didiar nööm hää en interwiki-ferwisang",
+       "title-invalid-talk-namespace": "Di uunfraaget sidjennööm hää mä en diskuschuunssidj tu dun, diar't goorei jiw koon.",
+       "title-invalid-characters": "Di uunfraaget sidjennööm hää ferkiard tiakens: \"$1\".",
+       "title-invalid-relative": "Di tiitel hää en relatiiwen wai. Relatiif waier (./, ../) san ei tuläät, auer diar ei arke browser mä amgung koon.",
        "perfcached": "Jodiar dooten kem faan a cache an san ferlicht ei muar aktuel. Ei muar üs {{PLURAL:$1|ian resultoot as|$1 resultooten san}} uun a cache.",
        "perfcachedts": "Jodiar dooten kem faan a cache, leetst tooch nei: $1. Ei muar üs {{PLURAL:$4|ian resultoot as|$4 resultooten san}} uun a cache.",
        "querypage-no-updates": "Dü könst detdiar sidj uun uugenblak ei aktualisiare. A dooten wurd iarst ans ei iinsteld.",
index da9d973..3a5af21 100644 (file)
@@ -57,6 +57,7 @@
        "underline-default": "Webblêder-standert",
        "editfont-style": "Lettertypestyl bewurkingsfinster",
        "editfont-default": "Blêdererstandert",
+       "editfont-monospace": "Monospaced lettertype",
        "editfont-sansserif": "Skreefleas lettertype",
        "editfont-serif": "Lettertype mei skreven",
        "sunday": "snein",
        "feb": "feb",
        "mar": "mrt",
        "apr": "apr",
-       "may": "maaie",
+       "may": "maa",
        "jun": "jun",
        "jul": "jul",
        "aug": "aug",
        "qbmyoptions": "Myn Opsjes",
        "faq": "FAQ (faak stelde fragen)",
        "faqpage": "Project:Faak stelde fragen",
+       "actions": "Aksjes",
        "namespaces": "Nammeromten",
        "variants": "Farianten",
        "navigation-heading": "Navigaasjemenu",
        "permalink": "Fêste keppeling",
        "print": "Ofdrukke",
        "view": "Lêze",
+       "view-foreign": "Besjen op $1",
        "edit": "Bewurkje",
+       "edit-local": "Lokale beskriuwing bewurkje",
        "create": "Oanmeitsje",
        "create-local": "Lokale beskriuwing tafoegje",
        "editthispage": "Side bewurkje",
        "create-this-page": "Dizze side oanmeitsje",
-       "delete": "Wiskje",
+       "delete": "Fuortsmite",
        "deletethispage": "Side wiskje",
+       "undeletethispage": "Side werompleatse",
        "undelete_short": "$1 {{PLURAL:$1|ferzje|ferzjes}} weromsette",
        "protect": "Skoattel",
        "protect_change": "feroarje nivo fan skoatteljen",
        "jumptosearch": "sykje",
        "view-pool-error": "Ekskuseare, de tsjinners hawwe it op it stuit te drok.\nTefolle meidoggers probearje dizze side te besjen.\nWachtsje efkes foardatsto op 'e nij tagong ta dizze side probearrest te krijen.\n\n$1",
        "pool-errorunknown": "Unbekende flater",
+       "poolcounter-usage-error": "Gebrûksflater: $1",
        "aboutsite": "Oer {{SITENAME}}",
        "aboutpage": "Project:Ynfo",
        "copyright": "Ynhâld is beskikber ûnder de $1.",
        "disclaimers": "Foarbehâld",
        "disclaimerpage": "Project:Algemien foarbehâld",
        "edithelp": "Bewurk-help",
+       "helppage-top-gethelp": "Help",
        "mainpage": "Haadside",
        "mainpage-description": "Haadside",
        "policy-url": "Project:Belied",
        "retrievedfrom": "Untfongen fan \"$1\"",
        "youhavenewmessages": "Jo hawwe $1 ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|in nij berjocht|999=nije berjochten}}",
+       "newmessagesdifflinkplural": "lêste {{PLURAL:$1|feroaring|999=feroarings}}",
        "youhavenewmessagesmulti": "Jo hawwe nije berjochten op $1",
        "editsection": "bewurkje",
        "editold": "bewurkje",
        "nospecialpagetext": "<strong>Jo hawwe in Wiki-side opfrege dy't net bekend is by it Wiki-programma.</strong>",
        "error": "Flater",
        "databaseerror": "Databankfout",
+       "databaseerror-query": "Sykopdracht: $1",
        "databaseerror-function": "Funksje: $1",
        "databaseerror-error": "Flater: $1",
        "laggedslavemode": "<strong>Warskôging:</strong> Mûglik binne resinte bewurkings noch net trochfierd.",
        "internalerror": "Ynterne fout",
        "internalerror_info": "Ynterne fout: $1",
        "filecopyerror": "Koe triem \"$1\" net kopiearje as \"$2\".",
-       "filerenameerror": "Koe triem \"$1\" net werneame as \"$2\".",
+       "filerenameerror": "Koe triem \"$1\" net omneame as \"$2\".",
        "filedeleteerror": "Koe triem \"$1\" net wiskje.",
        "directorycreateerror": "Map \"$1\" koe net oanmakke wurde.",
        "filenotfound": "Koe triem \"$1\" net fine.",
        "namespaceprotected": "Jo hawwe gjin rjochten om siden yn'e nammerûmte '''$1''' te bewurkjen.",
        "ns-specialprotected": "Siden yn'e nammerûmte {{ns:special}} kinne net bewurke wurde.",
        "titleprotected": "It oanmeitsjen fan dizze side is befeilige troch [[User:$1|$1]].\nDe oanfierde reden is ''$2''.",
+       "exception-nologin": "Net oanmeld",
        "virus-badscanner": "Minne konfiguraasje: ûnbekende virusscanner: ''$1''",
        "virus-scanfailed": "scannen is mislearre (koade $1)",
        "virus-unknownscanner": "ûnbekend antivirus:",
        "passwordreset-domain": "Domein:",
        "passwordreset-email": "E-mailadres:",
        "passwordreset-emailtitle": "Akkountdetails op {{SITENAME}}",
+       "passwordreset-emailelement": "Brûkersnamme: $1\nTydlik wachtwurd: $2",
        "changeemail": "Feroarje e-mailadres",
+       "changeemail-newemail": "Nij e-mailadres:",
        "changeemail-none": "(gjin)",
+       "changeemail-password": "Jo wachtwurd foar {{SITENAME}}:",
+       "changeemail-submit": "E-mailadres wizigje",
+       "resettokens": "Kaaien ferfarskje",
+       "resettokens-legend": "Kaaien ferfarskje",
+       "resettokens-tokens": "Kaaien:",
        "resettokens-token-label": "$1 (hjoeddeistige wearde: $2)",
+       "resettokens-resetbutton": "Selektearre kaaien ferfarskje",
        "bold_sample": "Fette tekst",
        "bold_tip": "Fette tekst",
        "italic_sample": "Skeane tekst",
        "session_fail_preview_html": "<strong>Jo bewurking is net ferwurke, om't sesjegegevens ferlern gien binne.</strong>\n\n<em>Om't yn {{SITENAME}} rûge HTML ynskeakele is, is in foarfertoaning net mûglik as beskerming tsjin oanfallen mei JavaScript.</em>\n\n<strong>As dit in legitime bewurking is, besykje it dan fannijs.</strong>\nAs it dan  noch net slagget, [[Special:UserLogout|meld jo dan ôf]] en wer oan.",
        "token_suffix_mismatch": "<strong>Jo bewurking is wegere om't jo blêder de lêstekens yn it bewurkingstoken ûnkrekt behannele hat.</strong>\nDe bewurking is wegere om skeinen fan 'e sidetekst tefoaren te kommen.\nDat bart soms as der in webbasearre proxytsjinst brûkt wurdt dy't flaters befettet.",
        "editing": "Bewurkje \"$1\"",
+       "creating": "$1 oanmeitsje",
        "editingsection": "Bewurkje $1 (seksje)",
        "editingcomment": "Dwaande mei bewurkjen fan $1 (opmerking)",
        "editconflict": "Tagelyk bewurke: \"$1\"",
        "edit-already-exists": "De side is net oanmakke.\nHy bestie al.",
        "defaultmessagetext": "Standert berjochttekst",
        "content-model-wikitext": "wikitekst",
+       "content-model-text": "tekst sûnder opmaak",
        "content-model-javascript": "JavaScript",
+       "content-json-empty-object": "Leech objekt",
+       "content-json-empty-array": "Lege rige",
        "expensive-parserfunction-warning": "<strong>Warskôging:</strong> Dizze side brûkt tefolle kostbere parserfunksjes.\n\nWylst it minder as $2 {{PLURAL:$2|parserfunksje|parserfunksjes}} wêze moatte, no {{PLURAL:$1|is it $1 |binne it $1}}",
        "expensive-parserfunction-category": "Siden dy't tefolle kostbere parserfuksjes brûke",
        "post-expand-template-inclusion-warning": "<strong>Warskôging:</strong> jo geane oer de maksimale opnamegrutte foar sjabloanen.\nGuon sjabloanen wurden net opnommen.",
        "rev-deleted-text-permission": "Dy bewurking fan de side is fuorthelle út de publike argiven.\nDer kinne details oanwêzich wêze yn it [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} fuorthel-logboek].",
        "rev-deleted-text-view": "Dizze bewurking fan de side is fuorthelle út de publike argiven.\nAs behearder fan {{SITENAME}} kinne jo him besjen;\nder kinne details wêze yn it [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} fuorthel-logboek].",
        "rev-delundel": "sjen litte/ferbergje",
+       "rev-showdeleted": "werjaan",
        "revisiondelete": "Wiskje/weromsette ferzjes",
        "revdelete-nooldid-title": "Gjin doelferzje",
        "revdelete-nooldid-text": "Jo hawwe gjin doelferzje(s) foar dizze hanneling opjûn, de oanjûne ferzje bestiet net, of jo besykje de lêste ferzje te ferskûljen.",
        "revdelete-hide-text": "De bewurke tekst ferskûlje",
        "revdelete-hide-image": "Triem ynhâld ferskûlje",
        "revdelete-hide-name": "Aksje en doel ferskûlje",
-       "revdelete-hide-comment": "De bewurkingsgearfetting ferskûlje",
+       "revdelete-hide-comment": "Bewurkingsgearfetting",
        "revdelete-hide-user": "Meidoggernamme/IP fan de meidogger ferskûlje",
        "revdelete-hide-restricted": "Dizze beheinings tapasse op behearders en dizze ynterface ôfslute",
        "revdelete-radio-set": "Ferburgen",
        "pagehist": "Sideskiednis",
        "deletedhist": "Wiske skiednis",
        "revdelete-edit-reasonlist": "Redenen foar fuortheljen bewurkje",
+       "revdelete-offender": "Auteur ferzje:",
        "suppressionlog": "Ferskûl-logboek",
        "suppressionlogtext": "Hjir ûnder stiet in list fan fuorthellings en blokkades dy't foar behearders ferskûle binne. Sjoch de [[Special:IPBlockList|IP block list]] foar de blokkades op dit stuit.",
        "mergehistory": "Skiednis fan kombinearjen",
        "notextmatches": "Gjin siden",
        "prevn": "foarige {{PLURAL:$1|$1}}",
        "nextn": "folgende {{PLURAL:$1|$1}}",
+       "prev-page": "foarige side",
+       "next-page": "folgjende side",
        "prevn-title": "{{PLURAL:$1|Foarich risseltaat|Foarige $1 risseltaten}}",
        "nextn-title": "{{PLURAL:$1|Folgjend risseltaat|Folgjende $1 risseltaat}}",
        "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3) besjen.",
        "prefs-personal": "Persoanlike gegevens",
        "prefs-rc": "Koartlyn feroare",
        "prefs-watchlist": "Folchlist",
+       "prefs-editwatchlist": "Folchlist bewurkje",
        "prefs-watchlist-days": "Oantal dagen yn folchlist sjen litte:",
        "prefs-watchlist-days-max": "Maksimaal $1 {{PLURAL:$1|dei|dagen}}",
        "prefs-watchlist-edits": "Tal wizigings om sjen te litten yn de útwreide folchlist:",
        "prefs-watchlist-edits-max": "Maksimum oantal: 1000",
+       "prefs-watchlist-token": "Folchlistkaai:",
        "prefs-misc": "Ferskaat",
        "prefs-resetpass": "Wachtwurd feroarje",
        "prefs-email": "E-mail",
        "columns": "Kolommen",
        "searchresultshead": "Sykje",
        "stub-threshold": "Drompel foar markearring <a href=\"#\" class=\"stub\">stobbe</a> (bytes):",
+       "stub-threshold-disabled": "Utskeakele",
        "recentchangesdays": "Dagen om sjen te litten yn Koartlyn feroare:",
        "recentchangesdays-max": "(maksimaal $1 {{PLURAL:$1|dei|dagen}})",
        "recentchangescount": "Tal titels op 'Koartlyn feroare'",
        "prefs-signature": "Sinjatuer",
        "prefs-dateformat": "Datumopmaak",
        "prefs-timeoffset": "Tiidsferskil",
+       "prefs-advancedediting": "Algemiene opsjes",
+       "prefs-editor": "Tekstferwurker",
        "prefs-preview": "Proefbyld",
+       "prefs-advancedrc": "Avansearre opsjes",
+       "prefs-advancedrendering": "Avansearre opsjes",
+       "prefs-advancedsearchoptions": "Avansearre opsjes",
+       "prefs-advancedwatchlist": "Avansearre opsjes",
+       "prefs-displayrc": "Werjefteopsjes",
+       "prefs-displaywatchlist": "Werjefteopsjes",
+       "prefs-tokenwatchlist": "Token",
+       "prefs-diffs": "Ferskillen",
        "userrights": "Behear fan meidoggerrjochten",
        "userrights-lookup-user": "Behear fan meidoggerrjochten",
        "userrights-user-editname": "Meidoggernamme:",
        "action-move": "dizze side in oare namme te jaan",
        "action-move-subpages": "dizze side en de derby hearrende subsiden in oare namme te jaan",
        "action-move-rootuserpages": "brûkerssiden fan it heechste nivo in oare namme te jaan",
+       "action-move-categorypages": "categorysiden ferpleatse",
        "action-movefile": "dizze triem in oare namme te jaan",
        "action-upload": "dizze triem te opladen",
        "action-reupload": "dizze besteande triem te oerskriuwen",
        "action-userrights-interwiki": "brûkersrjochten fan brûkers fan oare wiki's bewurkje",
        "action-siteadmin": "de database ôfslute of iepenstelle",
        "action-sendemail": "e-mail stjoere:",
+       "action-editmywatchlist": "jo folchlist bewurkje",
+       "action-viewmywatchlist": "jo folchlist besjen",
        "nchanges": "$1 {{PLURAL:$1|bewurking|bewurkings}}",
        "enhancedrc-history": "skiednis",
        "recentchanges": "Koartlyn feroare",
        "recentchanges-label-bot": "Dizze wiziging is troch in robot makke",
        "recentchanges-label-unpatrolled": "Dizze wiziging is noch net neisjûn",
        "recentchanges-legend-heading": "'''Leginda:'''",
-       "recentchanges-legend-newpage": "$1 - nije side",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (sjoch ek de [[Special:NewPages|list mei nije siden]])",
        "rcnotefrom": "Dit binne de feroarings sûnt <b>$2</b> (maksimaal <b>$1</b>).",
        "rclistfrom": "Jou nije feroarings, begjinnende mei $3 $2",
        "rcshowhideminor": "$1 tekstwizigings",
+       "rcshowhideminor-show": "werjaan",
+       "rcshowhideminor-hide": "ferbergje",
        "rcshowhidebots": "bots $1",
-       "rcshowhideliu": "$1 meidoggers",
+       "rcshowhidebots-show": "werjaan",
+       "rcshowhidebots-hide": "ferbergje",
+       "rcshowhideliu": "registrearre brûkers $1",
+       "rcshowhideliu-show": "werjaan",
+       "rcshowhideliu-hide": "ferbergje",
        "rcshowhideanons": "$1 anonimen",
+       "rcshowhideanons-show": "werjaan",
+       "rcshowhideanons-hide": "ferbergje",
        "rcshowhidepatr": "kontrolearre bewurkings $1",
+       "rcshowhidepatr-show": "werjaan",
+       "rcshowhidepatr-hide": "ferburgje",
        "rcshowhidemine": "$1 eigen bewurkings",
+       "rcshowhidemine-show": "werjaan",
+       "rcshowhidemine-hide": "ferbergje",
        "rclinks": "Jou $1 nije feroarings yn de lêste $2 dagen<br /> $3",
        "diff": "ferskil",
        "hist": "skiednis",
        "php-uploaddisabledtext": "PHP-triemuploads binne útskeakele.\nKontrolearje de ynstelling \"file_uploads\".",
        "uploadscripted": "Dizze triem befettet HTML- of scriptkoade dy't ferkeard troch jo browser werjûn wurde kin.",
        "uploadvirus": "De triem befettet in firus! Details: $1",
+       "upload-source": "Boarnetriem",
        "sourcefilename": "Triemnamme boarne:",
+       "sourceurl": "Boarne-URL:",
        "destfilename": "Triemnamme om op te slaan:",
        "upload-maxfilesize": "Maksimale triemgrutte: $1",
+       "upload-description": "Triembeskriuwing",
+       "upload-options": "Uploadynstellingen",
        "watchthisupload": "Folgje dizze triem",
        "filewasdeleted": "Der is earder in triem mei dizze namme fuorthelle.\nRieplachtsje it $1 foar't jo him op'e nij tafoegje.",
        "filename-bad-prefix": "De namme fan de triem dy't jo oanbiede begjint mei '''\"$1\"''', dit wiist op in namme dy't automatysk troch in digitale kamera oanmakke wurdt. Feroarje de namme as jo wolle yn ien dy't in omskriuwing jout fan de triem.",
        "filename-prefix-blacklist": " #<!-- lit dizze line exakt sa't er is --> <pre>\n# Syntax is as folget:\n#   * Alles fan in \"#\"-teken oan't de ein fan de line is in kommintaar\n#   * Elke net blanke line is a foarheaksel foar triemnammen sa't dy automatysk jûn wurde troch digitale kamera's\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # guon mobile tillefoanen\nIMG # algemien\nJD # Jenoptik\nMGP # Pentax\nPICT # ferskaat\n #</pre> <!-- lit dizze line exakt sa't er is -->",
        "upload-success-subj": "Oanbieden slagge.",
+       "upload-failure-subj": "Uploadprobleem",
+       "upload-warning-subj": "Uploadwarskôging",
        "upload-proto-error": "Ferkeard protokol",
        "upload-proto-error-text": "Oanbieden mei dizze metoade freget URL's dy't begjinne mei <code>http://</code> of <code>ftp://</code>.",
        "upload-file-error": "Ynterne fout",
        "upload-file-error-text": "Der wie in ynterne fout doe't in tydlike triem op'e server oanmakke waard.\nNim kontakt op mei in [[Special:ListUsers/sysop|behearder]].",
        "upload-misc-error": "Unbekende oanbiedflater",
        "upload-misc-error-text": "Der is by it oanbieden in ûnbekende fout optreden.\nKontrolearje of de URL krekt en beskikber is en besykje it nochris.\nAs it probleem oanhâldt, nim dan kontakt op mei in\n[[Special:ListUsers/sysop|behearder]].",
+       "http-read-error": "HTTP-lêsflater.",
        "upload-curl-error6": "Koe de URL net berikke",
        "upload-curl-error6-text": "De opjûne URL is net berikber.\nKontrolearje oft de URL krekt is en oft de webside beskikber is.",
        "upload-curl-error28": "Oanbiedtiid foarby",
        "license-nopreview": "(Foarfertoaning net beskikber)",
        "upload_source_url": " (in jildige, publyk tagonklike URL)",
        "upload_source_file": " (in triem op jo kompjûter)",
+       "listfiles-delete": "fuortsmite",
        "listfiles-summary": "Op dizze spesjale side binne alle tafoege triemmen te besjen.\nStandert wurde de lêst tafoege triemmen boppe oan de list werjûn.\nKlikken op in kolomkop feroaret de sortearring.",
        "listfiles_search_for": "Sykje nei triem:",
        "imgfile": "triem",
        "filehist": "Triem skiednis",
        "filehist-help": "Klik op in tiid om de ferzje fan de triem op dat stuit te sjen.",
        "filehist-deleteall": "wiskje alles",
-       "filehist-deleteone": "wiskje dizze",
+       "filehist-deleteone": "fuortsmite",
        "filehist-revert": "werom sette",
        "filehist-current": "lêste",
        "filehist-datetime": "Tiid",
        "filedelete-intro": "Jo wiskje '''[[Media:$1|$1]]'''.",
        "filedelete-intro-old": "Jo wiskje de ferzje fan '''[[Media:$1|$1]]''' fan [$4 $3, $2].",
        "filedelete-comment": "Reden:",
-       "filedelete-submit": "Wiskje",
+       "filedelete-submit": "Fuortsmite",
        "filedelete-success": "<strong>$1</strong> is wiske.",
        "filedelete-success-old": "De ferzje fan '''[[Media:$1|$1]]''' fan $2, $3 is fuorthelle.",
        "filedelete-nofile": "<strong>$1</strong> bestiet net.",
        "statistics-users": "Registrearre [[Special:ListUsers|brûkers]]",
        "statistics-users-active": "Aktive brûkers",
        "statistics-users-active-desc": "Brûkers dy't yn 'e ôfrûne {{PLURAL:$1|dei|$1 dagen}} in hanneling útfierd hawwe",
+       "pageswithprop-prop": "Eigenskipnamme:",
+       "pageswithprop-submit": "OK",
        "doubleredirects": "Dûbelde synonimen",
        "doubleredirectstext": "<b>Let op!</b> Der kinne missen yn dizze list stean! Dat komt dan ornaris troch oare keppelings ûnder de \"#REDIRECT\". Eltse rigel jout keppelings nei it earste synonym, it twadde synonym en dan it werklike doel.",
        "double-redirect-fixed-move": "[[$1]] is ferplakt en is no in trochferwizing nei [[$2]]",
        "brokenredirects": "Misse synonimen",
        "brokenredirectstext": "De siden dêr't dizze titels synonym oan wêze moatte, bestean net.",
        "brokenredirects-edit": "bewurkje",
-       "brokenredirects-delete": "wiskje",
+       "brokenredirects-delete": "fuortsmite",
        "withoutinterwiki": "Siden sûnder ferwizings nei oare talen",
        "withoutinterwiki-summary": "De folgjende siden ferwize net nei ferzjes yn in oare taal.",
        "withoutinterwiki-legend": "Foarheaksel",
        "protectedpages-indef": "Allinne blokkades sûnder ferrindatum",
        "protectedpages-cascade": "Allinne befeiligje mei de kaskade-opsje",
        "protectedpagesempty": "Op it stuit binne der gjin siden befeilige, dy't oan dizze betingsten foldogge.",
+       "protectedpages-timestamp": "Tiidstimpel",
+       "protectedpages-page": "Side",
        "protectedpages-reason": "Reden",
        "protectedpages-unknown-timestamp": "Unbekend",
        "protectedtitles": "Skoattele titels",
        "newpages": "Nije siden",
        "newpages-username": "Brûkersnamme:",
        "ancientpages": "Alde siden",
-       "move": "Werneam",
-       "movethispage": "Werneam dizze side",
+       "move": "Omneame",
+       "movethispage": "Dizze side omneame",
        "unusedimagestext": "<p>Tink derom dat oare websiden fan oare parten fan it meartalige projekt mooglik in keppeling nei it URL fan it ôfbyld makke hawwe. Sokke ôfbylden wurde wol brûkt, mar steane dochs op dizze list.",
        "unusedcategoriestext": "Hjirûnder steane kategoryen dy't oanmakke binne, mar troch gjin inkelde side of oare kategory brûkt wurde.",
        "notargettitle": "Gjin side",
        "listusers-noresult": "Gjin brûker fûn.",
        "listusers-blocked": "(blokkearre)",
        "activeusers": "Aktive meidoggers",
+       "activeusers-count": "$1 {{PLURAL:$1|aksje|aksjes}} yn de lêste {{PLURAL:$3|dei|$3 dagen}}",
+       "activeusers-hidebots": "Bots ferbergje",
+       "activeusers-hidesysops": "Behearders ferbergje",
        "activeusers-noresult": "Gjin meidoggers fûn.",
        "listgrouprights": "Rjochten fan brûkersgroepen",
        "listgrouprights-summary": "Op dizze side steane de brûkersgroepen yn dizze wiki beskreaun, mei har derby hearrende rjochten.\nDer kin [[{{MediaWiki:Listgrouprights-helppage}}|ekstra ynformaasje]] oer yndividuele rjochten oanwêzich wêze.",
        "listgrouprights-addgroup-all": "Kin brûkers oan alle groepen tafoegje",
        "listgrouprights-removegroup-all": "Kin brûkers út alle groepen fuorthelje",
        "listgrouprights-namespaceprotection-namespace": "Nammeromte",
+       "trackingcategories-name": "Berjochtnamme",
        "mailnologin": "Gjin adres beskikber",
        "mailnologintext": "Jo moatte [[Special:UserLogin|oanmelden]] wêze, en in jildich e-postadres [[Special:Preferences|ynsteld]] hawwe, om oan oare meidoggers e-post stjoere te kinnen.",
        "emailuser": "E-mail meidogger",
        "noemailtext": "Dizze meidogger hat gjin jildich e-postadres ynsteld, of hat oanjûn gjin post fan oare meidoggers krije te wollen.",
        "nowikiemailtext": "Dizze brûker wol gjin e-mail ûntfange fan oare brûkers.",
        "emailusername": "Brûkersnamme:",
+       "emailusernamesubmit": "Ferstjoere",
        "email-legend": "In e-mail ferstjoere nei in oare brûker fan {{SITENAME}}",
        "emailfrom": "Fan:",
        "emailto": "Oan:",
        "emailsenttext": "Jo berjocht is stjoerd.",
        "watchlist": "Folchlist",
        "mywatchlist": "Folchlist",
+       "watchlistfor2": "Foar $1 $2",
        "nowatchlist": "Jo hawwe gjin siden op jo folchlist.",
        "watchnologin": "Net oanmeld yn",
+       "addwatch": "Oan folchlist tafoegje",
        "addedwatchtext": "De side \"'''[[:$1]]'''\" is tafoege oan jo [[Special:Watchlist|folchlist]]. Bewurkings fan dizze side en oerlisside wurde yn de takomst op jo folchlist oanjûn. Hja wurde foar jo ek '''fet''' printe op [[Special:RecentChanges|Koartlyn feroare]].\n\nAt jo letter in side net mear folgje wolle, dan brûke jo op dy side de keppeling \"Ferjit dizze side.\" Jo [[Special:Watchlist|folchlist]] hat ek in keppeling \"Jo folchlist bewurkje,\" foar at jo mear as ien side \"ferjitte\" wolle.",
        "removedwatchtext": "De side \"[[:$1]]\" stiet net mear op jo folchlist.",
        "watch": "Folgje",
        "excontent": "ynhâld wie: '$1'",
        "excontentauthor": "ynhâld wie: '$1' (en de ienige bewurker wie: '[[Special:Contributions/$2|$2]]')",
        "exbeforeblank": "foar de tekst wiske wie, wie dat: '$1'",
-       "delete-confirm": "\"$1\" wiskje",
-       "delete-legend": "Wiskje",
+       "delete-confirm": "\"$1\" fuortsmite",
+       "delete-legend": "Fuortsmite",
        "historywarning": "<strong>Warskôging:</strong> De side dy't jo wiskje wolle hat skiednis:",
        "confirmdeletetext": "Jo binne dwaande mei it foar altyd wiskjen fan in side\nof ôfbyld, tegearre mei alle skiednis, út de databank.\nBefêstigje dat jo dat wier dwaan wolle. Befêstigje dat dat is wat jo witte wat it gefolch\nis en dat jo dit dogge neffens de [[{{MediaWiki:Policy-url}}]].",
        "actioncomplete": "Dien",
        "maximum-size": "Max. grutte:",
        "pagesize": "(bytes)",
        "restriction-edit": "Bewurkje",
-       "restriction-move": "Werneam",
+       "restriction-move": "Omneame",
        "restriction-create": "Oanmeitsje",
        "restriction-upload": "Oanbiede",
        "restriction-level-sysop": "folslein skoattele",
        "lockdbsuccesstext": "De {{SITENAME}} databank is 'Net-skriuwe' makke.\n<br />Tink derom en meitsje de databank skriuwber as jo ûnderhâld ree is.",
        "unlockdbsuccesstext": "De {{SITENAME}} databank is skriuwber makke.",
        "lockedbyandtime": "(troch {{GENDER:$1|$1}} op $2 om $3)",
-       "move-page": "Werneam  $1",
-       "move-page-legend": "Werneam side",
+       "move-page": "\"$1\" omneame",
+       "move-page-legend": "Side omneame",
        "movepagetext": "Dit werneamt in side, mei alle sideskiednis.\nDe âlde titel wurdt in trochferwizing nei de nije.\nKeppelings mei de âlde side wurde net feroare;\ngean sels nei of't der dûbele of misse ferwizings binne.\nIt hinget fan jo ôf of't de siden noch keppelen binne sa't it mient wie.\n\nDe side wurdt '''net''' werneamt as der al in side mei dy namme is, útsein as it in side\nsûnder skiednis is en de side leech is of in trochferwizing is. Sa kinne jo in side\ndaalks weromneame as jo in flater meitsje, mar jo kinne in oare side net oerskriuwe.",
-       "movepagetalktext": "As der in oerlisside by heart, dan bliuwt dy oan de side keppele, '''útsein''':\n*De nije sidenamme yn in oare nammeromte is,\n*Der keppele oan de nije namme al in net-lege oerlisside is, of\n*Jo dêr net foar kieze.\n\nIn dizze gefallen is it oan jo hoe't jo de oerlisside werneame of ynfoegje wolle.",
-       "movearticle": "Werneam side",
+       "movepagetalktext": "As der in oerlisside by heart, dan bliuwt dy oan de side keppele, '''útsein''':\n*De nije sidenamme yn in oare nammeromte is,\n*Der keppele oan de nije namme al in net-lege oerlisside is, of\n*Jo dêr net foar kieze.\n\nIn dizze gefallen is it oan jo hoe't jo de oerlisside omneame of ynfoegje wolle.",
+       "movearticle": "Side omneame",
        "movenologintext": "Jo moatte [[Special:UserLogin|oanmeld]] wêze om in side wer te neamen.",
        "newtitle": "As nij titel",
        "move-watch": "Folch dizze side",
-       "movepagebtn": "Werneam side",
+       "movepagebtn": "Side omneame",
        "pagemovedsub": "Werneamen slagge",
        "movepage-moved": "<strong>\"$1\" hjit no \"$2\"</strong>",
        "articleexists": "Der is al in side mei dy namme, of oars is de namme dy't jo oanjûn hawwe net tastien. Besykje it op 'e nij.",
        "movetalk": "Titel fan oerlisside ek feroarje, as dy der is.",
        "movepage-page-moved": "De side $1 is werneamd nei $2.",
-       "movelogpage": "Werneam-loch",
+       "movelogpage": "Omneamloch",
        "movelogpagetext": "Dit is in list fan feroare titels.",
        "movereason": "Reden:",
        "revertmove": "werom sette",
-       "delete_and_move": "Wiskje en werneam",
+       "delete_and_move": "Fuortsmite en omneame",
        "delete_and_move_text": "== Wiskjen nedich ==\nDe doelside \"[[:$1]]\" is der al.\nMoat dy wiske wurde om plak te meitsjen foar it werneamen?",
        "delete_and_move_confirm": "Ja, wiskje de side",
        "delete_and_move_reason": "Wiske om plak te meitsjen foar in werneamde side",
        "export": "Eksportearje",
+       "exportall": "Alle siden eksportearje",
        "export-submit": "Eksportearje",
        "export-addcattext": "Siden tafoegje fan kategory:",
        "export-addcat": "Tafoegje",
        "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].",
+       "allmessages-filter-legend": "Filter",
        "allmessages-filter-all": "Alle",
        "allmessages-language": "Taal:",
+       "allmessages-filter-translate": "Oersette",
        "thumbnail-more": "Fergrutsje",
        "filemissing": "Triem net fûn",
        "thumbnail_error": "Flater by it oanmeitsjen fan thumbnail: $1",
        "thumbnail_dest_directory": "Kin de doelmap net oanmeitsje",
        "import": "Importearje siden",
+       "import-interwiki-sourcewiki": "Boarnewiki:",
+       "import-interwiki-sourcepage": "Boarneside:",
        "import-interwiki-submit": "Ymportearje",
        "import-upload-filename": "Triemnamme:",
        "import-comment": "Oanmerking:",
        "tooltip-search-fulltext": "De siden foar dizze tekst sykje",
        "tooltip-p-logo": "Haadside",
        "tooltip-n-mainpage": "Gean nei de haadside",
+       "tooltip-n-mainpage-description": "Nei de haadside gean",
        "tooltip-n-portal": "Oer it projekt: wat'st dwaan kinst, wêr'st dingen fine kinst.",
        "tooltip-n-currentevents": "Eftergrûnynformaasje oer rinnende saken.",
        "tooltip-n-recentchanges": "De list fan koartlyn oanbrochte feroarings yn dizze wiki.",
        "othercontribs": "Basearre op wurk fan $1.",
        "others": "Oaren",
        "siteusers": "{{SITENAME}} {{PLURAL:$2|meidogger|meidoggers}} $1",
+       "anonusers": "Anonime {{SITENAME}}-{{PLURAL:$2|brûker|brûkers}} $1",
+       "creditspage": "Auteursside",
        "spamprotectiontext": "De side dy't jo fêstlizze woene is blokkearre troch in spam filter. Dit wurdt wierskynlik feroarsake troch in ferwizing nei in ekstern webstee.",
        "spamprotectionmatch": "De neikommende tekst hat it spam filter aktivearre: $1",
        "pageinfo-header-basic": "Basisynformaasje",
+       "pageinfo-header-edits": "Skiednis bewurkje",
+       "pageinfo-header-restrictions": "Sidebefeiliging",
        "pageinfo-header-properties": "Side-eigenskippen",
+       "pageinfo-display-title": "Werjeftetitel",
+       "pageinfo-length": "Sidelingte (yn bytes)",
+       "pageinfo-article-id": "Sidenûmer",
+       "pageinfo-language": "Taal fan de side",
+       "pageinfo-content-model": "Sideynhâldmodel",
+       "pageinfo-robot-index": "Tastien",
+       "pageinfo-robot-noindex": "Net tastien",
        "pageinfo-redirects-value": "$1",
+       "pageinfo-lastuser": "Lêste bewurker",
+       "pageinfo-lasttime": "Lêste bewurking",
+       "pageinfo-edits": "Oantal bewurkings",
+       "pageinfo-authors": "Auteurs totaal",
+       "pageinfo-magic-words": "{{PLURAL:$1|Magysk wurd|Magyske wurden}} ($1)",
        "pageinfo-toolboxlink": "Sidegegevens",
+       "pageinfo-redirectsto-info": "ynformaasje",
        "pageinfo-contentpage-yes": "Ja",
        "pageinfo-protect-cascading-yes": "Ja",
+       "pageinfo-category-info": "Kategory-ynformaasje",
+       "pageinfo-category-total": "Totaal oantal lidden",
+       "pageinfo-category-pages": "Oantal siden",
+       "pageinfo-category-subcats": "Oantal subkategoryen",
+       "pageinfo-category-files": "Oantal triemmen",
        "markaspatrolleddiff": "Markearje as kontroleare",
        "markaspatrolledtext": "Markearje dizze side as kontrolearre",
        "markedaspatrolled": "Markearre as kontrolearre",
        "file-nohires": "Gjin hegere resolúsje beskikber.",
        "svg-long-desc": "SVG-triem, nominaal $1 × $2 pixels, triemgrutte: $3",
        "show-big-image": "Oarspronklike triem",
+       "show-big-image-other": "Oare {{PLURAL:$2|resolúsje|resolúsjes}}: $1.",
        "show-big-image-size": "$1 × $2 pixels",
        "newimages": "Nije ôfbylden",
        "imagelisttext": "Dit is in list fan '''$1''' {{PLURAL:$1|triem|triemen}}, op $2.",
        "days-abbrev": "$1 d",
        "seconds": "{{PLURAL:$1|$1 sekonde|$1 sekonden}}",
        "minutes": "{{PLURAL:$1|$1 minút|$1 minuten}}",
-       "hours": "{{PLURAL:$1|$1 oere|$1 oeren}}",
+       "hours": "{{PLURAL:$1|$1 oere|$1 oere}}",
        "days": "{{PLURAL:$1|$1 dei|$1 dagen}}",
        "weeks": "{{PLURAL:$1|$1 wike|$1 wiken}}",
        "months": "{{PLURAL:$1|$1 moanne|$1 moannen}}",
        "metadata-help": "Dizze triem befettet oanfoljende ynformaasje, dy't troch in fotokamera, scanner of fotobewurkingsprogramma tafoege wêze kin. As de triem oanpast is, komme de details mûglik net folslein oerien mei de feroare ôfbylding.",
        "metadata-expand": "Utwreide details sjen litte",
        "metadata-collapse": "Ferskûlje útwreide details",
-       "metadata-fields": "De EXIF-metadatafjilden yn dit berjocht steane op in ôfbyldingsside as de metadatatabel ynklapt is. Oare fjilden wurde ferburgen.\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-fields": "De ôfbyldingsmetadatafjilden yn dit berjocht steane op in ôfbyldingsside as de metadatatabel ynklapt is.\nOare fjilden wurde ferburgen.\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-default": "$1",
+       "exif-imagewidth": "Breedte",
+       "exif-imagelength": "Hichte",
        "exif-orientation": "Oriïntaasje",
        "exif-samplesperpixel": "Oantal komponinten",
        "exif-xresolution": "Horizontale resolúsje",
        "exif-model": "Kameramodel",
        "exif-software": "Brûkte software",
        "exif-artist": "Auteur",
+       "exif-copyright": "Auteursrjochtenhâlder",
        "exif-exifversion": "Exif-ferzje",
        "exif-colorspace": "Kleurromte",
        "exif-compressedbitsperpixel": "Ofbylding kompresjemetoade",
+       "exif-pixelydimension": "Ofbyldingsbreedte",
+       "exif-pixelxdimension": "Ofbyldingshichte",
        "exif-usercomment": "Opmerkings",
        "exif-relatedsoundfile": "Besibbe audiotriem",
        "exif-datetimeoriginal": "Tiidstip gegevensoanmaak",
        "exif-datetimedigitized": "Tiidstip digitalisearring",
+       "exif-subsectime": "Datum tijd subsekonden",
        "exif-exposuretime-format": "$1 sek ($2)",
+       "exif-fnumber": "F-nûmer",
        "exif-fnumber-format": "f/$1",
        "exif-shutterspeedvalue": "APEX-slutertiid",
        "exif-aperturevalue": "APEX-beljochting",
        "exif-brightnessvalue": "APEX-helderens",
+       "exif-lightsource": "Ljochtboarne",
        "exif-flash": "Flits",
        "exif-focallength-format": "$1 mm",
        "exif-filesource": "Triemboarne",
+       "exif-whitebalance": "Wytbalâns",
        "exif-contrast": "Kontrast",
+       "exif-saturation": "Sêding",
        "exif-sharpness": "Skerpte",
        "exif-gpslatitude": "Breedtegraad",
        "exif-gpslongitude": "Lingtegraad",
        "exif-gpsspeedref": "Snelheidsienheid",
        "exif-gpsdatestamp": "GPS-datum",
        "exif-coordinate-format": "$1° $2′ $3″ $4",
+       "exif-keywords": "Kaaiwurden",
        "exif-source": "Boarne",
        "exif-contact": "Kontakt ynformaasje",
        "exif-writer": "Skriuwer",
        "exif-languagecode": "Taal",
+       "exif-iimversion": "IIM-ferzje",
        "exif-iimcategory": "Kategory",
        "exif-datetimereleased": "Utbrocht op",
        "exif-serialnumber": "Searjenûmer fan de kamera",
        "exif-cameraownername": "Eigner fan de kamera",
+       "exif-label": "Label",
        "exif-copyrightowner": "Copyright eigner",
+       "exif-usageterms": "Gebrûksbetingsten",
        "exif-disclaimer": "Foarbehâld",
        "exif-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5, $6 $7\n</div>\n$8",
        "exif-subjectnewscode-value": "$2 ($1)",
        "exif-lightsource-0": "Unbekend",
        "exif-lightsource-1": "Deiljocht",
        "exif-lightsource-4": "Flits",
+       "exif-focalplaneresolutionunit-2": "inch",
        "exif-customrendered-0": "Normale ferwurking",
        "exif-scenecapturetype-0": "Standert",
        "exif-scenecapturetype-1": "Lânskip",
+       "exif-scenecapturetype-2": "Portret",
+       "exif-scenecapturetype-3": "Nachtsjêne",
        "exif-gaincontrol-0": "Gjin",
        "exif-contrast-0": "Normaal",
        "exif-saturation-0": "Normaal",
        "exif-sharpness-0": "Normaal",
        "exif-subjectdistancerange-0": "Unbekend",
        "exif-subjectdistancerange-2": "Tichtby",
+       "exif-gpsspeed-k": "Kilometer per oere",
+       "exif-gpsspeed-m": "Mile per oere",
+       "exif-gpsspeed-n": "Knopen",
+       "exif-gpsdestdistance-k": "Kilometers",
        "exif-gpsdestdistance-m": "Milen",
        "exif-gpsdestdistance-n": "Seemilen",
+       "exif-dc-rights": "Rjochten",
+       "exif-iimcategory-clj": "Misdied en rjocht",
+       "exif-iimcategory-edu": "Underwiis",
+       "exif-iimcategory-evn": "Miljeu",
+       "exif-iimcategory-hth": "Sûnens",
+       "exif-iimcategory-lab": "Arbeid",
+       "exif-iimcategory-pol": "Polityk",
+       "exif-iimcategory-sci": "Wittenskip en technology",
+       "exif-iimcategory-soi": "Sosjale kwestjes",
+       "exif-iimcategory-spo": "Sport",
+       "exif-iimcategory-wea": "Waar",
        "exif-urgency-normal": "Normaal ($1)",
        "namespacesall": "alle",
        "monthsall": "alle",
        "percent": "$1%",
        "parentheses": "($1)",
        "brackets": "[$1]",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← foarige side",
        "imgmultipagenext": "folgjende side →",
        "imgmultigo": "Los!",
        "watchlistedit-raw-submit": "Folchlist bewurkje",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 side is|$1 siden binne}} tafoege:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 side|$1 siden}} wiske:",
+       "watchlistedit-clear-titles": "Titels:",
        "watchlisttools-view": "Folchlist besjen",
        "watchlisttools-edit": "Folchlist besjen en bewurkje",
        "watchlisttools-raw": "Rûge folchlist bewurkje",
        "version-variables": "Fariabels",
        "version-api": "API",
        "version-other": "Oare",
+       "version-hooks": "Hooks",
+       "version-hook-name": "Hooknamme",
        "version-version": "($1)",
        "version-no-ext-name": "[gjin namme]",
-       "version-license": "Lisinsje",
+       "version-license": "Lisinsje foar MediaWiki",
+       "version-ext-license": "Lisinsje",
+       "version-ext-colheader-name": "Utwreiding",
        "version-ext-colheader-version": "Ferzje",
+       "version-ext-colheader-license": "Lisinsje",
        "version-ext-colheader-description": "Beskriuwing",
+       "version-ext-colheader-credits": "Auteurs",
+       "version-license-title": "Lisinsje foar $1",
+       "version-poweredby-others": "oaren",
+       "version-poweredby-translators": "translatewiki.net-oersetters",
        "version-software": "Ynsteld software",
        "version-software-product": "Produkt",
        "version-software-version": "Ferzje",
+       "version-entrypoints-header-url": "URL",
        "version-libraries-library": "Bibleteek",
        "version-libraries-version": "Ferzje",
        "redirect-value": "Wearde:",
        "redirect-user": "Meidogger-ID",
+       "redirect-page": "Sidenûmer",
+       "redirect-revision": "Sideferzje",
        "redirect-file": "Triemnamme",
+       "redirect-not-exists": "Wearde net fûn",
        "fileduplicatesearch": "Sykje op duplikaten",
        "fileduplicatesearch-legend": "Sykje op duplikaten",
        "fileduplicatesearch-filename": "Triemnamme:",
        "specialpages-note": "* Normale bysûndere siden.\n* <strong class=\"mw-specialpagerestricted\">Beheinde bysûndere siden.</strong>",
        "specialpages-group-maintenance": "Underhâld siden",
        "specialpages-group-other": "Oare bysûndere siden",
-       "specialpages-group-login": "Oanmelde",
+       "specialpages-group-login": "Oanmelde / registrearje",
        "specialpages-group-changes": "Koartlyn feroare en lochs",
        "specialpages-group-media": "Oanbieden en oare triemsiden",
        "specialpages-group-users": "Meidoggers en rjochten",
        "specialpages-group-highuse": "Siden dy't in protte brûkt wurde",
-       "specialpages-group-pages": "List fan siden",
+       "specialpages-group-pages": "Sidelisten",
        "specialpages-group-pagetools": "Sidehelpmiddels",
-       "specialpages-group-wiki": "Wikigegevens en -helpmiddels",
+       "specialpages-group-wiki": "Gegevens en helpmiddels",
        "specialpages-group-redirects": "Trochferwizende bysûndere siden",
        "specialpages-group-spam": "Spamhelpmiddels",
        "blankpage": "Side is leech",
        "intentionallyblankpage": "Dizze side is bewust leech lizzen en wurdt brûkt foar benchmarks, ensfh.",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Label|Labels}}]]: $2)",
+       "tags-source-header": "Boarne",
+       "tags-active-header": "Aktyf?",
+       "tags-actions-header": "Aksjes",
        "tags-active-yes": "Ja",
        "tags-active-no": "Nee",
        "tags-edit": "bewurkje",
+       "tags-delete": "fuortsmite",
+       "tags-activate": "aktivearje",
+       "tags-deactivate": "deaktivearje",
        "tags-hitcount": "$1 {{PLURAL:$1|bewurking|bewurkings}}",
+       "tags-create-reason": "Reden:",
+       "tags-delete-reason": "Reden:",
+       "tags-activate-reason": "Reden:",
+       "tags-activate-submit": "Aktivearje",
+       "tags-deactivate-reason": "Reden:",
+       "tags-deactivate-submit": "Deaktivearje",
+       "tags-edit-existing-tags-none": "''Gjin''",
+       "tags-edit-reason": "Reden:",
        "comparepages": "Siden ferlykje",
        "compare-page1": "Side 1",
        "compare-page2": "Side 2",
        "compare-rev2": "Revyzje 2",
        "compare-submit": "Ferlykje",
        "compare-invalid-title": "Unjildige titel.",
+       "htmlform-submit": "Ferstjoere",
        "htmlform-no": "Nee",
        "htmlform-yes": "Ja",
        "htmlform-cloner-create": "Mear tafoegje",
+       "htmlform-cloner-delete": "Fuortsmite",
        "revdelete-restricted": "hat beheinings oplein oan behearders",
        "revdelete-unrestricted": "hat beheinings foar behearders goedmakke",
        "rightsnone": "(gjin)",
        "revdelete-summary": "gearfetting bewurkje",
+       "feedback-back": "Foarige",
        "feedback-cancel": "Annulearje",
        "feedback-close": "Dien",
+       "feedback-error-title": "Flater",
        "feedback-message": "Berjocht:",
        "feedback-subject": "Ûnderwerp:",
        "feedback-submit": "Ferstjoere",
+       "feedback-useragent": "Useragent:",
        "searchsuggest-search": "Sykje",
        "api-error-unknown-code": "Unbekende flater: \"$1\".",
        "api-error-unknownerror": "Unbekende flater: \"$1\".",
        "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|byte|bytes}}",
        "limitreport-expansiondepth-value": "$1/$2",
        "limitreport-expensivefunctioncount-value": "$1/$2",
+       "expand_templates_input": "Ynfiertekst:",
+       "expand_templates_output": "Resultaat",
+       "expand_templates_xml_output": "XML-útfier",
        "expand_templates_ok": "OK",
        "expand_templates_remove_comments": "Berjochten fuorthelje",
+       "expand_templates_preview": "Proefbyld",
+       "pagelang-name": "Side",
        "pagelang-language": "Taal",
+       "pagelang-use-default": "Standerttaal brûken",
+       "pagelang-select-lang": "Taal selektearje",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (ynskeakele)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''útskeakele''')",
+       "mediastatistics": "Mediastatistiken",
        "mediastatistics-nfiles": "$1 ($2%)",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 bytes}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "MIME-type",
+       "mediastatistics-table-count": "Oantal triemmen",
        "mediastatistics-header-unknown": "Unbekend",
-       "special-characters-group-latin": "Latyn"
+       "mediastatistics-header-bitmap": "Bitmapôfbyldings",
+       "mediastatistics-header-drawing": "Tekeningen (fektorôfbyldings)",
+       "mediastatistics-header-audio": "Audio",
+       "mediastatistics-header-video": "Fideo's",
+       "mediastatistics-header-multimedia": "Ynteraktive media",
+       "mediastatistics-header-office": "Kantoartriemmen",
+       "mediastatistics-header-text": "Tekstriemmen",
+       "mediastatistics-header-executable": "Utfierbere triemmen",
+       "mediastatistics-header-archive": "Komprimearre triemmen",
+       "json-error-syntax": "Syntaksisflater",
+       "special-characters-group-latin": "Latyn",
+       "special-characters-group-latinextended": "Latyn útwreide",
+       "special-characters-group-ipa": "IPA",
+       "special-characters-group-symbols": "Symboalen",
+       "special-characters-group-greek": "Gryksk",
+       "special-characters-group-cyrillic": "Sirillysk",
+       "special-characters-group-arabic": "Arabysk",
+       "special-characters-group-arabicextended": "Arabysk útwreide",
+       "special-characters-group-persian": "Perzysk",
+       "special-characters-group-hebrew": "Hebrieusk",
+       "special-characters-group-bangla": "Bengaalsk",
+       "special-characters-group-tamil": "Tamyl",
+       "special-characters-group-telugu": "Telugu",
+       "special-characters-group-thai": "Tai"
 }
index 5f1fbf4..c091232 100644 (file)
        "badtitletext": "O título da páxina pedida non era válido, estaba baleiro ou proviña dunha ligazón interlingüística ou interwiki incorrecta.\nPoida que conteña un ou máis caracteres dos que non se poden empregar nos títulos.",
        "title-invalid-empty": "O título de páxina solicitado está baleiro ou só contén o nome do espazo de nomes.",
        "title-invalid-utf8": "O título de páxina solicitado contén unha secuencia UTF-8 inválida.",
-       "title-invalid-interwiki": "O título contén unha ligazón interwiki",
+       "title-invalid-interwiki": "O título da páxina solicitada contén unha ligazón interwiki que non pode usarse nos títulos.",
        "title-invalid-talk-namespace": "O título de páxina solicitado refírese a unha páxina de conversa que pode non existir.",
        "title-invalid-characters": "O título de páxina solicitado contén caracteres inválidos: \"$1\".",
        "title-invalid-relative": "O título ten unha ruta relativa. Os títulos de páxina relativos (./, ../) son inválidos, porque non van ser accesibles cando se consulten co navegador do usuario.",
        "title-invalid-magic-tilde": "O título de páxina solicitado contén unha secuencia con tiles inválida (<nowiki>~~~</nowiki>).",
-       "title-invalid-too-long": "O título de páxina solicitado é moi longo. Non pode ser maior de $1 bytes en codificación UTF-8.",
+       "title-invalid-too-long": "O título de páxina solicitado é moi longo. Non pode ser maior de {{PLURAL:$1|byte|bytes}} en codificación UTF-8.",
        "title-invalid-leading-colon": "O título de páxina solicitado contén un punto e coma inválido ó comezo.",
        "perfcached": "Esta información é da memoria caché e pode ser que non estea completamente actualizada. Hai un máximo de {{PLURAL:$1|$1 resultado dispoñible|$1 resultados dispoñibles}} na caché.",
        "perfcachedts": "Esta información é da memoria caché. Última actualización: $2 ás $3. Hai un máximo de {{PLURAL:$4|$4 resultado dispoñible|$4 resultados dispoñibles}} na caché.",
        "content-model-css": "CSS",
        "content-json-empty-object": "Obxecto baleiro",
        "content-json-empty-array": "Matriz baleira",
+       "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>.",
        "expensive-parserfunction-warning": "'''Aviso:''' Esta páxina contén demasiadas chamadas a funcións analíticas custosas.\n\nDebe ter menos {{PLURAL:$2|dunha chamada|de $2 chamadas}}, e agora hai $1.",
        "userrights-lookup-user": "Administrar os grupos do usuario",
        "userrights-user-editname": "Escriba un nome de usuario:",
        "editusergroup": "Editar os grupos do usuario",
-       "editinguser": "Mudando os dereitos {{GENDER:$1|do usuario|da usuaria}} '''[[User:$1|$1]]''' $2",
+       "editinguser": "Mudando os dereitos {{GENDER:$1|do usuario|da usuaria}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Editar os grupos do usuario",
        "saveusergroups": "Gardar os grupos do usuario",
        "userrights-groupsmember": "Membro de:",
        "uploaddisabledtext": "A carga de ficheiros está desactivada.",
        "php-uploaddisabledtext": "As cargas de ficheiros PHP están desactivadas. Por favor, comprobe a característica file_uploads.",
        "uploadscripted": "Este ficheiro contén código HTML ou script que pode producir erros ao ser interpretado polo navegador.",
+       "upload-scripted-pi-callback": "Non se pode subir un ficheiro que contén instruccións de proceso xml-stylesheet.",
+       "uploaded-script-svg": "Atopado elemento de comandos \"$1\" no ficheiro SVG subido.",
+       "uploaded-hostile-svg": "Atopado CSS non seguro no elemento de estilo do ficheiro SVG subido.",
+       "uploaded-event-handler-on-svg": "Fixar atributos de xestión de eventos <code>$1=\"$2\"</code> no está permitido en ficheiros SVG.",
+       "uploaded-href-attribute-svg": "Atributos Href <code>&lt;$1 $2=\"$3\"&gt;</code> con obxectivos non locais (p. ex. http://, javascript:, etc) non están permitidos en ficheiros SVG.",
+       "uploaded-href-unsafe-target-svg": "Atopado href a obxectivo non seguro <code>&lt;$1 $2=\"$3\"&gt;</code> no ficheiro SVG subido.",
+       "uploaded-animate-svg": "Atopada etiqueta \"animate\" que podería estar cambiando a href, usando o atributo \"from\" <code>&lt;$1 $2=\"$3\"&gt;</code> no ficheiro SVG subido.",
+       "uploaded-setting-event-handler-svg": "Fichar os atributos de xestión de eventos non está permitido, atopado <code>&lt;$1 $2=\"$3\"&gt;</code> no ficheiro SVG subido.",
+       "uploaded-setting-href-svg": "Usar a etiqueta \"set\" para engadir o atributo \"href\" ó elemento pai non está permitido.",
+       "uploaded-wrong-setting-svg": "Usar a etiqueta \"set\" para engadir un obxectivo remoto/datos/secuencia de comandos a calquera atributo non está permitido. Atopado <code>&lt;set to=\"$1\"&gt;</code> no ficheiro SVG subido.",
+       "uploaded-setting-handler-svg": "SVG que fixa o atributo \"handler\" con remoto/datos/secuencia de comandos non está permitido. Atopado <code>$1=\"$2\"</code> no ficheiro SVG subido.",
+       "uploaded-remote-url-svg": "SVG que fixa calquera atributo de estilo con URL remota non está permitido. Atopado <code>$1=\"$2\"</code> no ficheiro SVG subido.",
+       "uploaded-image-filter-svg": "Atopado filtro de imaxe con URL: <code>&lt;$1 $2=\"$3\"&gt;</code> no ficheiro SVG subido.",
        "uploadscriptednamespace": "Este ficheiro SVG contén o espazo de nomes non permitido \"$1\"",
        "uploadinvalidxml": "Non se puido analizar o XML do ficheiro cargado.",
        "uploadvirus": "O ficheiro contén un virus! Detalles: $1",
        "unusedimages": "Imaxes sen uso",
        "wantedcategories": "Categorías requiridas",
        "wantedpages": "Páxinas requiridas",
-       "wantedpages-summary": "Lista de páxinas inexistentes con máis ligazóns cara a elas, excluíndo as páxinas que só teñen redireccións cara a elas. Para consultar a lista de páxinas inexistentes que teñen redireccións cara a elas, véxase [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "Lista de páxinas inexistentes con máis ligazóns cara a elas, excluíndo as páxinas que só teñen redireccións cara a elas. Para consultar a lista de páxinas inexistentes que teñen redireccións cara a elas, véxase [[{{#special:BrokenRedirects}}|a lista de redireccións rotas]].",
        "wantedpages-badtitle": "Título inválido fixado nos resultados: $1",
        "wantedfiles": "Ficheiros requiridos",
        "wantedfiletext-cat": "Os seguintes ficheiros están en uso, pero non existen. É posible que aparezan ficheiros de repositoroios externos, malia que existan. Calquera falso positivo estará <del>riscado</del>. Ademais, as páxinas que inclúen ficheiros que non existen están listadas en [[:$1]].",
        "feedback-bugornote": "Se está listo para describir un problema técnico en detalle, [$1 informe do erro].\nEn caso contrario, pode empregar o formulario sinxelo inferior. O seu comentario aparecerá na páxina \"[$3 $2]\" xunto ao seu nome de usuario e o navegador que está usando.",
        "feedback-cancel": "Cancelar",
        "feedback-close": "Feito",
-       "feedback-external-bug-report-button": "Gardar unha tarefa técnica",
-       "feedback-dialog-title": "Enviar opinión",
-       "feedback-dialog-intro": "Pode usar o formulario simple de abaixo para enviar a súa opinión. O seu comentario será engadido á páxina \"$1\", xunto co seu nome de usuario.",
+       "feedback-external-bug-report-button": "Enviar unha tarefa técnica",
+       "feedback-dialog-title": "Enviar comentarios",
+       "feedback-dialog-intro": "Pode usar o formulario simple de abaixo para enviar os seus comentarios sobre o editor visual. O seu comentario será engadido á páxina \"$1\", xunto co seu nome de usuario.",
        "feedback-error-title": "Erro",
        "feedback-error1": "Erro: Resultado da API non recoñecido",
        "feedback-error2": "Erro: Fallo de edición",
        "log-name-pagelang": "Rexistro de cambios de lingua",
        "log-description-pagelang": "Este é un rexistro dos cambios na lingua das páxinas.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|cambiou}} a lingua da páxina \"$3\" do $4 ao $5.",
-       "default-skin-not-found": "Ups! O aspecto predeterminado do wiki, definido en <code dir=\"ltr\">$wgDefaultSkin</code> como <code>$1</code>, non está dispoñíbel.\n\nA súa instalación parece incluír {{PLURAL:$4|o seguinte aspecto|os seguintes aspectos}}. Lea o [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual de configuración dos aspectos] para obter información sobre como {{PLURAL:$4|activalo|activalos}} e escoller o predeterminado.\n\n$2\n\n; Se acaba de instalar MediaWiki:\n: Probablemente instalou MediaWiki a partir de Git, ou directamente a partir do código fonte mediante algún outro método. En tal caso, este problema é normal. Probe a instalar algúns aspectos do [https://www.mediawiki.org/wiki/Category:All_skins cartafol de aspectos de mediawiki.org]. Para instalar aspectos, siga calquera destes pasos:\n:* Descargue o [https://www.mediawiki.org/wiki/Download arquivo do instalador], que inclúe varios aspectos e complementos. Pode copiar e pegar o cartafol <code>skins/</code> que atopará no arquivo.\n:* Descargue arquivos de aspectos individuais de [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clone un dos repositorios de <code>mediawiki/skins/*</code> mediante Git no cartafol <code dir=\"ltr\">skins/</code> da súa instalación de MediaWiki.\n: Isto non debería interferir co seu repositorio Git se é vostede un desenvolvedor de MediaWiki.\n\n; Se acaba de anovar MediaWiki:\n: MediaWiki 1.24 e versións posteriores xa non activan aspectos de maneira automática (lea o [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual de descubrimento automático de aspectos]). Pode pegar {{PLURAL:$5|a seguinte liña|as seguintes liñas}} no seu ficheiro <code>LocalSettings.php</code> para activar {{PLURAL:$5|o|todos os}} {{PLURAL:$5|aspecto instalado|aspectos instalados}} actualmente:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Se acaba de modificar <code>LocalSettings.php</code>:\n: Asegúrese de que os nomes dos aspectos están escritos correctamente.",
-       "default-skin-not-found-no-skins": "Ups! O aspecto predeterminado do wiki, definido en <code dir=\"ltr\">$wgDefaultSkin</code> como <code>$1</code>, non está dispoñíbel.\n\nNon ten aspectos instalados.\n\n; Se acaba de instalar MediaWiki:\n: Probablemente instalou MediaWiki a partir de Git, ou directamente a partir do código fonte mediante algún outro método. En tal caso, este problema é normal. Probe a instalar algúns aspectos do [https://www.mediawiki.org/wiki/Category:All_skins cartafol de aspectos de mediawiki.org]. Para instalar aspectos, siga calquera destes pasos:\n:* Descargue o [https://www.mediawiki.org/wiki/Download arquivo do instalador], que inclúe varios aspectos e complementos. Pode copiar e pegar o cartafol <code>skins/</code> que atopará no arquivo.\n:* Descargue arquivos de aspectos individuais de [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clone un dos repositorios de <code>mediawiki/skins/*</code> mediante Git no cartafol <code dir=\"ltr\">skins/</code> da súa instalación de MediaWiki.\n: Isto non debería interferir co seu repositorio Git se é vostede un desenvolvedor de MediaWiki. Lea o [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual de configuración de aspectos] para obter información sobre como activar aspectos e escoller o aspecto predeterminado.",
+       "default-skin-not-found": "Ups! O aspecto predeterminado do wiki, definido en <code dir=\"ltr\">$wgDefaultSkin</code> como <code>$1</code>, non está dispoñíbel.\n\nA súa instalación parece incluír {{PLURAL:$4|o seguinte aspecto|os seguintes aspectos}}. Lea o [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual de configuración dos aspectos] para obter información sobre como {{PLURAL:$4|activalo|activalos}} e escoller o predeterminado.\n\n$2\n\n; Se acaba de instalar MediaWiki:\n: Probablemente instalou MediaWiki a partir de Git, ou directamente a partir do código fonte mediante algún outro método. En tal caso, este problema é normal. Probe a instalar algúns aspectos do [https://www.mediawiki.org/wiki/Category:All_skins cartafol de aspectos de mediawiki.org]. Para instalar aspectos, siga calquera destes pasos:\n:* Descargue o [https://www.mediawiki.org/wiki/Download arquivo do instalador], que inclúe varios aspectos e complementos. Pode copiar e pegar o cartafol <code>skins/</code> que atopará no arquivo.\n:* Descargue arquivos de aspectos individuais 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 Usando Git para descargar aspectos].\n: Isto non debería interferir co seu repositorio Git se é vostede un desenvolvedor de MediaWiki.\n\n; Se acaba de anovar MediaWiki:\n: MediaWiki 1.24 e versións posteriores xa non activan aspectos de maneira automática (lea o [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual de descubrimento automático de aspectos]). Pode pegar {{PLURAL:$5|a seguinte liña|as seguintes liñas}} no seu ficheiro <code>LocalSettings.php</code> para activar {{PLURAL:$5|o|todos os}} {{PLURAL:$5|aspecto instalado|aspectos instalados}} actualmente:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Se acaba de modificar <code>LocalSettings.php</code>:\n: Asegúrese de que os nomes dos aspectos están escritos correctamente.",
+       "default-skin-not-found-no-skins": "Ups! O aspecto predeterminado do wiki, definido en <code dir=\"ltr\">$wgDefaultSkin</code> como <code>$1</code>, non está dispoñíbel.\n\nNon ten aspectos instalados.\n\n; Se acaba de instalar MediaWiki:\n: Probablemente instalou MediaWiki a partir de Git, ou directamente a partir do código fonte mediante algún outro método. En tal caso, este problema é normal. Probe a instalar algúns aspectos do [https://www.mediawiki.org/wiki/Category:All_skins cartafol de aspectos de mediawiki.org]. Para instalar aspectos, siga calquera destes pasos:\n:* Descargue o [https://www.mediawiki.org/wiki/Download arquivo do instalador], que inclúe varios aspectos e complementos. Pode copiar e pegar o cartafol <code>skins/</code> que atopará no arquivo.\n:* Descargue arquivos de aspectos individuais 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 Use Git para descargar aspectos individuais].\n: Isto non debería interferir co seu repositorio Git se é vostede un desenvolvedor de MediaWiki. Lea o [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual de configuración de aspectos] para obter información sobre como activar aspectos e escoller o aspecto predeterminado.",
        "default-skin-not-found-row-enabled": "* <code>$1</code>/$2 (activada)",
        "default-skin-not-found-row-disabled": "* <code>$1</code>/$2 ('''desactivada''')",
        "mediastatistics": "Estatísticas do contido multimedia",
diff --git a/languages/i18n/gom-deva.json b/languages/i18n/gom-deva.json
new file mode 100644 (file)
index 0000000..478b55e
--- /dev/null
@@ -0,0 +1,766 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Amire80",
+                       "AshLin",
+                       "Darshan kandolkar",
+                       "Konknni mogi 24",
+                       "Pooja tople",
+                       "Sanket.prabhu26",
+                       "Santhosh.thottingal",
+                       "Supriya kankumbikar",
+                       "Vaishali Parab"
+               ]
+       },
+       "tog-hideminor": "हालींच बदल केल्ल्यांतले बारीक संपादन लिपय",
+       "tog-numberheadings": "शीर्षक स्वंय क्रमांकित कर",
+       "tog-showtoolbar": "संपादन उपकरणाची पट्टी दाखय",
+       "tog-editondblclick": "दोट्टी क्लिकाचेर पानां संपादीत कर",
+       "tog-watchdefault": "हांवें संपादीत केल्लीं पानां आनी फायल म्हजे ध्यानसूचीक जोड",
+       "tog-previewontop": "संपादन पेटीच्या मुखार प्रीव्यु दाखय",
+       "tog-previewonfirst": "पयल्याच संपादनाचेर पुर्वनियाळ दाखय",
+       "tog-shownumberswatching": "ध्यान दवरपी वांगड्यांची संख्या दाखय",
+       "tog-oldsig": "सद्याची निशाणी",
+       "tog-uselivepreview": "लायव पुर्वनियाळाचो उपेग कर",
+       "tog-watchlisthideown": "ध्यानसुचीतलें म्हजे संपादन लिपय",
+       "tog-watchlisthidebots": "ध्यानसुचीतले बोट संपादन लिपय",
+       "tog-watchlisthideminor": "ध्यानसुचीतले ल्हान संपादन लिपय",
+       "tog-showhiddencats": "लिपोवन दवरिल्ले विभाग दाखय",
+       "underline-always": "सदा (केधन्नय) (केन्नय)",
+       "underline-never": "केधन्नयना (केन्नना)",
+       "underline-default": "ब्राउज़र डिफ़ॉल्ट",
+       "editfont-default": "प्राथमिक ब्राउज़र",
+       "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": "डिसें.",
+       "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",
+       "pagecategories": "{{PLURAL:$1|गट}}",
+       "category_header": "\"$1\" ह्या श्रेणींतलीं पानां",
+       "subcategories": "उपश्रेणी",
+       "category-media-header": "\"$1\" श्रेणींतलें प्रसार माध्यम",
+       "hidden-categories": "{{PLURAL:$1|लिपिल्लें गट|लिपिल्लें गट }}",
+       "hidden-category-category": "लिपयिल्ले विभाग",
+       "category-subcat-count": "{{PLURAL:$2|ह्या विभागान फकत सकयल दिल्ले उपविभाग आसात.|ह्या विभागातल्या $2 वट्ट {{PLURAL:$1|सकयल दिल्ले उपविभाग आसात.|$1सकयल दिल्ले उपविभाग आसात.}}}}",
+       "category-article-count": "{{PLURAL:$2|ह्या विभागांत सकयल दिल्लीं पानां आसात.|ह्या विभागांत सकलय दिल्लीं {{PLURAL:$1|पानां आसात|$1 पानां आसात}}, वट्ट पानां $2}}",
+       "category-file-count": "{{PLURAL:$2|ह्या विभागांत फकत सकयली फायल आसपावता.|ह्या विभागांत सकयल दिल्लीं {{PLURAL:$1|फायल|$1 फायलीं}} आसता, वट्ट फायलीं $2}}",
+       "listingcontinuesabbrev": "चालू.",
+       "noindex-category": "बिननिर्देशांकी पानां",
+       "about": "विशीं",
+       "article": "मजकूराचीं पानां",
+       "newwindow": "(नव्या विंडोंत उकतें जाता)",
+       "cancel": "रद्द करात",
+       "moredotdotdot": "आनीक",
+       "morenotlisted": "ही सूची पूर्ण ना",
+       "mypage": "पान",
+       "mytalk": "उलोवप",
+       "navigation": "भोंवडी",
+       "and": "&#32;आनीक",
+       "qbfind": "सोदात",
+       "qbbrowse": "ब्राउज",
+       "qbedit": "संस्करण",
+       "qbpageoptions": "हें पान",
+       "qbmyoptions": "म्हजी पानां",
+       "faq": "परत परत विचारिल्ले प्रस्न",
+       "faqpage": "सदांच विचारील्ले प्रस्न",
+       "actions": "क्रिया",
+       "namespaces": "नांवांची सुवात",
+       "variants": "वेगवेगळें",
+       "navigation-heading": "भोंवडी",
+       "errorpagetitle": "चूक",
+       "returnto": "$1 चेर परत येयात.",
+       "tagline": "{{SITENAME}} कडल्यान",
+       "help": "मजत",
+       "search": "सोद",
+       "searchbutton": "सोद",
+       "go": "वचात",
+       "searcharticle": "वचात",
+       "history": "पानाचो इतिहास",
+       "history_short": "इतिहास",
+       "printableversion": "छापपायोग्य आवृत्ती",
+       "permalink": "सदांकाळ जोडणी",
+       "print": "छाप",
+       "view": "पळय, दृश्य",
+       "view-foreign": " $1 चेर पळयात",
+       "edit": "संपादन",
+       "edit-local": "थळाव्या संपादनाचें वर्णन",
+       "create": "निर्माण कर",
+       "create-local": "थळावे वर्णन जोडात",
+       "editthispage": "हें पान संपादीत कर",
+       "create-this-page": "हें पान काडून उडयात",
+       "delete": "काडून उडयात",
+       "deletethispage": "हें पान काडून उडयात",
+       "undeletethispage": "हें पान पुर्नस्थापीत करपाचें",
+       "undelete_short": "बदल परतून हाड {{PLURAL:$1|काडून उडयिल्लो|$1 काडून उडयिल्ले}}",
+       "viewdeleted_short": "दाखय {{PLURAL:$1|एक काडून उडयिल्लें संपादन|$1 काडून उडयिल्लीं संपादन}}$1",
+       "protect": "संरक्षीत करात",
+       "protect_change": "बदल",
+       "protectthispage": "हें पान राखून दवर",
+       "unprotect": "दवरिल्ली सुरक्षा बदल",
+       "unprotectthispage": "ह्या पानाचें सुरक्षा स्थर बदलात",
+       "newpage": "नवें पान",
+       "talkpage": "ह्या पानाचेर चर्चा करात",
+       "talkpagelinktext": "चर्चा",
+       "specialpage": "खाशेलें पान",
+       "personaltools": "खाजगी साधनां",
+       "articlepage": "मजकूर पान पळयात",
+       "talk": "भासाभास",
+       "views": "मतां",
+       "toolbox": "साधनां",
+       "userpage": "वापरप्याचें पान दाखय",
+       "projectpage": "प्रकल्पाचें पान पळेयात",
+       "imagepage": "फायलीचें पान पळेयात",
+       "mediawikipage": "संदेशाचें पान पळयात",
+       "templatepage": "टेंपलॅट पान पळयात",
+       "viewhelppage": "आदार दिवपी पान पळयात",
+       "categorypage": "श्रेणींचें पान पळयात",
+       "viewtalkpage": "चर्चा पळय",
+       "otherlanguages": "हेर भासांनी",
+       "redirectedfrom": "($1 नव्या नाम्यार धाडलां )",
+       "redirectpagesub": "पान परतून निर्देशीत करचें",
+       "redirectto": "हांगां पुनर्निर्देशित करा:",
+       "lastmodifiedat": " ह्या पानांत निमाणो बदल,$1 वेर $2 वेळार केल्लो",
+       "protectedpage": "राखून दवरिल्लें पान",
+       "jumpto": "हुपून वचात:",
+       "jumptonavigation": "भोंवडी",
+       "jumptosearch": "सोद",
+       "pool-queuefull": "पूल वळ भरिल्ली आसा",
+       "pool-errorunknown": "खबर नाशिल्ली चूक",
+       "poolcounter-usage-error": "उपयोगी त्रुटि: $1",
+       "aboutsite": "{{SITENAME}}विशीं",
+       "aboutpage": "Project:विशीं",
+       "copyrightpage": "{{ns:project}}:कॉपीराइट",
+       "currentevents": "सद्याच्यो घडणुकों",
+       "currentevents-url": "Project:सद्याच्यो घडणुको",
+       "disclaimers": "न्हयकारणी",
+       "disclaimerpage": "Project:सामान्य न्हयकारणी",
+       "edithelp": "संपादकीय आदार",
+       "helppage-top-gethelp": "मजत कर",
+       "mainpage": "मुखेल पान",
+       "mainpage-description": "मुखेल पान",
+       "portal": "समाजाचे मुखेलपान",
+       "portal-url": "Project:समाजाचे मुखेल पान",
+       "privacy": "गुप्ततायेचें धोरण",
+       "privacypage": "Project:गुप्ततायेचें धोरण",
+       "ok": "बरें",
+       "retrievedfrom": "\"$1\" चे कडल्यान परतून मेळयलें",
+       "youhavenewmessagesmulti": "$1 चेर तुका नवो संदेश आसा",
+       "editsection": "संस्करण",
+       "editold": "संस्करण",
+       "viewsourceold": "उगम पळेयात",
+       "editlink": "संस्करण",
+       "viewsourcelink": "उगम पळयात",
+       "editsectionhint": "संस्करण विभाग: $1",
+       "toc": "मजकूर",
+       "showtoc": "दाखयात",
+       "hidetoc": "लिपयात",
+       "collapsible-collapse": "ल्हान कर",
+       "collapsible-expand": "विस्तार",
+       "confirmable-yes": "हय",
+       "confirmable-no": "ना",
+       "thisisdeleted": "पळय आनी परतून हाड 1?",
+       "viewdeleted": "दाखयात $1?",
+       "feedlinks": "फीड",
+       "feed-invalid": "चुकीचें सब्सक्रिप्शन फीड प्रकार",
+       "site-rss-feed": "$1 चीं आर.एस.एस फीड",
+       "site-atom-feed": "$1 एटम फिड",
+       "page-rss-feed": "\"$1\" आर॰एस॰एस फीड",
+       "page-atom-feed": "$1 एटम फिड",
+       "red-link-title": "$1 (पान अस्तित्वांत ना)",
+       "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": "असले तरेचे कार्य ना",
+       "nosuchspecialpage": "असले कांयच खाशेलें पान ना",
+       "error": "चूक",
+       "databaseerror": "डॅटाबॅज त्रुटी",
+       "databaseerror-textcl": "डॅटाबेज विरोध त्रुटी आयिल्ली आसा",
+       "databaseerror-query": "अनुरोध: $1",
+       "databaseerror-error": "चूक: $1",
+       "missing-article": "डेटाबेजाक \"$1\" $2 ह्या नांवाचें जे मजकूराचें पान मेळूंक जाय आसलें तें मेळ्ळेंना. हें चड करून जेन्ना काडून उडयिल्ल्या पानाक मुजत सोंपिळ्ळे डिफ वा इतिहासाची जोडणी दिवप जाता तेन्ना घडटा..जर अशें नासत तर तुमकां सॉफ्टवेरांत चूक सांपडूंक जाय हें अँडमिनिस्ट्रेटराक URLची नोंद करून कळयात.",
+       "missingarticle-rev": "पुनर्नियाळ $1",
+       "badtitle": "वायट माथाळो",
+       "badtitletext": "विनवणी केल्लें पानाचो माथाळो अवैध, रितो वा अयोग्य तरेन आंतरभाशी वा आंतर विकी माथाळ्या कडे जोडणी केल्लो आशिल्लो. तातूंत माथाळ्यांत वापरुं नजो अशी एक वा चड अक्षरां आसूं येतात.",
+       "viewsource": "उगम पळेयात",
+       "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": "म्हाका लॉग इन दवर",
+       "userlogin-signwithsecure": "सुरक्षित कनेक्शन वापर",
+       "yourdomainname": "तुमचो डोमेन:",
+       "password-change-forbidden": "ह्या विकीचेर गुपीत उतरां बदलूंक शकनात",
+       "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": "खास उतर विसरला?",
+       "userlogin-helplink2": "लॉन इन करपाक आदार कर",
+       "userlogin-createanother": "दुसरें खातें तयार कर",
+       "createacct-emailrequired": "ईमेल नामो",
+       "createacct-emailoptional": "ईमेल नामो",
+       "createacct-email-ph": "तुमचो इमेल पत्तो घालात",
+       "createacct-another-email-ph": "तुमचो इमेल पत्तो घालात",
+       "createacct-realname": "खरें नांव (पर्यायी)",
+       "createaccountreason": "कारण:",
+       "createacct-reason": "कारण",
+       "createacct-reason-ph": "तूं दुसरें खातें कित्याक उगडटात",
+       "createacct-captcha": "सुरक्षा तपासणी",
+       "createacct-imgcaptcha-ph": "वयर दिसता तो मजकूर बरय",
+       "createacct-submit": "तुमचे खातें तयार करात",
+       "createacct-another-submit": "दुसरें खातें तयार कर",
+       "createacct-benefit-heading": "{{SITENAME}}तुमच्या सारख्या लोकांनी केल्लो",
+       "createacct-benefit-body1": "{{बहुवचन:$1|संपादन|संपादना}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|पान|पानां}}",
+       "createacct-benefit-body3": "सद्याचे{{बहुवचन:$1|योगदान करपी|ते योगदान करपी}}",
+       "badretype": "तुवें घातिल्लीं गुपीत उतरां जुळनात",
+       "userexists": "घातिल्लें वापरप्याचें नांव पयलींच वापरांत आसा.\nउपकार करून दुसरें नांव वेंच",
+       "loginerror": "लॉन इन त्रुटी",
+       "createacct-error": "खातें निर्माण त्रुटी",
+       "createaccounterror": "खातें तयार करूंक जायना: $1",
+       "loginsuccesstitle": "लॉन इन यशस्वी जालां",
+       "nosuchusershort": "\"$1\" ह्या नांवान कोण वापरपी ना.\nउतरां तपासून पळय",
+       "nouserspecified": "वापरप्याचें नांव तुवें सांगूंक जाय",
+       "login-userblocked": "ह्या वापरप्याक बंद केला. लॉग इन करूंक जायना.",
+       "wrongpassword": "चुकिचें गुपीत उतर घातलां.\nउपकार करून परतून यत्न कर.",
+       "wrongpasswordempty": "गुपीत उतर घालूंक ना.\nउपकार करून परतून यत्न कर.",
+       "passwordtoolong": "गुपीत उतर हाच्या परस चड व्हड आसूंक फावना{{PLURAL:$1|1 वर्ण|$1 वर्णां}}.",
+       "password-name-match": "तुजें गुपीत उतर वापरप्याच्या नांवा परस वेगळें आसूंक जाय.",
+       "mailmypassword": "खास उतर बदलात",
+       "passwordremindertitle": "{{SITENAME}} हाका नवो तात्पुरते गुपीत उतर",
+       "noemail": "\"$1\" वापरप्याक ईमेल नामो नोंद करूंक ना",
+       "noemailcreate": "उचीत ईमेल नामो तुवें दिवंक जाय.",
+       "mailerror": "मेल धाडपाक त्रुटी: $1",
+       "emailconfirmlink": "तुमच्या ईमेल नाम्याची खात्री कर",
+       "cannotchangeemail": "ह्या विकीचेर खात्यांतली ईमेल नामो बदलपाक शकनात.",
+       "emaildisabled": "ही साइट मेल धाडपाक शकना.",
+       "accountcreated": "खातें तयाओर केलें",
+       "createaccount-title": "{{SITENAME}} हाका लागून खातें तयार केलां",
+       "login-abort-generic": "तुमचें लॉग इन अपेशी थारलां - निश्फलीत",
+       "login-migrated-generic": "तुमचें खातें स्थलांतरीत जालां आनी तुजें वापरप्याचें नांव ह्या विकीचेर उपस्थीत ना.",
+       "loginlanguagelabel": "भास:$1",
+       "pt-login": "सत्रारंभ करात",
+       "pt-login-button": "सत्रारंभ करात",
+       "pt-createaccount": "खातें तयार करात",
+       "pt-userlogout": "सत्र शेवट",
+       "changepassword": "गुपीत उतर",
+       "resetpass_header": "खात्याचें गुपीत उतर बदल",
+       "oldpassword": "पोरने गुपीत उतर",
+       "newpassword": "नवें गुपीत उतर",
+       "retypenew": "नवें गुपीत उतर परतून टाइप कर",
+       "resetpass_submit": "गुपीत उतर तयार कर आनी लॉग इन कर",
+       "changepassword-success": "तुजें गुपीत उतर बदलप यशस्वी थारलां",
+       "resetpass_forbidden": "गुपीत उतरां बदलूंक शकनात",
+       "resetpass-submit-loggedin": "गुपीत उतर बदलात",
+       "resetpass-submit-cancel": "रद्द करात",
+       "resetpass-temp-password": "तात्पुरतें गुपीत उतर",
+       "resetpass-expired": "तुजें गुपीत उतर पिड्ड्यार जालां. उपकार करून लॉग इन जावपाक नवें गुपीत उतर तयार कर.",
+       "passwordreset": "खास उतर बदलात",
+       "passwordreset-text-one": "तात्पुरतें गुपीत उतर ईमेला वरवीं मेळपा खातीर हें फॉर्म पुराय कर.",
+       "passwordreset-legend": "गुपीत उतर परतून तयार कर",
+       "passwordreset-username": "वापरप्याचे नांव",
+       "passwordreset-domain": "डोमेन:",
+       "passwordreset-email": "ईमेल नामो:",
+       "passwordreset-emailelement": "वापरप्याचें नांव: $1\nतात्पुरतें गुपीत उतर: $2",
+       "passwordreset-emailsent": "गुपीत उतर परतून तयार करपाचो ईमेल धाडला",
+       "changeemail": "ईमेल संदेश बदल्ला",
+       "changeemail-oldemail": "सद्याचो ईमेल नामो:",
+       "changeemail-newemail": "नवो ईमेल नामो:",
+       "changeemail-none": "(कांय ना)",
+       "changeemail-password": "तुजें {{SITENAME}} गुपीत उतर:",
+       "changeemail-submit": "ई-मेल बदलात",
+       "resettokens": "टोकन रीसेट करात",
+       "resettokens-no-tokens": "रीसेट करपा खातीर कसलेंच टोकन ना",
+       "resettokens-legend": "टोकन रीसेट करात",
+       "resettokens-tokens": "टोकन",
+       "resettokens-token-label": "$1 (सद्याचें मूल्य: $2)",
+       "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": "दुसऱ्या पांवड्याचो माथाळो",
+       "nowiki_sample": "असरूपीत मजकूर हांगा शिरकटायात",
+       "nowiki_tip": "विकिचें सरूपण आडनदर करात",
+       "image_tip": "अंत: स्थापीत फायल",
+       "media_tip": "फायलीची जोडणी",
+       "sig_tip": "वेळाचे म्होरे सयत तुमची निशाणी",
+       "hr_tip": "आडवी वळ (उणो उपेग करचो)",
+       "summary": "आपरोस:",
+       "subject": "विशय/माथाळो",
+       "minoredit": "हें ल्हानशें संस्करण",
+       "watchthis": "हें पान पळेयात",
+       "savearticle": "पान राखून दवरात",
+       "preview": "पूर्वनियाळ",
+       "showpreview": "पूर्वनियाळ दाखय",
+       "showdiff": "बदल दाखयात",
+       "anoneditwarning": "'''शिटकावणी:''' तूं लॉग इन ना.\nतुजो IP पत्तो ह्या पानाच्या संपादन इतिहासांत नोंद जातलो.जर तुमी <strong>[$1 लॉग इन]</strong> करता वा <strong>[$2 खातें उगडटा]</strong> जाल्यार हेर सुविधांसयत तुमच्या संपादनाचें श्रेय तुमच्या सदस्य नांवाचेर दितलें.",
+       "missingcommenttext": "उपकार करून तुमच्यो शिरो सकयल घाल.",
+       "blockedtitle": "वापरप्याक बंद केला",
+       "blockednoreason": "कांयच कारण दिवंक ना",
+       "loginreqtitle": "लॉग इन जाय",
+       "loginreqlink": "सत्रारंभ करात",
+       "accmailtitle": "गुपीत उतर धाडलां",
+       "newarticle": "(नवें)",
+       "newarticletext": "जें पान अजून अस्तित्वांत ना अशा पानाचे जोडणे फाटल्यान तुमी आसात. पान तयार करपाक सकयले चौकटींत टायप करपाक सुरु करात (चड म्हायती खातीर [$1 मजत पान] पळेयात) जर ह्या पानार तुमी चुकून पावल्यात तर ब्रावजराचो बॅक (<strong>फटीं</strong>) हो बटन दामात",
+       "noarticletext": "सद्या ह्या पानाचेर कसलीच लिखीत संहिता ना. \nतुमी हेर पानांचेर [[Special:Search/{{PAGENAME}}|हो माथाळो]] सोदूं शकतात,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} संबंदीत लॉग सोदूं शकतात],\nवा ह्या पानाक [{{fullurl:{{FULLPAGENAME}}|action=edit}} संपादीत] करूं शकतात</span>।",
+       "noarticletext-nopermission": "तुर्ताक ह्या पानाचेर कसलोच मजकूर ना. तुमी हेर पानांचेर [[Special:Search/{{PAGENAME}}|ह्या माथाळ्याचो सोद]] घेवं शकतात,\nवा <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} संबंदीत लॉग सोदूं शकतात]</span>, पूण तुमकां हें पानाची रचणूक करपाची परवानगी ना।",
+       "userpage-userdoesnotexist-view": "\"$1\" ह्या वापरप्याच्या खात्याची नोंदणी करूंक ना.",
+       "previewnote": "'''ही फकत एक दाखवण हें मतींत दवरात.'''\nतुमचें बदल आडून राखून दवरूंक ना!",
+       "editing": "संपादता $1",
+       "creating": "$1 निर्माण कर",
+       "editingsection": "संस्करण $1 (विभाग)",
+       "yourtext": "तुमचो मजकूर",
+       "templatesused": "ह्या पानाचेर {{PLURAL:$1|वापरिल्लें}} प्रारूप",
+       "template-protected": "(राखिल्लें) संरक्षीत",
+       "template-semiprotected": "(अर्द-सुरक्षीत)",
+       "hiddencategories": "हें पान {{PLURAL:$1|लिपिल्ले श्रेणीचें}} आसा",
+       "permissionserrorstext-withaction": "ह्या {{PLURAL:$1|कारण|कारणां}}: खातीर तुका $2 मान्यताय ना.",
+       "recreate-moveddeleted-warn": "शिटकावणीः तुमी आदीं काडून उडयिल्लें पान परतून तयार करतात ह्या पानाचे फासून उडोवपी आनी दुसरे कडे व्हरपी लाग फकत सोपेपणा खातीर दिल्यात",
+       "moveddeleted-notice": "हें पान काडून उडयला.\nह्या पानाचो काडून उडोवपी आनी हालोवपी लॉग संदर्भा खातीर सकयल दिला.",
+       "content-model-wikitext": "विकीमजकूर",
+       "content-model-text": "सादोमजकूर",
+       "post-expand-template-inclusion-warning": "शिटकावणीः प्रारुप धरून आकार अगडबंब जाता, कांय प्रारुपांचो आसपाव जावचो ना.",
+       "post-expand-template-inclusion-category": "जंय प्रारुप धरून आवांठ व्हड जाता अशीं पानां",
+       "post-expand-template-argument-warning": "शिटकावणीः ह्या पानाचेर खुब व्हड आंवाठ आशिल्लो एक तरी प्रारुप मुद्दो आसा. हे मुद्दे भायरायल्यात",
+       "post-expand-template-argument-category": "भायरायिल्ल्या प्रारूपांसंबंदीचे मुद्दे आशिल्लीं पानां",
+       "viewpagelogs": "ह्या पाना खातीर लॉग्स पळेयात",
+       "currentrev-asof": "$1 मेरेनचो सगळ्यांत निमणो पुनर्नियाळ",
+       "revisionasof": " $1 मेरेन पुनर्नियाळ",
+       "revision-info": "$2 कडल्यान  $1 मेरेनची तपासणी",
+       "previousrevision": "← आदलो पुनर्नियाळ",
+       "nextrevision": "नवो पुनर्नियाळ→",
+       "currentrevisionlink": "सगळ्यांत हालींचो पुनर्नियाळ",
+       "cur": "चालंत",
+       "next": "दुसरें",
+       "last": "आदलें",
+       "page_first": "पयलें",
+       "page_last": "निमणें",
+       "histlegend": "फरकाची निवडः पुनर्नियाळांची तुळा करपा खातीर रेडियो चौकटीं चेर कुरु करात आनी एंटर ना तर तळाकडे आशिल्लो बटन दामात",
+       "history-fieldset-title": "चाळपाचो इतिहास",
+       "history-show-deleted": "फकत काडून उडयिल्लें",
+       "histfirst": "पोरणो",
+       "histlast": "नवो ताल्ल",
+       "history-feed-item-nocomment": "$1 हांगा $2",
+       "rev-delundel": "दृश्य मानताय बदलात",
+       "rev-showdeleted": "दाखयात",
+       "revdelete-show-file-submit": "हय",
+       "revdelete-radio-set": "लिपिल्ले",
+       "revdelete-radio-unset": "दृश्य",
+       "revdelete-log": "कारण",
+       "revdel-restore": "दृश्य मानताय बदलात",
+       "pagehist": "पानाचो इतिहास",
+       "mergehistory-reason": "कारण:",
+       "revertmerge": "वेगळावप",
+       "history-title": "\"$1\" च्या पुनर्नियाळाचो इतिहास",
+       "difference-title": "\"$1\" च्या आवृत्तींत अंतर",
+       "lineno": "$1 वळ :",
+       "compareselectedversions": "वेंचिल्ल्या पुनर्नियाळांची तुळा करात",
+       "editundo": "केल्लें परतावचें",
+       "diff-multi-sameuser": "(ह्या वांगड्या सयत {{PLURAL:$1|केल्लें मदलें एक अवतरण दाखोवंक ना|केल्लें मदलें $1 अवतरण दाखोवंक ना}})",
+       "searchresults": "सोदाचे निकाल",
+       "searchresults-title": "\"$1\" हाच्या सोदाचे निकाल",
+       "prevn": "आदलें{{PLURAL:$1|$1}}",
+       "nextn": "दुसरें {{PLURAL:$1|$1}}",
+       "next-page": "दुसरें पान",
+       "prevn-title": "{{PLURAL:$1|आदलो|आदलें}} $1 निकाल",
+       "nextn-title": "{{PLURAL:$1|फुडलो|फुडलें}} $1 निकाल",
+       "shown-title": "दर एका पानार {{PLURAL:$1|निकाल}}दाखय",
+       "viewprevnext": "पळयात ($1 {{int:pipe-separator}} $2) ($3)",
+       "searchmenu-exists": "ह्या'''विकीचेर \"[[:$1]]\" ह्या नांवाचें पान आसा .''' {{PLURAL:$2|0=|See also the other search results found.}}",
+       "searchmenu-new": "ह्या विकीचेर $1 हें पान तयार करात, {{PLURAL:$2|}} सोदून मेळिल्लें पानय पळेयात. / सोदून मेळिल्ले निकाळय पळेयात.",
+       "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|1 उतर|$2 उतरां}})",
+       "search-result-category-size": "{PLURAL:$1|1 सदस्य|$1 सदस्य}} ({{PLURAL:$2|1 उपगट|$2 उपगट}}, {{PLURAL:$3|1 फायल|$3 फायलीं}})",
+       "search-redirect": "($1 नव्यान नामो दियात)",
+       "search-section": "(विभाग $1)",
+       "search-suggest": "तुमकां $1 अशें म्हणपाचें आसलें?",
+       "search-interwiki-more": "(आनी)",
+       "search-relatedarticle": "संबंदीत",
+       "searchrelated": "संबंदीत",
+       "searchall": "सगळें",
+       "search-showingresults": "{{PLURAL:$4|<strong>$3</strong> मदल्यान <strong>$1</strong> परिणाम|<strong>$3</strong> मदल्यान परिणाम <strong>$1 - $2</strong>}}",
+       "search-nonefound": "ह्या प्रस्नाक फावोशें निकाल मेळूंक नात.",
+       "powersearch-toggleall": "सगळीं",
+       "preferences": "पसंती",
+       "mypreferences": "पसंती",
+       "prefs-edits": "संपादन केल्लें क्रम",
+       "prefs-user-pages": "उपेग कर्त्याचें पान",
+       "prefs-rc": "हालींचे बदल",
+       "prefs-watchlist": "लक्ष वळेरी",
+       "youremail": "इमेल",
+       "yourrealname": "खरें नांवः",
+       "right-writeapi": "Wrtie API चो उपेग करात",
+       "newuserlogpage": "उपेगकर्त्यान केल्ली कार्य वळेरी",
+       "action-edit": "हें पान संपादीत कर",
+       "nchanges": "$1 {{PLURAL:$1|बदल|बदल}}",
+       "enhancedrc-history": "इतिहास",
+       "recentchanges": "हालींचे बदल",
+       "recentchanges-legend": "हालींच जाल्ल्या बदलाचो विकल्प",
+       "recentchanges-summary": "ह्या विकीचेर हालींच जाल्ल्या बदलांचो माग ह्या भरणांतल्यान दवरात",
+       "recentchanges-feed-description": "ह्या विकीचेर हालींच जाल्ल्या बदलांचो माग ह्या भरणांतल्यान दवरात.",
+       "recentchanges-label-newpage": "ह्या संपादनांन नवें पान निर्माण केला.",
+       "recentchanges-label-minor": "हें ल्हानशें संपादन",
+       "recentchanges-label-bot": "हें संपादन बॉटा वरवीं केला.",
+       "recentchanges-label-unpatrolled": "हें संपादन आजून तपासूंक ना",
+       "recentchanges-label-plusminus": "ह्या पानाचो आकार इतल्या बाइट्सन बदललो",
+       "recentchanges-legend-heading": "'''कुंजी:'''",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages| नव्या पानांची सुची]] पळयात)",
+       "rcnotefrom": "$2 पासून केल्ले बदल सकयल दिल्यात ($1 मेरेन दाखयल्यात)",
+       "rclistfrom": "$3 $2 साकून नवें बदल दाखयात",
+       "rcshowhideminor": "$1 ल्हानशें बदल",
+       "rcshowhideminor-show": "दाखयात",
+       "rcshowhideminor-hide": "लिपयात",
+       "rcshowhidebots": "$1 बॉट",
+       "rcshowhidebots-show": "दाखयात",
+       "rcshowhidebots-hide": "लिपयात",
+       "rcshowhideliu": "$1 अधिकृत नोंदीचे उपेग कर्ते",
+       "rcshowhideliu-hide": "लिपयात",
+       "rcshowhideanons": "$1 निनांवी उपेग कर्ते",
+       "rcshowhideanons-show": "दाखयात",
+       "rcshowhideanons-hide": "लिपयात",
+       "rcshowhidepatr-show": "दाखयात",
+       "rcshowhidepatr-hide": "लिपयात",
+       "rcshowhidemine": "$1 म्हजें संपादन आंकडे",
+       "rcshowhidemine-show": "दाखयात",
+       "rcshowhidemine-hide": "लिपयात",
+       "rclinks": "फाटल्या $2 दिसांनी जाल्लो $1 बदल दाखयात<br />$3",
+       "diff": "वेगळें",
+       "hist": "इतिहास",
+       "hide": "लिपयात",
+       "show": "दाखयात",
+       "minoreditletter": "म",
+       "newpageletter": "न",
+       "boteditletter": "ब",
+       "rc-change-size-new": "$1 {{बहुवचन:$1|byte|bytes}}बदल केल्या उपरांत",
+       "rc-enhanced-expand": "म्हायती दाखय",
+       "rc-enhanced-hide": "म्हायती लिपय",
+       "recentchangeslinked": "संबंदातले बदल",
+       "recentchangeslinked-toolbox": "संबंदीत बदल",
+       "recentchangeslinked-title": "\"$1\" च्या संबंदातले बदल",
+       "recentchangeslinked-summary": "खाशेल्या पानां कडल्यान जोडणी मेळिल्ल्या पानांमदीं (वा विशिश्ट श्रेणीच्या वांगड्यांमदीं)हालींच केल्ल्या बदलांची ही वळेरी. तुमच्या लक्ष वळेरेंतलीं पाना '''ठळक''' दाखयल्यात",
+       "recentchangeslinked-page": "पानाचें नांव",
+       "recentchangeslinked-to": "ह्या पाना बदला दिल्ल्या पानांक जुळून आशिल्ल्या पानांचे बदल दाखय",
+       "upload": "फायल अपलोड करात",
+       "uploadbtn": "फायल अपलोड करात",
+       "filedesc": "सारांश",
+       "fileuploadsummary": "आपरोस:",
+       "license": "लायसन्सीग",
+       "license-header": "लायसन्सींग",
+       "listfiles-delete": "काडून उडयात",
+       "imgfile": "फायल",
+       "listfiles_date": "तारीख",
+       "listfiles_name": "नांव",
+       "listfiles_user": "उपेगकर्तो",
+       "listfiles_description": "वर्णन",
+       "file-anchor-link": "फायल",
+       "filehist": "फायलीचो इतिहास",
+       "filehist-help": "त्या वेळार फायल कशी आशिल्ली तें पळोवपाक त्या तारीख/वेळाचेर क्लिक करात",
+       "filehist-deleteone": "काडून उडयात",
+       "filehist-revert": "परतुवप",
+       "filehist-current": "चालंत",
+       "filehist-datetime": "दिस / वेळ",
+       "filehist-thumb": "लघुप्रतिमा",
+       "filehist-thumbtext": " $1मेरेनचे आवृत्ती खातीर लघुप्रतिमा",
+       "filehist-user": "उपेगकर्तो",
+       "filehist-dimensions": "परिमाण",
+       "filehist-comment": "शेरो",
+       "imagelinks": "फायल वापरपाची तरा",
+       "linkstoimage": "हे फायलीक सकयल दिल्ल्यो पानाच्यो जोडण्यो {{PLURAL:$1|आसात}}.",
+       "nolinkstoimage": "हे फायलीक जोडणी आशिल्लीं आनीक पानां नात.",
+       "sharedupload-desc-here": "ही फयल $1 हांगाची आनी ती हे प्रकल्पां खातीर वापरल्यार चलता. (तिच्या $2 ह्या फयलींतलें वर्णनाचे पान) तातूंतलें वर्णन सकयल दिलां.",
+       "upload-disallowed-here": "तूं ह्या फायलीचेर अधिलेखीत करूंक शकना",
+       "randompage": "खंयचेंय आदलें मदलें",
+       "statistics": "संख्याशास्त्र",
+       "statistics-pages": "पान:",
+       "statistics-files": "फायल अपलोड करात",
+       "brokenredirects-edit": "संस्करण",
+       "brokenredirects-delete": "काडून उडयात",
+       "nbytes": "$1 {{PLURAL:$1|बाय्ट}}",
+       "nmembers": "$1 {{PLURAL:$1|वांगडी}}",
+       "prefixindex": "उपसर्ग आशिल्लीं सगळीं पानां",
+       "usercreated": "$1 ह्या दिसा $2 ह्या वेळार तयार केलें",
+       "newpages": "नवीं पानां",
+       "move": "हालय",
+       "pager-newer-n": "{{PLURAL:$1|नवो 1|नवें $1}}",
+       "pager-older-n": "{{PLURAL:$1|आदलो 1|आदलें $1}}",
+       "booksources": "पुस्तकांचो स्त्रोत",
+       "booksources-search-legend": "पुस्तकाचे स्त्रोत सोदात",
+       "booksources-search": "सोद",
+       "log": "लॉग्स",
+       "allpages": "सगळीं पाना",
+       "allarticles": "सगळीं पानां",
+       "allpagessubmit": "वचात",
+       "categories": "गट",
+       "linksearch-ns": "नांवाची सुवात",
+       "linksearch-ok": "सोद",
+       "linksearch-line": "$2 तल्यान $1 जोडिल्लो आसा",
+       "listusers-submit": "दाखयात",
+       "listgrouprights-members": "सदस्यांची वळेरी",
+       "emailuser": "ह्या वापरप्याक इमेल करात.",
+       "emailusername": "वापरप्याचे नांव",
+       "watchlist": "लक्ष वळेरी",
+       "mywatchlist": "लक्ष वळेरी",
+       "watchlistfor2": "$1 $2 खातीर",
+       "watch": "नदर दवरात",
+       "unwatch": "पळोवंक नासलें",
+       "watchlist-details": "लक्ष {{PLURAL:$1|$1वळेरींतलें|$1 वळेंरींतली}} {{PLURAL:$1|$1पान|$1 पानां}} उलोवपाची पानां सोडून",
+       "wlshowlast": "फाटलें $1 वरांचें $2 दिसांचें  दाखयात",
+       "watchlist-options": "लक्षवळेंरींतलो पर्याय",
+       "delete-legend": "काडून उडयात",
+       "actioncomplete": "क्रिया पुराय जाल्या",
+       "actionfailed": "क्रिया अपेस जाल्या",
+       "dellogpage": "काडून उडयिल्ल्यांची वळेरी",
+       "rollbacklink": "फाटीं घेयात",
+       "rollbacklinkcount": "$1 {{PLURAL:$1|संपादन}} फाटीं घेयात",
+       "protectlogpage": "सुरक्षा नोंदी",
+       "protectedarticle": "राखिल्ले\"[[$1]]\"",
+       "restriction-edit": "संस्करण",
+       "restriction-move": "दुसरेकडे व्हरात",
+       "restriction-create": "निर्माण कर",
+       "undeletelink": "पळेयात/परत हाडात",
+       "undeleteviewlink": "पळय, दृश्य",
+       "namespace": "नांवाची सुवात",
+       "invert": "विपरीत प्रवरण",
+       "tooltip-invert": "वेंचीक नांवांचे सुवाते(आनी संबंदीत नांवांची सुवात तपासल्या जाल्यार) भीतर पानांनी केल्ले बदल लिपोवंक ह्या बॉक्सांत तपासून पळयात.",
+       "namespace_association": "संबंदीत नामस्थान",
+       "tooltip-namespace_association": "चर्चा वा वेंचीक नांवाचें सुवातीक संबंदीत विशयाच्या नांवाची सुवात आस्पावन घेवपाखातीर ह्या बॉक्सांत पळयात",
+       "blanknamespace": "(मुखेल)",
+       "contributions": "{{GENDER:$1|उपेगकर्तो}} योगदानां",
+       "contributions-title": "$1 खातीर उपेगकर्त्याचीं योगदानां",
+       "mycontris": "योगदान",
+       "uctop": "(हालीचें)",
+       "month": "ह्या म्हयन्या सावन (आनी आदलें):",
+       "year": "ह्या वर्सा सावन (आनी आदलें):",
+       "sp-contributions-newbies": "फकत नव्या खात्यांचीं योगदानां दाखयात",
+       "sp-contributions-blocklog": "कार्यवळेरी आडायात",
+       "sp-contributions-uploads": "अपलोड",
+       "sp-contributions-logs": "लॉग",
+       "sp-contributions-talk": "उलोवप",
+       "sp-contributions-search": "योगदानां सोदात",
+       "sp-contributions-username": "आयपी नामो वा उपेगकर्त्याचें नांव",
+       "sp-contributions-toponly": "फकत सगळ्यांत हालींचे पुनर्नियाळ आशिल्लीं संस्करणां दाखयात",
+       "sp-contributions-submit": "सोद",
+       "whatlinkshere": "हाका कितें जुळटा",
+       "whatlinkshere-title": " \"$1\" हाका जोडणी आशिल्लीं पानां",
+       "whatlinkshere-page": "पान:",
+       "linkshere": "मुखावेली पानां '''[[:$1]]''': हाका जोडणी करतात",
+       "nolinkshere": "$1हाका खंयच्याच पानाची जोडणी ना",
+       "isredirect": "पान नव्या नाम्यार धाडात",
+       "istemplate": "$1 ट्रान्स्क्ल्युजन्स",
+       "isimage": "फायलीचो दुवो",
+       "whatlinkshere-prev": "{{PLURAL:$1|आदलें|आदलीं $1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|फुडलें|फुडलें $1}}",
+       "whatlinkshere-links": "← जोडण्यो",
+       "whatlinkshere-hideredirs": "$1 पुनर्निर्देशन",
+       "whatlinkshere-hidetrans": "$1 ट्रान्स्क्ल्युजन्स",
+       "whatlinkshere-hidelinks": "$1 जोडण्यो",
+       "whatlinkshere-hideimages": "$1 फायल जोडणी",
+       "whatlinkshere-filters": "गाळणे",
+       "ipboptions": "2 वरां: 2hours ,1 दीस:1 day,3 दीस:3 days,1 सुमान:1 week,2 सुमनां:2 weeks,1 म्हयनो:1 month,3 म्हयने:3 months,6 म्हयने:6 months,1 वर्स:1 year,अनिश्चीत:infinte",
+       "ipblocklist": "आडायल्लें वापरपी",
+       "blocklink": "विभाग",
+       "change-blocklink": "विभाग सुदारप",
+       "contribslink": "योगदान",
+       "blocklogpage": "कार्यवळेरी आडायात",
+       "blocklogentry": "$2 $3 हो सोंपपी वेळ आशिल्लो $1 बंद दवरल्ला",
+       "block-log-flags-nocreate": "खातें निर्माण जावूंक ना",
+       "movepagebtn": "पान राखून दवरात",
+       "movelogpage": "लॉग हालय",
+       "revertmove": "मूळ पदार व्हरप",
+       "export": "निर्यात पानां",
+       "allmessagesname": "नांव",
+       "allmessagesdefault": "पूर्वनिर्धारित संदेशाचो मजकूर",
+       "thumbnail-more": "व्हड करात",
+       "thumbnail_error": "$1ः लघुप्रतिमा करतांनाची चूक",
+       "tooltip-pt-userpage": "तुमचें वापरपाचें पान",
+       "tooltip-pt-mytalk": "तुमचें उलोवपाचें पान",
+       "tooltip-pt-preferences": "तुमची पसंती",
+       "tooltip-pt-watchlist": "तुमी बदल करपा खातीर देखरेख करतात त्या पानांची वळेरी",
+       "tooltip-pt-mycontris": "तुमच्या योगदानांची वळेरी",
+       "tooltip-pt-login": "लोग इन करप बरें, पूण तशी सक्ती ना.",
+       "tooltip-pt-logout": "सत्र शेवट",
+       "tooltip-pt-createaccount": "तुमी खातें उगडून लाॅग इन करचें अशें सुचयतात, पूण तें सक्तीचे ना.",
+       "tooltip-ca-talk": "मजकूराच्या पाना संबंदान चर्चा",
+       "tooltip-ca-edit": "तुमच्यानीं ह्या पानाचें संस्करण करूं येता. उपकार करून राखून दवरच्या आदीं पूर्वनियाळ बटन वापरचो",
+       "tooltip-ca-addsection": "नवीन विभाग सुरु करात",
+       "tooltip-ca-viewsource": "हें पान संरक्षीत आसा. तुमच्यानी ताचो उगम पळोवं येता",
+       "tooltip-ca-history": "ह्या पानाचे आदले नियाळ",
+       "tooltip-ca-protect": "हें पान राखून दवर",
+       "tooltip-ca-delete": "हें पान काडून उडयात",
+       "tooltip-ca-move": "दुसरे कडे व्हरात",
+       "tooltip-ca-watch": "तुमचे लक्ष वळेरेक हें पान जोडात",
+       "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-feed-atom": "ह्या पाना खातीर ऍटम रसद",
+       "tooltip-t-contributions": "ह्या वापरप्याची योगदानाची वळेरी",
+       "tooltip-t-emailuser": "ह्या उपेगकर्त्याक इ-मेल धाडात",
+       "tooltip-t-upload": "फायल अपलोड करात",
+       "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-minoredit": "हो ल्हानसो बदल म्हूण कुरू करात",
+       "tooltip-save": "तुमचे बदल राखून दवरात",
+       "tooltip-preview": "तुमचे बदल परतून नियाळचे. हें राखून दवरचे पयलीं करचें",
+       "tooltip-diff": "लिखीत मजकूरांत तुमी खंयचो बदल केला तो दाखयात",
+       "tooltip-compareselectedversions": "ह्या पानाच्या दोन वेंचिल्ल्या पुनर्नियाळां मदलो फरक पळेयात.",
+       "tooltip-watch": "तुमच्या लक्षवळेरेंत हें पान जोडात",
+       "tooltip-rollback": "निमाण्या योगदान करप्यान ह्या पानाचेर केल्लें संस्करण (‍णां) रोलबॅक  (फाटीं घेयात) एकाच क्लीकान मूळ पदार हाडटा",
+       "tooltip-undo": "\"आदलें स्थितीर हाडचें\" ह्या बदलाक परत व्हरुन संपादन स्थितीन झलक रितीन दाखयतात.\nहाचेवरवीं सारांशान आदल्या स्थितीर हाडपाचें कारण बरोवं शकता.",
+       "tooltip-summary": "आपरोसाची नोंदणी करात",
+       "simpleantispam-label": "एन्टी-स्पैम तपासप. हातूंतल्यान <strong>NOT</strong> भरात!",
+       "pageinfo-toolboxlink": "पानाची म्हायती",
+       "previousdiff": "← आदलें संपादन",
+       "nextdiff": "नवें संपादन →",
+       "file-info-size": "$1 × $2 चित्रतत्व, फायलीचो आकार: $3, माइम प्रकार: $4",
+       "file-nohires": "हाच्या परस वयले रेजल्युशन उपल्बद ना",
+       "svg-long-desc": "SVG फायल, सादारणपणान $1 × $2 पीक्सल्स, फायलीचो आकार: $3",
+       "show-big-image": "मुळावी फायल",
+       "show-big-image-preview": "ह्या दाखवणीचो आकार: $1.",
+       "show-big-image-other": "हेर  {{PLURAL:$2| resolution|resolutions}}:  $1 ।",
+       "show-big-image-size": "$1 × $2 पिक्सेल",
+       "bad_image_list": "सरुपण सकयले भाशेन आसाः फक्त वळेरेंतल्यान विशयांचो (*न सुरु जावपी वळी) विचार जाला वळी वयली पयली जोडणी ही वायट फायलीक जोडणी ही वायट फायलीक जोडणी आसूंक जाय. ते लायनीवेल्यो ताचे उपरांतच्यो खंयच्योय जोडण्यो ह्यो आडवाद अशो धरतात म्हळ्यार जंय फायल  इन लायन आसूं येता अशी पानां.",
+       "metadata": "मेटाडॅटा",
+       "metadata-help": "ह्या फायलीन चड म्हायती आसा, घडये ही फायल तयार करताना वापरिल्ल्या स्कॅनर वा कॅमेरा कडल्यान ही मेळ्ळ्या आसुंये. जर ही फायल बदल्ल्या जाल्यार ही म्हायती नव्या फायलींकडे जुळची ना असो दुबाव आसा.",
+       "metadata-fields": "जेन्ना मेटाडेटा टेबल कोसळटा तेन्ना ह्या संदेशांत आसपाव केल्लीं मेटाडेटाची चित्ररूपां दर्शक पानांत आसपावतलीं बाकीचीं पूर्वनिर्धारीत रितीन लिपून उरतलीं\nबनावट\nनमुनो\nमूळ तारीख-वेळ\nउकतो वेळ\nकलाकार\nसर्वाधिकार\nप्रतिमावर्णन",
+       "exif-orientation": "अभिविन्यास",
+       "exif-xresolution": "आडवें रिजोल्यूशन",
+       "exif-yresolution": "उबें रिजोल्यूशन",
+       "exif-datetime": "फायल बदल वेळ आनी तारीक",
+       "exif-make": "कॅमेरा उत्पादक",
+       "exif-model": "कॅमेरा मॉडेल",
+       "exif-software": "वापरिल्लो सॉफ्टवेर",
+       "exif-exifversion": "Exif आवृत्ती",
+       "exif-colorspace": "रंग स्थान",
+       "exif-datetimeoriginal": "म्हायती निर्मितीची तारीख आनी वेळ",
+       "exif-datetimedigitized": "डिजिटायज केल्ल्याची तारीक आनी वेळ",
+       "exif-orientation-1": "सामान्य",
+       "namespacesall": "सगळें",
+       "monthsall": "सगळे",
+       "watchlisttools-view": "प्रस्तूत बदल पळयात.",
+       "watchlisttools-edit": "लक्ष वळेंरी पळय आनी संपादीत करात",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|उलोवप]])",
+       "specialpages": "खाशेलीं पानां",
+       "tag-filter": "[[Special:Tags|लेबल]]गाळणो:",
+       "tag-list-wrapper": "([[विशेश:कुरवेचीट|{{बहुवचन:$1|कुरवेचीट|कुरवेचीटी}}]]: $2)",
+       "logentry-delete-delete": "$1 {{GENDER:$2|काडून उडयल्ले पान}} $3",
+       "logentry-move-move": "$1 न $3 पानाचेर $4 {{GENDER:$2|हालयला}}",
+       "logentry-newusers-create": "उपयोगकत्याचें $1 {{लिंग:$2|तयार केलें}}",
+       "logentry-upload-upload": "$1 {{GENDER:$2|अपलोड केला}} $3",
+       "searchsuggest-search": "सोद"
+}
index f66f21f..84ba22c 100644 (file)
@@ -24,7 +24,8 @@
                        "아라",
                        "Vyom",
                        "Macofe",
-                       "Arbhatt"
+                       "Arbhatt",
+                       "NehalDaveND"
                ]
        },
        "tog-underline": "કડીઓની નીચે લીટી (અંડરલાઇન):",
@@ -77,7 +78,7 @@
        "monday": "સોમવાર",
        "tuesday": "મંગળવાર",
        "wednesday": "બુધવાર",
-       "thursday": "àª\97à«\81રà«\82વાર",
+       "thursday": "àª\97à«\81રà«\81વાર",
        "friday": "શુક્રવાર",
        "saturday": "શનિવાર",
        "sun": "રવિ",
        "currentevents": "વર્તમાન ઘટનાઓ",
        "currentevents-url": "Project:વર્તમાન ઘટનાઓ",
        "disclaimers": "દાવેદારી ઇનકાર",
-       "disclaimerpage": "Project:સરà«\8dવસાધારણ àª¦àª¾àªµà«\87દારà«\80 ઇનકાર",
+       "disclaimerpage": "Project:સાધારણ ઇનકાર",
        "edithelp": "ફેરફારો માટે મદદ",
+       "helppage-top-gethelp": "મદદ",
        "mainpage": "મુખપૃષ્ઠ",
        "mainpage-description": "મુખપૃષ્ઠ",
        "policy-url": "Project:નીતિ",
        "templatesusedpreview": "આ પૂર્વાવલોકનમાં વપરાયેલ {{PLURAL:$1|ઢાંચો|ઢાંચાઓ}}:",
        "templatesusedsection": "આ ખંડ માં વપરાયેલા {{PLURAL:$1|ઢાંચો|ઢાંચા}} :",
        "template-protected": "(સુરક્ષિત)",
-       "template-semiprotected": "(અર્ધ સુરક્ષિત)",
+       "template-semiprotected": "(અર્ધ-સુરક્ષિત)",
        "hiddencategories": "આ પાનું {{PLURAL:$1|૧ છુપી શ્રેણી|$1 છુપી શ્રેણીઓ}}નું સભ્ય છે:",
        "nocreatetext": "{{SITENAME}}માં નવું પાનુ બનાવવા ઉપર નિયંત્રણ આવી ગયું છે.\n<br />આપ પાછા જઇને હયાત પાનામાં ફેરફાર કરી શકો છો, નહિતર [[Special:UserLogin|પ્રવેશ કરો કે નવું ખાતું ખોલો]].",
        "nocreate-loggedin": "તમને નવાં પાનાં બનાવવાની પરવાનગી નથી.",
        "content-model-text": "સાદું લખાણ",
        "content-model-javascript": "જાવાસ્ક્રિપ્ટ",
        "content-model-css": "CSS",
+       "content-json-empty-object": "ખાલી ઓબ્જેક્ટ",
+       "content-json-empty-array": "ખાલી એરે",
        "expensive-parserfunction-warning": "'''ચેતવણી:''' આ પાનું ખૂબ ખર્ચાળ પદચ્છેદ સૂત્ર ધરાવે છે.\n\nતેમાં $2 કરતા ઓછાં{{PLURAL:$2|પૃછા|પૃછાઓ}}હોવા જોઇએ, અત્યારે તેમાં  {{PLURAL:$1|$1 પૃછા| $1 પૃછાઓ }} છે.",
        "expensive-parserfunction-category": "ઘણા પદચ્છેદ સૂત્ર ધરાવતું પાનું",
        "post-expand-template-inclusion-warning": "'''ચેતવણી:''' ઢાંચાનું માપ ખૂબ મોટું છે.\nઅમુક ઢાંચા શામિલ નહીં કરાય.",
        "notextmatches": "આ શબ્દ કોઈ પાનામાં મળ્યો નથી",
        "prevn": "પહેલાનાં {{PLURAL:$1|$1}}",
        "nextn": "પછીનાં {{PLURAL:$1|$1}}",
+       "prev-page": "પાછલું પાનું",
+       "next-page": "આગળનું પાનું",
        "prevn-title": "ગત  $1 {{PLURAL:$1|પરિણામ|પરિણામો}}",
        "nextn-title": "આગલા  $1 {{PLURAL:$1|પરિણામ|પરિણામો}}",
        "shown-title": "પ્રતિ પાને $1 {{PLURAL:$1|પરિણામ|પરિણામો}} બતાવો",
        "searchprofile-articles-tooltip": "$1 માં શોધો",
        "searchprofile-images-tooltip": "ફાઇલ શોધો",
        "searchprofile-everything-tooltip": "બધે જ શોધો (ચર્ચાનાં પાના સહિત)",
-       "searchprofile-advanced-tooltip": "સ્થાનીય નામસ્થળોમાં શોધો:",
+       "searchprofile-advanced-tooltip": "સ્થાનીય નામસ્થળોમાં શોધો",
        "search-result-size": "$1 ({{PLURAL:$2|૧ શબ્દ|$2 શબ્દો}})",
        "search-result-category-size": "{{PLURAL:$1|1 સભ્ય|$1 સભ્યો}} ({{PLURAL:$2|1 ઉપ શ્રેણી|$2 ઉપ શ્રેણીઓ}}, {{PLURAL:$3|1 ફાઇલ|$3 ફાઇલો}})",
        "search-redirect": "(અન્યત્ર પ્રસ્થાન $1)",
        "search-section": "(વિભાગ $1)",
+       "search-category": "(શ્રેણી $1)",
        "search-suggest": "શું તમે $1 કહેવા માંગો છો?",
        "search-interwiki-caption": "બંધુ પ્રકલ્પ",
        "search-interwiki-default": "$1 માંથી પરીણામો:",
        "prefs-personal": "સભ્ય ઓળખ",
        "prefs-rc": "તાજા ફેરફારો",
        "prefs-watchlist": "ધ્યાનસૂચિ",
+       "prefs-editwatchlist": "ધ્યાનસૂચિ માં ફેરફાર કરો",
+       "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": "વિસ્તરીત ધ્યાનસૂચિ માં બતાવનારા ફેરફારોની સંખ્યા",
        "right-move": "પાનું ખસેડો",
        "right-move-subpages": "પાનાઓને તેમના ઉપ પાના સાથે ખસેડો.",
        "right-move-rootuserpages": "મૂળ સભ્ય પાના હટાવો",
+       "right-move-categorypages": "શ્રેણી પાનાંઓ ખસેડો",
        "right-movefile": "ફાઈલો હટાવો",
        "right-suppressredirect": "પાના હટાવતી વખતના સમયે સ્રોત પાનામાંથી દિશા નિર્દેશ વર્જીત",
        "right-upload": "ફાઇલ ચડાવો",
        "action-move-subpages": "આ પાનું અને તેના ઉપપાનાં ખસેડો",
        "action-move-rootuserpages": "મૂળ સભ્ય પાના હટાવો",
        "action-movefile": "આ ફાઈલ ખસેડો",
-       "action-upload": "આ ફાઈલ ચઢવો",
+       "action-upload": "àª\86 àª«àª¾àª\88લ àª\9aઢાવà«\8b",
        "action-reupload": "હાજર ફાઇલ પર પુનર્લેખન કરો",
        "action-reupload-shared": "સર્વ સામાન્ય ફાઈલ સંગ્રહ પર આ ફાઇલ અવગણી આગળ વધો",
        "action-upload_by_url": "URL પરથી આ ફાઇલ ચઢાવો",
        "number_of_watching_users_pageview": "[$1 જોઇરહેલ  {{PLURAL:$1|સભ્ય|સભ્યો}}]",
        "rc_categories": "શ્રેણીઓ સુધી મર્યાદિત (\"|\" થી જુદા પાડો)",
        "rc_categories_any": "કોઇ પણ",
-       "rc-change-size-new": "બદલાયા àªªàª\9bà«\80 $1 {{PLURAL:$1|બાàª\88àª\9f|બાàª\88àª\9fà«\8b}}",
+       "rc-change-size-new": "બદલાયા àªªàª\9bà«\80 $1 {{PLURAL:$1|બાàª\88àª\9f|બાàª\87àª\9fà«\8dસ}}",
        "newsectionsummary": "/* $1 */ નવો વિભાગ",
        "rc-enhanced-expand": "વિગતો બતાવો",
        "rc-enhanced-hide": "વિગતો છુપાવો",
        "uploaderror": "ફાઇલ ચઢાવમાં ચૂક",
        "upload-recreate-warning": "'''ચેતવણી: આ નામની એક ફાઇલ ભૂંસાડી કે હટાવી દેવાઇ છે. '''\nતમારા સંદર્ભ માટે પાના ભૂંસાવવાનો અને હટાવવાની સૂચિ  અહીં આપેલ છે.:",
        "uploadtext": "ફાઈલ ચડાવવા માટે નીચેનું ફોર્મ વાપરો.\nપહેલા ચડાવાયેલી ફાઇલ અહીં જુઓ કે શોધો  [[Special:FileList|list of uploaded files]], (પુનઃ) ચડાવેલી ફાઇલ પણ લોગમાં અહીં દર્શાવાઇ છે.  [[Special:Log/upload|upload log]], હટાવાયેલી ફાઇલોની યાદિ  [[Special:Log/delete|deletion log]].\n\nકોઇ ફાઇલને પાનામાં ઉમેરવા માટે, નીચેની કોઇ એક કડી પર ક્લિક કરો:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' ફાઇલની પૂર્ણ આવૃત્તિ વાપરવા \n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' to use a ડાબા હાંસિયા નજીક ચોકઠામાં 200 પિક્સેલ પહોળી ફાઇલ   'alt text' સાથે વર્ણન સહીત ચડાવવા \n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' ફાઇલના દર્શન કર્યા સિવાય સીધી ફાઇલ જોડવા માટે",
-       "upload-permitted": "રજામંદ ફાઈલ પ્રકારો: $1.",
-       "upload-preferred": "ઈચ્છીત ફાઈલ પ્રકારો: $1.",
-       "upload-prohibited": "પ્રતિબંધીત ફાઈલ પ્રકારો: $1.",
+       "upload-permitted": "રજામંદ ફાઈલ {{PLURAL:$2|પ્રકાર|પ્રકારો}}: $1.",
+       "upload-preferred": "ઈચ્છીત ફાઈલ {{PLURAL:$2|પ્રકાર|પ્રકારો}}: $1.",
+       "upload-prohibited": "પ્રતિબંધીત ફાઈલ {{PLURAL:$2|પ્રકાર|પ્રકારો}}: $1.",
        "uploadlogpage": "ચઢાવેલી ફાઇલોનું માહિતિ પત્રક",
        "uploadlogpagetext": "નીચે હાલમાં ચડાવેલી ફાઇલોની યાદી છે.\nવધુ ફાઇલો દ્રશમાન કરવા [[Special:NewFiles|gallery of new files]] જુઓ",
        "filename": "ફાઇલ નામ",
        "listfiles-latestversion-no": "ના",
        "file-anchor-link": "ફાઇલ/દસ્તાવેજ",
        "filehist": "ફાઇલનો ઇતિહાસ",
-       "filehist-help": "તારિખ/સમય ઉપર ક્લિક કરવાથી તે સમયે ફાઇલ કેવી હતી તે જોવા મળશે",
+       "filehist-help": "તારિખ/સમય ઉપર ક્લિક કરવાથી તે સમયે ફાઇલ કેવી હતી તે જોવા મળશે.",
        "filehist-deleteall": "બધા ભૂસો",
        "filehist-deleteone": "હટાવો",
        "filehist-revert": "પૂર્વવત કરો",
        "randomincategory-invalidcategory": "\"$1\" એ યોગ્ય શ્રેણી નામ નથી.",
        "randomincategory-nopages": "[[:Category:$1|$1]] વર્ગમાં કોઇ પાનું નથી.",
        "randomincategory-category": "શ્રેણી:",
+       "randomincategory-legend": "શ્રેણીમાં ગમે તે પાનું",
        "randomredirect": "દિશાહીન  નિર્દેશન",
        "randomredirect-nopages": "નામ સ્થળ \"$1\" માં કોઇ દિશા નિર્દેશન નથી",
        "statistics": "આંકડાકીય માહિતી",
        "wantedtemplates": "ઇચ્છિત ઢાંચા",
        "mostlinked": "સૌથી વધુ કડીઓ દ્વારા જોડાયેલ પાનું",
        "mostlinkedcategories": "સૌથી વધુ શ્રેણીઓ દ્વારા જોડાયેલ પાનું",
-       "mostlinkedtemplates": "સà«\8cથà«\80 àªµàª§à«\81 àª¢àª¾àª\82àª\9aાàª\93  àª¦à«\8dવારા àª\9cà«\8bડાયà«\87લ àªªàª¾àª¨à«\81àª\82",
+       "mostlinkedtemplates": "સà«\8cથà«\80 àªµàª§à«\81 àª\9cà«\8bડાયà«\87લ àªªàª¾àª¨àª¾àª\82àª\93",
        "mostcategories": "સૌથી વધુ શ્રેણીઓ ધરાવતાં પાનાં",
        "mostimages": "સૌથી વધુ કડીઓ દ્વારા જોડાયેલી ફાઇલ",
        "mostinterwikis": "સૌથી વધુ આંતરવિકી કડીઓ ધરાવતાં પાના",
        "protectedpages": "સંરક્ષિત પાનાઓ",
        "protectedpages-indef": "ફક્ત અનિશ્ચિત સુરક્ષા ધરાવતા પાના",
        "protectedpages-cascade": "માત્ર પગથિયામય સુરક્ષા વાળા પગ",
+       "protectedpages-noredirect": "અન્યત્ર વાળેલાં પાનાંઓ છૂપાવો",
        "protectedpagesempty": "આ વિકલ્પો દ્વારા કોઈ પાના સુરક્ષિત કરાયા નથી.",
        "protectedpages-timestamp": "સમયછાપ",
        "protectedpages-page": "પાનું",
        "pager-older-n": "{{PLURAL:$1|જૂનું 1|જૂનાં $1}}",
        "suppress": "દુર્લક્ષ",
        "querypage-disabled": "કાર્યક્ષમતાના કારણે આ ખાસ પાનું નિષ્ક્રિ કરાયું છે.",
+       "apihelp": "API મદદ",
+       "apihelp-no-such-module": "સાધન જૂથ \"$1\" ન મળ્યું.",
        "booksources": "પુસ્તક સ્રોત",
        "booksources-search-legend": "પુસ્તક સ્રોત શોધો",
        "booksources-isbn": "આઇએસબીએન:",
        "listgrouprights-addgroup-self-all": "દરેક જૂથને તેમના પોતાના ખાતા માં ઉમેરો",
        "listgrouprights-removegroup-self-all": "બધા જૂથને તેમના પોતાના ખાતામાંથી હટાવો",
        "listgrouprights-namespaceprotection-namespace": "નામાવકાશ",
+       "trackingcategories": "મળતાં વર્ગો",
+       "trackingcategories-msg": "મળતો વર્ગ",
        "trackingcategories-name": "સંદેશ નામ",
+       "trackingcategories-disabled": "વર્ગ અસક્રિય છે.",
        "mailnologin": "મેળવનારનું સરનામું નથી",
        "mailnologintext": "અન્ય સભ્યને ઇ-મેલ મોકલવા માટે તમે [[Special:UserLogin|logged in]] પ્રવેશ કરેલ હોવો જોઈએ અને તમારા[[Special:Preferences|preferences]] વિકલ્પોમાં તમારા ઈ-મેલ સરનામાની પુષ્ટિ થયેલી હોવી જોઈએ",
        "emailuser": "સભ્યને ઇ-મેલ કરો",
        "emailuser-title-target": "આ {{GENDER:$1|સભ્ય}}ને ઇમેલ કરો",
        "emailuser-title-notarget": "ઇ-મેલ વપરાશકર્તા",
        "emailpage": "ઈ-મેલ સભ્ય",
-       "emailpagetext": "તમà«\87 àª¨à«\80àª\9aà«\87 àª¦àª°à«\8dશાવà«\87લ àª«à«\8bરà«\8dમ àªµàª¾àªªàª°à«\80 àª\86 {{GENDER:$1|સભà«\8dય}}નà«\87 àª\87-મà«\87લ àª®à«\8bàª\95લà«\80 àª¶àª\95à«\8b àª\9bà«\8b.\nતમà«\87 [[Special:Preferences|તમારà«\80 àªªàª¸àª\82દમાàª\82]] àª\9cà«\87 àª\87-મà«\87લ àª²àª\96à«\8dયà«\8b હશે તે \"દ્વારા\"ના નામ હેઠળ દેખાશે, જેથી ઇ-મેલ મેળવનાર તમને સંદેશાનો જવાબ આપી શકશે.",
+       "emailpagetext": "તમà«\87 àª¨à«\80àª\9aà«\87 àª¦àª°à«\8dશાવà«\87લ àª«à«\8bરà«\8dમ àªµàª¾àªªàª°à«\80 àª\86 {{GENDER:$1|સભà«\8dય}}નà«\87 àª\87-મà«\87લ àª®à«\8bàª\95લà«\80 àª¶àª\95à«\8b àª\9bà«\8b.\nતમà«\87 [[Special:Preferences|તમારà«\80 àªªàª¸àª\82દમાàª\82]] àª\9cà«\87 àª\87-મà«\87લ àª¸àª°àª¨àª¾àª®à«\81àª\82 àª²àª\96à«\8dયà«\81àª\82 હશે તે \"દ્વારા\"ના નામ હેઠળ દેખાશે, જેથી ઇ-મેલ મેળવનાર તમને સંદેશાનો જવાબ આપી શકશે.",
        "defemailsubject": "{{SITENAME}} સભ્ય $1 તરફથી ઈ-મેલ",
        "usermaildisabled": "સભ્યનો ઈ-મેલ નિષ્ક્રિય કરાયો",
        "usermaildisabledtext": "તમે આ વિકિ પર અન્ય સભ્યોને ઇ-મેલ મોકલી ન શકો",
        "wlheader-enotif": "ઈમેલ સૂચના પદ્ધતિ સક્રીય કરાઈ.",
        "wlheader-showupdated": "તમારી છેલ્લી મુલાકાત પછી બદલાયેલાં પાના  '''ઘાટા''' અક્ષરો વડે દર્શાવ્યાં છે.",
        "wlnote": "નીચે $3, $4 વાગ્યા સુધીના છેલ્લા {{PLURAL:$2|એક કલાક|'''$2''' કલાક}}માં થયેલા {{PLURAL:$1|ફેરફાર|'''$1''' ફેરફારો }} દર્શાવ્યા છે.",
-       "wlshowlast": "છેલ્લા $1 કલાક $2 દિવસ  બતાવો",
+       "wlshowlast": "છેલ્લા $1 કલાકો $2 દિવસો બતાવો",
        "watchlist-options": "ધ્યાનસૂચિના વિકલ્પો",
        "watching": "નજર રાખી રહ્યાં છો...",
        "unwatching": "નજર રાખવાની બંધ કરી છે...",
        "lockedbyandtime": "({{GENDER:$1|$1}} દ્વારા $2 પર $3 ખાતે)",
        "move-page": "$1 ખસેડો",
        "move-page-legend": "પાનું ખસેડો",
-       "movepagetext": "નà«\80àª\9aà«\87નà«\81àª\82 àª«à«\8bરà«\8dમ àªµàª¾àªªàª°àªµàª¾àª¥à«\80 àª\86 àªªàª¾àª¨àª¾àª¨à«\81àª\82 àª¨àª¾àª® àª¬àª¦àª²àª¾àª\87 àª\9cશà«\87 àª\85નà«\87 àª¤à«\87માàª\82 àª°àª¹à«\87લà«\80 àª¬àª§à«\80 àª®àª¾àª¹àª¿àª¤à«\80 àª¨àªµàª¾ àª¨àª¾àª®à«\87 àª¬àª¨à«\87લાàª\82 àªªàª¾àª¨àª¾àª®àª¾àª\82 àª\96સà«\87ડાàª\87 àª\9cશà«\87.\nàª\9cà«\81નà«\81àª\82 àªªàª¾àª¨à«\81àª\82, àª¨àªµàª¾ àª¬àª¨à«\87લા àªªàª¾àª¨àª¾ àª¤àª°àª« àªµàª¾àª³àª¤à«\81àª\82 àª¥àª¶à«\87.\nતમà«\87 àª\86વા àª\85નà«\8dયતà«\8dર àªµàª¾àª³à«\87લાàª\82 àªªàª¨àª¾àª\93નà«\87 àª\86પà«\8bàª\86પ àª\9c àª¤à«\87ના àª®à«\81ળ àª¶à«\80રà«\8dષàª\95 àª¸àª¾àª¥à«\87 àª\9cà«\8bડà«\80 àª¶àª\95શà«\8b.\nàª\9cà«\8b àª¤àª®à«\87 àª¤à«\87મ àª\95રવા àª¨àª¾ àª\87àª\9aà«\8dàª\9bતા àª¹à«\8bવ àª¤à«\8b, [[Special:DoubleRedirects|બà«\87વડા]] àª\85થવા [[Special:BrokenRedirects|તà«\8dરà«\81àª\9fàª\95 àª\95ડà«\80 àªµàª¾àª³àª¾]] àª\85નà«\8dયતà«\8dર àªµàª¾àª³à«\87લા àªªàª¾àª¨àª¾àª\93નà«\80 àª¯àª¾àª¦à«\80 àª\9aàª\95ાસà«\80નà«\87 àª\96ાતરà«\80 àª\95રà«\80 àª²à«\87શà«\8b.\nàª\95ડà«\80 àª\9cà«\87 àªªàª¾àª¨àª¾ àªªàª° àª²àª\88 àª\9cવà«\80 àª\9cà«\8bàª\88àª\8f àª¤à«\87 àª\9c àªªàª¾àª¨àª¾ àª¸àª¾àª¥à«\87 àª\9cà«\8bડà«\87 àª¤à«\87નà«\80 àª\96ાતરà«\80 àª\95રà«\80 àª²à«\87વà«\80 àª¤à«\87 àª¤àª®àª¾àª°à«\80 àª\9cવાબદારà«\80 àª\9bà«\87.\n\nàª\8f àªµàª¾àª¤àª¨à«\80 àª¨à«\8bàª\82ધ àª²à«\87શà«\8b àª\95à«\87, àª\9cà«\8b àª¤àª®à«\87 àªªàª¸àª\82દ àª\95રà«\87લા àª¨àªµàª¾ àª¨àª¾àª® àªµàª¾àª³à«\81àª\82 àªªàª¾àª¨à«\81àª\82 àª\85સà«\8dતિતà«\8dવમાàª\82 àª¹àª¶à«\87 àª¤à«\8b àª\9cà«\81નà«\81àª\82 àªªàª¾àª¨à«\81àª\82 '''નહà«\80 àª\96સà«\87''', àª¸àª¿àªµàª¾àª¯àª\95à«\87 àª¤à«\87 àªªàª£ àª\85નà«\8dયતà«\8dર àªµàª¾àª³àª¤à«\81àª\82 àªªàª¾àª¨à«\81àª\82 àª¹à«\8bય àª\85નà«\87 àª¤à«\87નà«\8b àª\95à«\8bàª\88 àª\87તિહાસ àª¨àª¾ àª¹à«\8bય.\nàª\86નà«\8b àª\85રà«\8dથ àª\8fમ àª¥àª¾àª¯ àª\9bà«\87 àª\95à«\87 àª\9cà«\8b àª¤àª®à«\87 àª\95à«\8bàª\88 àª¤àª¬àª\95à«\8dàª\95à«\87 àª­à«\81લ àª\95રશà«\8b àª¤à«\8b àª\9cà«\87 àªªàª¾àª¨àª¾àª¨à«\81àª\82 àª¨àª¾àª® àª¬àª¦àª²àªµàª¾àª¨à«\8b àªªà«\8dરયતà«\8dન àª\95રતા àª¹à«\8bવ àª¤à«\87નà«\87 àª¤àª®à«\87 àª«àª°à«\80 àªªàª¾àª\9bા àª\9cà«\81ના àª¨àª¾àª® àªªàª° àª\9c àªªàª¾àª\9bà«\81àª\82 àªµàª¾àª³à«\80 àª¶àª\95શà«\8b, àª\85નà«\87 àª¬à«\80àª\9cà«\81àª\82 àª\95à«\87 àªªàª¹à«\87લà«\87થà«\80 àª¬àª¨à«\87લા àªªàª¾àª¨àª¾àª¨à«\81àª\82 àª¨àª¾àª® àª¤àª®à«\87 àª¨àª¾àª®àª«à«\87ર àª\95રવા àª®àª¾àª\9fà«\87 àª¨àª¾ àªµàª¾àªªàª°à«\80 àª¶àª\95à«\8b.\n\n'''àª\9aà«\87તવણà«\80!'''\nલà«\8bàª\95પà«\8dરિય àªªàª¾àª¨àª¾àª\82 àª¸àª¾àª¥à«\87 àª\86વà«\81àª\82 àª\95રવà«\81àª\82 àª¬àª¿àª¨àª\85પà«\87àª\95à«\8dષિત àª\85નà«\87 àª\9cà«\8bરદાર àªªàª°àª¿àª£àª¾àª®àª\95ારàª\95 àª¨àª¿àªµàª¡à«\80 àª¶àª\95à«\87 àª\9bà«\87;\nàª\86àª\97ળ àªµàª§àª¤àª¾àª\82 àªªàª¹à«\87લાàª\82 àª\86નà«\80 àª\85સરà«\8bનà«\8b àªªà«\81રà«\87 àªªà«\81રો તાગ મેળવી લેવો આવશ્યક છે.",
-       "movepagetext-noredirectfixer": "નà«\80àª\9aà«\87નà«\81àª\82 àª«à«\8bરà«\8dમ àªµàª¾àªªàª°àªµàª¾àª¥à«\80 àª\86 àªªàª¾àª¨àª¾àª¨à«\81àª\82 àª¨àª¾àª® àª¬àª¦àª²àª¾àª\87 àª\9cશà«\87 àª\85નà«\87 àª¤à«\87માàª\82 àª°àª¹à«\87લà«\80 àª¬àª§à«\80 àª®àª¹àª¿àª¤àª¿ àª¨àªµàª¾ àª¨àª¾àª®à«\87 àª¬àª¨à«\87લાàª\82 àªªàª¾àª¨àª¾àª®àª¾àª\82 àª\96સà«\87ડાàª\87 àª\9cશà«\87.\nàª\9cà«\81નà«\81àª\82 àªªàª¾àª¨à«\81àª\82, àª¨àªµàª¾ àª¬àª¨à«\87લા àªªàª¾àª¨àª¾ àª¤àª°àª« àªµàª¾àª³àª¤à«\81àª\82 àª¥àª¶à«\87.\nતમà«\87 àª\86વા àª\85નà«\8dયતà«\8dર àªµàª¾àª³à«\87લાàª\82 àªªàª¨àª¾àª\93નà«\87 àª\86પà«\8bàª\86પ àª\9c àª¤à«\87ના àª®à«\81ળ àª¶à«\80રà«\8dષàª\95 àª¸àª¾àª¥à«\87 àª\9cà«\8bડà«\80 àª¶àª\95શà«\8b.\nàª\9cà«\8b àª¤àª®à«\87 àª¤à«\87મ àª\95રવા àª¨àª¾ àª\87àª\9aà«\8dàª\9bતા àª¹à«\8bવ àª¤à«\8b, [[Special:DoubleRedirects|બà«\87વડા]] àª\85થવા [[Special:BrokenRedirects|તà«\8dરà«\81àª\9fàª\95 àª\95ડà«\80 àªµàª¾àª³àª¾]] àª\85નà«\8dયતà«\8dર àªµàª¾àª³à«\87લા àªªàª¾àª¨àª¾àª\93નà«\80 àª¯àª¾àª¦à«\80 àª\9aàª\95ાસà«\80નà«\87 àª\96ાતરà«\80 àª\95રà«\80 àª²à«\87શà«\8b.\nàª\95ડà«\80 àª\9cà«\87 àªªàª¾àª¨àª¾ àªªàª° àª²àª\88 àª\9cવà«\80 àª\9cà«\8bàª\88àª\8f àª¤à«\87 àª\9c àªªàª¾àª¨àª¾ àª¸àª¾àª¥à«\87 àª\9cà«\8bડà«\87 àª¤à«\87નà«\80 àª\96ાતરà«\80 àª\95રà«\80 àª²à«\87વà«\80 àª¤à«\87 àª¤àª®àª¾àª°à«\80 àª\9cવાબદારà«\80 àª\9bà«\87.\n\nàª\8f àªµàª¾àª¤àª¨à«\80 àª¨à«\8bàª\82ધ àª²à«\87શà«\8b àª\95à«\87, àª\9cà«\8b àª¤àª®à«\87 àªªàª¸àª\82દ àª\95રà«\87લા àª¨àªµàª¾ àª¨àª¾àª® àªµàª¾àª³à«\81àª\82 àªªàª¾àª¨à«\81àª\82 àª\85સà«\8dતિતà«\8dવમાàª\82 àª¹àª¶à«\87 àª¤à«\8b àª\9cà«\81નà«\81àª\82 àªªàª¾àª¨à«\81àª\82 '''નહà«\80 àª\96સà«\87''', àª¸àª¿àªµàª¾àª¯àª\95à«\87 àª¤à«\87 àªªàª¾àª¨à«\81àª\82 àª\96ાલà«\80 àª¹à«\8bય àª\85થવા àª¤à«\87 àªªàª£ àª\85નà«\8dયતà«\8dર àªµàª¾àª³àª¤à«\81àª\82 àªªàª¾àª¨à«\81àª\82 àª¹à«\8bય àª\85નà«\87 àª¤à«\87નà«\8b àª\95à«\8bàª\88 àª\87તિહાસ àª¨àª¾ àª¹à«\8bય.\nàª\86નà«\8b àª\85રà«\8dથ àª\8fમ àª¥àª¾àª¯ àª\9bà«\87 àª\95à«\87 àª\9cà«\8b àª¤àª®à«\87 àª\95à«\8bàª\88 àª¤àª¬àª\95à«\8dàª\95à«\87 àª­à«\81લ àª\95રશà«\8b àª¤à«\8b àª\9cà«\87 àªªàª¾àª¨àª¾àª¨à«\81àª\82 àª¨àª¾àª® àª¬àª¦àª²àªµàª¾àª¨à«\8b àªªà«\8dરયતà«\8dન àª\95રતા àª¹à«\8bવ àª¤à«\87નà«\87 àª¤àª®à«\87 àª«àª°à«\80 àªªàª¾àª\9bા àª\9cà«\81ના àª¨àª¾àª® àªªàª° àª\9c àªªàª¾àª\9bà«\81àª\82 àªµàª¾àª³à«\80 àª¶àª\95શà«\8b, àª\85નà«\87 àª¬à«\80àª\9cà«\81àª\82 àª\95à«\87 àªªàª¹à«\87લà«\87થà«\80 àª¬àª¨à«\87લા àªªàª¾àª¨àª¾àª¨à«\81àª\82 àª¨àª¾àª® àª¤àª®à«\87 àª¨àª¾àª®àª«à«\87ર àª\95રવા àª®àª¾àª\9fà«\87 àª¨àª¾ àªµàª¾àªªàª°à«\80 àª¶àª\95à«\8b.\n\n'''àª\9aà«\87તવણà«\80!'''\nલà«\8bàª\95પà«\8dરિય àªªàª¾àª¨àª¾àª\82 àª¸àª¾àª¥à«\87 àª\86વà«\81àª\82 àª\95રવà«\81àª\82 àª¬àª¿àª¨àª\85પà«\87àª\95à«\8dષિત àª\85નà«\87 àª\9cà«\8bરદાર àªªàª°àª¿àª£àª¾àª®àª\95ારàª\95 àª¨àª¿àªµàª¡à«\80 àª¶àª\95à«\87 àª\9bà«\87;\nàª\86àª\97ળ àªµàª§àª¤àª¾àª\82 àªªàª¹à«\87લાàª\82 àª\86નà«\80 àª\85સરà«\8bનà«\8b àªªà«\81રà«\87 àªªà«\81રો તાગ મેળવી લેવો આવશ્યક છે.",
+       "movepagetext": "નà«\80àª\9aà«\87નà«\81àª\82 àª«à«\8bરà«\8dમ àªµàª¾àªªàª°àªµàª¾àª¥à«\80 àª\86 àªªàª¾àª¨àª¾àª¨à«\81àª\82 àª¨àª¾àª® àª¬àª¦àª²àª¾àª\88 àª\9cશà«\87 àª\85નà«\87 àª¤à«\87માàª\82 àª°àª¹à«\87લà«\80 àª¬àª§à«\80 àª®àª¾àª¹àª¿àª¤à«\80 àª¨àªµàª¾ àª¨àª¾àª®à«\87 àª¬àª¨à«\87લાàª\82 àªªàª¾àª¨àª¾àª®àª¾àª\82 àª\96સà«\87ડાàª\88 àª\9cશà«\87.\nàª\9cà«\82નà«\81àª\82 àªªàª¾àª¨à«\81àª\82, àª¨àªµàª¾ àª¬àª¨à«\87લા àªªàª¾àª¨àª¾ àª¤àª°àª« àªµàª¾àª³àªµàª¾àª®àª¾àª\82 àª\86વશà«\87.\nતમà«\87 àª\86વા àª\85નà«\8dયતà«\8dર àªµàª¾àª³à«\87લાàª\82 àªªàª¾àª¨àª¾àª\93નà«\87 àª\86પà«\8bàª\86પ àª\9c àª¤à«\87ના àª®à«\82ળ àª¶à«\80રà«\8dષàª\95 àª¸àª¾àª¥à«\87 àª\9cà«\8bડà«\80 àª¶àª\95શà«\8b.\nàª\9cà«\8b àª¤àª®à«\87 àª¤à«\87મ àª\95રવા àª¨ àª\87àª\9aà«\8dàª\9bતા àª¹à«\8bવ àª¤à«\8b, [[Special:DoubleRedirects|બà«\87વડા]] àª\85થવા [[Special:BrokenRedirects|તà«\8dરà«\81àª\9fàª\95 àª\95ડà«\80 àªµàª¾àª³àª¾]] àª\85નà«\8dયતà«\8dર àªµàª¾àª³à«\87લા àªªàª¾àª¨àª¾àª\93નà«\80 àª¯àª¾àª¦à«\80 àª\9aàª\95ાસà«\80નà«\87 àª\96ાતરà«\80 àª\95રà«\80 àª²à«\87શà«\8b.\nàª\95ડà«\80 àª\9cà«\87 àªªàª¾àª¨àª¾ àªªàª° àª²àª\88 àª\9cવà«\80 àª\9cà«\8bàª\88àª\8f àª¤à«\87 àª\9c àªªàª¾àª¨àª¾ àª¸àª¾àª¥à«\87 àª\9cà«\8bડà«\87 àª¤à«\87નà«\80 àª\96ાતરà«\80 àª\95રà«\80 àª²à«\87વà«\80 àª¤à«\87 àª¤àª®àª¾àª°à«\80 àª\9cવાબદારà«\80 àª\9bà«\87.\n\nàª\8f àªµàª¾àª¤àª¨à«\80 àª¨à«\8bàª\82ધ àª²à«\87શà«\8b àª\95à«\87, àª\9cà«\8b àª¤àª®à«\87 àªªàª¸àª\82દ àª\95રà«\87લા àª¨àªµàª¾ àª¨àª¾àª® àªµàª¾àª³à«\81àª\82 àªªàª¾àª¨à«\81àª\82 àª\85સà«\8dતિતà«\8dવમાàª\82 àª¹àª¶à«\87 àª¤à«\8b àª\9cà«\82નà«\81àª\82 àªªàª¾àª¨à«\81àª\82 <strong>નહà«\80 àª\96સà«\87</strong>, àª¸àª¿àªµàª¾àª¯àª\95à«\87 àª¤à«\87 àªªàª£ àª\85નà«\8dયતà«\8dર àªµàª¾àª³àª¤à«\81àª\82 àªªàª¾àª¨à«\81àª\82 àª¹à«\8bય àª\85નà«\87 àª¤à«\87નà«\8b àª\95à«\8bàª\88 àª\87તિહાસ àª¨àª¾ àª¹à«\8bય.\nàª\86નà«\8b àª\85રà«\8dથ àª\8fમ àª¥àª¾àª¯ àª\9bà«\87 àª\95à«\87 àª\9cà«\8b àª¤àª®à«\87 àª\95à«\8bàª\88 àª¤àª¬àª\95à«\8dàª\95à«\87 àª­à«\82લ àª\95રશà«\8b àª¤à«\8b àª\9cà«\87 àªªàª¾àª¨àª¾àª¨à«\81àª\82 àª¨àª¾àª® àª¬àª¦àª²àªµàª¾àª¨à«\8b àªªà«\8dરયતà«\8dન àª\95રતા àª¹à«\8bવ àª¤à«\87નà«\87 àª¤àª®à«\87 àª«àª°à«\80 àªªàª¾àª\9bા àª\9cà«\82ના àª¨àª¾àª® àªªàª° àª\9c àªªàª¾àª\9bà«\81àª\82 àªµàª¾àª³à«\80 àª¶àª\95શà«\8b, àª\85નà«\87 àª¬à«\80àª\9cà«\81àª\82 àª\95à«\87 àªªàª¹à«\87લà«\87થà«\80 àª¬àª¨à«\87લા àªªàª¾àª¨àª¾àª¨à«\81àª\82 àª¨àª¾àª® àª¤àª®à«\87 àª¨àª¾àª®àª«à«\87ર àª\95રવા àª®àª¾àª\9fà«\87 àª¨àª¾ àªµàª¾àªªàª°à«\80 àª¶àª\95à«\8b.\n\n<strong>àª\9aà«\87તવણà«\80!</strong>\nલà«\8bàª\95પà«\8dરિય àªªàª¾àª¨àª¾àª\82 àª¸àª¾àª¥à«\87 àª\86વà«\81àª\82 àª\95રવà«\81àª\82 àª¬àª¿àª¨àª\85પà«\87àª\95à«\8dષિત àª\85નà«\87 àª\9cà«\8bરદાર àªªàª°àª¿àª£àª¾àª®àª\95ારàª\95 àª¨àª¿àªµàª¡à«\80 àª¶àª\95à«\87 àª\9bà«\87;\nàª\86àª\97ળ àªµàª§àª¤àª¾àª\82 àªªàª¹à«\87લાàª\82 àª\86નà«\80 àª\85સરà«\8bનà«\8b àªªà«\82રà«\87પà«\82રો તાગ મેળવી લેવો આવશ્યક છે.",
+       "movepagetext-noredirectfixer": "નà«\80àª\9aà«\87નà«\81àª\82 àª«à«\8bરà«\8dમ àªµàª¾àªªàª°àªµàª¾àª¥à«\80 àª\86 àªªàª¾àª¨àª¾àª¨à«\81àª\82 àª¨àª¾àª® àª¬àª¦àª²àª¾àª\88 àª\9cશà«\87 àª\85નà«\87 àª¤à«\87માàª\82 àª°àª¹à«\87લà«\80 àª¬àª§à«\80 àª®àª¹àª¿àª¤àª¿ àª¨àªµàª¾ àª¨àª¾àª®à«\87 àª¬àª¨à«\87લાàª\82 àªªàª¾àª¨àª¾àª®àª¾àª\82 àª\96સà«\87ડાàª\88 àª\9cશà«\87.\nàª\9cà«\82નà«\81àª\82 àªªàª¾àª¨à«\81àª\82, àª¨àªµàª¾ àª¬àª¨à«\87લા àªªàª¾àª¨àª¾ àª¤àª°àª« àªµàª¾àª³àªµàª¾àª®àª¾àª\82 àª\86વશà«\87.\nતમà«\87 àª\86વા àª\85નà«\8dયતà«\8dર àªµàª¾àª³à«\87લાàª\82 àªªàª¾àª¨àª¾àª\93નà«\87 àª\86પà«\8bàª\86પ àª\9c àª¤à«\87ના àª®à«\82ળ àª¶à«\80રà«\8dષàª\95 àª¸àª¾àª¥à«\87 àª\9cà«\8bડà«\80 àª¶àª\95શà«\8b.\nàª\9cà«\8b àª¤àª®à«\87 àª¤à«\87મ àª\95રવા àª¨ àª\87àª\9aà«\8dàª\9bતા àª¹à«\8bવ àª¤à«\8b, [[Special:DoubleRedirects|બà«\87વડા]] àª\85થવા [[Special:BrokenRedirects|તà«\8dરà«\81àª\9fàª\95 àª\95ડà«\80 àªµàª¾àª³àª¾]] àª\85નà«\8dયતà«\8dર àªµàª¾àª³à«\87લાàª\82 àªªàª¾àª¨àª¾àª\93નà«\80 àª¯àª¾àª¦à«\80 àª\9aàª\95ાસà«\80નà«\87 àª\96ાતરà«\80 àª\95રà«\80 àª²à«\87શà«\8b.\nàª\95ડà«\80 àª\9cà«\87 àªªàª¾àª¨àª¾ àªªàª° àª²àª\88 àª\9cવà«\80 àª\9cà«\8bàª\88àª\8f àª¤à«\87 àª\9c àªªàª¾àª¨àª¾ àª¸àª¾àª¥à«\87 àª\9cà«\8bડà«\87 àª¤à«\87નà«\80 àª\96ાતરà«\80 àª\95રà«\80 àª²à«\87વà«\80 àª¤à«\87 àª¤àª®àª¾àª°à«\80 àª\9cવાબદારà«\80 àª\9bà«\87.\n\nàª\8f àªµàª¾àª¤àª¨à«\80 àª¨à«\8bàª\82ધ àª²à«\87શà«\8b àª\95à«\87, àª\9cà«\8b àª¤àª®à«\87 àªªàª¸àª\82દ àª\95રà«\87લા àª¨àªµàª¾ àª¨àª¾àª® àªµàª¾àª³à«\81àª\82 àªªàª¾àª¨à«\81àª\82 àª\85સà«\8dતિતà«\8dવમાàª\82 àª¹àª¶à«\87 àª¤à«\8b àª\9cà«\82નà«\81àª\82 àªªàª¾àª¨à«\81àª\82 <strong>નહà«\80 àª\96સà«\87</strong>, àª¸àª¿àªµàª¾àª¯àª\95à«\87 àª¤à«\87 àªªàª¾àª¨à«\81àª\82 àª\96ાલà«\80 àª¹à«\8bય àª\85થવા àª¤à«\87 àªªàª£ àª\85નà«\8dયતà«\8dર àªµàª¾àª³àª¤à«\81àª\82 àªªàª¾àª¨à«\81àª\82 àª¹à«\8bય àª\85નà«\87 àª¤à«\87નà«\8b àª\95à«\8bàª\88 àª\87તિહાસ àª¨àª¾ àª¹à«\8bય.\nàª\86નà«\8b àª\85રà«\8dથ àª\8fમ àª¥àª¾àª¯ àª\9bà«\87 àª\95à«\87 àª\9cà«\8b àª¤àª®à«\87 àª\95à«\8bàª\88 àª¤àª¬àª\95à«\8dàª\95à«\87 àª­à«\82લ àª\95રશà«\8b àª¤à«\8b àª\9cà«\87 àªªàª¾àª¨àª¾àª¨à«\81àª\82 àª¨àª¾àª® àª¬àª¦àª²àªµàª¾àª¨à«\8b àªªà«\8dરયતà«\8dન àª\95રતા àª¹à«\8bવ àª¤à«\87નà«\87 àª¤àª®à«\87 àª«àª°à«\80 àªªàª¾àª\9bા àª\9cà«\82ના àª¨àª¾àª® àªªàª° àª\9c àªªàª¾àª\9bà«\81àª\82 àªµàª¾àª³à«\80 àª¶àª\95શà«\8b, àª\85નà«\87 àª¬à«\80àª\9cà«\81àª\82 àª\95à«\87 àªªàª¹à«\87લà«\87થà«\80 àª¬àª¨à«\87લા àªªàª¾àª¨àª¾àª¨à«\81àª\82 àª¨àª¾àª® àª¤àª®à«\87 àª¨àª¾àª®àª«à«\87ર àª\95રવા àª®àª¾àª\9fà«\87 àª¨àª¾ àªµàª¾àªªàª°à«\80 àª¶àª\95à«\8b.\n\n<strong>àª\9aà«\87તવણà«\80!</strong>\nલà«\8bàª\95પà«\8dરિય àªªàª¾àª¨àª¾àª\82 àª¸àª¾àª¥à«\87 àª\86વà«\81àª\82 àª\95રવà«\81àª\82 àª¬àª¿àª¨àª\85પà«\87àª\95à«\8dષિત àª\85નà«\87 àª\9cà«\8bરદાર àªªàª°àª¿àª£àª¾àª®àª\95ારàª\95 àª¨àª¿àªµàª¡à«\80 àª¶àª\95à«\87 àª\9bà«\87;\nàª\86àª\97ળ àªµàª§àª¤àª¾àª\82 àªªàª¹à«\87લાàª\82 àª\86નà«\80 àª\85સરà«\8bનà«\8b àªªà«\82રà«\87પà«\82રો તાગ મેળવી લેવો આવશ્યક છે.",
        "movepagetalktext": "આની સાથે સાથે તેનું સંલગ્ન ચર્ચાનું પાનું પણ ખસેડવામાં આવશે, '''સિવાયકે:'''\n*નવા નામ વાળું ચર્ચાનું પાનું અસ્તિત્વમાં હોય અને તેમાં લખાણ હોય, અથવા\n*નીચેનાં ખાનામાંથી ખરાની નિશાની તમે દૂર કરી હોય.\n\nઆ સંજોગોમાં, જો તમે ચાહતા હોવ તો તમારે અહિંનું લખાણ જાતે નવા પાના પર ખસેડવું પડશે.",
        "movearticle": "આ પાનાનું નામ બદલો:",
        "moveuserpage-warning": "'''ચેતવણી :''' તમે સભ્યનું પાનું હટાવી રહ્યાં છો.  કૃપયા યાદરાખશો કે માત્ર પાનું જ હટાવીશકાશે અને સભ્ય્ને નૂતન નામ નહીં અપાય.",
+       "movecategorypage-warning": "<strong>ચેતવણી:</strong> તમે શ્રેણીનું પાનું ખસેડવા જઈ રહ્યા છો. એ વાતની નોંધ લેશો કે આમ કરવાથી ફક્ત આ શ્રેણીનું પાનું જ દિશાનિર્દેશિત થશે (ખસેડવામાં આવશે), આ શ્રેણીમા રહેલા કોઈપણ પાના આપોઆપ જૂની શ્રેણીને બદલે નવી શ્રેણીમાં <em>નહિ બદલાય</em>.",
        "movenologintext": "કોઇ પાનું હટાવવા માટે તેમે નોંધણી કૃત સભ્ય અને [[Special:UserLogin|logged in]]  હોવા જોઇએ",
        "movenotallowed": "તમને પાનાં ખસેડવાની પરવાનગી નથી.",
        "movenotallowedfile": "તમને ફાઈલ ખસેડવાની પરવાનગી નથી.",
        "thumbnail_gd-library": "અપૂર્ણ GD પુસ્તકાલય ગોઠવણા: કાર્યસૂત્ર $1 ગાયબ",
        "thumbnail_image-missing": "આ ફાઇલ ગુમશુદા : $1",
        "import": "પાના આયાત કરો",
-       "importinterwiki": "àª\9fà«\8dરાàª\82સ àªµàª¿àª\95િ આયાત",
+       "importinterwiki": "બà«\80àª\9cà«\80 àªµàª¿àª\95િમાàª\82થà«\80 આયાત",
        "import-interwiki-text": "આયાત કરવા માટેનાં પાનાનું શીર્ષક અને વિકિ પસંદ કરો.\nફેરફારની તારીખ અને લેખકો વિષેની માહિતી જેમની તેમ રાખવામાં આવશે.\nબધા જ આંતરવિકિ આયાતની નોંધ [[Special:Log/import|import log]]માં રખાય છે.",
+       "import-interwiki-sourcewiki": "સ્રોતવિકિ:",
+       "import-interwiki-sourcepage": "સ્રોત પાનું :",
        "import-interwiki-history": "આ પાનું બધા ફેરફારોના ઇતિહાસ સાથે આયાત કરો",
        "import-interwiki-templates": "બધા ઢાંચા શામિલ કરો",
        "import-interwiki-submit": "આયાત કરો",
        "javascripttest": "જાવા સ્ક્રીપ્ટ પરીક્ષણ",
        "javascripttest-pagetext-noframework": "આ પાનું જાવા સ્ક્રીપ્ટ ચલાવવા આરક્ષિત છે.",
        "javascripttest-pagetext-unknownframework": "અજાણ ચકાસણી ફ્રેમવર્ક \"$1\".",
+       "javascripttest-pagetext-unknownaction": "\"$1\" અજ્ઞાત ક્રિયા.",
        "javascripttest-pagetext-frameworks": "નીચેનામાંથી કોઈ એક ચકાસણી ફ્રેમવર્ક પસંદ કરો : $1",
        "javascripttest-pagetext-skins": "ચકાસણી કરવા માટેની સ્કીન પસંદ કરો",
        "javascripttest-qunit-intro": "mediawiki.org પર  [$1 testing documentation] તપાસ માહિતી જુઓ",
        "tooltip-pt-createaccount": "તમને ખાતું બનાવીને પ્રવેશ કરવા માટે આમંત્રણ છે; તેમ કરવું જોકે, આવશ્યક નથી",
        "tooltip-ca-talk": "અનુક્રમણિકાનાં પાના વિષે ચર્ચા",
        "tooltip-ca-edit": "આપ આ પાનામાં ફેરફાર કરી શકો છો, કાર્ય સુરક્ષિત કરતાં પહેલાં 'ઝલક' બટન ઉપર ક્લિક કરીને જોઇ લેશો",
-       "tooltip-ca-addsection": "àª\9aરà«\8dàª\9aાનà«\8b àª¨àªµà«\8b àª®à«\81દà«\8dદà«\8b àª\89મà«\87રà«\8b.",
-       "tooltip-ca-viewsource": "àª\86 àªªàª¾àª¨à«\81 àª¸àª\82રàª\95à«\8dષિત àª\9bà«\87, àª¤àª®à«\87 àª¤à«\87નà«\8b àª¸્રોત જોઇ શકો છો",
+       "tooltip-ca-addsection": "નવà«\8b àªµàª¿àª­àª¾àª\97 àª\89મà«\87રà«\8b",
+       "tooltip-ca-viewsource": "àª\86 àªªàª¾àª¨à«\81 àª¸à«\81રàª\95à«\8dષિત àª\9bà«\87.\nતમà«\87 àª¤à«\87નà«\8b àª¸à«\8dત્રોત જોઇ શકો છો",
        "tooltip-ca-history": "આ પાનાનાં અગાઉનાં ફેરફારો",
        "tooltip-ca-protect": "આ પાનું સુરક્ષિત કરો",
        "tooltip-ca-unprotect": "આ પાનું રક્ષણ બદલો",
        "tooltip-ca-watch": "આ પાનું તમારી ધ્યાનસૂચીમાં ઉમેરો",
        "tooltip-ca-unwatch": "આ પાનું તમારી ધ્યાનસૂચીમાંથી કાઢી નાખો",
        "tooltip-search": "{{SITENAME}} શોધો",
-       "tooltip-search-go": "આ ચોક્કસ જોડણી વાળુ પાનુ જો અસ્તિત્વમાં હોય તો તેના પર જાવ",
+       "tooltip-search-go": "આ ચોક્કસ જોડણી વાળુ પાનુ જો અસ્તિત્વમાં હોય તો તેના પર જાવ",
        "tooltip-search-fulltext": "આ લખાણ ધરાવતાં પાનાઓ શોધો",
        "tooltip-p-logo": "મુખપૃષ્ઠની મુલાકાત લો",
        "tooltip-n-mainpage": "મુખપૃષ્ઠ પર જાઓ",
        "tooltip-t-whatlinkshere": "અહીં જોડાતા બધાં વિકિ પાનાઓની યાદી",
        "tooltip-t-recentchangeslinked": "આ પાના પરની કડીઓ વાળા લેખોમાં તાજેતરમાં થયેલા ફેરફારો",
        "tooltip-feed-rss": "આ પાના માટે આર.એસ.એસ. ફીડ",
-       "tooltip-feed-atom": "àª\86 àªªàª¾àª¨àª¾ àª®àª¾àª\9fà«\87 àª\8fàª\9fà«\8bમ àª«à«\80ડ",
+       "tooltip-feed-atom": "આ પાના માટે એટમ ફીડ",
        "tooltip-t-contributions": "આ સભ્યનાં યોગદાનોની યાદી",
        "tooltip-t-emailuser": "આ સભ્યને ઇ-મેલ મોકલો",
+       "tooltip-t-info": "આ પાનાં વિષે વધુ માહિતી",
        "tooltip-t-upload": "ફાઇલ ચડાવો",
        "tooltip-t-specialpages": "બધા ખાસ પાનાંઓની યાદી",
        "tooltip-t-print": "આ પાનાની છાપવા માટેની આવૃત્તિ",
        "spam_blanking": "બધા ફેરફારોમાં  $1 પર કડી હતી, આને હટાવી દેવામાં આવે છે",
        "simpleantispam-label": "સ્પામ-વિરોધી તપાસ.\nઆને '''ના''' ભરશો!",
        "pageinfo-title": " \"$1\" માટે માહિતી",
+       "pageinfo-not-current": "ક્ષમા કરો, જુની આવૃત્તિ માંથી આ સૂચના આપી નથી શકતા.",
        "pageinfo-header-basic": "સામાન્ય માહિતી",
        "pageinfo-header-edits": "ઇતિહાસ સંપાદન",
        "pageinfo-header-restrictions": "પાનાંની સુરક્ષા",
        "pageinfo-contentpage-yes": "હા",
        "pageinfo-protect-cascading-yes": "હા",
        "pageinfo-category-info": "શ્રેણી માહિતી",
+       "pageinfo-category-total": "કુલ સંપાદનોની સંખ્યા",
        "pageinfo-category-pages": "પાનાંઓની સંખ્યા",
        "pageinfo-category-subcats": "ઉપશ્રેણીઓની સંખ્યા",
        "pageinfo-category-files": "ફાઇલ્સની સંખ્યા",
        "exif-bitspersample": "બીટ્સ પ્રતિ ભાગ",
        "exif-compression": "સંકોચન પ્રણાલી",
        "exif-photometricinterpretation": "Pixel સંરચના",
-       "exif-orientation": "દિશામાન",
+       "exif-orientation": "દિશામાન",
        "exif-samplesperpixel": "ભાગની સંખ્યા",
        "exif-planarconfiguration": "માહિતી ગોઠવણ",
        "exif-ycbcrsubsampling": "Y થી C નો સબસેમ્પલીંગ ગુણોત્તર",
        "scarytranscludetoolong": "[URL ઘણો લાંબો છે]",
        "deletedwhileediting": "'''ચેતવણી''': તમે ફેરફાર  કર્યા પછી આ પાનું હટાવી દેવાયું !",
        "confirmrecreate": "સભ્ય [[User:$1|$1]] ([[User talk:$1|talk]]) એતમે ફેરફાર કરો તે પહેલાં આ પાનું હટાવી દીધું તેનું કારણ:\n: ''$2''\nકૃપયા ખાત્રી કરો કે તમે આ પાનું ખરેખર રચવા માંગો છે.",
-       "confirmrecreate-noreason": "વપરાશકર્તા [[User:$1|$1]] ([[User talk:$1|talk]]) એ આ પાનું તમે ફેરફાર શરૂ કર્યા પછી  ખાતરી કરો કે તમે ખરેખર આ પૃષ્ઠ ફરીથી રચવા માંગો કરો.",
+       "confirmrecreate-noreason": "વપરાશકર્તા [[User:$1|$1]] ([[User talk:$1|ચર્ચા]]) એ આ પાનું તમે ફેરફાર શરૂ કર્યા પછી દૂર કર્યું છે. મહેરબાની કરીને ખાતરી કરો કે તમે ખરેખર આ પાનું ફરીથી બનાવવા માંગો છો.",
        "recreate": "પુનર્નિર્માણ કરો",
        "confirm_purge_button": "મંજૂર",
        "confirm-purge-top": "આ પાનાનો સ્મૃતિ ભંડાર ખાલી કરું?",
        "autosumm-replace": "માહિતીને \"$1\" થી બદલી",
        "autoredircomment": "[[$1]] પર દિશાનિર્દેશિત",
        "autosumm-new": "$1થી શરૂ થતું નવું પાનું બનાવ્યું",
+       "autosumm-newblank": "ખાલી પાનું બનાવ્યું",
        "lag-warn-normal": "$1 {{PLURAL:$1|સેકંડ|સેકંડો}} પછી થયેલ  નવા સુધારા કદાચ ન બતાવી શકાય.",
        "lag-warn-high": "માહિતીસંચ સર્વરના લાંબાગાળાને કારણે $1 {{PLURAL:$1|સેકંડ|સેકંડો}} પછી કરેલા ફેરફાર જોઇ શકાશે નહીં",
        "watchlistedit-normal-title": "ધ્યાનસૂચિ માં ફેરફાર કરો",
        "watchlistedit-raw-done": "તમારી ધ્યાના સૂચિ અધ્યતન કરાઈ.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 શીર્ષક |$1 શીર્ષકો}} ઉમેરાયા :",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 શીર્ષક |$1 શીર્ષકો  }} હટાવાયા :",
+       "watchlistedit-clear-title": "ધ્યાનસૂચિ ખાલી કરી",
+       "watchlistedit-clear-legend": "ધ્યાનસૂચિ ખાલી કરો",
        "watchlistedit-clear-titles": "શીર્ષકો:",
+       "watchlistedit-clear-done": "તમારી ધ્યાના સૂચિ ખાલી કરાઈ.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|1 લેખ નીકાળ્યો|$1 લેખો નીકાળ્યા}} :",
+       "watchlistedit-too-many": "અહીં ઘણાં બધા પાનાં બતાવવા માટે ઉપલબ્ધ છે.",
+       "watchlisttools-clear": "ધ્યાનસૂચિ ખાલી કરો",
        "watchlisttools-view": "બંધબેસતાં ફેરફારો નિહાળો",
        "watchlisttools-edit": "ધ્યાનસૂચી જુઓ અને બદલો",
        "watchlisttools-raw": "કાચી ધ્યાનસૂચિમાં ફેરફાર કરો",
-       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|talk]])",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|ચર્ચા]])",
        "duplicate-defaultsort": "'''ચેતવણી:'''  કી \"$2\" આગળનામૂળે પ્રસ્થાપિત ક્રમિકાવર્ગીકરણ કી \"$1\"નું સ્થાન લઈ લેશે..",
        "version": "આવૃત્તિ",
        "version-extensions": "પ્રસ્થાપિત વિસ્તારકો",
        "version-software-version": "આવૃત્તિ",
        "version-entrypoints-header-entrypoint": "પ્રવેશ સ્થળ",
        "version-entrypoints-header-url": "URL",
+       "version-libraries-library": "લાઇબ્રેરી",
+       "version-libraries-version": "આવૃત્તિ",
        "redirect-legend": "ફાઇલ અથવા પાનાં તરફ વાળો",
        "redirect-submit": "જાઓ",
        "redirect-lookup": "જુઓ:",
        "redirect-value": "કિંમત:",
        "redirect-user": "સભ્ય નામ",
+       "redirect-page": "પાનાં ઓળખ",
        "redirect-revision": "પાનાંની આવૃત્તિ",
        "redirect-file": "ફાઇલ નામ",
        "redirect-not-exists": "કિંમત મળી નહી",
        "intentionallyblankpage": "આપાનું જાણે કરીને કોરું રખાયું છે",
        "external_image_whitelist": " #આ લીટી જેમ છે તેમ જ રહેવા દો. <pre>\n#પ્રાયઃ મુકાતા ખંડન કરનારા ચિન્હો મુકો (જેમ કે // વચ્ચે મુકાતા ભાગ) \n#આને બહારથી આવતી ચિત્રોના URLs સાથે સરાખાવાશે \n#જે મેળ ખાશે તેને ચિત્ર તરીકે બતાવાશે , અન્યથા માત્ર તે ચિત્ર પર દોરી જતી કડી બતાવાશે\n#લીટીઓ કે જે  # થી શરૂ થશે તેને નોંધ માનવામાં આવશે.\n#આ બધી અક્ષર અને માત્રાઅ સંવેદન હશે. \n\n#દરેક regex ટુકડાઓ આ લીટીની ઉપર મુકો. અને આ લીટીને જેમ છે તેમ મુકો </pre>",
        "tags": "વૈધ ફેરફાર પાના",
-       "tag-filter": "[[Special:Tags|ટૅગ]] ચાળણી",
+       "tag-filter": "[[Special:Tags|ટૅગ]] ચાળણી:",
        "tag-filter-submit": "ચાળણી",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|ટેગ|ટેગ્સ}}]]: $2)",
        "tags-title": "ટૅગ્સ",
        "tags-tag": "ટૅગનું નામ",
        "tags-display-header": "ફેરફારની યાદિઓમાં દેખાવ",
        "tags-description-header": "અર્થનું પૂર્ણ વિવરણ",
+       "tags-source-header": "સ્રોત",
        "tags-active-header": "સક્રિય?",
        "tags-hitcount-header": "અંકિત ફેરફારો",
+       "tags-actions-header": "ક્રિયાઓ",
        "tags-active-yes": "હા",
        "tags-active-no": "ના",
        "tags-edit": "ફેરફાર કરો",
+       "tags-delete": "હટાવો",
+       "tags-activate": "સક્રિય",
+       "tags-deactivate": "અસક્રિય",
        "tags-hitcount": "$1 {{PLURAL:$1|ફેરફાર|ફેરફારો}}",
+       "tags-create-tag-name": "ટૅગનું નામ",
+       "tags-create-reason": "કારણ:",
+       "tags-create-submit": "બનાવો",
+       "tags-delete-title": "ટૅગ હટાવો",
+       "tags-delete-reason": "કારણ:",
+       "tags-activate-reason": "કારણ:",
+       "tags-activate-submit": "સક્રિય",
+       "tags-deactivate-reason": "કારણ:",
+       "tags-deactivate-submit": "અસક્રિય",
+       "tags-edit-reason": "કારણ:",
        "comparepages": "પાનાં સરખાવો",
        "compare-page1": "પાનું ૧",
        "compare-page2": "પાનું ૨",
        "compare-revision-not-exists": "આ આવૃત્તિ અસ્તિત્વમાં નથી.",
        "dberr-problems": "માફ કરશો! આ સાઇટ તકનિકી અડચણો અનુભવી રહી છે.",
        "dberr-again": "થોડી વાર રાહ જોઈને ફરી પેજ લોડ કરવાનો પ્રયત્ન કરો.",
-       "dberr-info": "(માહિતà«\80 àª¸àª\82àª\9aય àª¸àª°à«\8dવર : $1નà«\8b àª¸àª\82પરà«\8dàª\95 àª¨àª¥à«\80 àª\95રà«\80 àª¶àª\95ાયà«\8b)",
-       "dberr-info-hidden": "(ડેટાબેઝ સર્વર સાથે જોડાણ થઇ શકતું નથી)",
+       "dberr-info": "(ડà«\87àª\9fાબà«\87àª\9dનà«\8b àª¸àª\82પરà«\8dàª\95 àª\95રà«\80 àª¶àª\95ાયà«\8b àª¨àª¹à«\80: $1)",
+       "dberr-info-hidden": "(ડેટાબેઝનો સંપર્ક કરી શકાયો નહી)",
        "dberr-usegoogle": "તેસમયા દરમ્યાન તમે ગુગલ દ્વારા શોધી શકો",
        "dberr-outofdate": "આપણી માહિતી સંબંધી તેમની સૂચિ કાલાતિત હોઇ શકે.",
        "dberr-cachederror": "વિનંતિ કરેલ પાનાની આ એક સંગ્રહીત પ્રત માત્ર છે અને તે અધ્યતન ન પણ હોય.",
        "feedback-adding": "પ્રતિભાવ આ પાના પર ઉમેરાઈ રહ્યો છે.",
        "feedback-bugcheck": "સરસ! જરા જોઈ લેશો કે આ  પહેલેથી જ હાજર [$1 known bugs] નથીને?",
        "feedback-bugnew": "મેં તપાસ્યું.  નવી ત્રુટીની જાણ કરો.",
-       "feedback-bugornote": "જો તમે તકનીકી સમસ્યા વર્ણવવા માંગતા હોય તો  કૃપયા [$1 report a bug] એ બગ અહીં નોંધાવો.\nઅન્યથા, તમે નીચે આપેલ સરળ ફોર્મ વાપરી શકો છો. તમારા સભ્ય નામ અને કયું બ્રાઉઝર વાપરો છો તેની માહિતી સાથે, તમારી ટિપ્પણીનો \"[$3 $2]\" પાનામાં સમાવેશ કરાશે.",
+       "feedback-bugornote": "જો તમે તકનીકી સમસ્યા વર્ણવવા માંગતા હોય તો કૃપયા [$1 સમસ્યા અહીં નોંધાવો].\nઅથવા, તમે નીચે આપેલ સરળ ફોર્મ વાપરી શકો છો. તમારા સભ્ય નામ અને કયું બ્રાઉઝર વાપરો છો તેની માહિતી સાથે, તમારી ટિપ્પણીનો \"[$3 $2]\" પાનામાં સમાવેશ કરાશે.",
        "feedback-cancel": "રદ કરો",
        "feedback-close": "સંપન્ન",
        "feedback-error1": "ક્ષતિ:API તરફથી અજાણ પરિણામ",
        "feedback-subject": "વિષય:",
        "feedback-submit": "જમા કરો",
        "feedback-thanks": "આભર! તમારા પ્રતિભાવને \"[$2 $1]\" પાના પર મુકાયા છે.",
+       "feedback-thanks-title": "આભાર !",
        "searchsuggest-search": "શોધો",
        "searchsuggest-containing": "ધરાવતી...",
        "api-error-badaccess-groups": "આ વિકિ પર ફાઈલ ચઢાવવાની પરવાનગી તમને નથી.",
        "expand_templates_ok": "મંજૂર",
        "expand_templates_remove_comments": "ટીપ્પણીઓ દૂર કરો",
        "expand_templates_preview": "પૂર્વાવલોકન",
+       "pagelanguage": "પાનાની ભાષાનો ચયનકર્તા",
        "pagelang-name": "પાનું",
        "pagelang-language": "ભાષા",
+       "pagelang-use-default": "(મૂળભુત ભાષા)",
        "pagelang-select-lang": "ભાષા પસંદ કરો",
+       "right-pagelang": "પાનાની ભાષા બદલો",
+       "action-pagelang": "પાનાની ભાષા બદલો",
+       "log-name-pagelang": "ભાષા બદલો",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (સક્રિય)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''નિષ્ક્રિય''')",
+       "mediastatistics-table-mimetype": "MIME પ્રકાર",
+       "mediastatistics-table-count": "ફાઇલ્સની સંખ્યા",
+       "mediastatistics-header-unknown": "અજ્ઞાત",
+       "mediastatistics-header-bitmap": "Bitmap ચિત્રો",
+       "mediastatistics-header-audio": "ધ્વનિ",
+       "mediastatistics-header-video": "ચલચિત્રો",
+       "mediastatistics-header-office": "કાર્યાલય",
+       "mediastatistics-header-text": "પાઠાત્મક",
+       "json-error-syntax": "સૂત્રલેખન ત્રુટિ",
+       "headline-anchor-title": "આ વિભાગ સાથે જોડો",
        "special-characters-group-latin": "લેટિન",
        "special-characters-group-latinextended": "લેટિન વિસ્તૃત",
        "special-characters-group-ipa": "IPA",
index 4ae303d..9989fc2 100644 (file)
        "no-null-revision": "לא ניתן היה ליצור גרסת־דמה בדף \"$1\"",
        "badtitle": "כותרת שגויה",
        "badtitletext": "כותרת הדף המבוקש הייתה בלתי־תקינה, ריקה, או קישור שגוי לשפה אחרת או למיזם אחר.\nייתכן שהיא מכילה תו אחד או יותר שאינו יכול לשמש בכותרות.",
-       "title-invalid-empty": "×\9b×\95תרת ×\94×\93×£ ×\94×\9e×\91×\95קש ×¨×\99ק×\94 ×\90×\95 ×\9e×\9b×\99×\9c×\94 ×¨×§ ×©×\9d ×©×\9c ×\9eר×\97×\91 ×©×\9e×\95ת.",
+       "title-invalid-empty": "×\9b×\95תרת ×\94×\93×£ ×\94×\9e×\91×\95קש ×¨×\99ק×\94 ×\90×\95 ×\9e×\9b×\99×\9c×\94 ×¨×§ ×©×\9d ×©×\9c ×\9eר×\97×\91 ×©×\9d.",
        "title-invalid-utf8": "כותרת הדף המבוקש מכילה רצף UTF-8 בלתי־תקין.",
-       "title-invalid-interwiki": "×\94×\9b×\95תרת ×\9e×\9b×\99×\9c×\94 ×§×\99ש×\95ר ×\91×\99× ×\95×\95×\99ק×\99",
-       "title-invalid-talk-namespace": "×\94×\9b×\95תרת ×\94×\93×£ ×\94×\9e×\91×\95קש ×\9eפנ×\94 ×\9c×\93×£ ×©×\99×\97×\94 ×©×\90×\99× ×\95 ×\99×\9b×\95×\9c ×\9c×\94תק×\99×\99×\9d.",
+       "title-invalid-interwiki": "×\9b×\95תרת ×\94×\93×£ ×\94×\9e×\91×\95קש ×\9e×\9b×\99×\9c×\94 ×§×\99ש×\95ר ×\91×\99× ×\95×\95×\99ק×\99, ×©×\9c×\90 × ×\99ת×\9f ×\9c×\94שת×\9eש ×\91×\95 ×\91×\9b×\95תר×\95ת.",
+       "title-invalid-talk-namespace": "כותרת הדף המבוקש מפנה לדף שיחה שאינו יכול להתקיים.",
        "title-invalid-characters": "כותרת הדף המבוקש מכילה תווים בלתי־תקינים: \"$1\".",
-       "title-invalid-relative": "×\91×\9b×\95תרת ×\99ש × ×ª×\99×\91 ×\99×\97ס×\99. ×\9b×\95תרת ×\93פ×\99×\9d ×\99×\97ס×\99×\95ת (./, ../) ×\90×\99× ×\9f ×ª×§×\99× ×\95ת, ×\9e×\9b×\99×\95×\95×\9f ×©×\9cעת×\99×\9d ×§×¨×\95×\91×\95ת ×\94×\9d ×\9c×\90 ×\99×\94×\99×\95 ×\91× ×\99Ö¾×\94ש×\92×\94 ×\9bש×\99×\98×\95פ×\9c×\95 על־ידי הדפדפן של המשתמש.",
-       "title-invalid-magic-tilde": "×\9b×\95תרת ×\94×\93×£ ×\94×\9e×\91×\95קש ×\9e×\9b×\99×\9c×\94 ×¨×¦×£ ×\98×\99×\9c×\93×\95ת ×§×¡×\95×\9d (<nowiki>~~~</nowiki>).",
-       "title-invalid-too-long": "×\9b×\95תרת ×\94×\93×£ ×\94×\9e×\91×\95קש ×\90ר×\95×\9b×\94 ×\9e×\93×\99. ×\94×\99×\90 ×¦×¨×\99×\9b×\94 ×\9c×\94×\99×\95ת ×\9c×\90 ×\99×\95תר ×\90ר×\95×\9b×\94 ×\9eÖ¾$1 ×\91ת×\99×\9d בקידוד UTF-8.",
-       "title-invalid-leading-colon": "×\9b×\95תרת ×\94×\93×£ ×\94×\9e×\91×\95קש ×\9e×\9b×\99×\9c×\94 ×ª×\95 × ×§×\95×\93ת×\99×\99×\9d ×\91×\9cת×\99־תק×\99×\9f ×\91×\94ת×\97×\9cה.",
+       "title-invalid-relative": "×\91×\9b×\95תרת ×\99ש × ×ª×\99×\91 ×\99×\97ס×\99. ×\9b×\95תרת ×\93פ×\99×\9d ×\99×\97ס×\99×\95ת (./, ../) ×\90×\99× ×\9f ×ª×§×\99× ×\95ת, ×\9b×\99×\95×\95×\9f ×©×\9cעת×\99×\9d ×§×¨×\95×\91×\95ת ×\94×\9f ×\9c×\90 ×\99×\94×\99×\95 ×\91× ×\95ת־×\94ש×\92×\94 ×\9bשת×\98×\95פ×\9c× ×\94 על־ידי הדפדפן של המשתמש.",
+       "title-invalid-magic-tilde": "×\9b×\95תרת ×\94×\93×£ ×\94×\9e×\91×\95קש ×\9e×\9b×\99×\9c×\94 ×¨×¦×£ ×\98×\99×\9c×\93×\95ת ×\9e×\99×\95×\97×\93 (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "×\9b×\95תרת ×\94×\93×£ ×\94×\9e×\91×\95קש ×\90ר×\95×\9b×\94 ×\9e×\93×\99. ×\94×\99×\90 ×¦×¨×\99×\9b×\94 ×\9c×\94×\99×\95ת ×\9c×\9b×\9c ×\94×\99×\95תר ×\91×\90×\95ר×\9a {{PLURAL:$1|×\91×\99ת ×\90×\97×\93|$1 ×\91ת×\99×\9d}} בקידוד UTF-8.",
+       "title-invalid-leading-colon": "×\9b×\95תרת ×\94×\93×£ ×\94×\9e×\91×\95קש ×\9e×\9b×\99×\9c×\94 ×ª×\95 × ×§×\95×\93ת×\99×\99×\9d ×\91×\9cת×\99־תק×\99×\9f ×\91ת×\97×\99×\9cתה.",
        "perfcached": "המידע הבא הוא עותק שמור בזיכרון המטמון של המידע, ועשוי שלא להיות מעודכן. לכל היותר {{PLURAL:$1|תוצאה אחת נשמרת|$1 תוצאות נשמרות}} בזיכרון המטמון.",
        "perfcachedts": "המידע הבא הוא עותק שמור בזיכרון המטמון של המידע, שעודכן לאחרונה ב־$1. לכל היותר {{PLURAL:$4|תוצאה אחת נשמרת|$4 תוצאות נשמרות}} בזיכרון המטמון.",
        "querypage-no-updates": "העדכונים לדף זה כרגע מופסקים, והמידע לא יעודכן באופן שוטף.",
        "content-model-css": "CSS",
        "content-json-empty-object": "אוביקט ריק",
        "content-json-empty-array": "מערך ריק",
+       "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>.",
        "expensive-parserfunction-warning": "'''אזהרה:''' דף זה כולל יותר מדי קריאות לפונקציות מפענח שגוזלות משאבים.\n\nנדרש {{PLURAL:$2|שתהיה בו לכל היותר קריאה אחת|שתהיינה בו לכל היותר $2 קריאות}} לפונקציות כאלה, אך כרגע יש בו {{PLURAL:$1|קריאה אחת|$1 קריאות}}.",
        "userrights-lookup-user": "ניהול קבוצות משתמש",
        "userrights-user-editname": "שם משתמש:",
        "editusergroup": "עריכת קבוצות משתמשים",
-       "editinguser": "ש×\99× ×\95×\99 ×\94רש×\90×\95ת ×\94×\9eשת×\9eש ×©×\9c '''[[User:$1|$1]]''' $2",
+       "editinguser": "ש×\99× ×\95×\99 ×\94×\94רש×\90×\95ת ×©×\9c {{GENDER:$1|×\94×\9eשת×\9eש|×\94×\9eשת×\9eשת}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "עריכת קבוצות משתמש",
        "saveusergroups": "שמירת קבוצות משתמש",
        "userrights-groupsmember": "{{GENDER:$2|חבר|חברה}} ב{{PLURAL:$1|קבוצה|קבוצות}}:",
        "uploaddisabledtext": "אפשרות העלאת הקבצים מבוטלת.",
        "php-uploaddisabledtext": "אפשרות העלאת הקבצים מבוטלת ברמת PHP. אנא בדקו את ההגדרה file_uploads.",
        "uploadscripted": "הקובץ כולל קוד סקריפט או HTML שעשוי להתפרש או להתבצע בטעות על־ידי הדפדפן.",
+       "upload-scripted-pi-callback": "לא ניתן להעלות קובץ שמכיל את הוראת העיבוד xml-stylesheet.",
+       "uploaded-script-svg": "נמצא אלמנט שאפשר לכתוב בו תסריט \"$1\" בקובץ ה־SVG שהועלה.",
+       "uploaded-hostile-svg": "נמצא CSS בלתי־מאובטח באלמנט style בקובץ ה־SVG שהועלה.",
+       "uploaded-event-handler-on-svg": "אסור להגדיר מאפייני טיפול באירועים <code dir=\"ltr\">$1=\"$2\"</code> בקובצי SVG.",
+       "uploaded-href-attribute-svg": "מאפייני href בצורת <code dir=\"ltr\">&lt;$1 $2=\"$3\"&gt;</code> עם יעד בלתי־מקומי (למשל http://‎‏, javascript:‎, וכו') אסורים בקובצי SVG.",
+       "uploaded-href-unsafe-target-svg": "נמצא href ליעד בלתי־מאובטח <code dir=\"ltr\">&lt;$1 $2=\"$3\"&gt;</code> בקובץ ה־SVG שהועלה.",
+       "uploaded-animate-svg": "נמצא תג \"animate\" שיכול לשנות href באמצעות מאפיין \"from\"  בצורת <code dir=\"ltr\">&lt;$1 $2=\"$3\"&gt;</code> בקובץ ה־SVG שהועלה.",
+       "uploaded-setting-event-handler-svg": "הגדרת מאפייני טיפול באירועים חסומה, נמצא <code dir=\"ltr\">&lt;$1 $2=\"$3\"&gt;</code> בקובץ ה־SVG שהועלה.",
+       "uploaded-setting-href-svg": "השימוש בתג set כדי להוסיף מאפיין href לאלמנט הורה חסום.",
+       "uploaded-wrong-setting-svg": "השימוש בתג \"set\" כדי להוסיף יעד remote/data/script לכל מאפיין חסום. נמצא <code dir=\"ltr\">&lt;set to=\"$1\"&gt;</code> בקובץ ה־SVG שהועלה.",
+       "uploaded-setting-handler-svg": "SVG שמגדיר את המאפיין \"handler\" עם remote/data/script חסום. נמצא <code dir=\"ltr\">$1=\"$2\"</code> בקובץ ה־SVG שהועלה.",
+       "uploaded-remote-url-svg": "SVG שמגדיר כל מאפיין style עם URL מרוחק חסום. נמצא <code dir=\"ltr\">$1=\"$2\"</code> בקובץ ה־SVG שהועלה.",
+       "uploaded-image-filter-svg": "נמצא מסנן תמונה עם URL‏: <code dir=\"ltr\">&lt;$1 $2=\"$3\"&gt;</code> בקובץ ה־SVG שהועלה.",
        "uploadscriptednamespace": "קובץ ה‏‏֫־SVG הזה כולל מרחב שם בלתי חוקי: '$1'",
        "uploadinvalidxml": "לא ניתן לפרש את ה־XML בקובץ שהועלה.",
        "uploadvirus": "הקובץ מכיל וירוס!\nפרטים:\n<div dir=\"ltr\">$1</div>",
        "unusedimages": "קבצים שאינם בשימוש",
        "wantedcategories": "קטגוריות מבוקשות",
        "wantedpages": "דפים מבוקשים",
-       "wantedpages-summary": "רשימת דפים לא קיימים שמספר הקישורים אליהם הוא הגדול ביותר, למעט דפים שרק הפניות מקשרות אליהם. לרשימת דפים לא קיימים שיש הפניות המקשרות אליהם, ר' [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "רשימת דפים לא קיימים שמספר הקישורים אליהם הוא הגדול ביותר, למעט דפים שרק הפניות מקשרות אליהם. לרשימת דפים לא קיימים שיש הפניות המקשרות אליהם, ר' [[{{#special:BrokenRedirects}}|רשימת ההפניות הבלתי־תקינות]].",
        "wantedpages-badtitle": "כותרת בלתי תקינה ברשימת התוצאות: $1",
        "wantedfiles": "קבצים מבוקשים",
        "wantedfiletext-cat": "הקבצים הבאים נמצאים בשימוש, אך אינם קיימים. ייתכן שקבצים ממאגרים חיצוניים יהיו רשומים אף על פי שהם קיימים, אך שגיאות כאלה יהיו <del>מחוקות</del>. בנוסף, דפים שמשתמשים בקבצים שאינם קיימים רשומים בדף [[:$1]].",
        "log-name-pagelang": "יומן שינוי שפה",
        "log-description-pagelang": "זהו יומן של שינויים בשפות של הדפים.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|שינה|שינתה}} את שפת הדף $3 מ$4 ל$5.",
-       "default-skin-not-found": "אופס! עיצוב ברירת המחדל עבור אתר הוויקי שלכם, שמוגדר ב־<code dir=\"ltr\">$wgDefaultSkin</code> כ־<code>$1</code>, אינו זמין.\n\nנראה שההתקנה שלכם כוללת את {{PLURAL:$4|העיצוב|העיצובים}} הבאים. ראו מידע בדף [https://www.mediawiki.org/wiki/Manual:Skin_configuration \"הגדרת עיצובים\" במדריך] על האפשרות להפעיל {{PLURAL:$4|אותו|אותם ולבחור את עיצוב ברירת המחדל}}.\n\n$2\n\n; אם כרגע התקנתם את מדיה־ויקי:\n: נראה שזו התקנה מ־git, או ישירות מקוד המקור בשיטה אחרת כלשהי. במקרה הזה, בעיה זו צפויה. נסו להתקין כמה עיצובים מ[https://www.mediawiki.org/wiki/Category:All_skins ספריית העיצובים של mediawiki.org], על־ידי:\n:* הורדת [https://www.mediawiki.org/wiki/Download קובץ ה־tar להתקנה], שכולל מספר עיצובים והרחבות. באפשרותכם להעתיק ולהדביק מתוכו את תיקיית ה‏‏־<code>skins/</code>.\n:* הורדת קבצי tar של עיצובים ספציפיים מ־[https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* שכפול (clone) אחד מהמאגרים ב־<code dir=\"ltr\">mediawiki/skins/*</code> בעזרת git לתוך תיקיית ה־<code dir=\"ltr\">skins/</code> בהתקנת מדיה־ויקי שלכם.\n: אם תעשו זאת, זה לא אמור להפריע ל‏‏מאגר ה־git שלכם אם אתם מפתחים של מדיה־ויקי.\n\n; אם כרגע שדרגתם את מדיה־ויקי:\n: מדיה־ויקי 1.24 וגרסאות חדשות יותר כבר לא מפעילות עיצובים מותקנים באופן אוטומטי (ראו [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery \"גילוי אוטומטי של עיצובים\" במדריך]). תוכלו להעתיק את {{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 וגרסאות חדשות יותר אינן כוללות עיצובים ב־git repository הראשי. נסו להתקין כמה עיצובים מ[https://www.mediawiki.org/wiki/Category:All_skins ספריית העיצובים של mediawiki.org], על־ידי:\n:* הורדת [https://www.mediawiki.org/wiki/Download קובץ ה‏‏־tar להתקנה], שכולל מספר עיצובים והרחבות. באפשרותכם להעתיק ולהדביק מתוכו את תיקיית ה‏‏־<code>skins/</code>.\n:* הורדת קבצי tar של עיצובים ספציפיים מ־[https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* שכפול (clone) אחד ממאגרים ב־<code>mediawiki/skins/*</code> בעזרת git לתוך תיקיית ה־<code dir=\"ltr\">skins/</code> בהתקנת מדיה־ויקי שלכם.\n: אם תעשו זאת, זה לא אמור להפריע ל‏‏מאגר ה־git שלכם (אם אתם מפתחים של מדיה־ויקי). ראו מידע בדף [https://www.mediawiki.org/wiki/Manual:Skin_configuration \"הגדרת עיצובים\" במדריך] על האפשרות להפעיל עיצובים ולבחור את עיצוב ברירת המחדל.",
+       "default-skin-not-found": "אופס! עיצוב ברירת המחדל עבור אתר הוויקי שלכם, שמוגדר ב־<code dir=\"ltr\">$wgDefaultSkin</code> כ־<code>$1</code>, אינו זמין.\n\nנראה שההתקנה שלכם כוללת את {{PLURAL:$4|העיצוב|העיצובים}} הבאים. ראו מידע בדף [https://www.mediawiki.org/wiki/Manual:Skin_configuration \"הגדרת עיצובים\" במדריך] על האפשרות להפעיל {{PLURAL:$4|אותו|אותם ולבחור את עיצוב ברירת המחדל}}.\n\n$2\n\n; אם כרגע התקנתם את מדיה־ויקי:\n: נראה שזו התקנה מ־git, או ישירות מקוד המקור בשיטה אחרת כלשהי. במקרה הזה, בעיה זו צפויה. נסו להתקין כמה עיצובים מ[https://www.mediawiki.org/wiki/Category:All_skins ספריית העיצובים של mediawiki.org], על־ידי:\n:* הורדת [https://www.mediawiki.org/wiki/Download קובץ ה־tar להתקנה], שכולל מספר עיצובים והרחבות. באפשרותכם להעתיק ולהדביק מתוכו את תיקיית ה‏‏־<code>skins/</code>.\n:* הורדת קבצי tar של עיצובים ספציפיים מ־[https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins שימוש ב־Git כדי להוריד עיצובים].\n: אם תעשו זאת, זה לא אמור להפריע ל‏‏מאגר ה־git שלכם אם אתם מפתחים של מדיה־ויקי.\n\n; אם כרגע שדרגתם את מדיה־ויקי:\n: מדיה־ויקי 1.24 וגרסאות חדשות יותר כבר לא מפעילות עיצובים מותקנים באופן אוטומטי (ראו [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery \"גילוי אוטומטי של עיצובים\" במדריך]). תוכלו להעתיק את {{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 וגרסאות חדשות יותר אינן כוללות עיצובים ב־git repository הראשי. נסו להתקין כמה עיצובים מ[https://www.mediawiki.org/wiki/Category:All_skins ספריית העיצובים של mediawiki.org], על־ידי:\n:* הורדת [https://www.mediawiki.org/wiki/Download קובץ ה‏‏־tar להתקנה], שכולל מספר עיצובים והרחבות. באפשרותכם להעתיק ולהדביק מתוכו את תיקיית ה‏‏־<code>skins/</code>.\n:* הורדת קבצי tar של עיצובים ספציפיים מ־[https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins שימוש ב־Git כדי להוריד עיצובים].\n: אם תעשו זאת, זה לא אמור להפריע ל‏‏מאגר ה־git שלכם (אם אתם מפתחים של מדיה־ויקי). ראו מידע בדף [https://www.mediawiki.org/wiki/Manual:Skin_configuration \"הגדרת עיצובים\" במדריך] על האפשרות להפעיל עיצובים ולבחור את עיצוב ברירת המחדל.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (מופעל)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''מבוטל''')",
        "mediastatistics": "סטטיסטיקות קבצים",
index 48f709b..630adae 100644 (file)
@@ -61,7 +61,8 @@
                        "Steinsplitter",
                        "Macofe",
                        "Ankita-ks",
-                       "Sahilrathod"
+                       "Sahilrathod",
+                       "Hindustanilanguage"
                ]
        },
        "tog-underline": "कड़ियाँ अधोरेखन:",
        "no-null-revision": "\"$1\" पृष्ठ के लिए बिना बदलावों का नया अवतरण बनाने में असफल।",
        "badtitle": "खराब शीर्षक",
        "badtitletext": "आपके द्वारा अनुरोधित शीर्षक अयोग्य, ख़ाली या गलत जुड़ा हुआ अंतर-भाषीय या अंतर-विकि शीर्षक है।\nइसमें एक या एक से अधिक ऐसे कॅरेक्टर हो सकते हैं जो शीर्षक में प्रयोग नहीं किये जा सकते।",
+       "title-invalid-empty": "निवेदित पृष्ठ का शीर्षक खाली है या केवल नामस्थान रखता है।",
+       "title-invalid-utf8": "निवेदित पृष्ठ का शीर्षक अवैध यू०टी०एफ़-८ का सिलसिला रखता है।",
+       "title-invalid-interwiki": "निवेदित पृष्ठ का शीर्षक एक अंतर-विकी कड़ी रखता है जिसे शीर्षक में प्रयोग नहीं किया जा सकता है।",
+       "title-invalid-talk-namespace": "निवेदित पृष्ठ का शीर्षक एक वार्ता पृष्ठ से सन्दर्भित है जो मौजूद नहीं है।",
+       "title-invalid-characters": "निवेदित पृष्ठ का शीर्षक अवैध कैरेक्टर: \"$1\" रखता है।",
+       "title-invalid-relative": "शीर्षक एक सन्दर्भित मार्ग रखता है। सन्दर्भित पृष्ठ के शीर्षक (./, ../)अवैध हैं, क्योंकि वे अधिकांश रूप पहुँच से बाहर हैं जब उन्हें उपयोगकर्ता के ब्रौज़र से प्रयोग में लाने का प्रयास किया जाता है।",
+       "title-invalid-magic-tilde": "निवेदित पृष्ठ का शीर्षक अवैध जादूई टिल्ड सिलसिला रखता है।",
+       "title-invalid-too-long": "माँग किए गए पृष्ठ का शीर्षक बहुत लम्बा है। इसे यू०टी०एफ़० कोडिंग मे $1 {{PLURAL:$1|बाइट|बाइट्स}} से बढ़कर नहीं होना चाहिए और इसे यू०टी०एफ़०-८ एनकोडिंग में होना चाहिए।",
+       "title-invalid-leading-colon": "निवेदित पृष्ठ का शीर्षक प्रारंभ में अवैध कोलन रखता है।",
        "perfcached": "नीचे दिया हुआ डेटा कैशे मेमोरी से लिया हुआ है, अतः हो सकता है कि इसका पूर्ण अद्यतन न हुआ हो। कैशे मेमोरी में अधिकतम {{PLURAL:$1|एक  नतीजा|$1 नतीजे}} उपलब्ध हैं।",
        "perfcachedts": "नीचे दिया हुआ डेटा कैशे मेमोरी से है, और इसका अंतिम अद्यतन $1 को हुआ था। कैशे मेमोरी में अधिकतम {{PLURAL:$4|एक  नतीजा|$4 नतीजे}} उपलब्ध हैं।",
        "querypage-no-updates": "इस पृष्ठ का नवीनीकरण करना मना है। अभी यहाँ के डाटा को ताज़ा नहीं कर सकते।",
        "content-model-css": "सी॰एस॰एस",
        "content-json-empty-object": "रिक्त ऑब्जेक्ट",
        "content-json-empty-array": "रिक्त ऐरे",
+       "duplicate-args-warning": "<strong>चेतावनी:</strong> [[:$1]] प्राचल \"$3\" के लिए [[:$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>.",
        "expensive-parserfunction-warning": "'''चेतावनी:''' इस पृष्ठ पर बहुत अधिक संख्या में कीमती पार्सर फ़ंक्शनों का प्रयोग किया गया है।\n\nइनका प्रयोग $2 से कम बार होना चाहिये, इस समय प्रयोग $1 बार {{PLURAL:$1|है|हैं}}।",
        "history-feed-description": "विकि पर उपलब्ध इस पृष्ठ का अवतरण इतिहास",
        "history-feed-item-nocomment": "$1 $3 को $4 बजे",
        "history-feed-empty": "अनुरोधित पृष्ठ अस्तित्व में नहीं है।\nयह पृष्ठ या तो हटाया गया है या फिर इसका नाम बदल दिया गया है।\n[[Special:Search|विकि पर खोज]] का प्रयोग करें।",
+       "history-edit-tags": "चुने गए अवतरणों के टैग सम्पादित कीजिए।",
        "rev-deleted-comment": "(सम्पादन सारांश हटाया)",
        "rev-deleted-user": "(सदस्यनाम हटाया)",
        "rev-deleted-event": "(लॉग विवरण हटाया)",
        "rev-deleted-user-contribs": "[सदस्यनाम अथवा आइ॰पी पता छुपाया गया - सम्पादन योगदानों में से छुपाया गया]",
        "rev-deleted-text-permission": "यह पृष्ठ अवतरण हटाया गया है।\nइसकी अधिक जानकारी [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} हटाने की लॉग] में पाई जा सकती है।",
+       "rev-suppressed-text-permission": "यह पृष्ठ अवतरण '''छिपाया गया है'''।\nआप इसे देख सकते हैं; विवरण [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} छुपाने की लॉग] में पाया जा सकता है।",
        "rev-deleted-text-unhide": "यह पृष्ठ अवतरण हटाया गया है।\nइसकी अधिक जानकारी [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} हटाने की लॉग] में पाई जा सकती है।\nयदि आप चाहें तो इस अवतरण को [$1 देख सकते हैं]।",
        "rev-suppressed-text-unhide": "यह पृष्ठ अवतरण '''छिपाया गया है'''। विवरण [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} छुपाने की लॉग] पर देखा जा सकता है।\nयदि आप चाहें तो इस अवतरण को [$1 देख सकते हैं]।",
        "rev-deleted-text-view": "यह पृष्ठ अवतरण हटाया गया है।\nआप इसे देख सकते हैं; विवरण [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} हटाने की लॉग] में पाया जा सकता है।",
        "searchrelated": "सम्बंधित",
        "searchall": "सभी",
        "showingresults": "नीचे क्रमांक '''$2''' से प्रारंभ कर के अधिकतम '''$1''' परिणाम {{PLURAL:$1|दिखाया गया है|दिखाए गए हैं}}।",
+       "showingresultsinrange": "दिखा रहे हैं {{PLURAL:$1|<strong>1</strong> result|<strong>$1</strong> परिणाम}} तक पहुँच  #<strong>$2</strong> to #<strong>$3</strong> में।",
        "search-showingresults": "{{PLURAL:$4|<strong>$3</strong> में से <strong>$1</strong> परिणाम|<strong>$3</strong> में से परिणाम <strong>$1 - $2</strong>}}",
        "search-nonefound": "आपकी खोज से मेल खाते कोई परिणाम नहीं मिले।",
        "powersearch-legend": "उन्नत खोज",
        "userrights-lookup-user": "सदस्य समूहों का व्यवस्थापन करें",
        "userrights-user-editname": "सदस्यनाम दें:",
        "editusergroup": "सदस्य समूहों का संपादन करें",
-       "editinguser": "सदस्य '''[[User:$1|$1]]''' $2 के अधिकार बदलें",
+       "editinguser": "सदस्य '''[[User:$1|$1]]''' $2 के अधिकार बदलें\n{{GENDER:$1|सदस्य}} के सदस्य अधिकार बदले जा रहे हैं <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "सदस्य समूहों का संपादन करें",
        "saveusergroups": "सदस्य समूह संजोएँ",
        "userrights-groupsmember": "निम्न {{PLURAL:$1|समूह|समूहों}} का सदस्य:",
        "right-sendemail": "अन्य सदस्यों को ई-मेल भेजें",
        "right-passwordreset": "कूटशब्द रीसेट ई-मेल देखें",
        "right-managechangetags": "डेटाबेस से [[Special:Tags|चिप्पियाँ]] बनायें और हटायें",
+       "right-applychangetags": "प्रयोग में लाइये [[Special:Tags|tags]] किसी के बदलाव के साथ।",
+       "right-changetags": "जमा करो और हटाओ स्वतंत्र [[Special:Tags|टैग]] व्यक्तिगत अवतरणों और लॉग प्रविक्तियों पर",
        "newuserlogpage": "सदस्य खाता निर्माण लॉग",
        "newuserlogpagetext": "यह सदस्य खातों के निर्माण का लॉग है।",
        "rightslog": "सदस्य अधिकार लॉग",
        "action-editmyprivateinfo": "अपनी व्यक्तिगत जानकारी बदलने",
        "action-editcontentmodel": "एक पेज की सामग्री मॉडल को संपादित।",
        "action-managechangetags": "डेटाबेस से चिप्पि बनायें और हटायें",
+       "action-applychangetags": "अपमे बदलाव के साथ टैग जोड़ें।",
+       "action-changetags": "जमा करें और हटाएँ स्वतंत्र टैग व्यक्तिगत अवतरणों और लॉग प्रविक्तियों पर",
        "nchanges": "$1 {{PLURAL:$1|बदलाव}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|अंतिम बार देखने के बाद से}}",
        "enhancedrc-history": "इतिहास",
        "uploaddisabledtext": "फ़ाइल अपलोड अक्षम हैं।",
        "php-uploaddisabledtext": "पी॰एच॰पी में फ़ाइल अपलोड बंद हैं।\nकृपया file_uploads जमाव की जाँच करें।",
        "uploadscripted": "इस फ़ाइल में एच॰टी॰एम॰एल या स्क्रिप्ट कोड है, जो वेब ब्राउज़र द्वारा गलत पढ़ा जा सकता है।",
+       "upload-scripted-pi-callback": "उस फाइल को अपलोड नहीं किया जा सकता जिसमें एक्सएमएल-स्टाइलशीट प्रसंस्करण निर्देश समाविष्ट हैं।",
+       "uploaded-script-svg": "अपलोड की गयी एसवीजी फ़ाइल में स्क्रीप्ट अवयव \"$1\" पाया गया।",
+       "uploaded-hostile-svg": "अपलोड की गयी एसवीजी फाइल के शैली अवयव में असुरक्षित सीएसएस पायी गयी।",
+       "uploaded-event-handler-on-svg": "सेटिंग ईवेंट हैंडलर (आयोजन प्रबन्धनकर्ता वरियता) <code>$1=\"$2\"</code> एसवीजी फ़ाइल में अनुमत नहीं है।",
+       "uploaded-href-attribute-svg": "गैर-स्थानीय लक्ष्य के साथ एचआरईऍफ श्रेय (Href attributes) <code>&lt;$1 $2=\"$3\"&gt;</code> (उदाहरण के लिए http://, जावास्क्रीप्ट:, इत्यादि) एसवीजी फाइल में अनुमत नहीं हैं।",
+       "uploaded-href-unsafe-target-svg": "अपलोड की गयी फ़ाइल में असुरक्षित लक्ष्य <code>&lt;$1 $2=\"$3\"&gt;</code> पाये गए।",
+       "uploaded-animate-svg": "चिप्पि \"animate\" पायी गई जिससे href परिवर्तित हो सकता है, अपलोड की गयी फ़ाइल में \"from\" विशेषता <code>&lt;$1 $2=\"$3\"&gt;</code> काम में ली जा रही है।",
        "uploadscriptednamespace": "इस एस॰वी॰जी फ़ाइल में अमान्य नामस्थान \"$1\" है।",
        "uploadinvalidxml": "अपलोड की गई फ़ाइल में स्थित XML पार्स नहीं की जा सकी।",
        "uploadvirus": "इस फ़ाइल में व्हाईरस हैं! अधिक जानकारी: $1",
        "listfiles-delete": "हटाएँ",
        "listfiles-summary": "यह विशेष पृष्ठ सभी अपलोड की गई फ़ाइलें दर्शाता है।",
        "listfiles_search_for": "मीडिया नाम के लिये खोजें:",
+       "listfiles-userdoesnotexist": "अपयोगकर्ता खाता \"$1\" पंजीकृत नहीं है।",
        "imgfile": "फ़ाइल",
        "listfiles": "फ़ाइल सूची",
        "listfiles_thumb": "अंगूठाकार",
        "listredirects": "पुनर्निर्देशनों की सूची",
        "listduplicatedfiles": "डुप्लिकेट के साथ फाइलों की सूची।",
        "listduplicatedfiles-summary": "यह एैसे फ़ाइलों की सूची है जिनका नवीनतम संस्करण दूसरे फ़ाइलों के नवीनतम संस्करण की प्रतिलिपि हैं। सिर्फ़ स्थानीय फ़ाइलों को विचारा गया है।",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]] रखता है  [[$3|{{PLURAL:$2|एक प्रतिलिपि|$2 duplicates}}]] ।",
        "unusedtemplates": "अप्रयुक्त साँचे",
        "unusedtemplatestext": "इस पृष्ठ पर {{ns:template}} नामस्थान वाले वे सभी पृष्ठ इंगित है जो किसी अन्य पृष्ठ में शामिल नहीं हैं।\nइन्हें हटाने के पहले इन साँचों की और कड़ियाँ जाँच लें।",
        "unusedtemplateswlh": "अन्य कड़ियाँ",
        "pageswithprop-text": "यह पृष्ठ पृष्ठ गुण का उपयोग कर रहे पन्नों को सूचीबद्ध करता है।",
        "pageswithprop-prop": "गुण का नाम:",
        "pageswithprop-submit": "खोजें",
+       "pageswithprop-prophidden-long": "लम्बे पाठ का मूल्य छुपा ($1) है",
+       "pageswithprop-prophidden-binary": "बाइनरी मूल्य ($1) छुपा है।",
        "doubleredirects": "दुगुने पुनर्निर्देश",
        "doubleredirectstext": "यह पृष्ठ उन पृष्ठों की सूची देता है जो अन्य पुनर्निर्देशित पृष्ठों की ओर पुनर्निर्देशित हैं।\nहर कतार में पहले और दूसरे पुनर्निर्देशन की कड़ियाँ, तथा दूसरे पुनर्निर्देशन का लक्ष्य भी है, आमतौर पर यही \"वास्तविक\" लक्ष्यित पृष्ठ होगा, और पहला पुनर्देशन वास्तव में इसी को लक्ष्यित होना चाहिए।\n<del>काटी गई</del> प्रविष्टियाँ सुलझा दी गई हैं।",
        "double-redirect-fixed-move": "[[$1]] की जगह बदली जा चुकी है।\nअब यह स्वतः [[$2]] की ओर पुनर्प्रेषित होता है।",
        "unusedimages": "अप्रयुक्त फ़ाइलें",
        "wantedcategories": "वांछित श्रेणियाँ",
        "wantedpages": "जो पृष्ठ चाहिये",
+       "wantedpages-summary": "जिसअनुपस्थित पृष्ठों की सूचीमें उनसे जुड़े अधिकांश कड़ियाँ हैं सिवाय उन पृष्ठों के जिनमें केवल अनुप्रेषित कड़ियाँ जुड़ती हों। अनुपस्थित पृष्ठों की सूची के लिए जिनमें केवल अनुप्रेषित कड़ियाँ जुड़ती हों, देखिए [[{{#special:BrokenRedirects}}]]।",
        "wantedpages-badtitle": "परिणामों में अवैध शीर्षक: $1",
        "wantedfiles": "वांछित फ़ाइलें",
        "wantedfiletext-cat": "निम्न फ़ाइलें प्रयुक्त हैं पर मौजूद नहीं हैं। बाहरी भंडारों की फ़ाइलें मौजूद होने के बावजूद सूची में हो सकती हैं। ऐसी कोई भी गलत प्रविष्टियाँ <del>काटी हुई</del> होंगी। साथ ही, जो पृष्ठ ऐसी फ़ाइलों का प्रयोग करते हैं जो मौजूद नहीं हैं, उनकी सूची [[:$1]] में है।",
+       "wantedfiletext-cat-noforeign": "निम्न लिखित फ़ाइल प्रयोग में हैं पर मौजूद नहीं है। इसके अतिरिक्त, पृष्ठ जो इन ग़ैर-मौजूद फ़ाइलों को सजोए हुए हैं उनकी सूची [[:$1]] में है।",
        "wantedfiletext-nocat": "निम्न फ़ाइलें प्रयुक्त हैं पर मौजूद नहीं हैं। बाहरी भंडारों की फ़ाइलें मौजूद होने के बावजूद सूची में हो सकती हैं। ऐसी कोई भी गलत प्रविष्टियाँ <del>काटी हुई</del> होंगी।",
        "wantedfiletext-nocat-noforeign": "निम्न फ़ाइलों को इस्तेमाल कर रहे हैं, लेकिन मौजूद नहीं है।",
        "wantedtemplates": "वांछित साँचे",
        "deadendpagestext": "नीचे दिये पृष्ठ {{SITENAME}} के अन्य पृष्ठों से नहीं जुड़ते हैं।",
        "protectedpages": "सुरक्षित पृष्ठ",
        "protectedpages-indef": "केवल अनिश्चितकालीन सुरक्षाएँ",
+       "protectedpages-summary": "यह पृष्ठ उन सभी पृष्ठों की सूची देता है जो अब सुरक्षित हैं। उन सभी शीर्षकों की सूची जानने के लिए जो बनाने से सुरक्षित किए गए हैं, देखिए [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]] ।",
        "protectedpages-cascade": "केवल सोपानी सुरक्षा",
        "protectedpages-noredirect": "पुनर्निर्देश छुपाएँ",
        "protectedpagesempty": "इस समय इन नियमों द्वारा कोई पृष्ठ सुरक्षित नहीं हैं।",
        "pager-older-n": "{{PLURAL:$1|पुराना|पुराने}} $1",
        "suppress": "ओवरसाइट",
        "querypage-disabled": "प्रदर्शन कारणों से यह विशेष पृष्ठ अक्षम किया गया है।",
+       "apihelp": "ए पी आई सहाएता",
+       "apihelp-no-such-module": "मॉड्यूल \"$1\" नहीं मिला",
        "booksources": "पुस्तकों के स्रोत",
        "booksources-search-legend": "पुस्तकों के स्रोत खोजें",
        "booksources-isbn": "आइ॰एस॰बी॰एन:",
        "logempty": "लॉग में ऐसी प्रविष्टि नहीं है।",
        "log-title-wildcard": "इस पाठ से शुरू होने वाले शीर्षक खोजें",
        "showhideselectedlogentries": "चयनित लॉग प्रविष्टियाँ दिखाएँ/छुपाएँ",
+       "log-edit-tags": "चुने गए लॉग प्रविक्तियों एक सम्पादन टैग",
        "allpages": "सभी पृष्ठ",
        "nextpage": "अगला पृष्ठ ($1)",
        "prevpage": "पिछला पृष्ठ ($1)",
        "listgrouprights-removegroup-self": " अपने  खाते से {{PLURAL:$2|समूह}} हटाएँ: $1",
        "listgrouprights-addgroup-self-all": "अपने खाते में सभी समूह शामिल करें",
        "listgrouprights-removegroup-self-all": "अपने खाते से सभी समूह हटाएँ",
+       "listgrouprights-namespaceprotection-header": "नामस्थान की बंदिशें",
        "listgrouprights-namespaceprotection-namespace": "नामस्थान",
+       "listgrouprights-namespaceprotection-restrictedto": "उपयोगकर्ता को सम्पादन करने में सक्षम करने वाले अधिकार",
        "trackingcategories": "चिह्नित श्रेणियाँ",
+       "trackingcategories-summary": "इस पृष्ठ पर उन जोड़ने वाली श्रेणियों की सूची मिलती है जो स्वतः रूप से मीडियाविकि सॉफ़्टवेयर द्वारा बनते हैं। उनके नाम सम्बंधित प्रणालि सन्देश को बदलने से {{ns:8}} नामस्थान में बदले जा सकते हैं।",
        "trackingcategories-msg": "चिह्नित श्रेणी",
        "trackingcategories-name": "संदेश नाम",
        "trackingcategories-desc": "श्रेणी शामिल किए जाने के मानदंड",
+       "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>$wgMaxArticleSize</code>  से बढ़कर है जबकि साँचों के आंतरिक पाठ को बढ़ाया गया हो (तिगुणी ब्रेस के रूप में जैसे <code>{{{Foo}}}</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> के पृष्ठ पाठ है, जो पूर्व निर्धारित रूप से पृष्ठों में श्रेणी कड़ियों के सन्दूक में दिखाई देने से उसे रोकती है।",
        "trackingcategories-nodesc": "कोई वर्णन उपलब्ध नहीं।",
        "trackingcategories-disabled": "श्रेणी अक्षम करी गयी है",
        "mailnologin": "पाने वाले का एड्रेस दिया नहीं",
        "emailccsubject": "आपके ई-मेल की प्रति जो $1 को भेजा गया: $2",
        "emailsent": "ई-मेल भेज दिया गया है।",
        "emailsenttext": "आपका ई-मेल संदेश भेज दिया गया है।",
-       "emailuserfooter": "यह à¤\88-मà¥\87ल {{SITENAME}} à¤\95à¥\80 \"सदसà¥\8dय à¤\88-मà¥\87ल\" à¤¸à¥\81विधा à¤¦à¥\8dवारा $1 à¤¸à¥\87 $2 à¤\95à¥\8b à¤­à¥\87à¤\9cà¥\80 à¤\97à¤\88 à¤¥à¥\80।",
+       "emailuserfooter": "à¤\87स à¤\88-मà¥\87ल à¤\95à¥\8b $1 à¤¦à¥\8dवारा $2 à¤\95à¥\8b à¤­à¥\87à¤\9cा à¤\97या à¤¥à¤¾ à¤\9cिसà¤\95à¥\87 à¤²à¤¿à¤\8f \"{{int:emailpage}}\" à¤\95ारà¥\8dय à¤\95à¥\8b {{SITENAME}} à¤ªà¤° à¤ªà¥\8dरयà¥\8bà¤\97 à¤®à¥\87à¤\82 à¤²à¤¾à¤¯à¤¾ à¤\97या à¤¥à¤¾।",
        "usermessage-summary": "प्रणाली सन्देश छोड़ रहा है।",
        "usermessage-editor": "सिस्टम दूत",
        "watchlist": "ध्यानसूची",
        "watchnologin": "लॉग इन नहीं किया है",
        "addwatch": "ध्यानसूची में जोड़ें",
        "addedwatchtext": "आपकी [[Special:Watchlist|ध्यानसूची]] में \"[[:$1]]\" पृष्ठ जोड़ दिया गया है।\nभविष्य में इस पृष्ठ तथा इसके वार्ता पृष्ठ में होने वाले बदलाव आपकी ध्यानसूची में दिखेंगे।",
+       "addedwatchtext-short": "पृष्ठ \"$1\" को आपकी ध्यानसूची से जोड़ा गया है।",
        "removewatch": "ध्यानसूची से हटाएँ",
        "removedwatchtext": "\"[[:$1]]\" नामक पृष्ठ को आपकी [[Special:Watchlist|ध्यानसूची]] से हटा दिया गया है।",
+       "removedwatchtext-short": "पृष्ठ \"$1\" को आपकी ध्यानसूची से हटाया गया है।",
        "watch": "ध्यान रखें",
        "watchthispage": "इस पृष्ठ का ध्यान रखें",
        "unwatch": "ध्यान हटाएँ",
        "delete-edit-reasonlist": "हटाने के कारण संपादित करें",
        "delete-toobig": "इस पृष्ठ का संपादन इतिहास $1 से अधिक {{PLURAL:$1|अवतरण}} होने की वजह से बहुत बड़ा है।\n{{SITENAME}} के अनपेक्षित रूप से बंद होने से रोकने के लिये ऐसे पृष्ठों को हटाने की अनुमति नहीं है।",
        "delete-warning-toobig": "इस पृष्ठ का संपादन इतिहास $1 से अधिक {{PLURAL:$1|अवतरण}} होने की वजह से बहुत बड़ा है।\nइसे हटाने से {{SITENAME}} के डाटाबेस की गतिविधियों में व्यवधान आ सकता है;\nकृपया सोच समझ कर आगे बढ़ें।",
+       "deleteprotected": "आप इस पृष्ठ को हटा नहीं सकते क्योंकि इसे सुरक्षित किया गया है।",
        "deleting-backlinks-warning": "'''चेतावनी:''' जो पृष्ठ आप हटाने जा रहे हैं उससे [[Special:WhatLinksHere/{{FULLPAGENAME}}|अन्य पृष्ठ]] जुड़ते हैं अथवा उसे ट्रांसक्लूड करते हैं।",
        "rollback": "संपादन वापिस लें",
        "rollbacklink": "वापिस लें",
        "namespace": "नामस्थान:",
        "invert": "विपरीत प्रवरण",
        "tooltip-invert": "चयनित नामस्थान (और संबद्ध नामस्थान यदि जाँच) के भीतर पृष्ठों में किए गए परिवर्तन छुपाने के लिए इस बक्से को चिह्नित करें",
+       "tooltip-whatlinkshere-invert": "चुने गए नामस्थान की पृष्ठों से कड़ियों को छिपाने के लिए इस सन्दूक को चिन्हित कीजिए",
        "namespace_association": "सम्बद्ध नामस्थान",
        "tooltip-namespace_association": "भी बात या विषय नाम स्थान चयनित नाम स्थान के साथ जुड़े को शामिल करने के लिए इस बक्से को चिह्नित करें।",
        "blanknamespace": "(मुख्य)",
        "contributions-title": "$1 के योगदान",
        "mycontris": "योगदान",
        "contribsub2": "{{GENDER:$3|$1}} ($2) के लिये",
+       "contributions-userdoesnotexist": "उपयोगकर्ता खाता  \"$1\" पंजीकृत नहीं है।",
        "nocontribs": "इन कसौटियों से मिलनेवाले बदलाव मिले नहीं।",
        "uctop": "(मौजूदा)",
        "month": "इस महिनेसे (और पुरानें):",
        "sp-contributions-newbies-sub": "नये सदस्योंके लिये",
        "sp-contributions-newbies-title": "नए सदस्यों द्वारा योगदान",
        "sp-contributions-blocklog": "ब्लॉक सूची",
+       "sp-contributions-suppresslog": "छुपाए गए उपयोगकर्ता के योगदान",
        "sp-contributions-deleted": "हटाए गए सदस्य योगदान",
        "sp-contributions-uploads": "अपलोड",
        "sp-contributions-logs": "लॉग",
        "blockipsuccesssub": "अवरोधन सफल ।(संपादन करने से रोक दिया गया है)",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] को ब्लॉक किया जा चुका है।<br />\nब्लॉकों की समीक्षा के लिए [[Special:BlockList|ब्लॉक लॉग]] देखें।",
        "ipb-blockingself": "आप खुद को अवरोधित कर रहे हैं! क्या आप वाकई ऐसा करना चाहते हैं?",
+       "ipb-confirmhideuser": "आप एक ऐसे उपयोगकर्ता पर प्रतिबंध लगाने जा रहे हैं जिसके पास \"उपयोगकर्ता छिपाओ\" का विकल्प मौजूद है। इससे इस उपयोगकर्ता का नाम सभी सूचियों और लॉग प्रविष्टियों में नहीं दिखेगा। क्या आप विश्वासपूर्ण रूप से ऐसा करना चाहते हैं?",
+       "ipb-confirmaction": "यदि आप विश्वासपूर्ण रूप से यही करना चाहते हैं, तो कृपया \"{{int:ipb-confirm}}\" की फ़ील्ड को नीचे से चुनिए।",
        "ipb-edit-dropdown": "ब्लॉक कारण संपादित करें",
        "ipb-unblock-addr": "$1 को अनब्लॉक करें",
        "ipb-unblock": "सदस्य अथवा आईपी एड्रेस को अनब्लॉक करें",
        "unblocked": "[[User:$1|$1]] को अनब्लॉक कर दिया हैं",
        "unblocked-range": "$1 को अनवरोधित किया गया",
        "unblocked-id": "अवरोध $1 निकाल दिया गया है",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] पर से प्रतिरोध हटाया गया है।",
        "blocklist": "अवरोधित उपयोक्ता",
        "ipblocklist": "अवरोधित आईपी पते व सदस्यनाम",
        "ipblocklist-legend": "अवरोधित सदस्य को खोजें",
        "proxyblockreason": "आपका IP पता बाधित किया जा चुका है क्योंकि यह एक मुक्त प्रतिनिधि है।\nकृपया आप अपने इंटरनेट सेवा प्रदान करने वाले से या तकनीकी सहायक से सम्पर्क करें अथवा उन्हें इस भयावह सुरक्षा समस्या के बारे में सूचित करें।",
        "sorbsreason": "{{SITENAME}} द्वारा इस्तेमालमें लाये जाने वाले DNSBL में आपके आईपी एड्रेसको ओपन प्रॉक्सीमें दर्शाया गया हैं।",
        "sorbs_create_account_reason": "{{SITENAME}} के DNSBL ने आपका आईपी एड्रेस ओपन प्रोक्सी करके सूचित किया हैं। आप खाता खोल नहीं सकतें।",
+       "xffblockreason": "एक आई०पी० पता जो X-Forwarded-For हेडर में मौजूद है, या तो आपका है या उस प्रौक्सी सरवर का है जिसका आप प्रयोग कर रहे हैं और उस पर प्रतिबंध लगा दिया गया है। वास्तविक कारण था: $1",
        "cant-see-hidden-user": "जिस सदस्य को आप अवरोधित करने की कोशिश कर रहे हैं उसे पहले ही अवरोधित कर के छुपाया जा चुका है।\nचूँकि आपके पास hideuser अधिकार नहीं है, आप इस सदस्य का अवरोधन ना देख सकते हैं और ना ही सम्पादित कर सकते हैं।",
        "ipbblocked": "आप अन्य प्रयोक्ताओं को अवरोधित या अनवरोधित नहीं कर सकते, क्योंकि आप स्वयं अवरोधित हैं",
        "ipbnounblockself": "आपको स्वयं को अनवरोधित करने की अनुमति नहीं है",
        "movepagetalktext": "संबंधित वार्ता पृष्ठ इसके साथ स्थानांतरीत नहीं होगा '''अगर:'''\n* आप पृष्ठ दुसरे नामस्थान में स्थानांतरीत कर रहें है\n* इस नाम का वार्ता पृष्ठ पहलेसे बना हुवा है, या\n* नीचे दिया हुआ चेक बॉक्स आपने निकाल दिया है ।\n\nइन मामलोंमे आपको स्वयं यह पृष्ठ जोडने पड़ सकते है ।",
        "movearticle": "पृष्ठ का नाम बदलें",
        "moveuserpage-warning": "<strong>चेतावनी:</strong> आप एक सदस्य पृष्ठ स्थानांतरित करने जा रहे हैं। कृपया ध्यान दें कि केवल पृष्ठ का नाम बदला जाएगा और सदस्यनाम <em>नहीं</em> बदलेगा।",
+       "movecategorypage-warning": "<strong>चेतावनी:</strong> आप एक श्रेणी पृष्ठ को स्थानांतरित करने जा रहे हैं। याद रखिए कि केवल वह पृष्ठ स्थानांतरित होगा और पुरानी श्रेणी में शामिल पृष्ठ नई श्रेणी के अंतरगत <em>नहीं</em> आएँगे।",
        "movenologintext": "लेख स्थानान्तरित करने के लिये आपका [[Special:UserLogin|लॉग इन]] किया होना आवश्यक हैं।",
        "movenotallowed": "आपको पृष्ठ स्थानांतरित करने की अनुमति नहीं है।",
        "movenotallowedfile": "आपको फ़ाइलें स्थानांतरित करने की अनुमति नहीं है।",
        "cant-move-user-page": "आपको सदस्य पृष्ठ स्थानांतरित करने की अनुमति नही है (सिवाय उप पन्नों के)।",
        "cant-move-to-user-page": "आपको किसी पन्नो को सदस्य पृष्ठ पर ले जाने की अनुमति नहीं है (सिवाय सदस्य उप पृष्ठ के)",
+       "cant-move-category-page": "आपको श्रेणी प्रष्ठों को स्थानांतरित करने की अनुमति नहीं है।",
+       "cant-move-to-category-page": "आपको किसी पृष्ठ को श्रेणी पृष्ठ पर स्थानांतरित करने की अनुमति नहीं है।",
        "newtitle": "नये शीर्षक की ओर:",
        "move-watch": "ध्यान रखें",
        "movepagebtn": "नाम बदलें",
        "immobile-target-namespace-iw": "अंतर विकि कड़ी पृष्ठ  ले जाने के लिए उचित लक्ष्य नहीं है।",
        "immobile-source-page": "इस पृष्ठ का स्थानांतरण नहीं किया जा सकता है।",
        "immobile-target-page": "इस गंतव्य शीर्षक पर नहीं ले जाया जा सकता है।",
+       "bad-target-model": "वाञ्छित स्थान भिन्न सामग्री नमूने का प्रयोग करता है। $1 को बदलकर $2 नहीं किया जा सकता है।",
        "imagenocrossnamespace": "संचिका को ग़ैर-संचिका नामस्थान में स्थानांतरित नहीं किया जा सकता है",
        "nonfile-cannot-move-to-file": "असञ्चिका को सञ्चिका नामस्थान में नहीं ले जाया जा सकता",
        "imagetypemismatch": "संचिका का नया विस्तार उसकी किस्म से मेल नहीं खा रहा है",
        "djvu_page_error": "DjVu पृष्ठ रेंजके बाहर हैं",
        "djvu_no_xml": "DjVu फ़ाईलके लिये XML नहीं मिल पाया",
        "thumbnail-temp-create": "अस्थायी थम्बनेल फ़ाइल बनाने में असफल",
+       "thumbnail-dest-create": "थंबनेल को इस स्थान पर सुरक्षित नहीं किया जा सका।",
        "thumbnail_invalid_params": "गलत अंगूठानख मापदण्ड",
+       "thumbnail_toobigimagearea": "फ़ाइल जिसका साइज़ $1 से बढ़कर है।",
        "thumbnail_dest_directory": "लक्ष्य डाइरेक्टरी बना नहीं पा रहें हैं",
        "thumbnail_image-type": "इस प्रकार की छवि समर्थित नहीं है",
        "thumbnail_gd-library": "अवैध जीडी लाइब्रेरी जमाव: कार्यसमूह $1 मौजूद नहीं है",
        "thumbnail_image-missing": "लगता है संचिका नामौजूद है: $1",
+       "thumbnail_image-failure-limit": "हाल के समय में इस थंबनेल को दूसरा रूप देने के कई असफल प्रयास हुए हैं ($1 या उससे अधिक) । कृपया फिर से प्रयास कुछ समय बाद कीजिए।",
        "import": "पृष्ठ इम्पोर्ट करें",
        "importinterwiki": "किसी और विकि से आयात करे",
        "import-interwiki-text": "आयात करने के लिये एक विकि और एक पृष्ठ चुनें।\nअवतरण दिनांक और संपादक नाम ज्यों-के-त्यों रखे जाएँगे।\nअन्य विकि से सभी आयात [[Special:Log/import|आयात लॉग]] में डाली जाती हैं।",
        "import-interwiki-history": "इस पृष्ठ के सभी इतिहास अवतरण कॉपी करें",
        "import-interwiki-templates": "सभी साँचे शामिल करें",
        "import-interwiki-submit": "आयात",
+       "import-mapping-default": " पूर्व निर्धारित स्थानों पर आयात करें",
+       "import-mapping-namespace": "किसी नामस्थान पर आयात करें",
+       "import-mapping-subpage": "निम्न लिखित पृष्ठ के उपपृष्ठ के रूप में आयात करें:",
        "import-upload-filename": "संचिका नाम:",
        "import-comment": "टिप्पणी:",
        "importtext": "कृपया स्रोत विकि से संचिका निर्यातित करने के लिए [[Special:Export|निर्यात सुविधा]] का इस्तेमाल करें।\nइसे अपने संगणक पर सँजो के यहाँ चढ़ा दें।",
        "importcantopen": "आयात फ़ाईल खोल नहीं पायें",
        "importbadinterwiki": "अवैध अन्तरविकि कड़ी",
        "importsuccess": "आयात सफल हुआ!",
-       "importnosources": "à¤\95à¥\8bà¤\88 à¤­à¥\80 à¤\9fà¥\8dरानà¥\8dसविà¤\95à¥\80 à¤\86यात à¤¸à¥\8dरà¥\8bत à¤®à¤¿à¤²à¥\87 à¤¨à¤¹à¥\80à¤\82 à¤\94र à¤ªà¥\8dरतà¥\8dयà¤\95à¥\8dष à¤\87तिहास à¤\85पलà¥\8bड à¤¬à¤¨à¥\8dद à¤\95र à¤¦à¤¿à¤\8f à¤\97à¤\8f à¤¹à¥\88à¤\82।",
+       "importnosources": "à¤\95à¥\8bà¤\88 à¤­à¥\80 à¤µà¤¿à¤\95à¥\80 à¤\90सा à¤¨à¤¹à¥\80à¤\82 à¤\9cिसà¤\95à¥\87 à¤\86यात à¤\95ा à¤µà¤¿à¤µà¤°à¤£ à¤\95िया à¤\97या à¤¹à¥\88 à¤\94र à¤¸à¥\80धà¥\87 à¤\87तिहास à¤\95à¥\87 à¤\85पलà¥\8bड à¤ªà¤° à¤°à¥\8bà¤\95 à¤²à¤\97à¥\80 à¤¹à¥\81à¤\88 à¤¹à¥\88।",
        "importnofile": "कोईभी आयात फ़ाईल अपलोड नहीं हुई हैं।",
        "importuploaderrorsize": "आयात फ़ाईल अपलोड हुई नहीं। इसका आकार अनुमतिसे ज्यादा हैं।",
        "importuploaderrorpartial": "आयात फ़ाईल अपलोड हुई नहीं। फ़ाईल आधी अधूरी अपलोड हुई।",
        "import-error-interwiki": "पृष्ठ \"$1\" आयात नहीं किया गया है क्योंकि इसका नाम अंतरविकी कड़ियाँ बनाने के लिए आरक्षित है।",
        "import-error-special": "पृष्ठ \"$1\" आयात नहीं किया गया है क्योंकि यह एक ऐसे विशेष नामस्थान के अंतर्गत आता है जिसमें पृष्ठ नहीं बनाए जा सकते हैं।",
        "import-error-invalid": "पृष्ठ \"$1\" आयात नहीं किया गया है क्योंकि इसका आयात पश्चात जो नाम होता वह इस विकी पर अमान्य है।",
+       "import-error-unserialize": "पृष्ठ \"$1\" के संशोधन $2 को क्रम से हटाया नहीं जा सका। संशोधन के बारे में बताया गया है कि सामग्री नमूना $3 को क्रम $4 के रूप प्रयोग में लाया गया था।",
+       "import-error-bad-location": "संअशोधन $2 जिसमें सामग्री नमूने $3 का प्रयोग किया गया है, को इस विकि के \"$1\" पर जमा नहीं किया जा सकता, क्यों वह नमूना उस पृष्ठ के नमूने से भिन्न है।",
        "import-options-wrong": "गलत {{PLURAL:$2|विकल्प}}: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "दिया गया उपसर्ग पृष्ठ शीर्षक अमान्य है।",
        "import-rootpage-nosubpage": "दिए गए उपसर्ग पृष्ठ \"$1\" के नामस्थान में उप-पृष्ठ नहीं बनाए जा सकते।",
        "javascripttest": "जावास्क्रिप्ट परीक्षण",
        "javascripttest-pagetext-noframework": "यह पृष्ठ जावास्क्रिप्ट परीक्षण चलाने के लिए है।",
        "javascripttest-pagetext-unknownframework": "अज्ञात परीक्षण ढाँचा \"$1\"",
+       "javascripttest-pagetext-unknownaction": "अज्ञात क्रिया \"$1\" ।",
        "javascripttest-pagetext-frameworks": "कृपया निम्न परीक्षण ढाँचों में से एक चुनें: $1",
        "javascripttest-pagetext-skins": "परीक्षण करने के लिए त्वचा चुनें:",
        "javascripttest-qunit-intro": "mediawiki.org पर [$1 परीक्षण के प्रलेखन] देखें।",
        "tooltip-feed-atom": "इस पृष्ठ की अणु फ़ीड",
        "tooltip-t-contributions": "इस सदस्यके योगदानकी सूची देखियें",
        "tooltip-t-emailuser": "इस सदस्य को इमेल भेजें",
+       "tooltip-t-info": "इस पृष्ठ के बारे में अधिक जानकारी",
        "tooltip-t-upload": "फ़ाइल अपलोड करें",
        "tooltip-t-specialpages": "सभी विशेष पृष्ठों की सूची",
        "tooltip-t-print": "इस पृष्ठका छपानेलायक अवतरण",
        "pageinfo-length": "पृष्ठ आकार (बाइट्स में)",
        "pageinfo-article-id": "पृष्ठ आइ॰डी",
        "pageinfo-language": "पृष्ठ सामग्री भाषा",
+       "pageinfo-content-model": "पृष्ठ सामग्री का नमूना",
        "pageinfo-robot-policy": "सर्च इंजन बॉट द्वारा अनुक्रमण",
        "pageinfo-robot-index": "अनुमतित",
        "pageinfo-robot-noindex": "नहीं अनुमतित",
        "pageinfo-redirectsto-info": "जानकारी",
        "pageinfo-contentpage": "सामग्री पृष्ठों में गिना जाता है",
        "pageinfo-contentpage-yes": "हाँ",
+       "pageinfo-protect-cascading": "सुरक्षा-विकल्प यहाँ से व्यापक हो रहे हैं",
        "pageinfo-protect-cascading-yes": "हाँ",
+       "pageinfo-protect-cascading-from": "सुरक्षा-विकल्प व्यापक हो रहे हैं स्थान-से",
        "pageinfo-category-info": "श्रेणी जानकारी",
+       "pageinfo-category-total": "कुल सदस्यों की संख्या",
        "pageinfo-category-pages": "पृष्ठ संख्या",
        "pageinfo-category-subcats": "उपश्रेणियों की संख्या",
        "pageinfo-category-files": "फ़ाइलों की संख्या",
        "patrol-log-page": "परीक्षण लॉग",
        "patrol-log-header": "यह परीक्षित अवतरणों की लॉग है।",
        "log-show-hide-patrol": "परीक्षण लॉग $1",
+       "log-show-hide-tag": "$1 टैग लॉग",
        "deletedrevision": "पुराना अवतरण $1 हटा दिया",
        "filedeleteerror-short": "फ़ाईल हटानेमें समस्या: $1",
        "filedeleteerror-long": "फ़ाईल हटानेमें आईं समस्यायें:\n\n$1",
        "newimages-summary": "यह विशेष पृष्ठ हाल ही में अपलोड की गयी फ़ाइलें दिखाता है।",
        "newimages-legend": "छननी",
        "newimages-label": "संचिका नाम (या उसका अंश):",
+       "newimages-showbots": "बॉट के अपलोड दिखाइये",
        "noimages": "देखने के लिए कुछ नहीं है।",
        "ilsubmit": "खोजें",
        "bydate": "तिथि अनुसार",
        "exif-source": "स्रोत",
        "exif-editstatus": "छवि की संपादकीय स्थिति",
        "exif-urgency": "तात्कालिकता",
+       "exif-fixtureidentifier": "स्थिरता का नाम",
        "exif-locationdest": "स्थान दिखाया गया हे",
        "exif-locationdestcode": "स्थान का कोड दिखाया गया हे",
        "exif-objectcycle": " दिन के समय जिस्केलियए यह मीडिया है",
        "exif-originalimageheight": "छवि की ऊँचाई उभरा होने से पहले",
        "exif-originalimagewidth": "छवि की चौड़ाई उभरा होने से पहले",
        "exif-compression-1": "अनकॉम्प्रेस्स्ड",
+       "exif-compression-2": "सी०सी०आई०टी०टी० ग्रुप ३ १-डाइमेंशन वाली संशोधित हफ़मैन दौड़ की लम्बाई से जुड़ी एनकोडिंग",
        "exif-compression-3": "CCITT ग्रुप 3 फ़ैक्स एनकोडिंग",
        "exif-compression-4": "CCITT ग्रुप 4 फ़ैक्स एनकोडिंग",
        "exif-copyrighted-true": "कॉपीराईट",
        "exif-orientation-8": "90° CW घुमाया",
        "exif-planarconfiguration-1": "चंकी फ़रमैट",
        "exif-planarconfiguration-2": "प्लेनर फ़रमैट",
+       "exif-colorspace-65535": "कैलिब्रेट नहीं गया",
        "exif-componentsconfiguration-0": "अस्तित्वमें नहीं",
        "exif-exposureprogram-0": "अव्यक्त",
        "exif-exposureprogram-1": "मैन्युअल",
        "exif-gpsdirection-t": "असली दिशा",
        "exif-gpsdirection-m": "मैग्नेटिक दिशा",
        "exif-ycbcrpositioning-1": "केंद्रित",
+       "exif-ycbcrpositioning-2": "द्वि-जालस्थलीय",
        "exif-dc-contributor": "योगदानकर्ताएँ",
        "exif-dc-coverage": "मीडिया के स्थानिक या लौकिक स्कोप",
        "exif-dc-date": "दिनांक",
        "confirm-unwatch-button": "ठीक है",
        "confirm-unwatch-top": "यह पृष्ठ अपने ध्यानसूचीसे हटाएं?",
        "semicolon-separator": ";",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← पिछला पृष्ठ",
        "imgmultipagenext": "अगला पृष्ठ →",
        "imgmultigo": "जायें!",
        "imgmultigoto": "$1 पृष्ठ पर जायें",
        "img-lang-default": "(डिफ़ॉल्ट भाषा)",
+       "img-lang-info": "इस चित्र को $1. $2 में ढालें",
        "img-lang-go": "जाएं",
        "ascending_abbrev": "asc",
        "descending_abbrev": "ज़ानकारी",
        "watchlistedit-clear-legend": "ध्यानसूची खाली करें",
        "watchlistedit-clear-explain": "आपकी ध्यानसूची से सभी पृष्ठ हटा दिये जायेंगे",
        "watchlistedit-clear-titles": "खिताब:",
+       "watchlistedit-clear-submit": "ध्यानसूची को हटाएँ (यह स्थाई है!)",
        "watchlistedit-clear-done": "आपकी ध्यानसूची खाली कर दी गयी है।",
        "watchlistedit-clear-removed": "$1 पृष्ठ{{PLURAL:$1|हटाया गया|हटाये गए}}:",
        "watchlistedit-too-many": "यहाँ दर्शाने के लिए अत्यधिक पृष्ठ हैं।",
        "hebrew-calendar-m12-gen": "एलुल (Elul)",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|वार्ता]])",
        "duplicate-defaultsort": "'''Warning:''' पुरानी मूल क्रमांकन कुंजी \"$1\" के बजाय अब मूल क्रमांकन कुंजी \"$2\" होगी।",
+       "duplicate-displaytitle": "<strong>चेतावनी:</strong> शीर्षक दिखाएँ \"$2\" पूर्व दिखाए गए शीर्षक \"$1\" पर छा रहा है।",
+       "invalid-indicator-name": "<strong>त्रुटि:</strong> पृष्ठ स्थिति सांकेतक <code>नाम</code> गुण खाली नहीं रहना चाहिए।",
        "version": "रूपान्तर",
        "version-extensions": "इन्स्टॉल की हुई एक्स्टेंशन",
        "version-skins": "इन्स्टॉल की गयी त्वचाएँ",
        "version-poweredby-others": "अन्य",
        "version-poweredby-translators": "translatewiki.net अनुवादक",
        "version-credits-summary": "हम निम्न व्यक्तियों द्वारा [[Special:Version|मीडियाविकि]] में किये गए योगदानों को सराहते हैं।",
+       "version-license-info": "मीडियाविकि मुक्त सॉफ़्टवेयर है; आप उसका पुनः वितरण कर सकते हैं और/या उसे संशोधित कर सकते हैं जैसा कि जे०एन०यू० साधारण सार्वजनिक लाइसेंस के अंतरगत फ़्री लाइसेंस फ़ाउन्डेशन द्वारा प्रकाशित किया गया था; या तो लाइसेंस का अवतरण २, या (आपके विकल्प के अनुसार) कोई और अवतरण।\n\nमीडियाविकि इस आशा के साथ वितरित किया गया है कि यह उपयुक्त है, पर वारंटी के बिना; जिसमें व्यापारिक मापदंड वाली वारंटी भी नहीं है और न ही किसी लक्ष्य के लिए पर्याप्त होने का प्रावधान है। और जानकारी के लिए देखिए जे०एन०यू० साधारण सार्वजनिक लाइसेंस।\n\nआपको इस प्रोग्राम के साथ [{{SERVER}}{{SCRIPTPATH}}/COPYING जे०एन०यू० साधारण सार्वजनिक लाइसेंस की एक प्रति] मिल चुकी होगी; यदि नहीं तो सम्पर्क कीजिए फ़्री लाइसेंस फ़ाउन्डेशन, इंक., 51 फ़्रैंकलिन स्ट्रीट, पाँचवीं मंज़िल, बोस्टन, एम०ए० 02110-1301, यू०एस०ए० या [//www.gnu.org/licenses/old-licenses/gpl-2.0.html इसे ऑनलाइन पढ़ें].",
        "version-software": "इन्स्टॉल की हुई प्रणाली",
        "version-software-product": "प्रोडक्ट",
        "version-software-version": "अवतरण",
        "version-libraries": "स्थापित लाइब्रेरी",
        "version-libraries-library": "लाइब्रेरी",
        "version-libraries-version": "संस्करण",
+       "redirect": "अनुप्रेषित करें फ़ाइल, उपयोगकर्ता, या संशोधन पहचान के आधार पर",
        "redirect-legend": "फ़ाइल अथवा पृष्ठ को पुनर्प्रेषण",
        "redirect-summary": "यह विशेष पृष्ठ फ़ाइलनाम प्रदान करने पर फ़ाइल नाम को, पृष्ठ आइ॰दी अथवा अवतरण आइ॰दी देने पर पृष्ठ को, और सदस्य आइ॰दी देने पर सदस्य पृष्ठ को पुनर्प्रेषित करता है। उदाहरण: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], या [[{{#Special:Redirect}}/user/101]]।",
        "redirect-submit": "जायें",
        "tags-activate": "सक्रिय करें",
        "tags-deactivate": "निष्क्रिय करें",
        "tags-hitcount": "$1 {{PLURAL:$1|बदलाव|बदलाव}}",
+       "tags-manage-no-permission": "आपको बदलाव टैग के प्रबंधन की अनुमति नहीं है।",
+       "tags-create-heading": "नया टैग बनाएँ",
+       "tags-create-explanation": "पुनः निर्धारित रूप से, नवनिर्मित टैग उपयोगकर्ताओं और बॉट के लिए मौजूद रहेंगे।",
        "tags-create-tag-name": "चिप्पी का नाम",
        "tags-create-reason": "कारण:",
        "tags-create-submit": "बनाएँ",
        "tags-create-no-name": "आपको एक चिप्पि का नाम निर्दिष्ट करना चाहिए।",
+       "tags-create-invalid-chars": "टैग नामों के बीच कॉमा(<code>,</code>) या आगे के स्लैश नहीं होने चाहिए। (<code>/</code>).",
+       "tags-create-invalid-title-chars": "टैग नामों में ऐसे कैरेक्टर नहीं होने चाहिए जो पृष्ठ के शीर्षक में नहीं इस्तेमाल हो सकते हैं।",
+       "tags-create-already-exists": "टैग \"$1\" पहले से ही उपस्थित है।",
+       "tags-create-warnings-above": "निम्न लिखित {{PLURAL:$2|चेतावनी देखी गई है|चेतावनियाँ देखी गई हैं}}  जब टैग \"$1\" बनाने का प्रयास किया गया था:",
+       "tags-create-warnings-below": "क्या आप इस टैग को बनाना जारी रखना चाहते हैं?",
        "tags-delete-title": "चिप्पि हटायें",
+       "tags-delete-explanation-initial": "आप टैग \"$1\" को डाटाबेस से हटाने जा रहे हैं।",
+       "tags-delete-explanation-in-use": "टैग को {{PLURAL:$2|$2 संशोधन या लॉग प्रविष्टि|सभी $2 संशोधन और/या लॉग प्रविष्टियों}} से हटाया जाएगा जहाँ अब उसका प्रयोग किया जा रहा है।",
+       "tags-delete-explanation-warning": "यह क्रिया <strong>अपरिवर्तनीय</strong> है और <strong>उसे बदला नहीं जा सकता है</strong>, डाटाबेस प्रबंधक भी इस मामले में कुछ नहीं कर सकते। विश्वासपूर्ण रूप से तय कीजिए कि आप इसी टैग को हटाना चाहते हैं।",
+       "tags-delete-explanation-active": "<strong>टैग \"$1\" अब भी सक्रिय है, और इसका प्रयोग भविष्य में भी जारी रहेगा।</strong> इसे रोकने के लिए, उन स्थान/स्थानों पर जाइये जहाँ इस टैग का प्रयोग किया जा रहा है, और वहाँ उसे असक्षम कीजिए।",
        "tags-delete-reason": "कारण:",
+       "tags-delete-submit": "अपरिवर्तनीय रूप से इस टैग को हटाएँ",
+       "tags-delete-not-allowed": "विस्तार के द्वारा विवरण किए गए टैग हटाए नहीँ जा सकते जब तक कि विस्तार ही में इसके लिए प्रावधान न हो।",
+       "tags-delete-not-found": "टैग \"$1\" मौजूद नहीं है।",
+       "tags-delete-too-many-uses": "टैग \"$1\" का प्रयोग $2 के {{PLURAL:$2|संशोधन|संशोधनों}} से अधिक है, जिसका अर्थ यह है कि उसे हटाया नहीं जा सकता है।",
+       "tags-delete-warnings-after-delete": "टैग \"$1\" को सफलतापूर्वक हटाया गया, परन्तु निम्न लिखित {{PLURAL:$2|चेतावनी|चेतावनियाँ}} पाई गई:",
+       "tags-activate-title": "टैग सक्रिय करें",
+       "tags-activate-question": "आप टैग \"$1\" को सक्रिय करने जा रहे हैं।",
        "tags-activate-reason": "कारण:",
+       "tags-activate-not-allowed": "टैग \"$1\" को सक्रिय करना सम्भव नहीं है।",
+       "tags-activate-not-found": "टैग \"$1\" मौजूद नहीं है।",
        "tags-activate-submit": "सक्रिय करें",
+       "tags-deactivate-title": "टैग असक्रिय करें",
+       "tags-deactivate-question": "आप टैग \"$1\" को असक्रिय करने जा रहे हैं।",
        "tags-deactivate-reason": "कारण:",
+       "tags-deactivate-not-allowed": "टैग \"$1\" को असक्रिय करना सम्भव नहीं है।",
        "tags-deactivate-submit": "निष्क्रिय करें",
+       "tags-apply-no-permission": "आपको अनुमति नहीं है कि बदलाव टैगों को अपने बदलावों से जोड़ें।",
+       "tags-apply-not-allowed-one": "टैग \"$1\" मानवीय रूप से जोड़े जाने की अनुमति नहीं है।",
+       "tags-apply-not-allowed-multi": "निम्न लिखित {{PLURAL:$2|टैग की अनुमति नहीं है|टैगों की अनुमति नहीं है}} कि उसे मानवीय रूप से प्रयोग में लाया जाए: $1",
+       "tags-update-no-permission": "आपको व्यक्तिगत संशोधनों या लॉग प्रविष्टियों से बदलाव टैग जोड़ने या उन्हें हटाने की अनुमति नहीं है।",
+       "tags-update-add-not-allowed-one": "टैग \"\"$1\" को मानवीय रूप से जोड़ा नहीं जा सकता",
+       "tags-update-add-not-allowed-multi": "निम्न लिखित {{PLURAL:$2|टैग|या टैगों का समूह}} मानवीय रूप से जोड़ा नहीं जा सकता है: $1",
+       "tags-update-remove-not-allowed-one": "टैग \"$1\" को हटाए जाने की अनुमति नहीं है।",
+       "tags-update-remove-not-allowed-multi": "निम्न लिखित {{PLURAL:$2|टैग|कई टैग}} मानवीय रूप से हटाए नहीं जा सकते: $1",
+       "tags-edit-title": "टैग सम्पादित करें",
+       "tags-edit-manage-link": "टैग का प्रबंधन करें",
+       "tags-edit-revision-selected": "[[:$2]]: {{PLURAL:$1|का चयनित संशोधन|के चयनित कई संशोधन}}",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|चयनित लॉग घटना|चयनित लॉग घटनाएँ}}:",
+       "tags-edit-revision-legend": "टैगों को {{PLURAL:$1|इस संशोधन|सभी $1 संशोधनों}} से जोड़िये या हटाइये।",
+       "tags-edit-logentry-legend": "टैगों को {{PLURAL:$1|इस लॉग प्रविष्टि|सभी $1 लॉग प्रविष्टियों}} से जोड़िए या हटाइये।",
+       "tags-edit-existing-tags": "मौजूद टैग",
+       "tags-edit-existing-tags-none": "\"कुछ भी नहीं\"",
+       "tags-edit-new-tags": "नए टैग",
+       "tags-edit-add": "इन टैगों को जोड़िए:",
+       "tags-edit-remove": "इन टैगों को हटाएँ",
+       "tags-edit-remove-all-tags": "(सारे टैग हटाएँ)",
+       "tags-edit-chosen-placeholder": "कुछ टैगों को चुनिए",
+       "tags-edit-chosen-no-results": "उससे मिलते जुलते टैग नहीं मिले",
+       "tags-edit-reason": "कारण:",
+       "tags-edit-revision-submit": "बदलाव जोड़िए {{PLURAL:$1|इस अवतरण|$1 अवतरण}}",
+       "tags-edit-logentry-submit": "बदलाव जोड़िए {{PLURAL:$1|इस लौग प्रवक्ति|$1 लॉग प्रवक्तियाँ}}",
+       "tags-edit-success": "बदलाव सफलता पूर्वक जोड़े जा चुके हैं।",
+       "tags-edit-failure": "बदलाव नहीं जोडे जा सके हैं: $1",
+       "tags-edit-nooldid-title": "अवैध लक्ष्य का संशोधन",
+       "tags-edit-nooldid-text": "या तो आपने किसी लक्षित संशोधन का विवरण नहीं दिया है जहाँ इस कार्य को सम्पन्न करना है, या विवरण किया गया संशोधन है ही नहीं।",
+       "tags-edit-none-selected": "कृपया कम से कम एक टैग चुनिये ताकि उसे जोड़ा जाए या हटाया जाए",
        "comparepages": "पृष्ठों की तुलना करें",
        "compare-page1": "पृष्ठ १",
        "compare-page2": "पृष्ठ २",
        "htmlform-chosen-placeholder": "एक विकल्प चुनें",
        "htmlform-cloner-create": "अधिक जोड़ें",
        "htmlform-cloner-delete": "हटाएँ",
+       "htmlform-cloner-required": "कम से कम एक मूल्य की आवश्यकता है।",
        "sqlite-has-fts": "$1 पूर्ण पाठ खोज समर्थन के साथ",
        "sqlite-no-fts": "$1पूर्ण-पाठ खोज समर्थन के बिना",
        "logentry-delete-delete": "$1 ने पृष्ठ $3 {{GENDER:$2|हटा}} दिया",
        "revdelete-uname-unhid": "सदस्यनाम फिर सार्वजनिक किया गया",
        "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|changed}} प्रतिबंध सेटिंग {{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-interwiki": "$1 {{GENDER:$2|आयात किया गया}} $3 किसी और विकि से",
+       "logentry-merge-merge": "$1 {{GENDER:$2|विलय किया गया}} $3 को $4 में (संशोधन $5 तक)",
        "logentry-move-move": "$1 ने $3 पृष्ठ $4 पर {{GENDER:$2|स्थानांतरित}} किया",
        "logentry-move-move-noredirect": "$1 ने $3 पर पुनर्निर्देश छोड़े बिना उसे $4 पर {{GENDER:$2|स्थानांतरित}} किया",
        "logentry-move-move_redir": "$1 ने $4 से पुनर्निर्देश हटाकर $3 को उसपर {{GENDER:$2|स्थानांतरित}} किया",
        "logentry-rights-rights-legacy": "$1 ने $3 के सदस्य समूह {{GENDER:$2|बदले}}",
        "logentry-rights-autopromote": "$1 के सदस्य समूह स्वतः $4 से बदलकर $5 {{GENDER:$2|किये}} गए",
        "logentry-upload-upload": "$1 {{GENDER:$2|ने}} $3 अपलोड किया",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|अपलोड किया गया}} $3 का एक नया अवतरण",
+       "logentry-upload-revert": "$1 {{GENDER:$2|अपलोड किया गया}} $3",
+       "log-name-managetags": "समय प्रबंधन लॉग",
+       "log-description-managetags": "इस पृष्ठ में उन प्रबंधन कार्यों की सूची है जो [[Special:Tags|टैगों]] से सम्बंधित हैं। लॉग में केवल वही क्रियाओं को बयान किया गया है जो मानवीय रूप से किसी प्रबंधक द्वारा पूरा किया गया हो। टैगों को विकि सॉफ़्टवेयर द्वारा बनाया या हटाया जा सकता है जिसकी प्रविष्टि लॉग में होना आवश्यक नहीं है।",
+       "logentry-managetags-create": "$1 {{GENDER:$2|बनाया गया}} टैग \"$4\"",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|हटाया गया}} टैग \"$4\" ($5 से हटाया गया {{PLURAL:$5|संशोधन या लॉग प्रविष्टि|संशोधन या लॉग प्रविष्टियाँ }})",
+       "logentry-managetags-activate": "टैग \"$4\" उपयोगकर्ताओं और बॉटों के प्रयोग के लिए $1 {{GENDER:$2|सक्रिय किया गया}}",
+       "logentry-managetags-deactivate": "टैग \"$4\" उपयोगकर्ताओं और बॉटों के प्रयोग के लिए $1 {{GENDER:$2|असक्रिय किया गया}}",
+       "log-name-tag": "टैग लॉग",
+       "log-description-tag": "इस पृष्ठ पर देखा जा सकता है कि उपयोगकर्ता कब व्यक्तिगत संशोधनों और लॉग प्रविष्टियों से [[Special:Tags|टैग]] जोड़ चुके हैं या हटा चुके हैं। लॉग से टैगिंग कार्यों की सूची नहीं मिलती कि वह कब सम्पादन, हटाए जाने या ऐसे किसी काम का हिस्सा बने।",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|जोड़ दिया गया}} {{PLURAL:$7|टैग|टैग-समूह}} $6 के संशोधन $4  $3 पृष्ठ पर",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|जोड़ दिया गया}} {{PLURAL:$7|टैग|टैग-समूह}} $6 लॉग प्रविष्टि $5 $3 पृष्ठ पर",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|हटा दिया गया}} {{PLURAL:$9|टैग|टैग-समूह}} $8 $4 संशोधन से  $3 पृष्ठ पर",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|हटा दिया गया}} {{PLURAL:$9|टैग|टैग-समूह}} $8 $5 संशोधन से  $3 पृष्ठ पर",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|उद्यतन किए गए}} टैग संशोधन $4 पर पृष्ठ $3 के ({{PLURAL:$7|जोड़ दिए गए}} $6; {{PLURAL:$9|हटाए गए}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|उद्यतन किए गए}} टैग संशोधन $5 पर पृष्ठ $3 के ({{PLURAL:$7|जोड़ दिए गए}} $6; {{PLURAL:$9|हटाए गए}} $8)",
        "rightsnone": "(कोई नहीं)",
        "revdelete-summary": "संपादन सारांश",
        "feedback-adding": "पृष्ठ पर प्रतिक्रिया जोड़ना ...",
+       "feedback-back": "पीछे जाएँ",
        "feedback-bugcheck": "शानदार! जांच ले कहीं ये [ $1 known bugs] पहले से ही न हो ।",
        "feedback-bugnew": "मैं जाँच कीया। एक नया बग रिपोर्ट करें",
        "feedback-bugornote": "यदि आप किसी तकनीकी परेशानी को विस्तार से समझाने के लिये तैयार हैं तो कृपया [$1 बग फ़ाइल करें]।\nयदि नहीं, तो आप नीचे दिये सरल फ़ॉर्म का प्रयोग कर सकते हैं। आपकी टिप्पणी आपके सदस्य नाम और आपके ब्राउज़र के नाम के सहित \"[$3 $2]\" पृष्ठ में जोड़ दी जाएगी।",
        "feedback-cancel": "रद्द करें",
        "feedback-close": "हो गया",
+       "feedback-external-bug-report-button": "तकनीकी कार्य को जोड़ना",
+       "feedback-dialog-title": "प्रतिपुष्टि भेजिए",
+       "feedback-dialog-intro": "आप नीचे दिए गए सरल फ़ॉर्म का प्रयोग करके अपनी प्रतिपुष्टि भेज सकते हैं। आपकी टिप्पणी पृष्ठ \"$1\" से आपके सदस्यनाम के आगे जोड़ दी जाएगी।",
+       "feedback-error-title": "त्रुटि",
        "feedback-error1": "त्रुटि: न पहचाना गया परिणाम एपीआई से",
        "feedback-error2": "त्रुटि: संपादन विफल रहा है",
        "feedback-error3": "त्रुटि: एपीआई से कोई प्रतिक्रिया नहीं",
+       "feedback-error4": "त्रुटि: दिए गए प्रतिपुष्टि शीर्षक के आगे सन्देश नहीं जोड़ा जा सका",
        "feedback-message": "संदेश:",
        "feedback-subject": "विषय:",
        "feedback-submit": "जमा करें",
+       "feedback-terms": "मैं समझता हूँ कि मेरे इएजन्ट जानकारी  में मेरे सटीक ब्राउज़र और ऑरेटिंग सिस्टम के अवतरण की भी जानकारी है और ये सार्वजनिक रूप से मेरी दी गई प्रतिपुष्टि के साथ दिखाया जाएगा।",
+       "feedback-termsofuse": "मैं प्रयोग की शर्तों के अनुरूप प्रतिपुष्टि देने पर सहमत हूँ।",
        "feedback-thanks": "धन्यवाद! आपकी प्रतिक्रिया पृष्ठ में नियुक्त किया गया है \"[ $2  $1 ]\"।",
+       "feedback-thanks-title": "धन्यवाद!",
+       "feedback-useragent": "सदस्य कर्ता:",
        "searchsuggest-search": "खोज",
        "searchsuggest-containing": "...से युक्त",
        "api-error-badaccess-groups": "आपको इस विकि के लिए फ़ाइलें अपलोड करने की अनुमति नहीं है.",
        "api-error-ok-but-empty": "आंतरिक त्रुटि: सर्वर से कोई जवाब नहीं.",
        "api-error-overwrite": "मौजूदा फ़ाइल को अधिलेखित करने की अनुमति नहीं है",
        "api-error-stashfailed": "आंतरिक त्रुटि: सर्वर अस्थाई फ़ाइल को संग्रहीत करने में विफल।",
+       "api-error-publishfailed": "आंतरिक त्रुटि: सर्वर अस्थाई फ़ाइल को प्रकासन करने में विफल।",
+       "api-error-stasherror": "फ़ाइल को स्टैश पर अपलोड करने के दौरान एक त्रुटि देखी गई है।",
+       "api-error-stashedfilenotfound": "स्टैश में डाली गई फ़ाइल वहाँ से अपलोड करने के प्रयास के दौरान नहीं मिली।",
+       "api-error-stashpathinvalid": "वह स्थान जहाँ स्टैश वाली फ़ाइल मिलना चाहिए था अवैध है।",
+       "api-error-stashfilestorage": "फ़ाइल को स्टैश में अपलोड करने के दौरान एक त्रुटि देखी गई है।",
+       "api-error-stashzerolength": "सरवर उस फ़ाइल को स्टैश नहीं कर सका, क्योंकि उसकी लम्बाई शून्य है।",
+       "api-error-stashnotloggedin": "आपको लॉग्ड इन होना चाहिए ताकि फ़ाइल को अपलोड स्टैश में सुरक्षित किया जा सके।",
+       "api-error-stashwrongowner": "स्टैश की जिस फ़ाइल तक आप पहुँचना चाहते हैं वह आपसे सम्बंधित नहीं है।",
+       "api-error-stashnosuchfilekey": "फ़ाइल की चाबी जिसे आप स्टैश में प्रयोग में लाने का प्रयास कर रहे थे, मौजूद नहीं है।",
        "api-error-timeout": "सर्वर ने अपेक्षित समय के भीतर जवाब नहीं दिया",
        "api-error-unclassified": "एक अज्ञात त्रुटि उत्पन्न हुई",
        "api-error-unknown-code": "अज्ञात त्रुटि: \" $1 \"",
        "duration-decades": "$1 {{PLURAL:$1|दशक}}",
        "duration-centuries": "$1 {{PLURAL:$1|शताब्दी}}",
        "duration-millennia": "$1 {{PLURAL:$1|सहस्राब्दी}}",
+       "rotate-comment": "चित्र को $1 {{PLURAL:$1|डिग्री|डिग्रियों}} से दक्षिणावर्त घुमाया गया था",
+       "limitreport-title": "पार्सर का विवरण डाटा:",
+       "limitreport-cputime": "सी०पी०यू० समय का प्रयोग",
        "limitreport-cputime-value": "$1 {{PLURAL:$1|सॅकेंड}}",
+       "limitreport-walltime": "रियल टाइम प्रयोग",
        "limitreport-walltime-value": "$1 {{PLURAL:$1|सॅकेंड}}",
+       "limitreport-ppvisitednodes": "प्रिप्रोसेसर जा चुकी नोड की गिनती",
+       "limitreport-ppgeneratednodes": "प्रिप्रोसेसर द्वारा जारी नोड की गिनती",
        "limitreport-postexpandincludesize": "विस्तार उपरांत विकिपाठ आकार",
        "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|बाइट}}",
        "limitreport-templateargumentsize": "साँचा प्राचल आकार",
        "expand_templates_input": "इनपुट पाठ:",
        "expand_templates_output": "परिणाम",
        "expand_templates_xml_output": "XML आउटपुट",
+       "expand_templates_html_output": "सीधे-साधा एचटीएमएल आउटपुट",
        "expand_templates_ok": "ओके",
        "expand_templates_remove_comments": "टिप्पणी हटायें",
        "expand_templates_remove_nowiki": "परिणाम में <nowiki> टैग हटाएँ",
        "expand_templates_generate_xml": "XML का पार्स (parse) वृक्ष दर्शायें",
+       "expand_templates_generate_rawhtml": "सीधे-साधा एचटीएमएल दिखाएँ",
        "expand_templates_preview": "झलक",
+       "expand_templates_preview_fail_html": "<strong>अगर यह वैध पूर्ववावलोकन प्रयास है, तो फिर से प्रयास कीजिए।</strong>\nअगर इससे काम न बने तो [[Special:UserLogout|लॉग आउट होकर]] फिर से लॉग इन हो जाइये।",
+       "expand_templates_preview_fail_html_anon": "<em>चूँकि {{SITENAME}} सीधे-साधे रूप से एचटीएमएल-सक्षम है और आप लॉग्ड इन नहीं है, पूर्वावलोकन छिपा हुआ है ताकि सम्भावित जावास्क्रिप्ट हमले को रोका सके।</em>\n\n<strong>अगर यह वैध पूर्वावलोकन प्रयास है तो कृपया [[Special:UserLogin|लॉग इन करके]] फिर से प्रयास कीजिए।</strong>",
        "pagelanguage": "पृष्ठ भाषा चुनाव",
        "pagelang-name": "पृष्ठ",
        "pagelang-language": "भाषा",
        "action-pagelang": "पृष्ठ भाषा बदलने",
        "log-name-pagelang": "पृष्ठ भाषा बदलाव लॉग",
        "log-description-pagelang": "यह पृष्ठ भाषाओं में परिवर्तन का लॉग है।",
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|बदल दिया गया}} पृष्ठ भाषा को $3 के लिए $4 से $5 ।",
+       "default-skin-not-found": "ओह! आपकी विकि का पूर्व निर्धारित चमड़ा जैसा कि <code dir=\"ltr\">$wgDefaultSkin</code> में बताया गया है<code>$1</code>, उपलब्ध नहीं है।\n\nआपका इन्स्टालेशन इन चमड़ो को सम्मिलित करता है {{PLURAL:$4|चमड़ा|चमड़े}}। देखिए [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: चमड़ो का सम्मित करना] ताकि आपको जानकारी मिले कि कैसे {{PLURAL:$4|उसे|उनको सम्मिलित किया जाए और निर्धारित को तय करें}}.\n\n$2\n\n; अगर आपने अभी मीडियाविकि इन्स्टाल किया है:\n: आपने शायद गिट से इन्स्टाल किया है, या सीधे स्रोत कोड से किया है जिसके लिए कोई और तरीक़े का प्रयोग किया है। यह तो आशा के अनुरूप है। कोशिश कीजिए कि कुछ चमड़े [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's अमीडिया-विकि के चमड़े वाली डाइरेक्ट्री से डाउन्लोड करें], जिसके लिए आप:\n:* डाउनलोड कीजिए [https://www.mediawiki.org/wiki/Download तारबॉल इन्स्टालर], जो कई चमड़ों और विस्तारों में मौजूद है। आप चमड़ों का कोड <code>skins/</code> उसकी डाइरेक्ट्री से कॉपी-पेस्ट कर सकते हैं। \n:* डाउनलोड कीजिए व्यक्तिगत चमड़े के तारबॉल [https://www.mediawiki.org/wiki/Special:SkinDistributor मीडिया विकि] से।\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins गिट का प्रयोग करके डाउलोड कर सकते हैं].\n: ऐसा करने के दौरान आपकी गिट-रिपॉज़िटरी को कुछ नहीं होना चाहिए यदि आप विकासकर्ता हो। \n; अगर आपने मीडियाविकि को अभी अपग्रेड किया है:\n: मीडियाविकि 1.24 और इसके नवीन रूप स्वतः रूप से चमड़ों को सक्षम नहीं करते (देखिए [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: चमड़ो की स्वतः खोज]). आप निम्न लिखित को पेस्ट कर सकते हैं: {{PLURAL:$5|लाइन|लाइनें}}  <code>LocalSettings.php</code> में ताकि {{PLURAL:$5|वह|सभी}} सक्षम हों जैसा कि इन्स्टाल किए गए {{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: आपने शायद गिट से इन्स्टाल किया है, या सीधे स्रोत कोड से किया है जिसके लिए कोई और तरीक़े का प्रयोग किया है। यह तो आशा के अनुरूप है। कोशिश कीजिए कि कुछ चमड़े [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's मीडिया-विकि के चमड़े वाली डाइरेक्ट्री से डाउन्लोड करें], जिसके लिए आप:\n:* डाउनलोड कीजिए [https://www.mediawiki.org/wiki/Download तारबॉल इन्स्टालर], जो कई चमड़ों और विस्तारों में मौजूद है। आप चमड़ों का कोड <code>skins/</code> उसकी डाइरेक्ट्री से कॉपी-पेस्ट कर सकते हैं। \n:* डाउनलोड कीजिए व्यक्तिगत चमड़े के तारबॉल [https://www.mediawiki.org/wiki/Special:SkinDistributor मीडिया विकि] से।\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins गिट का प्रयोग करके डाउलोड कर सकते हैं].\n: ऐसा करने के दौरान आपकी गिट-रिपॉज़िटरी को कुछ नहीं होना चाहिए यदि आप विकासकर्ता हो।",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (सक्षम)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''असक्षम''')",
+       "mediastatistics": "मीडिया के आंकड़े",
+       "mediastatistics-summary": "अपलोड किए गए फ़ाइल प्रकारों के आंकड़े। इसमें केवल नवीनतम फ़ाइल के अवतरण शामिल हैं। पुराने या हटाए गए फ़ाइलों के अवतरणों को अलग रखा गया है। \n\nThis only includes the most recent version of a file. Old or deleted versions of files are excluded.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 बाइट|$1 बाइट्स}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "माइम प्रकार",
+       "mediastatistics-table-extensions": "सम्भवतः विस्तार",
        "mediastatistics-table-count": "फ़ाइलों की संख्या",
+       "mediastatistics-table-totalbytes": "संयुक्त साइज़",
        "mediastatistics-header-unknown": "अज्ञात",
        "mediastatistics-header-bitmap": "बिटमैप चित्र",
+       "mediastatistics-header-drawing": "उतारे गए चित्र (वेक्टर चित्र)",
        "mediastatistics-header-audio": "ऑडियो",
        "mediastatistics-header-video": "विडियो",
+       "mediastatistics-header-multimedia": "उच्च-प्रारूप माध्यम",
        "mediastatistics-header-office": "ऑफ़िस",
        "mediastatistics-header-text": "पाठ",
+       "mediastatistics-header-executable": "निष्पादन योग्य",
+       "mediastatistics-header-archive": "संकुचित प्रारूप",
+       "json-warn-trailing-comma": "$1 पीछे रह रहा {{PLURAL:$1|कॉमा को| कॉमाओं को}} जे०एस०ओ०एन० से हटाया गया",
+       "json-error-unknown": "जे०एस०ओ०एन० में एक समस्या थी। त्रुटि: $1",
+       "json-error-depth": "स्टैक की अधिकतम गहराई बढ़ चुकी है।",
+       "json-error-state-mismatch": "अवैध या बुरी शक्ल में बना जे०एस०ओ०एन",
+       "json-error-ctrl-char": "कंट्रोल कैरेक्टर त्रुटि, सम्भतः अशुद्ध रूप से एनकोड किया गया है",
        "json-error-syntax": "सिन्टॅक्स त्रुटि",
+       "json-error-utf8": "बुरी शक्ल में बना यू०टी०एफ़-८ कैरेक्टर, जिसे सम्भवतः अशुद्ध रूप से इनकोड किया गया है",
+       "json-error-recursion": "एनकोडिंग वाले मूल्य में एक या उससे अधिक पुनरावर्ती वाले सन्दर्भ शामिल हैं",
+       "json-error-inf-or-nan": "एक या उससे अधिल एन०ए०एन या आई०एन०एफ़ मूल्य एनकोडिंग किए जाने वाले मूल्य में शामिल हैं।",
+       "json-error-unsupported-type": "एक ऐसे प्रकार का मूल्य दिया गया था जिसे एनकोड नहीं किया जा सकता है",
        "headline-anchor-title": "इस अनुभाग की कड़ी",
        "special-characters-group-latin": "लाटिन",
        "special-characters-group-latinextended": "लाटिन विस्तारित",
        "special-characters-group-devanagari": "देवनागरी",
        "special-characters-group-thai": "थाई",
        "special-characters-group-lao": "लाओ",
-       "special-characters-group-khmer": "खमेर"
+       "special-characters-group-khmer": "खमेर",
+       "special-characters-title-endash": "एन डैश",
+       "special-characters-title-emdash": "एम डैश",
+       "special-characters-title-minus": "ऋण चिह्न"
 }
index 17fe491..b639204 100644 (file)
@@ -10,7 +10,8 @@
                        "Oxyzen",
                        "Tagimata",
                        "Taylortheturtle",
-                       "아라"
+                       "아라",
+                       "Redhotchili23"
                ]
        },
        "tog-underline": "Kuritan sa idalom ang mga tabid:",
        "gotaccount": "May yara ka na sang akawnt? $1.",
        "gotaccountlink": "Mag sulod",
        "userlogin-resetlink": "Nalipatan mo bala ang mga detalye sang imo pagsulod?",
+       "userlogin-createanother": "Maghimo sing panibag-o nga account",
        "createaccountmail": "Paagi sa e-mail",
        "createaccountreason": "Rason:",
+       "createacct-submit": "Maghimo sing imo account",
+       "createacct-another-submit": "Maghimo sing panibag-o nga account",
        "badretype": "Ang mga pasword nga imo gintum-ok wala naga-santo.",
        "userexists": "Ang gamit-pangalan nga imo ginbutang ginagamit na.\nPalihog magpili sang lain nga pangalan.",
        "loginerror": "May sala sa pagsulod",
        "cannotchangeemail": "Ang mga e-mail adres indi mahimo nga ilisan sa sini nga wiki.",
        "emaildisabled": "Ang ini nga lugar indi makapadala sang mga e-mail.",
        "accountcreated": "Nahimo na ang akawnt",
-       "accountcreatedtext": "Ang akawnt sang manug-gamit nga $1 nahimo na.",
+       "accountcreatedtext": "Ang account sang taggamit para kay [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) nahimo na.",
        "createaccount-title": "Pagbuhat sang akawnt para sa {{SITENAME}}",
        "createaccount-text": "May naghimo na sang akawnt para sa imo e-mail adres sa {{SITENAME}} ($4), nakapangalan nga \"$2\", nga may pasword nga \"$3\".\nDapat ka na magsulod kag islan ang imo pasword subong.\n\nMahimo nga imo pabayaan ang ini nga mensahe, kon ang ini nga akawnt sala lang ang paghimo.",
        "login-throttled": "May tuman ka na na kadamo nga pagtilaw sa pagsulod.\nPalihog maghulat anay bag-o tilawan liwat.",
        "login-abort-generic": "Ang imo pagsulod indi madinalag-on - Gin-untat",
        "loginlanguagelabel": "Hambalanon: $1",
        "suspicious-userlogout": "Ang imo pagpangabay nga mag-guha ginpungga bangud nga ini mahimo nga ginpadala sang guba nga brawser ukon sang proksy nga nagapang-tago.",
+       "pt-createaccount": "Maghimo sing account",
        "php-mail-error-unknown": "Wala nahibaluan nga sala sa kapuslanan nga sulat() sang PHP.",
        "user-mail-no-addy": "Gintilawan nga magpadala sang e-mail biskan wala sang e-mail adres.",
        "user-mail-no-body": "Nakatilaw magpadala sang email nga waay unod ukon malip-ot katama ang unod sang mensahe.",
        "preview": "Ipakita subong",
        "showpreview": "Ipakita nga daan",
        "showdiff": "Ipakita ang inislan",
-       "anoneditwarning": "'''Pa-andam:''' Wala ka pa nakasulod.\nIgasulat ang imo IP adres sa historya sini nga inislan na pahina.",
+       "blankarticle": "<strong>Pahibalo:</strong> Ang panid nga imo ginahimo wala sing unod. Kon imo tum-ukon liwat ang \"{{int:savearticle}}\", ang panid pagahimuon nga wala sing unod.",
+       "anoneditwarning": "<strong>Pahibalo:</strong> Wala ka nakasulod. Kitaon sa publiko ang imo nga IP address kon ikaw maghimo sang pagbaylo. Kon ikaw <strong>[$ magsulod]</strong> ukon <strong>[$ maghimo sing account]</strong>, ang imo mga ginhimo nga pagbaylo ipahanungod sa imo nga username, kaupod sang iban pa nga kapuslanan.",
        "anonpreviewwarning": "''Wala ka pa nakasulod. Igasulat ang imo IP adres sa historya sini nga inislan na pahina.''",
        "missingsummary": "'''Pahanumdom:''' Wala ka naghatag sang malip-ot nga pagsaysay sang imo gin-ilisan.\nKon tum-okon mo liwat ang \"{{int:savearticle}}\", ang imo gin-ilisan pagatiponon nga wala sini.",
        "missingcommenttext": "Palihog butangi sang komento sa idalom.",
        "edit-gone-missing": "Indi mabag-o ang panid.\nIni nagapakita nga gindula na.",
        "edit-conflict": "May pagpamatok sa pag-ilis.",
        "edit-no-change": "Ang imo pag-ilis ginpabayaan lamang, kay wala sang pagbag-o nga natabo sa teksto.",
+       "postedit-confirmation-created": "Nahimo na ang panid.",
        "edit-already-exists": "Indi mahimo ang bag-o nga panid.\nNaga-eksister na ini.",
        "defaultmessagetext": "Teksto sang mensahe nga wala pa ma-ilisan",
        "content-failed-to-parse": "Di matuman ang pag-parse $2 nga unod para sa $1 nga modelo: $3",
        "shown-title": "Magpakita sang $1 ka {{PLURAL:$1|resulta|mga resulta}} kada panid",
        "viewprevnext": "Tan-awon ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''May yara sang panid nga ginhingalanan nga \"[[:$1]]\" sa sini nga wiki.'''",
-       "searchmenu-new": "'''Gintuga ang panid nga \"[[:$1]]\" sa sini nga wiki!'''",
+       "searchmenu-new": "<strong>Himua ang panid nga \"[[:$1]]\" sa ini nga wiki!</strong> {{PLURAL:$2|0=|Linglinga man ang panid nga nakit-an sa imo nga pagpanglaghap.|Linglinga man ang mga bunga-panglaghap nga nakit-an.}}",
        "searchprofile-articles": "Mga panid sang unod",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Tanan-tanan",
        "right-override-export-depth": "Ipagwa ang mga panid kaupod ang mga sugpon nga mga panid tubtub isa idalum nga 5.",
        "right-sendemail": "Magpadala sang email sa iban nga naga-usar",
        "right-passwordreset": "Tan-awa ang mga email sang password reset",
+       "right-managechangetags": "Maghimo kag magdula sing [[Special:Tags|mga tag]] halin sa database.",
        "newuserlogpage": "Naga-usar nga ginhimo log",
        "newuserlogpagetext": "Ini ang isa ka log sang mga ginhimo sang naga-usar",
        "rightslog": "Karapatan sang naga-usar log",
        "action-userrights-interwiki": "Bagohon ang kinamatarong sang mga naga-usar sa iban nga mga wiki.",
        "action-siteadmin": "Isira kag abrihan ang bulutangan sang mga impormasyon",
        "action-sendemail": "Magpadala sang mga email",
+       "action-managechangetags": "maghimo kag magdula sang mga tag halin sa database",
        "nchanges": "$1 {{PLURAL:$1|bag-ohon|mga ginbag-o}}",
        "recentchanges": "Mga Bag-o nga Inislan",
        "recentchanges-legend": "Mga pililian sa bag-o lang na himo",
        "file-too-large": "Ang dokumeto ginapadala mo madako gid.",
        "filename-tooshort": "Ang ngalan sang dokumento malipot gid.",
        "filetype-banned": "Ini sari ni dokumento madumili.",
+       "tmp-create-error": "Indi mahimo ang temporaryo nga file.",
        "watchthisupload": "Bantayan ining panid",
+       "upload-file-error-text": "May nahitabo nga kasayupan sa sulod sing nagtinguha nga maghimo sang temporaryo nga file sa server.",
        "license": "Pagpanglisensya",
        "license-header": "Pagpanglisensya",
        "file-anchor-link": "File",
        "restriction-level": "Ginabawalan nga lebel:",
        "restriction-edit": "Ilisan",
        "restriction-move": "Saylohon",
+       "restriction-create": "Maghimo",
+       "undeletehistory": "Kon ipahauli ang panid, ang tanan nga pagbaylo ipahauli sa maragtas.\nKon may bag-o nga panid nga may kasubong nga ngalan nga ginhimo humalin sang pagdula, ang tanan nga ginpahauli nga pagbaylo magapakita sa nahauna nga maragtas.",
        "undeletelink": "tan-aw/ginbalik",
        "undeleteviewlink": "Tan-awa",
        "undelete-search-submit": "Pangita-a",
        "blocklogentry": "napunggan [[$1]] nga may-ara oras nga pag-ekspayr na $2 $3",
        "unblocklogentry": "di pagpugong $1",
        "block-log-flags-nocreate": "paghimo sang akawnt ay gin untat",
+       "range_block_disabled": "Nauntat ang kasangkul sang tagdumala nga maghimo sing range blocks.",
        "lockconfirm": "Huo, gusto ko gid isirado ang bulutangan sang impormasyon.",
        "unlockconfirm": "Huo, gusto ko gid abrihon ang bulutangan sang impormasyon.",
        "lockbtn": "Isira ang bulutangan sang impormasyon.",
index cc114db..17ba6f4 100644 (file)
@@ -6,7 +6,8 @@
                        "Jvm",
                        "Masterches",
                        "Urhixidur",
-                       "아라"
+                       "아라",
+                       "Tisave"
                ]
        },
        "tog-underline": "Souliyen lyen yo :",
        "tog-hidepatrolled": "Kache modifikasyon yo ki fèk fèt pou moun ki ap veye yo",
        "tog-newpageshidepatrolled": "Kache paj ki siveye yo nan mitan lis nouvo paj yo",
        "tog-extendwatchlist": "Etann lis swivi pou ou kapab wè tout chanjman yo, pa sèlman sa ki fèk fèt yo",
-       "tog-usenewrc": "Itilize modifikasyon ki fèk fèt yo ki alemye (sa mande JavaScript)",
+       "tog-usenewrc": "Sanble modifikasyon pou chak paj nan chanjman resan ak paj an vèy",
        "tog-numberheadings": "Nimewote otomatikman tit yo",
-       "tog-showtoolbar": "Montre meni modifikasyon an (sa mande JavaScript)",
-       "tog-editondblclick": "Klike de fwa pou modifye yon paj (sa mande JavaScript)",
-       "tog-editsectiononrightclick": "Pemèt modifye yon seksyon lè ou klike a dwat sou tit seksyon an (sa mande JavaScript)",
-       "tog-watchcreations": "Mete paj mwen kreye yo nan lis swivi mwen.",
-       "tog-watchdefault": "Mete paj mwen edite yo nan lis swivi mwen",
-       "tog-watchmoves": "Mete paj mwen deplase yo nan lis swivi mwen",
-       "tog-watchdeletion": "Mete paj mwen efase yo nan lis swivi mwen",
+       "tog-showtoolbar": "Montre zouti chanjman yo",
+       "tog-editondblclick": "Klike de fwa pou chanje yon paj",
+       "tog-editsectiononrightclick": "Pemèt chanje yon seksyon lè ou klike a dwat sou tit seksyon an",
+       "tog-watchcreations": "Ajoute paj mwen kreye yo nan lis swivi mwen.",
+       "tog-watchdefault": "Ajoute paj mwen chanje yo nan lis swivi mwen",
+       "tog-watchmoves": "Ajoute paj mwen deplase yo nan lis swivi mwen",
+       "tog-watchdeletion": "Ajoute paj mwen efase yo nan lis swivi mwen",
+       "tog-watchrollback": "Ajoute paj kote mwen ranvèse chanjman yo nan lis swivi mwen",
        "tog-minordefault": "Make tout modifikasyon mwen yo \"tou piti\" pa defo",
        "tog-previewontop": "Montre kout je anvan zòn modifikasyon",
        "tog-previewonfirst": "Montre kout je pou chak premye modifikasyon",
-       "tog-enotifwatchlistpages": "Voye m imèl lè youn nan paj m ap swiv yo chanje",
+       "tog-enotifwatchlistpages": "Voye yon imèl ban mwen lè youn nan paj m ap swiv yo chanje",
        "tog-enotifusertalkpages": "Voye m imèl lè paj itilizatè m nan chanje",
-       "tog-enotifminoredits": "Voye m imèl tou pou modifikasyon paj yo ki tou piti",
+       "tog-enotifminoredits": "Voye yon imèl ban mwen pou ti chanjman paj ak fichye",
        "tog-enotifrevealaddr": "Montre adrès imèl mwen nan kominikasyon notifikasyon yo",
        "tog-shownumberswatching": "Montre kantite itlizatè k’ap swiv",
-       "tog-oldsig": "Gade pou wè siyati ki egziste deja:",
+       "tog-oldsig": "Siyati ki la deja a:",
        "tog-fancysig": "Konsidere siyati sa tankou yon wikitèks (san lyen ki ta otomatik)",
-       "tog-uselivepreview": "Itilize kout je an dirèk (sa mande JavaScrip) (Esperimantal)",
+       "tog-uselivepreview": "Sèvi ak vizyònman dirèk",
        "tog-forceeditsummary": "Notifye m lè m ap antre yon somè modifikasyon vid",
        "tog-watchlisthideown": "Kache modifikasyon m yo nan lis swivi mwen a",
        "tog-watchlisthidebots": "Kache modifikasyon wobo nan lis swivi mwen a",
        "tog-diffonly": "Pa montre enfòmasyon yon paj ki anba chanjman yo montre nan konparezon",
        "tog-showhiddencats": "Montre kategori kache yo",
        "tog-norollbackdiff": "Pa montre chanjman yo lè mwen fè yon revokasyon",
+       "tog-useeditwarning": "Avèti lè m ap kite yon paj chanjman san m pa sovgade",
+       "tog-prefershttps": "Toujou sèvi ak yon koneksyon sekirize lè m ap konekte",
        "underline-always": "Toujou",
        "underline-never": "Jamè",
-       "underline-default": "Selon paramèt navigatè",
+       "underline-default": "Dekorasyon ou navigatè pa defo",
        "editfont-style": "Estil karaktè yo nan zòn modifikasyon:",
        "editfont-default": "Selon paramèt navigatè",
        "editfont-monospace": "Estil karaktè Monospaced (espas fiks)",
        "oct": "okt",
        "nov": "nov",
        "dec": "des",
+       "january-date": "$1 janvye",
+       "february-date": "$1 fevriye",
+       "march-date": "$1 mas",
+       "april-date": "$1 avril",
+       "may-date": "$1 me",
+       "june-date": "$1 jwen",
+       "july-date": "$1 jwiyè",
+       "august-date": "$1 out",
+       "september-date": "$1 septanm",
+       "october-date": "$1 oktòb",
+       "november-date": "$1 novanm",
+       "december-date": "$1 desanm",
        "pagecategories": "{{PLURAL:$1|Kategori|Kategori yo}}",
        "category_header": "Paj yo ki nan kategori « $1 »",
        "subcategories": "Soukategori yo",
        "listingcontinuesabbrev": "(kontinye)",
        "index-category": "Paj endèkse yo",
        "noindex-category": "Paj ki pa endèkse yo",
+       "broken-file-category": "Paj ak lyen fichye kase",
        "about": "Apwopo",
        "article": "Atik",
        "newwindow": "(Ouvè nan yon lòt fenèt)",
        "cancel": "Anile",
        "moredotdotdot": "Pi plis …",
-       "mypage": "Paj mwen",
-       "mytalk": "Paj diskisyon mwen an",
+       "morenotlisted": "Lis sa a pa konplè.",
+       "mypage": "Paj",
+       "mytalk": "Diskisyon",
        "anontalk": "Paj diskisyon pou adrès IP sa",
        "navigation": "Navigasyon",
        "and": "&#32;epi",
        "actions": "Aksyon yo",
        "namespaces": "Espas non yo",
        "variants": "Varyant yo",
+       "navigation-heading": "Meni navigasyon",
        "errorpagetitle": "Erè",
        "returnto": "Ritounen nan paj $1.",
        "tagline": "Yon atik de {{SITENAME}}.",
        "permalink": "Lyen pou tout tan",
        "print": "Enprime",
        "view": "Gade",
+       "view-foreign": "Gade sou $1",
        "edit": "Modifye",
+       "edit-local": "Chanje on deskripsyon lokal",
        "create": "Kreye",
+       "create-local": "Ajoute on deskription lokal",
        "editthispage": "Modifye paj sa a",
        "create-this-page": "Kreye paj sa",
        "delete": "Efase",
        "deletethispage": "Efase paj sa",
+       "undeletethispage": "Retabli paj sa a",
        "undelete_short": "Restore {{PLURAL:$1|Yon modifikasyon| $1 modifikasyon yo}}",
        "viewdeleted_short": "Gade {{PLURAL:$1|yon modifikasyon ki te efase|$1 modifikasyon yo ki te efase}}",
        "protect": "Pwoteje",
        "protect_change": "Chanje pwoteksyon paj sa",
        "protectthispage": "Pwoteje paj sa",
-       "unprotect": "Pa pwoteje",
-       "unprotectthispage": "Depwoteje paj sa",
+       "unprotect": "Chanje nivo pwoteksyon",
+       "unprotectthispage": "Chanje nivo pwoteksyon",
        "newpage": "Nouvo paj",
        "talkpage": "Diskite paj sa a",
        "talkpagelinktext": "Diskite",
        "otherlanguages": "Nan lòt lang yo",
        "redirectedfrom": "(Redirije depi $1)",
        "redirectpagesub": "Paj pou redireksyon",
+       "redirectto": "Voye sou:",
        "lastmodifiedat": "Paj sa te modifye pou dènye fwa $1 a $2.<br />",
        "viewcount": "Paj sa te konsilte {{PLURAL:$1|yon fwa|$1 fwa}}.",
        "protectedpage": "Paj pwoteje",
        "jumptonavigation": "Navigasyon",
        "jumptosearch": "Fouye",
        "view-pool-error": "Padone nou, men sèvè yo genyen trop travay kounye a.\nGenyen trop itilizatè k ap eseye gade paj sa.\nTanpri tann yon tikras tan anvan ou eseye gade paj sa ankò.\n\n$1",
+       "generic-pool-error": "Eskize, sèvè yo gen twòp chaj nan moman an.\nGen twòp itilizatè k ap eseye gade resous sa a.\nTanpri tann yon moman anvan ou eseye gade resous sa a ankò.",
        "pool-timeout": "Tan ekoule pou defè seri a",
        "pool-queuefull": "Fil pou travay la plen",
        "pool-errorunknown": "Erè nou pa konnen",
+       "pool-servererror": "Sèvis pou konte rezèv la pa disponib ($1).",
+       "poolcounter-usage-error": "Erè nan itilizasyon: $1",
        "aboutsite": "Apwopo {{SITENAME}}",
        "aboutpage": "Project:Apwopo",
-       "copyright": "Kontni disponib anba $1.",
+       "copyright": "Kontni disponib selon lisans $1 sof si gen lòt endikasyon.",
        "copyrightpage": "{{ns:project}}:Dwa rezève",
        "currentevents": "Aktyalite yo",
        "currentevents-url": "Project:Aktyalite yo",
        "disclaimers": "Avètisman",
        "disclaimerpage": "Project:Avètisman jeneral yo",
        "edithelp": "Èd pou modifye paj",
+       "helppage-top-gethelp": "Èd",
        "mainpage": "Paj prensipal",
        "mainpage-description": "Paj prensipal",
        "policy-url": "Project:Règleman",
        "ok": "OK",
        "retrievedfrom": "Rekipere depi « $1 »",
        "youhavenewmessages": "Ou genyen $1 ($2).",
+       "youhavenewmessagesmanyusers": "Ou gen $2 de plizyè itilizatè $2.",
        "youhavenewmessagesmulti": "Ou genyen nouvo mesaj sou $1.",
        "editsection": "modifye",
        "editold": "modifye",
        "hidetoc": "kache",
        "collapsible-collapse": "Redui",
        "collapsible-expand": "Etann",
+       "confirmable-confirm": "Eske w si?",
+       "confirmable-yes": "Wi",
+       "confirmable-no": "Non",
        "thisisdeleted": "Ou vle wè oubyen restore $1 ?",
        "viewdeleted": "Wè $1 ?",
        "restorelink": "{{PLURAL:$1|yon revizion efase|$1 revizion efase yo}}",
        "page-rss-feed": "Fil RSS pou \"$1\"",
        "page-atom-feed": "\"$1\" fil Atom",
        "red-link-title": "$1 (paj sa pa ekziste nan sistèm nan)",
+       "sort-descending": "Triye sòti nan pi gwo rive nan pi piti",
+       "sort-ascending": "Triye sòti nan pi piti rive nan pi gwo",
        "nstab-main": "Paj",
        "nstab-user": "Paj itilizatè",
        "nstab-media": "Paj Medya",
        "cannotdelete": "Nou pa t kapab efase paj oubyen fichye « $1 ».\nYon lòt moun te gendwa efase l anvan ou.",
        "badtitle": "Tit ou bay an pa bon, li pa koresponn nan sistèm an, eseye byen ekri li",
        "badtitletext": "Tit, sijè paj ou mande a pa korèk oubyen li pa egziste oubyen li nan yon lòt pwojè wiki yo (gade nan lòt pwojè wiki yo pou wè toutbon). Li mèt genyen tou kèk karaktè ki pa rekonèt nan sistèm an, eseye itilize bon karaktè yo nan tit ou yo.",
+       "title-invalid-interwiki": "Paj ou mande a gen yon lyen entèwiki ki pa ka sèvi nan tit.",
        "perfcached": "Sa se yon vèsyon ki sòti nan kach sistèm nou an. Li gendwa pa a jou. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.",
        "perfcachedts": "Done sa yo sòti nan sistèm kach la, yo gendwa pa a jou. Dènye fwa nou mete yo a jou se te $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.",
        "querypage-no-updates": "Nou pa kapab mete paj sa yo a jou paske fonksyon mizajou dezaktive. Done w ap jwenn pi ba pap rafrechi.",
        "namespaceprotected": "Ou pa gen dwa modifye paj nan espas non « '''$1''' ».",
        "ns-specialprotected": "Paj yo ki nan espas non « {{ns:special}} » pa kapab modifye.",
        "titleprotected": "Tit, sijè sa pwoteje pandan kreyasyon l pa [[User:$1|$1]].\nRezon li bay yo se « ''$2'' ».",
+       "exception-nologin": "Ou pa konekte",
        "virus-badscanner": "Move konfigirasyon : eskanè viris sa, nou pa konenn l : ''$1''",
        "virus-scanfailed": "Rechèch an pa ritounen pyès rezilta (kòd $1)",
        "virus-unknownscanner": "antiviris nou pa konnen :",
        "logouttext": "'''Ou dekonekte kounye a.'''\n\nOu mèt kontinye itilize {{SITENAME}} san ou pa idantifye, oubyen ou ka <span class='plainlinks'>[$1 rekonekte]</span> w ankò ak menm non an oubyen yon lòt.\nNote ke kèk paj gendwa afiche tankou ou te toujou konekte tank ou pa efase kach nan navigatè ou.",
        "yourname": "Non itilizatè ou an :",
+       "userlogin-yourname": "Non itilizatè",
+       "userlogin-yourname-ph": "Rantre non itilizatè w",
        "yourpassword": "Mopas ou an :",
+       "userlogin-yourpassword": "Modpas",
+       "userlogin-yourpassword-ph": "Rantre modpas ou",
+       "createacct-yourpassword-ph": "Rantre yon modpas",
        "yourpasswordagain": "Mete mopas ou an ankò :",
+       "createacct-yourpasswordagain": "Konfime modpas la",
+       "createacct-yourpasswordagain-ph": "Rantre modpas la ankò",
        "remembermypassword": "Sonje mopas mwen an nan òdinatè mwen an (pou yon maximum de $1 {{PLURAL:$1|jou|jou}})",
+       "userlogin-remembermypassword": "Pa dekonekte m",
+       "userlogin-signwithsecure": "Sèvi ak yon koneksyon sekirize",
        "yourdomainname": "Domèn ou an",
+       "password-change-forbidden": "Ou pa ka chanje modpas sou wiki sa a.",
        "externaldberror": "Li sanble ke yon erè pwodui ak bazdone a pou idantifikasyon ki pa nan sistèm an, oubyen ou pa otorize pou mete a jou kont ou genyen nan lòt sistèm yo.",
        "login": "Konekte ou",
        "nav-login-createaccount": "Kreye yon kont oubyen konekte ou",
        "logout": "Dekonekte ou",
        "userlogout": "Dekoneksyon",
        "notloggedin": "Ou pa konekte",
+       "userlogin-noaccount": "Ou pa gen yon kont?",
+       "userlogin-joinproject": "Enskri nan {{SITENAME}}",
        "nologin": "Ou pa genyen yon kont ? '''$1'''.",
        "nologinlink": "Kreye yon kont",
        "createaccount": "Kreye yon kont",
        "gotaccount": "Ou deja genyen yon kont ? '''$1'''.",
        "gotaccountlink": "Idantifye ou",
+       "userlogin-resetpassword-link": "Ou bliye modpas ou?",
+       "userlogin-helplink2": "Èd pou konekte",
+       "createacct-emailoptional": "Adrès imèl (fakiltatif)",
+       "createacct-email-ph": "Rantre adrès imèl ou",
        "createaccountmail": "pa imèl",
        "createaccountreason": "Rezon:",
+       "createacct-reason": "Rezon",
+       "createacct-reason-ph": "Poukisa w ap ouvri yon lòt kont?",
+       "createacct-captcha": "Verifikasyon sekirite",
+       "createacct-imgcaptcha-ph": "Rantre teks ke w anlè a",
+       "createacct-submit": "Ouvri kont ou",
+       "createacct-another-submit": "Ouvrir yon lòt kont",
+       "createacct-benefit-heading": "Se moun tankou w ki fè {{SITENAME}}.",
+       "createacct-benefit-body3": "$1 kontribitè resan",
        "badretype": "Mopas ou bay yo pa parèy ditou.",
        "userexists": "Non itilizatè ou bay an deja itilize pa yon lòt moun. Chwazi yon lòt souple.",
        "loginerror": "Erè nan idantifikasyon ou an",
        "noemailprefs": "Mete yon adrès imèl nan preferans ou yo pou fonksyon sa yo ka disponib.",
        "emailconfirmlink": "Konfime adrès imèl ou an",
        "invalidemailaddress": "Nou pa kapab aksepte adrès imèl sa paske li sanble fòma l pa bon ditou. Tanpri, mete yon adrès ki nan yon bon fòma oubyen pa ranpli seksyon sa.",
+       "emaildisabled": "Sit sa a pa ka voye imèl.",
        "accountcreated": "Kont ou an kreye",
        "accountcreatedtext": "Kont itilizatè $1 an kreye.",
        "createaccount-title": "Kreyasyon yon kont pou {{SITENAME}}",
        "login-throttled": "Ou fè twòp tantativ pou konekte w ak mopas ou an. Tanpri, tann yon ti moman anvan ou eseye ankò.",
        "loginlanguagelabel": "Lang : $1",
        "suspicious-userlogout": "Demand ou te fè pou dekonekte w te refize paske sanble li te voye pa yon navigatè ki fè erè oubyen li soti nan yon proksi pou kach.",
+       "pt-login": "Konekte",
+       "pt-login-button": "Konekte",
+       "pt-createaccount": "Ouvri yon kont",
+       "pt-userlogout": "Dekonekte",
        "php-mail-error-unknown": "Erè nou pa konnen nan fonksyon mail() PHP a.",
        "resetpass_announce": "Ou konekte ou ak yon mopas ki valab yon moman; mopas sa te voye pa imèl. Pou ou kapab fini anrejistreman an, ou dwe mete yon nouvo mopas la :",
        "resetpass_header": "Chanje mopas kont ou an",
        "preview": "Gade pou wè",
        "showpreview": "Gade pou wè",
        "showdiff": "Montre chanjman yo",
-       "anoneditwarning": "'''Pòte atansyon :''' ou pa konekte nan sistèm nan. Adrès IP ou a ap anrejistre nan istorik paj sa a.",
+       "anoneditwarning": "'''Atansyon :''' ou pa konekte nan sistèm nan. Adrès IP ou a ap pibliz si w fè chanjman. Si w <strong>[$1 konekte]</strong> oubyen <strong>[$2 ouvri yon kont]</strong> chanjman ou fè yo ap asosye ak non itilizate ou, ansanm ak lòt avantaj.",
        "anonpreviewwarning": "''Ou pa konekte.  Anrejistre ap kenbe adrès IP ou a nan istorik paj sa a.''",
        "missingsummary": "'''Souple :''' ou poko bay rezime modifikasyon ou fè an\nSi ou klike sou \"{{int:savearticle}}\" ankò, piblikasyon sa ap fèt san li bay lòt avètisman.",
        "missingcommenttext": "Souple, ekri komantè ou an pli ba nan paj sa.",
        "userjspreview": "'''Sonje ke ou ap voye kout je sou fèy JavaScript ou ekri a, li poko anrejistre !'''",
        "sitecsspreview": "'''Sonje ke w ap voye yon kout je sou sa w ekri nan fèy CSS sa a.'''\n'''Li poko anrejistre !'''",
        "sitejspreview": "'''Sonje ke w ap voye yon kout je sou kòd JavaScript sa a.'''\n'''Li poko anrejistre !'''",
-       "userinvalidcssjstitle": "'''Pòte atansyon :''' estil \"$1\" pa egziste. Paj pèsonalize ak ekstansyon .css epi .js yo ap itilize tit/sijè nan lèt miniskil, pa egzanp {{ns:user}}:Foo/vector.css se pa {{ns:user}}:Foo/Vector.css.",
+       "userinvalidcssjstitle": "'''Atansyon :''' estil \"$1\" pa egziste. Paj pèsonalize ak ekstansyon .css epi .js yo ap gen tit/sijè an lèt miniskil, pa egzanp {{ns:user}}:Foo/vector.css men pa {{ns:user}}:Foo/Vector.css.",
        "updated": "(Li gen dènye vèsyon sou li)",
        "note": "'''Nòt :'''",
        "previewnote": "'''Atansyon, tèks sa a se yon kout je, li poko anrejistre !'''",
        "currentrev": "Vèsyon kounye a",
        "currentrev-asof": "Vèsyon kounye a ki date de $1",
        "revisionasof": "Vèsyon jou $1",
-       "revision-info": "Vèsyon pou $1 pa $2",
+       "revision-info": "Vèsyon nan dat $1 {{GENDER:$6|$2}}$7",
        "previousrevision": "← Vèsyon presedan",
        "nextrevision": "Vèsyon swivan →",
        "currentrevisionlink": "Vèsyon kounye a",
        "pagehist": "Istorik paj sa",
        "deletedhist": "Istorik efase",
        "revertmerge": "Separe",
-       "history-title": "Istorik pou vèsyon « $1 » yo",
+       "history-title": "Istorik chanjman \"$1\"",
        "lineno": "Liy $1 :",
        "compareselectedversions": "Konpare vèsyon ki seleksyone yo",
        "editundo": "Revoke",
        "notextmatches": "Pa genyen pyès tèks nan paj yo ki ap koresponn ak rechèch ou fè a",
        "prevn": "{{PLURAL:$1|$1}} anvan yo",
        "nextn": "{{PLURAL:$1|$1}} swivan yo",
+       "nextn-title": "Pwochen $1 rezilta",
        "viewprevnext": "Wè ($1 {{int:pipe-separator}} $2) ($3).",
+       "searchprofile-articles": "Paj kontni",
+       "searchprofile-images": "Miltimedya",
        "searchprofile-everything": "Tout",
+       "searchprofile-advanced": "Avanse",
+       "searchprofile-articles-tooltip": "Chèche nan $1",
+       "searchprofile-images-tooltip": "Chèche fichye",
+       "searchprofile-everything-tooltip": "Chèche nan tout kontni (paj diskisyon tou)",
        "search-result-size": "$1 ({{PLURAL:$2| mo|$2 mo yo}})",
        "search-redirect": "(redireksyon depi $1)",
        "search-section": "(seksyon $1)",
        "search-interwiki-caption": "Pwojè frè, ki ansanm oubyen ki ap deplwaye ansanm",
        "search-interwiki-default": "Rezilta yo pou $1 :",
        "search-interwiki-more": "(plis)",
+       "searchall": "tout",
        "powersearch-legend": "Fouye fon",
        "powersearch-ns": "Chache nan espas non sa yo:",
        "preferences": "Preferans yo",
        "rightslog": "Jounal modifikasyon estati itilizatè yo",
        "action-edit": "modifye paj sa",
        "nchanges": "$1 {{PLURAL:$1|modifikasyon|modifikasyon}}",
+       "enhancedrc-history": "Istorik",
        "recentchanges": "Modifikasyon yo ki fèk fèt",
        "recentchanges-legend": "Opsyon pou modifikasyon ki fèk fèt",
        "recentchanges-feed-description": "Swiv dènye modifikasyon pou wiki sa a nan fil sa a (RSS,Atom...)",
+       "recentchanges-label-newpage": "Modifikasyon sa a kreye yon lòt paj",
+       "recentchanges-label-minor": "Sa se yon ti chanjman",
+       "recentchanges-label-bot": "Se yon wobo ki fè chanjman sa a.",
+       "recentchanges-legend-heading": "'''Lejann:'''",
        "rcnotefrom": "Men modifikasyon yo ki fèt depi '''$2''' ('''$1''' dènye).",
        "rclistfrom": "Afiche nouvo modifikasyon yo depi $3 $2",
        "rcshowhideminor": "$1 modifiksayon yo ki tou piti",
+       "rcshowhideminor-show": "Montre",
+       "rcshowhideminor-hide": "Kache",
        "rcshowhidebots": "$1 wobo",
-       "rcshowhideliu": "$1 itilizatè ki konekte",
+       "rcshowhidebots-show": "Montre",
+       "rcshowhidebots-hide": "Kache",
+       "rcshowhideliu": "$1 itilizatè ki anrejistre",
+       "rcshowhideliu-hide": "Kache",
        "rcshowhideanons": "$1 itilizatè anonim",
+       "rcshowhideanons-show": "Montre",
+       "rcshowhideanons-hide": "Kache",
        "rcshowhidepatr": "$1 edisyon ki ap veye",
        "rcshowhidemine": "$1 kontribisyon mwen yo",
+       "rcshowhidemine-show": "Montre",
+       "rcshowhidemine-hide": "Kache",
        "rclinks": "Afiche dènye $1 modifikasyon ki fèt nan $2 dènye jou sa yo<br />$3.",
        "diff": "diferans",
        "hist": "istorik",
        "minoreditletter": "m",
        "newpageletter": "N",
        "boteditletter": "b",
+       "rc-change-size-new": "$1 oktè apre chanjman yo.",
        "rc-enhanced-expand": "Montre detay yo (sa mande JavaScript)",
        "rc-enhanced-hide": "Kache detay yo",
        "recentchangeslinked": "Swivi pou lyen yo",
        "upload": "Chaje yon fichye",
        "uploadbtn": "Chaje yon fichye",
        "uploadlogpage": "Jounal chajman pou fichye yo",
+       "filedesc": "Rezime",
+       "license-header": "Kondisyon itlizasyon",
+       "imgfile": "fichye",
        "listfiles": "Lis fichye yo",
        "file-anchor-link": "Fichye",
        "filehist": "Istorik fichye a",
        "filehist-dimensions": "Grandè yo",
        "filehist-filesize": "Gwosè fichye a",
        "filehist-comment": "Komantè",
-       "imagelinks": "Lyen pou fichye sa",
+       "imagelinks": "Itilizasyon fichye sa a",
        "linkstoimage": "{{PLURAL:$1|Paj ki ap swiv la|Paj yo ki ap swiv}} genyen yon lyen pou fichye sa a :",
        "nolinkstoimage": "Pa gen pyès paj ki gen yon lyen pou imaj sa a.",
        "sharedupload": "Fichye sa a kapab pataje, li sòti depi $1 e li kapab itilize pa lòt pwojè yo.",
+       "sharedupload-desc-here": "Fichye sa a sòti nan $1 e ka sèvi nan lòt pwojè.\nDesktripsyon ki sou paj li [$2 file description page] ekri anba a.",
        "uploadnewversion-linktext": "Chaje yon nouvo vèsyon pou fichye sa a",
+       "upload-disallowed-here": "Ou pa ka ranplase fichye sa a.",
        "mimesearch": "Chache ak tip MIME",
        "listredirects": "Lis tout redireksyon yo",
        "unusedtemplates": "Modèl yo ki pa itilize",
        "pager-older-n": "{{PLURAL:$1|pi vye|$1 pi vye yo}}",
        "booksources": "Ouvraj referans yo",
        "booksources-search-legend": "Chache nan lis ouvraj ki sèvi pou referans",
+       "booksources-search": "Chèche",
        "specialloguserlabel": "itilizatè :",
        "speciallogtitlelabel": "Tit :",
        "log": "Jounal yo",
        "namespace": "Espas non :",
        "invert": "Envèse seleksyon an",
        "blanknamespace": "(Prensipal)",
-       "contributions": "Kontribisyon itilizatè sa a",
+       "contributions": "Kontribisyon $1",
        "contributions-title": "Lis tout kontribisyon itilizatè ki rele $1",
-       "mycontris": "Kontribisyon mwen yo",
+       "mycontris": "Kontribisyon mwen",
        "contribsub2": "Lis kontribisyon $1 ($2).",
        "uctop": "(tèt)",
        "month": "depi mwa (ak mwa anvan yo) :",
        "nolinkshere": "Pyès paj genyen lyen pou paj sa a <b>[[:$1]]</b>.",
        "isredirect": "Paj redireksyon",
        "istemplate": "anndan",
-       "isimage": "lyen pou fichye imaj sa",
+       "isimage": "lyen fichye a",
        "whatlinkshere-prev": "{{PLURAL:$1|presedan|$1 presedan yo}}",
        "whatlinkshere-next": "{{PLURAL:$1|swivan|$1 swivan yo}}",
        "whatlinkshere-links": "← lyen yo",
        "tooltip-pt-mycontris": "Lis kontribisyon ou yo",
        "tooltip-pt-login": "Nou ankourage ou pou ou konèkte; men ou pa oblije.",
        "tooltip-pt-logout": "Dekonekte ou",
+       "tooltip-pt-createaccount": "N ap ankouraje w ouvè yon kont epi konekte; men sa pa obligatwa",
        "tooltip-ca-talk": "Diskisyon apwopo kontni paj sa a",
        "tooltip-ca-edit": "Ou mèt modifye paj sa a. Tanpri, itilize bouton \"Kout je\" anvan ou anrejistre.",
        "tooltip-ca-addsection": "Komanse yon nouvo seksyon",
        "tooltip-search": "Fouye nan {{SITENAME}}",
        "tooltip-search-go": "Ale sou yon paj ki pòte egzateman non sa si li egziste",
        "tooltip-search-fulltext": "Chache paj yo ki genyen tèks sa.",
+       "tooltip-p-logo": "Vizite paj prensipal la",
        "tooltip-n-mainpage": "Vizite paj prensipal la",
        "tooltip-n-mainpage-description": "Vizite paj prensipal la",
        "tooltip-n-portal": "Apwopo pwojè a, sa ou kapab fè, ki kote ou mèt jwenn kèk bagay",
        "tooltip-watch": "Ajoute paj sa a nan lis swivi ou an",
        "tooltip-rollback": "« Revoke » ap anile ak yon sèl klik modifikasyon dènye kontribitè te fè sou paj sa a",
        "tooltip-undo": "« Revoke » ap efase modifikasyon sa epi li ap ouvri fenèt modifikasyon an nan mòd kote ou kapab wè sa sa ou fè a ap bay.\nLi pèmèt retabli vèsyon ki te anvan li epi ajoute yon rezon ki esplike poukisa ou revoke modifikasyon sa nan bwat rezime a.",
+       "tooltip-summary": "Ekri yon ti rezime",
+       "simpleantispam-label": "Verifikasyon antispam.\n<strong>PA</strong> ranpli sa a!",
+       "pageinfo-toolboxlink": "Enfòmasyon sou paj la",
        "previousdiff": "← Modifikasyon presedan",
        "nextdiff": "Modifikasyon swivan →",
        "file-info-size": "$1 × $2 piksèl, gwosè fichye a : $3, tip MIME li ye : $4",
        "file-nohires": "Pa genyen rezolisyon ki pi wo ki disponib.",
        "svg-long-desc": "Fichye SVG, rezolisyon de $1 × $2 piksèl, gwosè fichye : $3",
-       "show-big-image": "Pi bon rezolisyon",
+       "show-big-image": "Fichye orijinal",
+       "show-big-image-size": "$1 × $2 piksèl",
        "newimages": "Galri pou nouvo fichye yo",
        "bad_image_list": "Fòma la se konsa :\n\nSe itèm ki nan lis sèlman (liy ki kòmanse ak *) ki konsidere.\nPremye lyen nan yon liy sipoze yon lyen pou yon move dosye.\nNenpòt lòt lyen nan menm liy nan konsidere kòm yon eksèpsyon, i.e. paj kote yon dosye ka parèt nan lign.",
        "metadata": "Metadone",
        "metadata-expand": "Montre detay konplè yo",
        "metadata-collapse": "Kache enfòmasyon ak tout detay yo",
        "metadata-fields": "Chan metadone EXIF ki liste nan mesaj sa a ap parèt nan paj deskripsyon imaj la lè tab metadone a ap pi piti. Lòt chan yo ap kache pa defo.\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-xresolution": "Rezolisyon orizontal",
+       "exif-yresolution": "Rezolisyon vètikal",
+       "exif-datetime": "Dat ak lè chanjman fichye a",
+       "exif-make": "Mak kamera a",
+       "exif-model": "Modèl kamera a",
+       "exif-exifversion": "Vèsyon EXIF",
+       "exif-orientation-1": "Nòmal",
+       "exif-contrast-0": "Nòmal",
        "namespacesall": "Tout",
        "monthsall": "tout",
        "watchlisttools-view": "Wè chanjman enpòtan yo",
        "watchlisttools-raw": "Modifye lis swivi (mòd bazik)",
        "version": "Vèsyon",
        "specialpages": "Paj espesyal yo",
+       "tag-filter": "Filtre [[Special:Tags|Tag]]:",
        "htmlform-reset": "Revoke chanjman yo",
        "revdelete-restricted": "aplike restriksyon sa yo pou administratè yo",
-       "revdelete-summary": "somè pou modifikasyon"
+       "logentry-newusers-create": "Kont itilizatè $1 a kreye",
+       "revdelete-summary": "somè pou modifikasyon",
+       "searchsuggest-search": "Chèche"
 }
index 028189f..c78975f 100644 (file)
        "subcategories": "Alkategóriák",
        "category-media-header": "A(z) „$1” kategóriába tartozó médiafájlok",
        "category-empty": "''Ebben a kategóriában pillanatnyilag egyetlen lap vagy médiafájl sem szerepel.''",
-       "hidden-categories": "{{PLURAL:$1|Rejtett kategória|Rejtett kategória}}",
+       "hidden-categories": "{{PLURAL:$1|Rejtett kategória|Rejtett kategóriák}}",
        "hidden-category-category": "Rejtett kategóriák",
        "category-subcat-count": "''{{PLURAL:$2|Ennek a kategóriának csak egyetlen alkategóriája van.|Ez a kategória az alábbi {{PLURAL:$1|alkategóriával|$1 alkategóriával}} rendelkezik (összesen $2 alkategóriája van).}}''",
        "category-subcat-count-limited": "Ebben a kategóriában {{PLURAL:$1|egy|$1}} alkategória található.",
        "ok": "OK",
        "pagetitle": "$1 – {{SITENAME}}",
        "retrievedfrom": "A lap eredeti címe: „$1”",
-       "youhavenewmessages": "$1 a vitalapodon! ($2 külön is megtekintheted.)",
-       "youhavenewmessagesfromusers": "$2 kaptál {{PLURAL:$3|egy|$3}} szerkesztőtől $1!",
-       "youhavenewmessagesmanyusers": "$2 kaptál több szerkesztőtől $1.",
-       "newmessageslinkplural": "{{PLURAL:$1|új üzenet|999=új üzenet}} a vitalapodon",
+       "youhavenewmessages": "{{PLURAL:$3|Van egy|Vannak}} $1 ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|Van egy|Vannak}} $1 {{PLURAL:$3|egy|$3}} másik szerkesztőtől ($2).",
+       "youhavenewmessagesmanyusers": "Vannak $1 sok szerkesztőtől ($2).",
+       "newmessageslinkplural": "{{PLURAL:$1|új üzenet|999=új üzenetek}} a vitalapodon",
        "newmessagesdifflinkplural": "{{PLURAL:$1|változás|999=változás}}",
        "youhavenewmessagesmulti": "Új üzenet vár a(z) $1 wikin",
        "editsection": "szerkesztés",
        "readonly_lag": "Az adatbázis automatikusan le lett zárva, amíg a mellékkiszolgálók utolérik a főkiszolgálót.",
        "internalerror": "Belső hiba",
        "internalerror_info": "Belső hiba: $1",
+       "internalerror-fatal-exception": "Végzetes kivétel: „$1”",
        "filecopyerror": "Nem tudtam átmásolni a(z) „$1” fájlt „$2” névre.",
        "filerenameerror": "Nem tudtam átnevezni a(z) „$1” fájlt „$2” névre.",
        "filedeleteerror": "Nem tudtam törölni a(z) „$1” fájlt.",
        "no-null-revision": "Nem sikerült új null-revíziót létrehozni a(z) „$1” lap számára.",
        "badtitle": "Hibás cím",
        "badtitletext": "A kért oldal címe érvénytelen, üres, vagy rosszul hivatkozott nyelvközi vagy wikiközi cím volt. Olyan karaktereket is tartalmazhatott, melyek címekben nem használhatók.",
+       "title-invalid-empty": "A kért lapcím üres vagy csak egy névtér nevét tartalmazza.",
+       "title-invalid-utf8": "A kért oldal címe tartalmazza érvénytelen UTF-8 karaktert tartalmaz.",
+       "title-invalid-interwiki": "A cím interwiki-hivatkozást tartalmaz, amelyet nem lehet címben használni.",
+       "title-invalid-talk-namespace": "A kért lapcím egy olyan vitalapra hivatkozik, ami nem létezhet.",
+       "title-invalid-characters": "A kért lapcím érvénytelen karaktereket tartalmaz: „$1”",
+       "title-invalid-relative": "A cím relatív útvonalat tartalmaz. A relatív lapcímek (./, ../) érvénytelenek, mert gyakran elérhetetlenné válnak, amikor a felhasználó böngészője feldolgozza őket.",
+       "title-invalid-magic-tilde": "A kért oldal címe érvénytelen mágikus tilde sorozatot (<nowiki>~~~</nowiki>) tartalmaz.",
+       "title-invalid-too-long": "A kért cím túl hosszú. Nem lehet hosszabb $1 bájtnál UTF-8 kódolásban.",
+       "title-invalid-leading-colon": "A kért cím érvénytelen kettőspontot tartalmaz az elején.",
        "perfcached": "Az alábbi adatok gyorsítótárból (''cache''-ből) származnak, és ezért lehetséges, hogy nem a legfrissebb változatot mutatják. Legfeljebb $1 eredmény áll rendelkezésre a gyorsítótárban.",
        "perfcachedts": "Az alábbi adatok gyorsítótárból (''cache''-ből) származnak, legutóbbi frissítésük ideje $1. Legfeljebb {{PLURAL:$4|egy|$4}} eredmény áll rendelkezésre a gyorsítótárban.",
        "querypage-no-updates": "Az oldal frissítése jelenleg le van tiltva. Az itt szereplő adatok nem frissülnek azonnal.",
        "viewsource-title": "$1 forrásának megtekintése",
        "actionthrottled": "Művelet megszakítva",
        "actionthrottledtext": "A spamek elleni védekezés miatt nem végezheted el a műveletet túl sokszor egy adott időn belül, és te átlépted a megengedett határt. Próbálkozz újra néhány perc múlva.",
-       "protectedpagetext": "Ez egy védett lap, így nem végezhető rajta szerkesztés és más tevékenység",
+       "protectedpagetext": "Ez egy védett lap, így nem végezhető rajta szerkesztés és más tevékenység.",
        "viewsourcetext": "Megtekintheted és másolhatod a lap forrását:",
        "viewyourtext": "Megtekintheted és kimásolhatod a '''saját szerkesztéseidet''' 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.",
        "nologin": "Nem rendelkezel még felhasználói fiókkal? $1.",
        "nologinlink": "Itt regisztrálhatsz",
        "createaccount": "Regisztráció",
-       "gotaccount": "Ha már korábban regisztráltál, '''$1'''.",
+       "gotaccount": "Már van fiókod? $1.",
        "gotaccountlink": "Bejelentkezés",
        "userlogin-resetlink": "Elfelejtetted a bejelentkezési adataidat?",
        "userlogin-resetpassword-link": "Elfelejtetted a jelszavad?",
        "anoneditwarning": "<strong>Figyelem:</strong> Nem vagy bejelentkezve. Ha szerkesztesz, az IP-címed nyilvánosan látható lesz a laptörténetben. Ha <strong>[$1 bejelentkezel]</strong> vagy <strong>[$2 regisztrálsz]</strong>, a szerkesztéseid a felhasználónevedhez lesznek társítva, egyéb hasznos dolgok mellett.",
        "anonpreviewwarning": "''Nem vagy bejelentkezve. A mentéskor az IP-címed rögzítve lesz a laptörténetben.''",
        "missingsummary": "'''Emlékeztető:''' Nem adtál meg szerkesztési összefoglalót. Ha összefoglaló nélkül akarod elküldeni a szöveget, kattints újra a mentésre.",
+       "selfredirect": "<strong>Figyelem:</strong> Az lapot önmagára készült átirányítani. Lehet, hogy rossz célt adtál meg, vagy rossz oldalt szerkesztesz. Ha ismét a {{int:savearticle}} gombra kattintasz, akkor az átirányítás mégis létrejön.",
        "missingcommenttext": "Kérjük, írj összefoglalót a szerkesztésedhez.",
        "missingcommentheader": "'''Emlékeztető:''' Nem adtad meg a megjegyzés tárgyát vagy címét.\nHa ismét a „{{int:savearticle}}” gombra kattintasz, akkor a szerkesztésed nélküle lesz elmentve.",
        "summary-preview": "A szerkesztési összefoglaló előnézete:",
        "subject-preview": "A téma/főcím előnézete:",
+       "previewerrortext": "Hiba történt a változások előnézete megjelenítése során.",
        "blockedtitle": "A szerkesztő blokkolva van",
        "blockedtext": "'''A szerkesztőnevedet vagy az IP-címedet blokkoltuk.'''\n\nA blokkolást $1 végezte el.\nAz általa felhozott indok: ''$2''.\n\n* A blokk kezdete: $8\n* A blokk lejárata: $6\n* Blokkolt szerkesztő: $7\n\nKapcsolatba léphetsz $1 szerkesztőnkkel, vagy egy másik [[{{MediaWiki:Grouppage-sysop}}|adminisztrátorral]], és megbeszélheted vele a blokkolást.\nAz 'E-mail küldése ennek a szerkesztőnek' funkciót csak akkor használhatod, ha érvényes e-mail címet adtál meg\n[[Special:Preferences|fiókbeállításaidban]], és nem blokkolták a használatát.\nJelenlegi IP-címed: $3, a blokkolás azonosítószáma: #$5.\nKérjük, hogy érdeklődés esetén mindkettőt add meg.",
        "autoblockedtext": "Az IP-címed automatikusan blokkolva lett, mert korábban egy olyan szerkesztő használta, akit $1 blokkolt, az alábbi indoklással:\n\n:''$2''\n\n*A blokk kezdete: '''$8'''\n*A blokk lejárata: '''$6'''\n*Blokkolt szerkesztő: '''$7'''\n\nKapcsolatba léphetsz $1 szerkesztőnkkel, vagy egy másik [[{{MediaWiki:Grouppage-sysop}}|adminisztrátorral]], és megbeszélheted vele a blokkolást.\n\nAz 'E-mail küldése ennek a szerkesztőnek' funkciót csak akkor használhatod, ha érvényes e-mail címet adtál meg\n[[Special:Preferences|fiókbeállításaidban]], és nem blokkolták a használatát.\n\nJelenlegi IP-címed: $3, a blokkolás azonosítószáma: #$5.\nKérjük, hogy érdeklődés esetén mindkettőt add meg.",
        "content-json-empty-object": "Üres objektum",
        "content-json-empty-array": "Üres tömb",
        "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>.",
        "expensive-parserfunction-warning": "Figyelem: ezen a lapon túl sok erőforrásigényes elemzőfüggvény-hívás található.\n\nKevesebb, mint {{PLURAL:$2|egy|$2}} kellene, jelenleg {{PLURAL:$1|egy|$1}} van.",
        "expensive-parserfunction-category": "Túl sok költséges elemzőfüggvény-hívást tartalmazó lapok",
        "post-expand-template-inclusion-warning": "Figyelem: a beillesztett sablonok mérete túl nagy.\nNéhány sablon nem fog megjelenni.",
        "node-count-exceeded-category-desc": "A lap túllépi a maximális csomópontszámot.",
        "node-count-exceeded-warning": "Az oldal meghaladta a csomópontszámot",
        "expansion-depth-exceeded-category": "Lapok, melyeken a sablonok kibontása meghaladja a megengedett szintet",
+       "expansion-depth-exceeded-category-desc": "Az oldal meghaladja a maximális expanziós mélységet.",
        "expansion-depth-exceeded-warning": "A lap meghaladta az engedélyezett kiterjesztési mélységet",
        "parser-unstrip-loop-warning": "Unstrip hurok észlelve",
        "parser-unstrip-recursion-limit": "Túl mély unstrip rekurzió: $1",
        "undo-failure": "A szerkesztést nem lehet automatikusan visszavonni vele ütköző későbbi szerkesztések miatt.",
        "undo-norev": "A szerkesztés nem állítható vissza, mert nem létezik vagy törölve lett.",
        "undo-nochange": "A szerkesztés már vissza lett állítva.",
-       "undo-summary": "Visszavontam [[Special:Contributions/$2|$2]] ([[User talk:$2|vita]] | [[Special:Contributions/$2|{{MediaWiki:Contribslink}}]]) szerkesztését (oldid: $1)",
+       "undo-summary": "Visszavontam [[Special:Contributions/$2|$2]] ([[User talk:$2|vita]]) szerkesztését (oldid: $1)",
        "undo-summary-username-hidden": "A rejtett felhasználó által végzett $1 változat visszavonása",
        "cantcreateaccounttitle": "Felhasználói fiók létrehozása sikertelen",
        "cantcreateaccount-text": "Erről az IP-címről ('''$1''') nem lehet regisztrálni, mert [[User:$3|$3]] blokkolta az alábbi indokkal:\n\n:''$2''",
        "history-feed-description": "Az oldal laptörténete a wikiben",
        "history-feed-item-nocomment": "$1, $2-n",
        "history-feed-empty": "A kért oldal nem létezik.\nLehet, hogy törölték a wikiből, vagy átnevezték.\nPróbálkozhatsz a témával kapcsolatos lapok [[Special:Search|keresésével]].",
+       "history-edit-tags": "A kiválasztott változatok címkéinek szerkesztése",
        "rev-deleted-comment": "(szerkesztési összefoglaló eltávolítva)",
        "rev-deleted-user": "(szerkesztőnév eltávolítva)",
        "rev-deleted-event": "(naplóbejegyzés eltávolítva)",
        "rev-deleted-user-contribs": "[felhasználónév vagy IP-cím eltávolítva – szerkesztés elrejtve a közreműködések közül]",
        "rev-deleted-text-permission": "A lap ezen változatát '''törölték'''.\nTovábbi információkat a [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} törlési naplóban] találhatsz.",
+       "rev-suppressed-text-permission": "A lap ezen változatát <strong>elrejtették</strong>.\nTovábbi részleteket az [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} elrejtési naplóban] találhatsz.",
        "rev-deleted-text-unhide": "A lap ezen változatát '''törölték'''.\nTovábbi részleteket a [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} törlési naplóban] találhatsz.\nMivel adminisztrátor vagy, még mindig [$1 megtekintheted a tartalmát], ha szeretnéd.",
        "rev-suppressed-text-unhide": "A lap ezen változatát '''elrejtették'''.\nTovábbi részleteket az [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} elrejtési naplóban] találhatsz.\nMivel adminisztrátor vagy, még mindig [$1 megtekintheted a tartalmát], ha szeretnéd.",
        "rev-deleted-text-view": "A lap ezen változatát '''törölték'''.\nTe megnézheted. További részleteket a [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} törlési naplóban] találhatsz.",
        "rev-showdeleted": "megjelenítés",
        "revisiondelete": "Változatok törlése vagy helyreállítása",
        "revdelete-nooldid-title": "Érvénytelen célváltozat",
-       "revdelete-nooldid-text": "Nem adtad meg a célváltozato(ka)t, a megadott változat nem létezik,\nvagy a legutolsó változatot próbáltad meg elrejteni.",
+       "revdelete-nooldid-text": "Nem adtad meg a célváltozato(ka)t, amin a műveletet végre akarod hajtani, a megadott változat nem létezik, vagy a legutolsó változatot próbáltad meg elrejteni.",
        "revdelete-no-file": "A megadott fájl nem létezik.",
        "revdelete-show-file-confirm": "Biztosan meg szeretnéd nézni a(z) „<nowiki>$1</nowiki>” $2, $3-i törölt változatát?",
        "revdelete-show-file-submit": "Igen",
        "revdelete-selected-text": "[[:$2]] {{PLURAL:$1|kiválasztott változata|kiválasztott változatai}}",
+       "revdelete-selected-file": "[[:$2]] kiválasztott {{PLURAL:$1|verziója|verziói}}:",
        "logdelete-selected": "{{PLURAL:$1|Kiválasztott naplóesemény|Kiválasztott naplóesemények}}:",
+       "revdelete-text-text": "A törölt változatok megmaradnak a laptörténetben, de a tartalmuk a nyilvánosan nem elérhető.",
+       "revdelete-text-file": "A törölt változatok megmaradnak a fájl történetben, de a tartalmuk egy része nyilvánosan nem elérhető.",
+       "logdelete-text": "A törölt napló események megmaradnak a naplóban, de a tartalmuk nyilvánosan nem elérhető.",
+       "revdelete-text-others": "Más adminisztrátorok elérhetik az elrejtett tartalmat és visszaállíthatják, hacsak további korlátozások nem kerültek bevezetésre.",
        "revdelete-confirm": "Kérlek erősítsd meg, hogy valóban ezt szeretnéd tenni; megértetted a következményeket, és amit teszel, az összhangban van [[{{MediaWiki:Policy-url}}|az irányelvekkel]].",
        "revdelete-suppress-text": "Az elrejtés '''csak''' a következő esetekben használható:\n* Illetlen személyes információk\n*: ''otthoni cím, telefonszámok, társadalombiztosítási számok stb.''",
        "revdelete-legend": "Korlátozások megadása:",
        "mergehistory-empty": "Nincs egyesíthető változás.",
        "mergehistory-success": "[[:$1]] {{PLURAL:$3|egy|$3}} változata sikeresen egyesítve lett a(z) [[:$2]] lappal.",
        "mergehistory-fail": "Nem sikerült a laptörténetek egyesítése. Kérlek, ellenőrizd újra az oldalt és a megadott időparamétereket.",
+       "mergehistory-fail-toobig": "Nem lehetséges a laptörténetek egyesítése, mivel több mint $1 {{PLURAL:$1|változást}} kellene áthelyezni.",
        "mergehistory-no-source": "Nem létezik forráslap $1 néven.",
        "mergehistory-no-destination": "Nem létezik céllap $1 néven.",
        "mergehistory-invalid-source": "A forráslapnak érvényes címet kell megadni.",
        "prefs-tokenwatchlist": "Token",
        "prefs-diffs": "Eltérések (diffek)",
        "prefs-help-prefershttps": "A beállítás a legközelebbi belépés után lép érvénybe.",
+       "prefswarning-warning": "A beállításaidban tett módosítások nincsenek elmentve. Ha a $1 megnyomása nélkül hagyod el az oldalt, a beállításaid nem módosulnak.",
+       "prefs-tabs-navigation-hint": "Tipp: a jobbra-balra nyilakkal navigálhatsz a fülek között.",
        "email-address-validity-valid": "Az e-mail cím érvényesnek tűnik",
        "email-address-validity-invalid": "Írj be egy érvényes e-mail címet",
        "userrights": "Szerkesztői jogok beállítása",
        "userrights-changeable-col": "Megváltoztatható csoportok",
        "userrights-unchangeable-col": "Nem megváltoztatható csoportok",
        "userrights-conflict": "Felhasználói jogok ütközése! Kérlek, végezd el újra a változtatásokat.",
+       "userrights-removed-self": "Sikeresen eltávolítottad a saját jogosultságaidat, így már nem tudod elérni ezt az oldalt.",
        "group": "Csoport:",
        "group-user": "szerkesztők",
        "group-autoconfirmed": "automatikusan megerősített szerkesztők",
        "right-browsearchive": "keresés a törölt lapok között",
        "right-undelete": "lap helyreállítása",
        "right-suppressrevision": "Bármely felhasználó által végzett változatok megtekintése, elrejtése és felfedése",
+       "right-viewsuppressed": "Bármely felhasználó elrejtett változatainak megjelenítése",
        "right-suppressionlog": "privát naplók megtekintése",
        "right-block": "szerkesztők blokkolása",
        "right-blockemail": "szerkesztő e-mail küldési lehetőségének blokkolása",
        "right-protect": "védelmi szintek megváltoztatása és kaszkádolt védelemmel rendelkező lapok szerkesztése",
        "right-editprotected": "„{{int:protect-level-sysop}}” védelmi szintű lapok szerkesztése",
        "right-editsemiprotected": "„{{int:protect-level-autoconfirmed}}” védelmi szintű lapok szerkesztése",
+       "right-editcontentmodel": "A lap tartalom modelljének szerkesztése",
        "right-editinterface": "felhasználói felület szerkesztése",
        "right-editusercssjs": "más felhasználók CSS és JS fájljainak szerkesztése",
        "right-editusercss": "más felhasználók CSS fájljainak szerkesztése",
        "right-override-export-depth": "Lapok exportálása a hivatkozott lapokkal együtt, legfeljebb 5-ös mélységig",
        "right-sendemail": "e-mail küldése más felhasználóknak",
        "right-passwordreset": "Jelszó visszaállítási emailek megtekintése",
+       "right-managechangetags": "Adatbázis [[Special:Tags|címkék]] létrehozása és törlése",
+       "right-applychangetags": "[[Special:Tags|címkék]] alkalmazása a változakra",
+       "right-changetags": "Egyedi változtatásokon és napló bejegyzéseken tetszőleges [[Special:Tags|címkék]] hozzáadása és törlése",
        "newuserlogpage": "Új szerkesztők naplója",
        "newuserlogpagetext": "Ez a napló az újonnan regisztrált szerkesztők listáját tartalmazza.",
        "rightslog": "Szerkesztői jogosultságok naplója",
        "action-viewmywatchlist": "saját figyelőlista megtekintése",
        "action-viewmyprivateinfo": "személyes adatok megtekintése",
        "action-editmyprivateinfo": "személyes adatok szerkesztése",
-       "nchanges": "{{PLURAL:$1|egy|$1}} változtatás",
+       "action-editcontentmodel": "a lap tartalom modelljének szerkesztése",
+       "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",
+       "nchanges": "$1 változtatás",
        "enhancedrc-since-last-visit": "$1 az utolsó látogatás óta",
        "enhancedrc-history": "történet",
        "recentchanges": "Friss változtatások",
        "fileexists-shared-forbidden": "Egy ugyanilyen nevű fájl már létezik a közös fájlmegosztóban; kérlek menj vissza és válassz egy másik nevet a fájlnak, ha még mindig fel akarod tölteni! [[File:$1|thumb|center|$1]]",
        "file-exists-duplicate": "Ez a következő {{PLURAL:$1|fájl|fájlok}} duplikátuma:",
        "file-deleted-duplicate": "Egy ehhez hasonló fájlt ([[:$1]]) korábban már töröltek. Ellenőrizd a fájl törlési naplóját, mielőtt újra feltöltenéd.",
+       "file-deleted-duplicate-notitle": "Egy ugyanilyen fájlt korábban már töröltek, és címét eltávolították. Kérj meg valakit, aki meg tudja nézni a törölt fájlokat, hogy tekintse át a helyzetet, mielőtt újra feltöltenéd a fájlt.",
        "uploadwarning": "Feltöltési figyelmeztetés",
        "uploadwarning-text": "Kérlek módosítsd a fájl leírását alább, majd próbáld újra.",
        "savefile": "Fájl mentése",
        "uploaddisabledtext": "A fájlfeltöltés nem engedélyezett.",
        "php-uploaddisabledtext": "A PHP-s fájlfeltöltés le van tiltva. Ellenőrizd a file_uploads beállítást.",
        "uploadscripted": "Ez a fájl olyan HTML- vagy parancsfájlkódot tartalmaz, melyet tévedésből egy webböngésző esetleg értelmezni próbálhatna.",
+       "uploadscriptednamespace": "Ez az SVG fájl érvénytelen névteret (\"$1\") tartalmaz.",
+       "uploadinvalidxml": "A feltöltött XML fájlt nem lehet feldolgozni.",
        "uploadvirus": "Ez a fájl vírust tartalmaz! A részletek: $1",
        "uploadjava": "A fájl egy ZIP-fájl, ami egy Java .class fájlt tartalmaz.\nJava fájlok feltöltése nem engedélyezett, mert segítségükkel kijátszhatóak a biztonsági korlátozások.",
        "upload-source": "Forrásfájl",
        "listfiles-delete": "törlés",
        "listfiles-summary": "Ezen a speciális lapon látható az összes feltöltött fájl.",
        "listfiles_search_for": "Keresés fájl nevére:",
+       "listfiles-userdoesnotexist": "A(z) „$1” felhasználó nincs regisztrálva.",
        "imgfile": "fájl",
        "listfiles": "Fájllista",
        "listfiles_thumb": "Bélyegkép",
        "listfiles_size": "Méret",
        "listfiles_description": "Leírás",
        "listfiles_count": "Változatok",
+       "listfiles-show-all": "A képek régebbi verzióját is",
        "listfiles-latestversion": "Aktuális változat",
        "listfiles-latestversion-yes": "Igen",
        "listfiles-latestversion-no": "Nem",
        "sharedupload-desc-there": "Ez a fájl a $1 megosztott tárhelyről származik, és más projektek is használhatják.\nAz [$2 ottani leírólapján] további információkat találhatsz róla.",
        "sharedupload-desc-here": "Ez a fájl a $1 megosztott tárhelyről származik, és más projektek is használhatják.\nA [$2 fájl ottani leírólapjának] másolata alább látható.",
        "sharedupload-desc-edit": "Ez a fájl a(z) $1 megosztott tárhelyről származik, és más projektek is használhatják.\nValószínűleg az [$2 ottani leírólapját] akartad szerkeszteni.",
+       "sharedupload-desc-create": "Ez a fájl a(z) $1 megosztott tárhelyről származik, és más projektek is használhatják.\nValószínűleg az [$2 ottani leírólapját] akartad szerkeszteni.",
        "filepage-nofile": "Nem létezik ilyen nevű fájl.",
        "filepage-nofile-link": "Nem létezik ilyen nevű fájl. [$1 Ide kattintva] feltölthetsz egyet.",
        "uploadnewversion-linktext": "Új változat feltöltése",
        "unwatchedpages": "Nem figyelt lapok",
        "listredirects": "Átirányítások listája",
        "listduplicatedfiles": "Duplikált fájlok listája",
+       "listduplicatedfiles-summary": "Ez azon fájlok listája, ahol a legfrissebb fájl verzió megegyezik egy mások fájl legújabb verziójával. Csak a helyi fájlok figyelembe vételével.",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]] tartalmaz [[$3|{{PLURAL:$2|egy|$2}} duplikátumot]]",
        "unusedtemplates": "Nem használt sablonok",
-       "unusedtemplatestext": "Ez a lap azon {{ns:template}} névtérbe tartozó lapokat gyűjti össze, melyek nincsenek használva egyetlen lapon sem.\nEllenőrizd a meglévő hivatkozásokat, mielőtt törölnéd őket.",
+       "unusedtemplatestext": "Ez a lap azon {{ns:template}} névtérbe tartozó lapokat gyűjti össze, amelyek nincsenek beillesztve egyetlen lapon sem.\nNe felejtsd el ellenőrizni az egyéb hivatkozásokat, mielőtt törölnéd őket.",
        "unusedtemplateswlh": "más hivatkozások",
        "randompage": "Lap találomra",
        "randompage-nopages": "A következő {{PLURAL:$2|névtérben|névterekben}} nincsenek lapok: $1.",
        "statistics-users-active": "Aktív szerkesztők",
        "statistics-users-active-desc": "Szerkesztők, akik csináltak valamit az elmúlt {{PLURAL:$1|egy|$1}} napban",
        "pageswithprop": "Laptulajdonsággal rendelkező lapok",
+       "pageswithprop-legend": "Lap tulajdonsággal rendelkező lapok",
+       "pageswithprop-text": "Ez a lap azokat a lapokat listázza, amelyek egy adott lap tulajdonsággal rendelkeznek.",
        "pageswithprop-prop": "Tulajdonságnév:",
        "pageswithprop-submit": "Ugrás",
+       "pageswithprop-prophidden-long": "hosszú szöveg tulajdonság elrejtve ($1)",
+       "pageswithprop-prophidden-binary": "bináris tulajdonság érték rejtett ($1)",
        "doubleredirects": "Dupla átirányítások",
        "doubleredirectstext": "Ez a lap azokat a lapokat listázza, melyek átirányító lapokra irányítanak át.\nMinden sor tartalmaz egy hivatkozást az első, valamint a második átirányításra, valamint a második átirányítás céljára, ami általában a valódi céllap, erre kellene az első átirányításnak mutatnia.\nAz <del>áthúzott</del> sorok a lista elkészülése óta javítva lettek.",
        "double-redirect-fixed-move": "[[$1]] áthelyezve.\nAutomatikusan frissült, és mostantól a(z) [[$2]] lapra irányít át.",
        "unusedimages": "Nem használt fájlok",
        "wantedcategories": "Keresett kategóriák",
        "wantedpages": "Keresett lapok",
+       "wantedpages-summary": "Legtöbb hivatkozással rendelkező nem létező oldalak, nem számolva az átirányításokat. Azon nem létező oldalak listája, amelyre a legtöbb átirányítás mutat itt található: [[{{#special:BrokenRedirects}}]]",
        "wantedpages-badtitle": "Érvénytelen cím található az eredményhalmazban: $1",
        "wantedfiles": "Keresett fájlok",
        "wantedfiletext-cat": "A következő fájlok használatban vannak, de nem léteznek. Külső tárhelyről származó fájlok akkor is a listára kerülhetnek, ha léteznek. Az ilyen hamis riasztások <del>áthúzva</del> jelennek meg. Ezen felül az olyan beágyazott fájlok, amelyek nem léteznek a  [[:$1]] kategóriában jelennek meg.",
+       "wantedfiletext-cat-noforeign": "A következő nem létező fájlok vannak használva. Azon nem létező fájlok listája, amelyek beágyazásra kerültek, itt találhatók: [[:$1]].",
        "wantedfiletext-nocat": "A következő fájlok használatban vannak, de nem léteznek. Külső tárhelyről származó fájlok akkor is a listára kerülhetnek, ha léteznek. Az ilyen hamis riasztások <del>áthúzva</del> jelennek meg.",
        "wantedfiletext-nocat-noforeign": "A következő fájlok használatban vannak, de nem léteznek.",
        "wantedtemplates": "Keresett sablonok",
        "logempty": "Nincs illeszkedő naplóbejegyzés.",
        "log-title-wildcard": "Így kezdődő címek keresése",
        "showhideselectedlogentries": "Kijelölt napló bejegyzések megjelenítése/elrejtése",
+       "log-edit-tags": "Kiválasztott napló címkék szerkesztése",
        "allpages": "Az összes lap listája",
        "nextpage": "Következő lap ($1)",
        "prevpage": "Előző lap ($1)",
        "listgrouprights-namespaceprotection-namespace": "Névtér",
        "listgrouprights-namespaceprotection-restrictedto": "A szerkesztéshez szükséges jogosultság(ok)",
        "trackingcategories": "Nyomkövető kategóriák",
+       "trackingcategories-summary": "Ez az oldal azokat a nyomkövető kategóriákat tartalmazza, amelyet a MediaWiki szoftver magától feltölt. Ezen neveket a megfelelő rendszer üzenet módosításával lehet megváltoztatni a {{ns:8}} névtérben.",
        "trackingcategories-msg": "Nyomkövető kategória",
        "trackingcategories-name": "Üzenetnév",
        "trackingcategories-desc": "Kategóriába kerülés feltétele",
        "post-expand-template-argument-category-desc": "A lap nagyobb a <code>$wgMaxArticleSize</code> változóban megadott értéknél egy sablonparaméter kibontása után (valami hármas kapcsos zárójelek között, mint pl. <code>{{{1}}}</code>).",
        "expensive-parserfunction-category-desc": "A lap túl sok költséges elemzőfüggvényt használ (mint az <code>#ifexist</code>). Lásd még a [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit] lapot.",
        "broken-file-category-desc": "A lap törött fájllinket tartalmaz (egy fájlt beillesztő link, ami nem létező fájlra mutat).",
+       "hidden-category-category-desc": "A kategória <code><nowiki>__HIDDENCAT__</nowiki></code> kódot tartalmat, ezért alapértelmezésben a kategória nem jelenik meg a lapokon.",
        "trackingcategories-nodesc": "Nem található leírás.",
        "trackingcategories-disabled": "A kategória le van tiltva",
        "mailnologin": "Nincs feladó",
        "emailuser-title-target": "E-mail küldése ennek a felhasználónak: $1",
        "emailuser-title-notarget": "E-mail küldése a felhasználónak",
        "emailpage": "E-mail küldése",
-       "emailpagetext": "{{GENDER:$1|felhasználó}}nevű szerkesztő e-mail-címére ezen űrlap kitöltésével üzenetet tudsz küldeni.\nFeladóként a [[Special:Preferences|beállításaid]]nál megadott e-mail-címed fog szerepelni, így a címzett közvetlenül tud majd válaszolni neked.",
+       "emailpagetext": "Ezzel az űrlappal tudsz ennek a {{GENDER:$1|felhasználónak}} e-mailt küldeni.\nFeladóként a [[Special:Preferences|beállításaidnál]] megadott e-mail címed fog szerepelni, így a címzett közvetlenül tud majd válaszolni neked.",
        "defemailsubject": "{{SITENAME}} e-mail a következő felhasználótól: „$1”",
        "usermaildisabled": "Email fogadás letiltva",
        "usermaildisabledtext": "Nem küldhetsz emailt más felhasználóknak ezen a wikin",
        "emailccsubject": "$1 szerkesztőnek küldött $2 tárgyú üzenet másolata",
        "emailsent": "E-mail elküldve",
        "emailsenttext": "E-mail üzenetedet elküldtük.",
-       "emailuserfooter": "Ezt az e-mailt $1 küldte $2 számára, az „E-mail küldése ezen szerkesztőnek” funkció használatával a(z) {{SITENAME}} wikin.",
+       "emailuserfooter": "Ezt az e-mailt $1 küldte $2 számára, az „{{int:emailpage}}” funkció használatával a(z) {{SITENAME}} wikin.",
        "usermessage-summary": "Rendszerüzenet megadása.",
        "usermessage-editor": "Rendszerüzenetek",
        "watchlist": "Figyelőlistám",
        "unwatchthispage": "Figyelés leállítása",
        "notanarticle": "Nem szócikk",
        "notvisiblerev": "A változat törölve lett",
-       "watchlist-details": "A vitalapokon kívül {{PLURAL:$1|egy|$1}} lap van a figyelőlistádon.",
+       "watchlist-details": "$1 lap van a figyelőlistádon, a vitalapokat külön nem számolva.",
        "wlheader-enotif": "Az e-mailen keresztül történő értesítés engedélyezve.",
        "wlheader-showupdated": "Azok a lapok, amelyek megváltoztak, mióta utoljára megnézted őket, '''vastagítva''' láthatók.",
        "wlnote": "Alább {{PLURAL:$1|az utolsó változás|az utolsó <strong>$1</strong> változás}} látható az elmúlt {{PLURAL:$2|órában|<strong>$2</strong> órában}}, $3 $4-kor.",
        "delete-edit-reasonlist": "Törlési okok szerkesztése",
        "delete-toobig": "Ennek a lapnak a laptörténete több mint {{PLURAL:$1|egy|$1}} változatot őriz. A szervert kímélendő az ilyen lapok törlése nem engedélyezett.",
        "delete-warning-toobig": "Ennek a lapnak a laptörténete több mint {{PLURAL:$1|egy|$1}} változatot őriz. Törlése fennakadásokat okozhat a wiki adatbázis-műveleteiben; óvatosan járj el.",
+       "deleteprotected": "Nem tudod törölni a lapot, mivel le van védve.",
+       "deleting-backlinks-warning": "'''Figyelem:'''  [[Special:WhatLinksHere/{{FULLPAGENAME}}|Más lapok]] hivatkoznak a törlendő oldalra.",
        "rollback": "Szerkesztések visszaállítása",
        "rollbacklink": "visszaállítás",
        "rollbacklinkcount": "$1 szerkesztés visszaállítása",
        "rollbacklinkcount-morethan": "több mint $1 szerkesztés visszaállítása",
        "rollbackfailed": "A visszaállítás nem sikerült",
        "cantrollback": "Nem lehet visszaállítani: az utolsó szerkesztést végző felhasználó az egyetlen, aki a lapot szerkesztette.",
-       "alreadyrolled": "[[:$1]] utolsó, [[User:$2|$2]] ([[User talk:$2|vita]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) általi szerkesztését nem lehet visszavonni:\nidőközben valaki már visszavonta, vagy szerkesztette a lapot.\n\nAz utolsó szerkesztést [[User:$3|$3]] ([[User talk:$3|vita]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) végezte.",
+       "alreadyrolled": "[[:$1]] utolsó, [[User:$2|$2]] ([[User talk:$2|vita]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) általi szerkesztését nem lehet visszavonni:\nidőközben valaki már visszavonta vagy szerkesztette a lapot.\n\nAz utolsó szerkesztést [[User:$3|$3]] ([[User talk:$3|vita]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) végezte.",
        "editcomment": "A szerkesztési összefoglaló „''$1''” volt.",
        "revertpage": "Visszaállítottam a lap korábbi változatát: [[Special:Contributions/$2|$2]]  ([[User talk:$2|vita]]) szerkesztéséről [[User:$1|$1]] szerkesztésére",
        "revertpage-nouser": "Visszaállítottam a lap korábbi változatát (szerkesztőnév eltávolítva) szerkesztéséről [[User:$1|$1]] szerkesztésére",
        "prot_1movedto2": "[[$1]] lapot átneveztem [[$2]] névre",
        "protect-badnamespace-title": "Nem védhető névtér",
        "protect-badnamespace-text": "Ebben a névtérben az oldalak nem védhetők.",
+       "protect-norestrictiontypes-text": "Ezt a lapot nem lehet védeni, mert nincs ilyen korlátozási típus.",
+       "protect-norestrictiontypes-title": "Nem védhető lap",
        "protect-legend": "Levédés megerősítése",
        "protectcomment": "Ok:",
        "protectexpiry": "Időtartam",
        "protect-othertime": "Más időtartam:",
        "protect-othertime-op": "más időtartam",
        "protect-existing-expiry": "Jelenleg érvényben lévő lejárati idő: $2, $3",
+       "protect-existing-expiry-infinity": "Jelenleg érvényben lévő lejárati idő: végtelen",
        "protect-otherreason": "További okok:",
        "protect-otherreason-op": "Más/további ok:",
        "protect-dropdown": "*Általános védelmi okok\n** Gyakori vandalizmus\n** Gyakori spammelés\n** Destruktív szerkesztési háború\n** Nagy forgalmú lap",
        "namespace": "Névtér:",
        "invert": "Kijelölés megfordítása",
        "tooltip-invert": "Pipáld ki a dobozt, ha el szeretnéd rejteni a kiválasztott névterekben történt változtatásokat (és a kapcsolódó névterekben, amennyiben úgy van beállítva)",
+       "tooltip-whatlinkshere-invert": "Pipáld ki a dobozt, ha el szeretnéd rejteni a kiválasztott névterekben található hivatkozásokat.",
        "namespace_association": "Kapcsolódó névtér",
        "tooltip-namespace_association": "Pipáld ki ezt a dobozt, ha a kiválasztott névtérhez tartozó vita- vagy tárgynévteret is bele szeretnéd venni.",
        "blanknamespace": "(Fő)",
        "sp-contributions-newbies-sub": "Új szerkesztők lapjai",
        "sp-contributions-newbies-title": "Új szerkesztők közreműködései",
        "sp-contributions-blocklog": "Blokkolási napló",
+       "sp-contributions-suppresslog": "elrejtett szerkesztők közreműködései",
        "sp-contributions-deleted": "törölt szerkesztések",
        "sp-contributions-uploads": "feltöltések",
        "sp-contributions-logs": "naplók",
        "blockipsuccesstext": "„[[Special:Contributions/$1|$1]]” felhasználót blokkoltad.\n<br />Lásd a [[Special:BlockList|blokkolt IP-címek listáját]] az érvényben lévő blokkok áttekintéséhez.",
        "ipb-blockingself": "Saját magad blokkolására készülsz! Biztos, hogy ezt szeretnéd tenni?",
        "ipb-confirmhideuser": "Egy felhasználó blokkolására készülsz, úgy, hogy a „felhasználó elrejtése” funkció be van kapcsolva. Ez elrejti a felhasználó nevét az összes listában és naplóbejegyzésben. Biztosan ezt szeretnéd tenni?",
+       "ipb-confirmaction": "Ha biztos vagy benne, hogy tényleg ezt akarod csinálni, akkor jelöld be alul a {{int:ipb-confirm}} dobozt!",
        "ipb-edit-dropdown": "Blokkolási okok szerkesztése",
        "ipb-unblock-addr": "$1 blokkjának feloldása",
        "ipb-unblock": "Felhasználónév vagy IP-cím blokkolásának feloldása",
        "unblocked": "[[User:$1|$1]] blokkolása feloldva",
        "unblocked-range": "$1 blokkja feloldva",
        "unblocked-id": "$1 blokkolása feloldásra került",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] blokkolása feloldva",
        "blocklist": "Blokkolt felhasználók",
        "ipblocklist": "Blokkolt felhasználók",
        "ipblocklist-legend": "Blokkolt felhasználó keresése",
        "proxyblockreason": "Az IP-címeden ''nyílt proxy'' üzemel. Amennyiben nem használsz proxyt, vedd fel a kapcsolatot egy informatikussal vagy az internetszolgáltatóddal ezen súlyos biztonsági probléma ügyében.",
        "sorbsreason": "Az IP-címed nyitott proxyként szerepel e webhely által használt DNSBL listán.",
        "sorbs_create_account_reason": "Az IP-címed nyitott proxyként szerepel e webhely által használt DNSBL listán. Nem hozhatsz létre fiókot.",
+       "xffblockreason": "Az X-Forwarded-For fejlécben lévő IP-cím, akár a tied, akár a használt proxy szerveré, blokkolva van. Az eredeti blokkolási ok: $1",
        "cant-see-hidden-user": "A felhasználó, akit blokkolni próbáltál már blokkolva és rejtve van. Mivel nincs felhasználó elrejtése jogosultságod, nem láthatod és nem szerkesztheted a felhasználó blokkját.",
        "ipbblocked": "Nem blokkolhatsz és nem oldhatod fel más felhasználók blokkjait, mert te magad is blokkolva vagy",
        "ipbnounblockself": "Nincs jogosultságod feloldani a saját felhasználói fiókod blokkját",
        "move-page-legend": "Lap átnevezése",
        "movepagetext": "Az alábbi űrlap használatával nevezhetsz át egy lapot, és helyezheted át teljes laptörténetét az új nevére.\nA régi cím az új címre való átirányítás lesz.\nFrissítheted a régi címre mutató átirányításokat, hogy azok automatikusan a megfelelő címre mutassanak;\nha nem teszed, ellenőrizd a [[Special:DoubleRedirects|dupla]] vagy [[Special:BrokenRedirects|hibás átirányításokat]].\nNeked kell biztosítanod, hogy a linkek továbbra is oda mutassanak, ahová mutatniuk kell.\n\nA lap '''nem''' nevezhető át, ha már van egy ugyanilyen című lap, hacsak nem üres vagy átirányítás, és nincs laptörténete.\nEz azt jelenti, hogy vissza tudsz nevezni egy tévedésből átnevezett lapot, és nem tudsz létező lapot véletlenül felülírni.\n\n'''FIGYELEM!'''\nNépszerű oldalak esetén ez drasztikus és nem várt változtatás lehet;\ngyőződj meg a folytatás előtt arról, hogy tisztában vagy a következményekkel.",
        "movepagetext-noredirectfixer": "Az alábbi űrlap használatával nevezhetsz át egy lapot, és helyezheted át teljes laptörténetét az új nevére.\nA régi cím az új címre való átirányítás lesz.\nEllenőrizd a [[Special:DoubleRedirects|dupla]] és a [[Special:BrokenRedirects|hibás átirányításoknál]], hogy a linkek továbbra is oda mutatnak, ahová mutatniuk kell.\n\nA lap '''nem''' nevezhető át, ha már van egy ugyanilyen című lap, hacsak nem üres, vagy átirányítás, aminek nincs laptörténete.\nEz azt jelenti, hogy vissza tudsz nevezni egy tévedésből átnevezett lapot, de nem tudsz egy már létező lapot véletlenül felülírni.\n\n'''Figyelem!'''\nNépszerű oldalak esetén ez drasztikus és nem várt változtatás lehet;\ngyőződj meg a folytatás előtt arról, hogy tisztában vagy-e a következményekkel.",
-       "movepagetalktext": "A laphoz tartozó vitalap automatikusan átneveződik, '''kivéve, ha:'''\n*már létezik egy nem üres vitalap az új helyen,\n*nem jelölöd be a lenti pipát.\n\nEzen esetekben a vitalapot külön, kézzel kell átnevezned a kívánságaid szerint.",
-       "movearticle": "Lap átnevezése",
+       "movepagetalktext": "A laphoz tartozó vitalap automatikusan átneveződik ezzel a lappal együtt, <strong>kivéve, ha:</strong>\n*már létezik egy nem üres vitalap az új helyen,\n*nem jelölöd be a lenti pipát.\n\nEzen esetekben a vitalapot külön, kézzel kell átnevezned vagy egyesítened a kívánságaid szerint.",
+       "movearticle": "Átnevezendő lap:",
        "moveuserpage-warning": "'''Figyelem:''' Egy felhasználólapot készülsz átmozgatni. Csak a lap lesz átmozgatva, a szerkesztő ''nem'' lesz átnevezve.",
        "movecategorypage-warning": "<strong>Figyelmeztetés:</strong> Éppen egy kategórialapot készülsz átnevezni. Figyelj arra, hogy csak a lap lesz átnevezve, az idekategorizált lapok <em>nem</em> lesznek átkategorizálva.",
        "movenologintext": "Ahhoz, hogy átnevezhess egy lapot, [[Special:UserLogin|be kell lépned]].",
        "thumbnail-more": "A kép nagyítása",
        "filemissing": "A fájl nincs meg",
        "thumbnail_error": "Hiba a bélyegkép létrehozásakor: $1",
+       "thumbnail_error_remote": "Hiba üzenet $1-tól: $2",
        "djvu_page_error": "A DjVu lap a tartományon kívülre esik",
        "djvu_no_xml": "Nem olvasható ki a DjVu fájl XML-je",
        "thumbnail-temp-create": "Nem lehet ideiglenes bélyegkép fájlt létrehozni",
        "thumbnail-dest-create": "Nem lehet a bélyegképet a célhelyre menteni",
        "thumbnail_invalid_params": "Érvénytelen bélyegkép paraméterek",
+       "thumbnail_toobigimagearea": "Azon fájlok, amelyek nagyobbak mint $1",
        "thumbnail_dest_directory": "Nem hozható létre a célkönyvtár",
        "thumbnail_image-type": "A képformátum nem támogatott",
        "thumbnail_gd-library": "A GD-könyvtár nincs megfelelően beállítva: a(z) $1 függvény hiányzik",
        "thumbnail_image-missing": "Úgy tűnik, hogy a fájl hiányzik: $1",
+       "thumbnail_image-failure-limit": "Túl sok hibás bélyegkép létrehozás (több mint $1). Próbáld meg később!",
        "import": "Lapok importálása",
        "importinterwiki": "Importálás más wikiből",
        "import-interwiki-text": "Válaszd ki az importálandó wikit és lapcímet.\nA változatok dátumai és a szerkesztők nevei megőrzésre kerülnek.\nValamennyi más wikiről való importálás az [[Special:Log/import|importálási naplóban]] kerül naplózásra.",
        "import-interwiki-history": "A lap összes előzményváltozatainak másolása",
        "import-interwiki-templates": "Az összes sablon hozzáadása",
        "import-interwiki-submit": "Importálás",
+       "import-mapping-default": "Importálás az alapértelmezett helyekre",
+       "import-mapping-namespace": "Importálás ebbe a névtérbe:",
+       "import-mapping-subpage": "Importálás a következő lap allapjaként:",
        "import-upload-filename": "Fájlnév:",
        "import-comment": "Megjegyzés:",
        "importtext": "Exportáld a fájlt a forráswikiből az [[Special:Export|exportáló eszköz]] segítségével.\nMentsd el a számítógépedre, majd töltsd fel ide.",
        "import-error-interwiki": "„$1” lap nem került importálásra, mert a név külső hivatkozásokra van fenntartva (interwiki).",
        "import-error-special": "„$1” lap nem került importálásra, mert olyan speciális névtérbe tartozik, amelyen nem engedélyezettek a lapok.",
        "import-error-invalid": "„$1” lap nem került importálásra, mert a név, amelyen importálásra kerülne nem érvényes ezen a wikin.",
+       "import-error-unserialize": "A „$1” lap $2 változatát nem lehet sorba tenni. A változat $3 modellnek volt megadva, de $4 szerint lett sorba rakva.",
+       "import-error-bad-location": "A $2 változat $3 tartalom modellt használ, azért nem lehet a „$1” lapot ezt a wikin tárolni, mert ezt a modellt nem támogatja.",
        "import-options-wrong": "Rossz {{PLURAL:$2|opció|opciók}}: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "A megadott gyökér oldal címe érvénytelen.",
        "import-rootpage-nosubpage": "A(z) \"$1\" névtér nem engedi meg aloldalak használatát.",
        "javascripttest": "JavaScript tesztelés",
        "javascripttest-pagetext-noframework": "Ez az oldal JavaStript tesztek futtatására van fenntartva.",
        "javascripttest-pagetext-unknownframework": "Ismeretlen teszt keretrendszer: $1.",
+       "javascripttest-pagetext-unknownaction": "Ismeretlen akció: $1",
        "javascripttest-pagetext-frameworks": "Kérlek válaszd valamelyik teszt keretrendszert az alábbiak közül: $1",
        "javascripttest-pagetext-skins": "Válassz egy megjelenítő felületet, amin a tesztet futtatod:",
        "javascripttest-qunit-intro": "Lásd a [$1 tesztelési dokumentációt]  a mediawiki.org helyen.",
        "tooltip-feed-atom": "A lap tartalma Atom hírcsatorna formájában",
        "tooltip-t-contributions": "A felhasználó közreműködéseinek listája",
        "tooltip-t-emailuser": "Írj levelet ennek a felhasználónak!",
+       "tooltip-t-info": "További információk erről a lapról",
        "tooltip-t-upload": "Képek vagy egyéb fájlok feltöltése",
        "tooltip-t-specialpages": "Az összes speciális lap listája",
        "tooltip-t-print": "A lap nyomtatható változata",
        "pageinfo-length": "Lap hossza (bájtokban)",
        "pageinfo-article-id": "Lapazonosító",
        "pageinfo-language": "Laptartalom nyelve",
+       "pageinfo-content-model": "Oldal tartalom modell",
        "pageinfo-robot-policy": "Indexelés robottal",
        "pageinfo-robot-index": "Engedélyezett",
        "pageinfo-robot-noindex": "Nem engedélyezett",
        "pageinfo-magic-words": "Varázs{{PLURAL:$1|szó|szavak}} ($1)",
        "pageinfo-hidden-categories": "Rejtett {{PLURAL:$1|kategória|kategóriák}} ($1)",
        "pageinfo-templates": "Felhasznált {{PLURAL:$1|sablon|sablonok}} ($1)",
+       "pageinfo-transclusions": "Behivatkozott lapok ($1)",
        "pageinfo-toolboxlink": "Lapinformációk",
        "pageinfo-redirectsto": "Átirányítás ide",
        "pageinfo-redirectsto-info": "infó",
        "pageinfo-contentpage": "Tartalmi lapnak számít",
        "pageinfo-contentpage-yes": "Igen",
+       "pageinfo-protect-cascading": "Kaszkávvédelem innen",
        "pageinfo-protect-cascading-yes": "Igen",
+       "pageinfo-protect-cascading-from": "Kaszkádvédelem ettől:",
        "pageinfo-category-info": "Kategória információk",
+       "pageinfo-category-total": "A tagok teljes száma",
        "pageinfo-category-pages": "Lapok száma",
        "pageinfo-category-subcats": "Alkategóriák száma",
        "pageinfo-category-files": "Fájlok száma",
        "patrol-log-page": "Ellenőrzési napló (patrol)",
        "patrol-log-header": "Ez az ellenőrzött változatok naplója.",
        "log-show-hide-patrol": "járőrnapló $1",
+       "log-show-hide-tag": "$1 címke napló",
        "deletedrevision": "Régebbi változat törölve: $1",
        "filedeleteerror-short": "Hiba a fájl törlésekor: $1",
        "filedeleteerror-long": "Hibák merültek föl a következő fájl törlésekor:\n\n$1",
        "imgmultigo": "Menj",
        "imgmultigoto": "Ugrás a(z) $1. oldalra",
        "img-lang-default": "(alapértelmezett nyelv)",
+       "img-lang-info": "Kép feldolgozása $1 nyelven. $2",
+       "img-lang-go": "Mehet",
        "ascending_abbrev": "növ",
        "descending_abbrev": "csökk",
        "table_pager_next": "Következő oldal",
        "autosumm-replace": "A lap tartalmának cseréje erre: $1",
        "autoredircomment": "Átirányítás ide: [[$1]]",
        "autosumm-new": "Új oldal, tartalma: „$1”",
+       "autosumm-newblank": "Üres oldal létrehozva",
        "lag-warn-normal": "{{PLURAL:$1|Az egy|A(z) $1}} másodpercnél frissebb szerkesztések nem biztos, hogy megjelennek ezen a listán.",
        "lag-warn-high": "Az adatbázisszerver túlterheltsége miatt {{PLURAL:$1|az egy|a(z) $1}} másodpercnél frissebb változtatások nem biztos, hogy megjelennek ezen a listán.",
        "watchlistedit-normal-title": "A figyelőlista szerkesztése",
        "watchlistedit-clear-title": "A figyelőlista kiürítése",
        "watchlistedit-clear-legend": "Figyelőlista kiürítése",
        "watchlistedit-clear-explain": "Minden cím el lesz távolítva a figyelőlistádról",
+       "watchlistedit-clear-titles": "Címek:",
        "watchlistedit-clear-submit": "Figyelőlista kiürítése (Ez végleges!)",
+       "watchlistedit-clear-done": "A figyelőlistád törölve.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|$1 oldal}} törölve:",
+       "watchlistedit-too-many": "Túl sok lap a megjelenítéshez.",
        "watchlisttools-clear": "A figyelőlista kiürítése",
        "watchlisttools-view": "Kapcsolódó változtatások",
        "watchlisttools-edit": "A figyelőlista megtekintése és szerkesztése",
        "watchlisttools-raw": "A nyers figyelőlista szerkesztése",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|vita]])",
        "duplicate-defaultsort": "Figyelem: a(z) „$2” rendezőkulcs felülírja a korábbit („$1”).",
+       "duplicate-displaytitle": "<strong>Figyelmeztetés:</strong> A lapcímváltoztató (<tt>DISPLAYTITLE</tt>) „$2” felülírja a korábbi „$1”-t.",
+       "invalid-indicator-name": "<strong>Hiba:</strong> A lapstátuszjelző <code>name</code> attribútuma nem lehet üres.",
        "version": "Névjegy",
        "version-extensions": "Telepített kiterjesztések",
        "version-skins": "Telepített felületek",
        "version-ext-colheader-credits": "Szerzők",
        "version-license-title": "$1 licence",
        "version-license-not-found": "Ehhez a kiterjesztéshez nincs részletes licenc információ.",
+       "version-credits-title": "$1 közreműködői",
+       "version-credits-not-found": "Nem találtam részletes információt erről a kiterjesztésről.",
        "version-poweredby-credits": "Ez a wiki '''[https://www.mediawiki.org/ MediaWiki]''' szoftverrel működik, copyright © 2001-$1 $2.",
        "version-poweredby-others": "mások",
        "version-poweredby-translators": "translatewiki.net fordítók",
        "version-libraries-version": "Verzió",
        "redirect": "Átirányítás fájl, szerkesztő, oldal vagy oldalváltozat alapján",
        "redirect-legend": "Átirányítás egy fájlra vagy lapra",
+       "redirect-summary": "Ez a speciális lap átirányít egy fájlra (megadott fájlnévvel), lapra (megadott lapváltozat- vagy lapazonosító számmal) vagy felhasználóra (felhasználó azonosítószáma alapján). Használat: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] vagy [[{{#Special:Redirect}}/user/101]].",
        "redirect-submit": "Mehet",
        "redirect-lookup": "Keresés:",
        "redirect-value": "Érték:",
        "tags-source-header": "Forrás",
        "tags-active-header": "Aktív?",
        "tags-hitcount-header": "Címkézett változtatások",
+       "tags-actions-header": "Műveletek",
        "tags-active-yes": "Igen",
        "tags-active-no": "Nem",
        "tags-source-extension": "Egy kiterjesztés határozza meg",
+       "tags-source-manual": "Manuálisan adják meg felhasználók és botok",
        "tags-source-none": "Már nincs használatban",
        "tags-edit": "szerkesztés",
+       "tags-delete": "törlés",
+       "tags-activate": "aktiválás",
+       "tags-deactivate": "deaktiválás",
        "tags-hitcount": "{{PLURAL:$1|Egy|$1}} változtatás",
+       "tags-manage-no-permission": "Nincs engedélyed a változtatások címkéinek kezeléséhez.",
+       "tags-create-heading": "Új címke létrehozása",
+       "tags-create-explanation": "Alapértelmezés szerint az újonnan létrehozott címkék felhasználók és botok által manuálisan hozzáadhatók lesznek.",
+       "tags-create-tag-name": "Címke neve:",
+       "tags-create-reason": "Indoklás:",
+       "tags-create-submit": "Létrehozás",
+       "tags-create-no-name": "Kötelező megadnod egy címkenevet.",
+       "tags-create-invalid-chars": "Címkenevek nem tartalmazhatnak vesszőt (<code>,</code>) és normál perjelet (<code>/</code>).",
+       "tags-create-invalid-title-chars": "Címkenevek nem tartalmazhatnak lapcímben nem használható karaktereket.",
+       "tags-create-already-exists": "A(z) „$1” címke már létezik.",
+       "tags-create-warnings-above": "A következő {{PLURAL:$2|figyelmeztetést|figyelmeztetéseket}} találtam a(z) „$1” címke létrehozási kísérlete közben:",
+       "tags-create-warnings-below": "Továbbra is szeretnéd létrehozni a címkét?",
+       "tags-delete-title": "Címke törlése",
+       "tags-delete-explanation-initial": "Éppen a(z) „$1” címke törlésére készülsz az adatbázisból.",
+       "tags-delete-explanation-in-use": "El lesz távolítva {{PLURAL:$2|$2 lapváltozatról vagy naplóbejegyzésről|mind a(z) $2 lapváltozatról és/vagy naplóbejegyzésről}}, amire most érvényes.",
+       "tags-delete-explanation-warning": "Ez a művelet <strong>visszafordíthatatlan</strong> és <strong>nem vonható vissza</strong>, még adatbázis-adminisztrátorok segítségével sem. Győződj meg róla, hogy biztosan ezt a címkét szeretnéd törölni.",
+       "tags-delete-explanation-active": "<strong>A(z) „$1” címke jelenleg is aktív és érvényesítve lesz a jövőben.</strong> Ennek megakadályozásához menj az(ok)ra a hely(ek)re, ahol ez be van állítva, és kapcsold ki ott.",
+       "tags-delete-reason": "Indoklás:",
+       "tags-delete-submit": "Visszafordíthatatlanul törlöm a címkét",
        "tags-delete-not-allowed": "A kiterjesztés által létrehozott címkék nem törölhetők, ha a kiterjesztés nem engedélyezi kifejezetten azt.",
+       "tags-delete-not-found": "A(z) „$1” címke nem létezik.",
+       "tags-delete-too-many-uses": "A(z) „$1” címke több mint $2 lapváltoztatásban szerepel, ezáltal nem törölhető.",
+       "tags-delete-warnings-after-delete": "A(z) „$1” címke sikeresen törölve lett, de a következő {{PLURAL:$2|figyelmeztetést|figyelmeztetéseket}} találtam:",
+       "tags-activate-title": "Címke aktiválása",
+       "tags-activate-question": "Éppen a(z) „$1” címke aktiválására készülsz.",
+       "tags-activate-reason": "Indoklás:",
+       "tags-activate-not-allowed": "Nem lehetséges a(z) „$1” címkét aktiválni.",
+       "tags-activate-not-found": "A(z) „$1” címke nem létezik.",
+       "tags-activate-submit": "Aktiválás",
+       "tags-deactivate-title": "Címke deaktiválása",
+       "tags-deactivate-question": "Éppen a(z) „$1” címke deaktiválására készülsz.",
+       "tags-deactivate-reason": "Indoklás:",
+       "tags-deactivate-not-allowed": "Nem lehetséges a(z) „$1” címkét deaktiválni.",
+       "tags-deactivate-submit": "Deaktiválás",
+       "tags-apply-no-permission": "Nincs jogosultságod a szerkesztéseket címkékkel ellátni.",
+       "tags-apply-not-allowed-one": "A(z)  „$1” cimkét nem lehet manuálisan alkalmazni.",
+       "tags-apply-not-allowed-multi": "A következő {{PLURAL:$2|címkét|címkéket}} nem lehet manuálisan alkalmazni: $1",
+       "tags-update-no-permission": "Nincs jogosultságod egyedi változatok és napló bejegyzések címkézésére és címkék eltávolítására.",
+       "tags-update-add-not-allowed-one": "A(z) „$1” címkét nem lehet manuálisan alkalmazni.",
+       "tags-update-add-not-allowed-multi": "A következő {{PLURAL:$2|címkét|címkéket}} nem lehet manuálisan alkalmazni: $1",
+       "tags-update-remove-not-allowed-one": "A  „$1” címkét nem lehet törölni.",
+       "tags-update-remove-not-allowed-multi": "A következő {{PLURAL:$2|címkét|címkéket}} nem lehet manuálisan eltávolítani: $1",
        "tags-edit-title": "Címkék szerkesztése",
+       "tags-edit-manage-link": "Címkék kezelése",
+       "tags-edit-revision-selected": "[[:$2]] kiválasztott {{PLURAL:$1|változata|változatai}}",
+       "tags-edit-logentry-selected": "Kiválasztott napló {{PLURAL:$1|esemény|események}}:",
+       "tags-edit-revision-legend": "Címkék hozzáadás vagy eltávolítása {{PLURAL:$1|ehhez a változathoz|mind a(z) $1 változathoz}}",
+       "tags-edit-logentry-legend": "Címkék hozzáadás vagy eltávolítása {{PLURAL:$1|ehhez a napló bejegyzéshez|mind a(z) $1 napló bejegyzéshez}}",
        "tags-edit-existing-tags": "Létező címkék:",
+       "tags-edit-existing-tags-none": "„Nincs”",
+       "tags-edit-new-tags": "Új címkék:",
+       "tags-edit-add": "Alábbi címkék hozzáadása:",
+       "tags-edit-remove": "Alábbi címkék eltávolítása:",
+       "tags-edit-remove-all-tags": "(összes címke eltávolítása)",
+       "tags-edit-chosen-placeholder": "Válassz címkét",
+       "tags-edit-chosen-no-results": "Nem található a megadott címke",
+       "tags-edit-reason": "Ok:",
+       "tags-edit-revision-submit": "Változások alkalmazás {{PLURAL:$1|ehhez a|$1}} változathoz",
+       "tags-edit-logentry-submit": "Változások alkalmazás {{PLURAL:$1|ehhez a|$1}} napló bejegyzéshez",
+       "tags-edit-success": "A változások sikeresen alkalmazva.",
+       "tags-edit-failure": "A változásokat nem sikerült alkalmazni:\n$1",
+       "tags-edit-nooldid-title": "Érvénytelen változat",
+       "tags-edit-nooldid-text": "Nem adtál meg a változatot, vagy a megadott változat nem létezik.",
+       "tags-edit-none-selected": "Válassz legalább egy címlét, amelyet hozzá akarsz adni, vagy törölni szeretnél.",
        "comparepages": "Lapok összehasonlítása",
        "compare-page1": "1. lap",
        "compare-page2": "2. lap",
        "htmlform-no": "Nem",
        "htmlform-yes": "Igen",
        "htmlform-chosen-placeholder": "Válasszon egy opciót",
+       "htmlform-cloner-create": "További hozzáadása",
        "htmlform-cloner-delete": "Eltávolítás",
        "htmlform-cloner-required": "Legalább egy érték szükséges.",
        "sqlite-has-fts": "$1 teljes szöveges keresés támogatással",
        "revdelete-restricted": "elrejtett az adminisztrátorok elől",
        "revdelete-unrestricted": "felfedett az adminisztrátoroknak",
        "logentry-block-block": "$1 {{GENDER:$2|blokkolta}} „{{GENDER:$4|$3}}”-t $5 időtartamra $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|feloldotta}} {{GENDER:$4|$3}} blokkolását",
+       "logentry-block-reblock": "$1 {{GENDER:$2|módosította}} a blokk beállításokat „{{GENDER:$4|$3}}” szerkesztőnél $5 időtartamra $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|blokkolta}} „{{GENDER:$4|$3}}”-t $5 időtartamra $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|módosította}} a blokk beállításokat „{{GENDER:$4|$3}}” szerkesztőnél $5 időtartamra $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|importálta}} $3 lapot fájl feltöltéssel",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|importálta}} $3 lapot egy másik wikiből",
+       "logentry-merge-merge": "$1 {{GENDER:$2|összevonta}} $3 lapot $4 lappal ($5 változtig)",
        "logentry-move-move": "$1 átnevezte a(z) $3 lapot a következő névre: $4",
        "logentry-move-move-noredirect": "$1 átnevezte a(z) $3 lapot $4 lapra átirányítás nélkül",
        "logentry-move-move_redir": "$1 átnevezte a(z) $3 lapot $4 lapra az átirányítást felülírva",
        "logentry-rights-rights-legacy": "$1 megváltoztatta $3 csoporttagságát",
        "logentry-rights-autopromote": "$1 automatikusan előléptetve erről: $4 erre: $5",
        "logentry-upload-upload": "$1 {{GENDER:$2|feltöltötte}} ezt: $3",
+       "logentry-upload-overwrite": "$1 $3 új verzióját {{GENDER:$2|töltötte}} fel",
+       "logentry-upload-revert": "$1 {{GENDER:$2|feltöltötte}} $3-t",
+       "log-name-managetags": "Címke kezelő napló",
+       "log-description-managetags": "Ez a lista a a [[Special:Tags|címkéken]] kezelésével kapcsolatos. A napló csak azokat a tevékenységeket tartalmazza, amelyet az adminisztrátorok kézzel hajtottak végre. A wikiszoftver képes napló bejegyzés nélkül is létrehozni és törölni címkéket.",
+       "logentry-managetags-create": "$1 {{GENDER:$2|létrehozta}} a(z) „$4” címkét",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|törölte}} a „$4” címkét (eltávolított $5 változatról és/vagy napló bejegyzésről)",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|aktiválta}} a „$4” címkét a szerkesztők és botok számára történő használatára",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|deaktiválta}} a „$4” címkét a szerkesztők és botok számára történő használatára",
+       "log-name-tag": "Címke napló",
+       "log-description-tag": "Ez a lap azt tartalmazza, amikor a szerkesztő egyedi változathoz vagy napló bejegyzéshez   [[Special:Tags|címkét]] vett fel, vagy törölte azt. A napló nem tartalmazza azokat a címkézéseket, amikor az szerkesztés, törlés, vagy hasonló tevékenység részeként történik.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|felvette}} a(z) $6 {{PLURAL:$7|címkét|címkéket}} a(z) $3 lap $4 változatához",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|felvette}} a(z) $6 {{PLURAL:$7|címkét|címkéket}} a(z) $3 lap $5 napló bejegyzéséhez",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|eltávolította}} a(z) $8 {{PLURAL:$9|címkét|címkéket}} a(z) $3 lap $4 változatából",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|eltávolította}} a(z) $8 {{PLURAL:$9|címkét|címkéket}} a(z) $3 lap $5 napló bejegyzéséből",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|frissítette}} a címkéket a(z) $3 lap $4 változatánál ({{PLURAL:$7|hozzáadta}}: $6; {{PLURAL:$9|eltávolította}}: $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|frissítette}} a címkéket a(z) $3 lap $5 napló bejegyzésénél ({{PLURAL:$7|hozzáadta}}: $6; {{PLURAL:$9|eltávolította}}: $8)",
        "rightsnone": "(semmi)",
        "revdelete-summary": "a szerkesztési összefoglalóját",
        "feedback-adding": "Visszajelzés elmentése...",
+       "feedback-back": "Vissza",
        "feedback-bugcheck": "Nagyszerű! Ellenőrizd, hogy ez nem egy [$1 ismert hiba].",
        "feedback-bugnew": "Ellenőriztem. Új hiba jelentése",
        "feedback-bugornote": "Ha kész technikai problémát részletesen leírni, akkor kérjük [$1 jelents egy hibát]. Egyébként használd az alábbi űrlapot. A hozzászólásod a „[$3 $2]” laphoz kerül felvételre, a szerkesztő neveddel és böngésződ típusával együtt.",
        "feedback-cancel": "Mégse",
        "feedback-close": "Kész",
+       "feedback-external-bug-report-button": "A fájl egy technikai feladat",
+       "feedback-dialog-title": "Visszajelzés küldése",
+       "feedback-dialog-intro": "A visszajelzésedre az alábbi egyszerű űrlapot használhatod. A hozzászólásod a felhasználó neveddel együtt a „$1” oldalon fog megjelenni.",
+       "feedback-error-title": "Hiba",
        "feedback-error1": "Hiba: az API ismeretlen eredménnyel tért vissza",
        "feedback-error2": "Hiba: a szerkesztés nem sikerült",
        "feedback-error3": "Hiba: nem érkezett válasz az API-tól",
+       "feedback-error4": "Hiba: nem lehet elküldeni az adott visszajelzés címet",
        "feedback-message": "Üzenet:",
        "feedback-subject": "Tárgy:",
        "feedback-submit": "Elküldés",
+       "feedback-terms": "Tudomásul veszem, hogy „user agent” információm adatokat tartalmaz a böngészőm és az operációs rendszerem pontos verziójáról, és nyilvánosan megosztásra kerülnek a visszajelzésemmel.",
+       "feedback-termsofuse": "Egyetértek azzal, hogy visszajelzést Felhasználási Feltételek szerint nyújtom.",
        "feedback-thanks": "Köszönjük. A visszajelzésed elküldve a „[$2 $1]” laphoz.",
+       "feedback-thanks-title": "Köszönjük!",
+       "feedback-useragent": "User agent:",
        "searchsuggest-search": "Keresés",
        "searchsuggest-containing": "tartalmazza…",
        "api-error-badaccess-groups": "Nincs jogod fájlokat feltölteni erre a wikire.",
        "api-error-stashfailed": "Belső hiba: a kiszolgálünak nem sikerült eltárolni az ideiglenes fájlt.",
        "api-error-publishfailed": "Belső hiba: a kiszolgálónak nem sikerült közzétennie az ideiglenes fájlt.",
        "api-error-stasherror": "Hiba történt a fájl feltöltése közben.",
+       "api-error-stashedfilenotfound": "Az félretett fájl nem található a feltöltés során.",
+       "api-error-stashpathinvalid": "Az félretett fájlhoz tartozó útvonal érvénytelen.",
+       "api-error-stashfilestorage": "Hiba történt a tartalék helyre történő mentés során.",
+       "api-error-stashzerolength": "A szerver nem tudta tartalékba tenni a fájlt, mert nulla a mérete.",
+       "api-error-stashnotloggedin": "Be kell jelentkezned a fájl feltöltéséhez.",
+       "api-error-stashwrongowner": "A elérni kívánt tartalék fájl nem a tied.",
+       "api-error-stashnosuchfilekey": "Az elérni kívánt tartalék fájl kulcs nem létezik.",
        "api-error-timeout": "A kiszolgáló nem adott választ a várt időn belül.",
        "api-error-unclassified": "Ismeretlen hiba történt",
        "api-error-unknown-code": "Ismeretlen hiba: „$1”",
        "duration-centuries": "{{PLURAL:$1|egy|$1}} évszázad",
        "duration-millennia": "{{PLURAL:$1|egy|$1}} évezred",
        "rotate-comment": "Elforgattam a képet $1 fokkal, az óramutató járásával megegyező irányban",
+       "limitreport-title": "Parser profil adat:",
        "limitreport-cputime": "A CPU idő használata",
        "limitreport-cputime-value": "$1 másodperc",
+       "limitreport-walltime": "Valós idejű használat",
+       "limitreport-walltime-value": "$1 {{PLURAL:$1|másodperc}}",
+       "limitreport-ppvisitednodes": "Előfeldolgozó által bejárt csúcsok száma",
+       "limitreport-ppgeneratednodes": "Előfeldolgozó által generált csomópontok száma",
+       "limitreport-postexpandincludesize": "Kiterjesztés utáni méret",
        "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|bájt}}",
+       "limitreport-templateargumentsize": "Sablon argumentum méret",
        "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|bájt}}",
+       "limitreport-expansiondepth": "Legnagyobb kiterjesztési mélység",
+       "limitreport-expensivefunctioncount": "Költséges elemzőfüggvények mennyisége",
        "expandtemplates": "Sablonok kibontása",
        "expand_templates_intro": "Ez a speciális lap a bevitt szövegekben megkeresi a sablonokat és rekurzívan kibontja őket.\nKibontja a támogatott elemző függvényeket (pl. <code><nowiki>{{</nowiki>#language:...}}</code>), és a változókat (pl. <code><nowiki>{{</nowiki>CURRENTDAY}}</code>) is – mindent, ami a kettős kapcsos zárójelek között van.",
        "expand_templates_title": "Szöveg címe, például {{FULLPAGENAME}} sablonhoz:",
        "expand_templates_generate_xml": "XML elemzési fa mutatása",
        "expand_templates_generate_rawhtml": "Nyers HTML megjelenítése",
        "expand_templates_preview": "Előnézet",
+       "expand_templates_preview_fail_html": "<em>Mivel a(z) {{SITENAME}} engedélyezi a nyers HTML használatát, és a kapcsolati adatok elvesztek, az előnézet el van rejtve a JavaScript támadások megelőzése érdekében.</em>\n\n<strong>Ha ez egy ligitim előnézet kérés, akkor próbáld meg újra!</strong>\nHa nem működik, akkor próbálj meg [[Special:UserLogout|kijelentkezni]] és újra bejelentkezni!",
+       "expand_templates_preview_fail_html_anon": "<em>Mivel a(z) {{SITENAME}} engedélyezi a nyers HTML használatát, és a kapcsolati adatok elvesztek, az előnézet el van rejtve a JavaScript támadások megelőzése érdekében.</em>\n\n<strong>Ha ez egy legitim előnézet kérés, akkor próbálj meg [[Special:UserLogin|bejelentkezni]] és újra próbálni!</strong>",
        "pagelanguage": "Oldalnyelv-választó",
        "pagelang-name": "Oldal",
        "pagelang-language": "Nyelv",
        "action-pagelang": "oldal nyelvének módosítása",
        "log-name-pagelang": "Nyelvváltoztatások naplója",
        "log-description-pagelang": "Ebben a naplóban a lap nyelvének változásait követheted nyomon.",
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|megváltoztatta}} a(z) $3 lap nyelvét $4 nyelvről $5 nyelvre.",
+       "default-skin-not-found": "Upsz! A wiki alapértelmezett felülete, amely a <code dir=\"ltr\">$wgDefaultSkin</code> szerint <code>$1</code>, nem áll rendelkezésre.\n\nA telepítés az alábbi {{PLURAL:$4|felületet|felületeket}} tartalmazza.\nTovábbi információkat a felület konfigurálásáról és az alapértelmezett felület beállításáról  a [https://www.mediawiki.org/wiki/Manual:Skin_configuration Kézikönyv: Felület konfigurálása] helyen találsz.\n\n$2\n\n; Ha frissen telepítetted a MediaWikit:\n: Valószínűleg a git-ről telepítetted, vagy forrás kódból más módon. Ebben az esetben ez várható. Próbálj telepíteni felületeket a [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org felület könyvtárából], az alábbi módokon:\n:* Töltsd le a [https://www.mediawiki.org/wiki/Download tarball telepítőt], amely számos felületet és kiegészítést tartalmaz. Simán másold ki és beilleszt be a <code>skins/</code> könyvtárat belőle.\n:* Töltsd le az egyedi felület telepítő készleteket a [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org] helyről.\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Felület letöltése Git segítségével].\n: Ez nem ütközik a git repository-val, ha MediaWiki fejlesztő vagy.\n\n; Ha most frissítetted a MediaWikit:\n: MediaWiki 1.24 és újabb verziók már nem engedélyezik automatikusan a felületeket (lásd [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Kézikönyv: Felület automatikus felderítése]). Illeszd be az alábbi {{PLURAL:$5|sort|sorokat}} a  <code>LocalSettings.php</code> fájlba, ha engedélyezni akarod {{PLURAL:$5|a|az összes}} telepített felületet:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Ha most módosítottad a <code>LocalSettings.php</code> fájlt:\n: Ellenőrizd a felület neveket, mert lehet, hogy elírtad!",
+       "default-skin-not-found-no-skins": "Upsz! A wiki alapértelmezett felülete, amely a <code dir=\"ltr\">$wgDefaultSkin</code> szerint <code>$1</code>, nem áll rendelkezésre.\n\nNincs telepített felület\n\n; Ha frissen telepítetted a MediaWikit:\n: Valószínűleg a git-ről telepítetted, vagy forrás kódból más módon. Ebben az esetben ez várható. Próbálj telepíteni felületeket a [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org felület könyvtárából], az alábbi módokon:\n:* Töltsd le a [https://www.mediawiki.org/wiki/Download tarball telepítőt], amely számos felületet és kiegészítést tartalmaz. Simán másold ki és beilleszt be a <code>skins/</code> könyvtárat belőle.\n:* Töltsd le az egyedi felület telepítő készleteket a [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org] helyről.\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Felület letöltése Git segítségével].\n: Ez nem ütközik a git repository-val, ha MediaWiki fejlesztő vagy.",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (engedélyezve)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''letiltva''')",
        "mediastatistics": "Feltöltött fájlok statisztikája",
        "mediastatistics-summary": "Az alábbi statisztika a feltöltött fájlok alapján készült, mely a fájlok legfrissebb változatát tartalmazza a régi, vagy törölt fájlok kivételével.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 bájt|$1 bájt}} ($2; $3%)",
        "mediastatistics-table-mimetype": "MIME-típus",
        "mediastatistics-table-extensions": "Lehetséges kiterjesztések",
        "mediastatistics-table-count": "Fájlok száma",
        "mediastatistics-header-text": "Szöveges",
        "mediastatistics-header-executable": "Futtatható",
        "mediastatistics-header-archive": "Tömörített formátumok",
+       "json-warn-trailing-comma": "$1 bevezető vessző eltávolítva a JSON-ból",
        "json-error-unknown": "Hiba volt a JSON-ban. Hiba: $1",
+       "json-error-depth": "A verem maximális mélység túllépték",
        "json-error-state-mismatch": "Érvénytelen vagy hibás JSON",
+       "json-error-ctrl-char": "Vezérlő karakter hiba, vélhetően helytelen kódolás miatt",
        "json-error-syntax": "Szintaktikai hiba",
        "json-error-utf8": "Hibás UTF-8 karakter, esetleg helytelenül kódolt",
+       "json-error-recursion": "Egy vagy több rekurzív hivatkozások értéket kódolni kell",
+       "json-error-inf-or-nan": "Egy vagy több NAN vagy INF értékek kódolni kell",
+       "json-error-unsupported-type": "Kódolhatatlan típusú érték került megadásra",
+       "headline-anchor-title": "Hivatkozás erre a szakaszra",
        "special-characters-group-latin": "Latin",
        "special-characters-group-latinextended": "Bővített latin",
        "special-characters-group-ipa": "IPA",
        "special-characters-group-devanagari": "Dévanágari",
        "special-characters-group-thai": "Thai",
        "special-characters-group-lao": "Lao",
-       "special-characters-group-khmer": "Khmer"
+       "special-characters-group-khmer": "Khmer",
+       "special-characters-title-endash": "kötőjel",
+       "special-characters-title-emdash": "hosszú kötőjel",
+       "special-characters-title-minus": "minusz jel"
 }
index dc8d70f..b38aa5f 100644 (file)
@@ -21,7 +21,8 @@
                        "GrigorGB",
                        "Աշոտ1997",
                        "GeoO",
-                       "Դավիթ Սարոյան"
+                       "Դավիթ Սարոյան",
+                       "Beko"
                ]
        },
        "tog-underline": "ընդգծել հղումները՝",
@@ -48,7 +49,7 @@
        "tog-shownumberswatching": "Ցույց տալ հսկող մասնակիցների թիվը",
        "tog-oldsig": "Ընթացիկ ստորագրությունը՝",
        "tog-fancysig": "Ստորագրությունը վիքիտեքստի տեսքով (առանց ավտոմատ հղման)",
-       "tog-uselivepreview": "Օգտագործել անմիջական նախադիտում, առանց էջը վերբեռնելու (փորձնական)",
+       "tog-uselivepreview": "Օգտագործել անմիջական նախադիտում, առանց էջը վերբեռնելու",
        "tog-forceeditsummary": "Նախազգուշացնել խմբագրման ամփոփումը դատարկ թողնելու դեպքում",
        "tog-watchlisthideown": "Թաքցնել իմ խմբագրումները հսկացանկից",
        "tog-watchlisthidebots": "Թաքցնել բոտերի խմբագրումները հսկացանկից",
        "log-fulllog": "Դիտել ամբողջական տեղեկամատյանը",
        "edit-conflict": "Խմբագրման ընհարում։",
        "edit-no-change": "Ձեր խմբագրումը անտեսվել է, քանի որ ոչ մի փոփոխություն չի կատարվել տեքստի մեջ։",
+       "postedit-confirmation-created": "Էջը ստեղծվել է։",
+       "postedit-confirmation-restored": "Էջը վերականգնվել է",
        "postedit-confirmation-saved": "Ձեր խմբագրումը պահպանված է:",
+       "edit-already-exists": "Հրարավոր չէ նոր էջ ստեղծել․ այն արդեն գոյություն ունի։",
        "defaultmessagetext": "Լռելյան տեքստը",
        "editwarning-warning": "Այս էջը լքելով դուք կարող եք կորցնել ձեր կատարած փոփոխությունները։\nԵթե դուք գրանցված եք համակարգում, կարող եք անջատել այս նախազգուշացումը ձեր նախընրությունների «{{int:prefs-editing}}» բաժնում։",
        "content-model-wikitext": "վիքիտեքստ",
        "notextmatches": "Չկան համընկած տեքստերով էջեր",
        "prevn": "նախորդ {{PLURAL:$1|$1}}",
        "nextn": "հաջորդ {{PLURAL:$1|$1}}",
+       "prev-page": "նախորդ էջ",
+       "next-page": "հաջորդ էջ",
        "prevn-title": "Նախկին $1 {{PLURAL:$1|արդյունքը|արդյունքները}}",
        "nextn-title": "Հաջորդ $1 {{PLURAL:$1|արդյունքը|արդյունքները}}",
        "shown-title": "Յուրաքանչյուր էջում ցույց տալ $1 {{PLURAL:$1|գրառում|գրառումներ}}",
        "badsig": "Սխալ ստորագրություն. ստուգեք HTML-թեգերը։",
        "badsiglength": "Ստորագրությունը շատ երկար է։\nԱյն պետք է լինի {{PLURAL:$1|սիմվոլից|սիմվոլից}} ոչ ավել։",
        "yourgender": "Սեռ․",
-       "gender-unknown": "Õ\89Õ¶Õ·Õ¾Õ¡Õ®",
+       "gender-unknown": "Õ\89Õ¥Õ´ Ö\81Õ¡Õ¶Õ¯Õ¡Õ¶Õ¸Ö\82Õ´ Õ¶Õ·Õ¥Õ¬",
        "gender-male": "Արական",
        "gender-female": "Իգական",
        "prefs-help-gender": "Ոչ պարտադիր դաշտ․ ծրագիրը օգտագործում է այս տվյալը մասնակցին ճիշտ դիմելու համար։\nԱյս տեղեկությունը բոլորին տեսանլի է լինելու։",
        "filerevert": "Հետ շրջել $1-ը",
        "filerevert-legend": "Հետ շրջել նիշքը",
        "filerevert-intro": "Դուք հետ եք շրջում '''[[Media:$1|$1]]''' նիշքը [$4 տարբերակի՝ $3, $2 պահով]։",
-       "filerevert-comment": "Õ\84Õ¥Õ¯Õ¶Õ¡Õ¢Õ¡Õ¶Õ¸Ö\82Õ©ÕµÕ¸Ö\82Õ¶.",
+       "filerevert-comment": "Õ\8aÕ¡Õ¿Õ³Õ¡Õ¼.",
        "filerevert-defaultcomment": "Հետ է շրջվում հին տարբերակին՝ $2, $1 պահով",
        "filerevert-submit": "Հետ շրջել",
        "filerevert-success": "'''[[Media:$1|$1]]''' նիշքը հետ է շրջվել [$4 տարբերակին՝ $3, $2 պահով]։",
        "booksources-search": "Որոնել",
        "booksources-text": "Ստորև բերված են հղումներ դեպի արտաքին կայքեր, որտեղ կգտնեք հավելյալ տեղեկություններ գրքի մասին։ Սրանց մեջ ընդգրկված են ցանցային գրախանութներ և ընդհանուր գրադարանային կատալոգներ։",
        "booksources-invalid-isbn": "Նշված ISBN համարը ըստ երևույթի սխալ է պարունակում։ Համոզվեք որ համարը մուտքագրելիս, սխալ չի պատահել։",
-       "specialloguserlabel": "Մասնակից.",
+       "specialloguserlabel": "Կատարող․",
        "speciallogtitlelabel": "Անվանում.",
        "log": "Տեղեկամատյաններ",
        "all-logs-page": "Բոլոր տեղեկամատյանները",
        "sp-contributions-search": "Որոնել ներդրումները",
        "sp-contributions-username": "IP-հասե կամ մասնակցի անուն.",
        "sp-contributions-toponly": "Ցույց տալ միայն այն խմբագրումները, որոնք վերջին փոփոխություն են",
+       "sp-contributions-newonly": "Ցույց տալ միայն այն խմբագրումները, որոնք էջ են ստեղծել",
        "sp-contributions-submit": "Որոնել",
        "whatlinkshere": "Այստեղ հղվող էջերը",
        "whatlinkshere-title": "Էջեր, որոնք հղում են դեպի «$1»",
        "ipbreason-dropdown": "*Արգելափակման սովորական պատճառներ\n** Կեղծ տեղեկությունների ներմուծում\n** Էջերից նյութերի հեռացում\n** Արտաքին կայքերին հղումների սպամ\n** Անիմաստ/անկապ տեքստի ներմուծում էջերում\n** Վարկաբեկող/ահաբեկող պահվածք\n** Բազմաթիվ մասնակցային հաշիվների չարաշահում\n** Անպատշաճ մասնակցի անուն",
        "ipbcreateaccount": "Կանխարգելել մասնակցային հաշվի ստեղծումը",
        "ipbemailban": "Կանխարգելել մասնակցի կողմից էլ-նամակների ուղարկումը",
-       "ipbenableautoblock": "Ավտոմատիկ արգելափակել այս մասնակցի վերջին IP-հասցեն և բոլոր հետագա IP-հասցեները, որոնցից նա կփորձի խբագրումներ կատարել",
+       "ipbenableautoblock": "Ô±Õ¾Õ¿Õ¸Õ´Õ¡Õ¿Õ«Õ¯ Õ¡Ö\80Õ£Õ¥Õ¬Õ¡Ö\83Õ¡Õ¯Õ¥Õ¬ Õ¡ÕµÕ½ Õ´Õ¡Õ½Õ¶Õ¡Õ¯Ö\81Õ« Õ¾Õ¥Ö\80Õ»Õ«Õ¶ IP-Õ°Õ¡Õ½Ö\81Õ¥Õ¶ Ö\87 Õ¢Õ¸Õ¬Õ¸Ö\80 Õ°Õ¥Õ¿Õ¡Õ£Õ¡ IP-Õ°Õ¡Õ½Ö\81Õ¥Õ¶Õ¥Ö\80Õ¨, Õ¸Ö\80Õ¸Õ¶Ö\81Õ«Ö\81 Õ¶Õ¡ Õ¯Ö\83Õ¸Ö\80Õ±Õ« Õ­Õ´Õ¢Õ¡Õ£Ö\80Õ¸Ö\82Õ´Õ¶Õ¥Ö\80 Õ¯Õ¡Õ¿Õ¡Ö\80Õ¥Õ¬",
        "ipbsubmit": "Արգելափակել այս մասնակցին",
        "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",
        "siteuser": "{{grammar:genitive|{{SITENAME}}}} մասնակից $1",
        "lastmodifiedatby": "Այս էջը վերջին անգամ փոփոխվել է ժամը $2-ին, $1 թվին՝ $3 մասնակցի կողմից։",
        "othercontribs": "Հիմնված է {{grammar:genitive|$1}} գործի վրա։",
-       "others": "այլոք",
+       "others": "այլք",
        "siteusers": "{{grammar:genitive|{{SITENAME}}}} մասնակից(ներ) $1",
        "creditspage": "Երախտիքներ",
        "nocredits": "Այս էջի հեղինակների մասին տեղեկություններ չկան։",
index 14ab6dc..4e75c5f 100644 (file)
        "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.",
-       "passwordreset": "Setel ulang kata sandi",
+       "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-legend": "Setel ulang kata sandi",
        "changeemail-password": "Sandi {{SITENAME}} Anda:",
        "changeemail-submit": "Ubah surel",
        "changeemail-throttled": "Anda sudah terlalu banyak mencoba masuk log.\nSilakan menunggu $1 sebelum mencoba lagi.",
-       "resettokens": "Reset token",
+       "resettokens": "Ubah token",
        "resettokens-text": "Anda dapat me-reset Token yang memungkinkan akses ke data pribadi tertentu yang terkait dengan akun Anda di sini.\n\nAnda harus melakukannya jika Anda secara tidak sengaja berbagi dengan seseorang atau jika akun Anda telah disusupi.",
        "resettokens-no-tokens": "Tidak ada token untuk di-reset.",
        "resettokens-legend": "Reset token",
        "revdelete-offender": "Revisi penulis:",
        "suppressionlog": "Log penyembunyian",
        "suppressionlogtext": "Berikut adalah daftar penghapusan dan pemblokiran, termasuk konten yang disembunyikan dari para pengurus.\nLihat [[Special:BlockList|daftar pemblokiran]] untuk daftar terkininya.",
-       "mergehistory": "Gabung sejarah halaman",
+       "mergehistory": "Riwayat penggabungan sejarah halaman",
        "mergehistory-header": "Halaman ini memperbolehkan Anda untuk menggabungkan revisi-revisi dari satu halaman sumber ke halaman yang lebih baru.\nPastikan bahwa perubahan ini tetap mempertahankan kontinuitas versi terdahulu halaman.",
        "mergehistory-box": "Gabung revisi-revisi dari dua halaman:",
        "mergehistory-from": "Halaman sumber:",
        "recentchangeslinked-summary": "Ini adalah daftar perubahan pada halaman yang terkait ke halaman yang spesifik (atau bagian dari kategori yang spesifik).\nHalaman pada [[Special:Watchlist|daftar pantauan Anda]] terlihat <strong>dicetak tebal</strong>.",
        "recentchangeslinked-page": "Nama halaman:",
        "recentchangeslinked-to": "Perlihatkan perubahan dari halaman-halaman yang terhubung dengan halaman yang disajikan",
-       "upload": "Unggah berkas",
+       "upload": "Pengunggahan berkas",
        "uploadbtn": "Muatkan berkas",
        "reuploaddesc": "Kembali ke formulir pemuatan",
        "upload-tryagain": "Kirim perubahan keterangan berkas",
        "mimesearch-summary": "Halaman ini menyediakan fasilitas menyaring berkas berdasarkan tipe MIME-nya. Masukkan: contenttype/subtype atau contenttype/*, misalnya <code>image/jpeg</code>.",
        "mimetype": "Tipe MIME:",
        "download": "unduh",
-       "unwatchedpages": "Halaman yang tak dipantau",
+       "unwatchedpages": "Halaman yang tak terpantau",
        "listredirects": "Daftar pengalihan",
        "listduplicatedfiles": "Daftar berkas duplikat",
        "listduplicatedfiles-summary": "Ini adalah daftar berkas di mana versi terbaru dari berkas tersebut merupakan duplikat dari versi terbaru dari beberapa berkas lain. Hanya berkas lokal yang dianggap.",
        "listduplicatedfiles-entry": "[[:File:$1|$1]] memiliki [[$3|{{PLURAL:$2|sebuah duplikat|$2 duplikat}}]].",
-       "unusedtemplates": "Templat yang tak digunakan",
+       "unusedtemplates": "Templat yang tak terpakai",
        "unusedtemplatestext": "Daftar berikut adalah semua halaman pada ruang nama {{ns:template}} yang tidak dipakai di halaman mana pun.\nCek dahulu pranala lain ke templat tersebut sebelum menghapusnya.",
        "unusedtemplateswlh": "pranala lain",
        "randompage": "Halaman sembarang",
        "randompage-nopages": "Tidak ada halaman pada {{PLURAL:$2||}}ruang nama berikut: $1.",
-       "randomincategory": "Halaman acak dalam kategori",
+       "randomincategory": "Halaman sembarang dalam kategori",
        "randomincategory-invalidcategory": "\"$1\" bukanlah nama kategori yang berlaku.",
        "randomincategory-nopages": "Tidak ada halaman dalam [[:Category:$1]].",
        "randomincategory-category": "Kategori:",
        "nimagelinks": "Digunakan pada $1 {{PLURAL:$1|halaman|halaman}}",
        "ntransclusions": "digunakan pada $1 {{PLURAL:$1|halaman|halaman}}",
        "specialpage-empty": "Tak ada yang perlu dilaporkan.",
-       "lonelypages": "Halaman tanpa pranala balik",
+       "lonelypages": "Halaman tanpa pranala balik (yatim)",
        "lonelypagestext": "Halaman-halaman berikut tidak memiliki pranala dari atau ditransklusikan ke halaman mana pun di {{SITENAME}}.",
        "uncategorizedpages": "Halaman yang tak terkategori",
        "uncategorizedcategories": "Kategori yang tak terkategori",
        "uncategorizedimages": "Berkas yang tak terkategori",
        "uncategorizedtemplates": "Templat yang tak terkategori",
-       "unusedcategories": "Kategori yang tak digunakan",
-       "unusedimages": "Berkas yang tak digunakan",
+       "unusedcategories": "Kategori yang tak terpakai (kosong)",
+       "unusedimages": "Berkas yang tak terpakai",
        "wantedcategories": "Kategori yang diinginkan",
        "wantedpages": "Halaman yang diinginkan",
        "wantedpages-summary": "Daftar laman tak tersedia dengan tautan pada mereka, tidak termasuk laman yang hanya memiliki penautan pengalihan pada mereka.Untuk daftar laman tak tersedia yang memiliki penautan pengalihan pada mereka, lihat [[{{#special:BrokenRedirects}}]].",
        "wantedfiletext-nocat": "Berkas-berkas berikut digunakan tetapi tidak ada. Berkas dari repositori asing mungkin tercantum meskipun ada. Setiap \"false positive\" akan <del>dicoret</del>.",
        "wantedfiletext-nocat-noforeign": "Berkas berikut ini digunakan tetapi tidak ada.",
        "wantedtemplates": "Templat yang diinginkan",
-       "mostlinked": "Halaman yang tersering dituju",
-       "mostlinkedcategories": "Kategori yang tersering digunakan",
-       "mostlinkedtemplates": "Halaman yang paling ditransklusikan",
+       "mostlinked": "Halaman yang paling digunakan (dituju)",
+       "mostlinkedcategories": "Kategori yang paling digunakan",
+       "mostlinkedtemplates": "Templat yang paling digunakan (ditransklusikan)",
        "mostcategories": "Halaman dengan kategori terbanyak",
-       "mostimages": "Berkas yang tersering digunakan",
+       "mostimages": "Berkas yang paling digunakan",
        "mostinterwikis": "Halaman dengan interwiki terbanyak",
        "mostrevisions": "Halaman dengan perubahan terbanyak",
-       "prefixindex": "Semua halaman dengan awalan",
+       "prefixindex": "Semua halaman dengan awalan (Indeks awalan)",
        "prefixindex-namespace": "Semua halaman dengan awalan (ruang nama $1)",
        "prefixindex-strip": "Strip awalan dalam daftar",
        "shortpages": "Halaman pendek",
        "booksources-invalid-isbn": "ISBN yang diberikan tampaknya tidak valid; periksa kesalahan penyalinan dari sumber asli.",
        "specialloguserlabel": "Pengguna:",
        "speciallogtitlelabel": "Target (judul atau pengguna):",
-       "log": "Log",
+       "log": "Catatan (Log)",
        "all-logs-page": "Semua log publik",
        "alllogstext": "Gabungan tampilan semua log yang tersedia di {{SITENAME}}.\nAnda dapat melakukan pembatasan tampilan dengan memilih jenis log, nama pengguna (sensitif kapitalisasi), atau judul halaman (juga sensitif kapitalisasi).",
        "logempty": "Tidak ditemukan entri log yang sesuai.",
        "log-title-wildcard": "Cari judul yang diawali dengan teks tersebut",
        "showhideselectedlogentries": "Tampilkan/sembunyikan entri log terpilih",
        "log-edit-tags": "Sunting tag dari entri log yang terpilih",
-       "allpages": "Semua halaman",
+       "allpages": "Daftar halaman",
        "nextpage": "Halaman selanjutnya ($1)",
        "prevpage": "Halaman sebelumnya ($1)",
        "allpagesfrom": "Tampilkan halaman mulai dari:",
        "cachedspecial-viewing-cached-ttl": "Anda melihat versi tembolok halaman ini, yang mungkin sudah berumur $1.",
        "cachedspecial-viewing-cached-ts": "Anda melihat versi tembolok halaman ini, yang mungkin tidak akan benar-benar aktual.",
        "cachedspecial-refresh-now": "Lihat versi terbaru.",
-       "categories": "Kategori",
+       "categories": "Daftar kategori",
        "categoriespagetext": "{{PLURAL:$1|Kategori berikut|Kategori-kategori berikut}} memiliki isi halaman atau media.\n[[Special:UnusedCategories|Kategori yang tak digunakan]] tidak ditampilkan di sini.\nLihat pula [[Special:WantedCategories|kategori yang diinginkan]].",
        "categoriesfrom": "Tampilkan kategori-kategori dimulai dengan:",
        "special-categories-sort-count": "urutkan menurut jumlah",
        "activeusers-hidebots": "Sembunyikan bot",
        "activeusers-hidesysops": "Sembunyikan pengurus",
        "activeusers-noresult": "Pengguna tidak ditemukan.",
-       "listgrouprights": "Daftar kelompok pengguna",
+       "listgrouprights": "Daftar hak kelompok",
        "listgrouprights-summary": "Berikut adalah daftar kelompok pengguna yang terdapat di wiki ini, dengan daftar hak akses mereka masing-masing. Informasi lebih lanjut mengenai hak masing-masing dapat ditemukan di [[{{MediaWiki:Listgrouprights-helppage}}|halaman bantuan hak pengguna]].",
        "listgrouprights-key": "* <span class=\"listgrouprights-granted\">Hak yang diberikan</span>\n* <span class=\"listgrouprights-revoked\">Hak yang dicabut</span>",
        "listgrouprights-group": "Kelompok",
        "unblocked-range": "$1 telah diblokir",
        "unblocked-id": "Blokir $1 telah dicabut",
        "unblocked-ip": "[[Special:Contributions/$1|$1]] telah dibuka blokirnya.",
-       "blocklist": "Pengguna terblokir",
-       "ipblocklist": "Pengguna terblokir",
+       "blocklist": "Daftar pemblokiran pengguna",
+       "ipblocklist": "Daftar pemblokiran pengguna",
        "ipblocklist-legend": "Cari pengguna yang diblokir",
        "blocklist-userblocks": "Sembunyikan pemblokiran akun",
        "blocklist-tempblocks": "Sembunyikan pemblokiran sementara",
        "fileduplicatesearch-noresults": "Tidak ditemukan berkas dengan nama \"$1\".",
        "specialpages": "Halaman istimewa",
        "specialpages-note-top": "Keterangan",
-       "specialpages-note": "* Halaman istimewa normal.\n* <span class=\"mw-specialpagerestricted\">Halaman istimewa terlarang.</span>",
+       "specialpages-note": "* Halaman istimewa normal.\n* <span class=\"mw-specialpagerestricted\">Halaman istimewa terbatas</span> (hanya untuk pengurus).",
        "specialpages-group-maintenance": "Laporan pemeliharaan",
        "specialpages-group-other": "Lain-lain",
        "specialpages-group-login": "Masuk log / mendaftar",
index c0de184..f4c7d57 100644 (file)
@@ -82,7 +82,8 @@
                        "Horcrux92",
                        "Toadino2",
                        "Purodha",
-                       "TecnoMaster"
+                       "TecnoMaster",
+                       "Alexmar983"
                ]
        },
        "tog-underline": "Sottolinea i collegamenti:",
        "no-null-revision": "Non è stato possibile creare una versione nulla per la pagina \"$1\"",
        "badtitle": "Titolo non corretto",
        "badtitletext": "Il titolo della pagina richiesta è vuoto, errato oppure deriva da un errore nei collegamenti interlingua o interwiki.\nPotrebbe inoltre contenere uno o più caratteri il cui uso non è ammesso nei titoli.",
+       "title-invalid-empty": "Il titolo della pagina richiesta è vuoto o contiene solamente il nome di un namespace.",
+       "title-invalid-utf8": "Il titolo della pagina richiesta contiene una sequenza UTF-8 non valida.",
+       "title-invalid-interwiki": "Il titolo della pagina richiesta contiene un collegamento interwiki che non può essere usato nei titoli.",
+       "title-invalid-talk-namespace": "Il titolo della pagina richiesta fa riferimento a una pagina di discussione non presente.",
+       "title-invalid-characters": "Il titolo della pagina richiesta contiene caratteri invalidi: \"$1\".",
+       "title-invalid-relative": "Il titolo indicato contiene un percorso relativo (./, ../). Tali titoli non sono validi, perché risulteranno spesso irraggiungibili quando gestiti dal browser dell'utente.",
+       "title-invalid-magic-tilde": "Il titolo della pagina richiesta non è valido in quanto contiene la successione speciale di tilde (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Il titolo della pagina richiesta è troppo lungo. Non può essere più lungo di {{PLURAL:$1|byte}} in codifica UTF-8.",
+       "title-invalid-leading-colon": "Il titolo della pagina richiesta contiene due punti all'inizio del titolo.",
        "perfcached": "I dati che seguono sono estratti da una copia ''cache'' del database, e potrebbero non essere aggiornati. Un massimo di {{PLURAL:$1|un risultato è disponibile|$1 risultati sono disponibili}} in cache.",
        "perfcachedts": "I dati che seguono sono estratti da una copia ''cache'' del database, il cui ultimo aggiornamento risale al $1. Un massimo di {{PLURAL:$4|un risultato è disponibile|$4 risultati è disponibile}} in cache.",
        "querypage-no-updates": "Gli aggiornamenti della pagina sono temporaneamente sospesi. I dati in essa contenuti non verranno aggiornati.",
        "content-model-css": "CSS",
        "content-json-empty-object": "Oggetto vuoto",
        "content-json-empty-array": "Array vuoto",
+       "duplicate-args-warning": "<strong>Avvertenza:</strong> [[:$1]] è chiamata [[:$2]] con più di un valore per il parametro \"$3\". Solo l'ultimo valore fornito sarà utilizzati.",
        "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>.",
        "expensive-parserfunction-warning": "'''Attenzione:''' Questa pagina contiene troppe chiamate alle parser functions.\n\nDovrebbe averne meno di $2, al momento ce {{PLURAL:$1|n'è $1|ne sono $1}}.",
        "userrights-lookup-user": "Gestione dei gruppi utente",
        "userrights-user-editname": "Inserire il nome utente:",
        "editusergroup": "Modifica gruppi utente",
-       "editinguser": "Modifica diritti utente dell'utente '''[[User:$1|$1]]''' $2",
+       "editinguser": "Modifica in corso dei diritti dell'{{GENDER:$1|utente}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Modifica gruppi utente",
        "saveusergroups": "Salva gruppi utente",
        "userrights-groupsmember": "Appartiene {{PLURAL:$1|al gruppo|ai gruppi}}:",
        "uploaddisabledtext": "Il caricamento dei file non è attivo.",
        "php-uploaddisabledtext": "Il caricamento di file tramite PHP è disabilitato. Controlla la configurazione di file_uploads.",
        "uploadscripted": "Questo file contiene codice HTML o di script, che potrebbe essere interpretato erroneamente da un browser web.",
+       "uploaded-script-svg": "Trovato elemento di script \"$1\" nel file caricato in formato SVG.",
+       "uploaded-hostile-svg": "Trovato CSS non sicuro nell'elemento di stile del file in formato SVG caricato.",
+       "uploaded-image-filter-svg": "Trovato filtro immagine con URL: <code>&lt;$1 $2=\"$3\"&gt;</code> nel file in formato SVG caricato.",
        "uploadscriptednamespace": "Questo file SVG contiene un namespace '$1' non consentito",
        "uploadinvalidxml": "Il codice XML nel file caricato non può essere elaborato.",
        "uploadvirus": "Questo file contiene un virus! Dettagli: $1",
        "tags-edit-manage-link": "Gestisci etichette",
        "tags-edit-revision-selected": "{{PLURAL:$1|Versione selezionata|Versioni selezionate}} di [[:$2]]:",
        "tags-edit-logentry-selected": "{{PLURAL:$1|Evento del registro selezionato|Eventi del registro selezionati}}:",
+       "tags-edit-revision-legend": "Aggiungi o rimuovi etichette da {{PLURAL:$1|questa versione|tutte le $1 versioni}}",
+       "tags-edit-logentry-legend": "Aggiungi o rimuovi etichette da {{PLURAL:$1|questa voce di registro|tutte le $1 voci di registro}}",
        "tags-edit-existing-tags": "Etichette esistenti:",
        "tags-edit-existing-tags-none": "''Nessuna''",
        "tags-edit-new-tags": "Nuove etichette:",
        "tags-edit-chosen-no-results": "Nessun tag corrispondente trovato",
        "tags-edit-reason": "Motivo:",
        "tags-edit-revision-submit": "Applica le modifiche a {{PLURAL:$1|questa revisione|$1 revisioni}}",
+       "tags-edit-logentry-submit": "Applica le modifiche a {{PLURAL:$1|questa voce di registro|$1 voci di registro}}",
        "tags-edit-success": "Le modifiche sono state applicate correttamente.",
        "tags-edit-failure": "Non è stato possibile effettuare le seguenti modifiche:\n$1",
+       "tags-edit-nooldid-title": "Versione specificata non valida",
+       "tags-edit-nooldid-text": "Non è stata specificata alcuna versione della pagina su cui eseguire questa funzione, oppure la versione specificata non esiste.",
        "tags-edit-none-selected": "Per favore, seleziona almeno un tag da aggiungere o rimuovere.",
        "comparepages": "Confronta le pagine",
        "compare-page1": "Pagina 1",
        "logentry-managetags-activate": "$1 {{GENDER:$2|ha inserito}} l'etichetta \"$4\" per l'uso da parte d'utenti e bot",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|ha disattivato}} l'etichetta \"$4\" per l'uso da parte d'utenti e bot",
        "log-name-tag": "Etichette",
+       "log-description-tag": "Questa pagina mostra quando gli utenti hanno aggiunto o rimosso [[Special:Tags|etichette]] da singole versioni o voci del registro. Il registro non elenca etichettature che avvengono con una modifica, una cancellazione o altra azione simile.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|ha aggiunto}} {{PLURAL:$7|l'etichetta|l'etichette}} $6 alla versione $4 della pagina $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|ha aggiunto}} {{PLURAL:$7|l'etichetta|le etichette}} $6 alla voce di registro $5 della pagina $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|ha rimosso}} {{PLURAL:$9|l'etichetta|le etichette}} $8 dalla versione $4 della pagina $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|ha rimosso}} {{PLURAL:$9|l'etichetta|le etichette}} $8 dalla voce di registro $5 della pagina $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|ha aggiornato}} le etichette della versione $4 della pagina $3 ({{PLURAL:$7|aggiunta|aggiunte}} $6; {{PLURAL:$9|rimossa|rimosse}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|ha aggiornato}} le etichette della voce di registro $5 di pagina $3 ({{PLURAL:$7|aggiunta|aggiunte}} $6; {{PLURAL:$9|rimossa|rimosse}} $8)",
        "rightsnone": "(nessuno)",
        "revdelete-summary": "oggetto della modifica",
        "feedback-adding": "Inserimento del feedback nella pagina...",
        "log-name-pagelang": "Modifiche lingua",
        "log-description-pagelang": "Questo è un registro delle modifiche alla lingua delle pagine.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|ha modificato}} la lingua della pagina $3 da $4 a $5.",
-       "default-skin-not-found": "Oops! La skin predefinita per il tuo wiki, definita in <code dir=\"ltr\">$wgDefaultSkin</code> come <code>$1</code>, non è disponibile.\n\nLa tua installazione sembra includere {{PLURAL:$4|la seguente|le seguenti}} skin. Vedi [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manuale: configurazione skin] per informazioni su come abilitar{{PLURAL:$4|la|le e scegliere quella predefinita}}.\n\n$2\n\n; Se hai appena installato MediaWiki:\n: Probabilmente lo hai installato da git, o direttamente dal codice sorgente usando qualche altro metodo. Ciò era previsto. Prova ad installare alcune skin dalla [https://www.mediawiki.org/wiki/Category:All_skins directory su mediawiki.org], tramite:\n:* Scaricando il [https://www.mediawiki.org/wiki/Download programma di installazione tarball], che viene fornito con diverse skin ed estensioni. Puoi fare copia ed incolla della directory <code dir=\"ltr\">skins/</code> da lì.\n:* Scaricando tarball di singole skin da [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clonando uno dei repository <code>mediawiki/skins/*</code> tramite git nella directory <code>skins/</code> della tua installazione MediaWiki.\n: In questo modo non dovrebbe interferire con il tuo repository git se sei uno sviluppatore MediaWiki.\n\n; Se hai appena aggiornato MediaWiki:\n: MediaWiki 1.24 e versioni successive non abilitano più automaticamente le skin installate (vedi [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manuale: rilevamento automatico skin]). Puoi copiare {{PLURAL:$5|la seguente linea|le seguenti linee}} nel <code>LocalSettings.php</code> per abilitare {{PLURAL:$5|la|tutte le}} skin attualmente {{PLURAL:$5|installata|installate}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Se hai appena modificato <code>LocalSettings.php</code>:\n: Ricontrolla i nomi delle skin per errori di battitura.",
-       "default-skin-not-found-no-skins": "Oops! La skin predefinita per il tuo wiki, definita in <code>$wgDefaultSkin</code> come <code>$1</code>, non è disponibile.\n\nNon hai skin installate.\n\n; Se hai appena installato o aggiornato MediaWiki:\n: Probabilmente lo hai installato da git, o direttamente dal codice sorgente usando qualche altro metodo. Ciò era previsto. MediaWiki 1.24 e versioni successive non include alcuna skin nel repository principale. Prova ad installare alcune skin dalla [https://www.mediawiki.org/wiki/Category:All_skins directory su mediawiki.org], tramite:\n:* Scaricando il [https://www.mediawiki.org/wiki/Download programma di installazione tarball], che viene fornito con diverse skin ed estensioni. Puoi fare copia ed incolla della directory <code>skins/</code> da lì.\n:* Scaricando tarball di singole skin da [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clonando uno dei repository <code>mediawiki/skins/*</code> tramite git nella directory <code dir=\"ltr\">skins/</code> della tua installazione MediaWiki.\n: In questo modo non dovrebbe interferire con il tuo repository git se sei uno sviluppatore MediaWiki. Vedi [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manuale: configurazione skin] per informazioni su come abilitarle e scegliere quella predefinita.",
+       "default-skin-not-found": "Oops! La skin predefinita per il tuo wiki, definita in <code dir=\"ltr\">$wgDefaultSkin</code> come <code>$1</code>, non è disponibile.\n\nLa tua installazione sembra includere {{PLURAL:$4|la seguente|le seguenti}} skin. Vedi [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manuale: configurazione skin] per informazioni su come abilitar{{PLURAL:$4|la|le e scegliere quella predefinita}}.\n\n$2\n\n; Se hai appena installato MediaWiki:\n: Probabilmente lo hai installato da git, o direttamente dal codice sorgente usando qualche altro metodo. Ciò era previsto. Prova ad installare alcune skin dalla [https://www.mediawiki.org/wiki/Category:All_skins directory su mediawiki.org], tramite:\n:* Scaricando il [https://www.mediawiki.org/wiki/Download programma di installazione tarball], che viene fornito con diverse skin ed estensioni. Puoi fare copia ed incolla della directory <code dir=\"ltr\">skins/</code> da lì.\n:* Scaricando tarball di singole skin da [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Usando Git per scaricare le skin].\n: In questo modo non dovrebbe interferire con il tuo repository git se sei uno sviluppatore MediaWiki.\n\n; Se hai appena aggiornato MediaWiki:\n: MediaWiki 1.24 e versioni successive non abilitano più automaticamente le skin installate (vedi [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manuale: rilevamento automatico skin]). Puoi copiare {{PLURAL:$5|la seguente linea|le seguenti linee}} nel <code>LocalSettings.php</code> per abilitare {{PLURAL:$5|la|tutte le}} skin {{PLURAL:$5|installata|installate}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Se hai appena modificato <code>LocalSettings.php</code>:\n: Ricontrolla i nomi delle skin per errori di battitura.",
+       "default-skin-not-found-no-skins": "Oops! La skin predefinita per il tuo wiki, definita in <code>$wgDefaultSkin</code> come <code>$1</code>, non è disponibile.\n\nNon hai skin installate.\n\n; Se hai appena installato o aggiornato MediaWiki:\n: Probabilmente lo hai installato da git, o direttamente dal codice sorgente usando qualche altro metodo. Ciò era previsto. MediaWiki 1.24 e versioni successive non include alcuna skin nel repository principale. Prova ad installare alcune skin dalla [https://www.mediawiki.org/wiki/Category:All_skins directory su mediawiki.org], tramite:\n:* Scaricando il [https://www.mediawiki.org/wiki/Download programma di installazione tarball], che viene fornito con diverse skin ed estensioni. Puoi fare copia ed incolla della directory <code>skins/</code> da lì.\n:* Scaricando tarball di singole skin da [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Usando Git per scaricare le skin].\n: In questo modo non dovrebbe interferire con il tuo repository git se sei uno sviluppatore MediaWiki. Vedi [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manuale: configurazione skin] per informazioni su come abilitarle e scegliere quella predefinita.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (abilitata)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''disabilitata''')",
        "mediastatistics": "Statistiche relative ai file multimediali",
index 35cfe7d..2f6c505 100644 (file)
        "no-null-revision": "ページ「$1」に新しい空編集の版を作成できませんでした。",
        "badtitle": "正しくないページ名",
        "badtitletext": "無効または空のページ名が指定されたか、言語間/ウィキ間リンクの方法に誤りがあります。\nページ名に使用できない文字が含まれている可能性があります。",
+       "title-invalid-empty": "指定されたページ名は空もしくは名前空間しか含んでいません。",
+       "title-invalid-utf8": "指定されたページ名が無効なUTF-8シーケンスを含んでいます。",
+       "title-invalid-interwiki": "指定されたページ名がページ名として使用できないウィキ間リンクを含んでいます。",
+       "title-invalid-talk-namespace": "指定されたページは存在し得ないトークページです。",
+       "title-invalid-characters": "指定されたページ名が無効な文字 \"$1\" を含んでいます。",
+       "title-invalid-magic-tilde": "指定されたページ名は無効なチルダ文字列 (<nowiki>~~~</nowiki>) を含んでいます。",
+       "title-invalid-too-long": "指定されたページ名が長すぎます。UTF-8エンコードで $1 バイト以下でなければなりません。",
+       "title-invalid-leading-colon": "指定されたページ名の先頭に無効なコロンが含まれています。",
        "perfcached": "以下のデータはキャッシュされており、最新ではない可能性があります。最大 $1 {{PLURAL:$1|件の結果}}がキャッシュされます。",
        "perfcachedts": "以下のデータはキャッシュされており、最終更新日時は $1 です。最大 $4 {{PLURAL:$4|件の結果}}がキャッシュされます。",
        "querypage-no-updates": "ページの更新は無効になっています。\n以下のデータの更新は現在行われていません。",
        "action-editmyprivateinfo": "自分の非公開情報の編集",
        "action-editcontentmodel": "ページのコンテンツモデルを編集",
        "action-managechangetags": "タグのデータベースにおける作成および削除",
+       "action-applychangetags": "自分の編集にタグを適用する",
        "nchanges": "$1 {{PLURAL:$1|回の変更}}",
        "enhancedrc-since-last-visit": "最終閲覧以降 $1 {{PLURAL:$1|件}}",
        "enhancedrc-history": "履歴",
        "tags-deactivate-reason": "理由:",
        "tags-deactivate-not-allowed": "タグ「$1」は無効化できません。",
        "tags-deactivate-submit": "無効化",
+       "tags-apply-not-allowed-one": "タグ \"$1\" の手動適用は認められていません。",
+       "tags-apply-not-allowed-multi": "以下の {{PLURAL:$2|タグ}} は手動適用が認められていません: $1",
+       "tags-update-no-permission": "あなたには個々の版または記録項目のタグの追加または除去を行う権限はありません。",
+       "tags-update-add-not-allowed-one": "タグ \"$1\" の手動追加は認められていません。",
+       "tags-update-add-not-allowed-multi": "以下の {{PLURAL:$2|タグ}} は手動追加が認められていません: $1",
+       "tags-update-remove-not-allowed-one": "タグ \"$1\" の除去は認められていません。",
+       "tags-update-remove-not-allowed-multi": "以下の {{PLURAL:$2|タグ}} は手動除去が認められていません: $1",
        "tags-edit-title": "タグの編集",
+       "tags-edit-manage-link": "タグを管理",
+       "tags-edit-revision-selected": "[[:$2]] の{{PLURAL:$1|選択された版}}:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|選択された記録項目}}:",
+       "tags-edit-existing-tags": "既存のタグ:",
+       "tags-edit-existing-tags-none": "(なし)",
+       "tags-edit-new-tags": "新しいタグ:",
+       "tags-edit-remove-all-tags": "(すべてのタグを除去)",
        "tags-edit-reason": "理由:",
+       "tags-edit-failure": "変更は適用できませんでした: $1",
+       "tags-edit-nooldid-title": "無効な対象版",
        "comparepages": "ページの比較",
        "compare-page1": "ページ 1",
        "compare-page2": "ページ 2",
        "log-name-managetags": "タグ管理記録",
        "log-description-managetags": "このページは[[Special:Tags|タグ]]に関係する管理タスクをリストアップしています。ログには管理者によって手動で実行された操作の記録しか記載されていません。ウィキ・ソフトウェアによって、ログを残さずにタグが作成・削除されている場合があります。",
        "logentry-managetags-create": "$1 がタグ「$4」を{{GENDER:$2|作成しました}}",
+       "log-name-tag": "タグ記録",
+       "logentry-tag-update-add-revision": "$1 がページ $3 の版 $4 に{{PLURAL:$7|タグ}} $6 を{{GENDER:$2|追加しました}}",
+       "logentry-tag-update-add-logentry": "$1 がページ $3 の記録項目 $5 に{{PLURAL:$7|タグ}} $6 を{{GENDER:$2|追加しました}}",
+       "logentry-tag-update-remove-revision": "$1 がページ $3 の版 $4 から{{PLURAL:$9|タグ}} $8 を{{GENDER:$2|除去しました}}",
+       "logentry-tag-update-remove-logentry": "$1 がページ $3 の記録項目 $5 から{{PLURAL:$9|タグ}} $8 を{{GENDER:$2|除去しました}}",
        "rightsnone": "(なし)",
        "revdelete-summary": "編集内容の要約",
        "feedback-adding": "ページへのフィードバックの追加...",
        "api-error-overwrite": "既存のファイルへの上書きは許可されていません。",
        "api-error-stashfailed": "内部エラー: サーバーは一時ファイルを格納できませんでした。",
        "api-error-publishfailed": "内部エラー: サーバーは一時ファイルを発行できませんでした。",
-       "api-error-stasherror": "ファイルをスタッシュにアップロードする際にエラーが発生しました。",
+       "api-error-stasherror": "ファイルを未公開アップロードする際にエラーが発生しました。",
+       "api-error-stashfilestorage": "未公開ファイルを格納する際にエラーが発生しました。",
+       "api-error-stashnotloggedin": "未公開ファイルを保存するにはログインが必要です。",
        "api-error-timeout": "サーバーが決められた時間内に応答しませんでした。",
        "api-error-unclassified": "不明なエラーが発生しました。",
        "api-error-unknown-code": "不明なエラー:「$1」",
index da6a59d..18b18dd 100644 (file)
        "cannotdelete": "გვერდის ან ფაილის „$1“ წაშლა შეუძლებელია.\nშესაძლოა, იგი უკვე წაშალა სხვა მომხმარებელმა.",
        "cannotdelete-title": "გვერდის „$1“ წაშლა შეუძლებელია",
        "delete-hook-aborted": "შესწორება გაუქმებულია გადამჭერით.\nდამატებითი ახსნა არ ჩაწერილა.",
+       "no-null-revision": "ვერ მოხერხდა ახალი ნულოვანი ცვლილების შექმნა გვერდისათვის „$1“",
        "badtitle": "არასწორი სათაური",
        "badtitletext": "მოთხოვნილი გვერდის სათაური იყო არასწორი, ცარიელი, ან წარმოადგენდა შეცდომით გაკეთებულ ბმულს ენათაშორისი ან ინტერ-ვიკი სათაურიდან.",
+       "title-invalid-empty": "მოთხოვნილი გვერდის სათაური ცარიელია ან მხოლოდ სახელთა სივრცის სახელს შეიცავს.",
+       "title-invalid-utf8": "მოთხოვნილი გვერდის სათაური არასწორ UTF-8 თანმიმდევრობას შეიცავს.",
+       "title-invalid-interwiki": "გვერდის მოთხოვნილი სათაური ენათშორის ბმულს შეიცავს, რომლის სათაურში გამოყენებაც არ შეიძლება.",
+       "title-invalid-talk-namespace": "მოთხოვნილი გვერდის სახელწოდება მითითებულია განხილვის გვერდზე, რომელიც არ შეიძლება არსებობდეს",
+       "title-invalid-characters": "მოთხოვნილი გვერდის სახელწოდება შეიცავს დაუშვებელ სიმბოლოებს «$1».",
+       "title-invalid-relative": "სათაურს აქვს შეფარდებითი გზა. გვერდების სათაურები შეფარდებითი გზით (/,../) წარმოადგენს გამოუსადეგარს, რადგან ისინი ხშირად მიუწვდომელია, როდესაც მუშავდება მომხმარებლის ბრაუზერით.",
+       "title-invalid-magic-tilde": "მოტხოვნილი გვერდის სათაური შეიცავს ტილდების დაუშვებელ თანმიმდევრობას (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "გვერდის მოთხოვნილი სათაური ძალიან გრძელია. ის უნდა იყოს არა ნაკლებ $1 {{PLURAL:$1|ბაიტისა|ბაიტისა}}, utf-8 კოდირებაში",
+       "title-invalid-leading-colon": "მოთხოვნილი სახელწოდების გვერდი შეიცავს დაუშვებელ ორწეტილს დასაწყისში",
        "perfcached": "შემდეგი მონაცემები აღებულია ქეშიდან და შესაძლოა არ შეიცავდენენ ბოლო ცვლილებებს. ქეშში ინახება მაქსიმუმ $1 {{PLURAL:$1|ჩანაწერი}}.",
        "perfcachedts": "შემდეგი მონაცემები აღებულია ქეშიდან, უკანასკნელად ის განახლდა $1. ქეშში ინახება მაქსიმუმ $4 {{PLURAL:$4|ჩანაწერი}}.",
        "querypage-no-updates": "ამ გვერდის განახლება გათიშულია.\nწარმოდგენილი მონაცემები არ განახლდება.",
        "viewyourtext": "თქვენ შეგიძლიათ იხილოთ და დააკოპიროთ  '''თქვენი რედაქტირებების''' საწყისი ტექსტი ამ გვერდზე:",
        "protectedinterface": "ეს გვერდი წარმოადგენს ტექსტურ ინტერფეისს პროგრამული უზრუნველყოფისათვის და დაცულია ვანდალიზმის აღკვეთის მიზნით.",
        "editinginterface": "'''ყურადღება:''' თქვენ არედაქტირებთ გვერდს, რომელიც პროგრამის ინტერფეისის ტექსტს შეიცავს. \nამ გვერდზე განხორციელებული რედაქტირება გამოიწვევს ამ ვიკის სხვა მომხმარებელთა სამუშაო ინტერფეისის შეცვლასაც. \nიმისათვის, რომ დაამატოთ ან შეცვალოთ თარგმანები ყველა ვიკიში, გთხოვთ, გამოიყენოთ მედიავიკის ლოკალიზაციის პროექტი [//translatewiki.net/ translatewiki.net].",
+       "translateinterface": "თარგმანების ყველა ვიკიში დასამატებლად ან შესაცვლელად, გთხოვთ გამოიყენოთ მედიავიკებისლოკალიზაციის პროექტი [//translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "ეს გვერდი რედაქტირებისგან დაცულია, რადგან იგი ჩართულია შემდეგ {{PLURAL:$1|გვერდში, რომლის |გვერდებში, რომელთა}} დასაცავადაც ჩართულია პარამეტრი \"იერარქიული\":\n$2",
        "namespaceprotected": "თქვენ არ გაქვთ '''$1''' სახელთა სივრცეში გვერდების რედაქტირების უფლება.",
        "customcssprotected": "თქვენ არ გაქვთ ამ CSS გვერდის რედაქტირების უფლება, ვინაიდან ის სხვა მომხმარებლის პირად კონფიგურაციას შეიცავს.",
        "customjsprotected": "თქვენ არ გაქვთ ამ JavaScript გვერდის რედაქტირების უფლება, ვინაიდან ის სხვა მომხმარებლის პირად კონფიგურაციას შეიცავს.",
        "mycustomcssprotected": "თქვენ არ გაქვთ ამ CSS-გვერდის რედაქტირების უფლება.",
        "mycustomjsprotected": "თქვენ არ გაქვთ ამ JavaScript-გვერდის რედაქტირების უფლება.",
+       "myprivateinfoprotected": "თქვენ არ გაქვთ თქვენი პირადი ინფორმაციის შეცვლის ნებართვა.",
+       "mypreferencesprotected": "თქვენ არ გაქვთ თქვენი კონფიგურაციის შეცვლის ნებართვა.",
        "ns-specialprotected": "გვერდების რედაქტირება სახელთა სივრცეში {{ns:special}} შეუძლებელია.",
        "titleprotected": "შემდეგი გვერდის შექმნა აკრძალულია მომხმარებელ [[User:$1|$1]]-ს მიერ.\nმოცემულია შემდეგი ახსნა: „''$2''“.",
        "filereadonlyerror": "ფაილი \"$1\" შეცვლა ვერ ხერხდება, რადგანაც ფაილის საცავი \"$2\" მხოლოდ კითხვის რეჟიმშია.\n\nადმინისტრატორი რომელმაც ის დაბლოკა მიუთითა შემდეგი მიზეზი: \"$3\".",
        "invalidtitle-unknownnamespace": "დაუშვებელი სათაური უცნობი სახელთა სივრცის ნომერი $1 და ტექსტი \"$2\"-ით",
        "exception-nologin": "შესვლა არ განხორციელდა",
        "exception-nologin-text": "ამ გვერდზე წვდომისათვის ან მოქმედებისთვის საჭიროა სისტემაში შესვლა.",
+       "exception-nologin-text-manual": "აუცილებელია $1, რათა იყოს წვდომა ამ გვერდთან ან მოქმედებასთან.",
        "virus-badscanner": "შეცდომა. ვირუსთა უცნობი სკანერი: ''$1''",
        "virus-scanfailed": "სკანირების შეცდომა  (კოდი $1)",
        "virus-unknownscanner": "უცნობი ანტივირუსი:",
        "userlogin-resetlink": "ავტორიზაციის მონაცემები დაგავიწყდათ?",
        "userlogin-resetpassword-link": "დაგავიწყდათ პაროლი?",
        "userlogin-helplink2": "დახმარება:შესვლა",
+       "userlogin-loggedin": "თქვენ უკვე შეხვედით როგორც {{GENDER:$1|$1}}.\nგამოიყენეთ ფორმა ქვემოთ, რათა შეხვიდეთ სხვა ანგარიშიდან.",
        "userlogin-createanother": "სხვა ანგარიშის შექმნა",
        "createacct-emailrequired": "ელ. ფოსტის მისამართი",
        "createacct-emailoptional": "ელ. ფოსტის მისამართი (არასავალდებულო)",
        "wrongpassword": "პაროლი არასწორად არის შეყვანილი. სცადეთ განმეორებით.",
        "wrongpasswordempty": "პაროლი არ არის შეყვანილი. სცადეთ განმეორებით.",
        "passwordtooshort": "შეტანილი პაროლი ძალიან მოკლეა.\nიგი უნდა შეიცავდეს მინიმუმ $1 სიმბოლოს.",
+       "passwordtoolong": "პაროლი არ შეიძლება აღემატებოდეს {{PLURAL:$1|1 სიმბოლო|$1 სიმბოლოები|$1 სიმბოლოს}}.",
        "password-name-match": "შეტანილი პაროლი უნდა განსხვავდებოდეს მომხმარებლის სახელისგან.",
        "password-login-forbidden": "ამ მომხმარებლის სახელისა და პაროლის გამოყენება აკრძალულია.",
        "mailmypassword": "ახალი პაროლის დაყენება",
        "createaccount-text": "ვიღაცამ შექმნა ანგარიში სახელით „$2“ და პაროლით „$3“ თქვენი ელექტრონული ფოსტისთვის {{SITENAME}}-ში ($4). გთხოვთ დარეგისტრირდეთ და შეცვალოთ პაროლი.\n\nშეგიძლიათ ყურადღება არ მიაქციოთ ამ შეტყობინებას, თუ ანგარიში შეცდომით შეიქმნა.",
        "login-throttled": "You have made too many recent login attempts.\nPlease wait $1 before trying again.",
        "login-abort-generic": "თქვენი ავტორიზაცია წარუმატებელია – გაუქმდა",
+       "login-migrated-generic": "თქვენი ანგარიში გადატანილი იქნა, და თქვენი მომხმარებლის სახელი ამ ვიკიში აღარ არსებობს.",
        "loginlanguagelabel": "ენა: $1",
        "suspicious-userlogout": "თქვენი მოთხოვნა გასვლის შესახებ გაუქმებულია, რადგანაც იგი გავს ქეშირებადი პროქსის ან არაკორექტული ბრაუზერის მოთხოვნას.",
+       "createacct-another-realname-tip": "რეალური სახელი არასავალდებულოა.\nთუ თქვენ მას მიუთითებთ, იგი გამოყენებული იქნება იმისათვის, რომ ნაჩვენები იყოს ვის მიერ იყო შეტანილი გვერდის ცვლილება.",
        "pt-login": "შესვლა",
        "pt-login-button": "შესვლა",
        "pt-createaccount": "ანგარიშის შექმნა",
        "resetpass-submit-loggedin": "პაროლის შეცვლა",
        "resetpass-submit-cancel": "გაუქმება",
        "resetpass-wrong-oldpass": "არასწორი დროებითი ან მოქმედი პაროლი.\nშესაძლოა თქვენ წარმატებით შეცვალეთ პაროლი ან მოითხოვეთ ახალი.",
+       "resetpass-recycled": "გთხოვთ, შეცვალეთ პაროლი იმაზე, რომელიც განსხვავდება თქვენი მიმდინარე პაროლისაგან.",
+       "resetpass-temp-emailed": "თქვენ წარდგენილი ხართ დროებითი პაროლის დახმარებით, რომელიც მიღებულია ელექტრონული ფოსტით. სისტემაში შესვლის დასრულებისთვის, აუცილებელია ახალი პაროლის წარდგენა:",
        "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}}\", რათა იგი მოგვიანებით ჩამოყაროთ.",
        "passwordreset": "პაროლის აღდგენა",
        "passwordreset-text-one": "შეავსეთ ეს ფორმა, რათა კვლავ დააყენოთ თქვენი პაროლი.",
        "passwordreset-text-many": "{{PLURAL:$1|ელ.ფოსტაზე დროებითი პაროლის მისაღებად შეავსეთ ერთ-ერთი ველი.}}",
        "changeemail-throttled": "თქვენ უკვე ძალიან ბევრჯერ სცადეთ შესვლა.\nგთხოვთ, მოიცადოთ $1, სანამ კიდევ სცდიდეთ.",
        "resettokens": "ტოკენების ჩამოყრა",
        "resettokens-text": "თქვენ შეგიძლიათ ჩამოყაროთ ტოკენები, რომლებიც შესაძლებლობას იძლევიან შესვლას განსაზღვრულ პირად მონაცემებში, დაკავშირებულს თქვენ ანგარიშთან აქ. \n\nთქვენ ეს აუცილებლად უნდა გააკეთოთ, თუ თქვენ ის შემთხვევით გააცანით სხვას ან თუკი თქვენი ანგარიში იქნა გატეხილი.",
+       "resettokens-no-tokens": "არ არის ტოკენები ჩამოსაყრელად",
        "resettokens-legend": "ტოკენების ჩამოყრა",
        "resettokens-tokens": "ჟეტონები:",
        "resettokens-token-label": "$1 (მიმდინარე მნიშვნელობა: $2)",
        "resettokens-watchlist-token": "ტოკენი ვებ-არხისთვის (Atom/RSS) [[Special:Watchlist|გვერდების ცვლილებები თქვენი კონტროლის სიაში]]",
+       "resettokens-done": "ტოკენების ჩამოყრა",
        "resettokens-resetbutton": "არჩეული ტოკენების ჩამოყრა",
        "bold_sample": "მუქი ტექსტი",
        "bold_tip": "მუქი ტექსტი",
        "preview": "წინასწარი გადახედვა",
        "showpreview": "წინასწარი გადახედვა",
        "showdiff": "ცვლილებების ჩვენება",
+       "blankarticle": "გაფრთხილება: გვერდი, რომელსაც ქმნით, ცარიელია. თუკი კვლავ დააჭერთ ღილაკს \"{{int:savearticle}}\", გვერდი შეიქმნება შემცვლელობის გარეშე.",
        "anoneditwarning": "<strong>გაფრთხილება:</strong> თქვენ არ ხართ ავტორიზირებული. თქვენი IP მისამართი საჯაროდ ხილული იქნება, თუკი განახორციელებთ რედაქტირებას. თუ თქვენ გაივლით <strong>[$1 ავტორიზაციას]</strong> ან <strong>[$2 შექმნით ანგარიშს]</strong>, სხვა უპირატესობებთან ერთად, თქვენი რედაქტირებები დაუკავშირდება თქვენს მომხმარებლის სახელს.",
        "anonpreviewwarning": "''თქვენ არ შესულხართ სისტემაში. თქვენი IP მისამართი შეინახება გვერდის ისტორიაში. ''",
        "missingsummary": "'''შეხსენება:''' თქვენ არ მიგითითებიათ რედაქტირების რეზიუმე.\nთუ ისევ დააწკაპუნებთ შენახვაზე, თქვენი რედაქტირება რეზიუმეს გარეშე დამახსოვრდება.",
+       "selfredirect": "გაფრთხილება: თქვენ გადამისამართებას იმავე გვერდზე ქმნით. შესაძლოა, თქვენ გადამისამართებისთვის აირჩიეთ არასწორი სამიზნე გვერდი ან არედაქტირებთ არასამიზნე გვერდს. \n\nთუ თქვენ კიდევ ერთხელ დააჭერთ ღილაკს \"{{int:savearticle}}\", გადამისამართება შეიქმნება.",
        "missingcommenttext": "გთხოვთ კომენტარი შეიყვანოთ ქვემოთ.",
        "missingcommentheader": "'''შეხსენება:''' თქვენ ამ კომენტარისთვის სათაური/თემა არ მიგითითებიათ. თუ შენახვაზე \"{{int:savearticle}}\" დააწკაპუნებთ, თქვენი ცვლილება მის გარეშე იქნება შენახული.",
        "summary-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\n:''$2''\n\n* ბლოკის დაწყების თარიღი: $8\n* ბლოკის ვადის გასვლა: $6\n*დაიბლოკა $7\n\nშეგიძლიათ დაუკავშირდეთ $10ს ან რომელიმე სხვა\n[[{{MediaWiki:Grouppage-sysop}}|ადმინისტრატორს]] ამ ბლოკის განსახილველად.\n\nგაითვალისწინეთ, რომ თქვენ ვერ გამოიყენებთ „მისწერეთ ელ-წერილი ამ მომხმარებელს“ ფუნქციას თუ თქვენ შემოწმებული ელ-ფოსტის მისამართი\nარ გაქვთ მითითებული თქვენს [[Special:Preferences|კონფიგურაციაში]] და არ ხართ დაბლოკილი მისი გამოყენებისთვის.\n\nთქვენი IP — $3. თქვენი დაბლოკვის საიდენტიფიკაციო ნომერია $5. გთხოვთ მიუთითოთ ეს ნომერი, ნებისმიერ მიმოწერაში.",
        "content-not-allowed-here": "„$1“-ის შინაარსი დაუშვებელია [[$2]] გვერდზე",
        "editwarning-warning": "სხვა გვერდზე გადასვლამ შესაძლოა გამოიწვიოს ცვლილებების დაკარგვა.\nთუკი თქვენ დარეგისტრირებული ხართ სისტემაში, მაშინ შეგიძლიათ გამორთოთ ეს გაფრთხილება თქვენი კონფიგურაციის განყოფილებაში „{{int:prefs-editing}}“ .",
        "editpage-notsupportedcontentformat-title": "კონტენტის ფორმატი შეუსაბამოა.",
+       "editpage-notsupportedcontentformat-text": "$1 შემცველობის ფორმატი არ არის მხარდაჭერილი $2 მოდელის შემცველობასთან",
        "content-model-wikitext": "ვიკიტექსტი",
        "content-model-text": "ჩვეულებრივი ტექსტი",
        "content-model-javascript": "ჯავასკრიპტი",
        "parser-template-recursion-depth-warning": "თარგის რეკურსიის სიღრმე აემატება დაშვებულს ($1)",
        "language-converter-depth-warning": "ენათა გადამუშავების კონვერციის ლიმიტი ამოწურულია ($1)",
        "node-count-exceeded-category": "გვერდები, რომელშიც გადამეტებულია კვანძების რაოდენობა",
+       "node-count-exceeded-category-desc": "გვერდს აქვს გადაჭარბებული კვანძების მაქსიმალური დასაშვები რაოდენობა",
        "node-count-exceeded-warning": "გვერდზე გადამეტებულია კვანძების რაოდენობა",
        "expansion-depth-exceeded-category": "გვერდები გახსნის სიღრმის გადამეტებით",
+       "expansion-depth-exceeded-category-desc": "გვერდს აქვს გადაჭარბებული გაღების სიღრმის მაქსიმალურად დასაშვები რაოდენობა",
        "expansion-depth-exceeded-warning": "გვერდზე გადამეტებულია ჩადგმების ზღვარი",
        "parser-unstrip-loop-warning": "აღმოჩენილია ციკლური ბმული",
        "parser-unstrip-recursion-limit": "გადამეტებულია რეკურსიის ზღვარი ($1)",
        "undo-norev": "რედაქტირება ვერ გაუქმდება რადგანაც არ არსებობს ან წაშლილი იქნა.",
        "undo-nochange": "როგორც ჩანს, რედაქტირება უკვე გაუქმდა.",
        "undo-summary": "[[Special:Contributions/$2|$2-ის]]([[User talk:$2|განხილვა]]) ცვლილებების გაუქმება (№$1)",
+       "undo-summary-username-hidden": "ცვლილების გაუქმება $1, მომხმარებლის მიერ, რომლის სახელი დამალულია",
        "cantcreateaccounttitle": "ანგარიშის შექმნა ვერ ხერხდება",
        "cantcreateaccount-text": "ამ IP-მისამართიდან აიკრძალა (<b>$1</b>) მომხმარებელ [[User:$3|$3]]-ის მიერ.\n\n$3 -ემ ამგვარი ახსნა : ''$2''",
+       "cantcreateaccount-range-text": "{{GENDER:$3|მომხმარებელმა}} [[User:$3|$3]] ანგარიშის ან IP-მისამართის $1 შექმნისთვის {{GENDER:$3|დაადო}} აკრძალვა '''$1''', თქვენი IP-მისამართის ჩათვლით ($4).\n\nმითითებულია შემდეგი მიზეზი: $2.",
        "viewpagelogs": "ამ გვერდისთვის სარეგისტრაციო ჟურნალების ჩვენება",
        "nohistory": "ამ გვერდს განხილვის გვერდი ცარიელი აქვს.",
        "currentrev": "მიმდინარე შესწორება",
        "history-feed-description": "ამ გვერდის შესწორებათა ისტორია ვიკიში",
        "history-feed-item-nocomment": "$1  $2-ზე",
        "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": "[მომხმარებლის სახელი ან IP დამალულია. რეაქტირება ასევე დამალულია]",
        "rev-deleted-text-permission": "გვერდის ეს ჩასწორება '''წაიშალა'''.\nგანმარტება შესაძლოა მოცემული იყოს [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} წაშლათა ჟურნალში].",
+       "rev-suppressed-text-permission": "გვერდის ეს ვერსია დამალულია. წაშლის ახსნა მოყვანილია [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} აკრძალვის ჟურნალში].",
        "rev-deleted-text-unhide": "გვერდის ეს ვერსია '''წაიშალა'''.\nახსნა-განმარტება მოცემულია [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} წაშლის ჟურნალში].\nსურვილის შემთხვევაში თქვენ შეგიძლიათ [$1 იხილოთ აღნიშნული ვერსია].",
        "rev-suppressed-text-unhide": "გვერდის ეს ვერსია '''დაიმალა'''.\nახსნა-განმარტება მოცემულია [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} დამალვის ჟურნალში].\nსურვილის შემთხვევაში თქვენ შეგიძლიათ [$1 იხილოთ აღნიშნული ვერსია].",
        "rev-deleted-text-view": "გვერდის ეს ვერსია '''წაიშალა'''.\nთქვენ შეგიძლიათ მისი ხილვა. წაშლის მიზეზები მოცემულია [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} წაშლის ჟურნალში].",
        "revdelete-no-file": "მოთხოვნილი ფაილი არ არსებობს.",
        "revdelete-show-file-confirm": "დარწმუნებული ხართ, რომ გსურთ ამ ფაილის წაშლილი ვერსიის ნახვა, „<nowiki>$1</nowiki>“ $2, $3-დან ?",
        "revdelete-show-file-submit": "ჰო",
+       "revdelete-selected-text": "{{PLURAL:$1|არჩეული ვერსიები|არჩეული ვერსიები}} [[:$2]]:",
+       "revdelete-selected-file": "{{PLURAL:$1|ფაილის ამორჩეული ვერსიები|ფაილის ამორჩეული ვერსიები}} [[:$2]]:",
        "logdelete-selected": "ჟურნალის {{PLURAL:$1|არჩეული ჩანაწერი|არჩეული ჩანაწერები}}:",
+       "revdelete-text-text": "წაშლილი ვერსიები ისევ და ისევ გამოჩნდება გვერდის ისტორიაში, თუმცა მათი შემცველობის ნაწილი მომხმარებლებისათვის მიუწვდომელი იქნება.",
+       "revdelete-text-file": "წაშლილი ფაილების ვერსიები ისევ და ისევ გამოჩნდება გვერდის ისტორიაში, თუმცა მათი შემცველობის ნაწილი მომხმარებლებისათვის მიუწვდომელი იქნება.",
+       "logdelete-text": "ჟურნალში არსებული წაშლილი მოვლენები ისევ და ისევ გამოჩნდება ჟურნალებში, თუმცა მათი შემცველობის ნაწილი მომხმარებლებისათვის მიუწვდომელი იქნება.",
+       "revdelete-text-others": "სხვა ადმინისტრატორებს ისე და ისევ ექნებათ წვდომის შესაძლებლობა დამალულ შემცვლელობასთან და შეეძლებათ მათი აღდგენა, თუკი არ არის დაყენებული დამატებითი შეზღუდვები.",
        "revdelete-confirm": "გთხოვთ დაადასტუროთ, რომ გსურთ ქმედების განხორციელება. ასევე ვიმედოვნებთ, რომ ყველაფერს აკეთებთ  [[{{MediaWiki:Policy-url}}|წესებთან შესაბამისობაში]].",
        "revdelete-suppress-text": "დამალვა შეიძლება განხორციელდეს '''მხოლოდ''' შემდეგ შემთხვევებში:\n* პოტენციურად ცილისმწამებლური ინფორმაცია\n* უადგილო პირადი ინფორმაცია\n*: ''სახლის მისამართი, ტელეფონის ნომრები, პასპორტის ნომერი და ა.შ.''",
        "revdelete-legend": "შეზღუდვის დაყენება",
        "mergehistory-empty": "რაიმე ცვლილების შერწყმა შეუძლებელია.",
        "mergehistory-success": "$3 {{PLURAL:$3|შესწორება|შესწორებები|შესწორებების}}  [[:$1]]-დან წარმატებით {{PLURAL:$3|გადაიტანა|გადაიტანნენ|გადატანილი იქნენ}}  [[:$2]]-ში.",
        "mergehistory-fail": "ვერ მოხერხდა გვერდების ისტორიის გაერთიანება, გთხოვთ შეამოწმოთ გვერდის პაარამეტრები და დრო.",
+       "mergehistory-fail-toobig": "არ ხერხდება ისტორიების შერწყმა, რამეთუ აუცილებელია დაშვებული ლიმიტის მეტი ნაწილის გადატანა $1 ვერსიაში.",
        "mergehistory-no-source": "დანიშნულების გვერდი $1 არ არსებობს.",
        "mergehistory-no-destination": "დანიშნულების გვერდი $1 არ არსებობს.",
        "mergehistory-invalid-source": "წყაროს უნდა ჰქონდეს სწორი სათაური.",
        "editundo": "გაუქმება",
        "diff-empty": "(განსხვავება არ არის)",
        "diff-multi-sameuser": "({{PLURAL:$1|ერთი შუალედური ცვლილება|$1 შუალედური ცვლილებები}} იმავე მომხმარებლის მიერ არ არის ნაჩვენები)",
+       "diff-multi-otherusers": "(არ არის ნაჩვენები $1 მომხმარებელთა $2 შუალედ ვერსიებში)",
        "diff-multi-manyusers": "({{PLURAL:$2|ერთი მომხმარებლის|$2 მომხმარებლების}} {{PLURAL:$1|ერთი შუალედური ვერსია|$1 შუალედური ვერსიები}}, რომლებიც არ არის ნაჩვენები.)",
        "difference-missing-revision": "{{PLURAL:$2|$2 ვერსია}} ამ შედარებისათვის ($1) {{PLURAL:$2|ვერ მოიძებნა}}.\n\nეს ჩვეულებრივ ხდება მაშინ, თუ ვერსიების შედარების მოძველებული ბმულით გადადიხართ გვერდზე, რომელიც წაიშალა.\nდეტალური ინფორმაცია შესაძლებელია იყოს [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} წაშლების ჟურნალში].",
        "searchresults": "ძიების შედეგები",
        "searchrelated": "მიბმული",
        "searchall": "ყველა",
        "showingresults": "ქვემოთ იხილეთ <b>$1</b>-მდე შედეგი დაწყებული #<b>$2</b>-იდან.",
+       "showingresultsinrange": "ქვემოთ მოცემულია $1-მდე შედეგი, $2-იდან $3-მდე დიაპაზონში.",
        "search-showingresults": "{{PLURAL:$4|შედეგი <strong>$1</strong> დან <strong>$3</strong>|შედეგი <strong>$1 - $2</strong> დან <strong>$3</strong>}}",
        "search-nonefound": "მსგავსი მოთხოვნით გვერდი ვერ მოიძებნა.",
        "powersearch-legend": "გაფართოებული ძიება",
        "powersearch-togglelabel": "მონიშვნა:",
        "powersearch-toggleall": "ყველა",
        "powersearch-togglenone": "არაფერი",
+       "powersearch-remember": "არჩევანის დამახსოვრება სამომავლო ძიებისათვის",
        "search-external": "გარე ძიება",
        "searchdisabled": "{{SITENAME}}ში ძებნა გაუქმებულია. თქვენ შეგიძლიათ დროის შუალედით Google-ით ძებნა. მიაქციეთ ყურადღება, რომ {{SITENAME}}ში შესაძლებელია მათი ინდექსები აქტუალური არ არის.",
        "search-error": "ძიებისას მოხდა შეცდომა: $1",
        "preferences": "კონფიგურაცია",
        "mypreferences": "კონფიგურაცია",
        "prefs-edits": "რედაქციების რაოდენობა:",
+       "prefsnologintext2": "კონფიგურაციის შესაცვლელად შედით სისტემაში.",
        "prefs-skin": "გარეკანი",
        "skin-preview": "წინასწარი გადახედვა",
        "datedefault": "წყარო მითითებული არაა",
        "prefs-tokenwatchlist": "ჟეტონი",
        "prefs-diffs": "სხვაობა ვერსიებს შორის",
        "prefs-help-prefershttps": "ამ კონფიგურაციის არჩევა შედეგს გამოიღებს შემდგომი ავტორიზაციის შედმეგ.",
+       "prefswarning-warning": "თქვენ შეიტანეთ ცვლილება თქვენ პარამეტრებში, რომელიც ჯერ კიდევ არ არის შენახული. თუ თქვენ დატოვებთ ამ გვერდს და არ დააჭერთ \"$1\"-ს, პარამეტრები არ იქნება განახლებული.",
+       "prefs-tabs-navigation-hint": "რჩევა: თქვენ შეგიძლიათ გამოიყენოთ ისრის კლავიშები მარცხნივ ან მარჯვნივ ჩანართებსა და ჩანართბის სიას შორის არსებული გადასვლებისათვის",
        "email-address-validity-valid": "ელ-ფოსტის მისამართი სწორად გამოიყურება",
        "email-address-validity-invalid": "მიუთითეთ სწორი ელ-ფოსტის მისამართი",
        "userrights": "მომხმარებელთა უფლებების მართვა",
        "userrights-lookup-user": "მომხმარებელთა ჯგუფების მართვა",
        "userrights-user-editname": "შეიტანეთ მომხმარებლის სახელი:",
        "editusergroup": "მომხმარებელთა ჯგუფების რედაქტირება",
-       "editinguser": "უფლებების შეცვლა მომხმარებლისთვის: '''[[User:$1|$1]]''' $2",
+       "editinguser": "უფლებების შეცვლა {{GENDER:$1|მომხმარებლისთვის}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "დაარედაქტირეთ მომხმარებელთა ჯგუფები",
        "saveusergroups": "მომხმარებელთა ჯგუფების შენახვა",
        "userrights-groupsmember": "ჯგუფის წევრი:",
        "userrights-unchangeable-col": "ჯგუფები, რომლებიც არ შეგიძლიათ შეცვალოთ",
        "userrights-irreversible-marker": "$1*",
        "userrights-conflict": "მომხმარებელთა უფლებების კონფლიქტი! გთხოვთ ხელმეორედ შეინახოთ თქვენი ცვლილებები.",
+       "userrights-removed-self": "თქვენ წარმატებით წაშალეთ საკუთარი უფლება. შესაბამისად, თქვენ აღარ გექნებათ ამ გვერდთან წვდომის საშუალება",
        "group": "ჯგუფი:",
        "group-user": "მომხმარებლები",
        "group-autoconfirmed": "ავტომატურად დადასტურებული მომხმარებლები",
        "right-browsearchive": "წაშლილი გვერდების ძიება",
        "right-undelete": "გვერდის აღდგენა",
        "right-suppressrevision": "გვერდების დამალული ვერსიების ხილვა, დამალვა და აღდგენა ყველა მომხმარებლისგან",
+       "right-viewsuppressed": "ვერსიის ხილვა, რომელიც დამალულია ყველა მომხმარებლისათვის",
        "right-suppressionlog": "კერძო ჟურნალების ნახვა",
        "right-block": "სხვა მომხმარებლების მიერ რედაქტირების აკრძალვა",
        "right-blockemail": "ელ ფოსტის გაგზავნის აკრძალვა",
        "right-protect": "გვერდების დაცვის დონის შეცვლა და კასკადურად დაცული გვერდების რედაქტირება",
        "right-editprotected": "გვერდების რედაქტირება რომლებიც დაცულია როგორც „{{int:protect-level-sysop}}“",
        "right-editsemiprotected": "გვერდების რედაქტირება რომლებიც დაცულია როგორც „{{int:protect-level-autoconfirmed}}“",
+       "right-editcontentmodel": "გვერდის კონტენტური მოდელის რედაქტირება",
        "right-editinterface": "მომხმარებლის ინტერფეისის შეცვლა",
        "right-editusercssjs": "სხვა მომხმარებლების CSS- и JS- ფაილების შესწორება",
        "right-editusercss": "სხვა მომხმარებლების CSS- ფაილების შესწორება",
        "right-editmyusercss": "თქვენი საკუთარი CSS-ფაილების რედაქტირება",
        "right-editmyuserjs": "თქვენი საკუთარი JavaScript-ფაილების რედაქტირება",
        "right-viewmywatchlist": "თქვენი კონტროლის სიის ხილვა",
+       "right-editmywatchlist": "თქვენი კონტროლის სიის რედაქტირება; მიაქციეთ ყურადღება, რომ ზოგიერთი ქმედება დაამატებს გვერდებს ასეთი უფლების გარეშეც",
+       "right-viewmyprivateinfo": "თქვენი საკუთარი პირადი მონაცემების ხილვა (მაგ. ელ.ფოსტა, ნამდვილი სახელი)",
+       "right-editmyprivateinfo": "თქვენი საკუთარი პირადი მონაცემების რედაქტირება (მაგ. ელ.ფოსტა, ნამდვილი სახელი)",
+       "right-editmyoptions": "თქვენი საკუთარი კონფიგურაციის რედაქტირება",
        "right-rollback": "გარკვეულ გვერდზე ბოლო მომხმარებლის რედაქტირების სწრაფი გაუქმება",
        "right-markbotedits": "გაუქმებული შესწორებების მონიშვნა როგორც ბოტის",
        "right-noratelimit": "სიჩქარის შეზღუდვის არ არსებობა",
        "right-override-export-depth": "გვერდების ექსპორტირება, დაკავშირებული გვერდების ჩათვლით 5-მდე სიიღრმით",
        "right-sendemail": "გაგუგზავნე ელექტრონული ფოსტა სხვა მომხმარებლებს",
        "right-passwordreset": "ელ.ფოსტის ნახვა პაროლის შეცვლით",
+       "right-managechangetags": "[[Special:Tags|tags]] შექმნა და წაშლა მონაცემთა ბაზიდან",
+       "right-applychangetags": "[[Special:Tags|tags]] მიღება თქვენ ცვლილებებთან ერთად",
+       "right-changetags": "თვითნებური [[Special:Tags|tags]] დამატება ან წაშლა ცალკეულ ცვლილებებსა და ჟურნალის ჩანაწერებში",
        "newuserlogpage": "მომხმარებლის რეგისტრაციის ჟურნალი",
        "newuserlogpagetext": "ბოლო დროს დარეგისტრირებულ მომხმარებელთა სია",
        "rightslog": "მომხმარებლის უფლებების ჟურნალი",
        "action-viewmywatchlist": "თქვენი კონტროლის სიის ხილვა",
        "action-viewmyprivateinfo": "თქვენი პირადი ინფორმაციის ხილვა",
        "action-editmyprivateinfo": "თქვენი პირადი ინფორმაციის რედაქტირება",
+       "action-editcontentmodel": "გვერდის კონტენტური მოდელის რედაქტირება",
+       "action-managechangetags": "დასათაურების შექმნა და წაშლა მონაცემთა ბაზიდან",
+       "action-applychangetags": "ტეგების მიღება თქვენ ცვლილებებთან ერთად",
+       "action-changetags": "თავისუფალი ტეგების დამატება და წაშლა ცალკეულ ცვლილებებსა და ჟურნალების ჩანაწერებში",
        "nchanges": "$1 ცვლილება",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|ბოლო ვიზიტის შემდეგ}}",
        "enhancedrc-history": "ისტორია",
        "recentchanges-label-plusminus": "ცვლილებების ზომა ბაიტებში",
        "recentchanges-legend-heading": "'''ლეგენდა:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (იხ. აგრეთვე [[Special:NewPages|ახალი გვერდების სია]])",
+       "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "rcnotefrom": "ქვემოთ {{PLURAL:$5|ნაჩვენებია ცვლილება|ნაჩვენებია ცვლილებები}} <strong>$3, $4</strong>-დან (ნაჩვენებია არაუმეტეს <strong>$1</strong>).",
        "rclistfrom": "ახალი ცვლილებების ჩვენება დაწყებული $3 $2-დან",
        "rcshowhideminor": "მცირე რედაქტირების $1",
        "fileexists-shared-forbidden": "ფაილი ამ სახელწოდებით უკვე არსებობს ფაილების საერთო საცავში. თუ შეიძლება, უკან დაბრუნდით და ჩატვირთეთ ფაილი სხვა სახელწოდებით. [[File:$1|thumb|center|$1]]",
        "file-exists-duplicate": "ეს ფაილი არის შემდეგი {{PLURAL:$1|შემდეგი ფაილის|сშემდეგი ფაილების}} დუბლიკატი:",
        "file-deleted-duplicate": "მსგავსი ფაილი ([[:$1]]) უკვე წაშლილა. გთხოვთ, გაეცანით ფაილის წაშლის ისტორიას, მანამდე ვიდრე მას ხელმეორედ ატვირთავთ.",
+       "file-deleted-duplicate-notitle": "ამ ფაილთან იდენტური ფაილი, ადრე იქნა წაშლილი, ხოლო ფაილის სახელი აკრძალულია. თქვენ ვინმეს უნდა სთხოვოთ მოთხოვნილ ფაილებთან მონაცემთა გადახედვის წვდომასთან დაკავშირებით, რათა მან გაანალიზოს სიტუაცია იქამდე, თუ როგორ აიტვირთოს ფაილი ხელახლა",
        "uploadwarning": "გადატვირთვის შეხსენება",
        "uploadwarning-text": "გთხოვთ ჩაასწოროთ ფაილის აღწერა ქვევით და ხელმეორედ სცადოთ.",
        "savefile": "ფაილის შენახვა",
        "uploaddisabledtext": "ფაილების ატვირთვა შეუძლებელია.",
        "php-uploaddisabledtext": "ფაილების ატვირთვა შეჩერებულია PHP-ით. გთხოვთ შეამოწმოთ file_uploads-ის მნიშვნელობა.",
        "uploadscripted": "ფაილი შეიცავს HTML-კოდს, ან სკრიპტს, რომელიც ბროუზერმა შეიძლება არასწორედ გაანალიზოს.",
+       "uploadscriptednamespace": "ეს SVG ფაილი შეიცავს სახელთა არაკორექტულ სივრცეს \"$1\".",
+       "uploadinvalidxml": "XML ჩატვირთულ ფაილში არ შეიძლება იყოს ანალიზირებული",
        "uploadvirus": "ფაილი ვირუსს შეიცავს! დეტალები: $1",
        "uploadjava": "ეს არის ZIP-ფაილი, რომელიც ჯავას CLASS-ფაილს შეიცავს.\nჯავა-ფაილების ატვირთვა დაუშვებელია, ვინაიდან მათ შესაძლოა შეზღუდონ უსაფრთხოება.",
        "upload-source": "ფაილის წყარო",
        "listfiles-delete": "წაშლა",
        "listfiles-summary": "ეს სპეციალური გვერდი აჩვენებს ყველა ატვირთულ ფაილს.",
        "listfiles_search_for": "ძიება სურათის სახელის მიხედვით:",
+       "listfiles-userdoesnotexist": "მომხმარებლის ანგარიში „$1“ არ არის რეგისტრირებული",
        "imgfile": "ფაილი",
        "listfiles": "სურათების სია",
        "listfiles_thumb": "მინიატიურა",
        "download": "გადმოტვირთვა",
        "unwatchedpages": "არაკონტროლირებადი გვერდები",
        "listredirects": "გადამისამართებების სია",
+       "listduplicatedfiles": "ფაილების სია დუბლიკატებთან ერთად",
+       "listduplicatedfiles-summary": "ეს არის ფაილების სია, სადაც ფაილის ბოლო ვერსია ითვლება  ზოგიერთი ბოლო ვერსიის სხვა ფაილის დუბლიკატად. გათვალისწინებულია მხოლოდ ლოკალური ფაილები.",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]] აქვს [[$3|{{PLURAL:$2|დუბლიკატები|$2 დუბლიკატები}}]].",
        "unusedtemplates": "გამოუყენებელი თარგები",
        "unusedtemplatestext": "ეს გვერდი სახელთა სივრცეში \"{{ns:template}}\" მოიცავს ყველა იმ გვერდის ჩამონათვალს, რომელიც არ არის მოთავსებული სხვა გვერდებზე.\nგახსოვდეთ თარგების სხვა ბმულებს სანამ წაშლით შეამოწმეთ.",
        "unusedtemplateswlh": "სხვა ბმულები",
        "pageswithprop-text": "აქ მოცემულია გვერდები, რომელთაც ხელით განესაზღვრათ გარკვეული თვისებები.",
        "pageswithprop-prop": "თვისების სახელი:",
        "pageswithprop-submit": "მიდი",
+       "pageswithprop-prophidden-long": "ტექსტური თვისებების ხანგრძლივი მნიშვნელობა დამალულია ($1)",
+       "pageswithprop-prophidden-binary": "ორმაგი თვისებების მნიშვნელობა დამალულია ($1)",
        "doubleredirects": "ორმაგი გადამისამართება",
        "doubleredirectstext": "ამ გვერდზე ჩამოთვლილია გვერდები, რომლებიც გადამისამართებულია სხვა გადამისამართების გვერდებზე.\nყოველი მწკრივი შეიცავს ბმულებს პირველ და მეორე გადამისამართებაზე, აგრეთვე მეორე გადამისამართების ტექსტის პირველ სტრიქონს, რომელშიც ჩვეულებრივ მითითებულია რეალური „სამიზნე“ გვერდის სათაური. საჭიროა, რომ პირველი გადამისამართებაც უთითებდეს ამ გვერდზე.\n<del>გადახაზული</del> მონაცემები უკვე გამართულია.",
        "double-redirect-fixed-move": "[[$1]] გადატანილ იქნა.\nიგი განახლდა და ამჟამად გადამისამართებულია [[$2]]-ზე.",
        "unusedimages": "გამოუყენებელი ფაილები",
        "wantedcategories": "მოთხოვნილი კატეგორიები",
        "wantedpages": "მოთხოვნილი გვერდები",
+       "wantedpages-summary": "არარსებული გვერდების სია, მათზე არსებული ბმულების მაქსიმალური რაოდენობით, იმ გვერდების გამონაკლისის სახით, რომელთაც მხოლოდ გადამისამართებული გვერდები აქვთ, რომლებიც მათზე მიუთითებს. არარსებული გვერდების სიის მიღება, რომელთაც აქვთ გადამისამართება და მათზეა მიმაგრებული, იხილეთ [[{{#special:BrokenRedirects}}|the list of broken redirects]].",
        "wantedpages-badtitle": "შეცდომითი სათაური მთხოვნაში  $1.",
        "wantedfiles": "მოთხოვნილი ფაილები",
        "wantedfiletext-cat": "შემდეგი ფაილების გამოყენებას ცდილობენ, თუმცა ისინი არ არსებობენ. ამ სიაში შეცდომით შეიძლება მოხვდნენ ისე ფაილები, რომლებიც გარე საცავებში არიან. მსგავსი ცრუ ინფორმაცია აღნიშნული იქნება <del>გადახაზული ხაზით</del>. გარდა ამისა, გვერდები რომლებიც შეიცავენ არარსებულ ფაილებს ჩამოთვლილია აქ [[:$1]].",
+       "wantedfiletext-cat-noforeign": "გამოიყენება შემდეგი ფაილები, მაგრამ არ არსებობს. გარდა ამისა, გვერდები, რომლებიც მიმაგრებულია ამ ფაილებთან, არ არსებობს და ჩამოთვლილია ამ გვერდზე [[:$1]].",
        "wantedfiletext-nocat": "შემდეგი ფაილების გამოყენებას ცდილობენ, თუმცა ისინი არ არსებობენ. ამ სიაში შეცდომით შეიძლება მოხვდნენ ისე ფაილები, რომლებიც გარე საცავებში არიან. მსგავსი ცრუ ინფორმაცია აღნიშნული იქნება <del>გადახაზული ხაზით</del>.",
+       "wantedfiletext-nocat-noforeign": "შემდეგი ფაილები გამოიყენება, მაგრამ არ არსებობს.",
        "wantedtemplates": "მოთხოვნილი თარგები",
        "mostlinked": "ყველაზე მეტი ბმულების მქონე გვერდები",
        "mostlinkedcategories": "ყველაზე მეტი ბმულების მქონე კატეგორიები",
        "mostrevisions": "ყველაზე მეტად რედაქტირებული სტატიები",
        "prefixindex": "ყველა გვერდი (პრეფიქსით)",
        "prefixindex-namespace": "ყველა პრეფიქსიანი გვერდი ($1 სახელთა სივრცე)",
+       "prefixindex-strip": "პრეფიქსის დამალვა შედეგების სიაში",
        "shortpages": "მოკლე გვერდები",
        "longpages": "გრძელი გვერდები",
        "deadendpages": "ჩიხის გვერდები",
        "deadendpagestext": "ამ ვიკიში შემდგომ გვერდებს არ აქვთ ბმული სხვა გვერდებთან.",
        "protectedpages": "დაცული გვერდები",
        "protectedpages-indef": "მხოლოდ უვადო დაცვები",
+       "protectedpages-summary": "ამ გვერდზე ჩამოთვლილია არსებული გვერდები, რომლებიც ამჟამად დაცულია. სახელწოდებათა სიისთვის, რომლებიც დაცულია შექმნისგან,  იხ. [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
        "protectedpages-cascade": "მხოლოდ კასკადური დაცვა",
        "protectedpages-noredirect": "გადამისამართებების დამალვა",
        "protectedpagesempty": "ამ დროისთვის არ არსებობს დაცული გვერდები მოთხოვნილი პარამეტრებით.",
        "protectedpages-unknown-timestamp": "უცნობი",
        "protectedpages-unknown-performer": "უცნობი მომხმარებელი",
        "protectedtitles": "დაცული სათაურები",
+       "protectedtitles-summary": "ამ გვერდზე ჩამოთვლიია სახელწოდებები, რომლებიც შექმნისგანაა დაცული. არსებული გვერდების სიისთვის რომლებიც ამჟამად დაცულია, იხ. [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
        "protectedtitlesempty": "ამ დროისთვის არ არსებობს მოთხოვნილი გვერდები მოცემული პარამეტრებით.",
        "listusers": "მომხმარებლების სია",
        "listusers-editsonly": "აჩვენთ მხოლოდ ის მომხმარებლები, რომლებსაც ერთი შესწორება აქვს გაკეთებული.",
        "logempty": "შედეგები არ არის სიაში.",
        "log-title-wildcard": "სათაურების ძებნა, რომლებიც იწყება ამ ტექსტით",
        "showhideselectedlogentries": "არჩეული ჟურნალის ჩანაწერის ჩვენება/დამალვა",
+       "log-edit-tags": "ტეგების რედაქტირება ამორჩეული ჟურნალის ჩანაწერებიდან",
        "allpages": "ყველა გვერდი",
        "nextpage": "შემდეგი გვერდი ($1)",
        "prevpage": "წინა გვერდი ($1)",
        "listgrouprights-removegroup-self-all": "შეუძლია თავისი ანგარიშის ყველა ჯგუფის წაშლა.",
        "listgrouprights-namespaceprotection-header": "სახელთა სივრცის შეზღუდვები",
        "listgrouprights-namespaceprotection-namespace": "სახელთა სივრცე",
+       "listgrouprights-namespaceprotection-restrictedto": "უფლება, რომელიც მომხმარებელს რედაქტირების უფლებას აძლევს",
+       "trackingcategories": "კატეგორიის მიდევნება",
+       "trackingcategories-summary": "ამ გვერდზე ჩამოთვლილია სადამკვირებლო კატეგორიები, რომლებიც ავტომატურად იმსებიან MediaWiki-ის პროგრამული უზრუნველყოფით. მათი გადარქმევა შეიძლება, თუკი შეიცვლება შესაბამისი სისტემური შეტყობინება, MediaWiki-ის სახელთა სივრცეში.",
+       "trackingcategories-msg": "კატეგორიის მიდევნება",
        "trackingcategories-name": "შეტყობინების სახელი",
+       "trackingcategories-desc": "კატეგორიაში ჩართვის კრიტერიუმები",
+       "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>$wgMaxArticleSize</code> მას შემდეგ რაც გაიხსნება თარგის არგუმენტი (რამე სამმაგ ფიგურულ ფრჩხილში, მაგალითად, <code>{{{Foo}}}</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": "ეს კატეგორია შეცავს ტეგს __HIDDENCAT__ შემცვლელ გვერდში, რაც ნაგულისხმევად არიდებს მის გამოსახულებას გვერდებში კატეგორიის განყოფილებში.",
        "trackingcategories-nodesc": "აღწერა არ არის.",
        "trackingcategories-disabled": "კატეგორია გამორთულია",
        "mailnologin": "გამგზავნი მისამართი არ არის მითითებული.",
        "mywatchlist": "კონტროლის სია",
        "watchlistfor2": "$1 ($2) თვის",
        "nowatchlist": "თქვენი კონტროლის სია ცარიელია.",
-       "watchlistanontext": "$1\n\nიხილეთ ან რედაქტირება გაუკეთეთ თქვენი კონტროლის სიაში შეტანილ ერთეულებს.",
+       "watchlistanontext": "იხილეთ ან რედაქტირება გაუკეთეთ თქვენი კონტროლის სიაში შეტანილ ერთეულებს:",
        "watchnologin": "რეგისტრაცია ვერ შესრულდა",
        "addwatch": "კონტროლის სიაში დამატება",
        "addedwatchtext": "გვერდი „[[:$1]]“ დაემატა თქვენს [[Special:Watchlist|კონტროლის სიას]].\nამ და მასთან დაკავშირებული განხილვის გვერდის შემდგომი ცვლილებები აისახება იქ.",
        "delete-edit-reasonlist": "წაშლის მიზეზების რედაქტირება",
        "delete-toobig": "ამ გვერდს ძალიან გრძელი ისტორია გააჩნია,  $1 {{PLURAL:$1|ვერსიაზე|ვერსიიებზე|ვერსიებზე}} მეტი. მისი წაშლა აიკრძალა {{SITENAME}}-ის კორექტურად მუშაობის უზრუნველყოფისთვის.",
        "delete-warning-toobig": "ამ გვერდს ძალიან გრძელი ისტორია გააჩნია,  $1 {{PLURAL:$1|ვერსიაზე|ვერსიიებზე|ვერსიებზე}} მეტი.\nმისმა წაშლამ შესაძლოა გამოიწვიოს საიტის მონაცემთა ბაზის  {{SITENAME}} არაკორექტული მუშაობა;\nიმოქმედეთ სიფრთხილით.",
-       "deleting-backlinks-warning": "'''გაფრთხილება:''' რამდენიმე სხვა გვერდი დაკავშირებულია ამ წასაშლელ გვერდთან.",
+       "deleteprotected": "თქვენ არ შეგიძლიათ ამ გვერდის წაშლა, რადგან ის დაცულია.",
+       "deleting-backlinks-warning": "'''გაფრთხილება:'''  [[Special:WhatLinksHere/{{FULLPAGENAME}}|სხვა გვერდები]] დაკავშირებულია ამ წასაშლელ გვერდთან.",
        "rollback": "ცვლილებების გაუქმება",
        "rollbacklink": "სწრაფი გაუქმება",
        "rollbacklinkcount": "$1 {{PLURAL:$1|ცვლილების|ცვლილების}} გაუქმება",
        "revertpage-nouser": "მომხმარებლის (მომხმარებლის სახელი დამალულია) ცვლილებები დაბრუნებულია ვერსიაზე {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "გაუქმდა რედაქტირება $1; დაბრუნება ვერსიაზე $2.",
        "sessionfailure-title": "სეანსის შეცდომა",
-       "sessionfailure": "ჩანს, რომ პრობლემაა თქვენი რეგისტრაციის სესიისათვის;\nეს მოქმედება შეჩერდა თქვენი სესიაში შემოჭრის თავიდან ასაცილებლად.\nგთხოვთ, დააწკაპუნოთ ღილაკს \"უკან\" და თავიდან ჩართოთ გვერდი, რომლიდანაც შემოხვედით და სცადოთ განმეორებით.",
+       "sessionfailure": "ჩანს, რომ პრობლემაა თქვენი რეგისტრაციის სესიისათვის;\nეს მოქმედება შეჩერდა თქვენი სესიაში შემოჭრის თავიდან ასაცილებლად.\nგთხოვთ, დააწკაპუნოთ ღილაკს „უკან“ და თავიდან ჩართოთ გვერდი, რომლიდანაც შემოხვედით და სცადოთ განმეორებით.",
        "protectlogpage": "დაცვის ისტორია",
        "protectlogtext": "ქვემოთ წარმოდგენილია გვერდის დაცვის დონის ცვლილებების სია. \nიხილეთ ასევე [[Special:ProtectedPages|დაცული გვერდების სია]] ამ მომენტისთვის.",
        "protectedarticle": "დაცულია გვერდი: „[[$1]]“",
        "undelete-error-long": "ფაილის აღდგენისას წარმოიშვა შეცდომები\n\n$1",
        "undelete-show-file-confirm": "დარწმუნებული ხართ, რომ გსურთ ფაილ <nowiki>$1</nowiki>-ის წაშლილი ვერსიის ხილვა $2 $3-დან?",
        "undelete-show-file-submit": "ჰო",
+       "undelete-revision-row": "$1 $2 ($3) $4 . . $5 $6 $7 $8 $9",
        "namespace": "სახელთა სივრცე:",
        "invert": "ყველა, მონიშნულის გარდა",
        "tooltip-invert": "მონიშნეთ ეს უჯრა, რათა დამალოთ გვერდების ცვლილებები არჩეული სახელთა სივრცის ფარგლებში (და მასთან დაკავშირებულ სახელთა სივრცეში, თუ მსგავსი რამ მითითებულია)",
+       "tooltip-whatlinkshere-invert": "დააყენეთ ეს დროშა, რათა დამალოთ ბმული გვერდიდან არჩეულ სახელთა სივრცეში",
        "namespace_association": "თანმხლები სახელთა სივრცე",
        "tooltip-namespace_association": "მონიშნეთ ეს უჯრა, რათა აგრეთვე ჩართოთ განხილვის სახელთა სივრცე, რომელიც დაკავშირებულია არჩეულ სახელთა სივრცესთან",
        "blanknamespace": "(მთავარი)",
        "sp-contributions-search": "წვლილის ძიება",
        "sp-contributions-username": "IP მისამართი ან მომხმარებლის სახელი:",
        "sp-contributions-toponly": "აჩვენე მხოლოდ ბოლო ვერსიები",
+       "sp-contributions-newonly": "აჩვენე მხოლოდ ცვლილებები, რომელიც წარმოადგენს გვერდის შექმნილს",
        "sp-contributions-submit": "ძიება",
        "whatlinkshere": "ბმული გვერდზე",
        "whatlinkshere-title": "გვერდები, რომლებიც შეიცავენ „$1“-ის ბმულებს",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] ბლოკირებულ იქნა.<br />\nიხილეთ [[Special:BlockList|ბლოკირებული IP მისამართების სია]].",
        "ipb-blockingself": "თქვენ აპირებთ საკუთარი თავის დაბლოკვას! დარწმუნებული ხართ, რომ გსურთ ამის გაკეთება?",
        "ipb-confirmhideuser": "თქვენ აპირებთ მომხმარებლის დაბლოკვას და ჩართული გაქვთ ოპცია „დამალე მომხმარებელი“. ასეთი ქმედება აღკვეთს მომხმარებლის სახელს ყველა სიიდან და ჟურნალების ჩანაწერებიდან. დარწმუნებული ხართ, რომ ამის გაკეთება გსურთ?",
+       "ipb-confirmaction": "თუ თქვენ ხართ დარწმუნებული, რომ ამის გაკეთება დანამდვილებით გსურთ, გთხოვთ, ქვემოთ დასვით ჩანიშვნა \"{{int:ipb-confirm}}\"",
        "ipb-edit-dropdown": "დაბლოკვის მიზეზების რედაქტირება",
        "ipb-unblock-addr": "ბლოკის მოხსნა $1",
        "ipb-unblock": "მომხმარებლის სახელზე ან IP მისამართზე ბლოკის მოხსნა",
        "range_block_disabled": "ადმინთათვის დაბლოკვათა აკრძალული დიაპაზონი",
        "ipb_expiry_invalid": "მოქმედების მიუღებელი პერიოდი",
        "ipb_expiry_temp": "ბლოკირება მომხმარებლის სახელის დამალვით უვადო უნდა იყოს",
-       "ipb_hide_invalid": "á\83¨á\83\94á\83£á\83«á\83\9aá\83\94á\83\91á\83\94á\83\9aá\83\98á\83\90 á\83\9bá\83\9dá\83®á\83\94á\83\9bá\83£á\83\9aá\83\98 á\83\90á\83\9cá\83\92á\83\90á\83 á\83\98á\83¨á\83\98á\83¡ á\83\93á\83\90á\83\9bá\83\90á\83\9aá\83\95á\83\90, á\83¡á\83\90á\83\95á\83\90á\83 á\83\90á\83£á\83\93á\83\9dá\83\93 á\83\9bá\83\98á\83¡ á\83\9bá\83\98á\83\94á\83  á\83\92á\83\90á\83\9cá\83®á\83\9dá\83 á\83ªá\83\98á\83\94á\83\9aá\83\94á\83\91á\83£á\83\9aá\83\98á\83\90 á\83«á\83\90á\83\9aá\83\98á\83\90á\83\9c á\83\91á\83\94á\83\95á\83 á\83\98 á\83¨á\83\94á\83¡á\83¬á\83\9dá\83 á\83\94á\83\91á\83\90",
+       "ipb_hide_invalid": "á\83¨á\83\94á\83£á\83«á\83\9aá\83\94á\83\91á\83\94á\83\9aá\83\98á\83\90 á\83\9bá\83\9dá\83ªá\83\94á\83\9bá\83£á\83\9aá\83\98 á\83\90á\83\9cá\83\92á\83\90á\83 á\83\98á\83¨á\83\98á\83¡ á\83\93á\83\90á\83\9bá\83\90á\83\9aá\83\95á\83\90, á\83\9bá\83\98á\83¡á\83\92á\83\90á\83\9c á\83\92á\83\90á\83\9cá\83®á\83\9dá\83 á\83ªá\83\98á\83\94á\83\9aá\83\94á\83\91á\83£á\83\9aá\83\98á\83\90 {{PLURAL:$1|á\83\94á\83 á\83\97á\83\98 á\83 á\83\94á\83\93á\83\90á\83¥á\83¢á\83\98á\83 á\83\94á\83\91á\83\90|$1 á\83 á\83\94á\83\93á\83\90á\83¥á\83¢á\83\98á\83 á\83\94á\83\91á\83\94á\83\91á\83\98}}.",
        "ipb_already_blocked": "„$1“ უკვე ბლოკირებულია",
        "ipb-needreblock": "მომხმარებელი $1 უკვე დაიბლოკა. გსურთ დაბლოკვის პარამეტრების შესწორება?",
        "ipb-otherblocks-header": "სხვა {{PLURAL:$1|დაბლოკვა|დაბლოკვები}}",
        "movenotallowedfile": "თქვენ ვერ გადაიტანთ ფაილებს.",
        "cant-move-user-page": "თქვენ ვერ გადაიტანთ მომხმარებელთა გვერდებს.",
        "cant-move-to-user-page": "თქვენ ვერ გადაიტანთ მომხმარებლის გვერდებს (გარდა მომხმარებელთა ქვეგვერდებისა)",
+       "cant-move-category-page": "თქვენ არ გაქვთ კატეგორიის გვერდების გადამისამართების უფლება",
+       "cant-move-to-category-page": "თქვენ არ გაქვთ გვერდების გადამისამართების უფლება კატეგორიის გვერდებში",
        "newtitle": "ახალი სათაური",
        "move-watch": "ამ გვერდის კონტროლი",
        "movepagebtn": "გვერდის გადატანა",
        "thumbnail-temp-create": "დროებითი ესკიზის ფაილის შექმნა ვერ ხერხდება",
        "thumbnail-dest-create": "ესკიზის დანიშნულების ადგილას შენახვა ვერ ხერხდება",
        "thumbnail_invalid_params": "მინიატურის არასწორი პარამეტრი",
+       "thumbnail_toobigimagearea": "ფაილი $1-ზე მეტი ზომით",
        "thumbnail_dest_directory": "შეუძლებელია სამიზნე დირექტორიის შექმნა",
        "thumbnail_image-type": "გამოსახულების მოცემული ტიპი არ არის მხარდაჭერილი",
        "thumbnail_gd-library": "ბიბლიოთეკა GD-ს არასწორი კონფიგურაცია: $1 ფუნქცია არ არის აღმოჩენილი",
        "thumbnail_image-missing": "სავარაუდოდ $1 ფაილი არ არსებობს",
+       "thumbnail_image-failure-limit": "განხორციელებული იქნა ამ ესკიზის ფორმირების ძალიან ბევრი წარუმატებელი ცდა ($1 ან მეტი). გთხოვთ, სცადეთ მოგვიანებით.",
        "import": "გვერდების იმპორტი",
        "importinterwiki": "სხვა ვიკიდან იმპორტი",
        "import-interwiki-text": "წარმოადგინეთ ვიკი და იმპორტირებადი გვერდის სახელი.\nცვლილებათა რიცხვები და ავტორთა სახელები შენნარჩუნდება.\nტრანსვიკი იმპორტის ყველა ოპერაცია რეგისტრირდება [[Special:Log/import|სპეციალურ ჟურნალში]].",
        "import-interwiki-history": "ამ გვერდის ცვლილებათა ისტორიის კოპირება.",
        "import-interwiki-templates": "ყველა თარგის ჩართვა",
        "import-interwiki-submit": "იმპორტირება",
+       "import-mapping-default": "იმპორტირება ადგილმდებარეობაში ნაგულისმევად",
+       "import-mapping-namespace": "იმპორტირება სახელთა სივრცეში:",
+       "import-mapping-subpage": "იმპორტირება როგორც შემდეგი გვერდის ქვეგვერდები:",
        "import-upload-filename": "ფაილის სახელი:",
        "import-comment": "კომენტარი:",
        "importtext": "გთხოვთ, მოახდინოთ გვერდის ექსპორტი თავდაპირველი ვიკიდან, [[Special:Export|შესაბამისი ხელსაწყოს]] გამოყენებით. ფაილი შეინახეთ დისკზე, ხოლო შემდეგ ატვირთეთ აქ.",
        "import-error-special": "გვერდი „$1“ არ იქნა იმპორტირებული, რადგანაც ის განეკუთვნება განსაკუთრებულ სახელთა სივრცეს, რომელიც კრძალავს გვერდების შექმნას.",
        "import-error-invalid": "გვერდი \"$1\" იმპორტირება არ მოხდა მიუღებელი სახელის გამო.",
        "import-error-unserialize": "ვერსია $2 გვერდისათვის „$1“ არ შეიძლება იყოს სტრუქტურირებული (დესერიალიზებული). მიღებულია შეტყობინება, რომ ამ ვერსიაში გამოიყენება $3 შემცველი მოდელი, სერიალიზებული ფორმატში $4.",
+       "import-error-bad-location": "ცვლილება $2, რომელიც იყენებს $3 შემცველობის მოდელს, არ შეიძლება იყოს შენახული ამ ვიკიზე $1, რადგან ეს მოდელი არ არის მხარდაჭერილი მიმდინარე გვერდზე",
        "import-options-wrong": "არასწორი {{PLURAL:$2|პარამეტრი|პარამეტრი}}: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "ძირეული გვერდის მითითებული სახელი არასწორია.",
        "import-rootpage-nosubpage": "სახელტა სივრცეში მითითებულ ძირეულ გვერდში „$1“ ქვეგვერდები დაუშვებელია.",
        "tooltip-feed-atom": "მოცემული გვერდის Atom არხის ტრანსალაცია",
        "tooltip-t-contributions": "იხილეთ ამ მომხმარებლის წვლილის სია",
        "tooltip-t-emailuser": "გაუგზავნე ელ. ფოსტა ამ მომხმარებელს",
+       "tooltip-t-info": "მეტი ინფორმაცია ამ გვერდის შესახებ",
        "tooltip-t-upload": "ჩატვირთეთ მედიაფაილები",
        "tooltip-t-specialpages": "ყველა სპეციალური გვერდის სია",
        "tooltip-t-print": "ამ გვერდის დასაბეჭდი ვერსია",
        "tooltip-preferences-save": "შეინახეთ კონფიგურაცია",
        "tooltip-summary": "შეიყვანეთ მოკლე სქოლიო",
        "interlanguage-link-title": "$1 — $2",
+       "interlanguage-link-title-nonlang": "$1 – $2",
        "common.css": "/** აქ ჩასმული CSS გამოყენებული იქნება გაფორმების ყველა გარეკანზე */",
        "group-autoconfirmed.css": "/* აქ განთავსებული CSS გამოყენებული იქნება მხოლოდ ავტომატურად დადასტურებული მომხმარებლებისათვის */",
        "group-bot.css": "/* აქ განთავსებული CSS გამოყენებული იქნება მხოლოდ ბოტებისათვის */",
        "pageinfo-protect-cascading-yes": "დიახ",
        "pageinfo-protect-cascading-from": "კასკადური დაცვა",
        "pageinfo-category-info": "ინფორმაცია კატეგორიის შესახებ",
+       "pageinfo-category-total": "წევრების საერთო რაოდენობა",
        "pageinfo-category-pages": "გვერდების რაოდენობა",
        "pageinfo-category-subcats": "ქვეკატეგორიების რაოდენობა",
        "pageinfo-category-files": "ფაილების რაოდენობა",
        "patrol-log-page": "პატრულირების ჟურნალი",
        "patrol-log-header": "ეს არის პატრულირებულ ვერსიათა ჟურნალი.",
        "log-show-hide-patrol": "$1 პატრულირების ჟურნალი",
+       "log-show-hide-tag": "$1 დასათაურების ჟურნალი",
        "deletedrevision": "წაშლილია ძველი ვერსია $1.",
        "filedeleteerror-short": "შეცდომა ფაილის $1 წაშლისას",
        "filedeleteerror-long": "ფაილის წაშლისას წარმოიშვა შეცდომები:\n\n$1",
        "sunday-at": "კვირას $1-ზე",
        "yesterday-at": "გუშინ $1-ზე",
        "bad_image_list": "ფორმატი შემდეგია:\n\nმხოლოდ სიაში (ხაზები რომლებიც იწყება *-ით) მითითებული პირობები არის გათვალისწინებული.\nპირველი ბმული ხაზზე უნდა იყოს ბმული ხარვეზიან ფაილზე.\nნებისმიერი შემდგომი ბმული იმავე ხაზზე მიჩნეულია, როგორც გამონაკლისი, მაგ. გვერდები, სადაც ფაილი შეიძლება ხაზებს შორის იყოს ჩასმული.",
+       "variantname-zh-hans": "hans",
+       "variantname-zh-hant": "hant",
+       "variantname-zh-cn": "cn",
+       "variantname-zh-tw": "tw",
+       "variantname-zh-hk": "hk",
+       "variantname-zh-mo": "mo",
+       "variantname-zh-sg": "sg",
+       "variantname-zh-my": "my",
+       "variantname-zh": "zh",
+       "variantname-gan-hans": "hans",
        "metadata": "მეტამონაცემები",
        "metadata-help": "ეს ფაილი შეიცავს დამატებით ინფორმაციას, სავარაუდოდ ციფრული კამერიდან ან სკანერიდან, რომელიც მის შესაქმნელად გამოიყენეს. თუ ფაილის ორიგინალი შეცვლილია, ზოგიერთი დეტალი შესაძლოა სრულად არ ასახავდეს ფაილში შეტანილ ცვლილებებს.",
        "metadata-expand": "დამატებითი ინფორმაციის ჩვენება",
        "imgmultigo": "გადასვლა",
        "imgmultigoto": "გადასვლა გვერდზე $1",
        "img-lang-default": "(საწყისი ენა)",
+       "img-lang-info": "აჩვენე ეს გამოსახულება : $1, $2-ში",
        "img-lang-go": "წინ",
        "ascending_abbrev": "დაბრ",
        "descending_abbrev": "აღწერა",
        "watchlistedit-clear-titles": "სათაურები:",
        "watchlistedit-clear-submit": "კონტროლის სიის გასუფთავება (ეს შეუქცევადია!)",
        "watchlistedit-clear-done": "თქვენი კონტროლის სია გასუფთავდა.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|1 სათაური|$1 სათაურები}} წაშლილია:",
+       "watchlistedit-too-many": "ძალიან ბევრი გვერდია იმისთვის, რომ ის აქ გამოჩნდეს",
        "watchlisttools-clear": "კონტროლის სიის გასუფთავება",
        "watchlisttools-view": "დაკავშირებული ცვლილებების ხილვა",
        "watchlisttools-edit": "კონტროლის სიის ხილვა და რედაქტირება",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|განხილვა]])",
        "timezone-utc": "UTC",
        "duplicate-defaultsort": "'''ყურადღება.'''სორტირების გასაღებს «$2»-ს გააჭრის წინა გასაღებს «$1»-ს.",
+       "duplicate-displaytitle": "<strong>ყურადღება:</strong> დისპლეის სათაური \"$2\" განსაზღვრავს ადრე გაცემულ დისპლეის სათაურს \"$1\".",
+       "invalid-indicator-name": "<strong>შეცდომა:</strong> გვერდის სტატუსის ინდიკატორი <code>name</code> ატრიბუტი არ უნდა იყოს ცარიელი.",
        "version": "ვერსია",
        "version-extensions": "დაყენებული გაფართოებები",
        "version-skins": "დაყენებული თემები",
        "version-ext-colheader-license": "ლიცენზია",
        "version-ext-colheader-description": "აღწერა",
        "version-ext-colheader-credits": "ავტორები",
+       "version-license-title": "ლიცენზია $1-თვის",
+       "version-license-not-found": "ამ გაფართოებისათვის არ არის დაწვრილებითი ცნობები ლიცენზიის შესახებ",
+       "version-credits-title": "ავტორების სია $1-თვის",
+       "version-credits-not-found": "ამ გაფართოებისათვის არ არის დაწვრილებითი ცნობები ავტორების შესახებ",
        "version-poweredby-credits": "ეს ვიკი მუშაობს '''[https://www.mediawiki.org/ MediaWiki]'''-ს ძრავზე, copyright © 2001-$1 $2.",
        "version-poweredby-others": "სხვები",
        "version-poweredby-translators": "translatewiki.net-ის მთარგმნელები",
        "version-libraries-version": "ვერსია",
        "redirect": "გადამისამართება ფაილიდან, მომხმარებლიდან, გვერდიდან ან ვერსიის იდენტიფიკატორიდან",
        "redirect-legend": "გადამისამართება ფაილზე ან გვერდზე",
+       "redirect-summary": "ეს დამხმარე გვერდი ამისამართებს ფაილის (ფაილის სახელიდან) გვერდზე, (გვერდის ან ვერსიის იდენტიფიკატორიდან) ან მომხმარებლის გვერდზე (მომხმარებლის რაოდენობრივი იდენტიფიკატორიდან). გამოყენება: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] ან [[{{#Special:Redirect}}/user/101]].",
        "redirect-submit": "მიდი",
        "redirect-lookup": "ძიება:",
        "redirect-value": "მნიშვნელობა:",
        "tags-actions-header": "ქმედებები",
        "tags-active-yes": "დიახ",
        "tags-active-no": "არა",
+       "tags-source-extension": "განისაზღვრება გაფართოებით",
+       "tags-source-manual": "გამოყენებულია ავტომატურად მომხმარებლებისა და ბოტების მიერ",
        "tags-source-none": "აღარ გამოიყენება",
        "tags-edit": "რედაქტირება",
        "tags-delete": "წაშლა",
        "tags-activate": "გააქტიურება",
        "tags-deactivate": "დეაქტივაცია",
        "tags-hitcount": "$1 ცვლილება",
+       "tags-manage-no-permission": "თქვენ არ გაქვთ შეცვლილი დასათაურების მართვის უფლება",
        "tags-create-heading": "ახალი ტეგის შექმნა",
+       "tags-create-explanation": "კვლავ შექმნილი ტეგები ნაგულისხმევად იქნება შექმნილი და იქნება ხელმისაწვდომი მომხმარებლებისა და ბოტებისათვის",
        "tags-create-tag-name": "ტეგის სახელი:",
        "tags-create-reason": "მიზეზი",
        "tags-create-submit": "შექმნა",
+       "tags-create-no-name": "თქვენ უნდა მიუთითოთ დასათაურების სახელი",
+       "tags-create-invalid-chars": "ტეგების სახელწოდებები არ უნდა შეიცავდეს მძიმეებს (,) ან დახრილი ხაზის სიმბოლოებს (/).",
+       "tags-create-invalid-title-chars": "დასათაურების სახელები უნდა შეიცავდეს სიმბოლოებს, რომლებიც არ შეიძლება იყოს გამოყენებული გვერდების სათაურებში",
+       "tags-create-already-exists": "აღნიშვნა „$1“ უკვე არსებობს.",
+       "tags-create-warnings-above": "ტეგის შექმნისას \"$1\" დაფიქსირდა შემდეგი გაფრთხილება:: $2",
+       "tags-create-warnings-below": "გსურთ დასათაურების შექმნა ?",
        "tags-delete-title": "ტეგის წაშლა",
+       "tags-delete-explanation-initial": "თქვენ გსურთ დასათაურების წაშლა „$1“ მონაცემთა ბაზიდან",
+       "tags-delete-explanation-in-use": "ის იქნება წაშლილი ყველა $2 ვერსიიდაბ ან/და ჟურნალის ჩანაწერებიდან, რომელთანაც იგი ამჟამად არის მიმაგრებული",
+       "tags-delete-explanation-warning": "ეს მოქმედება არის შეუქცეველი და არ შეიძლება იყოს გაუქმებული მონაცემთა ბაზის ადმინისტრატორის მიერაც კი. თქვენ დარწმუნებული უნდა იყოთ, რომ ეს ნამდვილად არის ტეგი, რომლის წაშლაც გსურთ",
+       "tags-delete-explanation-active": "ტეგი $1 ისევ და ისევ აქტიურია და ისევ იქნება გამოყენებული მომავალში. ეს, რომ არ მოხდეს, გადადით იქ, სადაც დაყენებულია ტეგის გამოყენება, და იქ გათიშეთ",
        "tags-delete-reason": "მიზეზი:",
+       "tags-delete-submit": "ამ დასათაურების დაუბრუნებლად წაშლა",
+       "tags-delete-not-allowed": "გაფართოებით განსაზღვრული ტეგები, არ შეიძლება იყოს წაშლილი, თუკი გაფართოება აშკარად არ იძლევა ამის გაკეთების შესაძლებლობას",
+       "tags-delete-not-found": "აღნიშვნა „$1“ არ არსებობს.",
+       "tags-delete-too-many-uses": "ტეგი \"$1\" მიღებულია $2 ვერსიებთან, რაც იმას ნიშნავს, რომ იგი არ შეიძლება იყოს წაშლილი",
+       "tags-delete-warnings-after-delete": "ტეგი „$1“ წარმატებით იქნა წაშლილი, თუმცა აღმოჩენილი იყო შემდეგი შეტყობინება: $2",
        "tags-activate-title": "ტეგის გააქტიურება",
+       "tags-activate-question": "თქვენ ცდილობთ დასათაურების გააქტიურებას „$1“.",
        "tags-activate-reason": "მიზეზი:",
+       "tags-activate-not-allowed": "შეუძლებელია დასათაურების გააქტიურება: $1",
+       "tags-activate-not-found": "აღნიშვნა „$1“ არ არსებობს.",
        "tags-activate-submit": "გააქტიურება",
        "tags-deactivate-title": "ტეგის დეაქტივაცია",
+       "tags-deactivate-question": "თქვენ ცდილობთ დასათაურების გათიშვას: $1",
        "tags-deactivate-reason": "მიზეზი:",
+       "tags-deactivate-not-allowed": "შეუძლებელია დასათაურების გათიშვა „$1“.",
        "tags-deactivate-submit": "დეაქტივაცია",
+       "tags-apply-no-permission": "თქვენ არ გაქვთ უფლება მიიღოთ ცვლილების დასათაურება საკუთარ ცვლილებებთან",
+       "tags-apply-not-allowed-one": "დასათაურება «$1» ავტომატურად არ შეიძლება იქნას მიღებული.",
+       "tags-apply-not-allowed-multi": "შემდეგი {{PLURAL:$2|ტეგი|ტეგები}} არ შეიძლება იყოს ხელით მიღებული: $1",
+       "tags-update-no-permission": "თქვენ არ გაქვთ ტეგების დამატების ან შეცვლის უფლება ცალკეული ვერსიების ცვლილებებიდან ან ჟურნალების ჩანაწერებიდან",
+       "tags-update-add-not-allowed-one": "ტეგი \"$1\" არ შეიძლება იყოს დამატებული მანუალურად",
+       "tags-update-add-not-allowed-multi": "შემდეგი {{PLURAL:$2|ტეგი|ტეგები}} არ შეიძლება დამატებული იყოს ხელით: $1",
+       "tags-update-remove-not-allowed-one": "დასათაურება \"$1\" არ შეიძლება იყოს წაშლილი",
+       "tags-update-remove-not-allowed-multi": "შემდეგი {{PLURAL:$2|ტეგი|ტეგები}} არ შეიძლება იყოს წაშლილი ხელით: $1",
+       "tags-edit-title": "აღნიშვნების რედაქტირება",
+       "tags-edit-manage-link": "აღნიშვნების მართვა",
+       "tags-edit-revision-selected": "{{PLURAL:$1|ამორჩეული ვერსია|ამორჩული ვერსიები}} [[:$2]]:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|მოვლენების ჟურნალის არჩევა|მოვლენების ჟურნალის არჩევა}}:",
+       "tags-edit-revision-legend": "ტეგების დამატება ან წაშლა {{PLURAL:$1|ეს გადასინჯვა|ყველა $1 გადასინჯვა}}",
+       "tags-edit-logentry-legend": "ტეგების დამატება ან წაშლა {{PLURAL:$1|ეს ჩანაწერი ჟურნალში|ყველა $1 ჟურნალის ჩანაწერი}}",
+       "tags-edit-existing-tags": "არსებული დასათაურებები:",
+       "tags-edit-existing-tags-none": "''არა''",
+       "tags-edit-new-tags": "ახალი აღნიშვნა:",
+       "tags-edit-add": "ამ აღნიშვნის დამატება:",
+       "tags-edit-remove": "ამ აღნიშვნის წაშლა:",
+       "tags-edit-remove-all-tags": "(ყველა აღნიშვნის წაშლა)",
+       "tags-edit-chosen-placeholder": "ზოგიერთი აღნიშვნის არჩევა",
+       "tags-edit-chosen-no-results": "დასათაურების შესაბამისობა არ მოიძებნა",
        "tags-edit-reason": "მიზეზი:",
+       "tags-edit-revision-submit": "ცვლილებების მიღება {{PLURAL:$1|ეს გადასინჯვა|$1 გადასინჯვები}}",
+       "tags-edit-logentry-submit": "მიღებული ცვლილებები {{PLURAL:$1|ეს ჩანაწერია ჟურნალში|$1 ჩანაწერების ჟურნალი}}",
+       "tags-edit-success": "ცვლილებები წარმატებულად იქნა მიღებული",
+       "tags-edit-failure": "ცვლილებები არ იქნა შენახული: $1",
+       "tags-edit-nooldid-title": "არ არის მოცემული სამიზნე ვერსია",
+       "tags-edit-nooldid-text": "ამ ფუნქციის შესასრულებლად თქვენ არ გაქვთ გაცემული სამიზნე ვერსია, ან მითითებული ვერსია არ არსებობს",
+       "tags-edit-none-selected": "გთხოვთ, აირჩიეთ ერთი ტეგი მაინც, რათა დაამატოთ ან წაშალოთ",
        "comparepages": "გვერდების შედარება",
        "compare-page1": "1 გვერდი",
        "compare-page2": "2 გვერდი",
        "htmlform-chosen-placeholder": "აირჩიეთ პარამეტრი",
        "htmlform-cloner-create": "მეტის დამატება",
        "htmlform-cloner-delete": "წაშლა",
+       "htmlform-cloner-required": "აუცილებელია სულ მცირე ერთი მნიშვნელობა.",
        "sqlite-has-fts": "$1 სრული ტექსტის ძიების მხარდაჭერით",
        "sqlite-no-fts": "$1 სრული ტექსტის ძიების მხარდაჭერის გარეშე",
        "logentry-delete-delete": "მომხმარებელმა $1 {{GENDER:$2|წაშალა}} გვერდი: „$3“",
        "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-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-interwiki": "$1 {{GENDER:$2|იმპორტირებული}} $3 სხვა ვიკიდან",
+       "logentry-merge-merge": "მომხმარებელმა $1 {{GENDER:$2|გააერთიანა}} $3 $4-ში ($5-მდე ვერსია)",
        "logentry-move-move": "მომხმარებელმა $1 გვერდი „$3“ {{GENDER:$2|გადაიტანა}} გვერდზე „$4“",
        "logentry-move-move-noredirect": "მომხმარებელმა $1 გვერდი „$3“ {{GENDER:$2|გადაიტანა}} გვერდზე „$4“ გადამისამართების დატოვების გარეშე",
        "logentry-move-move_redir": "მომხმარებელმა $1 გვერდი „$3“ {{GENDER:$2|გადაიტანა}} გვერდზე „$4“ გადამისამართებაზე",
        "logentry-upload-upload": "მომხმარებელმა $1 {{GENDER:$2|ატვირთა}} $3",
        "logentry-upload-overwrite": "მომხმარებელმა $1 {{GENDER:$2|ატვირთა}} $3-ის ახალი ვერსია",
        "logentry-upload-revert": "მომხმარებელმა $1 {{GENDER:$2|ატვირთა}} $3",
+       "log-name-managetags": "დასათაურების მართვის ჟურნალი",
+       "log-description-managetags": "ამ გვერდზე ჩამოთვლილია : [[Special:Tags|tags]] მართვასთან დაკავშირებული ამოცანები. ჟურნალი შეიცავს მხოლოდ ადმინისტრატორის მიერ ხელით შესრულებულ მოქმედებებს. ტეგები შეიძლება იყოს შექმნილი ან წაშლილი ვიკის პროგრამული უზრუნველყოფის მეშვეობით ამ ჟურნალში ჩანაწერების დამატების გარეშე.",
+       "logentry-managetags-create": "$1 {{GENDER:$2|შექმნილი}} დასათაურება \"$4\"",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|წაშლილი}} ტეგი $4 (წაშლილია $5 {{PLURAL:$5|გადასინჯული ან შესაცვლელი ჟურნალი|გადასინჯული ან/და შესასვლელების ჟურნალი}})",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|აქტივიზებული}} ტეგი \"$4\" გამოყენებულია მომხმარებლებისა და ბოტების მიერ",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|დეაქტივირებული}} ტეგი \"$4\" გამოყენებულია მომხმარებლებისა და ბოტების მიერ",
+       "log-name-tag": "დასათაურების ჟურნალი",
+       "log-description-tag": "ეს გვერდი უჩვენებს, როდესაც მომხმარებლებმა დაამატეს ან წაშალეს [[Special:Tags|tags]] ცალკეულ ვერსიებსა და ჟურნალის ჩანაწერებში. ჟურნალი არ აჩვენებს ტეგებთან ერთად მოქმედებას, როდესაც ისინი იწარმოება როგორც რედაქტირების ნაწილი, წაშლისა ან ანალოგიური მოქმედებისა.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|დაამატა}} {{PLURAL:$7|ტეგი|ტეგები}} $6 ვერსიასთან $4 გვერდებთან $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|დაემატა}} {{PLURAL:$7|ტეგი|ტეგები}} $6 ჟურნალის ჩანაწერთან $5 $3 გვერდთან",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|წაიშალა}} {{PLURAL:$9|ტეგი|ტეგები}} $8 $4 ვერსიასთან $3 გვერდთან",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|წაიშალა}} {{PLURAL:$9|ტეგი|ტეგები}} $8 $5 ჟურნალის ჩანაწერთან $3 გვერდთან",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|განაახლა}} დასათაურება $4 ვერსიასთან $3 გვერდთან ({{PLURAL:$7|დამატებული}} $6; {{PLURAL:$9|წაშლილი}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|განაახლა}} დასათაურება $5 ჟურნალის ჩანაწერთან $3 გვერდთან ({{PLURAL:$7|დამატებული}} $6; {{PLURAL:$9|წაშლილი}} $8)",
        "rightsnone": "(არცერთი)",
        "revdelete-summary": "ცვლილებების აღწერა",
        "feedback-adding": "თქვენი შეფასების შენახვა...",
        "feedback-bugornote": "თუ თქვენ მზად ხართ დეტალურად აღწეროთ ტექნიკური პრობლემა, გთხოვთ, [$1 შეგვატყობინეთ შეცდომის შესახებ].\nწინააღმდეგ შემთხვევაში თქვენ შეგიძლიათ ისარგებლოთ ამ მარტივი ფორმით. თქვენი კომენტარი დაემატება  „[$3 $2]“ გვერდზე თქვენი მომხმარებლის სახელთან და გამოყენებულ ბრაუზერთან ერთად.",
        "feedback-cancel": "გაუქმება",
        "feedback-close": "გაკეთდა",
+       "feedback-external-bug-report-button": "ტექნიკური დავალების გაგზავნა",
+       "feedback-dialog-title": "გამოხმაურების გაგზავნა",
+       "feedback-dialog-intro": "თქვენ შეგიძლიათ ისარგებლოთ ქვემოთ არსებული მარტივი ფორმით, რათა დატოვოთ თქვენი გამოძახილი. კომენტარები თქვენ მომხმარებლის სახელთან ერთად დამატებული იქნება \"$1\" გვერდზე",
        "feedback-error-title": "შეცდომა",
        "feedback-error1": "შეცდომა. API-ს მოულოდნელი რეზულტატი.",
        "feedback-error2": "შეცდომა: რედაქტირება ვერ განხორციელდა",
        "feedback-error3": "შეცდომა. არ არის API-ს პასუხი .",
+       "feedback-error4": "შეცდომა: შეუძლებელია ჩანაწერის განთავსება უკუკავშირით მითითებული სათაურით",
        "feedback-message": "შეტყობინება:",
        "feedback-subject": "თემა:",
        "feedback-submit": "მიღება",
+       "feedback-terms": "მე მესმის, რომ სამომხმარებლო აგენტის ინფორმაცია შეიცავს მონაცემებს ჩემი ბრაუზერისა და ოპერაციული სისტემის შესახებ და უნდა იმყოფებოდეს ღია შეღწევასთან ჩემ გამოძახილთან ერთად",
+       "feedback-termsofuse": "მე თანახმა ვარ წარმოვადგინო უკუკავშირი გამოყენების პირობების შესაბამისად",
        "feedback-thanks": "გმადლობთ! თქვენი შეფასება განთავსებულია „[$2 $1]“ გვერდზე.",
        "feedback-thanks-title": "გმადლობთ!",
+       "feedback-useragent": "მომხმარებლის აგენტი:",
        "searchsuggest-search": "ძიება",
        "searchsuggest-containing": "შეიცავს...",
        "api-error-badaccess-groups": "თქვენ არ გაქვთ ამ ვიკიში ფაილების ატვირთვის უფლება.",
        "api-error-overwrite": "არსებული ფაილის შეცვლა მიუღებელია.",
        "api-error-stashfailed": "შიდა შეცდომა: სერვერმა ვერ შეძლო დროებითი ფაილის შენახვა.",
        "api-error-publishfailed": "შიდა შეცდომა: სერვერმა ვერ შეძლო დროებითი ფაილის შენახვა.",
+       "api-error-stasherror": "ფაილის ჩატვირთვისას საცავში მოხდა შეცდომა",
+       "api-error-stashedfilenotfound": "დროებითი საცავიდან ფაილის ჩატვირთვისას საწყისი ფაილი არ იქნა ნაპოვნი",
+       "api-error-stashpathinvalid": "გზა, რომელზედაც უნდა იყოს განლაგებული ფაილი, ჩატვირთული დროებით საცავში, არაკორექტულია",
+       "api-error-stashfilestorage": "ფაილის ჩატვირთვისას დროებით საცავში მოხდა შეცდომა.",
+       "api-error-stashzerolength": "სერვერს არ შეუძლია შეინახოს ფაილი დროებით საცავში, რამეთუ მას აქვს ნულოვანი სიგრძე",
+       "api-error-stashnotloggedin": "თქვენ უნდა შეხვიდეთ სისტემაში, რათა გქონდეთ შესაძლებლობა ფაილის შეინახვისა დროებით საცავში",
+       "api-error-stashwrongowner": "ფაილი, რომლის გახსნასაც ცდილობდით დროებით საცავში, თქვენ არ გეკუთვნით",
+       "api-error-stashnosuchfilekey": "ფაილის გასაღები, რომელთანაც ცდილობდით წვდომას დროებით საცავში, არ არსებობს",
        "api-error-timeout": "სერვერმა არ მოახდინა რეაგირება მოსალოდნელ დროში.",
        "api-error-unclassified": "აღმოჩენილია უცნობი შეცდომა.",
        "api-error-unknown-code": "უცნობი შეცდომა : „$1“",
        "limitreport-walltime": "რეალურ დროში გამოყენება",
        "limitreport-walltime-value": "$1 {{PLURAL:$1|წამი}}",
        "limitreport-ppvisitednodes": "პრეპროცესორის მიერ მონახულებადი კვანძების რაოდენობა",
+       "limitreport-ppgeneratednodes": "გენერირებული პრეპროცესორების კვანძების რაოდენობა",
        "limitreport-postexpandincludesize": "ღია ჩართვების ზომა",
        "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|ბაიტი}}",
        "limitreport-templateargumentsize": "თარგის არგუმენტის ზომა",
        "limitreport-expansiondepth": "გაფართოების უდიდესი სიღრმე",
        "limitreport-expensivefunctioncount": "ანალიზატორის „ძვირი“ ფუნქციის რაოდენობა",
        "expandtemplates": "გაშლილი თარგები",
+       "expand_templates_intro": "ეს დამხმარე გვერდი გარდაქმნის ტექსტს, რეკურსიულად აბრუნებს მასში თარგებს. აგრეთვე შლილი ექვემდებარება პარსერის ფუნქციებს {{#language:…}} და სახის ცვლადობას {{CURRENTDAY}} — ჯამში, ყველა ორმაგი ფიგურული ფრჩხილის შიგნით",
        "expand_templates_title": "კონტექსტის სათაური, {{FULLPAGENAME}}-სთვის და ა.შ.:",
        "expand_templates_input": "შესაყვანი ტექსტი:",
        "expand_templates_output": "შედეგი",
        "expand_templates_xml_output": "XML-ის გამოტანა",
+       "expand_templates_html_output": "HTML გამოყვანა",
        "expand_templates_ok": "შესრულება",
        "expand_templates_remove_comments": "კომენტარების წაშლა",
        "expand_templates_remove_nowiki": "ტეგების დათრგუნვა <nowiki> შედეგში",
+       "expand_templates_generate_xml": "XML-ის ხის გარჩევის ჩვენება",
+       "expand_templates_generate_rawhtml": "HTML ჩვენება",
        "expand_templates_preview": "წინა",
+       "expand_templates_preview_fail_html": "რადგან translatewiki.net-ზე ჩართული დაუმუშავებელი HTML-ის  მონაცემთა სესიის დაკარვა მოხდა, წინასწარი გადახედვა დამალულია უსაფრთხოების მიზნით, JavaScript-შეტევების საწინააღმდეგოდ.  \n\nთუ ეს იყო წინასწარი გადახედვის სწორი ცდა, გთხოვთ, კიდევ ერთხელ სცადეთ. თუკი თქვენ ისევ და ისევ არ გამოგდით, სცადეთ [[Special:UserLogout|სამუშაო სეანსის დასრულება]] და ხელახალი ავტორიზება.",
+       "expand_templates_preview_fail_html_anon": "რადგან translatewiki.net-ზე ჩართული დაუმუშავებელი HTML და თქვენ არ გაქვთ გავლილი ავტორიზაცია, წინასწარი გადახედვა დამალულია უსაფრთხოების მიზნით, JavaScript-შეტევების საწინააღმდეგოდ.  \n\nთუ ეს იყო წინასწარი გადახედვის სწორი ცდა, გთხოვთ, [[Special:UserLogin|შედით]] და ხელმეორედ სცადეთ.",
        "pagelanguage": "გვერდის ენის არჩევა",
        "pagelang-name": "გვერდი",
        "pagelang-language": "ენა",
        "action-pagelang": "გვერდის ენის შეცვლა",
        "log-name-pagelang": "ენის ცვლილებების ჟურნალი",
        "log-description-pagelang": "ეს არის გვერდის ენის ცვლილებების ჟურნალი",
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|შეცვლილი}} ენის გვერდი $3-დან $4 $5-მდე.",
+       "default-skin-not-found": "უფს! გაფორმების თემა ნაგულისხმევად თქვენი ვიკისთვის <code dir=\"ltr\">$wgDefaultSkin</code> როგორც <code>$1</code>, მიუწვდომელია.\n\nთქვენი დაყენება, როგორც ჩანს, შეიცავს გაფორმების შემდეგ თემებს. {{PLURAL:$4|skin|skins}}. იხ. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] იმ ინფორმაციასთან ერთად, თუ როგორ ჩაირთოს და აირჩიოს თემა ნაგულისხმევად {{PLURAL:$4|it|them and choose the default}}.\n\n$2\n\n; თუ თქვენ ახლახან დააყენეთ MediaWiki:\n: თქვენ როგორც ჩანს ეს შეასრულეთ Git ან უშუალოდ საწყისი კოდიდან სხვა მეთოდის გამოყენებით. მაშინ ეს შესაძლებელია. შეეცადეთ დააყენოთ ზოგიერთი თემა [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory]:\n:* გადმოწერით [https://www.mediawiki.org/wiki/Download tarball installer], რომელიც შეიცავს გაფორმების თემებსა და გაფართოებებს. თქვენ შეგიძლიათ დააკოპიროთ მისგან ფოლდერი <code>skins/</code>.\n:* [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org]-დან ცალკეული გაფორმების თემების არქივიდან.\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n: ამან არ უნდა ავნოს თქვენ Git რეპოზიტორიას, თუ თქვენ MediaWiki შემმუშავებელი ხართ.\n\n; თუ თქვენ ახლახან განაახლეთ MediaWiki:\n: MediaWiki 1.24 და სხვა აღარ შეიცავენ ავტომატურად დაყენებულ თემებს (იხ. [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). თქვენ შეგიძლიათ {{PLURAL:$5|line|lines}} <code>LocalSettings.php</code>-ში {{PLURAL:$5|the|all}} რათა ჩართოთ გაფორმების თემები  {{PLURAL:$5|skin|skins}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; თუ თქვენ ამ წუთას შეცვალეთ <code>LocalSettings.php</code>:\n: გადასინჯეთ თემების სახელწოდებები შეცდომების მაგალითზე..",
+       "default-skin-not-found-no-skins": "უფს! გაფორმების თემა ნაგულისხმევად თქვენი ვიკისთვის <code>$wgDefaultSkin</code> როგორც <code>$1</code>, მიუწვდომელია.\n\nთქვენ არ გაქვთ დაყენებული გაფორმების თემები.\n\n; თუ თქვენ ახლახან დააყენეთ ან განაახლეთ MediaWiki:\n: თქვენ შესაძლოა ეს გააკეთეთ Git-იდან ან უშუალოდ სხვა მეთოდის გამოყენების საწყისი კოდიდან. მაშინ ეს შესაძლებელია. MediaWiki 1.24 არ შეიცავს გაფორმების თემებს ძირითად რეპოზიტორიაში. შეეცადეთ დააყენოთ ზოგიერთი თემა [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory]:\n:* გადმოწერით [https://www.mediawiki.org/wiki/Download tarball installer], რომელიც შეიცავს გაფორმების თემებსა და გაფართოებებს. თქვენ შეგიძლიათ დააკოპიროთ და ჩასვათ <code>skins/</code>.\n:* ცალკეული გაფორმების თემების არქივების გადმოწერით [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org]-დან.\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n: ამან არ უნდა ავნოს თქვენ Git რეპოზიტორიას, თუ თქვენ MediaWiki შემმუშავებელი ხართ. იხ. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] ინფორმაცია იმის შესახებ თუ როგორ უნდა ჩაირთოს გაფორმების თემები და აირჩეს თემა ნაგულისხმევად.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (ჩართულია)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''გამორთულია''')",
+       "mediastatistics": "მედია-სტატისტიკა",
+       "mediastatistics-summary": "სტატისტიკური მონაცემები ჩატვირთული ფაილების ტიპების შესახებ. იგი შეიცავს ინფორმაციას მხოლოდ ფაილების ბოლო ვერსიის შესახებ. ფაილების უფრო ძველი ან წაშლილი ვერსიები არ ითვლება.",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 ბაიტი|$1 ბაიტი}} ($2; $3%)",
        "mediastatistics-table-mimetype": "MIME-ტიპი",
        "mediastatistics-table-extensions": "შესაძლო გაფართოებები",
        "mediastatistics-table-count": "ფაილების რაოდენობა",
+       "mediastatistics-table-totalbytes": "საერთო ზომა",
        "mediastatistics-header-unknown": "უცნობი",
+       "mediastatistics-header-bitmap": "რასტრული სურათები",
+       "mediastatistics-header-drawing": "ნახატები (ვექტორული სურათები)",
        "mediastatistics-header-audio": "აუდიო",
        "mediastatistics-header-video": "ვიდეოები",
+       "mediastatistics-header-multimedia": "მულტიმედია",
        "mediastatistics-header-office": "ოფისი",
        "mediastatistics-header-text": "ტექსტური",
+       "mediastatistics-header-executable": "შესრულებადი",
+       "mediastatistics-header-archive": "შეკუმშული ფორმატები",
+       "json-warn-trailing-comma": "$1 {{PLURAL:$1|ბოლოში არსებული ზედმეტი მძიმე წაიშალა|ბოლოში არსებული ზედმეტი მძიმეები წაიშალა|ბოლოში არსებული ზედმეტი მძიმე წაიშალა}} JSON-დან",
+       "json-error-unknown": "არსებობს პრობლემა JSON-სთან დაკავშირებით, შეცდომა: $1",
+       "json-error-depth": "მომატებულია სტეკის მაქსიმალური სიღრმე",
+       "json-error-state-mismatch": "დაუშვებელი ან არასწორად შედგენილი JSON",
+       "json-error-ctrl-char": "მმართველი სიმბოლოს შეცდომა, შესაძლოა, კოდირებაა არასწორი",
        "json-error-syntax": "სინტაქსის შეცდომა",
+       "json-error-utf8": "UTF-8-ის არაკორექტული სიმბოლოები, შესაძლოა, კოდირებაა არასწორი",
+       "json-error-recursion": "კოდირებული უნდა იყოს ერთი ან რამდენიმე რეკურსიული ბმულები მნიშვნელობებში",
+       "json-error-inf-or-nan": "კოდირებული უნდა იყოს ერთი ან რამდენიმე NAN-ან INF-მნიშვნელობები",
+       "json-error-unsupported-type": "მითითებული იყო ტიპის მნიშვნელობა, რომელიც არ შეიძლება იყოს კოდირებული",
        "headline-anchor-title": "ბმული ამ სექციაზე",
        "special-characters-group-latin": "ლათინური",
        "special-characters-group-latinextended": "ლათინური გაფართოება",
index ed5523a..e4a5420 100644 (file)
@@ -1,10 +1,20 @@
 {
        "@metadata": {
                "authors": [
-                       "Stephenwanjau"
+                       "Stephenwanjau",
+                       "Kwisha"
                ]
        },
+       "underline-always": "Mahinda mothe",
+       "underline-never": "Ona hanini",
+       "editfont-monospace": "Mandeko wa Monospaced",
+       "editfont-sansserif": "Mwandeko wa Sans-serif",
+       "editfont-serif": "Mwandeko wa Serif",
+       "sunday": "Kiumia",
+       "monday": "Wakeri",
+       "tuesday": "Wagatatu",
+       "wednesday": "Wakana",
+       "thursday": "Wagatano",
        "gotaccountlink": "Ingira",
-       "protectedarticle": "nimenyeriri [[$1]]",
-       "watchlistall2": "ciothi"
+       "protectedarticle": "nimenyeriri [[$1]]"
 }
index caf8107..5e56faf 100644 (file)
@@ -40,7 +40,7 @@
        "tog-shownumberswatching": "Бақылап тұрған қатысушылардың санын көрсет",
        "tog-oldsig": "Қазіргі уақыттағы қолтаңбаңыз:",
        "tog-fancysig": "Қолтаңбаны уикимәтінге айналдыру (автоматты сілтеме қойылмайды)",
-       "tog-uselivepreview": "Тура қарап шығуды қолдану (сынақтық)",
+       "tog-uselivepreview": "Тура қарап шығуды қолдану",
        "tog-forceeditsummary": "Өңдеме түйіндемесі бос қалғанда маған ескерт",
        "tog-watchlisthideown": "Өңдемелерімді бақылау тізімінен жасыру",
        "tog-watchlisthidebots": "Бот өңдемелерін бақылау тізімінен жасыру",
        "pool-timeout": "Құлыпталу уақытын күту мерзімі өтті",
        "pool-queuefull": "Сұранымдар жинақтауышысы толық",
        "pool-errorunknown": "Белгісіз қате",
+       "pool-servererror": "Пул есептегіш қызметі қолжетімді емес ($1).",
+       "poolcounter-usage-error": "Қолдану қатесі: $1",
        "aboutsite": "{{SITENAME}} туралы",
        "aboutpage": "Project:Жоба туралы",
        "copyright": "Мәлімет $1 лицензиясы аясында жетімді басқа жағдайда белгіленеді.",
        "hidetoc": "жасыру",
        "collapsible-collapse": "Түру",
        "collapsible-expand": "Жазу",
+       "confirmable-confirm": "{{GENDER:$1|Сіз}} сенімдісіз бе?",
        "confirmable-yes": "Иә",
        "confirmable-no": "Жоқ",
        "thisisdeleted": "$1 қарайсыз ба немесе қалпына келтіресіз бе?",
        "readonly_lag": "Жетек дерекқор серверлер басқасымен қадамланғанда осы дерекқор өздіктік құлыпталынған",
        "internalerror": "Ішкі қате",
        "internalerror_info": "Ішкі қатесі: $1",
+       "internalerror-fatal-exception": "Жойылмайтын ерекше «$1» түрі",
        "filecopyerror": "«$1» файлы «$2» файлына еселенбеді.",
        "filerenameerror": "«$1» файл атауы «$2» атауына өзгертілмеді.",
        "filedeleteerror": "«$1» файлы жойылмайды.",
        "directorycreateerror": "«$1» қалтасы құрылмады.",
+       "directoryreadonlyerror": "«$1» каталогы тек оқу үшін.",
+       "directorynotreadableerror": "«$1» каталогы оқылмайтын каталог.",
        "filenotfound": "«$1» файлы табылмады.",
        "unexpected": "Күтілмеген мағына: «$1» = «$2».",
        "formerror": "Қателік: пішін жөнелтілмейді",
        "no-null-revision": "«$1» беті үшін жаңа бос нұсқасын бастау мүмкін болмады.",
        "badtitle": "Жарамсыз тақырып аты",
        "badtitletext": "Сұралған бет тақырыбының аты жарамсыз, бос, тіларалық сілтемесі не уики-аралық тақырып аты бұрыс енгізілген.\nОнда тақырып атында қолданылмайтын бірқатар таңбалар болуы мүмкін.",
+       "title-invalid-empty": "Сұратылған бет атауы бос немесе тек есім кеңістігі атауынан тұрады.",
+       "title-invalid-utf8": "Сұратылған бет атауы дұрыс емес UTF-8 тізбегінен тұрады.",
+       "title-invalid-interwiki": "Сұратылған бет атауы уикиаралық (интеруики) атаулар қолданылмаған сілтемеден тұрады",
+       "title-invalid-talk-namespace": "Сұралған бет атауы талқылау бетіне сілтенеді ол бола амайды.",
+       "title-invalid-characters": "Сұралған бет атауы дұрыс емес таңбалардан тұрады: «$1».",
+       "title-invalid-relative": "Атауы салыстырмалы жолы бар. Салыстырмалы бет атаулары (./, ../)  жарамсыз, себебі олар пайдаланушы браузерінде өңдеген кезде қолжетімді емес.",
+       "title-invalid-magic-tilde": "Сұралған бет атауы дұрыс емес иректер тізбегін тұрады (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Сұралған бет атауы тым ұзын. Ол UTF-8 кодтауында $1 {{PLURAL:$1|байт|байт}} көп болмауы керек.",
+       "title-invalid-leading-colon": "Сұралған бет атауы дұрыс емес басындағы бағанадан тұрады.",
        "perfcached": "Келесі дерек бүркемеленген, сондықтан толықтай жаңаланбаған болуы мүмкін. Кэште ең көбі {{PLURAL:$1|бір нәтиже|$1 нәтиже}} қолжетімді.",
        "perfcachedts": "Келесі дерек бүркемеленген, соңғы жаңаланған кезі: $1. Кэште ең көбі {{PLURAL:$4|бір нәтиже|$4 нәтиже}} қолжетімді.",
        "querypage-no-updates": "Бұл беттің жаңартылуы қазіргі уақытта өшірілген.\nДеректері қазір өзгертілмейді.",
        "viewsourcetext": "Бұл беттің қайнарын қарауыңызға және көшіріп алуыңызға болады:",
        "viewyourtext": "Осы беттен <strong>өңдемелеріңіздің</strong> қайнарын қарай және көшіре аласыз.",
        "protectedinterface": "Бұл бет осы уикидің бағдарламалық жасақтамасы үшін интерфейс мәтінін қамтамасыз етеді және қиянаттауды болдырмау үшін қорғалған. Барлық уикилер үшін аудармаларды қосу немесе өзгерту үшін [//translatewiki.net/ translatewiki.net] MediaWiki жерсіндіру жобасын қолданыңыз.",
-       "editinginterface": "<strong>Ескерту:</strong> Бағдарламалық жасақтаманың тілдесу мәтінін жетістіретін бетін өңдеп жатырсыз.\nБұл беттің өзгертілуі басқа қатысушыларға пайдаланушылық интерфейсін қалай көрінетіне әсер етеді.\nБарлық уикилер үшін аудармаларды өзгерту немесе қосу үшін [//translatewiki.net/ translatewiki.net] МедиаУики жерсіндіру жобасын пайдаланыңыз.",
+       "editinginterface": "<strong>Ескерту:</strong> Бағдарламалық жасақтаманың тілдесу мәтінін жетістіретін бетін өңдеп жатырсыз.\nБұл беттің өзгертілуі басқа қатысушыларға пайдаланушылық интерфейсін қалай көрінетіне әсер етеді.",
        "translateinterface": "Барлық уикилерге аудармаларды қосу немесе өзгерту үшін [//translatewiki.net/ translatewiki.net] МедиаУики жерсіндіру жобасын қолданыңыз.",
        "cascadeprotected": "Бұл бет өңдеуден қорғалған, себебі бұл келесі «баулы қорғауы» қосылған {{PLURAL:$1|бетке|беттерге}} кірістірілген:\n$2",
        "namespaceprotected": "<strong>$1</strong> есім кеңістігіндегі беттерді өңдеу рұқсатыңыз жоқ.",
        "invalidtitle-knownnamespace": "«$2» есім кеңістік түрі және  «$3» мәтіні жарамсыз",
        "invalidtitle-unknownnamespace": "Нөмері $1 белгісіз есім кеңістік атауы және «$2» мәтіні жарамсыз",
        "exception-nologin": "Кірмегенсіз",
-       "exception-nologin-text": "Бұл әрекетке немесе бетке қатынау үшін [[Special:Userlogin|кіріңіз]].",
+       "exception-nologin-text": "Бұл әрекетке немесе бетке қатынау үшін кіріңіз.",
        "exception-nologin-text-manual": "Бұл бетке қатынау немесе әрекетті орнындау үшін $1",
        "virus-badscanner": "Дұрыс емес ішқұрылым. Белгісіз вирус скайнері: <em>$1</em>",
        "virus-scanfailed": "скайнерлеу орындалмады (коды: $1)",
        "wrongpassword": "Дұрыс емес құпия сөз енгізілген. \nҚайта байқап көріңіз.",
        "wrongpasswordempty": "Құпия сөз бос болған.\nҚайта байқап көріңіз.",
        "passwordtooshort": "Құпиясөзде кем дегенде {{PLURAL:$1|1таңба|таңба}} болуы керек.",
+       "passwordtoolong": "Құпиясөз {{PLURAL:$1|1таңбадан|таңбадан}} көп болмау керек.",
        "password-name-match": "Құпия сөзіңіз қатысушы атынан өзгеше болуы қажет.",
        "password-login-forbidden": "Бұл қатысушы аты мен құпия сөзін пайдалануға тыйым салынған.",
        "mailmypassword": "Құпия сөзді қалпына кеттіру",
        "createaccount-text": "Әлдебіреу е-пошта мекенжайыңызды пайдаланып {{SITENAME}} жобасында ($4) «$2» деген атау, «$3» деген құпия сөзбен тіркелгі жасаған.\nҚазір жүйеге кіріуіңіз және құпия сөзіңізді өзгертуіңіз керек.\n\nЕгер бұл тіркелгі қателікпен жасалса осы хабарламаны елемеуіңізге болады.",
        "login-throttled": "Сіз жүйеге кіру үшін тым көп талпыныс жасадыңыз.\nҚайта байқап көрмес бұрын $1 күте тұрыңыз.",
        "login-abort-generic": "Жүйеге кіру сәтсіз болды - Доғарылды.",
+       "login-migrated-generic": "Тіркелгіңіздің тасымалданған болатын және сіздің қатысуыш есіміңіз бұдан былай осы уикиде болмайды.",
        "loginlanguagelabel": "Тіл: $1",
        "suspicious-userlogout": "Сіздің жүйеден шығу сұранымыңыз қабылданбады, өйткені бұл бұзылған браузер немесе кэштеуші прокси арқылы жіберілгенге ұқсайды.",
+       "createacct-another-realname-tip": "Нақты есіміңіз міндетті емес.\nЕгер оны көрсетуді таңдасаңыз, бұл қатысушыға туындысының авторлығын беру үшін қолданылады.",
        "pt-login": "Кіру",
        "pt-login-button": "Кіру",
        "pt-createaccount": "Тіркелу",
        "resetpass-submit-loggedin": "Құпия сөзді өзгерту",
        "resetpass-submit-cancel": "Болдырмау",
        "resetpass-wrong-oldpass": "Уақытша немесе қазіргі құпия сөзіңіз жарамсыз.\nМүмкін сіз құпия сөзді сәтті өзгерткенсіз немесе жаңа уақытша құпия сөзге сұраным жасағансыз.",
+       "resetpass-recycled": "Құпия сөзіңізді қазіргі құпия сөзіңізден өзгеше етіп өзгертіңіз.",
+       "resetpass-temp-emailed": "Сіз уақытша email-ды кодпен кірдіңіз.\nКіруді аяқтау үшін жаңа құпия сөзді мында орнатуыңыз керек:",
        "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}}» дегенді басып қайта орнатуды кейінге қалдырыңыз.",
        "passwordreset": "Құпия сөзді қайтару",
        "passwordreset-text-one": "Уақытша құпия сөзіңізді электрон пошта арқылы қабылдау үшін бұл пішінді толтырыңыз.",
        "passwordreset-text-many": "{{PLURAL:$1|Е-пошта арқылы уақытша құпия сөзді қабылдау үшін жолақтардың бірін толтырыңыз.}}",
        "passwordreset-capture-help": "Егер Сіз берілген белгішені қондырсаңыз, қатысушыға жіберілетін уақытша құпия сөз жазылған хат көрсетіледі.",
        "passwordreset-email": "Е-поштаның мекен-жайы:",
        "passwordreset-emailtitle": "{{SITENAME}} тіркелгісі туралы анықтама",
+       "passwordreset-emailtext-ip": "Әлде кім (мүмкін сіз болуыңыз, $1 IP адресінен) {{SITENAME}} сайтында ($4) құпия сөзді өзгертуге өтініш білдірді. Мына қатысушы {{PLURAL:$3|аккаунты|аккаунттары}} осы электронды почта қатысты:\n\n$2\n\n{{PLURAL:$3|Бұл уақытша құпия сөз|Бұл уақытша құпия сөздер}} {{PLURAL:$5|бір күнде|$5 күнде}}уақыты аяқталады.\nСіз кіруіңіз және жаңа құпия сөзді таңдауыңыз керек. Егер бұл өтінішті басқа біреу жасаса, немесе сіз  бұрынғы құпия сөзіңізді еске түсірсеңіз және құпия сөзді ауыстыруды қаламасаңыз, сіз бұл хабарламаны ескермей және бұрынғы құпия сөзді қолдана беруіңізге болады.",
+       "passwordreset-emailtext-user": "$1 есімді қатысушы {{SITENAME}} сайтында ($4) құпия сөзді өзгертуге өтініш білдірді. Мына қатысушы {{PLURAL:$3|аккаунт|аккаунттар}} осы електронды почта қатысты:\n\n$2\n\n{{PLURAL:$3|Бұл уақытша құпия сөз|Бұл уақытша құпия сөздер}} {{PLURAL:$5|бір күнде|$5 күнде}}уақыты аяқталады.\nСіз кіруіңіз және жаңа құпия сөзді таңдауыңыз керек. Егер бұл өтінішті басқа біреу жасаса, немесе сіз  бұрынғы құпия сөзіңізді еске түсірсеңіз, және құпия сөзді ауыстыруды қаламасаңыз, сіз бұл хабарламаны ескермей және бұрыңғы құпия сөзді қолдана беруіңізге болады.",
        "passwordreset-emailelement": "Қатысушы есімі: $1\nУақытша құпия сөз: $2",
        "passwordreset-emailsent": "Құпия сөзді өзгерту электронды пошта арқылы жөнелтілді.",
        "passwordreset-emailsent-capture": "Құпия сөзді өзгерту электронды пошта арқылы жөнелтілді, ол төменде көрсетілген.",
-       "passwordreset-emailerror-capture": "Жазылған ескертпе-хат төменде көрсетілген, оның жөнелтілмеу себебі: $1",
+       "passwordreset-emailerror-capture": "Құпиясөзді өзгерту электрон хаты жасалды, ол төменде көрсетілген, бірақ ол {{GENDER:$2|қатысушыға}} жөнелтілмеді: $1",
        "changeemail": "Е-пошта мекен-жайын өзгерту",
        "changeemail-text": "Е-поштаның мекен-жайын өзгерту үшін мына пішінді толтырыңыз. Өзгертулерді растау үшін құпия сөздіңізді енгізу керек.",
        "changeemail-no-info": "Бұл бетке тікелей ену үшін жүйеге кіруіңіз керек.",
        "changeemail-password": "{{SITENAME}} жобасындағы құпия сөзіңіз:",
        "changeemail-submit": "Е-поштаны өзгерту",
        "changeemail-throttled": "Сіз жақында кіруге тым көп әрекет жасадыңыз.\nҚайта байқап көру үшін $1 уақыт күте тұрыңыз.",
+       "resettokens": "Байрақшаны ысыру",
+       "resettokens-text": "Мұнда сіз құпия дерекке қатысты тіркелгіңізге қатынауға рұқсат ететін байрақшаны ысыра аласыз.\n\nЕгер сіздің тіркелгіңіз бұзылған болса, егер сіз абайсызда қандай да біреумен бөліссеңіз, сіз мұны істеуіңіз керек.",
+       "resettokens-no-tokens": "Мұнда ысыруға байрақша жоқ.",
+       "resettokens-legend": "Байрақшаны ысыру",
+       "resettokens-tokens": "Байрақша",
+       "resettokens-token-label": "$1 (қазіргі мәні : $2)",
+       "resettokens-watchlist-token": "(Atom/RSS) [[Special:Watchlist|сіздің бақылау тізіміңіздегі беттердегі өзгерістер]]дегі уеб тізбегі (Atom/RSS) үшін токен",
+       "resettokens-done": "Байрақшаларды ысыру",
+       "resettokens-resetbutton": "Таңдалған байрақшаларды ысыру",
        "bold_sample": "Жуан мәтін",
        "bold_tip": "Жуан мәтін",
        "italic_sample": "Қиғаш мәтін",
        "showpreview": "Алдын-ала қарау",
        "showdiff": "Өзгерістерді көрсет",
        "blankarticle": "<strong>Ескерту:</strong> Сіз бастамақшы болған бет бос.\nЕгер сіз «{{int:savearticle}}» дегенші қайта шертсеңіз бет қандайда бір мағлұматсыз басталады.",
-       "anoneditwarning": "<strong> Ескерту:</strong>  Сіз жүйеге кірмегенсіз.\nIP мекенжайыңыз бұл беттің өңделу тарихында жазылып алынады.",
+       "anoneditwarning": "<strong> Ескерту:</strong>  Сіз жүйеге кірмегенсіз.\nIP мекенжайыңыз қандай да бір өңдеме жасасаңыз көпшілікке көрінеді. Егер сіз <strong>[$1 кірсеңіз]</strong> немесе <strong>[$2 тіркелсеңіз]</strong>, сіздің өңдемелеріңіз сіздің қатысушы есіміңізден байланысты болады, сонымен қатар басқа да артықшылықтар беріледі.",
        "anonpreviewwarning": "<em>Сіз жүйеге кірмегенсіз. IP мекенжайыңыз бұл беттің өңделу тарихында жазылып алынады.</em>",
        "missingsummary": "<strong>Ескерту:</strong> Өңдеменің қысқаша түйіндемесін енгізбепсіз.\n«{{int:savearticle}}» батырмасын қайта бассаңыз өңдемеңіз түйіндемесіз сақталады.",
+       "selfredirect": "<strong>Ескерту:</strong> Сіз бұл бетті өзіне бағыттадыңыз.\nСіз бағыттау үшін қате нысана көрсеттіңіз не қате бетті өңдеген болуыңыз мүмкін.\nЕгер «{{int:savearticle}}» дегенді қайта бассаңыз, бағыттау қалайда басталады.",
        "missingcommenttext": "Пікіріңізді төменге енгізіңіз.",
        "missingcommentheader": "<strong>Ескерту:</strong> Бұл пікірге тақырыпы/бас жолы жазбапсыз.\n«{{int:savearticle}}» түймесін тағы бассаңыз өңдемеңіз түйіндемесіз сақталады.",
        "summary-preview": "Қысқаша түйіндемесін қарап шығу:",
        "subject-preview": "Тақырыбын/бас жолын қарап шығу:",
+       "previewerrortext": "Өзгерістеріңізді қарап шығу талпынысыңыз кезінде қате кездесті.",
        "blockedtitle": "Қатысушы бұғатталған",
        "blockedtext": "<strong>Қатысушы атыңыз не IP мекенжайыңыз бұғатталған.</strong>\n\n$1 деген әкімші бұғаттаған. \nКелтірілген себебі: <em>$2</em>.\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Келтірілген себебі: \n:<em>$2</em>\n\n* Бұғаттаудың басталғаны: $8\n* Бұғаттаудың бітетіні: $6\n* Бұғаттау нысанасы: $7\n\nОсы бұғаттауды талқылау үшін $1 не басқа [[{{MediaWiki:Grouppage-sysop}}|әкімшімен]] байланыса аласыз.\n[[Special:Preferences|Тіркелгі бапталымдары]]ңызда жарамды е-пошта мекенжайын көрсеткен болсаңыз және де оны пайдаланудан бұғатталмаған жағдайда ғана «Қатысушыға хат жазу» қызметін қолдана аласыз.\nАғымдық IP мекенжайыңыз: $3, бұғатау нөмірі: $5.\nСұраным жасағанда осының екеуін де кірістіруіңізді сұраймыз.",
        "session_fail_preview": "<strong>Кешіріңіз! Сессия деректері жоғалуы салдарынан өңдемеңізді бітіре алмаймыз.</strong>\nҚайта байқап көріңіз. \nЕгер бұл әлі істелмесе [[Special:UserLogout|шығуды]] және қайта кіруді байқап көріңіз.",
        "session_fail_preview_html": "<strong>Кешіріңіз! Сессия деректері жоғалуы салдарынан өңдемеңізді бітіре алмаймыз.</strong>\n\n<em>Сондықтан {{SITENAME}} жобасында қам HTML қосылған, JavaScript шабуылдардан қорғану үшін алдын ала қарап шығу жасырылған.</em>\n\n<strong>Егер бұл өңдеме адал ниетті әрекет болса қайта байқап көріңіз.</strong> \nЕгер бұл әлі істемесе [[Special:UserLogout|шығуды]] және қайта кіруді байқап көріңіз.",
        "token_suffix_mismatch": "<strong>Өңдемеңіз тайдырылды, себебі тұтынғышыңыз өңдеме деректер бумасындағы тыныс белгілерін бүлдіртті.\nБет мәтіні бүлінбеу үшін өңдемеңіз тайдырылады.</strong>\nБұл кей уақытта қатесі толған веб-негізінде тіркелуі жоқ прокси-серверді пайдаланған болуы мүмкін.",
+       "edit_form_incomplete": "<strong>Өңдеу пішінінің кейбір бөліктері серверге жетпеді; өңдемелеріңіздің бұзылмағандығына екі рет бақылау жүргізіңіз және қайта байқап көріңіз.</strong>",
        "editing": "Өңделуде: $1",
        "creating": "Жаңадан бастау: $1",
        "editingsection": "Өңделуде: $1 (бөлімі)",
        "postedit-confirmation-saved": "Өңдемеңіз сақталды.",
        "edit-already-exists": "Жаңа бет бастау мүмкін емес.\nОл әлдеқашан бар.",
        "defaultmessagetext": "Әдепкі хабарлама мәтіні",
+       "content-failed-to-parse": "$1 модель үшін $2 мазмұнды талдау қатесі: $3",
        "invalid-content-data": "Жарамсыз дерек мазмұны",
        "content-not-allowed-here": "«$1» мазмұны [[$2]] бетінде рұқсат етілмейді.",
        "editwarning-warning": "Бұл бетті қалдырып кетсеңіз қандай да бір жасаған өзгерістеріңізді жоғалтуыңыз мүмкін. \nЕгер сiз кіріп отырсаңыз баптауларыңыздағы «{{int:prefs-editing}}» бөлімінен бұл ескертуді өшіре аласыз.",
        "editpage-notsupportedcontentformat-title": "Контент форматы қолдамайды",
+       "editpage-notsupportedcontentformat-text": "$1 мазмұн форматы $2 мазмұн үлгісін қолдамайды.",
        "content-model-wikitext": "уикимәтін",
        "content-model-text": "қалыпты мәтін",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "content-json-empty-object": "Бос нысан",
+       "content-json-empty-array": "Бос жиым",
        "duplicate-args-category": "Үлгіні шақыруда қабатталып тұрған аргументтер қолданған беттер",
+       "duplicate-args-category-desc": "<code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> не <code><nowiki>{{foo|bar|1=baz}}</nowiki></code> сияқты үлгіні шақыруда қабатталып тұрған аргументтер қолданған беттер.",
        "expensive-parserfunction-warning": "<strong>Ескерту:</strong> Бұл бет тым көп шығыс алатын құрылым талдатқыш жетелер шақыруынан тұрады.\n\nБұл $2  {{PLURAL:$2|шақыру|шақырулар}} шамасынан кем болуы керек, осы арада {{PLURAL:$1|қазір $1 шақыру|қазір $1 шақыру}}.",
        "expensive-parserfunction-category": "Шығыс алатын құрылым талдатқыш жетелерінің тым көп шақырымы бар беттер",
        "post-expand-template-inclusion-warning": "<strong>Ескерту:</strong> Үлгі кірістіру мөлшері тым үлкен.\nКейбір үлгілер кірістірілмейді.",
        "post-expand-template-argument-warning": "<strong>Ескерту:</strong> Бұл бетте тым көп ұлғайтылған өлшемі болған ең кемінде бір үлгі дәлелі бар.\nБұның дәлелдерін қалдырып кеткен.",
        "post-expand-template-argument-category": "Үлгі дәлелдерін қалдырып кеткен беттер",
        "parser-template-loop-warning": "Үлгі тұйығы кездесті: [[$1]]",
+       "parser-template-recursion-depth-warning": "Үлгі рекурсия тереңдігі шегінен ($1) асты",
+       "language-converter-depth-warning": "Тіл түрлендіргіш тереңдігі шегінен ($1) асты",
+       "node-count-exceeded-category": "Түйін саны асып кеткен беттер",
+       "node-count-exceeded-category-desc": "Түйін саны шегінен асып кеткен беттер",
+       "node-count-exceeded-warning": "Түйін саны асып кеткен бет",
+       "expansion-depth-exceeded-category": "Жіктелім тереңдігі асып кеткен беттер",
+       "expansion-depth-exceeded-category-desc": "Жіктелім тереңдігі шегінен асқан бет.",
+       "expansion-depth-exceeded-warning": "Жіктелім тереңдігі асып кеткен бет",
+       "parser-unstrip-loop-warning": "Жабылмаған тег анықталды (<pre> осындай)",
+       "parser-unstrip-recursion-limit": "Unstrip рекурсия шегінен асты ($1)",
+       "converter-manual-rule-error": "Қолмен тілді түрлендіру ережесінде қате кездесті",
        "undo-success": "Бұл өңдемені жоққа шығарымақшысыз. Алдымен алдын-ала төмендегі салыстыруды тексеріп шығыңыз да бетті сақтаңыз.",
        "undo-failure": "Бұл өңдеме жоққа шығарылмайды, себебі арада қақтығысты өңдемелер бар.",
        "undo-norev": "Бұл өңдеме жоққа шығарылмайды, себебі бұл бет жоқ немесе жойылған.",
        "history-feed-description": "Мына уикидегі бұл беттің өңделу тарихы",
        "history-feed-item-nocomment": "$2 кезіндегі $1 деген",
        "history-feed-empty": "Сұратылған бет жоқ.\nОл бұл уикиден жойылған немесе атауы өзгертілген.\nОсыған қатысты жаңа беттерді [[Special:Search|бұл уикиден іздеуді]] байқап көріңіз.",
+       "history-edit-tags": "Таңдалған нұсқалардағы өңдеу белгілері",
        "rev-deleted-comment": "(өңдеу түйіндемесін аластады)",
        "rev-deleted-user": "(қатысушы есімін аластады)",
-       "rev-deleted-event": "(әрекет журналын аластады)",
+       "rev-deleted-event": "(журнал егжей-тегжейін аластады)",
        "rev-deleted-user-contribs": "[Қатысушы аты немесе IP мекенжайы жойылған — өңдемелері қатысушы үлесі бетінен жасырылған]",
        "rev-deleted-text-permission": "Бұл беттің түзетуі (нұсқасы) <strong>жойылған</strong>.\n[{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Жою журналынан] егжей-тегжейін таба аласыз.",
+       "rev-suppressed-text-permission": "Бұл беттің түзетуі (нұсқасы) <strong>жасырылған</strong>.\n[{{fullurl:{{#special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Жасыру журналынан] егжей-тегжейін таба аласыз.",
        "rev-deleted-text-unhide": "Бұл беттің түзетуі (нұсқасы) <strong>жойылған</strong>.\n[{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Жою журналынан] егжей-тегжейін таба аласыз.\nЕгер сіз жалғастырсаңыз [$1 бұл нұсқаны көре] аласыз.",
        "rev-suppressed-text-unhide": "Бұл беттің түзетуі (нұсқасы) <strong>жасырылған</strong>.\n[{{fullurl:{{#special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Жасыру журналынан] егжей-тегжейін таба аласыз.\nЕгер сіз жалғастырсаңыз [$1 бұл нұсқаны көре] аласыз.",
        "rev-deleted-text-view": "Бұл беттің түзетуі (нұсқасы) <strong>жойылған</strong>.\n[{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Жою журналынан] егжей-тегжейін таба аласыз.",
        "rev-showdeleted": "көрсету",
        "revisiondelete": "Нұсқаларды жою/жоюды болдырмау",
        "revdelete-nooldid-title": "Нысана түзету жарамсыз",
-       "revdelete-nooldid-text": "Бұл жетені орындау үшін нысана түзету(лер)ін келтірілмепсіз,\nкелтірілген нұсқа жоқ немесе ағымдық түзетуді жасыру үшін әрекеттеніп көрдіңіз.",
+       "revdelete-nooldid-text": "Бұл жетені орындау үшін қандай да бір нысана түзетуін келтірілмепсіз немесе\nкелтірілген нұсқа жоқ немесе ағымдық түзетуді жасыру үшін әрекеттеніп көрдіңіз.",
        "revdelete-no-file": "Көрсетілген файл жоқ",
        "revdelete-show-file-confirm": "$2 $3 кезіндегі «<nowiki>$1</nowiki>» файлының жойылған нұсқаларын көргіңіз келе ме?",
        "revdelete-show-file-submit": "Иә",
        "revdelete-selected-text": "[[:$2]] бетінің {{PLURAL:$1|таңдалған нұсқасы|таңдалған нұсқалары}} :",
        "revdelete-selected-file": "[[:$2]] дегеннің {{PLURAL:$1|таңдалған файл нұсқасы|таңдалған файл нұсқалары}} :",
        "logdelete-selected": "Бөлектенген {{PLURAL:$1|журнал оқиғасы|журнал оқиғалары}}:",
+       "revdelete-text-text": "Жойылған нұсқалар әлі де бет тарихында көрінетін болады, бірақ олардың мағлұмат бөлшектері жалпыға қатынаулы болмайды.",
+       "revdelete-text-file": "Жойылған файл нұсқалары әлі де бет тарихында көрінетін болады, бірақ олардың мағлұмат бөлшектері жалпыға қатынаулы болмайды.",
+       "logdelete-text": "Жойылған журнал оқиғалары әлі де бет тарихында көрінетін болады, бірақ олардың мағлұмат бөлшектері жалпыға қатынаулы болмайды.",
+       "revdelete-text-others": "Қосымша тиымдар қойылғанша басқа әкімшілер, жасырын мағлұматқа қатынай және оны қалпына келтіре алады.",
+       "revdelete-confirm": "Сіз осыны істеу ниетіңізде салдары қандай болатынын түсінінің және сіз  [[{{MediaWiki:Policy-url}}|ережеге]] сәйкес бұны істегеніңізді құптаңыз.",
+       "revdelete-suppress-text": "Жасыру <strong>тек</strong> төмендегідей жағдайларда қолданылады:\n* потенциялды ғайбат ақпарат\n* Орынсыз жеке ақпарат\n*: <em>мекенжай және телефон номерлері, жеке сәйкестендіру нөмерлері, тағы сол сияқтылар.</em>",
        "revdelete-legend": "Көрініс тиымдарын қою:",
        "revdelete-hide-text": "Түзету мәтінін жасыр",
        "revdelete-hide-image": "Файл мағлұматын жасыр",
-       "revdelete-hide-name": "Әрекет пен нысанасын жасыр",
-       "revdelete-hide-comment": "Өңдеме түйіндемесін жасыр",
-       "revdelete-hide-user": "Өңдеуші атын (IP мекенжайын) жасыр",
-       "revdelete-hide-restricted": "Ð\9eÑ\81Ñ\8b Ñ\82иÑ\8bмдаÑ\80дÑ\8b Ó\99кÑ\96мÑ\88Ñ\96леÑ\80ге Ò\9bолданÑ\83 Ð¶Ó\99не Ð±Ò±Ð» Ñ\82Ñ\96лдеÑ\81Ñ\83дÑ\96 Ò\9bұлÑ\8bпÑ\82ау",
+       "revdelete-hide-name": "Параметр және нысанасын жасыр",
+       "revdelete-hide-comment": "Өңдеме түйіндемесі",
+       "revdelete-hide-user": "Өңдеушінің қатысушы есімі/IP мекенжайы",
+       "revdelete-hide-restricted": "Ð\94еÑ\80екÑ\82еÑ\80дÑ\96 Ð±Ð°Ñ\81Ò\9bалаÑ\80 Ñ\81иÑ\8fÒ\9bÑ\82Ñ\8b Ó\99кÑ\96мÑ\88Ñ\96леÑ\80ден Ð´Ðµ Ð¶Ð°Ñ\81Ñ\8bÑ\80у",
        "revdelete-radio-same": "(өзгертпе)",
        "revdelete-radio-set": "Жасырылған",
        "revdelete-radio-unset": "Көрсетілген",
        "revdelete-success": "'''Түзету көрінісі сәтті жаңартылды.'''",
        "revdelete-failure": "'''Түзету көрінісі жаңартылмады:'''\n$1",
        "logdelete-success": "'''Журнал көрінісі сәтті қойылды.'''",
+       "logdelete-failure": "Журнал көрінулігі орнатылмады:\n$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-modify-missing": "$1 номерлі өңдемені өзгерту қатесі: Ол дерекқорда жоқ!",
+       "revdelete-no-change": "<strong>Ескерту:</strong> $2, $1 кезіндегі жазба әлдеқашан көрінулілігі баптауларында сұратылған.",
+       "revdelete-concurrent-change": "$2, $1 кезіндегі жазбаны өңдеу қатесі: сіз оны өзгерту талпынғанда әлдебіреу оның статусын өзгерткен.\nЖурналдардан тексеріңіз.",
+       "revdelete-only-restricted": "$2, $1 кезіндегі жазбаны жасыру қатесі: Сіз басқа көрінулігі параметрлерінің біреуін таңдаусыз әкімшілердің көруінен жасыра алмайсыз.",
+       "revdelete-reason-dropdown": "*Жоюдың жалпы себептері\n** Авторлық құқықтарды бұзу\n** Орынсыз пікір немесе жеке мәлімет\n** үйлесімсіз қатысушы есімі\n** Потенциялды ғайбат ақпарат",
        "revdelete-otherreason": "Басқа/қосымша себеп:",
        "revdelete-reasonotherlist": "Өзге себеп",
        "revdelete-edit-reasonlist": "Жою себептерін өңдеу",
        "mergehistory-empty": "Түзетулер біріктірілмейді.",
        "mergehistory-success": "[[:$1]] дегеннің $3 түзетуі [[:$2]] дегенге сәтті біріктірілді.",
        "mergehistory-fail": "Тарих біріктіруін орындау икемді емес, бет пен уақыт бапталымдарын қайта тексеріп шығыңыз.",
+       "mergehistory-fail-toobig": "$1 {{PLURAL:$1|нұсқа|нұсқа}} шегінен көп тарихын біріктіру орындалмайды.",
        "mergehistory-no-source": "$1 деген қайнар беті жоқ.",
        "mergehistory-no-destination": "$1 деген нысана беті жоқ.",
        "mergehistory-invalid-source": "Қайнар бетінде жарамды тақырып аты болуы жөн.",
        "search-redirect": "(айдағыш $1)",
        "search-section": "(бөлім $1)",
        "search-category": "(Санат:$1)",
+       "search-file-match": "(файлдың мазмұны сәйкес келеді)",
        "search-suggest": "Мүмкін осы болар: $1",
        "search-interwiki-caption": "Бауырлас жобалар",
        "search-interwiki-default": "$1 дегеннен нәтиже:",
        "searchrelated": "қатысты",
        "searchall": "барлық",
        "showingresults": "Төменде нөмір '''$2''' орнынан бастап барынша '''$1''' нәтиже көрсетіледі.",
+       "showingresultsinrange": "Төменде {{PLURAL:$1|<strong>1</strong> нәтижеден|<strong>$1</strong> нәтижеден}} #<strong>$2</strong> орнынан #<strong>$3</strong> орынына дейінгі ауқымы көрсетіледі.",
        "search-showingresults": "{{PLURAL:$4|Табылған <strong>$3</strong> нәтиженің <strong>$1</strong> нәтижесі көрсетілген|Табылған <strong>$3</strong> нәтиженің <strong>$1 - $2</strong> аралығы көрсетілген}}",
        "search-nonefound": "Сұрауға сәйкес нәтижелер табылмады.",
        "powersearch-legend": "Кеңейтілген іздеу",
        "preferences": "Баптаулар",
        "mypreferences": "Баптаулар",
        "prefs-edits": "Өңдеме саныңыз:",
-       "prefsnologintext2": "Баптауларыңызды өзгерту үшін $1.",
+       "prefsnologintext2": "Баптауларыңызды өзгерту үшін кіруіңіз керек.",
        "prefs-skin": "Мәнерлер",
        "skin-preview": "Қарап шығу",
        "datedefault": "Еш қалаусыз",
        "prefs-personal": "Жеке деректері",
        "prefs-rc": "Жуықтағы өзгерістер",
        "prefs-watchlist": "Бақылау тізімі",
+       "prefs-editwatchlist": "Бақылау тізімін өңдеу",
+       "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": "Кеңейтілген бақылаулардағы өзгерістердің барынша көрсетпек саны:",
        "recentchangesdays-max": "Ең көбі $1 {{PLURAL:$1|күн|күн}}",
        "recentchangescount": "Жуықтағы өзгерістердінде, тарих және журнал беттерінде көрсетпек өңдеме саны:",
        "prefs-help-recentchangescount": "Бұған жуықтағы өзгерістер, бет тарихтары және журналдар қамтылады.",
+       "prefs-help-watchlist-token2": "Бұл бақылау тізіміңіздің уеб тізбегінің құпия кілті.\nӘлдекім оны біліп қойса бақылау тізіміңізді оқи алады, сондықтан оны бөліспеңіз. \nЕгер сізге қажет болса, [[Special:ResetTokens|оны қалпына келтіре аласыз]]..",
        "savedprefs": "Бапталымдарыңыз сақталды.",
        "timezonelegend": "Уақыт белдеуі:",
        "localtime": "Жергілікті уақыт:",
        "prefs-custom-css": "CSS өзгертпелі",
        "prefs-custom-js": "JavaScript өзгертпелі",
        "prefs-common-css-js": "Барлық skin-дер үшін CSS/JavaScript бөлісілді:",
+       "prefs-reset-intro": "Сіз сайт әдепкі баптауларыңызды қайта орнату үшін осы бетті пайдалана аласыз.\nБұны болдырмау мүмкін емес.",
        "prefs-emailconfirm-label": "Е-поштаның расталуы:",
        "youremail": "Е-поштаңыз:",
        "username": "{{GENDER:$1|Қатысушы атыңыз}}:",
        "gender-female": "Әйел",
        "prefs-help-gender": "Бұл баптауды орнату міндетті емес.\nБағдарламалық жасақтама жынысыңызға сәйкес хабарларды көрсетуге қолданылады.\nБұл мағлұмат баршаға мәлім болады.",
        "email": "Е-поштаңыз",
-       "prefs-help-realname": "Ð\9dаÒ\9bÑ\82Ñ\8b Ð°Ñ\82Ñ\8bÒ£Ñ\8bз Ð¼Ñ\96ндеÑ\82Ñ\82Ñ\96 ÐµÐ¼ÐµÑ\81.\nÐ\95геÑ\80 Ð±Ò±Ð½Ñ\8b Ð¶ÐµÑ\82Ñ\96Ñ\81Ñ\82Ñ\96Ñ\80Ñ\83дÑ\96 Ñ\82аңдаÑ\81аңÑ\8bз, Ð±Ò±Ð» Ñ\82үзеÑ\82Ñ\83Ñ\96Ò£Ñ\96здÑ\96Ò£ Ð°Ñ\83Ñ\82оÑ\80лÑ\8bÒ\93Ñ\8bн Ð°Ð½Ñ\8bÒ\9bÑ\82ау үшін қолданылады.",
+       "prefs-help-realname": "Ð\9dаÒ\9bÑ\82Ñ\8b Ð°Ñ\82Ñ\8bÒ£Ñ\8bз Ð¼Ñ\96ндеÑ\82Ñ\82Ñ\96 ÐµÐ¼ÐµÑ\81.\nÐ\95геÑ\80 ÐºÓ©Ñ\80Ñ\81еÑ\82Ñ\81еңÑ\96з, Ð±Ò±Ð» Ñ\82Ñ\83Ñ\8bндÑ\8bÒ£Ñ\8bзÒ\93а Ñ\81Ñ\96зге Ð°Ð²Ñ\82оÑ\80лÑ\8bÒ\93Ñ\8bн Ð±ÐµÑ\80у үшін қолданылады.",
        "prefs-help-email": "Электронды поштаңыздың мекенжайын көрсету міндетті емес, бірақ құпия сөзіңізді ұмытқан жағдайда құпия сөзді қалпына келтіру үшін керек болады.",
        "prefs-help-email-others": "Кейде қатысушы немесе талқылау бетіңізге е-пошта мекенжайы сілтемесін көрсету арқылы басқалармен байланыса аласыз.\nЕ-пошта мекенжайыныңыз басқа қатысушылар сізбен байланысқан кезде көрсетілмейді.",
        "prefs-help-email-required": "Е-пошта мекенжайы керек.",
        "prefs-advancedwatchlist": "Кеңейтілген баптаулар",
        "prefs-displayrc": "Көрсету бапталымдары",
        "prefs-displaywatchlist": "Көрсету бапталымдары",
+       "prefs-tokenwatchlist": "Токен",
        "prefs-diffs": "Айырмашылықтар",
        "prefs-help-prefershttps": "Бұл баптауды келесі кіргеніңізде әсерін көре аласыз.",
+       "prefswarning-warning": "Сіз баптауларыңыздағы жасаған өзгерістеріңіз сақталмайды.\nЕгер сіз «$1» дегенді баспай бұл беттен кетсеңіз баптауларыңыз жаңартылмайды.",
+       "prefs-tabs-navigation-hint": "Кеңес: Сіз қойындылар тізімінде қойындылар арасында жылжу үшін сол жақ және оң жақ көрсеткі пернелерін пайдалануыңызға болады.",
        "email-address-validity-valid": "Е-почта мекенжайы жарамдылығы анықталды",
        "email-address-validity-invalid": "Жарамсыз электронды пошта мекен-жайын енгізіңіз",
        "userrights": "Қатысушы құқықтарын реттеу",
        "userrights-lookup-user": "Қатысушы топтарын реттеу",
        "userrights-user-editname": "Қатысушы атын енгізіңіз:",
        "editusergroup": "Қатысушы топтарын өңдеу",
-       "editinguser": "<strong>[[User:$1|$1]]</strong> $2 есімді қатысушының құқықтарын өзгерту",
+       "editinguser": "<strong>[[User:$1|$1]]</strong> $2 {{GENDER:$1|user}}есімді қатысушының құқықтарын өзгерту",
        "userrights-editusergroup": "Қатысушы топтарын өңдеу",
        "saveusergroups": "Қатысушы топтарын сақтау",
        "userrights-groupsmember": "Мүшелігі:",
+       "userrights-groupsmember-auto": "Бұлтарасыз мүше:",
        "userrights-groups-help": "Бұл қатысушы кіретін топтарды реттей аласыз.\n* Құсбелгі қойылған көзі қатысушы бұл топқа кіргенін көрсетеді;\n* Құсбелгі алып тасталған көз қатысушы бұл топқа кірмегенін көрсетеді;\n* Келтірілген * топты бір үстегенінен кейін аластай алмайтындығын, не қарама-қарсысын көрсетеді.",
        "userrights-reason": "Себебі:",
        "userrights-no-interwiki": "Басқа уикилердегі қатысушы құқықтарын өңдеуге рұқсатыңыз жоқ.",
        "right-reupload-shared": "Таспа ортақ қоймасындағы файлдарды жергіліктілермен асыру",
        "right-upload_by_url": "Файлды URL мекенжайдан жүктеу",
        "right-purge": "Бетті торап бүркемесінен құптаусыз тазарту",
-       "right-autoconfirmed": "Жартылай қорғалған беттерді өңдеу",
+       "right-autoconfirmed": "IP мекенжай жылдамдықтарының шектеулері ықпал етпейді.",
        "right-bot": "Өздіктік үдеріс деп есептелу",
        "right-nominornewtalk": "Талқылау беттердегі шағын өңдемелерді жаңа хабар деп есептемеу",
        "right-apihighlimits": "API сұранымдарының жоғары шектелімдерін пайдалану",
        "right-deletedtext": "Жойылған мәтінді және жойылған нұсқалар арасындағы өзгерістерді қарау",
        "right-browsearchive": "Жойылған беттерді іздеу",
        "right-undelete": "Беттің жоюын болдырмау",
-       "right-suppressrevision": "Әкімшілерден жасырылған түзетулерді шолып шығу және қалпына келтіру",
+       "right-suppressrevision": "Әрбір қатысушыдан жасырылған ерекше бет түзетулерді шолып шығу, жасыру және жасырылғанды көрсету",
+       "right-viewsuppressed": "Барлық қатысушылардан жасырылған нұсқаларды қарау",
        "right-suppressionlog": "Жекелік журналдарды көру",
        "right-block": "Басқа қатысушыларды өңдеуден бұғаттау",
        "right-blockemail": "Қатысушының хат жөнелтуін бұғаттау",
        "right-protect": "Қорғау деңгейлерін өзгерту және баулы-қорғаулы беттерді өңдеу",
        "right-editprotected": "Қорғалған беттерді өңдеу \"{{int:protect-level-sysop}}\"",
        "right-editsemiprotected": "Қорғалған беттерді өңдеу \"{{int:protect-level-autoconfirmed}}\"",
+       "right-editcontentmodel": "Беттің контент моделін өңдеу",
        "right-editinterface": "Қатысушы тілдесіуін өңдеу",
        "right-editusercssjs": "Басқа қатысушылардың CSS және JS файлдарын өңдеу",
        "right-editusercss": "Басқа қатысушылардың CSS файлдарын өңдеу",
        "right-import": "Басқа уикилерден беттерді сырттан алу",
        "right-importupload": "Файлдарды жүктеу арқылы беттерді сырттан алу",
        "right-patrol": "Басқарардың өңдемелерін зерттелді деп белгілеу",
-       "right-autopatrol": "Өз өңдемелерін зерттелді деп өздіктік белгілеу",
+       "right-autopatrol": "Өз өңдемелерін тексерілді деп өздіктік белгілеу",
        "right-patrolmarks": "Жуықтағы өзгерістердегі зерттеу белгілерін көру",
        "right-unwatchedpages": "Бақыланылмаған бет тізімін көру",
        "right-mergehistory": "Беттердің тарихын қосып беру",
        "right-userrights": "Қатысушылардың барлық құқықтарын өңдеу",
        "right-userrights-interwiki": "Басқа үикилердегі қатысушылардың құқықтарын өңдеу",
        "right-siteadmin": "Дерекқорды құлыптау және құлыптауын өшіру",
+       "right-override-export-depth": "Тереңдігі 5-тен жоғары сілтенген бетттерді қамти беттерді экспорттау",
        "right-sendemail": "Басқа қатысушыларға е-пошта жіберу",
        "right-passwordreset": "Өзгерген құпия сөз арқылы хабарламаларды шолу",
+       "right-managechangetags": "[[Special:Tags|Тегтерді]] дерекқордан бастау және жою",
+       "right-applychangetags": "[[Special:Tags|Тегтерді]] бір өзгерісімен қолдану",
+       "right-changetags": "Кез келген [[Special:Tags|тегті]] жеке нұсқалардан және журнал жазбаларынан аластау және қосу",
        "newuserlogpage": "Тіркелу журналы",
        "newuserlogpagetext": "Бұл қатысушы тіркелу журналы",
        "rightslog": "Қатысушы құқықтары журналы",
        "action-viewmywatchlist": "бақылау тізіміңізді қарау",
        "action-viewmyprivateinfo": "жеке ақпараттарыңызды қарау",
        "action-editmyprivateinfo": "жеке ақпараттарыңызды өңдеу",
+       "action-editcontentmodel": "беттің контент моделін өңдеу",
+       "action-managechangetags": "дерекқордан тегтерді жою және бастау",
+       "action-applychangetags": "өзгерістеріңізбен қатар тегтерді қолдану",
+       "action-changetags": "кез келген тегті жеке нұсқалардан және журнал жазбаларынан аластау және қосу",
        "nchanges": "$1 өзгеріс",
+       "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|соңғы келгеннен кейінгі}}",
        "enhancedrc-history": "Тарихы",
        "recentchanges": "Жуықтағы өзгерістер",
        "recentchanges-legend": "Жуықтағы өзгерістер баптаулары",
        "recentchanges-legend-heading": "'''Шартты белгілер:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (қ: [[Special:NewPages|бөлек бетте]])",
        "recentchanges-legend-plusminus": "(<em>±123</em>)",
-       "rcnotefrom": "Төменде <strong>$2</strong> кезінен бергі (<strong>$1</strong> өңдемеге дейін) өзгерістер көрсетіледі.",
+       "rcnotefrom": "Төменде <strong>$3, $4</strong> кезінен бергі (<strong>$1</strong> өңдемеге дейін) {{PLURAL:$5|өзгерістер|өзгерістер}} көрсетіледі.",
        "rclistfrom": "$2, $3 кезінен бергі жаңа өзгерістерді көрсет.",
        "rcshowhideminor": "Шағын өңдемелерді $1",
        "rcshowhideminor-show": "көрсету",
        "uploaderror": "Жүктеу қатесі",
        "upload-recreate-warning": "'''Ескету: Бұл атаумен файл жойылған немесе жылжытылған'''\n\nThe deletion and move log for this page are provided here for convenience:",
        "uploadtext": "Төмендегі пішінді файлдарды жүктеу үшін қолданыңыз.\nАлдында жүктелген файлдарды қарау не іздеу үшін [[Special:FileList|жүктелген файлдар тізіміне]] барыңыз. Сондай-ақ файлдардың жүктелуі [[Special:Log/upload|жүктелу журналына]], ал жойылған файлдар [[Special:Log/delete|жойылу журналына]] жазылады.\n\nФайлды мақалаға қосу үшін келесі тәсілдерді қолданыңыз:\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code></strong> файлдың толық нұсқасын орнату үшін;\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|сурет тақырыбы]]</nowiki></code></strong> 200px кішірейтілген файлды «файл тақырыбы» сипаттамасын қосып сол жаққа орналастыру;\n* <strong><code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code></strong> файл көрсетілуінсіз файлға тікелеу сілтеу үшін",
-       "upload-permitted": "Рұқсат етілген файл түрлері: $1.",
-       "upload-preferred": "ҰнамдÑ\8b Ñ\84айл Ñ\82Ò¯Ñ\80леÑ\80Ñ\96 $1.",
-       "upload-prohibited": "РұÒ\9bÑ\81аÑ\82 ÐµÑ\82Ñ\96лмеген Ñ\84айл Ñ\82Ò¯Ñ\80леÑ\80Ñ\96: $1.",
+       "upload-permitted": "Рұқсат етілген файл {{PLURAL:$2|түрі|түрлері}}: $1.",
+       "upload-preferred": "Ò\9aалаÑ\83лÑ\8b Ñ\84айл {{PLURAL:$2|Ñ\82Ò¯Ñ\80Ñ\96\82Ò¯Ñ\80леÑ\80Ñ\96}} $1.",
+       "upload-prohibited": "ТиÑ\8bм Ñ\81алÑ\8bнÒ\93ан Ñ\84айл {{PLURAL:$2|Ñ\82Ò¯Ñ\80Ñ\96\82Ò¯Ñ\80леÑ\80Ñ\96}}: $1.",
        "uploadlogpage": "Жүктеу журналы",
        "uploadlogpagetext": "Төменде ең соңғы жүктелген файлдар тізімі келтірілген.\nТағы көрнекі қарап шығу үшін [[Special:NewFiles|жаңа файлдар көрмесін]] қараңыз.",
        "filename": "Файл атауы",
        "illegalfilename": "«$1» файл атауында бет тақырыбы атында рұқсат берілмеген таңбалар бар.\nФайлды қайта атаңыз да бұны қотарып беруді қайта байқап көріңіз.",
        "filename-toolong": "Файл атауы 240 байттан жоғары болмауы керек",
        "badfilename": "Файлдың атауы «$1» деп өзгертілді.",
+       "filetype-mime-mismatch": "«.$1» файл кеңейтілімі MIME файл түріне ($2) сәйкес келмейді.",
        "filetype-badmime": "«$1» деген MIME түрі бар файлдарды қотарып беруге рұқсат етілмейді.",
+       "filetype-bad-ie-mime": "Бұл файлды жүктеу мүмкін емес, себебі оны Internet Explorer  «$1» ретінде анықтады, яғни рұқсат етілмейді және потенциялды қауіпті файл түрі.",
        "filetype-unwanted-type": "<strong>«.$1»</strong> — күтілмеген файл түрі. \nБелгілі {{PLURAL:$3|файл түрі|файл түрлері}}: $2.",
        "filetype-banned-type": "'''«.$1»''' — {{PLURAL:$4|рұқсатталмаған файл түрі|рұқсатталмаған файл түрлері}}. Рұқсатталған {{PLURAL:$3|файл түрі|файл түрлері}}: $2.",
        "filetype-missing": "Бұл файлдың («.jpg» сияқты) кеңейтімі жоқ.",
        "file-too-large": "Сіз жіберген файл тым үлкен",
        "filename-tooshort": "Файл атауы қысқа.",
        "filetype-banned": "Бұл файл түрі тыйым салынған.",
+       "verification-error": "Бұл файл файл тексерісінен өткен жоқ.",
+       "hookaborted": "Cіз жасамақ болған түрлендіру кеңейтілім арқылы тоқтатылды.",
        "illegal-filename": "Файл атауы рұқсат етілген.",
        "overwrite": "Бар файлдың үстінен жазу рұқсат етілмейді",
        "unknown-error": "Белгісіз қателік орын алды.",
+       "tmp-create-error": "Уақытша файл басталынбады.",
+       "tmp-write-error": "Уақытша файлды жазуда қате бар.",
        "large-file": "Бұл файлдың $1 өлшемінен аспауы ұсынылады;\nбұл файл өлшемі — $2.",
        "largefileserver": "Осы файлдың өлшемі сервердің қалауынан асып кеткен.",
        "emptyfile": "Қотарып берілген файлыңыз бос сияқты. Файл атауы қате жазылған мүмкін.\nБұл файлды қотарып беруі нақты талабыңыз екенін тексеріп шығыңыз.",
        "windows-nonascii-filename": "Бұл уики файл атауларында арнайы таңбаларды қолдамайды.",
        "fileexists": "Осылай аталған файл әлдеқашан бар, егер бұны өзгертуге сеніміңіз жоқ болса <strong>[[:$1]]</strong> дегенді тексеріп шығыңыз.\n[[$1|thumb]]",
        "filepageexists": "Бұл файлдың сипаттама беті әлдеқашан <strong>[[:$1]]</strong> дегенде жасалған, бірақ қазіргі уақытта осылай аталған еш файл жоқ.\nЕнгізген түйіндемеңіз сипаттамасы бетінде көрсетілмейді.\nТүйіндемеңіз осы арада көрсетілу үшін бұны қолмен өңдеуіңіз керек.\n[[$1|thumb]]",
-       "fileexists-extension": "Ұқсас атауы бар файл табылды: [[$2|thumb]]\n* Қотарып берілетін файл атауы: <strong>[[:$1]]</strong>\n* Бар болған файл атауы: <strong>[[:$2]]</strong>\nӨзге атауды таңдаңыз.",
+       "fileexists-extension": "Ұқсас атауы бар файл табылды: [[$2|thumb]]\n* Жүктелетін файл атауы: <strong>[[:$1]]</strong>\n* Бар болған файл атауы: <strong>[[:$2]]</strong>\nСіз, бәлкім, одан ерекше атауын пайдалануды қалайсыз ба?",
        "fileexists-thumbnail-yes": "Осы файл көлемі кішірейтілген көшірмесі <em>(нобай)</em> сияқты. \n[[$1|thumb]]\nӨтініш, <strong>[[:$1]]</strong> деген файлды тексеріңіз.\nЕгер көрсетілген файл дәл сіз жүктейін деп жатқан файл болса, онда оның кішірейтілген көшірмесін қайта жүктеудің қажеті жоқ.",
        "file-thumbnail-no": "Файл атауы <strong>$1</strong> дегенмен басталады.\nОл өлшемі кішірейтілген сурет <em>(нобай)</em> сияқты.\nЕгер сізде бұл суреттің толық ажыратылымды нұсқасы болса оны жүктеңіз, әйтпесе файл атауын өзгертіңіз.",
        "fileexists-forbidden": "Осылай аталған файл әлдеқашан бар және үстінен жазылмайды.\nЕгер сіз өзіңіздің файлыңызды жүктегіңіз келсе кері қайтыңыз да жаңа атау қолданыңыз. \n[[File:$1|thumb|center|$1]]",
        "fileexists-shared-forbidden": "Осылай аталған файл ортаққорда әлдеқашан бар.\nЕгер сіз файлыңызды жүктегіңіз келсе кері қайтыңыз және жаңа атау қолданыңыз. \n[[File:$1|thumb|center|$1]]",
        "file-exists-duplicate": "Бұл файл келесі {{PLURAL:$1|файлдың|файлдарының}} телнұсқасы:",
+       "file-deleted-duplicate": "Осыған сәйкес ([[:$1]]) файлы бұрын жойылған.\nОны қайта жүктеудің алдында осы файлдың жойылу тарихын тексеруіңіз керек.",
+       "file-deleted-duplicate-notitle": "Осыған сәйкес файл бұрын жойылған және атауы жасырылған. Сіз бұны қайта жүктеуден бұрын, жасырылған файл дерегін қарай алатын біреуден цитуацияны қарауын сұрауыңыз керек.",
        "uploadwarning": "Жүктеу жөнінде құлақтандыру",
+       "uploadwarning-text": "Төмендегі Файл сипаттамасын түрлендіруіңізді сұраймыз және қайтадан көріңіз.",
        "savefile": "Файлды сақтау",
        "uploaddisabled": "Жүктеу өшірілген",
        "copyuploaddisabled": "URL арқылы жүктеу өшірілген.",
        "uploaddisabledtext": "Файл жүктеу өшірілген.",
+       "php-uploaddisabledtext": "PHP-де файл жүктеулері өшірілген.\nfile_uploads баптауын тексеріңіз.",
        "uploadscripted": "Бұл файлда веб шолғышты қателікпен талдатқызатын HTML не әмір коды бар.",
+       "uploadscriptednamespace": "Бұл SVG файл дұрыс емес «$1» есім кеңістігінен тұрады.",
+       "uploadinvalidxml": "Жүктелген файлдағы XML талданбайды.",
        "uploadvirus": "Бұл файлда вирус бар! Егжей-тегжейлері: $1",
+       "uploadjava": "ZIP файл  Java . түріндегі файлдан тұрады.\nJava файлдарды жүктеу рұқсат етілмейді, себебі құпиялық шектеулерге айналуына себеп болады.",
        "upload-source": "Қайнар файл",
        "sourcefilename": "Қайнар файл атауы:",
        "sourceurl": "Қайнардың URL-мекенжайы:",
        "upload-success-subj": "Сәтті жүктелді",
        "upload-success-msg": "[$2] дегеннен сәтті жүктедіңіз. Оны мынадан ала аласыз [[:{{ns:file}}:$1]]",
        "upload-failure-subj": "Жүктеу мәселесі",
+       "upload-failure-msg": "Жүктеу пішініңізде мәселе бар [$2]:\n\n$1",
        "upload-warning-subj": "Жүктеу кезіндегі ескерту",
+       "upload-warning-msg": "Жүктеу пішініңізде мәселе бар [$2]. Бұл мәселені дұрыстау үшін [[Special:Upload/stash/$1|жүктеу пішініне]] қайтуыңыз керек.",
        "upload-proto-error": "Бұрыс хаттама",
        "upload-proto-error-text": "Шеттен жүктеу үшін URL жайлары <code>http://</code> немесе <code>ftp://</code> дегендерден басталу жөн.",
        "upload-file-error": "Ішкі қате",
        "upload-misc-error": "Жүктеу кезіндегі белгісіз қате",
        "upload-misc-error-text": "Жүктеу кезінде белгісіз қатеге ұшырасты.\nURL жарамды және қатынаулы екенін тексеріп шығыңыз да қайта байқап көріңіз.\nЕгер бұл мәселе әлде де қалса, [[Special:ListUsers/sysop|жүйе әкімшімен]] қатынасыңыз.",
        "upload-too-many-redirects": "URL шектен тыс жылжытуларға ие",
+       "upload-http-error": "HTTP қатесі кездесті: $1",
+       "upload-copy-upload-invalid-domain": "Бұл домейннен еселеп жүктеу қолжетімді емес.",
+       "backend-fail-stream": "«$1» файлы ақпады.",
+       "backend-fail-backup": "«$1» файлының сақтық есесі жасалмады.",
        "backend-fail-notexists": "$1 файлы бар емес.",
+       "backend-fail-hashes": "Салыстырма үшін хейш файл алынбады.",
+       "backend-fail-notsame": "«$1» деген атаумен сәйкес емес файл бұрыннан бар.",
+       "backend-fail-invalidpath": "«$1» дұрыс емес сақтау жолы.",
        "backend-fail-delete": "«$1» файлы жойылмайды.",
        "backend-fail-describe": "\"$1\" файлы үшін метадерегі өзгертілмейді.",
-       "backend-fail-alreadyexists": "\"$1\" файлы бұрыннан бар.",
+       "backend-fail-alreadyexists": "«$1» файлы бұрыннан бар.",
+       "backend-fail-store": "«$1» файлы «$2» сақтау жолына сақталмайды.",
        "backend-fail-copy": "«$1» файлы «$2» файлына көшірілмеді.",
        "backend-fail-move": "«$1» файл атауы «$2» атауына өзгертілмеді.",
        "backend-fail-opentemp": "Сырттан алынатын файл ашылмайды",
+       "backend-fail-writetemp": "Уақытша файл жазылмайды.",
+       "backend-fail-closetemp": "Уақытша файл жабылмайды.",
        "backend-fail-read": "«$1» файлы оқылмайды.",
        "backend-fail-create": "«$1» файлы жазылмайды.",
        "backend-fail-maxsize": "\"$1\" файлы жазылмайды, себебі {{PLURAL:$2|1 байттан|$2 байттан}} үлкенірек.",
+       "backend-fail-readonly": "«$1» сақтау сервері қазіргі уақытта «тек оқу» режимінде орналасқан. Себебі: «<em>$2</em>»",
+       "backend-fail-synced": "«$1» файлы ішкі сақтау серверінде келісімсіз жағдайда орналасқан",
+       "backend-fail-connect": "«$1» сақтау серверіне байланыспады.",
+       "backend-fail-internal": "«$1» сақтау серверінде белгісіз қате кездесті.",
+       "backend-fail-contenttype": "«$1» сақтау жолында файлдың мазмұн түрі анықталмайды.",
+       "backend-fail-batchsize": "Сақтау серверіне $1 файл пакеті берілген\n{{PLURAL:$1|операциясы|операциясы}}; шегі $2\n{{PLURAL:$2|операциясы|операциясы}}.",
+       "backend-fail-usable": "Жеткіліксіз рұқсаттарға немесе каталогтар/нысан себебінен «$1» файлын оқи алмайсыз немесе жаза алмайсыз.",
+       "filejournal-fail-dbconnect": "«$1» сақтау сервері үшін журнал дерекқоры байланыспады.",
+       "filejournal-fail-dbquery": "«$1» сақтау сервері үшін журнал дерекқоры жаңартылмады.",
+       "lockmanager-notlocked": "«$1» бекітілмегендіктен бекітілуі ашылмайды.",
+       "lockmanager-fail-closelock": "«$1» үшін файл бекітуі жабылмады.",
+       "lockmanager-fail-deletelock": "«$1» үшін файл бекітуі жойылмайды.",
+       "lockmanager-fail-acquirelock": "«$1» үшін құлпын алу мүмкін болмады.",
+       "lockmanager-fail-openlock": "«$1» үшін құлпын ашу мүмкін болмады.",
+       "lockmanager-fail-releaselock": "«$1» үшін құлпынан босату мүмкін болмады.",
+       "lockmanager-fail-db-bucket": "$1 сегмент жеткілікті бекітілген дерекқор құлыптарына байланысу мүмкін болмады.",
+       "lockmanager-fail-db-release": "$1 дерекқорындағы құлып босатылмайды.",
+       "lockmanager-fail-svr-acquire": "$1 серверіндегі құлыптар игерілмеді.",
+       "lockmanager-fail-svr-release": "$1 серверіндегі құлыптар босатылмады.",
+       "zip-file-open-error": "ZIP тексерулерді ашу барысында қате байқалды.",
+       "zip-wrong-format": "Көрсетілген файл ZIP файл емес болатын.",
+       "zip-bad": "Файл бүлінген немесе басқа жағдайда оқылмайтын ZIP файл.\nБұл қауіпсіздік үшін дұрысымен тексерілмейді.",
+       "zip-unsupported": "Бұл файл  МедиаУики қозғалтқышы қолдамайтын ZIP мүмкіндіктерін қолданатын ZIP файл.\nБұл қауісіздік үшін дұрыс тексерілмейді.",
+       "uploadstash": "Жасырын жүктеу",
+       "uploadstash-summary": "Бұл бет жүктелген файлдарға немесе жүктелу үстіндегі файлдарға қол жеткізуді қамтамасыз етеді, бірақ уикиде жарияланбайды. Бұл файлдар жүктеген қатысушыдан басқа ешкімге көрінбейді.",
+       "uploadstash-clear": "Жасырын файлдарды тазарту",
+       "uploadstash-nofiles": "Сізде жасырын файл жоқ.",
+       "uploadstash-badtoken": "Бұл әрекетті орындау сәтсіз болды, мүмкін іс шаралардың уақыты өтіп кеткен. Қайта байқап көріңіз.",
+       "uploadstash-errclear": "Файлдарды тазарту сәтсіз болды.",
+       "uploadstash-refresh": "Файлдардың тізімін жаңарту",
+       "invalid-chunk-offset": "Жарамсыз ауысым фрагментті",
        "img-auth-accessdenied": "Қатынау шектелген",
+       "img-auth-nopathinfo": "PATH_INFO жоқ.\nБұл ақпаратты жөнелтуге сіздің серверіңіз келмейді.\nБұл мүмкін GGL-ге негізделген және img_auth қолдамайды. \nМына бетті қараңыз https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
+       "img-auth-notindir": "Түзетілген жүктеу каталогында сіз қалаған жол жоқ.",
+       "img-auth-badtitle": "«$1» дегеннен жарамды атау құрай алмады.",
+       "img-auth-nologinnWL": "Сіз кірмегенсіз және «$1» ақтізімде жоқ.",
+       "img-auth-nofile": "«$1» файлы жоқ.",
+       "img-auth-isdir": "«$1» каталогына қатынауды байқап көрудесіз.\nТек файл қатынауы рұқсат етіледі.",
+       "img-auth-streaming": "«$1» ағуда.",
+       "img-auth-public": "img_auth.php жеке уикиден файлдарды шығару әрекеті жасалады. Бұл уики көпшілікке арналған деп бапталған.\nҚауіпсіздік мақсатында, img_auth.php тоқтатылды.",
+       "img-auth-noread": "Қатысушы «$1» оқу мүмкіндігі жоқ.",
        "http-invalid-url": "Жарамсыз URL: $1",
+       "http-invalid-scheme": "«$1» схемалы URL мекенжайлары қолдамайды.",
+       "http-request-error": "HTTP сұранысы белгісіз себептерден сәтсіз болды.",
        "http-read-error": "HTTP оқудағы қате.",
+       "http-timed-out": "HTTP сұранысының мерзімі бітті.",
+       "http-curl-error": "URL оқуындағы қателік: $1",
+       "http-bad-status": "HTTP сұранысы $1 $2 барысында мәселе болды.",
        "upload-curl-error6": "URL жетілмеді",
        "upload-curl-error6-text": "Келтірілген URL жетілмеді.\nURL дұрыс екендігін және торап істеп тұрғанын қос тексеріңіз.",
        "upload-curl-error28": "Жүктеу уақыты бітті",
        "nolicense": "Ештеңе таңдалмаған",
        "licenses-edit": "Лицензия талғауларын өңдеу",
        "license-nopreview": "(Қарап шығу жетімді емес)",
-       "upload_source_url": "(жарамды, баршаға қатынаулы URL)",
-       "upload_source_file": "(компьютеріңіздегі файл)",
+       "upload_source_url": "(сіздің таңдаған файл жарамды, баршаға қатынаулы URL)",
+       "upload_source_file": "(сіз таңдаған компьютеріңіздегі файл)",
        "listfiles-delete": "жою",
        "listfiles-summary": "Бұл арнайы бетте барлық жүктелген файлдар көрсетіледі.",
        "listfiles_search_for": "Медиа атауын іздеу:",
+       "listfiles-userdoesnotexist": "«$1» қатысушы аккаунты тіркелмеген.",
        "imgfile": "файл",
        "listfiles": "Файл тізімі",
        "listfiles_thumb": "Нобай",
        "filedelete-reason-otherlist": "Басқа себеп",
        "filedelete-reason-dropdown": "* Жоюдың жалпы себептері\n** Авторлық құқықтарын бұзу\n** Файл телнұсқасы",
        "filedelete-edit-reasonlist": "Жою себептерін өңдеу",
+       "filedelete-maintenance": "ФАйлдарды жою және қалпына келтіру техникалық жұмыстарға байланысты уақытша өшірілген.",
        "filedelete-maintenance-title": "Файл жойылмады",
        "mimesearch": "Файлды MIME түрімен іздеу",
-       "mimesearch-summary": "Бұл бетте файлдарды MIME түрімен сүзгілеуі қосылған.\nКірісі: мағлұмат_түрі/түр_тарауы, мысалы <code>image/jpeg</code>.",
+       "mimesearch-summary": "Бұл бетте файлдарды MIME түрімен сүзгілеуі қосылған.\nКірісі: мағлұмат_түрі/түр_тарауы не мағлұмат_түрі/*, мысалы <code>image/jpeg</code>.",
        "mimetype": "MIME түрі:",
        "download": "Түсіріп алу",
        "unwatchedpages": "Бақыланылмаған беттер",
        "listredirects": "Айдағыш бет тізімі",
+       "listduplicatedfiles": "Телнұсқалы файлдар тізімі",
+       "listduplicatedfiles-summary": "Бұл кейбір басқа файлдың ең соңғы нұсқалы файлдың ең соңғы телнұсқасы файлдардың тізімі. Тек жергілікті файлдар есептелінеді.",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]] файлының [[$3|{{PLURAL:$2|телнұсқасы|$2 телнұсқасы}}]] бар.",
        "unusedtemplates": "Пайдаланылмаған үлгілер",
        "unusedtemplatestext": "Бұл бет басқа бетке кіріcтірілмеген {{ns:template}} есім кеңістігіндегі барлық беттерді тізімдейді.\nҮлгілерді жоймас бұрын бұның өзге сілтемелерін тексеріп шығуын ұмытпаңыз.",
        "unusedtemplateswlh": "басқа сілтемелер",
        "randomincategory": "Санаттағы кездейсоқ бет",
        "randomincategory-invalidcategory": "\"$1\" жарамды санат аты емес.",
        "randomincategory-nopages": "Бұлар [[:Category:$1]] беттері мес.",
+       "randomincategory-category": "Санат:",
+       "randomincategory-legend": "Санаттағы кездейсоқ бет",
        "randomredirect": "Кездейсоқ айдағыш",
        "randomredirect-nopages": "Бұл есім аясында еш айдағыш жоқ \"$1\".",
        "statistics": "Санақ",
        "statistics-users-active-desc": "Соңғы {{PLURAL:$1|күнде|$1 күнде}} қандай да бір іс-әрекет жасаған қатысушылар",
        "pageswithprop": "Беттер бет сипатымен",
        "pageswithprop-legend": "Беттер бет сипатымен",
+       "pageswithprop-text": "Бұл бет ерекше бет сипатын қолданатын беттер тізімі.",
        "pageswithprop-prop": "Меншік атауы:",
        "pageswithprop-submit": "Өту",
+       "pageswithprop-prophidden-long": "ұзын мәнді мәтіндік сипат жасырылған ($1)",
+       "pageswithprop-prophidden-binary": "екілік сипат мәні жасырылған ($1)",
        "doubleredirects": "Екі мәрте айдағыштар",
-       "doubleredirectstext": "Ð\91ұл Ð±ÐµÑ\82Ñ\82е Ð±Ð°Ñ\81Ò\9bа Ð°Ð¹Ð´Ð°Ñ\82Ñ\83 Ð±ÐµÑ\82Ñ\82еÑ\80ге Ñ\81Ñ\96лÑ\82ейÑ\82Ñ\96н Ð±ÐµÑ\82Ñ\82еÑ\80 Ñ\82Ñ\96зÑ\96мделÑ\96недÑ\96. Ó\98Ñ\80бÑ\96Ñ\80 Ð¶Ð¾Ð»Ð°Ò\9bÑ\82а бірінші және екінші айдағышқа сілтемелер бар, сонымен бірге екінші айдағыш нысанасы бар, әдетте бұл бірінші айдағыш бағыттайтын «нақты» нысана бет атауы болуы керек.",
+       "doubleredirectstext": "Ð\91ұл Ð±ÐµÑ\82Ñ\82е Ð±Ð°Ñ\81Ò\9bа Ð°Ð¹Ð´Ð°Ñ\82Ñ\83 Ð±ÐµÑ\82Ñ\82еÑ\80ге Ñ\81Ñ\96лÑ\82ейÑ\82Ñ\96н Ð±ÐµÑ\82Ñ\82еÑ\80 Ñ\82Ñ\96зÑ\96мдейдÑ\96. Ó\98Ñ\80бÑ\96Ñ\80 Ò\9bаÑ\82аÑ\80да бірінші және екінші айдағышқа сілтемелер бар, сонымен бірге екінші айдағыш нысанасы бар, әдетте бұл бірінші айдағыш бағыттайтын «нақты» нысана бет атауы болуы керек.",
        "double-redirect-fixed-move": "[[$1]] жылжытылды.\nОл өздікті түрде жаңартылады және оған қазір [[$2]] дегенге бағытталады.",
+       "double-redirect-fixed-maintenance": "Техникалық қызмет көрсету жұмысында қос бағыттауды [[$1]] дегенді [[$2]] дегенге автоматты түрде түзету.",
+       "double-redirect-fixer": "Бағыттау түзеткіш",
        "brokenredirects": "Сынық айдағыштар",
        "brokenredirectstext": "Келесі айдағыштар жоқ беттерге сілтейді:",
        "brokenredirects-edit": "өңдеу",
        "unusedimages": "Пайдаланылмаған файлдар",
        "wantedcategories": "Басталмаған санаттар",
        "wantedpages": "Басталмаған беттер",
+       "wantedpages-summary": "Оларға тек бағыттап сілтейтін беттерді қоспағанда, өте көп сілтенген жоқ беттер тізімі. Оларға бағыттап жоқ беттерге сілтейтін тізім үшін келесі бетті қараңыз: [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-badtitle": "Нәтиже жиынындағы жарамсыз атау: $1",
        "wantedfiles": "Басталмаған файлдар",
+       "wantedfiletext-cat": "Келесі файлдар қолданылған бірақ жоқ. Бар болғанына қарамастан файлдар сыртқы қорларда тізімделген болуы мүмкін. Кез келген осындай жарамсыз боямалар <del>үстінен сызылып</del> белгіленеді. Сонымен қатар, бар емес файлдарды ендіру беттері [[:$1]] бетінде тізімделген.",
+       "wantedfiletext-cat-noforeign": "Келесі файлдар қолданылған бірақ жоқ. Қосымша, беттерге ендірілген файлдары жоқ, олар [[:$1]] дегенде тізімделген .",
+       "wantedfiletext-nocat": "Келесі файлдар қолданылған бірақ жоқ. Бар болғанына қарамастан файлдар сыртқы қорларда тізімделген болуы мүмкін. Кез келген осындай жарамсыз боямалар <del>үстінен сызылып</del> белгіленеді.",
+       "wantedfiletext-nocat-noforeign": "Келесі файлдар қолданылады, бірақ жоқ.",
        "wantedtemplates": "Басталмаған үлгілер",
        "mostlinked": "Ең көп сілтенген беттер",
        "mostlinkedcategories": "Ең көп сілтенген санаттар",
        "deadendpagestext": "Келесі беттер {{SITENAME}} жобасындағы басқа беттерге сілтемейді.",
        "protectedpages": "Қорғалған беттер",
        "protectedpages-indef": "Тек белгісіз қорғаулар",
+       "protectedpages-summary": "Бұл беттер тізімі қазіргі уақытта қорғалған бар беттер. Бастаудан қорғалған атаулар тізімі үшін [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]] дегенді қараңыз.",
        "protectedpages-cascade": "Тек баулы қорғаулар",
        "protectedpages-noredirect": "Бағыттағыштарды жасыру",
        "protectedpagesempty": "Ағымда мынадай параметрлермен ешбір бет қорғалмаған.",
+       "protectedpages-timestamp": "Уақыт белгісі",
        "protectedpages-page": "Бет",
        "protectedpages-expiry": "Біту мерзімі",
        "protectedpages-performer": "Қорғаған қатысушы",
        "protectedpages-unknown-timestamp": "Белгісіз",
        "protectedpages-unknown-performer": "Белгісіз қатысушы",
        "protectedtitles": "Қорғалған тақырып аттары",
+       "protectedtitles-summary": "Бұл бет бастаудан қорғалған атаулар тізімі. Қорғалған бар беттердің тізімі үшін [[{{#special:ProtectedPages}}|{{int:protectedpages}}]] дегенді қараңыз.",
        "protectedtitlesempty": "Бұл бапталымдармен ағымда еш тақырып аттары қорғалмаған.",
        "listusers": "Қатысушы тізімі",
        "listusers-editsonly": "Тек қатысушы өңдемелерін көрсету",
        "ancientpages": "Ең ескі беттер",
        "move": "Жылжыту",
        "movethispage": "Бұл бетті жылжыту",
-       "unusedimagestext": "<p>Аңғартпа: Ғаламтордағы басқа тораптар файлға тура URL арқылы сілтеуі мүмкін. Сондықтан, белсенді пайдалануына аңғармай, осы тізімде қалуы мүмкін.</p>",
+       "unusedimagestext": "Келесі файлдар бар, бірақ ешбір бетке ендірілмеген.\nЕсіңізде болсын басқа уеб сайттар файлға тура URL арқылы сілтеуі мүмкін және белсенді пайдалануына қарамастан, осында тізімделуі мүмкін.",
        "unusedcategoriestext": "Келесі санат беттері бар боп тұр, бірақ оған еш бет не санат кірмейді.",
        "notargettitle": "Нысана жоқ",
        "notargettext": "Осы жете орындалатын нысана бетті, не қатысушыны енгізбепсіз.",
        "pager-older-n": "{{PLURAL:$1|ескілеу 1|ескілеу $1}}",
        "suppress": "Шеттету",
        "querypage-disabled": "Бұл арнайы бет өнімділік себептері үшін өшірілген",
+       "apihelp": "API бойынша анықтама",
+       "apihelp-no-such-module": "«$1» модулі табылмады.",
        "booksources": "Кітап қайнарлары",
        "booksources-search-legend": "Кітап қайнарларын іздеу",
        "booksources-search": "Іздеу",
        "booksources-text": "Төменде жаңа және қолданған кітаптар сататын тораптарының сілтемелері тізімделген және ізделген кітаптар туралы қосымша ақпарат болуы мүмкін:",
+       "booksources-invalid-isbn": "Берілген ISBN жарамды болып көрінубеуі мүмкін; бастапқы қайнар көзінен еселеуде пайда болған қателерді тексеріңіз.",
        "specialloguserlabel": "Орындаушы:",
        "speciallogtitlelabel": "Нысана (атауы немесе қатысушы):",
        "log": "Журналдар",
        "logempty": "Журналда сәйкес даналар жоқ.",
        "log-title-wildcard": "Мына мәтіннен басталытын тақырып аттарын іздеу",
        "showhideselectedlogentries": "Таңдалған журнал енгізілімдерін көрсету/жасыру",
+       "log-edit-tags": "Таңдалған журнал жазбаларының өңдеу белгілері",
        "allpages": "Барлық беттер",
        "nextpage": "Келесі бетке ($1)",
        "prevpage": "Алдыңғы бетке ($1)",
        "allpages-bad-ns": "{{SITENAME}} жобасында «$1» есім кеңістігі жоқ.",
        "allpages-hide-redirects": "Айдатқыштарды жасыру",
        "cachedspecial-viewing-cached-ttl": "Сіз бұл беттің кештегі нұсқасын көріп тұрсыз, $1 дейінгі ескісі болуы мүмкін.",
+       "cachedspecial-viewing-cached-ts": "Сіз бұл беттің бүркемеленген нұқсасын көріп тұрсыз, онда шындап ағымдағы нұсқасына ерекшеленуі мүмкін.",
        "cachedspecial-refresh-now": "Ең соңғысын қарау",
        "categories": "Санаттар",
        "categoriespagetext": "Келесі {{PLURAL:$1|санат ішінде|санаттар ішінде}} беттер немесе медиа бар.\n[[Special:UnusedCategories|Пайдаланылмаған санаттарды]] мынадан қарай аласыз.\nТағы қараңыз [[Special:WantedCategories|басталмаған санаттар]].",
        "linksearch-pat": "Іздеу шарты:",
        "linksearch-ns": "Есім кеңістігі:",
        "linksearch-ok": "Іздеу",
-       "linksearch-text": "«*.wikipedia.org» атауына ұқсасты бәдел нышандарды қолдануға болады.",
+       "linksearch-text": "«*.wikipedia.org» атауына ұқсасты қойылмалы таңбаларды қолдануға болады.\nЖоғарғы деңгейлі домейн қажет етеді, мысалы «*.org.»<br /> \nҚолдайтын {{PLURAL:$2|протокол|протоколдар}}: </code>$1</code> (әдепкі http:// протокол анық көрсетілмеген болса).",
        "linksearch-line": "$2 дегеннен $1 сілтеген",
        "linksearch-error": "Бәдел нышандар тек сервер жайы атауының бастауында болуы мүмкін.",
        "listusersfrom": "Мына қатысушыдан бастап көрсету:",
        "listgrouprights-removegroup-self": "Өз тіркелгіңізді {{PLURAL:$2|топтан|топтардан}} алып тастау: $1",
        "listgrouprights-addgroup-self-all": "Өз тіркелгіңізге барлық топтарды қосу",
        "listgrouprights-removegroup-self-all": "Өз тіркелгіңізден барлық топтарды алып тастау",
+       "listgrouprights-namespaceprotection-header": "Есім кеңістігі шектелімдері",
        "listgrouprights-namespaceprotection-namespace": "Атау кеңістігі",
+       "listgrouprights-namespaceprotection-restrictedto": "Қатысушыға өңдеу үшін берілген құқық(тар)",
+       "trackingcategories": "Санаттарды қадағалау",
+       "trackingcategories-summary": "Бұл бет МедиаУики бағдарламалық жасақтамасынан автоматты түрде толтырылатын санаттарды есептеп тізеді. Олардың есімдерін {{ns:8}} есім кеңістігіндегі сәйкес жүйе хабарлары  арқылы өзгертуге болады.",
+       "trackingcategories-msg": "Санатты қадағалау",
        "trackingcategories-name": "Хабарлама атауы",
+       "trackingcategories-desc": "Санаттарды қосу шарттары",
+       "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> сияқты) кеңейткен соң үлкенірек болады.",
+       "expensive-parserfunction-category-desc": "Бұл бет тым көп (like <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> (<code><nowiki>__ЖАСЫРЫН САНАТ__</nowiki></code>) дегеннен тұрады, бұл беттегі санат сілтемелері жолағынан қалыпты көрсетілуіне тиым салады.",
        "trackingcategories-nodesc": "Сипаттамасы қолжетімді емес.",
        "trackingcategories-disabled": "Санат өшірілген",
        "mailnologin": "Еш мекенжай жөнелтілген жоқ",
        "noemailtitle": "Еш е-пошта мекенжайы жоқ",
        "noemailtext": "Бұл қатысушы жарамды е-пошта мекенжайын келтірмеген.",
        "nowikiemailtext": "Бұл қатысушы басқа қатысушылардан хат хабылдамауды таңдаған.",
+       "emailnotarget": "Хат алушы үшін тіркелмеген немесе дұрыс емес қатысушы есімі.",
+       "emailtarget": "Хат алушының қатысушы есімін енгізіңіз",
        "emailusername": "Қатысушы аты:",
        "emailusernamesubmit": "Жіберу",
        "email-legend": "Басқа {{SITENAME}} қатысушысына хат жіберу",
        "emailccsubject": "$1 дегенге хатыңыздың көшірмесі: $2",
        "emailsent": "Хат жөнелтілді",
        "emailsenttext": "Е-пошта хатыңыз жөнелтілді.",
+       "emailuserfooter": "Бұл электронды хатты {{SITENAME}} сайтындағы «{{int:emailpage}}» функцияцы арқылы $1 деген $2 дегенге жіберген.",
        "usermessage-summary": "Жүйе хабарламасы қалдырылуда.",
        "usermessage-editor": "Жүйе мессенжері",
        "watchlist": "Бақылау тізімі",
        "mywatchlist": "Бақылау тізімі",
        "watchlistfor2": "$1 ($2) бақылау тізімі",
        "nowatchlist": "Бақылау тізіміңізде еш дана жоқ",
-       "watchlistanontext": "Бақылау тізіміңіздегі даналарды қарау не өңдеу үшін $1.",
+       "watchlistanontext": "Бақылау тізіміңіздегі даналарды қарау не өңдеу үшін кіріңіз.",
        "watchnologin": "Кірмегенсіз",
        "addwatch": "Бақылау тізіміңізге қосу",
        "addedwatchtext": "«[[:$1]]» беті [[Special:Watchlist|бақылау тізіміңізге]] қосылды.\nБұл беттің және байланысты талқылау бетінің келешектегі өзгерістері сонда тізімделеді.",
        "watchlist-details": "Бақылау тізіміңізде {{PLURAL:$1|$1 бет|$1 бет}} бар (талқылау беттері жекелей саналмайды).",
        "wlheader-enotif": "Ескерту хат жіберуі қосылған.",
        "wlheader-showupdated": "Соңғы келіп-кетуіңізден бері өзгертілген беттер '''жуан''' қаріпімен көрсетіледі.",
-       "wlnote": "Төменде $3, $4 кезіне дейінгі соңғы {{PLURAL:$2|сағатта|'''$2''' сағатта}} болған, {{PLURAL:$1|жуықтағы өзгеріс|жуықтағы '''$1''' өзгеріс}} көрсетіледі.",
-       "wlshowlast": "Соңғы $1 сағаттағы, $2 күндегі,  болған өзгерісті көрсету",
+       "wlnote": "Төменде $3, $4 кезіне дейінгі соңғы {{PLURAL:$2|сағатта|<strong>$2</strong>  сағатта}} болған, {{PLURAL:$1|жуықтағы өзгеріс|жуықтағы <strong>$1</strong>  өзгеріс}} көрсетіледі.",
+       "wlshowlast": "Соңғы $1 сағаттағы, $2 күндегіні көрсету",
        "watchlist-options": "Бақылау тізімінің баптаулары",
        "watching": "Бақылауда…",
        "unwatching": "Бақыламауда…",
        "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{{canonicalurl:{{{{ns:mediawiki}}: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$Helppage",
        "created": "бастады",
        "changed": "өзгертті",
        "deletepage": "Бетті жою",
        "exbeforeblank": "тазарту алдындағы болған мағлұматы: $1",
        "delete-confirm": "«$1» дегенді жою",
        "delete-legend": "Жою",
-       "historywarning": "<strong>Ескету:</strong> Сіз жоймақшы болған бет тарихында шамамен $1 {{PLURAL:$1|түзетілуі|түзетілулері}} бар:",
+       "historywarning": "<strong>Ескету:</strong> Сіз жоймақшы болған бет тарихында  $1 {{PLURAL:$1|түзетілуі|түзетілуі}} бар:",
        "confirmdeletetext": "Бетті бүкіл тарихымен бірге жойғалы жатырсыз.\nМұны жасауға сенімді екеніңізді, салдары есепке алынғанын және әрекетіңіз [[{{MediaWiki:Policy-url}}|ережелерге]] лайықты болғанын тағы бір рет тексеріп шығуыңызды сұраймыз.",
        "actioncomplete": "Әрекет орындалды",
        "actionfailed": "Әрекет орындалмады",
        "delete-edit-reasonlist": "Жою себептерін өңдеу",
        "delete-toobig": "Бұл бетте үлкен түзету тарихы бар, $1 {{PLURAL:$1|түзетуден|түзетуден}} астам.\nБұндай беттердің жоюы {{SITENAME}} торабын әлдеқалай үзіп тастауына бөгет салу үшін тиымдалған.",
        "delete-warning-toobig": "Бұл бетте үлкен өңдеу тарихы бар, $1 {{PLURAL:$1|түзетуден|түзетуден}} астам.\nБұның жоюы {{SITENAME}} торабындағы дерекқор әрекеттерді үзіп тастауын мүмкін;\nбұны абайлап өткізіңіз.",
+       "deleteprotected": "Сіз бұл бетті жоя алмайсыз, себебі ол қорғалған.",
        "deleting-backlinks-warning": "'''Ескерту:''' Сіз жоймақшы болған бетке [[Special:WhatLinksHere/{{FULLPAGENAME}}|басқа беттерден]] сілтенген немесе [[Special:WhatLinksHere/{{FULLPAGENAME}}|басқа беттерге]] кірістірілген.",
        "rollback": "Өңдемелерді шегіндіру",
        "rollbacklink": "шегіндіру",
        "prot_1movedto2": "[[$1]] дегенді [[$2]] дегенге жылжытты",
        "protect-badnamespace-title": "Қорғалмайтын есім кеңістігі",
        "protect-badnamespace-text": "Бұл есім кеңістігіндегі беттер қорғалмайды.",
+       "protect-norestrictiontypes-text": "Шектелген түрлер қолжетімді емес болғандықтан бұл бет қорғалмайды.",
        "protect-norestrictiontypes-title": "Қорғалмайтын бет",
        "protect-legend": "Қорғауды құптау",
        "protectcomment": "Себебі:",
        "protect-othertime": "Басқа уақыт:",
        "protect-othertime-op": "басқа уақыт",
        "protect-existing-expiry": "Mерзімі бітпек: $3, $2",
+       "protect-existing-expiry-infinity": "Аяқталу мерзімі: шексіз",
        "protect-otherreason": "Басқа/қосымша себеп:",
        "protect-otherreason-op": "Басқа себеп",
        "protect-dropdown": "*Ортақ қорғау себеттер\n** Артық бұзақылық\n** Артық спамдау\n** Counter-productive edit warring\n** Жоғары байланысты бет",
        "undelete-bad-store-key": "$1 кезіндегі файл түзетуінің жоюы болдырмады: жоюдың алдынан файл жоқ болған.",
        "undelete-cleanup-error": "«$1» пайдаланылмаған мұрағатталған файл жою қатесі.",
        "undelete-missing-filearchive": "Мұрағатталған файл $1 нөмерлі ID-і қалпына келтіруі мүмкін емес, себебі ол дерекқорда жоқ.\nБұның жойылуы әлдақашан қалпына келтірілген болуы мүмкін.",
+       "undelete-error": "Беті қалпына келтіруде қате шықты",
        "undelete-error-short": "Файл жоюын болдырмау қатесі: $1",
        "undelete-error-long": "Файл жоюын болдырмау кезінде мына қателер кездесті:\n\n$1",
+       "undelete-show-file-confirm": "$2 $3 кезіндегі «<nowiki>$1</nowiki>»жойылған файл нұсқасын қарағыңыз келе ме?",
        "undelete-show-file-submit": "Иә",
        "namespace": "Есім кеңістігі:",
        "invert": "Таңдалғанды жасыру",
        "tooltip-invert": "Бұл белгіні қойсаңыз таңдалған есім кеңістігіндегі беттердегі өзгерістерді жасырады (және қатысты есем кеңістігі тексеріледі)",
+       "tooltip-whatlinkshere-invert": "Бұл белгіні қойсаңыз таңдалған есім кеңістігіндегі беттердегі сілтемелерді жасырады.",
        "namespace_association": "Қатысты есім аясы",
        "tooltip-namespace_association": "Бұл белгіні қойсаңыз кейде таңдалған есім кеңістігіне қатысты талқылау немесе бастауыш есім кеңістігіндегі өзгерістер қосылып көрсетіледі",
        "blanknamespace": "Негізгі беттерден",
        "sp-contributions-newbies-sub": "Жаңа тіркелгендер үшін",
        "sp-contributions-newbies-title": "Жаңа тіркелген қатысушылар үлесі",
        "sp-contributions-blocklog": "бұғатталу журналы",
+       "sp-contributions-suppresslog": "жасырылған қатысушы үлестері",
        "sp-contributions-deleted": "жойылған үлесі",
        "sp-contributions-uploads": "жүктеулері",
        "sp-contributions-logs": "журналдары",
        "autoblockid": "#$1 өздікбұғаттауы",
        "block": "Қатысушыны бұғаттау",
        "unblock": "Қатысушыны бұғаттауынан босату",
-       "blockip": "Қатысушыны бұғаттау",
+       "blockip": "{{GENDER:$1|Қатысушыны}} бұғаттау",
        "blockip-legend": "Қатысушыны бұғаттау",
        "blockiptext": "Төмендегі форманы жазу рұқсатын белгілі IP мекенжайынан не қатысушы есімінен бұғаттау үшін қолданыңыз.\nБұны тек бұзақылықты болдырмау үшін және де [[{{MediaWiki:Policy-url}}|ережелер]] бойынша атқаруыңыз кажет.\nТөменге тиісті себебін көрсетіңіз (мысалы дәлелге бұзақылықпен өзгертілген беттерді келтіріңіз).",
        "ipaddressorusername": "IP-мекенжайы немесе қатысушы аты:",
        "ipbhidename": "Қатысушы атын өңдемелерден және тізімдерден жасыру",
        "ipbwatchuser": "Бұл қатысушының жеке және талқылау беттерін бақылау",
        "ipb-disableusertalk": "Бұл қатысушыны бұғатталған кезде өзінің талқылау бетінін өңдеуіне  кедергі жасау",
+       "ipb-change-block": "Осы параметрлермен қатысушыны қайта бұғаттау",
        "ipb-confirm": "Бұғаттауды құптау",
        "badipaddress": "IP мекенжайы жарамсыз.",
        "blockipsuccesssub": "Бұғатталды",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] деген бұғатталған.<br />\nБұғаттарды шолып шығу үшін [[Special:BlockList|бұғаттау тізімін]] қараңыз.",
        "ipb-blockingself": "Сіз өзіңізді бұғаттамақшысыз. Бұны істегіңіз келгеніне сенімдісіз бе?",
+       "ipb-confirmhideuser": "Сіз қатысушыны бұғаттауда «қатысушыны жасыру» параметрін қосқасыз. Бұл барлық тізімдерден және журнал жазбаларынан қатысушы есімін жасырады. Сіз шынымен бұлай жасауды қалайсыз ба?",
+       "ipb-confirmaction": "Егер сіз шынымен оны істеуді қаласаңыз, төмендегі жолақтан «{{int:ipb-confirm}}» дегенді белгілеңіз.",
        "ipb-edit-dropdown": "Бұғаттау себептерін өңдеу",
        "ipb-unblock-addr": "$1 дегенді бұғаттауынан босату",
        "ipb-unblock": "Қатысушы атын немесе IP мекенжайын бұғаттамау",
        "unblocked": "[[User:$1|$1]] бұғаттауы өшірілді",
        "unblocked-range": "$1  бұғаттауы өшірілді",
        "unblocked-id": "$1 бұғаттауы аласталды.",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] бұғатынан босатылды.",
        "blocklist": "Бұғатталған қатысушылар",
        "ipblocklist": "Бұғатталған қатысушылар",
        "ipblocklist-legend": "Бұғатталған қатысушыны табу",
        "range_block_disabled": "Ауқым бұғаттауларын жасау әкімшілік мүмкіндігі өшірілген.",
        "ipb_expiry_invalid": "Бітетін уақыты жарамсыз.",
        "ipb_expiry_temp": "Жасырылған қатысушы атын бұғаттауы мәңгі болуы жөн.",
+       "ipb_hide_invalid": "Бұл аккаунт жасырылмайды; ол {{PLURAL:$1|бір өңдемеден|$1 өңдемеден}} көп жасаған.",
        "ipb_already_blocked": "«$1» әлдеқашан бұғатталған",
        "ipb-needreblock": "$1 әлдеқашан бұғатталған. Бұғаттау параметрлерін өзгертесіз бе?",
        "ipb-otherblocks-header": "Басқа {{PLURAL:$1|бұғаттау|бұғаттаулар}}",
+       "unblock-hideuser": "Қатысушы есімі жасырылған себепті бұл қатысушыны бұғаттай алмайсыз.",
        "ipb_cant_unblock": "Қател: Бұғаттау $1 нөмірлі ID-і табылмады. Оның бұғаттауы әлдақашан өшірілген болуы мүмкін.",
        "ipb_blocked_as_range": "Қателік: IP $1 тікелей бұғатталмаған және бұғаттауы өшірілмейді.\nБірақ, бұл бұғаттауы өшірілуі мүмкін $2 ауқымы бөлігі боп бұғатталған.",
        "ip_range_invalid": "IP мекенжай ауқымы жарамсыз.",
+       "ip_range_toolarge": "/$1 бұғаттаудан көп бұғаттау рұқсат етілмеген.",
        "proxyblocker": "Прокси серверлерді бұғаттауыш",
        "proxyblockreason": "IP мекенжайыңыз ашық прокси серверге жататындықтан бұғатталған.\nИнтернет қызметін жабдықтаушыңызбен, не техникалық қолдау қызметімен қатынасыңыз, және оларға осы оте күрделі қауыпсіздік шатақ туралы ақпарат беріңіз.",
        "sorbsreason": "IP мекенжайыңыз {{SITENAME}} торабында қолданылған DNSBL қара тізіміндегі ашық прокси-сервер деп табылады.",
        "sorbs_create_account_reason": "IP мекенжайыңыз {{SITENAME}} торабында қолданылған DNSBL қара тізіміндегі ашық прокси-сервер деп табылады.\nЖаңа тіркелгі жасай алмайсыз.",
+       "xffblockreason": "X-Forwarded-For тақырып атынан IP мекенжай табылды, сізге тиесілі немесе сіз қолданған прокси сервер бұғатталған. Бастапқы бұғаттау себебі келесідей болған: $1",
+       "cant-see-hidden-user": "Сіз бұғаттамақшы болған қатысушы бұрыннан бұғатталған және жасырылған.\nСізде қатысушыны жасыру құқығы болмағандықтан, қатысушы бұғаттауын көре алмайсыз немесе өңдей алмайсыз.",
        "ipbblocked": "Басқа қатысушыларды бұғаттай не бұғаттаудан шығара алмайсыз, себебі сіз өзіңізді бұғаттағансыз.",
        "ipbnounblockself": "Өзіңіздің бұғаттауыңызды алып тастау рұқсат етілмеген",
        "lockdb": "Дерекқорды құлыптау",
        "unlockdbsuccesstext": "Құлыпталған дерекқор сәтті ашылды.",
        "lockfilenotwritable": "Дерекқор құлыптау файлы жазылмайды.\nДерекқорды құлыптау не ашу үшін, веб-сервер файлға жазу рұқсаты болу керек.",
        "databasenotlocked": "Дерекқор құлыпталған жоқ.",
+       "lockedbyandtime": "($2  $3 кезінде {{GENDER:$1|$1}} есімді қатысушы)",
        "move-page": "«$1» дегенді жылжыту",
        "move-page-legend": "Бетті жылжыту",
        "movepagetext": "Бетті бүкіл тарихымен қоса жаңа атауға жылжытқалы жатырсыз. Беттің бұрынғы атауы жаңа бетке айдағыш сілтеме ретінде қалады. Қаласаңыз, бұрынғы атауды мегзейтін сілтемелердің автоматты түрде жаңартылуын таңдай аласыз. Бұны таңдамаған жағдайда, [[Special:DoubleRedirects|екі мәрте айдағыш]] не [[Special:BrokenRedirects|сынық айдағыш]] сілтемелер қалып қоймауына көз жеткізіңіз. Жылжытудан кейін әр сілтеме өзіне тиісті бетке мегзейтініне жауапты боласыз. Егер жылжытайын деп жатқан жаңа атау басқа бетке әлдеқашан берілген болса, жылжыту <strong>орындалмайды</strong>. Бұл шара әлдеқашан бар беттің қайта жазылуынан сақтайды. Алайда, егер бет - бос бет, не өткен тарихы жоқ [[Special:ListRedirects|айдағыш бет]] болса, жылжыту орындалады. Бұл жаңылыс жылжытылған бетті бұрынғы атауына қайтаруды мүмкін ету үшін жасалған. </strong>Ескерту!</strong> Бұл көп қаралатын бет үшін қатаң және күтпеген өзгеріс болуы мүмкін; ілгері басудан бұрын әрекетіңіздің салдарын есепке алуыңызды сұраймыз.",
-       "movepagetext-noredirectfixer": "Бетті бүкіл тарихымен қоса жаңа атауға жылжытқалы жатырсыз. Беттің бұрынғы атауы жаңа бетке айдағыш сілтеме ретінде қалады. [[Special:DoubleRedirects|Екі мәрте айдағыш]] не [[Special:BrokenRedirects|сынық айдағыш]] сілтемелер қалып қоймауына көз жеткізіңіз. Жылжытудан кейін әр сілтеме өзіне тиісті бетке мегзейтініне жауапты боласыз. Егер жылжытайын деп жатқан жаңа атау басқа бетке әлдеқашан берілген болса, жылжыту \"'орындалмайды\"'. Бұл шара әлдеқашаннан бар, беттің қайта жазылуынан сақтайды. Алайда, егер бет - бос бет, не өткен тарихы жоқ [[Special:ListRedirects|айдағыш бет]] болса, жылжыту орындалады. Бұл жаңылыс жылжытылған бетті бұрынғы атауына қайтаруды мүмкіндік беру үшін жасалған. \"'Ескерту!\"' Бұл көп қаралатын бетке тиісті өзгеріс болуы мүмкін; ілгері басудан бұрын әрекетіңіздің салдарын есепке алуыңызды сұраймыз.",
+       "movepagetext-noredirectfixer": "Бетті бүкіл тарихымен қоса жаңа атауға жылжытқалы жатырсыз. \nБеттің бұрынғы атауы жаңа бетке айдағыш сілтеме ретінде қалады. \n[[Special:DoubleRedirects|Екі мәрте айдағыш]] не [[Special:BrokenRedirects|сынық айдағыш]] сілтемелер қалып қоймауына көз жеткізіңіз. Жылжытудан кейін әр сілтеме өзіне тиісті бетке сілтейтініне жауапты боласыз.\n\nЕгер жылжытайын деп жатқан жаңа атау басқа бетке әлдеқашан берілген болса, жылжыту <strong>орындалмайды</strong>. Бұл шара әлдеқашаннан бар, беттің қайта жазылуынан сақтайды. Алайда, егер бет бос бет, не өткен тарихы жоқ айдағыш бет болса, жылжыту орындалады. Бұл жаңылыс жылжытылған бетті бұрынғы атауына қайтаруға мүмкіндік беру үшін жасалған.\n\n<strong>Ескерту!</strong> Бұл көп қаралатын бетке тиісті өзгеріс болуы мүмкін; ілгері басудан бұрын әрекетіңіздің салдарын есепке алуыңызды сұраймыз.",
        "movepagetalktext": "Келесі жағдай орын алса, қатысты талқылау беті '''жылжытылмайды''':\n*жаңа атаумен аталатын беттің талқылау беті әлдеқашан бар болған кезде (бұл жағдайда талқылауын қолмен көшіруге болады, бірақ түйіндемесіне қай беттен көшірілгендігін міндетті түрде жазыңыз)\n*төмендегі қорапшадан құсбелгі алынып тасталғанда.\n\nАл мақаланың атауын өзгертем деп мағлұматын қолмен көшіруге болмайды, себебі беттің түзету тарихын өшіреді.",
        "movearticle": "Бетті жылжыту:",
        "moveuserpage-warning": "<strong>Ескерту:</strong> Сіз қатысушы бетін жылжытпақшысыз. Назар аударыңыз, қатысушы беті ғана жылжытылуы мүмкін және қатысушы аты <em>өзгертілмейді</em>.",
        "immobile-target-namespace-iw": "Бетті жылжытуы үшін интеруики сілтемесі жарамды нысана емес.",
        "immobile-source-page": "Бұл бет жылжытылмайды.",
        "immobile-target-page": "Бұл тағайындалған атауға жылжытылмайды",
+       "bad-target-model": "$1 дегенді $2 дегенге түрлендіру мүмкін емес: әртүрлі контент моделін қолданатын тағайындалған орын.",
        "imagenocrossnamespace": "Файл емес есім кеңістігіне файл жылжытылмайды",
        "nonfile-cannot-move-to-file": "Файл емес есім кеңістігінен файл есім кеңістігіне жылжытылмайды",
        "imagetypemismatch": "Файлдың жаңа кеңейтімі бұның түріне сәйкес емес",
        "imageinvalidfilename": "Файл атауы жарамсыз",
+       "fix-double-redirects": "Кез келген бағыттауларды негізгі атауына меңзеу",
        "move-leave-redirect": "Ескі бетте айдату сілтемесін қалдыру",
        "protectedpagemovewarning": "<strong>Ескерту:</strong> Бұл бет қорғалғандықтан бұны тек әкімшілер ғана атауын өзгерте алады. \nТөменде ең соңғы журнал жазбасы көрсетілген:",
        "semiprotectedpagemovewarning": "'''Ескерту:''' Бұл бет жылжытудан қорғалған оны тек тіркелген қатысушылар ғана жылжытыта алады.\nТөменде ең соңғы журнал енгізілімі көрсетілген:",
        "move-over-sharedrepo": "== Файл бар ==\n[[:$1]] файлы Ортаққорда бар. Бұл атауға файлды жылжытқанда Ортаққордағы файлдың үстінен жазылады.",
        "file-exists-sharedrepo": "Таңдалған файл атауы әлдеқашан ортаққорда пайдаланылады. \nБасқа атау таңдаңыз.",
        "export": "Беттерді сыртқа беру",
-       "exporttext": "XML Ð¿Ñ\96Ñ\88Ñ\96мÑ\96не Ò\9bапÑ\82алÒ\93ан Ð±Ó©Ð»ÐµÐº Ð±ÐµÑ\82 Ð½Ðµ Ð±ÐµÑ\82Ñ\82еÑ\80 Ð±Ñ\83маÑ\81Ñ\8b Ð¼Ó\99Ñ\82Ñ\96нÑ\96Ò£ Ð¶Ó\99не Ó©Ò£Ð´ÐµÑ\83 Ñ\82аÑ\80иÑ\85Ñ\8bн Ñ\81Ñ\8bÑ\80Ñ\82Ò\9bа Ð±ÐµÑ\80е Ð°Ð»Ð°Ñ\81Ñ\8bз.\nMediaWiki Ð¶Ò¯Ð¹ÐµÑ\81Ñ\96нÑ\96Ò£ [[{{#special:Import}}|Ñ\81Ñ\8bÑ\80Ñ\82Ñ\82ан Ð°Ð»Ñ\83 Ð±ÐµÑ\82Ñ\96н]] Ð¿Ð°Ð¹Ð´Ð°Ð»Ð°Ð½Ñ\8bп, Ð±Ò±Ð½Ñ\8b Ó©Ð·Ð³Ðµ Ñ\83икиге Ð°Ð»Ñ\83Ò\93а Ð±Ð¾Ð»Ð°Ð´Ñ\8b.\n\nÐ\91еÑ\82Ñ\82еÑ\80дÑ\96 Ñ\81Ñ\8bÑ\80Ñ\82Ò\9bа Ð±ÐµÑ\80Ñ\83 Ò¯Ñ\88Ñ\96н, Ñ\82аÒ\9bÑ\8bÑ\80Ñ\8bп Ð°Ñ\82Ñ\82аÑ\80Ñ\8bн Ñ\82өмендегÑ\96 Ð¼Ó\99Ñ\82Ñ\96н Ð¶Ð¾Ð»Ð°Ò\93Ñ\8bна ÐµÐ½Ð³Ñ\96зÑ\96Ò£Ñ\96з (жол Ñ\81айÑ\8bн Ð±Ñ\96Ñ\80 Ñ\82аÒ\9bÑ\8bÑ\80Ñ\8bп Ð°Ñ\82Ñ\8b), Ð¶Ó\99не Ð´Ðµ Ð±Ó©Ð»ÐµÐºÑ\82еңÑ\96з: Ð½Ðµ Ð°Ò\93Ñ\8bмдÑ\8bÒ\9b Ð½Ò±Ñ\81Ò\9bаÑ\81Ñ\8bн, Ð±Ð°Ñ\80лÑ\8bÒ\9b ÐµÑ\81кÑ\96 Ð½Ò±Ñ\81Ò\9bалаÑ\80Ñ\8b Ð¼ÐµÐ½ Ð¶Ó\99не Ñ\82аÑ\80иÑ\85Ñ\8b Ð¶Ð¾Ð»Ð´Ð°Ñ\80Ñ\8b Ð¼ÐµÐ½ Ð±Ñ\96Ñ\80ге, Ð½ÐµÐ¼ÐµÑ\81е Ð´Ó\99л Ð°Ò\93Ñ\8bмдÑ\8bÒ\9b Ð½Ò±Ñ\81Ò\9bаÑ\81Ñ\8bн, Ñ\81оңÒ\93Ñ\8b Ó©Ò£Ð´ÐµÐ¼ÐµÑ\83 Ñ\82Ñ\83Ñ\80алÑ\8b Ð°Ò\9bпаÑ\80аÑ\82Ñ\8b Ð¼ÐµÐ½ Ð±Ñ\96Ñ\80ге.\n\nСоңÒ\93Ñ\8b Ð¶Ð°Ò\93дайда Ñ\81Ñ\96лÑ\82еменÑ\96 Ð´Ðµ, Ð¼Ñ\8bÑ\81алÑ\8b Â«{{{{ns:mediawiki}}:Mainpage}}» Ð±ÐµÑ\82Ñ\96 Ò¯Ñ\88Ñ\96н [[{{#special:Export}}/{{MediaWiki:Mainpage}}]] Ò\9bолданÑ\83Ò\93а Ð±Ð¾Ð»Ð°Ð´Ñ\8b.",
+       "exporttext": "XML Ð¿Ñ\96Ñ\88Ñ\96мÑ\96не Ò\9bапÑ\82алÒ\93ан Ð±Ó©Ð»ÐµÐº Ð±ÐµÑ\82 Ð½Ðµ Ð±ÐµÑ\82Ñ\82еÑ\80 Ð±Ñ\83маÑ\81Ñ\8b Ð¼Ó\99Ñ\82Ñ\96нÑ\96Ò£ Ð¶Ó\99не Ó©Ò£Ð´ÐµÑ\83 Ñ\82аÑ\80иÑ\85Ñ\8bн Ñ\8dкÑ\81поÑ\80Ñ\82ай Ð°Ð»Ð°Ñ\81Ñ\8bз.\nÐ\9cедиаУики Ð¶Ò¯Ð¹ÐµÑ\81Ñ\96нÑ\96Ò£ [[Special:Import|импоÑ\80Ñ\82Ñ\82аÑ\83 Ð±ÐµÑ\82Ñ\96н]] Ð¿Ð°Ð¹Ð´Ð°Ð»Ð°Ð½Ñ\8bп, Ð±Ò±Ð½Ñ\8b Ð±Ð°Ñ\81Ò\9bа Ñ\83икиге Ð¸Ð¿Ð¾Ñ\80Ñ\82Ñ\82аÑ\83Ò\93а Ð±Ð¾Ð»Ð°Ð´Ñ\8b.\n\nÐ\91еÑ\82Ñ\82еÑ\80дÑ\96 Ñ\8dкÑ\81поÑ\80Ñ\82аÑ\83 Ò¯Ñ\88Ñ\96н, Ð°Ñ\82аÑ\83лаÑ\80Ñ\8bн Ñ\82өмендегÑ\96 Ð¼Ó\99Ñ\82Ñ\96н Ð¶Ð¾Ð»Ð°Ò\93Ñ\8bна ÐµÐ½Ð³Ñ\96зÑ\96Ò£Ñ\96з (жол Ñ\81айÑ\8bн Ð±Ñ\96Ñ\80 Ñ\82аÒ\9bÑ\8bÑ\80Ñ\8bп Ð°Ñ\82Ñ\8b), Ñ\81оÑ\81Ñ\8bн Ð½Ðµ Ð±Ð°Ñ\80лÑ\8bÒ\9b ÐµÑ\81кÑ\96 Ð½Ò±Ñ\81Ò\9bалаÑ\80Ñ\8bмен Ð¶Ó\99не Ñ\82аÑ\80иÑ\85Ñ\8b Ð¶Ð¾Ð»Ð´Ð°Ñ\80Ñ\8bмен Ð±Ñ\96Ñ\80ге Ò\9bазÑ\96Ñ\80гÑ\96 Ð½Ò±Ñ\81Ò\9bаÑ\81Ñ\8bн Ð½ÐµÐ¼ÐµÑ\81е Ñ\81оңÒ\93Ñ\8b Ó©Ò£Ð´ÐµÐ¼Ðµ Ñ\82Ñ\83Ñ\80алÑ\8b Ð°Ò\9bпаÑ\80аÑ\82Ñ\8bмен Ð±Ñ\96Ñ\80ге Ò\9bазÑ\96Ñ\80гÑ\96 Ð½Ò±Ñ\81Ò\9bаÑ\81Ñ\8bнÑ\8bÒ£ Ð±Ñ\96Ñ\80еÑ\83Ñ\96н Ò\9bалаÑ\83Ñ\8bÒ£Ñ\8bз Ð±Ð¾Ð¹Ñ\8bнÑ\88а Ñ\82аңдаңÑ\8bз.\n\nСоңÒ\93Ñ\8b Ð¶Ð°Ò\93дайда Ñ\81Ñ\96лÑ\82еменÑ\96 Ð´Ðµ Ò\9bолданÑ\83Ò\93а Ð±Ð¾Ð»Ð°Ð´Ñ\8b, Ð¼Ñ\8bÑ\81алÑ\8b Â«[[{{MediaWiki:Mainpage}}]]» Ð±ÐµÑ\82Ñ\96 Ò¯Ñ\88Ñ\96н [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]].",
        "exportall": "Барлық беттерді сыртқа беру",
        "exportcuronly": "Толық тарихын емес, тек ағымдық түзетуін кірістіріңіз",
        "exportnohistory": "----\n'''Аңғартпа:''' Өнімділік әсері себептерінен, беттердің толық тарихын бұл пішінмен сыртқа беруі өшірілген.",
+       "exportlistauthors": "Әр бет үшін үлестердің толық тізімін кірістіру",
        "export-submit": "Сыртқа бер",
        "export-addcattext": "Мына санаттағы беттерді үстеу:",
        "export-addcat": "Үсте",
        "export-addns": "Қосу",
        "export-download": "Файл түрінде сақтау",
        "export-templates": "Үлгілерді қоса алып",
+       "export-pagelinks": "Тереңдігі бойынша сілтенген беттерді қамту",
        "allmessages": "Жүйе хабарлары",
        "allmessagesname": "Атауы",
        "allmessagesdefault": "Әдепкі мәтіні",
        "allmessagestext": "Мында {{ns:mediawiki}} есім аясында жетімді жүйе хабар тізімі беріледі.\nЕгер әмбебап MediaWiki жерсіндіруге үлес қосқыңыз келсе [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki жерсіндіру бетіне] және [//translatewiki.net translatewiki.net жобасына] барып шығыңыз.",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages''' өшірілген себебінен '''{{#special:AllMessages}}''' беті қолданылмайды.",
        "allmessages-filter-legend": "Сүзгі",
+       "allmessages-filter": "Өзгеру статусы бойынша сүзгілеу",
        "allmessages-filter-unmodified": "Өзгертілмегендер",
        "allmessages-filter-all": "Барлығы",
        "allmessages-filter-modified": "Өзгертілгендер",
        "thumbnail_error_remote": "$1 дегеннен хабарлама қатесі:\n$2",
        "djvu_page_error": "DjVu беті аумақ сыртындда",
        "djvu_no_xml": "DjVu файлы үшін XML келтіруі икемді емес",
+       "thumbnail-temp-create": "Уақытша нобай файлды бастау мүмкін емес",
+       "thumbnail-dest-create": "Тағайындалған орынға нобай сақталынбайды",
        "thumbnail_invalid_params": "Нобайдың бапталымдары жарамсыз",
+       "thumbnail_toobigimagearea": "$1 өлшемінен үлкен файл",
        "thumbnail_dest_directory": "Нысана қалтасы құруы икемді емес",
        "thumbnail_image-type": "Сурет түрі қолдамайды.",
+       "thumbnail_gd-library": "GD кітапхана конфигурациясы толық емес.$1 функциясын қажете етеді.",
+       "thumbnail_image-missing": "Файл жоқ сияқты көрініп тұр: $1",
+       "thumbnail_image-failure-limit": "Бұл нобайды ұсынуда жуықта өте көп сәтсіз талпыныс жасалды ($1 немесе көбірек).\nҚайта байқап көріңіз.",
        "import": "Беттерді сырттан алу",
-       "importinterwiki": "Уики-апару үшін сырттан алу",
-       "import-interwiki-text": "Сырттан алынатын уикиді және беттің тақырып атын бөлектеңіз.\nТүзету күн-айы және өңдеуші есімдері сақталады.\nУики-апару үшін сырттан алу барлық әрекеттер [[{{#special:Log}}/import|сырттан алу журналына]] жазылып алынады.",
+       "importinterwiki": "Басқа уикиден импорттау",
+       "import-interwiki-text": "Сырттан алынатын уикиді және беттің тақырып атын бөлектеңіз.\nТүзету күн-айы және өңдеуші есімдері сақталады.\nУики-апару үшін импорттау барлық әрекеттер  жазылып [[Special:Log/import|импорт журналы]] алынады.",
+       "import-interwiki-sourcewiki": "Қайнар уики:",
+       "import-interwiki-sourcepage": "Қайнар беті:",
        "import-interwiki-history": "Бұл беттің барлық тарихи нұсқаларын көшіру",
        "import-interwiki-templates": "Кірістірілген барлық үлгілер",
        "import-interwiki-submit": "Сырттан алу",
+       "import-mapping-default": "Әдепкі орынға импорттау",
+       "import-mapping-namespace": "Есім кеңістігіне импорттау:",
+       "import-mapping-subpage": "Келесі бетті ішкі беттер ретінде импорттау:",
        "import-upload-filename": "Файл атауы:",
        "import-comment": "Пікірі:",
        "importtext": "Қайнар уикиден [[Special:Export|export utility]]  қолданып файлды сыртқа беріңіз.\nКомьпютеріңізге сақтаңыз да мында жүктеп беріңіз.",
        "importcantopen": "Сырттан алынатын файл ашылмайды",
        "importbadinterwiki": "Жарамсыз уики-аралық сілтеме",
        "importsuccess": "Импорттау аяқталды!",
-       "importnosources": "Уики-апаÑ\80Ñ\83 Ò¯Ñ\88Ñ\96н Ñ\81Ñ\8bÑ\80Ñ\82Ñ\82ан Ð°Ð»Ñ\8bнаÑ\82Ñ\8bн ÐµÑ\88 Ò\9bайнаÑ\80 ÐºÓ©Ð·Ñ\96 Ð°Ð½Ñ\8bÒ\9bÑ\82алмаÒ\93ан, Ð¶Ó\99не Ñ\82аÑ\80иÑ\85Ñ\8bн Ñ\82Ñ\96келей Ò\9bоÑ\82аÑ\80Ñ\8bп Ð±ÐµÑ\80Ñ\83Ñ\96 өшірілген.",
+       "importnosources": "Ð\98мпоÑ\80Ñ\82Ñ\82аÑ\83Ò\93а ÐµÑ\88 Ñ\83ики Ð°Ð½Ñ\8bÒ\9bÑ\82алмаÒ\93ан Ð¶Ó\99не Ñ\82Ñ\96келей Ó©Ð·Ð³ÐµÑ\80Ñ\96Ñ\81Ñ\82еÑ\80 Ñ\82аÑ\80иÑ\85Ñ\8bн Ð¶Ò¯ÐºÑ\82еÑ\83 өшірілген.",
        "importnofile": "Сырттан алынған файл жүктелген жоқ.",
        "importuploaderrorsize": "Импортталған файлдың жүктелуі сәтсіз болды. \nФайл рұқсат етілгеннен жүктеу өлшемінен үлкенірек.",
        "importuploaderrorpartial": "Сырттан алынған файлдың жүктелуі сәтсіз өтті. Осы файлдың тек бөліктері жүктелді.",
        "importuploaderrortemp": "Сырттан алынған файлдың жүктелуі сәтсіз өтті. Уақытша қалта табылмады.",
        "import-parse-failure": "Сырттан алынған XML файл құрылымын талдатқанда сәтсіздік болды",
        "import-noarticle": "Сырттан алынатын еш бет жоқ!",
-       "import-nonewrevisions": "Ð\91аÑ\80лÑ\8bÒ\9b Ñ\82үзеÑ\82Ñ\83леÑ\80Ñ\96 Ð°Ð»Ð´Ñ\8bнда Ñ\81Ñ\8bÑ\80Ñ\82Ñ\82ан Ð°Ð»Ñ\8bнÒ\93ан.",
+       "import-nonewrevisions": "Ð\95Ñ\88Ò\9bандай Ð½Ò±Ñ\81Ò\9bалаÑ\80 Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82Ñ\82алÒ\93ан Ð¶Ð¾Ò\9b (баÑ\80лÑ\8bÒ\93Ñ\8b Ó©Ò£Ð´ÐµÐ»Ð³ÐµÐ½ Ð½Ðµ Ò\9bаÑ\82елеÑ\80ге Ð±Ð°Ð¹Ð»Ð°Ð½Ñ\8bÑ\81Ñ\82Ñ\8b Ó©Ñ\82кÑ\96зÑ\96лÑ\96п Ð¶Ñ\96беÑ\80Ñ\96лдÑ\96)",
        "xml-error-string": "$1 нөмір $2 жолда, баған $3 (байт $4): $5",
        "import-upload": "XML деректерін жүктеу",
        "import-token-mismatch": "Сессия деректері жоғалған.\nҚайта байқап көріңіз.",
        "import-invalid-interwiki": "Арнайы уикиден импортталмайды.",
+       "import-error-edit": "«$1» беті импорталмады, себебі оны өңдеуге рұқсатыңыз жоқ.",
+       "import-error-create": "«$1» беті импорталмады, себебі оны бастауға рұқсатыңыз жоқ.",
+       "import-error-interwiki": "«$1» беті импорталмады, себебі оның аты сыртқы сілтемелер үшін резервтелген (интеруики).",
+       "import-error-special": "«$1» беті импорталмады, себебі ол арнайы есім кеңістігінде, бұл беттерде импорттау рұқсат етілмеген.",
+       "import-error-invalid": "«$1» беті импорталмады, себебі атауы бұл уикиде импорттау жарамсыз.",
+       "import-error-unserialize": "$2 of «$1» бетіндегі $2 нұсқасы құрылымданбады. Нұсқа $4 ретінде құрылымданған $3 мазмұн моделін пайдалан деп хабарлады.",
+       "import-error-bad-location": "Бұл бетте бұл модел қолдамағаннан кейін, $3 мазмұн моделін қолданған $2 нұсқа бұл уикиде «$1» дегенде сақталмайды.",
        "import-options-wrong": "Қате {{PLURAL:$2|параметр|параметр}}: <nowiki>$1</nowiki>",
+       "import-rootpage-invalid": "Берілген түбір бет атауы дұрыс емес.",
+       "import-rootpage-nosubpage": "«$1» есім кеңістігіндегі түбір бет қарасты беттеріне рұқсат етілмеген.",
        "importlogpage": "Сырттан алу журналы",
        "importlogpagetext": "Беттерді түзету тарихымен бірге сыртқы уикилерден әкімші ретінде алу.",
-       "import-logentry-upload-detail": "$1 түзету",
-       "import-logentry-interwiki-detail": "$2 дегеннен $1 түзету",
+       "import-logentry-upload-detail": "$1 {{PLURAL:$1|нұсқа|нұсқа}} импортталды",
+       "import-logentry-interwiki-detail": "$2 дегеннен $1 {{PLURAL:$1|нұсқа|нұсқа}} импортталды",
        "javascripttest": "JavaScript сынақталуда",
+       "javascripttest-pagetext-noframework": "Бұл бет JavaScript сынақтарын жүргізу үшін резервтелген.",
+       "javascripttest-pagetext-unknownframework": "«$1» белгісіз сынау ортасы.",
+       "javascripttest-pagetext-unknownaction": "Белгісіз әрекет «$1».",
+       "javascripttest-pagetext-frameworks": "Келесі сынау ортасының біреуін таңдаңыз: $1",
+       "javascripttest-pagetext-skins": "Сынақ жүргізу үшін мәнерді таңдаңыз:",
        "javascripttest-qunit-intro": "[$1 сынақтау құжаттамасын]  mediawiki.org-тен қара.",
        "tooltip-pt-userpage": "Жеке бетіңіз",
        "tooltip-pt-anonuserpage": "Бұл IP мекенжайдың жеке беті",
        "tooltip-pt-mycontris": "Өңдеулеріңіздің тізімі",
        "tooltip-pt-login": "Кіруіңізді ұсынамыз, ол міндетті емес.",
        "tooltip-pt-logout": "Шығу",
+       "tooltip-pt-createaccount": "Біз сізге есептік жазба бастауды және кіруді ұсынамыз,ол міндетті емес.",
        "tooltip-ca-talk": "Мағлұмат бетті талқылау",
        "tooltip-ca-edit": "Бұл бетті өңдей аласыз. Сақтаудың алдында «Қарап шығу» батырмасын нұқыңыз.",
        "tooltip-ca-addsection": "Жаңа бөлім бастау",
        "spambot_username": "MediaWiki spam cleanup",
        "spam_reverting": "$1 дегенге сілтемелері жоқ соңғы нұсқасына қайтарылды",
        "spam_blanking": "$1 дегенге сілтемелері бар барлық түзетулер тазартылды",
+       "spam_deleting": "Барлық нұсқалар $1 сайтына сілтейтін сілтемеден тұрады, ол жойылады",
+       "simpleantispam-label": "Спамға қарсы тексеру.\nБұны <strong>толтырмаңыз</strong>!",
        "pageinfo-title": "«$1» беті туралы мәлімет",
+       "pageinfo-not-current": "Өкінішке орай, ол ескі нұсқаларында осы ақпаратты қамтамасыз ету мүмкін емес",
        "pageinfo-header-basic": "Негізгі ақпарат",
        "pageinfo-header-edits": "Өңдеу тарихы",
        "pageinfo-header-restrictions": "Бет қорғалуы",
        "pageinfo-contentpage-yes": "Иә",
        "pageinfo-protect-cascading": "Баулы қорғаулылар мұнда",
        "pageinfo-protect-cascading-yes": "Иә",
+       "pageinfo-protect-cascading-from": "Баулы қорғаулылардан",
        "pageinfo-category-info": "Санат ақпараттары",
+       "pageinfo-category-total": "Барлық мүше саны",
        "pageinfo-category-pages": "Беттер саны",
        "pageinfo-category-subcats": "Санатшалар саны",
        "pageinfo-category-files": "Файлдар саны",
        "markedaspatrollederror": "Зерттелді деп белгіленбейді",
        "markedaspatrollederrortext": "Зерттелді деп белгілеу үшін түзетуді келтіріңіз.",
        "markedaspatrollederror-noautopatrol": "Өз жасаған өзгерістеріңізді зерттелді деп белгілей алмайсыз.",
+       "markedaspatrollednotify": "$1 бетіндегі бұл өзгеріс тексерілді деп белгіленді.",
+       "markedaspatrollederrornotify": "Тексерілді деп белгіленбеді.",
        "patrol-log-page": "Тексеру журналы",
+       "patrol-log-header": "Бұл тексерілген нұсқалар журналы",
        "log-show-hide-patrol": "$1 тексеру журналы",
+       "log-show-hide-tag": "$1 белгі журналы",
        "deletedrevision": "Ескі түзетуін жойды: $1",
        "filedeleteerror-short": "Файл жою қатесі: $1",
        "filedeleteerror-long": "Файлды жойғанда қателер кездесті:\n\n$1",
        "file-info-png-looped": "тұйықталған",
        "file-info-png-repeat": "$1 {{PLURAL:$1|уақыт|уақыт}} ойнатылды",
        "file-info-png-frames": "$1 {{PLURAL:$1|жақтау терезе|жақтау терезелер}}",
+       "file-no-thumb-animation": "<strong>Аңғартпа: Техникалық шектеулерге байланысты, бұл файлдың нобайы анимацияланбайды.</strong>",
+       "file-no-thumb-animation-gif": "<strong>Аңғартпа: Техникалық шектеулерге байланысты,  жоғары ажыратылымдықты GIF суреттердің нобайы бұл файлды қоса алғанда анимацияланбайды.</strong>",
        "newimages": "Жаңа файлдар көрмесі",
        "imagelisttext": "Төменде $2 сұрыпталған '''$1''' файл тізімі.",
        "newimages-summary": "Бұл арнайы бетте соңғы жүктелген файлдар көрсетіледі",
        "newimages-legend": "Сүзгі",
+       "newimages-label": "Файл атауы (немесе оның бөлігі):",
+       "newimages-showbots": "Боттардың жүктегендерін көрсету",
        "noimages": "Көретін ештеңе жоқ.",
        "ilsubmit": "Іздеу",
        "bydate": "күн-айымен",
        "hours-ago": "$1 {{PLURAL:$1|сағат|сағат}} бұрын",
        "minutes-ago": "$1 {{PLURAL:$1|минут|минут}} бұрын",
        "seconds-ago": "$1 {{PLURAL:$1|секунд|секунд}} бұрын",
+       "monday-at": "$1 Дүйсенбі күні",
+       "tuesday-at": "$1 Сейсенбі күні",
+       "wednesday-at": "$1 Сәрсенбі күні",
+       "thursday-at": "$1 Бейсенбі күні",
+       "friday-at": "$1 Жұма күні",
+       "saturday-at": "$1 Сенбі күні",
+       "sunday-at": "$1 Жексенбі күні",
+       "yesterday-at": "$1 кеше",
        "bad_image_list": "Пішімі төмендегідей:\n\nТек тізім даналары (* нышанымен басталытын жолдар) есептеледі.\nЖолдың бірінші сілтемесі жарамсыз суретке сілтеу жөн.\nСол жолдағы кейінгі әрбір сілтемелер ерен болып есептеледі, мысалы жол ішіндегі кездесетін суреті бар беттер.",
        "metadata": "Қосымша мәліметтер",
        "metadata-help": "Осы файлда қосымша мәліметтер қамтылған, файл жасалуына немесе цифрлық формаға айналдырылуына дижитал (сандық) аппарат не сканер қолданылған болуы ықтимал.\nЕгер осы файл негізгі күйінен өзгертілген болса кейбір егжей-тегжейлері өзгертілген файлға лайық болмас.",
        "exif-gpsareainformation": "GPS аумағының атауы",
        "exif-gpsdatestamp": "GPS күн-айы",
        "exif-gpsdifferential": "GPS сараланған дұрыстау",
+       "exif-jpegfilecomment": "JPEG файл пікірі",
        "exif-keywords": "Пернетақталар",
        "exif-worldregioncreated": "Бұл суретте Әлем аймақтары түсірілген",
        "exif-countrycreated": "Бұл суретте мемлекет түсірілген",
        "exif-objectname": "Қысқаша атауы",
        "exif-specialinstructions": "Арнайы таныстырылымдар",
        "exif-headline": "Тақырып",
+       "exif-credit": "Қоюшы, суретті қоюшы қатысушы",
        "exif-source": "Қайнары",
+       "exif-editstatus": "Суреттің өңделмелі статусы",
+       "exif-urgency": "Қауырттық",
+       "exif-fixtureidentifier": "Бейімдеу есімі",
+       "exif-locationdest": "Бейнеленген орын",
+       "exif-locationdestcode": "Бейнеленген орынның коды",
+       "exif-objectcycle": "Медианың жобаланған күндерінің уақыты",
        "exif-contact": "Байланыс ақпараттары",
        "exif-writer": "Жазушы",
        "exif-languagecode": "Тіл",
        "exif-iimcategory": "Санат",
        "exif-iimsupplementalcategory": "Қосымша санаттар",
        "exif-datetimeexpires": "Соңынан қолданба",
+       "exif-datetimereleased": "Шығарылған",
+       "exif-originaltransmissionref": "Алғашқы берілім орналасу коды",
        "exif-identifier": "Жалпылауыш",
        "exif-lens": "Линза қолданылған",
        "exif-serialnumber": "Фотоаппараттың сериал нөмері",
        "exif-cameraownername": "Фотоаппараттың иесі",
        "exif-label": "Деңгей",
+       "exif-datetimemetadata": "Метадеректерді соңғы рет түрлендірген мерзімі",
+       "exif-nickname": "Суреттің бейресми атауы",
+       "exif-rating": "Рейтинг (бесеуден)",
+       "exif-rightscertificate": "Құқықтар басқару куәлігі",
        "exif-copyrighted": "Авторлық құқық күйі:",
        "exif-copyrightowner": "Авторлық құқықтар иесі",
        "exif-usageterms": "Қолдану шарттары",
+       "exif-webstatement": "Онлайн авторлық құқық туралы есеп",
+       "exif-originaldocumentid": "Алғашқы құжаттың бірегей ID-і",
+       "exif-licenseurl": "Авторлық құқық лицензиясы үшін URL",
+       "exif-morepermissionsurl": "Баламалы лицензия мәліметі",
+       "exif-attributionurl": "Бұл жұмысты қайта қолдану кезінде сілтеңіз",
+       "exif-preferredattributionname": "Бұл жұмысты қайта қолдану кезінде көрсетіңіз",
+       "exif-pngfilecomment": "PNG файл пікірі",
        "exif-disclaimer": "Қабылдамау хабарламасы",
        "exif-contentwarning": "Мазмұн ескертуі",
+       "exif-giffilecomment": "GIF файл пікірі",
+       "exif-intellectualgenre": "Тармақ түрі",
+       "exif-subjectnewscode": "Тақырып коды",
+       "exif-scenecode": "IPTC көрініс коды",
+       "exif-event": "Бейнеленген оқиға",
+       "exif-organisationinimage": "Бейнеленген ұйым",
+       "exif-personinimage": "Бейнеленген адам",
+       "exif-originalimageheight": "Суреттің кесілуден бұрынғы биіктігі",
+       "exif-originalimagewidth": "Суреттің кесілуден бұрынғы ені",
        "exif-compression-1": "Ұлғайтылған",
+       "exif-compression-2": "CCITT Group 3 1-өлшемді түрлендірген Хаффман сериясының ұзындығын кодтау",
+       "exif-compression-3": "CCITT Group 3 факстық кодтау",
+       "exif-compression-4": "CCITT Group 4 факстық кодтау",
+       "exif-copyrighted-true": "Авторлық құқық қорғалған",
+       "exif-copyrighted-false": "Авторлық құқық қорғау статусы орнамаған",
        "exif-unknowndate": "Белгісіз күн-айы",
        "exif-orientation-1": "Қалыпты",
        "exif-orientation-2": "Дерелей шағылысқан",
        "exif-orientation-3": "180° бұрышқа айналған",
        "exif-orientation-4": "Тірелей шағылысқан",
        "exif-orientation-5": "Сағат тілшесіне қарсы 90° бұрышқа айналған және тірелей шағылысқан",
-       "exif-orientation-6": "Сағат тілше бойынша 90° бұрышқа айналған",
+       "exif-orientation-6": "Сағат тілшесіне қарсы 90° бұрышқа айналған",
        "exif-orientation-7": "Сағат тілше бойынша 90° бұрышқа айналған және тірелей шағылысқан",
-       "exif-orientation-8": "Сағат тілшесіне қарсы 90° бұрышқа айналған",
+       "exif-orientation-8": "Сағат тілшесі бойынша 90° бұрышқа айналған",
        "exif-planarconfiguration-1": "талпақ пішім",
        "exif-planarconfiguration-2": "тайпақ пішім",
+       "exif-colorspace-65535": "Тарылтпаған",
        "exif-componentsconfiguration-0": "бар болмады",
        "exif-exposureprogram-0": "Анықталмаған",
        "exif-exposureprogram-1": "Қолмен",
        "exif-lightsource-19": "Қалыпты жарық қайнары C",
        "exif-lightsource-24": "Студиялық ISO күнжарықты шам",
        "exif-lightsource-255": "Басқа жарық көзі",
+       "exif-flash-fired-0": "Жарқыл шығарушы жұмыстамады",
+       "exif-flash-fired-1": "Жарқыл шығарушы жұмыстады",
+       "exif-flash-return-0": "Табу функциясына қайтуға жарқыл жоқ",
+       "exif-flash-return-2": "оралған строб жарқылы табылмады",
+       "exif-flash-return-3": "оралған строб жарқылы табылды",
+       "exif-flash-mode-1": "міндетті флэш күйдіру",
+       "exif-flash-mode-2": "міндетті флеш жолын кесу",
+       "exif-flash-mode-3": "авто режимі",
+       "exif-flash-function-1": "Ещқандай жарқыл беру функциясы жоқ",
+       "exif-flash-redeye-1": "қызыл көз әсерін азайту режимі",
        "exif-focalplaneresolutionunit-2": "дүйм",
        "exif-sensingmethod-1": "Анықталмаған",
        "exif-sensingmethod-2": "1-чипті аумақты түссезгіш",
        "exif-sensingmethod-5": "Кезекті аумақты түссезгіш",
        "exif-sensingmethod-7": "3-сызықты түссезгіш",
        "exif-sensingmethod-8": "Кезекті сызықты түссезгіш",
+       "exif-filesource-3": "Сандық камера",
        "exif-scenetype-1": "Тікелей түсірілген фотосурет",
        "exif-customrendered-0": "Қалыпты өңдету",
        "exif-customrendered-1": "Қосымша өңдету",
        "exif-gpslatitude-s": "Оңтүстік бойлығы",
        "exif-gpslongitude-e": "Шығыс ендігі",
        "exif-gpslongitude-w": "Батыс ендігі",
+       "exif-gpsaltitude-above-sealevel": "$1 теңіз деңгейінен {{PLURAL:$1|метр|метр}} жоғары",
+       "exif-gpsaltitude-below-sealevel": "$1 теңіз деңгейінен {{PLURAL:$1|метр|метр}} төмен",
        "exif-gpsstatus-a": "Өлшеу ұласуда",
        "exif-gpsstatus-v": "Өлшеу өзара әрекетте",
        "exif-gpsmeasuremode-2": "2-бағыттық өлшем",
        "exif-gpsdirection-t": "Шын бағыт",
        "exif-gpsdirection-m": "Магнитты бағыт",
        "exif-ycbcrpositioning-1": "Орталықты",
+       "exif-ycbcrpositioning-2": "Co-sited",
        "exif-dc-contributor": "Үлескерлер",
+       "exif-dc-coverage": "Медианың кеңістіктік немесе уақытша ауқымы",
        "exif-dc-date": "Күн(дер)",
        "exif-dc-publisher": "Жариялаушы",
        "exif-dc-relation": "Қатысты медиа",
        "exif-dc-type": "Медиа түрі",
        "exif-rating-rejected": "Өшірілген",
        "exif-isospeedratings-overflow": "65535-нан үлкенірек",
+       "exif-iimcategory-ace": "Өнер, мәдениет және ойын-сауық",
+       "exif-iimcategory-clj": "Қылмыс және заң",
+       "exif-iimcategory-dis": "Апаттар және оқыс оқиғалар",
        "exif-iimcategory-fin": "Экономика және бизнес",
        "exif-iimcategory-edu": "Білім",
        "exif-iimcategory-evn": "Қоршаған орта",
        "exif-iimcategory-hth": "Денсаулық",
+       "exif-iimcategory-hum": "Адам қызығушылығы",
+       "exif-iimcategory-lab": "Еңбек",
+       "exif-iimcategory-lif": "Өмір салты және демалыс",
        "exif-iimcategory-pol": "Саясат",
+       "exif-iimcategory-rel": "Дін және сенім",
        "exif-iimcategory-sci": "Ғылым және технология",
+       "exif-iimcategory-soi": "Әлеуметтік мәселелер",
        "exif-iimcategory-spo": "Спорт",
+       "exif-iimcategory-war": "Соғыс, қақтығыс және бүлік",
        "exif-iimcategory-wea": "Ауа райы",
        "exif-urgency-normal": "Қалыпты ($1)",
        "exif-urgency-low": "Төмен ($1)",
        "exif-urgency-high": "Жоғары ($1)",
+       "exif-urgency-other": "Қатысушының анықталған артықшылығы ($1)",
        "namespacesall": "барлығы",
        "monthsall": "барлығы",
        "confirmemail": "Е-пошта мекенжайын құптау",
        "confirmemail_loggedin": "Е-пошта мекенжайыңыз енді құпталды.",
        "confirmemail_subject": "{{SITENAME}} торабынан е-пошта мекенжайыңызды құптау хаты",
        "confirmemail_body": "Әлдебіреу өзіңіз болуы мүмкін $1 деген IP мекенжайынан \n{{SITENAME}} жобасында бұл э-пошта мекенжайынмен «$2» деген тіркелгі жасапты.\n\nБұл тіркелгі нақты сізге тән екенін құптау үшін және {{SITENAME}} жобасының э-пошта мүмкіндіктерін белсендіру үшін мына сілтемені броузеріңізбен ашыңыз:\n\n$3\n\nЕгер бұл тіркелгіні жасаған өзіңіз *емес* болса мына сілтемеге еріп\nэ-пошта мекенжайы құптауын болдырмаңыз:\n\n$5\n\nҚұптау коды мерзімі бітетін кезі: $4.",
+       "confirmemail_body_changed": "Әлдебіреу, сіз болуыңыз мүмкін $1 деген IP мекенжайынан \n{{SITENAME}} сайтында «$2» деген аккаунт бұл э-пошта мекенжайын өзгертті.\n\nБұл тіркелгі нақты сізге тән екенін құптау үшін және {{SITENAME}} жобасының э-пошта мүмкіндіктерін белсендіру үшін мына сілтемені броузеріңізбен ашыңыз:\n\n$3\n\nЕгер бұл тіркелгіні жасаған өзіңіз *емес* болса мына сілтемеге бойынша э-пошта мекенжайы құптауын болдырмаңыз:\n\n$5\n\nҚұптау коды мерзімі бітетін кезі: $4.",
+       "confirmemail_body_set": "Әлдебіреу, сіз болуыңыз мүмкін, $1 деген IP мекенжайынан {{SITENAME}} сайтында «$2» деген аккаунт бұл э-пошта мекенжайын орнатты.\n\nБұл тіркелгі нақты сізге тән екенін құптау үшін және {{SITENAME}} сайтының э-пошта мүмкіндіктерін белсендіру үшін мына сілтемені броузеріңізбен ашыңыз:\n\n$3\n\nЕгер бұл тіркелгіні жасаған өзіңіз *емес* болса мына сілтемеге бойынша э-пошта мекенжайы құптауын болдырмаңыз:\n\n$5\n\nҚұптау коды мерзімі бітетін кезі: $4.",
        "confirmemail_invalidated": "Е-пошта мекенжайын құптауы болдырылмады",
        "invalidateemail": "Е-пошта мекенжайын құптауы болдырмау",
        "scarytranscludedisabled": "[Уики-аралық кірікбеттер өшірілген]",
        "scarytranscludetoolong": "[URL тым ұзын]",
        "deletedwhileediting": "Ескету: Бұл бетті өңдеуіңізді бастағанда, осы бет жойылды!",
        "confirmrecreate": "Бұл бетті өңдеуіңізді бастағанда [[User:$1|$1]] ([[User talk:$1|талқылауы]]) осы бетті жойды, келтірген себебі:\n: ''$2''\nОсы бетті қайта бастауын нақты тілегеніңізді құптаңыз.",
+       "confirmrecreate-noreason": "Бұл бетті өңдеп бастағаныңызда [[User:$1|$1]] ([[User talk:$1|талқылауы]]) жойды. \nОсы бетті қайта бастауын нақты тілегеніңізді құптаңыз.",
        "recreate": "Қайта бастау",
        "unit-pixel": " нүкте",
        "confirm_purge_button": "OK",
        "confirm-purge-top": "Бұл бетті бүркемесінен тазартасыз ба?",
+       "confirm-purge-bottom": "Беттің бүркемесінің тазартылуынан кейін соңғы нұсқалары көрінеді.",
        "confirm-watch-button": "OK",
        "confirm-watch-top": "Бұл бетті бақылау тізіміңізге қосқыңыз келе ме?",
        "confirm-unwatch-button": "OK",
        "imgmultigo": "Өт!",
        "imgmultigoto": "$1 бетіне өту",
        "img-lang-default": "(әдепкі тіл)",
+       "img-lang-info": "$1.$2 тілінде көрсету",
        "img-lang-go": "Өту",
        "ascending_abbrev": "өсу",
        "descending_abbrev": "кему",
        "autosumm-replace": "Бетті \"$1\" дегенмен алмастырды",
        "autoredircomment": "[[$1]] дегенге айдады",
        "autosumm-new": "Жаңа бетте: $1",
+       "autosumm-newblank": "Бос бет бастады",
        "size-bytes": "$1 байт",
        "size-kilobytes": "$1 КБ",
        "lag-warn-normal": "{{PLURAL:$1|секунтта|секунтта}} $1 жаңалау өзгерістер бұл тізімде көрсетілмеуі мүмкін.",
        "hebrew-calendar-m11-gen": "абтың",
        "hebrew-calendar-m12-gen": "айлолдың",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|талқылауы]])",
+       "duplicate-defaultsort": "<strong>Ескерту:</strong> «$2» әдепкі сұрыптау кілтін бұрыңғы «$1» сұрыптау кілтінің үстіне жазылады.",
+       "duplicate-displaytitle": "<strong>Ескерту:</strong> «$2» көрсетілетін атауы бұрынғы «$1» көрсетілетін атауының үстінен жазады.",
        "version": "Нұсқа",
        "version-extensions": "Орнатылған кеңейтімдер",
        "version-skins": "Орнатылған мәнерлер",
        "version-ext-colheader-credits": "Автор(лары)",
        "version-license-title": "$1 үшін лицензия",
        "version-license-not-found": "Бұл кеңейтілім үшін егжей-тегжейі жоқ лицензия мәліметі табылды.",
+       "version-credits-title": "$1 үшін авторлар тізімі",
+       "version-credits-not-found": "Бұл кеңейтілім үшін егжей-тегжейі жоқ автор мәліметі табылды.",
+       "version-poweredby-credits": "Бұл уики <strong>[https://www.mediawiki.org/ MediaWiki]</strong> қозғалтқышымен жұмыстайды, copyright © 2001-$1 $2",
        "version-poweredby-others": "басқалар",
        "version-poweredby-translators": "translatewiki.net аудармашылары",
+       "version-credits-summary": "Төмендегі адамдарды [[Special:Version|МедиаУикиді]] дамытуға үлес қосқаны үшін марапатталады.",
        "version-software": "Орнатылған бағдарламалық жасақтама",
        "version-software-product": "Өнім",
        "version-software-version": "Нұсқасы",
+       "version-entrypoints": "Ену нүктесіндегі URL мекенжайлары",
+       "version-entrypoints-header-entrypoint": "Ену нүктесі",
        "version-entrypoints-header-url": "URL",
+       "version-libraries": "Орнатылған кітапхана",
+       "version-libraries-library": "Кітапхана",
+       "version-libraries-version": "Нұсқасы",
+       "redirect": "Файл, қатысушы, бет немесе нұсқа ID-і бойынша бағыттаулар",
        "redirect-legend": "Файл немесе бетке айдатулар",
+       "redirect-summary": "Бұл арнайы бет файлға (файл атауы берілген), бетке (нұсқа ID-і немесе бет ID-і берілген), не қатысушы бетіне бағыттайды (қатысушы сандық ID-і берілген). Қолданылуы: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], немесе [[{{#Special:Redirect}}/user/101]].",
        "redirect-submit": "Өту",
        "redirect-lookup": "Іздеу:",
        "redirect-value": "Мән:",
        "fileduplicatesearch-result-n": "«$1» файлына тең $2 телнұсқасы бар.",
        "fileduplicatesearch-noresults": "\"$1\" атауымен файл табылмады.",
        "specialpages": "Арнайы беттер",
+       "specialpages-note-top": "Аңыз",
        "specialpages-note": "* Қалыпты арнайы беттер. \n* <span class==\"mw-specialpagerestricted\">Шектелген арнайы беттер.</span>",
        "specialpages-group-maintenance": "Техникалық талқылау есептері",
        "specialpages-group-other": "Тағы басқа арнайы беттер",
        "specialpages-group-wiki": "Деректер және құралдар",
        "specialpages-group-redirects": "Айдайтын арнайы беттер",
        "specialpages-group-spam": "Спам құралдары",
+       "specialpages-group-developer": "Жасақтаушы құралдары",
        "blankpage": "Бос бет",
        "intentionallyblankpage": "Бұл бет әдейі бос қалдырылған",
        "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-source-header": "Қайнары",
        "tags-active-header": "Белсенді ме?",
        "tags-hitcount-header": "Тегтелген өзгерістер",
+       "tags-actions-header": "Әрекеттер",
        "tags-active-yes": "Иә",
        "tags-active-no": "Жоқ",
+       "tags-source-extension": "Кеңейтілім бойынша анықталған",
+       "tags-source-manual": "Боттар және қатысушылар арқылы қолмен қолданған",
+       "tags-source-none": "Көп қолданылмайды",
        "tags-edit": "өңдеу",
+       "tags-delete": "жою",
+       "tags-activate": "Бенсендіру",
+       "tags-deactivate": "Белсендірмеу",
        "tags-hitcount": "$1 {{PLURAL:$1|өзгеріс|өзгеріс}}",
+       "tags-manage-no-permission": "Сізде белгілерді өзгертіп басқаруға рұқсатыңыз жоқ.",
+       "tags-create-heading": "Жаңа тег бастау",
+       "tags-create-explanation": "Боттар және қатысушыларға қолдану үшін жаңадан жасалған әдепкі қосылған тегтер.",
+       "tags-create-tag-name": "Тег атауы:",
+       "tags-create-reason": "Себебі:",
+       "tags-create-submit": "Бастау",
+       "tags-create-no-name": "Тег атауын дәлдеуіңіз керек.",
+       "tags-create-invalid-chars": "Тег атаулары үтір (<code>,</code>) немесе (<code>/</code>) тік қиғаш жақшадан тұрмауы қажет.",
+       "tags-create-invalid-title-chars": "Бет атауларында қолданылмайтындықтан тег атаулары таңбалардан тұрмауы керек.",
+       "tags-create-already-exists": "«$1» тегі бұрыннан бар.",
+       "tags-create-warnings-above": "«$1» тегін бастамақшы болған кезде келесі {{PLURAL:$2|ескертулер|ескертулер}}кездесті.",
+       "tags-create-warnings-below": "Сіз тек бастауды жалғастырғыңыз келе ме?",
+       "tags-delete-title": "Тегті жою",
+       "tags-delete-explanation-initial": "«$1» тегін дерекқордан жоюмақшысыз.",
+       "tags-delete-explanation-in-use": "Ол {{PLURAL:$2|$2 нұсқа не журнал жазбасы|барлық $2 нұсқа не журнал жазбасы}} қазіргі уақытта қолдану үшін аласталады.",
+       "tags-delete-explanation-warning": "Мына әрекет тіпті дерекқор әкімшілеріде <strong>қайтара алмайды</strong> және <strong>жоққа шығарылмайды</strong>. Бұл сіз жойғыңыз келген тег екеніне сенімді болыңыз.",
+       "tags-delete-explanation-active": "<strong> «$1» тегі әлі белсенді, жөне болашақта қолданылуы әлі жалғасады.</strong> Мұны болдырумау үшін, тегтердің қолданылуы орнатылған жер(лер)ге бару.",
+       "tags-delete-reason": "Себебі:",
+       "tags-delete-submit": "Бұл тегті қайтымсыз жою",
+       "tags-delete-not-allowed": "Кеңейтілімдер арқылы анықталған тегтер жойылмайды  егер кеңейтілімдер арнайы рұқсат бермесе.",
+       "tags-delete-not-found": "«$1» тегі жоқ.",
+       "tags-delete-too-many-uses": "«$1» тегі $2 {{PLURAL:$2|нұсқадан|нұсқадан}} көбірек қолданылған, сондықтан ол жойылмайды.",
+       "tags-delete-warnings-after-delete": "«$1» тегі сәтті жойылды, бірақ келесі {{PLURAL:$2|ескерту|ескертулер}} ұшырасады.",
+       "tags-activate-title": "Тегті белсендіру",
+       "tags-activate-question": "«$1» тегін белсендірмекшісіз.",
+       "tags-activate-reason": "Себебі:",
+       "tags-activate-not-allowed": "«$1» тегін белсендіру мүмкін емес.",
+       "tags-activate-not-found": "«$1» тегі жоқ.",
+       "tags-activate-submit": "Бенсендіру",
+       "tags-deactivate-title": "Тегті тоқтату",
+       "tags-deactivate-question": "«$1» тегін тоқтатпақшысыз.",
+       "tags-deactivate-reason": "Себебі:",
+       "tags-deactivate-not-allowed": "«$1» тегін тоқтату мүмкін емес.",
+       "tags-deactivate-submit": "Тоқтату",
+       "tags-apply-no-permission": "Өз өзгертулеріңізде текті өзгерту рұқсатыңыз жоқ.",
+       "tags-apply-not-allowed-one": "«$1» тегі қолмен қолдануға жол берілмейді.",
+       "tags-apply-not-allowed-multi": "Келесі {{PLURAL:$2|тегі|тегтері}}қолмен қолдануға жол берілмейді: $1",
+       "tags-update-no-permission": "Жекеленген нұсқалар немесе журнал жазбаларынан тегтерді қосу және аластау рұқсатыңыз жоқ.",
+       "tags-update-add-not-allowed-one": "«$1» тегі қолмен қолдануға жол берілмейді.",
+       "tags-update-add-not-allowed-multi": "Келесі {{PLURAL:$2|тегін|тегтерін}} қолмен қосуға жол берілмейді: $1",
+       "tags-update-remove-not-allowed-one": "«$1» тегін аластауға рұқсат етілмеген.",
+       "tags-update-remove-not-allowed-multi": "Келесі {{PLURAL:$2|тегі|тегтері}} қолмен аластауға рұқсат етілмеген: $1",
+       "tags-edit-title": "Тегтерді өңдеу",
+       "tags-edit-manage-link": "Тегтерді басқару",
+       "tags-edit-revision-selected": "[[:$2]] бетінің {{PLURAL:$1|таңдалған нұсқасы|таңдалған нұсқалары}} :",
+       "tags-edit-logentry-selected": "Бөлектенген {{PLURAL:$1|журнал оқиғасы|журнал оқиғалары}}:",
+       "tags-edit-revision-legend": "{{PLURAL:$1|Бұл нұсқадан|Барлық $1 нұсқадан}} тегтерді аластау не қосу",
+       "tags-edit-logentry-legend": "{{PLURAL:$1|Бұл журнал жазбасынан|Барлық $1 журнал жазбасынан}} тегтерді аластау не қосу",
+       "tags-edit-existing-tags": "Бар тегтер:",
+       "tags-edit-existing-tags-none": "«Ештеңе»",
+       "tags-edit-new-tags": "Жаңа тегтер:",
+       "tags-edit-add": "Мына тегтерді қосу:",
+       "tags-edit-remove": "Мына тегтерді аластау:",
+       "tags-edit-remove-all-tags": "(барлық тегтерді алып тастау)",
+       "tags-edit-chosen-placeholder": "Кейбір тегті таңдау",
+       "tags-edit-chosen-no-results": "Сәйкес келетін тег табылмады",
+       "tags-edit-reason": "Себебі:",
+       "tags-edit-revision-submit": "{{PLURAL:$1|Бұл нұсқадағы|$1 нұсқадағы}} өзгерістерді қолдану",
+       "tags-edit-logentry-submit": "{{PLURAL:$1|Бұл журнал жазбасындағы|$1 журнал жазбасындағы}} өзгерістерді қолдану",
+       "tags-edit-success": "Өзгерістер сәтті қолданылды.",
+       "tags-edit-failure": "Өзгерістер қолданылмады: $1",
+       "tags-edit-nooldid-title": "Нысана түзету жарамсыз",
+       "tags-edit-nooldid-text": "Бұл функцияны орындау үшін толық нұсқасын сұрамағансыз немесе көрсетілген нұсқа жоқ.",
+       "tags-edit-none-selected": "Қосу не аластату үшін кемдегенде бір тег таңдаңыз.",
        "comparepages": "Беттерді салыстыру",
        "compare-page1": "Бет 1",
        "compare-page2": "Бет 2",
        "compare-invalid-title": "Cіз көрсеткен атау жарамды емес.",
        "compare-title-not-exists": "Cіз көрсеткен атау жоқ.",
        "compare-revision-not-exists": "Cіз көрсеткен нұсқа жоқ.",
+       "dberr-problems": "Кешіріңіз! Бұл сайтта техникалық қиыншылықтар кездесті.",
+       "dberr-again": "Біраз күте тұрыңыз, сосын бетті қайта жүктеңіз.",
+       "dberr-info": "(Дерекқорға байланыспады: $1)",
+       "dberr-info-hidden": "(Дерекқорға байланыспады)",
+       "dberr-usegoogle": "Сіз әзірге Google арқылы іздете аласыз.",
+       "dberr-outofdate": "Біздің контент индексі ескіруі мүмкін екенін ескеріңіз.",
+       "dberr-cachederror": "Бұл сұратылған беттің бүркемеленген есесі, және жаңарту қажет.",
+       "htmlform-invalid-input": "Сіздің біраз енгізілімдеріңізде проблем бар.",
+       "htmlform-select-badoption": "Сіз көрсеткен мән жарамды баптау емес.",
+       "htmlform-int-invalid": "Сіз көрсеткен мән бүтін сан емес.",
+       "htmlform-float-invalid": "Сіз көрсеткен мән сан емес.",
+       "htmlform-int-toolow": "Сіз көрсеткен мәні $1 минимум мәнінен кіші.",
+       "htmlform-int-toohigh": "Сіз көрсеткен мәні $1 минимум мәнінен үлкен.",
        "htmlform-required": "Бұл мән міндетті",
        "htmlform-submit": "Жіберу",
        "htmlform-reset": "Өзгерістерді болдырмау",
        "htmlform-selectorother-other": "Басқа",
        "htmlform-no": "Жоқ",
        "htmlform-yes": "Иә",
+       "htmlform-chosen-placeholder": "Параметрлерді таңдау",
        "htmlform-cloner-create": "Тағы қосу",
        "htmlform-cloner-delete": "Аластау",
+       "htmlform-cloner-required": "Кемінде бір мән қажет етеді.",
+       "sqlite-has-fts": "$1 дегенмен барлық мәтінде іздеуді қолдайды",
+       "sqlite-no-fts": "$1дегенсіз барлық мәтінде іздеуді қолдайды",
        "logentry-delete-delete": "$1 $3 деген бетті {{GENDER:$2|жойды}}",
        "logentry-delete-restore": "$1 $3 деген бетті {{GENDER:$2|қалпына келтірді}}",
        "logentry-delete-event": "$1 $3 бетіндегі {{PLURAL:$5|журнал оқиғасы|$5 журнал оқиғасы}} көрінісін {{GENDER:$2|өзгертті}}: $4",
        "logentry-delete-revision": "$1 $3 бетіндегі {{PLURAL:$5|нұсқа|$5 нұсқа}} көрінісін {{GENDER:$2|өзгертті}}: $4",
+       "logentry-delete-event-legacy": "$1 $3 бетіндегі журнал оқиғаларының көрінулігін {{GENDER:$2|өзгертті}}",
+       "logentry-delete-revision-legacy": "$1 $3 бетіндегі нұсқалар көрінулігін {{GENDER:$2|өзгертті}}",
+       "logentry-suppress-delete": "$1 $3 деген бетті {{GENDER:$2|жасырды}}",
        "logentry-suppress-event": "$1 $3 бетіндегі {{PLURAL:$5|журнал оқиғасы|$5 журнал оқиғасы}} көрінісін құпия түрде {{GENDER:$2|өзгертті}}: $4",
+       "logentry-suppress-revision": "$1 $3 бетіндегі {{PLURAL:$5|нұсқаның|$5 нұсқаның}} көрінулігін құпия түрде {{GENDER:$2|өзгертті}}",
+       "logentry-suppress-event-legacy": "$1 $3 бетіндегі журнал оқиғаларының көрінулігін құпия түрде {{GENDER:$2|өзгертті}}",
+       "logentry-suppress-revision-legacy": "$1 $3 бетіндегі нұсқалардың көрінулігін құпия түрде {{GENDER:$2|өзгертті}}",
        "revdelete-content-hid": "мағлұматын жасырыды",
        "revdelete-summary-hid": "өңдеу түйіндемесі жасырылған",
        "revdelete-uname-hid": "қатысушы есімі жасырылған",
        "revdelete-uname-unhid": "қатысушы есімі жасырылмаған",
        "revdelete-restricted": "әкімшілерге тиымдар қолдады",
        "revdelete-unrestricted": "әкімшілерден тиымдарды аластады",
+       "logentry-block-block": "$1 {{GENDER:$4|$3}} дегенді $5 $6 мерзімге {{GENDER:$2|бұғаттады}}",
        "logentry-block-unblock": "$1 {{GENDER:$4|$3}} деген қатысушыны {{GENDER:$2|бұғатынан босатты}}",
+       "logentry-block-reblock": "$1 {{GENDER:$4|$3}} дегеннің бұғаттау параметрлерін біту уақытын $5 $6 мерзіміне {{GENDER:$2|өзгерті}}",
+       "logentry-suppress-block": "$1 {{GENDER:$4|$3}} дегенді $5 $6 мерзімге {{GENDER:$2|бұғаттады}}",
+       "logentry-suppress-reblock": "$1 {{GENDER:$4|$3}} есімді қатысушының бұғаттау параметрлерінің біту уақытын $5 $6 мерзіміне {{GENDER:$2|өзгертті}}",
+       "logentry-import-upload": "$1 $3 файл жүктемесі арқылы {{GENDER:$2|импорттады}}",
+       "logentry-import-interwiki": "$1 $3 басқа уикиден {{GENDER:$2|иморттады}}",
+       "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-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 жаңадан тіркелді",
        "logentry-newusers-create": "$1 жаңадан тіркелді",
        "logentry-newusers-create2": "$1 $3 деген аккаунт {{GENDER:$2|тіркеді}}",
        "logentry-newusers-autocreate": "$1 қатысушы аккаунтын автоматты түрде {{GENDER:$2|тіркеді}}",
        "logentry-rights-rights": "$1 $3 үшін топ мүшелігін $4 дегеннен $5 дегенге {{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|жүктеді}}",
        "logentry-upload-overwrite": "$1 $3 дегеннің жаңа нұсқасын {{GENDER:$2|жүктеді}}",
+       "logentry-upload-revert": "$1 $3 бетін {{GENDER:$2|жүктеді}}",
        "log-name-managetags": "Тег басқару журналы",
+       "logentry-managetags-create": "$1 «$4» тегін {{GENDER:$2|жасады}}",
+       "logentry-managetags-delete": "$1 «$4» тегін {{GENDER:$2|жойды}} ($5 {{PLURAL:$5|revision or log entry|нұсқадан және/не журнал жазбасынан}} аластады)",
+       "logentry-managetags-activate": "$1 қатысушылар мен боттарға қолдану үшін «$4» тегін {{GENDER:$2|белсендірді}}",
+       "logentry-managetags-deactivate": "$1 қатысушылар мен боттарға қолдану үшін «$4» тегін {{GENDER:$2|өшірді}}",
+       "log-name-tag": "Тег журналы",
+       "log-description-tag": "Бұл бет жеке нұсқалардан немесе журнал жазбаларынан қатысушы [[Special:Tags|тегтерді]] қосқанда немесе аластағанда көрінеді. Өңдеу, жою, немесе соған ұқсас әрекеттер бөлігі кездескенде белгілеу әрекеттерін журнал көрсетпейді.",
+       "logentry-tag-update-add-revision": "$3 бетіндегі $4 нұсқасына $6 {{PLURAL:$7|тегін|тегтерін}}  $1 {{GENDER:$2|қосты}}",
+       "logentry-tag-update-add-logentry": "$3 бетіндегі $5 енгізіліміне $6 {{PLURAL:$7|тегін|тегтерін}}  $1 {{GENDER:$2|қосты}}",
+       "logentry-tag-update-remove-revision": "$3 бетіндегі $4 нұсқасына $8 {{PLURAL:$9||тегін|тегтерін}}  $1 {{GENDER:$2|қосты}}",
+       "logentry-tag-update-remove-logentry": "$3 бетіндегі $5 енгізіліміне $8 {{PLURAL:$9|тегін|тегтерін}}  $1 {{GENDER:$2|аластатылды}}",
+       "logentry-tag-update-revision": "$1 $3 беттегі $4 нұсқасына тегті ({{PLURAL:$7|қосты}} $6; {{GENDER:$2|жаңартты}} {{PLURAL:$9|аластатты}} $8)",
+       "logentry-tag-update-logentry": "$1 $3 бетіндегі $5 енгізілім журналындағы тегті {{GENDER:$2|жаңартты}} ({{PLURAL:$7|қосты}} $6; {{PLURAL:$9|аластады}} $8)",
        "rightsnone": "(ешқандай)",
        "revdelete-summary": "өңдеменің қысқаша мазмұндамасы",
        "feedback-adding": "Бетке кері байланыс қосуда...",
+       "feedback-back": "Кері",
+       "feedback-bugcheck": "Керемет! [$1 белгілі қате] тізімінде сәйкес жазбалар жоқ екендігін тексеріңіз.",
+       "feedback-bugnew": "Мен тексердім. Жаңа қатені хабарлау",
+       "feedback-bugornote": "Егер сіз [$1 қате туралы хабарлау] техникалық ақауларды егжей тегжейлі таныстыруға дайын болсаңыз. Әйтпесе,төмендегі жеңіл пішінді қолдана аласыз. Сіздің пікірлеріңіз мына бетке «[$3 $2]» сіздің қатысушы есіміңізбен бірге қосылады.",
        "feedback-cancel": "Болдырмау",
        "feedback-close": "Жасалды",
+       "feedback-external-bug-report-button": "Техникалық тапсырманы жіберу",
+       "feedback-dialog-title": "Пікірді жіберу",
+       "feedback-dialog-intro": "Сіз пікіріңізді жіберу үшін төмендегі пішінді пайдалана аласыз. Сіздің пікіріңіз «$1» бетіне сіздің қатысушы есіміңізбен қосылады.",
+       "feedback-error-title": "Қате",
+       "feedback-error1": "Қате: API-дан танылмаған нәтиже",
        "feedback-error2": "Қате: Өңдеме сәтсіздікке ұшырады",
+       "feedback-error3": "Қате: API-дан жауап жоқ",
+       "feedback-error4": "Қате: Берілген кері байланыс атауын орналастыру мүмкін емес",
        "feedback-message": "Хабарлама:",
        "feedback-subject": "Тақырып:",
        "feedback-submit": "Жіберу",
+       "feedback-terms": "Мен қатысушы агент мәліметі менің жалпы бразуерім туралы ақпаратты қамтиды екенін түсіндім және операциялық жүйе нұсқалары менің пікіріммен бірге көпшілікке бөліседі.",
+       "feedback-termsofuse": "Мен шарттар мен сәйкес кері байланыс пікірін қамтамасыз етуге келісемін.",
        "feedback-thanks": "Рахмет! Сіздің кері байланысыңыз \"[$2 $1]\" бетіне қойылды.",
+       "feedback-thanks-title": "Рақмет!",
+       "feedback-useragent": "Қатысушы агент:",
        "searchsuggest-search": "Іздеу",
        "searchsuggest-containing": "қамтылуда...",
        "api-error-badaccess-groups": "Сізге бұл уикиге файл жүктеуге рұқсат етілмеген.",
        "api-error-duplicate-popup-title": "{{PLURAL:$1|file|files}} телнұсқасы.",
        "api-error-empty-file": "Сіз жіберген файл бос.",
        "api-error-emptypage": "Бос бетті жаңадан бастау рұқсат етілмейді.",
+       "api-error-fetchfileerror": "Ішкі қателік: Файлды алу барысында қате кетті.",
        "api-error-fileexists-forbidden": "\"$1\" атауымен файл әлдеқашан бар және үстінен жазылмайды.",
        "api-error-fileexists-shared-forbidden": "\"$1\" атауымен файл ортаққорда әлдеқашан бар және үстінен жазылмайды.",
        "api-error-file-too-large": "Сіз жіберген файл тым үлкен.",
        "api-error-filetype-banned": "Бұл файл түрі тыйым салынған.",
        "api-error-filetype-banned-type": "$1 {{PLURAL:$4|рұқсат етілмеген файл түрі|рұқсат етілмеген файл түрі}}. Рұқсат етілген {{PLURAL:$3|файл түрі|файл түрлері}}: $2.",
        "api-error-filetype-missing": "Файл атауы кеңейтілім қажет етеді.",
+       "api-error-hookaborted": "Сіз жасамақ болған түрлендірім кеңейтілім арқылы тоқтатылды.",
        "api-error-http": "Ішкі қате: Серверге қосылу қолайсыз.",
        "api-error-illegal-filename": "Файл атауы рұқсат етілмеген.",
+       "api-error-internal-error": "Ішкі қателік: Уикидегі жүктеу барысында  қате кетті",
        "api-error-invalid-file-key": "Ішкі қате: Файл уақытша сақтағыштан табылмады.",
        "api-error-missingparam": "Ішкі қате: Ұсынылған параметрлерді қажет етеді",
+       "api-error-missingresult": "Ішкі қателік: Есе сәтті болғанын анықтамады.",
        "api-error-mustbeloggedin": "Файлдар жүктеу үшін кіруіңіз қажет",
+       "api-error-mustbeposted": "Ішкі қателік: Сұраныс HTTP POST қажет етеді.",
        "api-error-noimageinfo": "Жүктеу сәтті болды, бірақ бізге файл туралы қандай да бір мәліметті сервер бере алмады.",
+       "api-error-nomodule": "Ішкі қателік: Жүктеу модуль жиынтығы жоқ.",
+       "api-error-ok-but-empty": "Ішкі қателік: Серверден жауап жоқ.",
+       "api-error-overwrite": "Бар файлды ауыстыру рұқсат етілмейді.",
+       "api-error-stashfailed": "Ішкі қателік: Сервер уақытша файлды сақтамады.",
+       "api-error-publishfailed": "Ішкі қателік: Сервер уақытша файлды жарияламады.",
+       "api-error-stasherror": "Сақтау орнына файлды жүктеу кезінде қате болды.",
+       "api-error-stashedfilenotfound": "Уақытша қоймадағы файлды жүктемекші болған кезде бастапқы файл табылмады.",
+       "api-error-stashpathinvalid": "Уақытша қоймада жүктелген файл табылуға тиіс болған жол жарамсыз.",
+       "api-error-stashfilestorage": "Файлды уақытша қоймаға жүктеу барысында қате болды.",
+       "api-error-stashzerolength": "Сервер файлды уақытша қорға сақтай алмайды, себебі ұзындығы нөдге тең.",
+       "api-error-stashnotloggedin": "Жүктеу қоймасына сақтау үшін сіздің кіруіңіз керек.",
+       "api-error-stashwrongowner": "Сіз қатынамақшы болған қордағы файл сізге қарасты емес.",
+       "api-error-stashnosuchfilekey": "Сіз қатынамақшы болған қордағы файл құпия сөзі жоқ.",
+       "api-error-timeout": "Сервер межелеген мерзімде жауап бермеді.",
        "api-error-unclassified": "Белгісіз қателік орын алды.",
        "api-error-unknown-code": "Белгісіз қате: \"$1\".",
+       "api-error-unknown-error": "Ішкі қателік: Сіздің файлыңызды жүктеу барысында қате кетті.",
        "api-error-unknown-warning": "Белгісіз ескерту: \"$1\".",
        "api-error-unknownerror": "Белгісіз қате: \"$1\".",
        "api-error-uploaddisabled": "Бұл уикиде жүктеп беру өшірілген.",
+       "api-error-verification-error": "Бұл файл бүлінген болуы мүмкін немесе теріс кеңейтуі бар.",
        "duration-seconds": "$1 {{PLURAL:$1|секунт|секунт}}",
        "duration-minutes": "$1 {{PLURAL:$1|минут|минут}}",
        "duration-hours": "$1 {{PLURAL:$1|сағат|сағат}}",
        "duration-decades": "$1 {{PLURAL:$1|он жылдық|он жылдық}}",
        "duration-centuries": "$1 {{PLURAL:$1|ғасыр|ғасыр}}",
        "duration-millennia": "$1 {{PLURAL:$1|мың жылдық|мың жылдық}}",
+       "rotate-comment": "Сурет сағат бағытымен $1 {{PLURAL:$1|бұрыш|бұрыш}} айналды",
+       "limitreport-title": "Деректер анализаторы:",
        "limitreport-cputime": "CPU уақытында қолданылуы",
        "limitreport-cputime-value": "$1 {{PLURAL:$1|секунт|секунт}}",
        "limitreport-walltime": "Нақты уақытта қолданылуы",
        "limitreport-walltime-value": "$1 {{PLURAL:$1|секунт|секунт}}",
+       "limitreport-ppvisitednodes": "Аралаған түйіндер саны",
+       "limitreport-ppgeneratednodes": "Препроцессордың жинақталатын түйіндерінің саны",
+       "limitreport-postexpandincludesize": "Кірістірілген ашық мөлшері",
        "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$1|байт|байт}}",
+       "limitreport-templateargumentsize": "Үлгі аргумент мөлшері",
        "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|байт|байт}}",
+       "limitreport-expansiondepth": "Ең биік тереңдік кеңейтілімі",
+       "limitreport-expensivefunctioncount": "Қымбат парсер функциясын санау",
        "expandtemplates": "Үлгілерді ұлғайту",
-       "expand_templates_intro": "Осы құрал арнайы беті әлдебір мәтінді алады да,\nбұның ішіндегі барлық кіріктелген үлгілерді мейлінше ұлғайтады.\nМына <nowiki>{{</nowiki>#language:...}} сияқты жөңдету функцияларын да, және <nowiki>{{</nowiki>CURRENTDAY}}\nсияқты айнамалыларын да ұлғайтады (нақты айтқанда, қос қабат садақ жақшалар арасындағы барлығын).\nБұны өз MediaWiki бағдарламасынан қатысты жөңдету сатын шақырып істелінеді.",
+       "expand_templates_intro": "Осы арнайы беті мәтінді түрлендіреді және\nбарлық үлгілерді мейлінше ұлғайтады.\nОл кейде <nowiki>{{</nowiki>#language:...}} сияқты парсер функцияларын да және <nowiki>{{</nowiki>CURRENTDAY}}\nсияқты айнамалыларын да ұлғайтады (нақты айтқанда, қос қабат садақ жақшалар арасындағы барлығын).",
        "expand_templates_title": "Мәтін аралық атауы ({{FULLPAGENAME}} т.б. беттер үшін):",
        "expand_templates_input": "Кіріс мәтіні:",
        "expand_templates_output": "Нәтижесі",
        "expand_templates_xml_output": "XML шығаруы",
+       "expand_templates_html_output": "HTML шығуы",
        "expand_templates_ok": "OK",
        "expand_templates_remove_comments": "Мәндемелерін аластатып?",
+       "expand_templates_remove_nowiki": "<nowiki> тегіндегі нәтижені жасыру",
        "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_anon": "<em>JavaScript шабуылдарына қарсы сақтық шарасы үшін алдын ала қарап шығу жасырылған, себебі {{SITENAME}} жобасында HTML іске қосылған және сіз жүйеге кірмегенсіз,.</em>\n\n<strong>Егер бұл өңдеме адал ниетті әрекет болса қайта байқап көріңіз.</strong> \nЕгер бұл әлі істемесе, жүйеге [[Special:UserLogin|кіріп]] қайта байқап көріңіз.",
+       "pagelanguage": "Тіл таңдау беті",
+       "pagelang-name": "Бет",
+       "pagelang-language": "Тіл",
+       "pagelang-use-default": "Әдепкі тілді қолдану",
+       "pagelang-select-lang": "Тілді таңдау",
+       "right-pagelang": "Бет тілін аудару",
+       "action-pagelang": "бет тілін аудару",
+       "log-name-pagelang": "Тіл журналын өзгерту",
+       "log-description-pagelang": "Бұл бет тілдерін өзгерту журналы.",
+       "logentry-pagelang-pagelang": "$1 $3 беті үшін $4 дегеннен $5 дегенге бет тілін {{GENDER:$2|өзгертті}}.",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (ендірілген)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''өшірілген''')",
+       "mediastatistics": "Медиа статистикалары",
+       "mediastatistics-summary": "Жүктелген файл түрлері туралы статистика. Бұл тек файлдың ең соңғы нұсқасын қамтиды немесе жойылған файлдың нұсқасын қамтылмаған.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 байт|$1 байт}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "MIME түрі",
+       "mediastatistics-table-extensions": "Мүмкін болатын кеңейтілімдер",
+       "mediastatistics-table-count": "Файлдар саны",
+       "mediastatistics-table-totalbytes": "Толық өлшемі",
+       "mediastatistics-header-unknown": "Белгісіз",
+       "mediastatistics-header-bitmap": "Нүктелік кескін суреттер",
+       "mediastatistics-header-drawing": "Сурет салу (вектор суреттер)",
+       "mediastatistics-header-audio": "Аудио",
+       "mediastatistics-header-video": "Видео",
+       "mediastatistics-header-multimedia": "Мультимедиа",
+       "mediastatistics-header-office": "Кеңсе",
+       "mediastatistics-header-text": "Мәтіндік",
+       "mediastatistics-header-executable": "Атқарушы файл",
+       "mediastatistics-header-archive": "Сығылған форматтар",
+       "json-warn-trailing-comma": "$1 {{PLURAL:$1|соңына қойылған үтір|commas were}} JSON-нан аластанған.",
+       "json-error-unknown": "JSON-мен мәселе болды. Қате:$1",
+       "json-error-depth": "Максимум стек тереңдігінен асып кеткен",
+       "json-error-state-mismatch": "Жарамсыз немесе дұрыс құрастырылмаған JSON",
+       "json-error-ctrl-char": "Қате бақылау символы, бәлкім теріс кодталған",
+       "json-error-syntax": "Синтакс қатесі",
+       "json-error-utf8": "UTF-8 дегендегі символдар, мүмкін, теріс кодталған",
+       "json-error-recursion": "Кодтауға бір немесе оданда жоғары рекурсивті сілтемелер мәнінде",
+       "json-error-inf-or-nan": "Кодтауға бір немесе оданда жоғары NAN немесе INF мәнінде",
+       "json-error-unsupported-type": "Түрі кодтауға келмейтін мән берілген",
        "headline-anchor-title": "Бұл бөлімнің уики сілтемесі",
        "special-characters-group-latin": "Латын",
        "special-characters-group-latinextended": "Кеңейтілген латын",
index 06d4b65..31a11c0 100644 (file)
@@ -39,6 +39,7 @@
        "tog-watchdefault": "ನಾನು ಸಂಪಾದಿಸುವ ಪುಟಗಳನ್ನು ವೀಕ್ಷಣಾಪಟ್ಟಿಗೆ ಸೇರಿಸು",
        "tog-watchmoves": "ನಾನು ಸ್ಥಳಾಂತರಿಸುವ ಪುಟಗಳನ್ನು ನನ್ನ ವೀಕ್ಷಣಾಪಟ್ಟಿಗೆ ಸೇರಿಸು",
        "tog-watchdeletion": "ನಾನು ಅಳಿಸುವ ಪುಟಗಳನ್ನು ನನ್ನ ವೀಕ್ಷಣಾ ಪಟ್ಟಿಗೆ ಸೇರಿಸು",
+       "tog-watchrollback": "ನಾನು ಹಿಮ್ಮರಳುವಿಕೆಯನ್ನು ನಡೆಸಿದ ಪುಟಗಳನ್ನು ನನ್ನ ಗಮನಸೂಚಿಗೆ ಸೇರಿಸು",
        "tog-minordefault": "ನನ್ನ ಎಲ್ಲಾ ಸಂಪಾದನೆಗಳನ್ನು ಚುಟುಕಾದವು ಎಂದು ಗುರುತು ಮಾಡು",
        "tog-previewontop": "ಮುನ್ನೋಟವನ್ನು ಸಂಪಾದನೆ ಚೌಕದ ಮುಂಚೆ ತೋರು",
        "tog-previewonfirst": "ಮೊದಲ ಬದಲಾವಣೆಯ ನಂತರ ಮುನ್ನೋಟವನ್ನು ತೋರಿಸು",
@@ -49,7 +50,7 @@
        "tog-shownumberswatching": "ಪುಟವನ್ನು ವೀಕ್ಷಿಸುತ್ತಿರುವ ಸದಸ್ಯರ ಸಂಖ್ಯೆಯನ್ನು ತೋರಿಸು",
        "tog-oldsig": "ಪ್ರಸ್ತುತ ಸಹಿ",
        "tog-fancysig": "ಸರಳ ಸಹಿಗಳು (ಕೊಂಡಿ ಇಲ್ಲದಿರುವಂತೆ)",
-       "tog-uselivepreview": "ನೇರ ಮುನ್ನೋಟವನ್ನು ಉಪಯೋಗಿಸಿ  (ಪ್ರಾಯೋಗಿಕ)",
+       "tog-uselivepreview": "ನೇರ ಮುನ್ನೋಟವನ್ನು ಉಪಯೋಗಿಸಿ",
        "tog-forceeditsummary": "ಸಂಪಾದನೆ ಸಾರಾಂಶವನ್ನು ಖಾಲಿ ಬಿಟ್ಟಲ್ಲಿ ನೆನಪಿಸು",
        "tog-watchlisthideown": "ವೀಕ್ಷಣಾ ಪಟ್ಟಿಯಲ್ಲಿ ನನ್ನ ಸಂಪಾದನೆಗಳನ್ನು ತೋರಿಸಬೇಡ",
        "tog-watchlisthidebots": "ವೀಕ್ಷಣಾಪಟ್ಟಿಯಲ್ಲಿ ಬಾಟ್ ಸಂಪಾದನೆಗಳನ್ನು ಅಡಗಿಸು",
        "jumptonavigation": "ಸಂಚರಣೆ",
        "jumptosearch": "ಹುಡುಕು",
        "view-pool-error": "$1",
+       "generic-pool-error": "ಕ್ಷಮಿಸಿ, ಸದ್ಯಕ್ಕೆ ಸರ್ವರ್‌ಗಳ ಮೇಲೆ ಹೆಚ್ಚಿನ ಹೊರೆ ಇದೆ.\nಬಹಳಷ್ಟು ಬಳಕೆದಾರರು ಈ ಸಂಪನ್ಮೂಲವನ್ನು ನೋಡಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದಾರೆ.\nನೀವು ಈ ಸಂಪನ್ಮೂಲವನ್ನು ಇನ್ನೊಮ್ಮೆ ನೋಡಲು ಪ್ರಯತ್ನಿಸುವ ಮೊದಲು ಸ್ವಲ್ಪಹೊತ್ತು ಕಾಯಿರಿ.",
        "pool-timeout": "ಕಾಲಾವಕಾಶ ಲಾಕ್ ಕಾಯುವುದು",
        "pool-queuefull": "ಪ್ರಕ್ರಿಯೆಯನ್ನು ವಿಶೇಷ ಕ್ಯು ಪೂರ್ಣ",
        "pool-errorunknown": "ಅಪರಿಚಿತ ದೋಷ",
+       "pool-servererror": "ಪೂಲ್ ಕೌಂಟರ್ ಸೇವೆಯು ಲಭ್ಯವಿಲ್ಲ ($1).",
+       "poolcounter-usage-error": "ಬಳಕೆಯ ದೋಷ: $1",
        "aboutsite": "ಕನ್ನಡ {{SITENAME}} ಬಗ್ಗೆ",
        "aboutpage": "Project:ನಮ್ಮ ಬಗ್ಗೆ",
        "copyright": "ವಿಶೇಷವಾಗಿ ಹೇಳಲಲ್ಲಿದರೆ ಇದು \"$1\" ಕಾಪಿರೈಟ್ ಅಲ್ಲಿ ಲಭ್ಯ ಉಂಟು",
        "disclaimers": "ಅಬಾಧ್ಯತೆಗಳು",
        "disclaimerpage": "Project:ಸಾಮಾನ್ಯ ಅಬಾಧ್ಯತೆಗಳು",
        "edithelp": "ಸಂಪಾದನೆಗೆ ಸಹಾಯ",
+       "helppage-top-gethelp": "ಸಹಾಯ",
        "mainpage": "ಮುಖ್ಯ ಪುಟ",
        "mainpage-description": "ಮುಖ್ಯ ಪುಟ",
        "policy-url": "Project:ನಿಯಮಾವಳಿಗಳು",
        "hidetoc": "ಅಡಗಿಸು",
        "collapsible-collapse": "ಕುಸಿತ",
        "collapsible-expand": "ವಿಸ್ತರಿಸಲು",
+       "confirmable-confirm": "{{GENDER:$1|ನೀವು}} ಖಚಿತವೆ?",
+       "confirmable-yes": "ಹೌದು",
+       "confirmable-no": "ಇಲ್ಲ",
        "thisisdeleted": "$1 ಅನ್ನು ನೋಡಬೇಕೆ ಅಥವ ಹಿಂದಿನಂತಾಗಿಸಬೇಕೆ?",
        "viewdeleted": "$1 ಅನ್ನು ನೋಡಬೇಕೆ?",
        "restorelink": "{{PLURAL:$1|೧ ಅಳಿಸಲ್ಪಟ್ಟ ಸಂಪಾದನೆ|$1 ಅಳಿಸಲ್ಪಟ್ಟ ಸಂಪಾದನೆಗಳು}}",
        "readonly_lag": "ಅಡಿಯಲ್ಲಿರುವ ಡೇಟಾಬೇಸ್ ಸರ್ವರ್‍ಗಳು ಮೂಲ ಸರ್ವರ್ ಒಂದಿಗೆ ಸಮಾನತೆಗೆ ಬರುವವರೆಗೂ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಯಾಂತ್ರಿಕವಾಗಿ ಮುಚ್ಚಲಾಗಿದೆ",
        "internalerror": "ಆಂತರಿಕ ದೋಷ",
        "internalerror_info": "ಆಂತರಿಕ ದೋಷ: $1",
+       "internalerror-fatal-exception": "\"$1\" ಬಗೆಯ ಒಂದು ಗಂಭೀರವಾದ ಆಕ್ಷೇಪಣೆ",
        "filecopyerror": "\"$1\" ಫೈಲ್ ಅನ್ನು \"$2\" ಗೆ ನಕಲಿಸಲಾಗಲಿಲ್ಲ.",
        "filerenameerror": "\"$1\" ಫೈಲನ್ನು \"$2\" ಎಂದು ಮರುನಾಮಕರಣ ಮಾಡಲು ಆಗಲಿಲ್ಲ.",
        "filedeleteerror": "\"$1\" ಫೈಲ್ ಅನ್ನು ಅಳಿಸಲಾಗಲಿಲ್ಲ.",
        "directorycreateerror": "\"$1\" ನಿದರ್ಶಕವನ್ನು ಸೃಷ್ಟಿಸಲಾಗಲಿಲ್ಲ.",
+       "directoryreadonlyerror": "\"$1\" ಕೋಶವು ಓದಲು ಮಾತ್ರವಾಗಿದೆ.",
+       "directorynotreadableerror": "\"$1\" ಕೋಶವನ್ನು ಓದಲು ಸಾಧ್ಯವಿಲ್ಲ.",
        "filenotfound": "\"$1\" ಫೈಲನ್ನು ಹುಡುಕಲಾಗಲಿಲ್ಲ.",
        "unexpected": "ಅನಿರೀಕ್ಷಿತ ಮೌಲ್ಯ: \"$1\"=\"$2\".",
        "formerror": "ದೋಷ: ಅರ್ಜಿ ಕಳುಹಿಸಲಾಗಲಿಲ್ಲ",
        "cannotdelete": "\"$1\" ಈ ಪುಟ ಅಥವಾ ಚಿತ್ರವನ್ನು ಅಳಿಸಲಾಗಲಿಲ್ಲ. (ಬೇರೊಬ್ಬ ಸದಸ್ಯರಿಂದ ಆಗಲೇ ಅಳಿಸಲ್ಪಟ್ಟಿರಬಹುದು.)",
        "cannotdelete-title": "\"$1\" ಪುಟವನ್ನು ಅಳಿಸಲಾಗುವುದಿಲ್ಲ",
        "delete-hook-aborted": "ಅಳಿಸುವಿಕೆಯನ್ನು ರದ್ದುಮಾಡಿದ ಕೊಂಡಿ. ಅದು ಯಾವ ವಿವರಣೆ ನೀಡಲಿಲ್ಲ.",
+       "no-null-revision": "\"$1\" ಪುಟದ ಶೂನ್ಯ ಪುನರಾವರ್ತನೆಯನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ",
        "badtitle": "ಸರಿಯಿಲ್ಲದ ಹೆಸರು",
        "badtitletext": "ನೀವು ಕೋರಿದ ಪುಟದ ಶೀರ್ಷಿಕೆ ಸಿಂಧುವಲ್ಲದ್ದು ಅಥವ ಖಾಲಿ ಅಥವ ಸರಿಯಾದ ಕೊಂಡಿಯಲ್ಲದ ಅಂತರ-ಭಾಷೆ/ಅಂತರ-ವಿಕಿ ಸಂಪರ್ಕವಾಗಿದೆ.\nಅದರಲ್ಲಿ ಒಂದು ಅಥವ ಹೆಚ್ಚು ಶೀರ್ಷಿಕೆಯಲ್ಲಿ ಬಳಸಲು ನಿಷಿದ್ಧವಾಗಿರುವ ಅಕ್ಷರಗಳು ಇರಬಹುದು.",
+       "title-invalid-empty": "ಮನವಿ ಮಾಡಲಾದ ಪುಟದ ಶೀರ್ಷಿಕೆಯು ಖಾಲಿಯಾಗಿದೆ ಅಥವ ಕೇವಲ ನಾಮಸ್ಥಳದ ಹೆಸರನ್ನು ಮಾತ್ರ ಹೊಂದಿದೆ.",
+       "title-invalid-utf8": "ಮನವಿ ಮಾಡಲಾದ ಪುಟದ ಶೀರ್ಷಿಕೆಯು ಒಂದು ಅಮಾನ್ಯವಾದ UTF-8 ಅನುಕ್ರಮವನ್ನು ಹೊಂದಿದೆ.",
+       "title-invalid-interwiki": "ಶೀರ್ಷಿಕೆಯು ಅಂತರ-ವಿಕಿ ಕೊಂಡಿಯನ್ನು ಹೊಂದಿದೆ",
+       "title-invalid-talk-namespace": "ಮನವಿ ಮಾಡಲಾದ ಪುಟದ ಶೀರ್ಷಿಕೆಯು ಒಂದು ಅಸ್ತಿತ್ವದಲ್ಲಿರದೆ ಇರುವ ಮಾತಿನ ಪುಟವನ್ನು ಸೂಚಿಸುತ್ತದೆ.",
+       "title-invalid-characters": "ಮನವಿ ಮಾಡಲಾದ ಪುಟದ ಶೀರ್ಷಿಕೆಯು ಅಮಾನ್ಯವಾದ ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿದೆ: \"$1\".",
+       "title-invalid-relative": "ಶೀರ್ಷಿಕೆಯು ಒಂದು ಸಾಂದರ್ಭಿಕ ಮಾರ್ಗವಾಗಿರುತ್ತದೆ. ಸಾಂಧರ್ಭಿಕ ಪುಟದ ಶೀರ್ಷಿಕೆಗಳು (./, ../) ಅಮಾನ್ಯವಾಗಿರುತ್ತದೆ, ಏಕೆಂದರೆ ಬಳಕೆದಾರರ ಜಾಲವೀಕ್ಷಕದಿಂದ ಅವುಗಳನ್ನು ತಲುಪುವುದು ಸಾಮಾನ್ಯವಾಗಿ ಅಸಾಧ್ಯವಾಗಿರುತ್ತದೆ.",
        "perfcached": "ಈ ಕೆಳಗಿನ ಮಾಹಿತಿಯು cache ಇಂದ ಬಂದಿರುವುದು ಮತ್ತು ಪ್ರಸಕ್ತ ಸ್ಥಿತಿಯನ್ನು ಬಿಂಬಿಸದಿರಬಹುದು. ಹೆಚ್ಚಂದರೆ  {{PLURAL:$1|one result is|$1 results are}} cacheನಲ್ಲಿ ಲಭ್ಯವಿರುವುದು",
        "perfcachedts": "ಈ ಕೆಳಗಿನ ಮಾಹಿತಿ cache ಆಗಿರುವುದು, ಮತ್ತು ಇದರ ಕೊನೆಯ ಬದಲಾವಣೆ ಆಗಿರುವುದು $1. ಹೆಚ್ಚಂದರೆ  {{PLURAL:$4|one result is|$4 results are}} cacheನಲ್ಲಿ ಲಭ್ಯವಿರುವುದು",
        "querypage-no-updates": "ಈ ಪುಟದ ಅಪ್ಡೇಟ್‍ಗಳನ್ನು ಪ್ರಸಕ್ತವಾಗಿ ನಿಲುಗಡೆ ಮಾಡಲಾಗಿದೆ. ಇಲ್ಲಿರುವ ಮಾಹಿತಿಯನ್ನು ಸದ್ಯಕ್ಕೆ ನವೀಕರಿಸಲಾಗುವುದಿಲ್ಲ.",
index 1a7617f..4cadd83 100644 (file)
@@ -46,7 +46,9 @@
                        "콩가루",
                        "Twotwo2019",
                        "SeoJeongHo",
-                       "Banwol"
+                       "Banwol",
+                       "Ysjbserver",
+                       "LiteHell"
                ]
        },
        "tog-underline": "링크에 밑줄:",
        "userrights-lookup-user": "사용자 권한 관리",
        "userrights-user-editname": "사용자 이름 입력:",
        "editusergroup": "사용자 그룹 편집",
-       "editinguser": "'''[[User:$1|$1]]''' $2 사용자의 권한 바꾸기",
+       "editinguser": "<strong>[[User:$1|$1]]</strong> $2 {{GENDER:$1|사용자}}의 권한 바꾸기",
        "userrights-editusergroup": "사용자 그룹 편집",
        "saveusergroups": "사용자 권한 저장",
        "userrights-groupsmember": "현재 권한:",
        "right-sendemail": "다른 사용자에게 이메일 보내기",
        "right-passwordreset": "비밀번호 재설정 이메일을 보기",
        "right-managechangetags": "데이터베이스에서 [[Special:Tags|태그]]를 만들거나 지우기",
+       "right-applychangetags": "자신이 편집할 때 [[Special:Tags|태그]]를 적용하기",
+       "right-changetags": "문서의 특정 판과 특정 기록 항목에 임의의 [[Special:Tags|태그]]를 추가하거나 제거하기",
        "newuserlogpage": "사용자 만들기 기록",
        "newuserlogpagetext": "사용자가 만들어진 기록입니다.",
        "rightslog": "사용자 권한 기록",
        "action-editmyprivateinfo": "자신의 개인정보 편집",
        "action-editcontentmodel": "문서의 콘텐츠 모델을 편집",
        "action-managechangetags": "데이터베이스에서 태그를 만들거나 지울",
+       "action-applychangetags": "당신이 편집할 때 태그를 적용하기",
+       "action-changetags": "문서의 특정 판과 특정 기록 항목에 임의의 태그를 추가하거나 제거하기",
        "nchanges": "$1개 {{PLURAL:$1|바뀜}}",
        "enhancedrc-since-last-visit": "{{PLURAL:$1|마지막 방문 이후}} $1개",
        "enhancedrc-history": "역사",
        "uploaddisabledtext": "파일 올리기 기능이 비활성화되어 있습니다.",
        "php-uploaddisabledtext": "PHP 파일 올리기가 비활성화되었습니다. 파일 올리기 설정을 확인하십시오.",
        "uploadscripted": "이 파일에는 HTML이나 다른 스크립트 코드가 포함되어 있어, 웹 브라우저에서 오류를 일으킬 수 있습니다.",
+       "uploaded-remote-url-svg": "원격 URL로 style 속성이 설정된 SVG파일은 금지됩니다. 업로드된 SVG 파일에서 <code>$1=\"$2\"</code>를 발견하였습니다.",
        "uploadscriptednamespace": "이 SVG 파일은 사용할 수 없는 이름공간 '$1'을 포함하고 있습니다.",
        "uploadinvalidxml": "업로드된 파일의 XML의 구문을 분석할 수 없습니다.",
        "uploadvirus": "파일이 바이러스를 포함하고 있습니다!\n자세한 설명: $1",
        "nopagetext": "지정한 대상 문서가 존재하지 않습니다.",
        "pager-newer-n": "{{PLURAL:$1|다음 1개|다음 $1개}}",
        "pager-older-n": "{{PLURAL:$1|이전 1개|이전 $1개}}",
-       "suppress": "오버사이트",
+       "suppress": "기록보호자",
        "querypage-disabled": "이 특수 문서는 성능상의 이유로 비활성화되었습니다.",
        "apihelp": "API 도움말",
        "apihelp-no-such-module": "\"$1\" 모듈을 찾을 수 없습니다.",
        "tags-active-yes": "예",
        "tags-active-no": "아니오",
        "tags-source-extension": "확장 기능에 의해 정의됨",
-       "tags-source-manual": "사용자 봇에 의해 수동으로 적용됨",
+       "tags-source-manual": "사용자 봇에 의해 수동으로 적용됨",
        "tags-source-none": "더 이상 사용하지 않음",
        "tags-edit": "편집",
        "tags-delete": "삭제",
        "tags-activate-reason": "이유:",
        "tags-activate-not-found": "\"$1\" 태그가 존재하지 않습니다.",
        "tags-deactivate-reason": "이유:",
+       "tags-deactivate-submit": "비활성화",
        "tags-update-remove-not-allowed-one": "\"$1\" 태그를 제거하는 것은 허용되지 않습니다.",
        "tags-edit-title": "태그 편집",
        "tags-edit-manage-link": "태그 관리",
        "tags-edit-revision-selected": "[[:$2]]에서 {{PLURAL:$1|선택한 판}}:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|선택한 기록}}:",
        "tags-edit-revision-legend": "{{PLURAL:$1|이 판|$1개 판 모두}}에 태그를 추가하거나 제거",
+       "tags-edit-logentry-legend": "{{PLURAL:$1|이 기록|$1개 기록 모두}}에 태그를 추가하거나 제거",
        "tags-edit-existing-tags": "기존 태그:",
+       "tags-edit-existing-tags-none": "''없음''",
        "tags-edit-new-tags": "새 태그:",
        "tags-edit-add": "다음 태그를 추가:",
        "tags-edit-remove": "다음 태그를 제거:",
        "tags-edit-remove-all-tags": "(모든 태그를 제거)",
        "tags-edit-chosen-placeholder": "태그를 선택하세요",
+       "tags-edit-chosen-no-results": "일치하는 태그를 찾을 수 없습니다",
        "tags-edit-reason": "이유:",
        "tags-edit-revision-submit": "{{PLURAL:$1|이 판|$1개 판}}에 수정 사항을 적용",
+       "tags-edit-logentry-submit": "{{PLURAL:$1|이 기록|$1개 기록}}에 수정 사항을 적용",
+       "tags-edit-success": "수정사항이 성공적으로 적용되었습니다.",
        "tags-edit-failure": "수정 사항이 적용될 수 없습니다: $1",
        "tags-edit-nooldid-title": "대상 판이 잘못되었습니다",
        "tags-edit-nooldid-text": "이 기능을 수행할 특정 판을 제시하지 않았거나 해당 판이 없습니다.",
        "logentry-managetags-activate": "$1 {{GENDER:$2|사용자가}} \"$4\" 태그를 사용자나 봇이 사용하도록 활성화시켰습니다",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|사용자가}} \"$4\" 태그를 사용자나 봇이 사용하지 못하도록 비활성화시켰습니다",
        "log-name-tag": "태그 기록",
+       "log-description-tag": "이 문서는 사용자들이 특정 판이나 기록 항목에서 [[Special:Tags|태그]]를 추가하고 제거한 경우를 보여줍니다. 이 기록에는 편집이나 삭제, 이와 유사한 행위를 통해 태그가 붙는 경우는 기록되지 않습니다.",
+       "logentry-tag-update-add-revision": "$1 사용자가 $3 문서의 $4판에 $6 {{PLURAL:$7|태그}}를 {{GENDER:$2|추가했습니다}}",
+       "logentry-tag-update-add-logentry": "$1 사용자가 $3 문서의 기록 항목 $5에 $6 {{PLURAL:$7|태그}}를 {{GENDER:$2|추가했습니다}}",
+       "logentry-tag-update-remove-revision": "$1 사용자가 $3 문서의 $4판에서 $8 {{PLURAL:$9|태그}}를 {{GENDER:$2|제거했습니다}}",
+       "logentry-tag-update-remove-logentry": "$1 사용자가 $3 문서의 기록 항목 $5에서 $8 {{PLURAL:$9|태그}}를 {{GENDER:$2|제거했습니다}}",
        "rightsnone": "(없음)",
        "revdelete-summary": "편집 요약",
        "feedback-adding": "문서에 피드백을 올리는 중...",
        "feedback-bugornote": "기술적 문제를 구체적으로 설명할 준비가 되었다면 [$1 버그를 신고]해 주세요.\n아니면 아래에 쉬운 양식을 쓸 수 있습니다. 의견은 사용자 이름과 함께 \"[$3 $2]\"에 남겨질 것입니다.",
        "feedback-cancel": "취소",
        "feedback-close": "완료",
+       "feedback-external-bug-report-button": "기술적 보고 제기",
        "feedback-dialog-title": "피드백 제출",
+       "feedback-dialog-intro": "당신의 피드백을 제출하기 위해 아래 쉬운 양식을 사용할 수 있습니다. 당신의 의견은 당신의 사용자 이름과 함께, \"$1\" 문서에 추가됩니다.",
        "feedback-error-title": "오류",
        "feedback-error1": "오류: API 실행 결과를 인식할 수 없음",
        "feedback-error2": "오류: 편집 실패",
        "feedback-error3": "오류: API가 응답하지 않음",
+       "feedback-error4": "오류: 주어진 피드백 제목으로 게시할 수 없습니다",
        "feedback-message": "내용:",
        "feedback-subject": "제목:",
        "feedback-submit": "제출",
        "json-error-recursion": "인코딩할 값에 하나 이상의 재귀 참조",
        "json-error-inf-or-nan": "인코딩할 값에 하나 이상의 NAN이나 INF 값",
        "json-error-unsupported-type": "인코딩할 수 없는 유형의 값을 받았습니다",
+       "headline-anchor-title": "이 문단으로의 링크",
        "special-characters-group-latin": "라틴 문자",
        "special-characters-group-latinextended": "확장 라틴 문자",
        "special-characters-group-ipa": "IPA 문자",
index 50bd507..bd52da0 100644 (file)
@@ -25,6 +25,7 @@
        "tog-watchdefault": "Мен тюрлендирген бетлени эм файлланы кёзюмде тургъан тизмеме къош",
        "tog-watchmoves": "Мен атларын ауушдургъан бетлени эм файлланы кёзюмде тургъан тизмеме къош",
        "tog-watchdeletion": "Мен кетерген бетлени эм файлланы кёзюмде тургъан тизмеме къош",
+       "tog-watchrollback": "Мен ызына тёнгеретген бетлени кёздеги тизмеме къош",
        "tog-minordefault": "Тынгылау бла бары тюрлениулени «аз магъаналы» белгиле",
        "tog-previewontop": "Ал къарауну тюрлендириу бетни башы бла кёргюз",
        "tog-previewonfirst": "Тюрледириу бетге кёчгенде ал къарауну кёргюз",
        "disclaimers": "Джууаблылыкъны унамау",
        "disclaimerpage": "Project:Джууаблылыкъны унамау",
        "edithelp": "Тюрлендириуню юсюнден болушлукъ",
+       "helppage-top-gethelp": "Ангылатыу",
        "mainpage": "Баш бет",
        "mainpage-description": "Баш бет",
        "policy-url": "Project:Джорукъла",
        "notextmatches": "Бетлени текстлеринде бирчалыкъ джокъду",
        "prevn": "алдагъы {{PLURAL:$1|$1}}",
        "nextn": "эндиги {{PLURAL:$1|$1}}",
-       "prevn-title": "Алдагъы $1 {{PLURAL:$1|эсеб|эсеб}}",
+       "prev-page": "аллындагъы бет",
+       "next-page": "эндиги бет",
+       "prevn-title": "Алдагъы $1 {{PLURAL:$1|эсеб}}",
        "nextn-title": "Эндиги $1 {{PLURAL:$1|эсеб}}",
        "shown-title": "Бетде $1 {{PLURAL:$1|джазыуну}} кёргюз",
        "viewprevnext": "Къара: ($1 {{int:pipe-separator}} $2) ($3)",
        "prefs-personal": "Энчи билгиле",
        "prefs-rc": "Ахыр тюрлениуле",
        "prefs-watchlist": "Кёзде тургъан тизме",
+       "prefs-editwatchlist": "Кёзде тургъан тизмени тюрлендириу",
+       "prefs-editwatchlist-label": "Кёздеги тизмегизни джазыуларын тюрлендириу:",
+       "prefs-editwatchlist-edit": "Кёздеги тизмегизден атлагъа къарау эмда кетериу",
+       "prefs-editwatchlist-raw": "Кёздеги тизмени текстча тюрлендириу",
+       "prefs-editwatchlist-clear": "Кёздеги тизмени ариула",
        "prefs-watchlist-days": "Кёзде тургъан тизмеде кёргюзюллюк кюнлени саны:",
        "prefs-watchlist-days-max": "Максимум $1 {{PLURAL:$1|1=кюн|кюн}}",
        "prefs-watchlist-edits": "Кёзде тургъан тизмени кенглешдирилген вариантында кёргюзюллюк тюрлениулени саны:",
        "tooltip-pt-mycontris": "Сизни тюрлендириулеригизни тизмеси",
        "tooltip-pt-login": "Былайда системада регистрация этерге боллукъду, алай а ол ажымсыз керекли тюйюлдю",
        "tooltip-pt-logout": "Чыгъыу",
+       "tooltip-pt-createaccount": "Ажымсыз керек болмагъанлыкъгъа, тергеу джазыу (аккаунт) къураб системагъа кирирге теджейбиз.",
        "tooltip-ca-talk": "Бетни ичиндегин сюзюу",
        "tooltip-ca-edit": "Бу бетни тюрлендирирге болады. Сакълагъынчы ал къарауну хайырландырыгъыз.",
        "tooltip-ca-addsection": "Джангы бёлюм къура",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 башлыкъ|$1 башлыкъ}} кетерилди:",
        "watchlistedit-clear-legend": "Кёздеги тизмени ариула",
        "watchlistedit-clear-titles": "Башлыкъла:",
+       "watchlistedit-clear-submit": "Кёздеги тизмени ариула (ызына салынныкъ тюлдю!)",
+       "watchlisttools-clear": "Кёздеги тизмени ариула",
        "watchlisttools-view": "Тизмеден бетледе тюрлениуле",
        "watchlisttools-edit": "Тизмеге къарау эм тюрлендириу",
        "watchlisttools-raw": "Текстча тюрлендириу",
index 43e3837..23cf4a9 100644 (file)
                        "아라"
                ]
        },
-       "tog-underline": "Dun de Links ungerstriche:",
-       "tog-hideminor": "Dun de klein Mini-Änderunge (<strong>M</strong>) en de Liss  met „{{int:Recentchanges}}“ <strong>nit</strong> aanzeije",
+       "tog-underline": "Dun de Lengks ongerschtriische:",
+       "tog-hideminor": "Dun de klein Mini-Änderonge (<strong>M</strong>) en de Leß met de „{{lcfirst:{{int:Recentchanges}}}}“ <strong>nit</strong> aanzeije",
        "tog-hidepatrolled": "Dun de nohjeloorte Änderunge en de „{{int:recentchanges}}“ eez ens <strong>nit</strong> aanzeije",
        "tog-newpageshidepatrolled": "Dun de nohjeloorte Änderunge en de Leß „{{int:newpages}}“ eez ens <strong>nit</strong> aanzeije",
-       "tog-extendwatchlist": "Verjrößer de Oppassliss för jede Aat vun müjjeliche Änderunge ze zeije, nit nor de neuste",
+       "tog-extendwatchlist": "Verjrößer de Oppaßleß för jede Aat vun müjjeliche Ännderonge ze zeije, nit alleijns  de neuste.",
        "tog-usenewrc": "De Änderonge en de „{{int:Recentchanges}}“ un en de Oppaßleß en Jroppe zesammevaße.",
        "tog-numberheadings": "Dun de Üvverschrefte automatisch nummereere",
        "tog-showtoolbar": "De Wärkzüchleß zom Ändere aanzeije",
@@ -25,7 +25,7 @@
        "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-watchrollback": "Donn Sigge beim schtantepee retuur Nämme vun Änderonge automattesch för ming Oppaßlėß vörschlonn",
-       "tog-minordefault": "Dun all ming Änderunge jedes Mol als klein Mini-Änderunge vürschlage",
+       "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.",
        "tog-previewonfirst": "Zeich de Vör-Aansich tirek för et eetste Mol beim Bearbeide aan",
        "tog-enotifwatchlistpages": "Scheck mer en <i lang=\"en\">e-mail</i>, wann en Sigg us minge Oppaßlėß verändert woode es",
        "tog-forceeditsummary": "Froch noh, wann en däm Feld „Koot zosammejefass, Quell“ beim Avspeichere nix dren steiht",
        "tog-watchlisthideown": "Don ming eije Änderonge <strong>nit</strong> en minger Oppaßleß aanzeije",
        "tog-watchlisthidebots": "Dun jedes Mohl dä Bots ehr Änderonge <strong>nit</strong> en minger Oppaßleß zeije",
-       "tog-watchlisthideminor": "Dun jedes Mol de klein Mini-Änderunge <strong>nit</strong> en minger Oppassliss zeije",
-       "tog-watchlisthideliu": "Enjeloggte Metmaacher ier Änderunge jedesmol <strong>nit</strong> en minger Oppassliss aanzeije",
-       "tog-watchlisthideanons": "Namelose Metmaacher ier Änderunge jedesmol <strong>nit</strong> en minger Oppassliss aanzeije",
-       "tog-watchlisthidepatrolled": "Dun de nohjeloorte Änderunge et eez ens <strong>nit</strong> en minger Oppassliss aanzeije",
+       "tog-watchlisthideminor": "Donn jehdes Mohl de klein Mini-Ännderonge <strong>nit</strong> en minger Oppaßleß zeije",
+       "tog-watchlisthideliu": "Enjeloggte Metmaacher ier Änderonge jehdesmohl <strong>nit</strong> en minger Oppaßleß aanzeije",
+       "tog-watchlisthideanons": "Nahmelohse Metmaacher ier Änderonge jehdesmohl <strong>nit</strong> en minger Oppaßleß aanzeije.",
+       "tog-watchlisthidepatrolled": "Donn de nohjelohrte Oppaßleß et eez ens <strong>nit</strong> en minger Oppaßleß aanzeije.",
        "tog-ccmeonemails": "Scheck mer en Kopie, wann ich en <i lang=\"en\">e-mail</i> an ene andere Metmaacher scheck",
        "tog-diffonly": "Zeich beim Versione Verjliche nur de Ungerscheide aan (ävver pack nit noch de janze Sigg dodronger)",
-       "tog-showhiddencats": "Donn de verstoche Saachjroppe aanzeije",
+       "tog-showhiddencats": "Donn de verschtoche Saachjroppe aanzeije",
        "tog-norollbackdiff": "Donn noh „{{int:Rollback}}“ de Ungerscheide nit aanzeije",
        "tog-useeditwarning": "Donn mesch warne, wann esch vun en Sigg fott jonn, ih dat esch all ming Änderunge avjeschpeischert hann.",
        "tog-prefershttps": "Jangk emmer övver en verschlößelte Verbendong bei Enlogge",
@@ -53,7 +53,7 @@
        "underline-never": "nä",
        "underline-default": "nemm dem Brauser sing Enstellung",
        "editfont-style": "De Zoot Schreff en däm Feld för der Sigge iere Täx erin ze schriive:",
-       "editfont-default": "Em Brauser sing Ennschtällung",
+       "editfont-default": "Em Brauser singe Ennschtällung",
        "editfont-monospace": "En SchievMaschineSchreff",
        "editfont-sansserif": "En Jrotesk-Schreff",
        "editfont-serif": "En Schreff met Serife",
        "october-date": "$1. Oktoober",
        "november-date": "$1. Novämber",
        "december-date": "$1. Dezämber",
-       "pagecategories": "{{PLURAL:$1|Saachjrupp|Saachjruppe}}",
-       "category_header": "Atikkele en dä Saachjrupp „$1“",
+       "pagecategories": "{{PLURAL:$1|Saachjropp|Saachjroppe|nix}}",
+       "category_header": "Atikkele en dä Saachjropp „$1“",
        "subcategories": "Ungerjruppe",
        "category-media-header": "Dateije en dä Saachjropp „$1“",
-       "category-empty": "''En dä Saachjrupp heh sin kein Sigge un kein Dateie.''",
-       "hidden-categories": "Verstoche Saachjrupp{{PLURAL:$1||e|e}}",
-       "hidden-category-category": "Verstoche Saachjroppe",
+       "category-empty": "''En dä Saachjropp heh sin kein Sigge un kein Datteije.''",
+       "hidden-categories": "Verschtoche Saachjropp{{PLURAL:$1||e|e }}",
+       "hidden-category-category": "Verschtoche Saachjroppe",
        "category-subcat-count": "En dä Saachrupp heh {{PLURAL:$2|es ein Ungerjrupp dren:|sin $2 Ungerjruppe dren, {{PLURAL:$1|un dovun weed heh nur ein|un dovun weede $1 heh|ävver dovun weed heh keine}} aanjezeich:|sinn_er kein Ungerjruppe dren.}}",
        "category-subcat-count-limited": "En dä Saachrupp heh {{PLURAL:$1|es ein Ungerjrupp dren:|sin $1 Ungerjruppe dren:|sin kein Ungerjruppe dren.}}",
-       "category-article-count": "En dä Saachjrupp heh {{PLURAL:$2|es ein Sigg dren:|sin $2 Sigge dren, {{PLURAL:$1|un dovun weed heh nur ein|un dovun weede $1 heh|ävver dovun weed heh keine}} aanjezeich:|sin kein Sigge dren.}}",
+       "category-article-count": "En dä Saachjropp heh {{PLURAL:$2|es ein Sigg dren:|sin $2 Sigge dren, {{PLURAL:$1|un dovun weed heh nur ein|un dovun weede $1 heh|ävver dovun weed heh keine}} aanjezeijsch:|sin kein Sigge dren.}}",
        "category-article-count-limited": "En dä Saachrupp heh {{PLURAL:$1|es ein Sigg dren:|sin $1 Sigge dren:|es kein Sigg dren.}}",
        "category-file-count": "En dä Saachrupp heh {{PLURAL:$2|es ein Datei dren:|sin $2 Dateie dren, {{PLURAL:$1|un dovun weed heh nur ein|un dovun weede $1 heh|ävver dovun weed heh kein}} aanjezeich:|es kein Datei dren.}}",
-       "category-file-count-limited": "En dä Saachrupp heh {{PLURAL:$1|es ein Datei dren:|sin $1 Dateie dren:|es kein Datei dren.}}",
+       "category-file-count-limited": "En dä Saachrupp heh {{PLURAL:$1|es ein Dattei dren:|sin $1 Datteie dren:|es kein Dattei dren.}}",
        "listingcontinuesabbrev": "… (wigger)",
        "index-category": "Sigge, di de Söhkmaschihne opnämme sulle",
        "noindex-category": "Sigge, di de Söhkmaschihne nit opnämme sulle",
        "article": "Atikkel",
        "newwindow": "(Mäht e neu Finster op, wann Dinge Brauser dat kann)",
        "cancel": "Stopp! Avbreche!",
-       "moredotdotdot": "Mieh&nbsp;…",
-       "morenotlisted": "Et jeiht noch wigger&nbsp;&hellip;",
+       "moredotdotdot": "Mih&nbsp;…",
+       "morenotlisted": "Et jeiht noch wigger&nbsp;",
        "mypage": "Metmaachersigg",
        "mytalk": "Klaafsigg",
        "anontalk": "Klaaf för de IP-Adress",
        "qbfind": "Fingk",
        "qbbrowse": "Aanluure",
        "qbedit": "Ändere",
-       "qbpageoptions": "Sigge Enstellunge",
+       "qbpageoptions": "Sigge_Ennschtällonge",
        "qbmyoptions": "Ming Sigge",
        "faq": "FAQ",
        "faqpage": "Project:FAQ",
        "view-foreign": "Op $1 beloohre",
        "edit": "Ändere",
        "edit-local": "Aanmärkonge heh em Wikki beärbeide",
-       "create": "Aanlääje",
+       "create": "Aanlähje",
        "create-local": "Aanmärkonge heh em Wikki derbei donn",
        "editthispage": "De Sigg ändere",
        "create-this-page": "Neu aanläje",
        "delete": "Fottschmieße",
        "deletethispage": "De Sigg fottschmieße",
        "undeletethispage": "Wider zeröck holle",
-       "undelete_short": "{{PLURAL:$1|ein Änderung|$1 Änderunge}} zeröckholle",
-       "viewdeleted_short": "{{PLURAL:$1|eijn fottjeschmesse Änderung|$1 fottjeschmesse Änderunge|keij fottjeschmesse Änderunge}} beloore",
+       "undelete_short": "{{PLURAL:$1|ein Änderuog|$1 Änderonge|kein Änderog}} zeröckholle",
+       "viewdeleted_short": "{{PLURAL:$1|eijn fottjeschmeße Änderong|$1 fottjeschmeße Änderonge|keij fottjeschmeße Änderonge}} belohre",
        "protect": "Schötze",
        "protect_change": "der Schotz ändere",
        "protectthispage": "De Sigg schötze",
        "unprotect": "Schoz ändere",
        "unprotectthispage": "Siggeschoz ändere",
        "newpage": "Neu Sigg",
-       "talkpage": "Övver die Sigg heh schwaade",
+       "talkpage": "Övver di Sigg heh schwahde",
        "talkpagelinktext": "Klaaf",
-       "specialpage": "{{int:nstab-special}}",
+       "specialpage": "Extrasigg",
        "personaltools": "Metmaacher Werkzüch",
        "articlepage": "Aanluure wat op dä Sigg drop steiht",
        "talk": "Klaafe",
        "toolbox": "Wärkzüsch",
        "userpage": "Däm Metmaacher sing Sigg aanluure",
        "projectpage": "De Projeksigg aanluure",
-       "imagepage": "De Sigg övver die Dattei aanluure",
+       "imagepage": "De Sigg övver di Datteij aanlohre",
        "mediawikipage": "Di Sigg med enem Tex uss em Ingerfäjß vum Wiki aanluure",
        "templatepage": "De Schablohn ier Sigk aanluere",
        "viewhelppage": "De Hölpsigg aanluure",
        "pool-timeout": "Zick zem Waade affjeloufe, diweil mer op en Sperr am Waade wohre",
        "pool-queuefull": "De Schlang zom Waade op ene freie Prozäß zom Beärbeide es vull",
        "pool-errorunknown": "Dä Fähler kenne mer nit",
-       "pool-servererror": "Dä <i lang=\"en\" xml:lang=\"en\">pool counter</i> Deens schteiht nit zor Verföhjong ($1).",
+       "pool-servererror": "Dä \"pool counter\" Deens schteiht nit zor Verföhjong ($1).",
        "poolcounter-usage-error": "Fähler beim Aanwände: $1",
        "aboutsite": "Övver {{GRAMMAR:Akkusativ|{{ucfirst:{{SITENAME}}}}}}",
        "aboutpage": "Project:Övver {{GRAMMAR:Akkusativ|{{ucfirst:{{SITENAME}}}}}}",
        "privacypage": "Project:Daateschotz un Jeheimhaldung",
        "badaccess": "Nit jenoch Räächde",
        "badaccess-group0": "Do häs nit jenoch Räächde.",
-       "badaccess-groups": "Wat Do wells, dat dürfe nor de Metmaacher us {{PLURAL:$2|dä Jrupp â\80\9e$1â\80\9c.|eine vun dä Jruppe: $1.|jaa keine Jrupp.}}",
-       "versionrequired": "De Version $1 vun MediaWiki Soffwär es nüdich",
-       "versionrequiredtext": "De Version $1 vun MediaWiki Soffwär es nüdich, öm die Sigg heh bruche ze künne. Süch op [[Special:Version|de Versionssigg]], wat mer heh för ene Soffwärstand han.",
+       "badaccess-groups": "Wat Do wells, dat dörfe nor de Metmaacher us {{PLURAL:$2|dä Jropp â\80\9e$1â\80\9c.|eine vun dä Jroppe: $1.|jaa keine Jropp.}}",
+       "versionrequired": "De Väsjohn $1 vum MehdijaWikki es nühdesch",
+       "versionrequiredtext": "De Väsjohn $1 vum MehdijaWikki sing Projramme es nühdich, öm di Sigg heh bruche ze künne. Süsch op [[Special:Version|de Väsjohns_Sigg]], wat mer heh för ene Schtand han.",
        "ok": "Jot!",
        "pagetitle": "$1 — {{SITENAME}}",
        "backlinksubtitle": "←&nbsp;$1",
        "newmessagesdifflinkplural": "{{PLURAL:$1|läzde Änderong|läzde Änderonge|kein Änderonge}}",
        "youhavenewmessagesmulti": "Do häs neu Nachrichte op $1",
        "editsection": "Ändere",
-       "editold": "Heh die Version ändere",
+       "editold": "Heh di Väsjohn änndere",
        "viewsourceold": "Wikitex zeije",
        "editlink": "ändere",
        "viewsourcelink": "aanloore",
        "confirmable-no": "Nää",
        "thisisdeleted": "$1 - aanluure oder widder zeröckholle?",
        "viewdeleted": "$1 aanzeije?",
-       "restorelink": "{{PLURAL:$1|eijn fottjeschmesse Änderung|$1 fottjeschmesse Änderunge|keij fottjeschmesse Änderunge}}",
+       "restorelink": "{{PLURAL:$1|eijn fottjeschmeße Änderong|$1 fottjeschmeße Änderonge|keij fottjeschmeße Änderonge}}",
        "feedlinks": "Abonnomangs-Kannal (<i lang=\"en\">Feed</i>):",
        "feed-invalid": "Esu en Zoot Abonnomang-Kannal (<i lang=\"en\">Feed</i>) jitt et nit.",
        "feed-unavailable": "Mer han kein esu en Abonnomangs-Kannäl (<i lang=\"en\">Feeds</i>) aam Loufe.",
        "page-atom-feed": "Atom-Abonnomang-Kannal (<i lang=\"en\">Feed</i>) för de Sigg „$1“",
        "feed-atom": "Atom",
        "feed-rss": "RSS",
-       "red-link-title": "$1 — en Sigg, diet noch nit jitt",
+       "red-link-title": "$1 — en Sigg, di_j_et noch nit jitt",
        "sort-descending": "Röckwääts zoteere",
        "sort-ascending": "Opwääts zoteere",
        "nstab-main": "Atikkel",
        "nstab-user": "Metmaachersigg",
        "nstab-media": "Medijesigg",
-       "nstab-special": "Extrasigg",
+       "nstab-special": "{{int:specialpage}}",
        "nstab-project": "Projeksigg",
        "nstab-image": "Dattei",
        "nstab-mediawiki": "Tex/Nohreesch",
-       "nstab-template": "Schablon",
+       "nstab-template": "Schablohn",
        "nstab-help": "Hölp",
-       "nstab-category": "Saachjrupp",
-       "nosuchaction": "Die Aufgab (action) kenne mer nit",
-       "nosuchactiontext": "<strong>Na su jet:</strong> De Aufgab us dä URL, die do hinger „<code>action=</code>“ dren steiht, jo die kennt heh dat Wiki jar nit.\nDo künns Desch vertipp han, udder ene verkeehte Lengk hät Desch noh heh jebraat.\nEt künnt sesch och öm ene Fäähler en dä Sofware fum Wiki handelle.",
+       "nstab-category": "Saachjropp",
+       "nosuchaction": "Di Aufgab („<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">action</code>“) känne mer nit",
+       "nosuchactiontext": "<strong>Na su jet:</strong> De Aufgab us däm <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Uniform Ressource Locator\">URL</i>, di do hinger „<code>action=</code>“ dren steiht, joh, di kennt heh dat Wiki jar nit.\nDo künns Desch vertipp han, udder ene verkeehte Lengk hät Desch noh heh jebraat.\nEt künnt sesch och öm ene Fäähler en dä Sofware fum Wiki handelle.",
        "nosuchspecialpage": "Esu en {{int:nstab-special}} ha'mer nit",
        "nospecialpagetext": "De aanjefrochte {{int:nstab-special}} jitt et nit, de [[Special:SpecialPages|Leß met de {{int:nstab-special}}e]] helf Der wigger.",
        "error": "Fähler",
        "internalerror": "De Wiki-Soffwär hät ene Fähler jefunge",
        "internalerror_info": "Enne ennere Fäähler en de ẞoffwäer es opjetrodde: $1",
        "internalerror-fatal-exception": "Ene schlemme Fähler vun dä Zoot „$1“ es opjetrodde.",
-       "filecopyerror": "Kunnt de Datei „$1“ nit noh „$2“ kopeere.",
-       "filerenameerror": "Kunnt de Datei „$1“ nit op „$2“ ömdäufe.",
-       "filedeleteerror": "Kunnt de Datei „$1“ nit fottschmieße.",
+       "filecopyerror": "Kunnt de Dattei „$1“ nit noh „$2“ kopehre.",
+       "filerenameerror": "Kunnt de Dattei „$1“ nit op „$2“ ömdäufe.",
+       "filedeleteerror": "Kunnt de Dattei „$1“ nit fottschmihße.",
        "directorycreateerror": "Dat Verzeichnis „$1“ kunnte mer nit aanläje.",
        "directoryreadonlyerror": "En dat Verzeischnes „$1“ darf mer nid eren schriive.",
        "directorynotreadableerror": "En däm Verzeischnes „$1“ kam_mer nix lässe.",
-       "filenotfound": "Kunnt de Datei „$1“ nit finge.",
+       "filenotfound": "Kunnt de Dattei „$1“ nit fenge.",
        "unexpected": "Domet hät keiner jerechnet: „$1“=„$2“",
        "formerror": "Dat es donevve jejange: Wor nix, met däm Fomular.",
        "badarticleerror": "Dat jeiht met heh dä Sigg nit ze maache.",
        "delete-hook-aborted": "Et Fottschmiiße wood affjebroche övver ene sujenannte „Hoke“ en de ẞoffwäer.\nEne Jrond weße mer nit.",
        "no-null-revision": "Mer kunnte kein onveränderte neue Väsjohn vun dä Sigg „$1“ aanlääje.",
        "badtitle": "Verkihrte Üvverschreff",
-       "badtitletext": "De Üvverschreff es esu nit en Odenung. Et muss jet dren stonn.\nEt künnt sin, dat ein vun de speziell Zeiche dren steiht,\nwat en Üvverschrefte nit erlaub es.\nEt künnt ussinn, wie ene InterWikiLink,\ndat jeiht ävver nit.\nMuss De repareere.",
+       "badtitletext": "De Üvverschreff es esu nit en Ohdenong. Et moß jät dren schtonn.\nEt künnt sin, dat ein vun de schpezjäll Zeijsche dren schteiht,\nwat en Üvverschrefte nit älaub es.\nEt künnt ußsinn, wie ene EngerWikiLenk,\ndat jeiht ävver nit.\nMoß De reparehre.",
+       "title-invalid-empty": "De jewönschter Övverschrevv vun dä Sigg es läddesch, udder et es blohs e Appachtemang aam Aanfang dren.",
+       "title-invalid-utf8": "En dä jewönschte Övverschreff för di Sigg es ene kapodde <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Däm Unicode singe Universal Coded Character Set + Transformation Format—8-Bit\">UTF-8</i>-Anndeijl.",
+       "title-invalid-interwiki": "En dä jewönschte Övverschrevv es ene Engerwikkilengk dren, un dä kam_mer doh nit bruche.",
+       "title-invalid-talk-namespace": "De jewönschte Övverschreff för di Sigg wöhr för en Klaafsigg, di et nit jävve kann.",
+       "title-invalid-characters": "En dä jewönschte Övverschreff för di Sigg sin onjöllteje Zeijsche: „$1“.",
+       "title-invalid-relative": "Di jewönschte Övverschreff sühd uß, wi ene rellatihve Pahd. Esu en Övverschreffte lohße mer nit zoh, weil se met de mihzde Brausere nit afjerohfe wähde künne.",
+       "title-invalid-magic-tilde": "En dä jewönschte Övverschreff för di Sigg es de Reih uß 4 Tilde (<nowiki>~~~</nowiki>) un di es onjöltesch.",
+       "title-invalid-too-long": "Di jewönschte Övverschreff för di Sigg es zoh lang. Se darref nit mih wi {{PLURAL:$1|ein|$1|kei}} <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Byte{{PLURAL:$1||s|}}</i> lang sin, em Kohd <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Däm Unicode singe Universal Coded Character Set + Transformation Format—8-Bit\">UTF-8</i>.",
+       "title-invalid-leading-colon": "En dä jewönschter Övverschrevv för di Sigg es ene onjöllteje Dubbelpungk aam Aanfang dren.",
        "perfcached": "Di Daate heh noh kumme usem Zweschespeicher (cache) un künnte nit mieh janz de allerneuste sin.\n{{PLURAL:$1|Bloß ein Antwoot es|Nit mieh wi $1 Antwoote sin|Kein Antwoot es}} doh faßjehallde un ze han.",
        "perfcachedts": "De Daate heenoh kumme usem Zweschespeicher (<i lang=\"en\">cache</i>) un woodte aam $2 öm $3 opjenumme. Se künnte nit janz de allerneuste sin.\n{{PLURAL:$4|Bloß ein Antwoot es|Nit mieh wi $4 Antwoote sind|Kein Antwoot es}} doh ze han.",
-       "querypage-no-updates": "'''Heh die Sigg weed nit mieh op ene neue Stand jebraat.'''",
+       "querypage-no-updates": "'''Heh di Sigg weed nit mih op ene neue Schtand jebraat.'''",
        "viewsource": "Wikitex aanluure",
-       "viewsource-title": "Der Wikitäx vun dä Sigg „$1“ belooere.",
+       "viewsource-title": "Der Wikkitäx vun dä Sigg „$1“ belohre.",
        "actionthrottled": "Dat ka'mer nit esu öff maache",
        "actionthrottledtext": "Dat darf mer nor en jeweße Zahl Mole hengerenander maache. Do bes jrad aan de Jrenz jekumme. Kannze jo en e paar Menutte widder probeere.",
-       "protectedpagetext": "Die Sigg es jeschöz, un mer kann se nit ändere.",
+       "protectedpagetext": "Di Sigg es jeschöz, un mer kann se nit änndere.",
        "viewsourcetext": "Heh es dä Sigg ier Wikitex zom Belooere un Koppeere:",
        "viewyourtext": "Do kanns Ding Änderonge aan heh dä Sigg beloore un kopeere:",
-       "protectedinterface": "Op dä Sigg heh steiht Tex usem Interface vun de Wiki-Soffwär. Dröm es die jäje Änderunge jeschötz, domet keine Mess domet aanjestallt weed.",
-       "editinginterface": "<strong>Opjepass:</strong>\nOp dä Sigg heh schteiht Täx uß de Beehnbovverfläsch vum Wikki.\nDenk dran, heh Ändere deit et\nUssinn un de Wöht ändere, met dänne et Wiki op de Metmaacher un de\nBesöhker aankütt!",
+       "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.",
-       "cascadeprotected": "Die 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",
+       "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 CSS-Sigg heh nit ändere. Se jehööt enem andere Metmacher un es e Stöck funn dämm sing eije Enstellunge.",
-       "customjsprotected": "Do darfs di JavaSkep-Sigg heh nit ändere. Se jehööt enem andere Metmacher un es e Stöck funn dämm sing eije Enstellunge.",
+       "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.",
+       "customjsprotected": "Do darfs di JavaSkep-Sigg heh nit änndere. Se jehööd enem anndere Metmaacher, un es e Schtök fun dämm singe Enschtällonge.",
        "mycustomcssprotected": "Do häs nit dat Rääsch, he di Sigg med enem <i lang=\"en\" xml:lang=\"en\">CSS</i> ze verändere.",
        "mycustomjsprotected": "Do häs nit dat Rääsch, he di Sigg med enem JavaSkrep ze verändere.",
        "myprivateinfoprotected": "Do häs nit dat Rääsch, Ding päsöönlesche Aanjaabe ze verändere.",
        "exception-nologin": "Nit enjelogg",
        "exception-nologin-text": "Heh di Sigg udder heh dä Opdraach jeiht blooß, wann De heh enjelogg bes.",
        "exception-nologin-text-manual": "De mööds ald $1, öm heh di Sigg udder di Axjuhn zohjriife ze dörve.",
-       "virus-badscanner": "Fääler en de Enstellunge: Dat Projramm ''$1'' fö noh Kompjuterwiere ze söke, dat kenne mer nit.",
+       "virus-badscanner": "Fähler en de Ennschtällonge: Dat Projramm ''$1'' fö noh Kompjuterwiere ze söhke, dat känne mer nit.",
        "virus-scanfailed": "Dat Söhke eß donevve jejange, dä Kood för dä Fähler es „$1“.",
        "virus-unknownscanner": "Dat Projamm fö noh Komjuterviere ze sööke kenne mer nit:",
        "logouttext": "'''Jäz bes de usjelogg'''\n\nKünnt sin, dat De de ein udder andere Sigg noch wigger aanjezeich kriß, wie wann de noch enjelogg wörs. Dun Dingem Brauser singe <i lang=\"en\">Cache</i> fottschmieße udder läddesch maache, öm uß dä Nommer erus ze kumme!",
        "yourname": "Metmaacher_Naame:",
        "userlogin-yourname": "Der Metmaacher_Name",
        "userlogin-yourname-ph": "Donn Dinge Metmaachername aanjevve",
-       "createacct-another-username-ph": "Jivv ene Metmaacher-Naame aan",
+       "createacct-another-username-ph": "Jivv ene Metmaacher_Nahme aan",
        "yourpassword": "Paßwoot:",
        "userlogin-yourpassword": "Et Paßwoot",
        "userlogin-yourpassword-ph": "Donn Ding Paßwood enjävve",
        "createacct-email-ph": "Jiv Ding Addräß för de <i lang=\"en\">e-mail</i> en!",
        "createacct-another-email-ph": "Jivv en Addräß för de <i lang=\"en\" xml:lang=\"en\">e-mail</i> aan",
        "createaccountmail": "Scheck mer en <i lang=\"en\">e-mail</i> met enem neu ußjedaachte Paßwood op Zick",
-       "createacct-realname": "Dinge börjerlesche Naame, kam_mer och fott lohße",
+       "createacct-realname": "Dinge börjerlesche Nahme, kans De och fott lohße",
        "createaccountreason": "Jrond:",
        "createacct-reason": "Der Jrond udder Aanlaß",
        "createacct-reason-ph": "Woröm deihs De noch ene Zohjang aanlääje?",
        "password-login-forbidden": "Dä Zohjang met däm Metmaacher-Name un däm Paßwoot es verbodde.",
        "mailmypassword": "Lohß jonn!",
        "passwordremindertitle": "Neu Paßwoot för {{GRAMMAR:Dat|{{SITENAME}}}}",
-       "passwordremindertext": "Jod müjjelich, Do wors et selver,\nvun de IP Adress $1,\njedenfalls hät eine aanjefroch, dat\nmer Dir e neu Passwood zoschecke soll,\nför et Enlogge en {{GRAMMAR:Akk|{{SITENAME}}}} op\n{{FULLURL:{{MediaWiki:Mainpage}}}}\n($4)\n\nAlsu, e neu Passwood för \"$2\"\nes jetz vürjemerk: \"$3\".\nDo solls De tirek jlich enlogge,\nun dat Passwood widder ändere,\nwann dat esu Dinge Wonsch wor.\nDat neu Passwood leuf noh {{PLURAL:$5|einem Daach|$5 Dääch|noch hück}} us.\nDä Transport övver et Netz met e-mail\nes unsecher, do künne Fremde metlese,\nun winnichstens de Jeheimdeenste dun\ndat och. Usserdäm es \"$3\"\nvilleich nit esu jod ze merke?\n\nWann nit Do, söndern söns wä noh däm\nneue Passwood verlangk hät, wann De\nDich jetz doch widder aan Ding ahl Passwood\nentsenne kanns, jo do bruchs de jar nix\nze don, do kanns De Ding ahl Passwood wigger\nbruche, un die e-mail heh, die kanns De\njlatt verjesse.\n\nEne schöne Jroß vun {{GRAMMAR:Dat|{{SITENAME}}}}.\n\n--\n{{SITENAME}}: {{fullurl:{{Mediawiki:mainpage}}}}",
-       "noemail": "Dä Metmaacher „$1“ hät en dämm sing Enstellunge kein E-Mail Adress aanjejovve.",
+       "passwordremindertext": "Jod müjjelich, Do wors et selver,\nvun de IP Adress $1,\njedenfalls hät eine aanjefroch, dat\nmer Dir e neu Passwood zoschecke soll,\nför et Enlogge en {{GRAMMAR:Akk|{{SITENAME}}}} op\n{{FULLURL:{{MediaWiki:Mainpage}}}}\n($4)\n\nAlsu, e neu Passwood för \"$2\"\nes jetz vürjemerk: \"$3\".\nDo solls De tirek jlich enlogge,\nun dat Passwood widder ändere,\nwann dat esu Dinge Wonsch wor.\nDat neu Passwood leuf noh {{PLURAL:$5|einem Daach|$5 Dääch|noch hück}} us.\nDä Transport övver et Netz met e-mail\nes unsecher, do künne Fremde metlese,\nun winnichstens de Jeheimdeenste dun\ndat och. Usserdäm es \"$3\"\nvilleich nit esu jod ze merke?\n\nWann nit Do, söndern söns wä noh däm\nneue Passwood verlangk hät, wann De\nDich jetz doch widder aan Ding ahl Passwood\nentsenne kanns, jo do bruchs de jar nix\nze don, do kanns De Ding ahl Passwood wigger\nbruche, un di e-mail heh, di kanns De\njlatt verjäße.\n\nEne schöne Jroß vun {{GRAMMAR:Dat|{{SITENAME}}}}.\n\n--\n{{SITENAME}}: {{fullurl:{{Mediawiki:mainpage}}}}",
+       "noemail": "Dä Metmaacher „$1“ hät en dämm sing Ennschtällonge kein <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i>-Adräß aanjejovve.",
        "noemailcreate": "Do moß en jöltijje Adräß för Ding <i lang=\"en\">e-mail</i> aanjävve",
        "passwordsent": "E neu Passwood es aan de E-Mail Adress vun däm Metmaacher „$1“ ungerwähs. Meld dich domet aan, wann De et häs. Dat ahle Passwood bliev erhalde un kann och noch jebruch wääde, bes dat De Dich et eetste Mol met däm Neue enjelogg häs.",
        "blocked-mailpassword": "Ding IP Adress es blockeet.",
-       "eauthentsent": "En <i lang=\"en\">e-mail</i> es jäz ungerwähs aan di Adräß en de Enschtällonge. Ih dat mieh <i lang=\"en\">e-mails</i> verscheck wääde künne, moß mer maache, wat en dä <i lang=\"en\">e-mail</i> dren schteiht, öm ze beschtääteje, dat di Adräß schtemmp.",
+       "eauthentsent": "En <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i> es jäz ungerwähs aan di Adräß en de Enschtällonge. Ih dat mih <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mails</i> verschek wääde künne, moß mer maache, wat en dä <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i> dren schteiht, öm ze beschtähteje, dat di Adräß schtemmp.",
        "throttled-mailpassword": "En Erennerung för di Passwood es alld ongerwähs, un mieh wi eimol en {{PLURAL:$1|der Schtond|$1 Schtonde|nidd ens ener Schtond}} dommer kein schecke.",
        "mailerror": "Fähler beim E-Mail Verschecke: $1.",
-       "acct_creation_throttle_hit": "<b>Schad.</b>\nBesöker fun däm Wiki heh han övver de IP-Addräß, övver di De jraad aam\nNetz aam hange bes, övver der letzte Daach (24 Stunde) zosamme jenumme ald\n{{PLURAL:$1|eine|$1|keine}} mol enen neuen Metmaacher aanjelaht.\nMieh sin nit müjjelich. Dröm künne Lück, die jraad die IP-Addräß han,\nför der Momang nit noch mit Metmaacher neu aanmellde.",
+       "acct_creation_throttle_hit": "<strong>Schahd.</strong>\nBesöker fun däm Wiki heh han övver de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Internet Protocol\">IP</i>-Adräß, övver di De jraad aam\nNetz aam hange bes, övver der letzte Daach (24 Schtonde) zosamme jenumme ald\n{{PLURAL:$1|eine|$1|keine}} mol enen neuen Metmaacher aanjelaht.\nMih sin nit müjjelich. Dröm künne Lück, di jraad di <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Internet Protocol\">IP</i>-Adräß han,\nför der Momang nit noch mih Metmaacher neu aanmällde.",
        "emailauthenticated": "De Adräß för Ding <i lang=\"en\" xml:lang=\"en\">e-mail</i> wood aam $2 öm $3 Uhr beschtähtisch.",
        "emailnotauthenticated": "De Adräß för Ding <i lang=\"en\" xml:lang=\"en\">e-mail</i> wood noch nit beschtähtisch. Dröm kann kein E-Mail aan Desch jescheck wääde för:",
        "noemailprefs": "Dun en E-Mail Adress endrage, domet dat et all fluppe kann.",
        "cannotchangeemail": "Sing <i lang=\"en\">e-mail<i> Addreß kam_mer ehe em Wiki nit ändere.",
        "emaildisabled": "Heh dat Wiki kann kein <i lang=\"en\">e-mails</i> verschecke.",
        "accountcreated": "Aanjemeldt",
-       "accountcreatedtext": "De Aanmeldung för dä Metmaacher [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|{{{int:talk/ksh}}}]]) es fäädesch.",
+       "accountcreatedtext": "De Aanmeldung för dä Metmaacher [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|{{{int:talk/ksh}}}]]) es fähdesch.",
        "createaccount-title": "Enne neue Metmaacher aanmelde för {{GRAMMAR:Akkusativ|{{SITENAME}}}}",
-       "createaccount-text": "Einer hät Desch als Medmaacher „$2“ {{GRAMMAR:em|{{SITENAME}}}} aanjemelldt.\nDat es e Wiki, un De fengks et onger däm URL:\n $4\nDat Passwoot „$3“ hät sesch dat Wiki för Disch usjewörfelt.\nDon jlisch enlogge un donn et ändere.\n\nWann Dat all böömesch Dörver för Desch sin, da fojeß heh di\ne-mail eijfach. Wann De en däm Wikki nit metmaache wells, och.",
+       "createaccount-text": "Einer hät Desch als Metmaacher „$2“ {{GRAMMAR:em|{{SITENAME}}}} aanjemälldt.\nDat es e Wikki, un De fengks et onger däm URL:\n $4\nDat Paßwoot „$3“ hät sesch dat Wiki för Desch usjewörfelt.\nDon jlisch enlogge un donn et änndere.\n\nWann Dat all böömesch Dörver för Desch sin, da fojeß heh di\ne-mail eijfach. Wann De en däm Wikki nit metmaache wells, och.",
        "login-throttled": "Do häs zo öff, zo vill, un zo lang en de letzde Zick probeet, ennzelogge.\nWaad e Wielsche ävver $1, ih dat De et wider versöhks.",
        "login-abort-generic": "Dat Enlogge hät nit jeflup.",
        "login-migrated-generic": "Dinge Zohjang zom Wikki es verändert woode un Dinge Metmaacher_Nahme jidd_et heh nit mieh.",
        "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ääde. Bes esu jood_un donn e neu Paßwoot ußsöhke, udder jangk op {{int:resetpass-submit-cancel}}, öm et schpääder ze säze.",
+       "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.",
        "passwordreset": "Et Paßwoot zeröck säze",
        "passwordreset-text-one": "Föll dat Fommolaa uß, öm Ding Paßwoot ze ändere.",
        "passwordreset-legend": "Et Paßwoot zeröck säze",
        "passwordreset-disabled": "Et Paßwoot zeröck ze säze es heh em Wiki afjeschalldt.",
        "passwordreset-emaildisabled": "Heh dat Wiki määt nix met <i lang=\"en\">e-mail</i>!",
-       "passwordreset-username": "Metmaacher Name:",
+       "passwordreset-username": "Metmaacher_Nahme:",
        "passwordreset-domain": "Domähn:",
        "passwordreset-capture": "Wells De di <i lang=\"en\">e-mail</i> beloore?",
        "passwordreset-capture-help": "Wann De heh e Krüzje määß, kriß de di <i lang=\"en\">e-mail</i> met däm neue Paßwoot aanjezeish, ußer dat dä Metmaacher se och zohjescheck kritt.",
        "passwordreset-email": "De Adräß för de <i lang=\"en\">e-mail</i>:",
        "passwordreset-emailtitle": "Einzelheite för der Zohjang op {{GRAMMAR:Akkusativ|{{SITENAME}}}}",
-       "passwordreset-emailtext-ip": "Do künns et sällver jewääse sin, öhnswää em Internet hät vun dä IP-Adräß $1 öm\ne neu Paßwoot jefrooch, för Dinge Zohjäng op {{GRAMMAR:Akkusativ|{{SITENAME}}}}\n$4\nHeh {{PLURAL:$3|dä Metmaacher hät|di Metmaacher han|hät keine Metmaacher}} Ding e-mail Addräß:\n\n$2\n\n{{PLURAL:$3|Dat Zweschepaßwoot leuf|Di Zweschepaßwööter loufe|Kein Zweschepaßwoot leuf}} en {{PLURAL:$5|enem Daach|$5 Dääsch|keinem Daach}} uß.\nDonn Desch jäz enlogge, un e neu Paßwoot faßlääje. Wann ene Andere wi\nDo dat heh aanjestüßße hät, udder wann De Desch widder aan Ding Paßwoot\nentsenne kanns, un et nimmieh ändere wells, udder es suwwisu weiß, dann\nmoß De jäz jaa nix donn, un kanns Ding Paßwoot wigger bruche.",
-       "passwordreset-emailtext-user": "Dä Metmaacher $1 vun {{GRAMMAR:Dativ|{{SITENAME}}}} hät öm e neu Paßwoot jefrooch,\nför Dinge Zohjäng op {{GRAMMAR:Akkusativ|{{SITENAME}}}}\n$4\nHeh {{PLURAL:$3|dä Metmaacher hät|di Metmaacher han|hät keine Metmaacher}} Ding e-mail Addräß:\n\n$2\n\n{{PLURAL:$3|Dat Zweschepaßwoot leuf|Di Zweschepaßwööter loufe|Kein Zweschepaßwoot leuf}} en {{PLURAL:$5|enem Daach|$5 Dääsch|keinem Daach}} uß.\nDonn Desch jäz enlogge, un e neu Paßwoot faßlääje. Wann ene Andere wi\nDo dat heh aanjestüßße hät, udder wann De Desch widder aan Ding Paßwoot\nentsenne kanns, un et nimmieh ändere wells, udder es suwwisu weiß, dann\nmoß De jäz jaa nix donn, un kanns Ding Paßwoot wigger bruche.",
+       "passwordreset-emailtext-ip": "Do künns et sällver jewääse sin, öhnswää em Internet hät vun dä IP-Adräß $1 öm\ne neu Paßwoot jefrooch, för Dinge Zohjäng op {{GRAMMAR:Akkusativ|{{SITENAME}}}}\n$4\nHeh {{PLURAL:$3|dä Metmaacher hät|di Metmaacher han|hät keine Metmaacher}} Ding e-mail Addräß:\n\n$2\n\n{{PLURAL:$3|Dat Zweschepaßwoot leuf|Di Zweschepaßwööter loufe|Kein Zweschepaßwoot leuf}} en {{PLURAL:$5|enem Daach|$5 Dääsch|keinem Daach}} uß.\nDonn Desch jäz enlogge, un e neu Paßwoot faßlääje. Wann ene Andere wi\nDo dat heh aanjestüßße hät, udder wann De Desch widder aan Ding Paßwoot\nentsenne kanns, un et nimmih ändere wells, udder es suwwisu weiß, dann\nmoß De jäz jaa nix donn, un kanns Ding Paßwoot wigger bruche.",
+       "passwordreset-emailtext-user": "Dä Metmaacher $1 vun {{GRAMMAR:Dativ|{{SITENAME}}}} hät öm e neu Paßwoot jefrooch,\nför Dinge Zohjäng op {{GRAMMAR:Akkusativ|{{SITENAME}}}}\n$4\nHeh {{PLURAL:$3|dä Metmaacher hät|di Metmaacher han|hät keine Metmaacher}} Ding e-mail Addräß:\n\n$2\n\n{{PLURAL:$3|Dat Zweschepaßwoot leuf|Di Zweschepaßwööter loufe|Kein Zweschepaßwoot leuf}} en {{PLURAL:$5|enem Daach|$5 Dääsch|keinem Daach}} uß.\nDonn Desch jäz enlogge, un e neu Paßwoot faßlääje. Wann ene Andere wi\nDo dat heh aanjestüßße hät, udder wann De Desch widder aan Ding Paßwoot\nentsenne kanns, un et nimmih ändere wells, udder es suwwisu weiß, dann\nmoß De jäz jaa nix donn, un kanns Ding Paßwoot wigger bruche.",
        "passwordreset-emailelement": "Metmaacher Name: $1\nEijmohl-Paßwoot: $2",
        "passwordreset-emailsent": "En <i lang=\"en\">e-mail</i> met Aanjaabe zom neue Paßwoot för der Zohjang heh es verscheck.",
        "passwordreset-emailsent-capture": "En <i lang=\"en\">e-mail</i> met Aanjaabe zom neue Paßwoot för der Zohjang heh es verscheck woode. Heh dronger kanns De se lässe.",
        "headline_sample": "Üvverschreff",
        "headline_tip": "Övverschreff om bövverschte Nivvo",
        "nowiki_sample": "Heh kütt dä Tex hen, dä vun de Wiki-Soffwär nit bearbeid, un en Rauh jelooße wääde soll",
-       "nowiki_tip": "Der Wiki-Code för et Fommatteere üvverjonn",
+       "nowiki_tip": "Der Wikki_Kohd för et Fommattehre övverjonn",
        "image_sample": "Beispill.jpg",
        "image_tip": "E Beldche enbaue",
        "media_sample": "Beispill.ogg",
        "media_tip": "Ene Link op en Tondatei, e Filmche, oder esu jet",
-       "sig_tip": "Dinge Naame, med de Uhrzigk unn_em Dattum",
+       "sig_tip": "Dinge Nahme, med de Uhrzigk unn_em Dattum",
        "hr_tip": "En Querlinnich",
        "summary": "Koot zosammejefaß, Quäll:",
        "subject": "Üvverschreff - wodröm jeiht et?",
-       "minoredit": "Dat es en klein Änderung (mini)",
+       "minoredit": "Dat es en klein Änderong (mini)",
        "watchthis": "Op di Sigg heh oppaßße",
        "savearticle": "De Sigg Avspeichere",
        "preview": "Vör-Ansich",
        "subject-preview": "Vör-Aansich vun de Üvverschreff:",
        "previewerrortext": "Ene Fähler es beim Versohch opjetrodde, de Sigg met de Änderonge aanzezeije.",
        "blockedtitle": "Dä Metmaacher es jesperrt",
-       "blockedtext": "'''Dinge Metmaacher-Name 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''“ 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 metjesperrt es.\n\nDun en Ding Aanfroge nenne:\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 Logboch met de Sperre]</span> loore.",
+       "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.",
        "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 Enstellunge]] en, un dun „Dun Ding E-Mail Adress bestätije looße“ klicke.",
+       "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.",
        "nosuchsectiontitle": "Dä Afschnitt ham_mer nit jefonge",
        "nosuchsectiontext": "Do häß versooht, ene Avschnet ze ändere, dä mer janit han.\nEt künnt noh woh anders hen ömjetrockwe woode sin, udder eruß jenumme, zig däm Do di Sigg heh aam beloore wohß.",
        "loginreqtitle": "Enlogge es nüdich",
        "accmailtitle": "Passwood verscheck.",
        "accmailtext": "En automattesch un zofällesch neu ußjewörfelt Passwood för dä\nMetmaacher „[[User talk:$1|$1]]“ es noh „$2“ jescheck woode.\n\nDat Passwoot för dä neue Zojang kanns De op dä {{int:Specialpage}} zom\n„[[Special:ChangePassword|{{int:resetpass}}]]“ ändere,\nwann De wider enjelogg bes.",
        "newarticle": "(Neu)",
-       "newarticletext": "Ene Link op en Sigg, wo noch nix drop steiht, weil et se noch jar nit jitt, hät Dich noh heh jebraht.\nÖm die Sigg aanzeläje, schriev heh unge en dat Feld eren, un dun dat dann avspeichere.\nLuur op de [$1 Sigge met Hölp] noh, wann De mieh dodrüvver wesse wells.\nWann De jar nit heh hen kumme wollts, dann jangk zeröck op die Sigg, wo De herjekumme bes, Dinge Brauser hät ene Knopp doför.",
+       "newarticletext": "Ene Link op en Sigg, wo noch nix drop steiht, weil et se noch jar nit jitt, hät Dich noh heh jebraht.\nÖm di Sigg aanzelähje, schriev heh unge en dat Feld eren, un dun dat dann avspeichere.\nLuur op de [$1 Sigge met Hölp] noh, wann De mieh dodrüvver wesse wells.\nWann De jar nit heh hen kumme wollts, dann jangk zeröck op di Sigg, wo De herjekumme bes, Dinge Brauser hät ene Knopp doför.",
        "anontalkpagetext": "----\n<i>Dat heh es de Klaaf Sigg för ene namenlose Metmaacher. Dä hät sich noch keine Metmaacher Name jejovve un\nenjerich, ov deit keine bruche. Dröm bruche mer sing IP Adress öm It oder In en uns Lisste fasszehalde.\nSu en IP Adress kann vun janz vill Metmaacher jebruch wääde, un eine Metmaacher kann janz flöck\nzwesche de ungerscheidlichste IP Adresse wähßele, womöchlich ohne dat hä et merk. Wann Do jetz ene namenlose\nMetmaacher bes, un fings, dat heh Saache an Dich jeschrevve wääde, wo Do jar nix met am Hot häs, dann bes Do\nwahrscheinlich och nit jemeint. Denk villeich ens drüvver noh, datte Dich [[Special:UserLogin/signup|anmelde]] deis,\ndomet De dann donoh nit mieh met esu en Ömständ ze dun häs, wie de andere namenlose Metmaacher heh. Wann de aanjemelldt bes un deis [[Special:UserLogin|enlogge]], dann kam_mer Desch och fun alle andere Metmaacher ongerschejde.</i>",
        "noarticletext": "<span class=\"plainlinks\">Em Momang es keine Täx op heh dä Sigg. Jangk en de Täxte vun ander Sigge [[Special:Search/{{PAGENAME}}|noh däm Titel söhke]], udder [{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} donn en de Logböscher donoh loore], udder [{{FULLURL:{{FULLPAGENAME}}|action=edit}} fang di Sigg aan] ze schrieve, udder jangk zeröck woh De heer kohms. Do hät Dinge Brauser ene Knopp för.</span>",
        "noarticletext-nopermission": "Op dä Sigg es em Momang nix drop.\nDo kanns noh däm Tittel vun heh dä Sigg [[Special:Search/{{PAGENAME}}|em Tex op ander Sigge söhke]],\nudder en dä zopaß <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} Logbööscher nohloore]</span>.",
        "missing-revision": "En Version $1 vun dä Sigg „{{FULLPAGENAME}}“ jidd_et nit.\n\nEsu jät kütt för jewöhnlesch, wam_mer enem övverhollte Lengk ob en Sigg follesch, di zweschedren fottjeschmeße woode es.\nMieh doh drövver fengk mer em [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Logbooch vum Sigge Fottschmiiße].",
-       "userpage-userdoesnotexist": "Enne Metmaacher „<nowiki>$1</nowiki>“ hammer nit, beß De secher, dat De die Metmaachersigg ändere oder aanläje wellss?.",
-       "userpage-userdoesnotexist-view": "Ene Metmaacher mem Naame „$1“ hät sesch noch nih aanjemeldt",
+       "userpage-userdoesnotexist": "Enne Metmaacher „<nowiki>$1</nowiki>“ ham_mer nit, beß De sescher, dat De di Metmaachersigg verhaftesch änndere udder aanlähje wellß?.",
+       "userpage-userdoesnotexist-view": "Ene Metmaacher mem Nahme „$1“ hät sesch noch nih aanjemeldt",
        "blocked-notice-logextract": "Dä Metmaacher es jraad jesperrt.\nHeh kütt der neuste Enndraach drövver uss_em Logbooch övver et Metmaacher_Sperre:",
        "clearyourcache": "'''Opjepass:'''\nNoh em Speichere künnd et sin, datt De Dingem Brauser singe Cache Speicher\növverlisste muss, ih datt De de Änderunge och ze sinn kreß.\n* Beim '''<i lang=\"en\">Mozilla</i>''' un '''<i lang=\"en\">Firefox</i>''' un '''<i lang=\"en\">Safari</i>''', dröck dä Jrußschreffknopp eronger un kleck dann op <i lang=\"en\">Reload</i> / <i lang=\"de\">Aktualisieren</i>, udder dröck <i lang=\"de\">Ctrl+F5</i> / <i lang=\"de\">Strg+F5</i>, udder dröck <i lang=\"en\">Ctrl+R</i> / <i lang=\"de\">Strg+R</i>, obb enem <i lang=\"en\">Macintosh</i> dröck <i lang=\"de\">⌘+R</i>.\n* Beim '''<i lang=\"en\">Google Chrome</i>''', dröck <i lang=\"en\">Ctrl+Jrußschreffknopp+R</i> / <i lang=\"de\">Strg+Jrußschreffknopp+R</i>, obb enem <i lang=\"en\">Macintosh</i> dröck <i lang=\"de\">⌘+Jrußschreffknopp+R</i>.\n* Beim '''<i lang=\"en\">Internet Explorer</i>''', dröck dä Jrußschreffknopp eronger un kleck dann op <i lang=\"en\">Refresh</i> / <i lang=\"de\">Aktualisieren</i>, udder dröck <i lang=\"de\">Ctrl+F5</i> / <i lang=\"de\">Strg+F5</i>,\n* Beim '''<i lang=\"en\">Konqueror</i>''' kleck op <i lang=\"en\">Reload</i> / <i lang=\"de\">Aktualisieren</i>, udder dröck op <i>F5</i>.\n* Beim  '''<i lang=\"en\">Opera</i>''' kanns De övver et Menue jonn un däm janze Zwescheschpeischer singe Enhald övver <i lang=\"en\">Tools → Preferences</i> / <i lang=\"de\">Werkzeug → Einstellungen</i> fottschmieße, neuerdings jeiht et och met <i>Alt+F5</i>.",
        "usercssyoucanpreview": "<b>Tipp:</b> Dun met däm <b style=\"padding:2px; background-color:#ddd;\ncolor:black\">Vör-Aansich Zeije</b>-Knopp usprobeere, wat Ding neu\nMetmaacher_CSS/Java_Skripp mäht, ih dat et avspeichere deis!",
        "userjspreview": "<strong>Opjepass:</strong> Do bes heh nor am Usprobeere, wat Ding\nMetmaacher_Java_Skripp mäht, et es noch nit jesechert!\n\n<strong>Opjepass:</strong> Noh dem Avspeichere moß de Dingem Brauser noch singe Cache fottschmiiße.\nDat jeit je noh Bauser met ongerscheidleje Knöpp —\nbeim '''Mozilla''' un em '''Firefox''': ''Strg-Shift-R'' —\nem '''Internet Explorer''': ''Strg-F5'' —\nför der '''Opera''': ''F5'' —\nmem '''Safari''': ''Cmd-Shift-R'' —\nun em '''Konqueror''': ''F5'' —\net ess en bunte Welt!",
        "sitecsspreview": "'''Opjepass:''' Do bes heh nor am Usprobeere, wat Ding CSS mäht,\net es noch nit jesechert!",
        "sitejspreview": "<strong>Opjepass:</strong> Do bes heh nor am Usprobeere, wat Ding\nJava_Skripp mäht, et es noch nit jesechert!",
-       "userinvalidcssjstitle": "<strong>Opjepass:</strong> Et jitt kein Ussinn met däm Name: „<strong>$1</strong>“ -\ndenk dran, dat ene Metmaacher eije Dateie för et Ussinn han kann, un dat die met kleine Buchstave\naanfange dun, alsu etwa: {{ns:user}}:Name/vector.css, un {{ns:user}}:Name/vector.js heiße.",
+       "userinvalidcssjstitle": "<strong>Opjepass:</strong> Et jitt keij Ußsinn met dämm Nahme: „<strong>$1</strong>“ -\ndängk drahn, dat ene Metmaacher eije Datteije för et Ußsinn han kann, un dat di met kleijne Bohchstahve\naanfange dun, alsu etwa: „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">{{ns:user}}:Name/vector.css</code>“, un \n „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">{{ns:user}}:Name/vector.js</code>“ heijße.",
        "updated": "(Aanjepack)",
        "note": "'''Opjepass:'''",
        "previewnote": "<strong>Heh kütt blohß en Aanseesch vöraff — Ding Änderonge sin noch nidd em Wikki faßjehallde!</strong>",
        "continue-editing": "Jangk tiräk nohm Plaz zom Schrieve",
-       "previewconflict": "Heh die Vör-Aansich zeich dä Enhald vum bovvere Texfeld.\nEsu wööd dä Atikkel ussinn, wann De n jetz avspeichere däts.",
-       "session_fail_preview": "'''Schad: Ding Änderunge kunnte mer su nix met aanfange.\nVersök et jrad noch ens.\nWann dat widder nit flupp, dann versök et ens met [[Special:UserLogout|Uslogge]] un widder Enlogge.'''",
+       "previewconflict": "Heh di Vör_Aanseesch zeisch dä Enhald vum bovvere Täxfäld.\nEsu wööd di Sigg ußsinn, wann De se jäz afschpeijschere dähts.",
+       "session_fail_preview": "<strong>Schahd: Met Dinge Änderonge kunnte mer su nix aanfange.\nVersöhk et jrahd noch ens.\nWann dat widder nit flupp, dann versöhk et ens met [[Special:UserLogout|Ußlogge]] un widder Enlogge.</strong>",
        "session_fail_preview_html": "'''Schad: Ding Änderunge kunnte mer su nix met aanfange. De Daate vun Dinge Login-Säschen sin nit öntlich erüvver jekumme, oder einfach ze alt.'''\n\n''Dat Wiki heh hät rüh HTML zojelooße, dröm weed de Vör-Aansich nit jezeich. Domet solls De jeschötz wääde - hoffe mer - un Aanjreffe met Java_Skripp jäje Dinge Kompjuter künne Der nix aandun.''\n\n'''Falls för Dich söns alles jod ussüht, versök et jrad noch ens. Wann dat widder nit flupp, dann versök et ens met [[Special:UserLogout|Uslogge]] un widder Enlogge.'''",
-       "token_suffix_mismatch": "'''Ding Änderung ham_mer nit övvernomme. Dinge Brauser hät Sazzeijche em verstoche <i lang=\"en\">Token</i> för et Ändere versout. Dat paßeet och ens, wann enne <i lang=\"en\">Proxy</i> nit fungkßjeneet. Et Affspeichere wör do jefährlesch, do künt dä Sigge_Enhaldt kapott bei jon.'''",
-       "edit_form_incomplete": "'''Ene Aandeil vun dämm Fommulaa es nit reshtesh om ẞööver aanjekumme. Donn Ding Ennjaabe prööve, repareere, un versöhg et norrens.'''",
+       "token_suffix_mismatch": "'''Ding Änderong ham_mer nit övvernomme. Dinge Brauser hät Sazzeijsche en dä verschtoche Makkehrong för et Ändere versout. Dat paßehrt och ens, wann enne <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„ene ẞööver en de Nohberschaff, ene Zweschedrääjer udder Zwescheschpeijscher, ene Vermeddelongsrääschner“\">proxy</i>-ẞööver nit fungkßjeneet. Et Affschpeischere wöhr doh jefährlesch, do künnt dä Sigge_Enhaldt kapott bei jon.'''",
+       "edit_form_incomplete": "<strong>Ene Aandeil vun dämm Fommolaa es nit reeschtesch om ẞööver aanjekumme. Donn Ding Ennjahbe pröhve, reparehre, un versöhg et norrens.</strong>",
        "editing": "De Sigg „$1“ ändere",
        "creating": "De Sigg „$1“ aanlääje",
        "editingsection": "Ne Avschnedd vun dä Sigg: „$1“ ändere",
        "editingcomment": "„$1“ ändere (ene neue Avschnedd schrieve)",
        "editconflict": "Problemche: „$1“ dubbelt bearbeidt.",
-       "explainconflict": "Ene andere Metmaacher hät aan dä Sigg och jet jeändert, un zwar nohdäm Do et Ändere aanjefange häs. Jetz ha'mer dr Dress am Jang, un Do darfs et widder uszoteere.\n<strong>Opjepass:</strong><ul><li>Dat bovvere Texfeld zeich die Sigg esu, wie se jetz em Momang jespeichert es, alsu met de Änderunge vun alle andere Metmaacher, die flöcker wie Do jespeichert han.</li><li>Dat ungere Texfeld zeich die Sigg esu, wie De se selver zoletz zerääch jebrasselt häs.</li></ul>\nDo muss jetz Ding Änderunge och in dat <strong>bovvere</strong> Texxfeld eren bränge. Natörlich ohne dä Andere ihr Saache kapott ze maache.\n<strong>Nor wat em bovvere Texfeld steiht,</strong> dat weed üvvernomme un avjespeichert, wann De „<b\nstyle=\"padding:2px; background-color:#ddd; color:black\">{{int:savearticle}}</b>“ klicks. Bes dohin kanns De esu off\nwie De wells op „<b style=\"padding:2px; background-color:#ddd; color:black\">{{int:showdiff}}</b>“ un „<b\nstyle=\"padding:2px; background-color:#ddd; color:black\">{{int:showpreview}}</b>“ klicke, öm ze pröfe, watte ald   jods jemaat häs.\n\nAlles Klor?<br /><br />",
+       "explainconflict": "Ene andere Metmaacher hät aan dä Sigg och jet jeändert, un zwar nohdäm Do et Ändere aanjefange häs. Jetz ha'mer dr Dress am Jang, un Do darfs et widder uszoteere.\n<strong>Opjepass:</strong><ul><li>Dat bovvere Täxfeld zeisch di Sigg esu, wie se jetz em Momang jeschpeijschert es, alsu met de Änderonge vun alle andere Metmaacher, di flöcker wie Do jeschpeischert han.</li><li>Dat ongere Täxfeld zeisch di Sigg esu, wie De se sälver zoletz zerääch jebrasselt häs.</li></ul>\nDo muss jetz Ding Änderunge och in dat <strong>bovvere</strong> Texxfeld eren bränge. Natörlich ohne dä Andere ihr Saache kapott ze maache.\n<strong>Nor wat em bovvere Texfeld steiht,</strong> dat weed üvvernomme un avjespeichert, wann De „<b\nstyle=\"padding:2px; background-color:#ddd; color:black\">{{int:savearticle}}</b>“ kleks. Bes dohin kanns De esu öff wi De wells op „<b style=\"padding:2px; background-color:#ddd; color:black\">{{int:showdiff}}</b>“ un „<b\nstyle=\"padding:2px; background-color:#ddd; color:black\">{{int:showpreview}}</b>“ klicke, öm ze pröfe, watte ald   jods jemaat häs.\n\nAlles Klor?<br /><br />",
        "yourtext": "Dinge Tex",
-       "storedversion": "De jespeicherte Version",
-       "nonunicodebrowser": "'''Opjepass:'''\nDinge Brauser kann nit öntlich met däm Unicode un singe Buchstave ömjonn.\nBes esu jod un nemm ene andere Brauser för heh die Sigg!",
-       "editingold": "'''Opjepass!<br />\nDo bes en ahle, üvverhollte Version vun dä Sigg heh am Ändere.\nWann De die avspeichere deis,\nwie se es,\ndann jonn all die Änderunge fleute,\ndie zickdäm aan dä Sigg jemaht woode sin.\nAlsu:\nBes De secher, watte mähs?\n'''",
+       "storedversion": "De jespeicherte Väsjohn",
+       "nonunicodebrowser": "<strong>Opjepaß:</strong>\nDinge Brauser kann nit öhntlesch met däm <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> un singe Bochstahbe ömjonn.\nBes esu johd un nemm ene andere Brauser för heh di Sigg!",
+       "editingold": "'''Opjepaß:<br />\nDo bes en ahle, övverhollte, Väsjohn vun dä Sigg heh aam ändere.\nWann De di avschpeischere deihs,\nwi se es,\ndann jonn all di Ännderonge fleute,\ndi zikdämm aan dä Sigg jemaht wohde sin.\nAlsu:\nBes De verhaftesch secher, wat_De mähs?\n'''",
        "yourdiff": "Ungerscheide",
        "copyrightwarning": "Ding Beidräch stonn unger de [[$2]], süch $1. Wann De nit han wells, dat Dinge Tex ömjemodelt weed, un söns wohin verdeilt, dun en hee nit speichere. Mem Avspeichere sähs De och zo, dat et vun Dir selvs es, un/oder Do dat Rääch häs, en hee zo verbreide. Wann et nit stemmp, oder Do kanns et nit nohwiese, kann Dich dat en dr Bau bränge!",
        "copyrightwarning2": "De Beidräch {{GRAMMAR:en|{{SITENAME}}}} künne vun andere Metmaacher ömjemodelt\noder fottjeschmesse wääde. Wann Der dat nit rääch es, schriev nix. Et es och nüdich, dat et vun Dir selvs es, oder dat Do dat Rääch häs, et hee öffentlich wigger ze jevve. Süch $1. Wann et nit stemmp, oder Do kanns et nit nohwiese, künnt Dich dat en dr Bau bränge!",
        "longpageerror": "'''Janz schlemme Fähler:'''\nDä Tex, dä De heh jescheck häs, dä es {{PLURAL:$1|ein|$1|kei}} Kilobyte jruuß.\nDat {{PLURAL:$2|es mieh wie ei|sin mieh wie $2|es kei}} Kilobyte. Dat künne mer nit speichere!",
        "readonlywarning": "'''Opjepass:'''\nDe Daatebank es jesperrt woode, wo Do ald am Ändere wohs.\nDä.\nJetz kanns De Ding Änderunge nit mieh faßhallde lohße.\nDun se bei Dir om Rechner faßhalde un versöhg et schpäder noch ens.\n\nNävvebei, dä Datenbank-Köbes hät för et Sperre och ene Jrund aanjejovve: $1",
-       "protectedpagewarning": "'''Opjepass: Die Sigg heh es jäje Veränderunge jeschötz. Nor de Wiki-Köbesse künne se ändere.'''\nHeh kütt der neuste Enndraach em Logbooch för di Sigg:",
-       "semiprotectedpagewarning": "'''Opjepass:''' Die Sigg heh es halv jesperrt, wie mer sage, dat heiß, Do muss aanjemeldt un enjelogg sin, wann De dran ändere wells.\nHeh kütt der neuste Enndrach em Logbooch doh drövver:",
-       "cascadeprotectedwarning": "'''Opjepaß:''' Die Sigg es jeschöz, un nur de Wiki-Köbesse künne se ändere. Se es en en Schotz-Kaskad enjebonge, zosamme met dä {{PLURAL:$1|Sigg|Sigge}}:",
+       "protectedpagewarning": "<strong>Opjepass: Di Sigg heh es jähje Veränderonge jeschöz. Blohß de Wikki-Köbeße künne se änndere.</strong>\nHeh kütt der neuste Enndraach em Logbohch för di Sigg:",
+       "semiprotectedpagewarning": "<strong>Opjepass:</strong> Di Sigg heh es halv jeschpächt, wi mer sage, dat heiß, Do muss aanjemeldt un enjelogg sin, wann De dran ändere wells.\nHeh kütt der neuste Enndrach em Logbohch doh drövver:",
+       "cascadeprotectedwarning": "<strong>Opjepaß:</strong> Di Sigg es jeschöz, un nur de Wikki_Köhbeße künne se änndere. Se es en en Schotz-Kaskahd enjebonge, zosamme met dä {{PLURAL:$1|Sigg|Sigge}}:",
        "titleprotectedwarning": "<span style=\"text-transform:uppercase\"> Opjepaß! </span> Di Sigg heh is jesperrt woode. Bloß [[Special:ListGroupRights|bestemmpte]] Metmaacher dörve di Sigg neu aanläje.'''\nHeh kütt der neuste Enndrach em Logbooch doh drövver:",
-       "templatesused": "{{PLURAL:$1|De Schablon|De $1 Schablone|Kein Schablone}}, die en dä Sigg heh jebruch {{PLURAL:$1|weed|wääde|wääde}}, sinn:",
-       "templatesusedpreview": "{{PLURAL:$1|De Schablon|Schablone|-nix-}} en dä Vör-Aansich heh:",
-       "templatesusedsection": "{{PLURAL:$1|De Schablon|Schablone|-nix-}} en däm Avschnedd heh:",
+       "templatesused": "{{PLURAL:$1|De Schablohn|De $1 Schablohne|Kein Schablohn}}, di en dä Sigg heh jebruch {{PLURAL:$1|weed|wähde|weed}}, sinn:",
+       "templatesusedpreview": "{{PLURAL:$1|De Schablohn|Schablohne|-nix-}} en dä Vör_Aanseesch heh:",
+       "templatesusedsection": "{{PLURAL:$1|De Schablohn|Schablohne|-nix-}} en däm Avschnedd heh:",
        "template-protected": "(jeschöz)",
        "template-semiprotected": "(halfjeschöz - tabu för neu Metmaacher un ohne Enlogge)",
-       "hiddencategories": "Die Sigg heh is en {{PLURAL:$1|dä verstoche Saachjrupp: |dä $1 verstoche Saachjruppe: |keij verstoche Saachjruppe dren.}}",
+       "hiddencategories": "Di Sigg heh is en {{PLURAL:$1|dä verschtoche Saachjropp: |dä $1 verschtoche Saachjroppe: |keij verschtoche Saachjroppe dren.}}",
        "edittools": "<!-- Dä Tex hee zeich et Wiki unger däm Texfeld zom „Ändere/Bearbeide“ un beim Texfeld vum „Huhlade“. -->",
-       "nocreatetext": "Sigge neu aanläje es nor müjjelich, wann de [[Special:UserLogin|enjelogg]] bes. Der ohne kanns De ävver Sigge ändere, die ald do sin.",
+       "nocreatetext": "Sigge neu aanläje es nor müjjelich, wann de [[Special:UserLogin|enjelogg]] bes. Der ohne kanns De ävver Sigge ändere, di ald doh sin.",
        "nocreate-loggedin": "Do häs nit dat Rääch, neu Sigge aanzelääje.",
        "sectioneditnotsupported-title": "Afschnedde Ändere is nit zohjelohße",
        "sectioneditnotsupported-text": "Afschnedde Ändere is en heh dä Sigg nit zohjelohße.",
        "permissionserrors": "Dat jeit nit, dat darfs De nit.",
        "permissionserrorstext": "Do häs nit dat Rääch, dat ze maache, {{PLURAL:$1|dä Jrund es:|de Jründe sin:|oohne Jrund.}}",
        "permissionserrorstext-withaction": "Do häs nit dat Rääch $2, {{PLURAL:$1|dä Jrond es:|de Jrönde sin:|ävver ohne aanjävbahre Jrond.}}",
-       "recreate-moveddeleted-warn": "'''Opjepaß:''' Do bes om bäste Wääsh, en Sigg neu aanzelääje, di doför ald ens fottjeschmeße woode wohr.\n\nBes förseschtesch un övverlääsch Der, of dat en joode Idee es, di Sigg widder opzemaache. Domet De Bescheid weiß, hee de Endrääsh em Logboch vum Sigge-Ömnänne, un em Logboch vum Sigge-Fottschmieße mem Jrond, woröm di Sigg dohmohls fottjeschmesse woode es:",
-       "moveddeleted-notice": "Heh di Sigg es fottjeschmeße. E Shtöck uß dä Logböösher fum Sigge-Fottschmieße un fum Sigge-Ömnänne för di Sigg kütt jetz, en dä Hoffnung, dat dat Der hellef.",
-       "log-fulllog": "Donn dat janze Logboch aanloore",
+       "recreate-moveddeleted-warn": "'''Opjepaß:''' Do bes om bäste Wääsch, en Sigg neu aanzelähje, di doför ald ens fottjeschmeße woode wohr.\n\nBes förseschtesch un övverlääsch Der, of dat en johde Ideh es, di Sigg widder opzemaache. Domet De Bescheid weiß, heh de Endrääsh em Logbohch vum Sigge-Ömnänne, un em Logbohch vum Sigge-Fottschmieße mem Jrond, woröm di Sigg dohmohls fottjeschmesse woode es:",
+       "moveddeleted-notice": "Heh di Sigg es fottjeschmeße.\nE Schtök uß dä Logböhscher fum Sigge_Fottschmihße un fum Sigge-Ömnänne för di Sigg kütt jäz, en dä Hoffnung, dat dat hellef.",
+       "log-fulllog": "Donn dat janze Logbohch aanlohre",
        "edit-hook-aborted": "Et Ändere wood affjebroche övver ene sujenannte „Hoke“ en de ẞoffwäer.\nEne Jrond weße mer nit.",
        "edit-gone-missing": "Kunnt di Sigg nit änndere. Se schingk verschwunde un weed fottjeschemeße woode sin.",
        "edit-conflict": "Dubbelt beärbeit.",
        "edit-no-change": "Do häs ja nix aan dä Sigg jeändert, do dom_mer och nix domet.",
        "postedit-confirmation-created": "Di Sigg es aanjelaat.",
        "postedit-confirmation-restored": "Der ahle Zohschtand es widder zeröck jehollt.",
-       "postedit-confirmation-saved": "Ding Änderunge sin nit faßjehallde.",
+       "postedit-confirmation-saved": "Ding Änderuoge sin nit faßjehallde.",
        "edit-already-exists": "Kunnt kei neu Sigg aanlääje. Di Sigg jidd_et ald.",
        "defaultmessagetext": "Dä standaadmäßije Tex",
-       "content-failed-to-parse": "Et wohr nit müjjelesch, dä Enhalld met däm <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Tüpp <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\" >$2</code> för en Dattei met $1 dren ze verwooschte: $3.",
+       "content-failed-to-parse": "Et wohr nit müjjelesch, dä Enhalld met dä <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Zoot <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\" >$2</code> för en Dattei met $1 dren ze verwooschte: $3.",
        "invalid-content-data": "Di Daate en dä Sigg sen onjöltesch.",
        "content-not-allowed-here": "Ene Enhalld vun dä Zoot „$1“ es op dä Sigg „[[$2]]“ nit zohjelohße.",
-       "editwarning-warning": "Wann de vun hee dä Sigg fott jeihß, doh künnte all Ding Änderonge aan dä Sigg verschött jonn.\nDo kanns heh di Warnung affschallde, wann de aanjemelldt un enjelogg bes, dann kriß de se nieh mieh wider. Jangk doför en dä Afschnett „{{int:prefs-editing}}“ en Dinge Enschtellonge.",
+       "editwarning-warning": "Wann de vun heh dä Sigg fott jeihß, doh künnte all Ding Änderonge aan dä Sigg verschött jonn.\nDo kanns heh di Warnong affschallde, wann de aanjemälldt un enjelogg bes, dann kriß de se nih mih wider. Jangk doför en dä Afschnett „{{int:prefs-editing}}“ en Dinge Enschtellonge.",
        "editpage-notsupportedcontentformat-title": "Dat Fommat vun enem Enhalld künne mer nit.",
        "editpage-notsupportedcontentformat-text": "Dat Fommat $1 vun enem Enhalld künne mer nit mem Modäll $2.",
-       "content-model-wikitext": "Wikitäx",
+       "content-model-wikitext": "Wikkitäx",
        "content-model-text": "Eijnfache Tex",
        "content-model-javascript": "JavaSkrepp",
        "content-model-css": "CSS",
        "content-model-json": "<i lang=\"en\" xml:lang=\"en\" title=\"JavaScript Object Notation\">JSON</i>",
        "content-json-empty-object": "Nix dren",
        "content-json-empty-array": "Nix dren",
+       "duplicate-args-warning": "<strong>Opjepaß:</strong> [[:$1]] röhf [[:$2]] met mih wi eijnem Wäät för der Parramehter „$3“ op. Blohß der läzde wäät vun dänne weed opjenumme un jebruch.",
        "duplicate-args-category": "Sigge met dubbelt aanjejovve Parramehtere för Schablohne.",
        "duplicate-args-category-desc": "Sigge met Oprohve vun Schablohne met dubbelt aanjejovve Parramehtere dren, alsu esu jät wi <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> un <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
-       "expensive-parserfunction-warning": "'''Opjepaß:''' Die Sigg heh määt zovill Opwand met Paaser-Funkßjohne.\n\n{{PLURAL:$2|Eine Oproof|Beß $2 Oproofe|Keine Oproof}} es älaup, {{PLURAL:$1|un eine Oproof|ävver $1 Oproofe|un keine Oproof}} määt di Sigg em Momang.",
+       "expensive-parserfunction-warning": "<strong>Opjepaß:</strong> Di Sigg heh määt zovill Opwand met Paaser-Funkßjohne.\n\n{{PLURAL:$2|Eine Oproof|Beß $2 Oproofe|Keine Oproof}} es älaup, {{PLURAL:$1|un eine Oproof|ävver $1 Oproofe|un keine Oproof}} määt di Sigg em Momang.",
        "expensive-parserfunction-category": "Sigge met zovill Opwand en Paaser-Funkßjohne",
-       "post-expand-template-inclusion-warning": "Warnung: Heh in di Sigg wääde zo fill Bytes övver Schablone erin jebraat. Nit all di Schablone künne enjbonge wäde.",
-       "post-expand-template-inclusion-category": "Sigge met zoh jruuße Schablone enjebonge",
-       "post-expand-template-argument-warning": "Opjepaß: Di Sigg heh hät winnischßdens eine Parrammeeter en ennem Schablone-Oprof wat ze jroß weed beim Enfölle. Esu en Parrameetere möße mer övverjonn.",
-       "post-expand-template-argument-category": "Sigge met övverjange Parrammeeter fun Schablone",
-       "parser-template-loop-warning": "Schablon roofe sesch em Kringel op: [[$1]]",
-       "parser-template-recursion-depth-warning": "Schablone refe sesch zo öff sellver op ($1)",
+       "post-expand-template-inclusion-warning": "<strong>Opjepaß:</strong> Heh in di Sigg wähde zo fill Bytes övver Schablohne erin jebraht. Nit all di Schablohne künne enjbonge wähde.",
+       "post-expand-template-inclusion-category": "Sigge met zoh jruuße Schablohne dren enjebonge",
+       "post-expand-template-argument-warning": "Opjepaß: Di Sigg heh hät winnischßdens eine Parrammehter en ennem Schablohne-Oprohf wat ze jruhß weed beim Enfölle. Esu en Parramehtere möße mer övverjonn.",
+       "post-expand-template-argument-category": "Sigge met övverjange Parrammeetere fun Schablohne",
+       "parser-template-loop-warning": "Di Schablohne rohfe sesch em Krengel op: [[$1]]",
+       "parser-template-recursion-depth-warning": "Schablohne rohfe sesch zo öff sellver op ($1)",
        "language-converter-depth-warning": "Zoh vill Verschachtelonge (övver $1) beim Täx-Ömwandelle vun eine Schprohch udder Schrevv en en anndere.",
        "node-count-exceeded-category": "Sigge, woh dä <i lang=\"en\" xml:lang=\"en\">node-count</i> övverschredde es",
-       "node-count-exceeded-category-desc": "Di Sigg hät dä <i lang=\"en\" xml:lang=\"en\">node-count</i> övverschredde.",
-       "node-count-exceeded-warning": "Heh di Sigg hät dä <i lang=\"en\" xml:lang=\"en\">node-count</i> övverschredde",
-       "expansion-depth-exceeded-category": "Sigge, woh de <i lang=\"en\" xml:lang=\"en\">expansion depth</i> övverschredde es",
-       "expansion-depth-exceeded-category-desc": "Dat heh es de Saachjropp för Sigge, woh de <i lang=\"en\" xml:lang=\"en\">expansion depth</i> övverschreddde es.",
-       "expansion-depth-exceeded-warning": "Heh di Sigg hät de <i lang=\"en\" xml:lang=\"en\">expansion depth</i> övverschredde",
+       "node-count-exceeded-category-desc": "Di Sigg hät dä \"node-count\" övverschredde.",
+       "node-count-exceeded-warning": "Heh di Sigg hät dä \"node-count\" övverschredde",
+       "expansion-depth-exceeded-category": "Sigge, woh de \"expansion depth\" övverschredde es",
+       "expansion-depth-exceeded-category-desc": "Dat heh es de Saachjropp för Sigge, woh de \"expansion depth\" övverschreddde es.",
+       "expansion-depth-exceeded-warning": "Heh di Sigg hät de \"expansion depth\" övverschredde",
        "parser-unstrip-loop-warning": "Ene Befähl em Täx betrick sesch op sesch sellef.",
        "parser-unstrip-recursion-limit": "Ene Befähl em Täx es mieh wi {{PLURAL:$1|eijmohl|$1 Mohl|jaa nit}} met  sesch sellef verschachtelt.",
        "converter-manual-rule-error": "Doh es ene Fähler en ene händesche Önwandelongsrääjel zwesche de Schprohche.",
-       "undo-success": "De Änderung könnte mer zeröck nämme. Beloor Der de Ungerscheid un dann donn di Sigg avspeichere, wann De dengks, et es en Oodenung esu.",
+       "undo-success": "De Änderong könnte mer zeröck nämme. Belohr Der de Ungerscheide un dann donn di Sigg avspeijschere, wann De dängks, et es en Ohdenong esu.",
        "undo-failure": "Dat kunnt mer nit zeröck nämme, dä Afschnedd wood enzwesche ald widder beärbeidt.",
-       "undo-norev": "Do ka'mer nix zeröck nämme. Di Version jidd_et nit, odder se es verstoche odder fottjeschmesse woode.",
+       "undo-norev": "Do kam_mer nix zeröck nämme. Di väsjohn jidd_et nit, udder se es verschtoche udder fottjeschmeße woode.",
        "undo-nochange": "Di Änderong schingk ald retuur jemaat woode ze sin.",
-       "undo-summary": "De Änderung $1 fum [[Special:Contributions/$2|$2]] ([[User talk:$2|Klaaf]]) zeröck jenomme.",
+       "undo-summary": "De Änderong $1 fum [[Special:Contributions/$2|$2]] ([[User talk:$2|Klaaf]]) zeröck jenomme.",
        "undo-summary-username-hidden": "Nemm di Väsjohn $1 vun enem verschtoche Metmaacher widder retuur.",
        "cantcreateaccounttitle": "Kann keine Zojang enrichte",
        "cantcreateaccount-text": "Dä [[User:$3|$3]] hät verbodde, dat mer sich vun dä IP-Adress '''$1''' uß als ene neue Metmaacher aanmelde könne soll.\n\nAls Jrund för et Sperre es enjedraare: ''$2''",
-       "cantcreateaccount-range-text": "Ne neue Metmacher aanmälde vun <i lang=\"en\" xml:lang=\"en\">IP</i>-Adräße em Berett vun <strong>$1</strong>, woh de Dinge dren es, wood vum {{GENDER:$3|vum|vum|vumm Metmaacher|vun dä|vum}} [[User:$3|$3]] verbodde.\nDer Jrond: <em><$2</em>\n\nDing <i lang=\"en\" xml:lang=\"en\">IP</i>-Adräß es: <strong>$4</strong>",
+       "cantcreateaccount-range-text": "Ne neue Metmaacher aanmälde vun <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Internet Protocol\">IP</i>-Adräße em Berett vun <strong>$1</strong>, woh de Dinge dren es, wood vum {{GENDER:$3|vum|vum|vumm Metmaacher|vun dä|vum}} [[User:$3|$3]] verbodde.\nDer Jrond: <em><$2</em>\n\nDing <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Internet Protocol\">IP</i>-Adräß es: <strong>$4</strong>",
        "viewpagelogs": "De Logböcher för heh di Sigg beloore",
        "nohistory": "Et jitt kei fottjeschmesse, zeröckhollba Versione vun dä Sigg.",
-       "currentrev": "Neuste Version",
+       "currentrev": "Neuste Väsjohn",
        "currentrev-asof": "De neuste Version fum $2 öm $3 Uhr",
        "revisionasof": "De Version vum $2 öm $3 Uhr",
        "revision-info": "Väsjohn $3 vum $4 öm $5 Uhr vum {{GENDER:$6|vum|vum|vum Metmaacher|vun dä|vum}} $2.$7",
-       "previousrevision": "← De Version dovör zeije",
-       "nextrevision": "De Version donoh zeije →",
-       "currentrevisionlink": "De neuste Version",
+       "previousrevision": "← De Väsjohn dovör zeije",
+       "nextrevision": "De Väsjohn donoh zeije →",
+       "currentrevisionlink": "De neuste Väsjohn",
        "cur": "met jetz",
        "next": "wigger",
        "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 Version verjliche,\n({{int:last}}) = donn met de Version ein doför verjliche,\n<b>M</b> = en klein <b>M</b>ini-Änderung,\nDattum+Uhrzigg = don de Version fun dämm Daach un dä Zigg aanzeije.",
+       "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.",
        "history-fieldset-title": "Wat uß de Verjangeheit ußwähle?",
        "history-show-deleted": "blohß fottjeschmeße Versione",
        "histfirst": "de Ählste",
        "history-feed-empty": "De aanjefrochte Sigg jitt et nit. Künnt sin, dat se enzwesche fottjeschmesse udder ömjenannt woode es. Kanns jo ens [[Special:Search|em Wiki söke looße]], öm de zopass, neu Sigge ze finge.",
        "history-edit-tags": "Donn de Makehronge vun de ußjesöhk Väsjohne beärbeide",
        "rev-deleted-comment": "(„Koot Zosammejefass, Quell“ usjeblendt)",
-       "rev-deleted-user": "(Metmaacher Name usjeblendt)",
-       "rev-deleted-event": "(Eijnzelheijte vom Logboch-Enndraach fottjenomme)",
-       "rev-deleted-user-contribs": "[Däm Metmaacher singe Name udder sing <i lang=\"en\">IP</i>-Addräß wood veschtoche, un heh di Änderung douch nit mieh en de Leß met de Beidrääsch op]",
-       "rev-deleted-text-permission": "Die Version fun dä Sigg es '''fottjeschmeße'''.\nWann Ehr en [{{FULLURL:{{#spezial:Log}}/delete|page={{FULLPAGENAMEE}}}} {{lcfirst:{{int:deletionlog}}}}] loore doht, künnt Ehr velleisch mieh do drövver lesse.",
+       "rev-deleted-user": "(Metmaacher_Nahme ußjebländt)",
+       "rev-deleted-event": "(Eijnzelheijte vom Logbohch-Enndrahch fottjenomme)",
+       "rev-deleted-user-contribs": "[Däm Metmaacher singe Name udder sing <i lang=\"en\">IP</i>-Addräß wood veschtoche, un heh di Änderong douch nit mieh en de Leß met de Beidrääsch op]",
+       "rev-deleted-text-permission": "Di Väsjohn fun dä Sigg es <strong>fottjeschmeße</strong>.\nWann Ehr em [{{FULLURL:{{#spezial:Log}}/delete|page={{FULLPAGENAMEE}}}} {{lcfirst:{{int:deletionlog}}}}] loore doht, künnt Ehr velleisch mih do drövver lässe.",
        "rev-suppressed-text-permission": "Di Väsjohn vun dä Sigg es <strong>verschtoche</strong> woode.\nEinzelheite fengk mer en däm [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Logbohch vum Sigge verschteische].",
        "rev-deleted-text-unhide": "{{int:rev-deleted-text-permission}} Als ene Wiki-Köbes kanns De [$1 se ävver doch bekike], wann De wells.",
-       "rev-suppressed-text-unhide": "Die Version fun dä Sigg es '''verschtoche'''.\nWann Ehr en [{{FULLURL:{{#spezial:Log}}/suppress|page={{FULLPAGENAMEE}}}} {{lcfirst:{{int:suppressionlog}}}}] loore doht, künnt Ehr velleisch mieh do drövver lesse.\nAls ene Wiki-Köbes kanns De [$1 se ävver doch bekike], wann De wells.",
+       "rev-suppressed-text-unhide": "Di Väsjohn fun dä Sigg es <strong>verschtoche</strong>.\nWann Ehr en [{{FULLURL:{{#spezial:Log}}/suppress|page={{FULLPAGENAMEE}}}} {{lcfirst:{{int:suppressionlog}}}}] loore doht, künnt Ehr velleisch mih do drövver lesse.\nAls ene Wikki_Köhbeß kanns De [$1 se ävver doch bekike], wann De wells.",
        "rev-deleted-text-view": "{{int:rev-deleted-text-permission}} Als ene Wiki-Köbes kanns De se ävver bekike.",
-       "rev-suppressed-text-view": "Die Version fun dä Sigg es '''verschtoche'''.\nAls ene Wiki-Köbes kanns De se ävver doch bekike, wann De wells.\nWann Ehr en [{{FULLURL:{{#spezial:Log}}/suppress|page={{FULLPAGENAMEE}}}} {{lcfirst:{{int:suppressionlog}}}}] loore doht, künnt Ehr velleisch mieh do drövver lesse.",
+       "rev-suppressed-text-view": "Di Väsjohn fun dä Sigg es <strong>verschtoche</strong>.\nAls ene Wikki_Köhbeß kanns De se ävver doch bekike, wann De wells.\nWann Ehr en [{{FULLURL:{{#spezial:Log}}/suppress|page={{FULLPAGENAMEE}}}} {{lcfirst:{{int:suppressionlog}}}}] loore doht, künnt Ehr velleisch mih doh drövver lesse.",
        "rev-deleted-no-diff": "De kanns de Ongerscheide nit beloore, ein vun de Versione es '''fottjeschmeße'''.\nMieh Einzelheite hät [{{fullurl:{{#special:Log}}/suppress|page={{FULLPAGENAMEE}}}} {{lcfirst:{{int:deletionlog}}}}].",
        "rev-suppressed-no-diff": "Do kanns der keine Ungerscheid zwesche dä Versione beloore, weil ein dofun '''fottjeschmeße''' es.",
        "rev-deleted-unhide-diff": "Ein vun de Versione es '''fottjeschmeße'''.\nMieh Einzelheite hät [{{fullurl:{{#special:Log}}/suppress|page={{FULLPAGENAMEE}}}} {{lcfirst:{{int:deletionlog}}}}].\nAls ene Wiki_Köbes kanns De [$1 de Ungerscheide ävver aankike] wann De wells.",
        "revdelete-show-file-submit": "Lohß Jonn!",
        "revdelete-selected-text": "Di ußjesöhk Väsjohn{{PLURAL:$1||e|}} vun [[:$2]]:",
        "revdelete-selected-file": "Di ußjesöhk Väsjohn{{PLURAL:$1||e|}} vun dä Dattei [[:$2]]:",
-       "logdelete-selected": "{{PLURAL:$1|Dä ußjewählte Logboch-Endrach|De Ußjewählte Logboch-Endrähsch}}:",
+       "logdelete-selected": "{{PLURAL:$1|Dä ußjewählte Logbohch_Endrach|De Ußjewählte Logbohch_Endrähsch|kein Logbohch_Endrähsch}}:",
        "revdelete-text-text": "Fottjeschmeße Väsjohne blieve en dä Leß met de vörrije Väsjohne, ävver zom Deil kann de Öffentleschkeit nit mieh drop zohjriehfe.",
        "revdelete-text-file": "Fottjeschmeße Väsjohne vun Datteije blieve en dä Leß met de vörrije Väsjohne, ävver zom Deil kann de Öffentleschkeit nit mieh drop zohjriehfe.",
        "logdelete-text": "Fottjeschmeße Endrääsch en de Logbööscher blieve en dä Leß met de vörrije Väsjohne, ävver zom Deil kann de Öffentleschkeit nit mieh drop zohjriehfe.",
        "revdelete-legend": "Dä öffentlije Zojang enschränke",
        "revdelete-hide-text": "dä Täx vun dä Väsjohn",
        "revdelete-hide-image": "De Enhallt vun däm Beld versteiche",
-       "revdelete-hide-name": "Der Förjang un sing Parramehtere uss_em Enndraach em Logboch versteiche",
+       "revdelete-hide-name": "Der Förjang un sing Parramehtere uss_em Enndrahch em Logbohch versteische",
        "revdelete-hide-comment": "dä Enhald vun „{{int:Summary}}“",
        "revdelete-hide-user": "däm Bearbeider sing <i lang=\"en\" xml:lang=\"en\"IP</i>-Adress oder Metmaacher-Name",
        "revdelete-hide-restricted": "Dun dat och för de Wiki-Köbesse esu maache wie för jede Andere",
        "revdelete-radio-same": "(lohß wi_t eß)",
        "revdelete-radio-set": "Jo",
        "revdelete-radio-unset": "Nä",
-       "revdelete-suppress": "Donn dä Jrond och för de Wiki-Köbesse versteische",
+       "revdelete-suppress": "Donn dä Jrond, de Dahte och för de Wikki-Köhbeße verschteische",
        "revdelete-unsuppress": "De Beschrängkonge för der widderjehollte Versione ophevve",
        "revdelete-log": "Aanlaß odder Jrund:",
        "revdelete-submit": "Op de aanjekrützte {{PLURAL:$1|Version|Versione|-nix-}} aanwende",
-       "revdelete-success": "'''De Version woot verstoche odder seeschba jemaat.'''",
+       "revdelete-success": "'''De Väsjohn wood verschtoche udder seeschba jemaat.'''",
        "revdelete-failure": "'''Dä Version ier Seeschbaakeit kunnte mer nit ändere:'''\n$1",
-       "logdelete-success": "'''Dä Enndraach em Logboch woot verstoche odder seeschba jemaat.'''",
-       "logdelete-failure": "'''Däm Enndraach em Logboch sing Seeschbaakeit kunnte mer nit ändere:''' $1",
-       "revdel-restore": "Versteische udder Seeschba maache",
+       "logdelete-success": "'''Dä Enndraach em Logbohch wood verschtoche udder seeschbaa jemaat.'''",
+       "logdelete-failure": "'''Däm Enndraach em Logbohch sing Seeschbaakeit kunnte mer nit ändere:''' $1",
+       "revdel-restore": "Verschteische udder seeschba maache",
        "pagehist": "Älldere Versione",
        "deletedhist": "Fottjeschmesse Versione",
        "revdelete-hide-current": "Ene Fähler es opjetodde beim Verschteische. De Version vum $1 öm $2 Uhr es de neuste Version, un kann dröm nit verschtoche wääde.",
        "revdelete-show-no-access": "Ene Fähler es opjetodde beim Aanloore. De Version vum $1 öm $2 Uhr es verschtoche, un De häß dröm keine Zohjang doh drop.",
        "revdelete-modify-no-access": "Ene Fähler es opjetodde beim Ändere. De Version vum $1 öm $2 Uhr es verschtoche, un De häß dröm keine Zohjang doh drop.",
-       "revdelete-modify-missing": "Ene Fähler es opjetodde beim Ändere. En Version met dä Kennong $1 es nit en de Daatebangk.",
+       "revdelete-modify-missing": "Ene Fähler es opjetodde beim Änndere. En Väsjohn met dä Kännong $1 es nit en de Dahtebangk.",
        "revdelete-no-change": "'''Opjepaß:''' Dä Version vum $1 öm $2 Uhr ier Seeschbaakeit es ald esu, wi De se han wells.",
        "revdelete-concurrent-change": "Ene Fähler es opjetodde beim Ändere. Dä Version vum $1 öm $2 Uhr ier Seeschbaakeit schingk ald esu ze sinn, wi De se han wullts. Looer Der de Logbööscher aan.",
        "revdelete-only-restricted": "Beim Verschteische vun däm Enndraach vum $1 öm $2 Uhr es ene Fähler opjefalle:\nDo kanns kein Enndrääsch vör de Wiki_Köbeße verschteijsche, der oohne noch en Zoot Verschteijsche dobei ußzewähle.",
        "revdelete-reasonotherlist": "Ene andere Jrund",
        "revdelete-edit-reasonlist": "De Jrönde för et Fottschmieße beärbeide",
        "revdelete-offender": "Dä Väsion iere Schriever:",
-       "suppressionlog": "Et Logboch fum Versteiche",
-       "suppressionlogtext": "Heh noh kütt et Logboch fum Versteiche, woh Versione fun Sigge, Zosammefassunge, Quelle, Metmaachername un Metmaacher-Sperre ze fenge sin, di fun de Oure vun de Öffentleschkeit, un och fun de Wiki-Köbesse verstoche woodte, udder widder zeröck op nommaal jebraat woodte.\nLoor en de [[Special:BlockList|{{int:ipblocklist}}]] öm ze sinn, wää un wat em Momang wie jesperrt es.",
+       "suppressionlog": "Et Logbohch fum Verschteiche",
+       "suppressionlogtext": "Heh noh kütt et Logbohch fum Verschteiche, woh Versione fun Sigge, Zosammefassunge, Quelle, Metmaachername un Metmaacher-Sperre ze fenge sin, di fun de Oure vun de Öffentleschkeit, un och fun de Wiki-Köbesse verstoche woodte, udder widder zeröck op nommahl jebraat woodte.\nLoor en de [[Special:BlockList|{{int:ipblocklist}}]] öm ze sinn, wää un wat em Momang wie jesperrt es.",
        "mergehistory": "Versione fun Sigge zosamme schmiiße",
        "mergehistory-header": "Met hee dä Sündersigge kanns Du de Versione fun en Urshprongssigg met de Versione fun en neuer Zielsigg zosamme läje. Donn drop aade, dat der Zosammehang fun dä Versione am Engk reschtesch es.",
        "mergehistory-box": "Versione fun zwei Sigge zosamme läje",
        "mergehistory-comment": "„[[:$1]]“ zosamme jelaat met „[[:$2]]“ — $3",
        "mergehistory-same-destination": "De Quell-Sigg un de Ziel-Sigg dörve nit deselve Sigg sinn.",
        "mergehistory-reason": "Der Jrond:",
-       "mergelog": "Logboch fum Sigge zesamme Läje",
+       "mergelog": "Logbohch fum Sigge zesamme Lähje",
        "revertmerge": "Dat Zosammelääje widder retuur maache",
-       "mergelogpagetext": "Dat hee is dat Logboch fun de zesammejelaate Versione fun Sigge",
+       "mergelogpagetext": "Dat heh es dat Logbohch fun de zesammejelaate Väsjohne fun Sigge",
        "history-title": "Älder Versione vun dä Sigg „$1“",
        "difference-title": "Ongerscheide zwesche Versione vun dä Sigg „$1“",
        "difference-title-multipage": "Ongerscheide zwesche dä Sigge „$1“ un „$2“",
        "lineno": "Reih $1:",
        "compareselectedversions": "Dun de markeete Version verjliche",
        "showhideselectedversions": "De ußjewählte Versione aanzeije udder vershteiche",
-       "editundo": "De letzte Änderung zeröck nämme",
+       "editundo": "De läzde Änderong zeröck nämme",
        "diff-empty": "(Keine Ongerscheid)",
        "diff-multi-sameuser": "(Mer don hee {{PLURAL:$1|eij Väsjohn|$1 Väsjohne|keij Väsjohn}} dozwesche nit zeije.   Se {{PLURAL:$1|es|sin|wöhr}} vum sällve Metmaacher)",
        "diff-multi-otherusers": "(Mer don hee {{PLURAL:$1|eij Väsjohn|$1 Väsjohne|keij Väsjohn}} dozwesche vun {{PLURAL:$2|einem|$2 ongerscheidlijje|keinem}} Metmaacher nit zeije)",
        "prev-page": "de Sigg derföhr",
        "next-page": "de Sigg dernoh",
        "prevn-title": "{{PLURAL:$1|Et vorijje|De $1 dovör|Es nix dovör}}",
-       "nextn-title": "{{PLURAL:$1|Et näähßte|De nähßte $1|Kütt nix mieh}}",
+       "nextn-title": "{{PLURAL:$1|Et näähßte|De nähßte $1|Kütt nix mih}}",
        "shown-title": "Zeisch {{PLURAL:$1|ein|$1|nix}} pro Sigg",
        "viewprevnext": "Bläddere: ($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-exists": "*Sigg '''[[$1]]'''",
-       "searchmenu-new": "<strong>Donn de Sigg „[[:$1|$1]]“ hee em Wiki aanlääje.</strong>\n{{PLURAL:$2|Beloor Der ävver och die Sigg, di beim Söhke jefonge wood.|Beloor Der ävver och die Sigge, di beim Söhke jefonge woode sin.|}}",
+       "searchmenu-new": "<strong>Donn de Sigg „[[:$1|$1]]“ heh em Wikki aanlähje.</strong>\n{{PLURAL:$2|Beloor Der ävver och di Sigg, di beim Söhke jefonge wood.|Beloor Der ävver och di Sigge, di beim Söhke jefonge woode sin.|}}",
        "searchprofile-articles": "Sigge vum Enhalt",
        "searchprofile-images": "Dateie met Medije",
        "searchprofile-everything": "Övverall noh",
        "search-suggest": "Häß De „$1“ jemeint?",
        "search-interwiki-caption": "Schwesterprojekte",
        "search-interwiki-default": "Op $1 woodte heh di Träffer jefonge:",
-       "search-interwiki-more": "(mieh)",
+       "search-interwiki-more": "(mih)",
        "search-relatedarticle": "Ähnlesch",
        "searchrelated": "ähnlesch",
        "searchall": "all",
        "search-external": "Söke fun Ußerhallef",
        "searchdisabled": "Dat Söhke hee {{GRAMMAR:en|{{SITENAME}}}} es em Momang avjeschalt.\nDat weed op dänne ẞööver ad ens jemaat, domet de Lass op inne nit ze jroß weed,\nun winnischsdens dat normale Sigge Oprofe flöck jenoch jeiht.\n\nEhr künnt esu lang övver en Söhkmaschin vun usserhalv emmer noch\nSigge us {{GRAMMAR:Dative|{{ucfirst:{{SITENAME}}}}}} finge.\nEt es nit jesaht,\ndat dänne ehr Daate topaktoell sin,\nävver et es bäßer wi jaa_nix.",
        "search-error": "An error has occurred while searching: $1",
-       "preferences": "ming Enstellunge",
+       "preferences": "ming Ennschtällonge",
        "mypreferences": "Enschtällonge",
-       "prefs-edits": "Aanzahl Änderunge am Wiki:",
+       "prefs-edits": "Aanzahl Änderonge am Wiki:",
        "prefsnologintext2": "Donn ennlogge, öm Ding Enschtällonge ze verändere.",
-       "prefs-skin": "Et Ussinn",
+       "prefs-skin": "Et Ußsinn",
        "skin-preview": "Vör-Ansich",
        "datedefault": "Ejaal - kein Vörliebe",
-       "prefs-labs": "Neu Saache zom Ußprobeere, die künnte noch nit akeraat fluppe",
+       "prefs-labs": "Neu Saache zom Ußprobeere, di künnte noch nit akeraat fluppe",
        "prefs-user-pages": "Metmaachersigge",
-       "prefs-personal": "De Enstellunge",
+       "prefs-personal": "De Ennschtällonge",
        "prefs-rc": "Neuste Änderonge",
-       "prefs-watchlist": "De Oppassliss",
+       "prefs-watchlist": "De Oppaßleß",
        "prefs-editwatchlist": "De Oppaßleß beärbeijde",
        "prefs-editwatchlist-label": "Endrähsch en Dinge Oppaßleß beärbeijde:",
        "prefs-editwatchlist-edit": "Siggeövverschreffte en Dinge Oppaßleß belohre un eruß schmiiße:",
        "prefs-editwatchlist-raw": "De Oppaßleß en rüh beärbeijde:",
        "prefs-editwatchlist-clear": "Donn Ding Oppaßleß läddesch maache",
-       "prefs-watchlist-days": "Aanzahl Daare för en ming Oppassliss aanzezeije:",
+       "prefs-watchlist-days": "Aanzahl Dähsch för en ming Oppaßleß aanzezeije:",
        "prefs-watchlist-days-max": "Nit mieh wie {{PLURAL:$1|eine Daach|$1 Dääch|keine Daach}}",
-       "prefs-watchlist-edits": "Aanzahl Änderunge för en ming verjrößerte Oppassliss aanzezeije:",
-       "prefs-watchlist-edits-max": "Nit mieh wie 1000",
-       "prefs-watchlist-token": "Oppassleß-Kennzeishe:",
+       "prefs-watchlist-edits": "Aanzahl Änderonge för en minge verjrößerte Oppaßleß aanzezeije:",
+       "prefs-watchlist-edits-max": "Nit mih wie 1000",
+       "prefs-watchlist-token": "Oppaßleß_Kännzeijsche:",
        "prefs-misc": "Söns",
        "prefs-resetpass": "Dat Passwood ändere",
        "prefs-changeemail": "Donn en Adräß för de <i lang=\"en\">e-mail</i> ändere",
        "rows": "Reihe:",
        "columns": "Spalte:",
        "searchresultshead": "Beim Söhke",
-       "stub-threshold": "Links passend för <a href=\"#\" class=\"stub\">klein Sigge</a> fomateere av esu vill Bytes:",
+       "stub-threshold": "Lengks  zopaß för <a href=\"#\" class=\"stub\">klein Sigge</a> fomatehre av esu vill Bytes:",
        "stub-threshold-disabled": "Ußjeschalldt",
-       "recentchangesdays": "Aanzahl Dage en de Liss met de „Neuste Änderunge“ — als Standad:",
+       "recentchangesdays": "de Aanzahl Dähsch en de Leß met de „Neuste Änderonge“ — als Standatt:",
        "recentchangesdays-max": "(Nit mieh wie {{PLURAL:$1|eine Daach|$1 Dääsh|keine Daach}})",
-       "recentchangescount": "Aanzahl Änderunge en de Leß, als Shtandad:",
+       "recentchangescount": "Aanzahl Änderonge en de Leß, als Schtandad:",
        "prefs-help-recentchangescount": "Dat ömfaß de „{{int:recentchanges}}“, de Versione uß de Fojangeheit, un de Logbööcher.",
        "prefs-help-watchlist-token2": "Dat heh es dä jeheime Schlößel för dä <i lang=\"en\" xml:lang=\"en\">Atom</i>- udder <i lang=\"en\" xml:lang=\"en\">RSS</i>-Kanaal met de Änderonge aan Sigge en Dinger Oppaßleß\nWä dä kännt, kann Ding Oppaßleß lässe, alsu halld_en för Desch.\nDo kann Der [[Special:ResetTokens|ene neue Schlößel maache lohße]], wann nüüdesch.",
-       "savedprefs": "Ding Enstellunge sin jetz jesechert.",
+       "savedprefs": "Ding Ennschtällonge sin jäz jeseeschert.",
        "timezonelegend": "Ziggzohn:",
        "localtime": "De Zigg op Dingem Kompjuter:",
-       "timezoneuseserverdefault": "Nemm däm Server sing Zigg ($1)",
+       "timezoneuseserverdefault": "Nemm däm ẞööver sing Zigg ($1)",
        "timezoneuseoffset": "Söns jet, jiff dä Ungerscheid aan",
        "servertime": "De Uhrzigg om ẞööver es jetz:",
        "guesstimezone": "Vum Brauser övvernämme",
        "prefs-custom-css": "Selfsjemaat <i lang=\"en\">Cascading Style Sheet</i>",
        "prefs-custom-js": "Selfsjemaat JavaSkripp",
        "prefs-common-css-js": "Gemeinsam CSS un JavaSkrepp för all de Bovverfläshe:",
-       "prefs-reset-intro": "Op dä Sigg kanns De Ding Enstellunge op dämm Wiki singe Shandatt setze lohße. Ävver Opjepaß: Do jidd et keine „Retuur“-Knopp för!",
+       "prefs-reset-intro": "Op dä Sigg kanns De Ding Ennschtällong op dämm Wikki singe Schandatt setze lohße. Ävver Opjepaß: Do jidd et keine „Retuhr“-Knopp för!",
        "prefs-emailconfirm-label": "Beshtätejung övver <i lang=\"en\">e-mail</i>:",
        "youremail": "E-Mail *",
        "username": "{{GENDER:$1|Metmaacher|Metmaacherėnne|Metmaacher|Metmaacherėnne|Metmaacher}} Name:",
        "prefs-memberingroups": "{{GENDER:$2|Bes}} en {{PLURAL:$1|de Metmaacherjrupp:|$1 Metmaacherjruppe:|keijn Metmaacherjruppe.}}",
-       "prefs-registration": "Aanjemeldt zick",
+       "prefs-registration": "Aanjemäldt zigg",
        "prefs-registration-date-time": "dem $2 öm $3 Uhr",
-       "yourrealname": "Dinge richtije Name *",
+       "yourrealname": "Dinge richtije Nahme *",
        "yourlanguage": "Di Schprohch, di et Wiki kalle soll:",
        "yourvariant": "Der Dijaläk, de Schriefwies, de Zoot Schprohch för der Enhald:",
        "prefs-help-variant": "Der Dijalägg udder de Schriefwies udder de Zoot Schprohch, di De för der Enhald vun Sigge am leevsde häß.",
        "prefs-help-email-others": "Do kannß och zohlohße, dat mer Der domet övver Ding Metmaacherklaafsigg en <i lang=\"en\">e-mail</i> schecke kann. Esu künne ander Metmaacher met Der en Kontak kumme, ohne dat se Dinge Name oder Ding <i lang=\"en\">e-Mail</i> Adress kenne mööte.",
        "prefs-help-email-required": "Do moß en <i lang=\"en>e-mail</i>-Addräß aanjevve.",
        "prefs-info": "Jrundlare",
-       "prefs-i18n": "Shprooche-Enshtellunge",
+       "prefs-i18n": "Schprohche-Enschtällonge",
        "prefs-signature": "Ongerschreff",
        "prefs-dateformat": "Dem Dattum sing Fommaat",
        "prefs-timeoffset": "Enshtellunge för de Uhrzigge",
        "prefs-advancedsearchoptions": "Extra Ußwahle",
        "prefs-advancedwatchlist": "Extra Ußwahle",
        "prefs-displayrc": "Ußwahle för et Leßte Aanzeje",
-       "prefs-displaywatchlist": "Enstellunge för et Aanzeje",
+       "prefs-displaywatchlist": "Ennschtällonge för et Aanzeje",
        "prefs-tokenwatchlist": "Schlößel",
        "prefs-diffs": "Ongerscheide un Verjliische",
        "prefs-help-prefershttps": "Di Enschtällong kütt eets zom drahre, wann De nähksde Mohl enloggs.",
        "email-address-validity-invalid": "Jivv en jöltijje Addräß fö de <i lang=\"en\">e-mail</i> en",
        "userrights": "De Metmaacher ehr Rääschde verwallde",
        "userrights-lookup-user": "Metmaacherjruppe verwalde",
-       "userrights-user-editname": "Däm Metmaacher singe Name:",
-       "editusergroup": "Metmaacher ier Jruppe un Räächde ändere",
-       "editinguser": "Heh deihs De däm '''[[User:$1|$1]]''' $2 sing Rääschde ändere.",
-       "userrights-editusergroup": "Metmaacher en Jruppe donn un uß Jruppe nämme",
+       "userrights-user-editname": "Däm Metmaacher singe Nahme:",
+       "editusergroup": "Metmaacher ier Jroppe un Räächde änndere",
+       "editinguser": "Heh deihs De däm {{GENDER:$1|däm|däm|däm Metmaacher|dä|däm}} '''[[User:$1|$1]]''' {{GENDER:$1|singe|singe|singe|iere|singe}} Rääschde änndere. $2",
+       "userrights-editusergroup": "Metmaacher en Jroppe donn un uß Jroppe nämme",
        "saveusergroups": "Metmaacherjruppe avspeichere",
        "userrights-groupsmember": "Dä Metmaacher es en {{PLURAL:$1|dä Jropp:|dä Jroppe:|keine Jropp.}}",
        "userrights-groupsmember-auto": "Dä Metmaacher es automattesch en {{PLURAL:$1|dä Jropp:|dä Jroppe:|keine Jropp.}}",
-       "userrights-groups-help": "Do kanns de Jruppe för dä Metmaacher hee ändere, ävver opjepaß:\n* E Käßje met Höksche bedüg, dat dä Metmaacher en dä Jrupp es.\n* E Käßje ohne Höksche bedüg, dat dä Metmaacher nit en dä Jrupp es.\n* E Käßje met Stähnsche donävve bedüg, dat De dat Rääsch zwa ändere, ävver de Änderung nit mieh zeröck nämme kanns.",
+       "userrights-groups-help": "Do kanns de Jroppe för dä Metmaacher heh änndere, ävver opjepaß:\n* E Käßje met Höksche bedüg, dat dä Metmaacher en dä Jropp es.\n* E Käßje ohne Höksche bedüg, dat dä Metmaacher nit en dä Jropp es.\n* E Käßje met Stähnsche donävve bedüg, dat De dat Rääsch zwa ändere, ävver de Änderong nit mih zeröck nämme kanns.",
        "userrights-reason": "Aanlaß odder Jrund:",
        "userrights-no-interwiki": "Do häs nit dat Rääsch, Metmaacher ier Rääschte in ander Wikis ze ändere.",
        "userrights-nodatabase": "De Datebank „<strong>$1</strong>“ is nit doh, oder se litt op enem andere ẞööver.",
        "userrights-irreversible-marker": "$1 *",
        "userrights-conflict": "Ene Andere hät di Rääschde ald verändert. Loor, wad_eruß kohm un versöhg_et norr_ens, wann nüüdesch.",
        "userrights-removed-self": "Do häs Dng Rääsch dohzoh jraad drannjejovve, dröm kanns De heh di Sigg nit mieh oproofe.",
-       "group": "Jrupp:",
+       "group": "Jropp:",
        "group-user": "Metmaacher",
        "group-autoconfirmed": "Bestätichte Metmaacher",
        "group-bot": "Bots",
        "group-suppress": "Kontrollettis",
        "group-all": "(jeede)",
        "group-user-member": "{{GENDER:$1|Metmaacher|Metmaacherėn}}",
-       "group-autoconfirmed-member": "automattesch beshtääteshte {{GENDER:$1|Metmaacher|Metmaacherėn}}",
+       "group-autoconfirmed-member": "automattesch beschtähteschte {{GENDER:$1|Metmaacher|Metmaacherėn|Metmaacher|Metmaacherėn|Metmaacher}}",
        "group-bot-member": "{{GENDER:$1|Bot}}",
        "group-sysop-member": "{{GENDER:$1|Wiki-Köbes}}",
        "group-bureaucrat-member": "{{GENDER:$1|Bürrokraad|Bürrokraadefrou}}",
        "right-createpage": "Neu Sigge, ävver kein Klaafsigge, aanlääje",
        "right-createtalk": "Neu Klaafsigge, ävver kein nomaale Sigge, aanlääje",
        "right-createaccount": "Ene neue Metmaacher endraage lohße",
-       "right-minoredit": "Eije Änderung als klein Mini-Änderung makeere",
+       "right-minoredit": "Eije Änderong als klein Mini-Änderong makkehre",
        "right-move": "Sigge ömnenne",
        "right-move-subpages": "Sigge, un ier Ungersigge, zosamme ömnenne",
        "right-move-rootuserpages": "(Houp)-Metmaacher-Sigg Ömnänne",
        "right-movefile": "Dateie ömnenne",
        "right-suppressredirect": "Kein automatesche Ömleidong aanlääje beim Ömnenne",
        "right-upload": "Dateie huhlade",
-       "right-reupload": "En Datei ußtuusche, di ussem Wiki kütt",
-       "right-reupload-own": "En selvs huhjelade Datei ußtuusche",
-       "right-reupload-shared": "En Datei hee em Wiki huhlade, di en Datei ussem zentraale Wiki ersetz, odder „verstich“",
-       "right-upload_by_url": "Datei vun enne URL ent Wiki huhlade",
+       "right-reupload": "En Dattei ußtuusche, di ussem Wikki kütt",
+       "right-reupload-own": "En selvs huhjelahde Dattei ußtuusche",
+       "right-reupload-shared": "En Datei heh em Wikki huhlade, di en Dattei ussem zentrahle Wikki äsäz, odder se „verschtich“",
+       "right-upload_by_url": "Dattei vun enne <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Uniform Ressource Locator\">URL</i> en et Wikki huhlade",
        "right-purge": "Ohne nohzefroge der Enhalt vum Cache för en Sigg fottschmiiße",
        "right-autoconfirmed": "Halfjeschözte Sigge ändere",
        "right-bot": "Als enne automatesche Prozeß odder e Projramm behandelt wääde",
        "right-nominornewtalk": "Klein Mini-Änderunge aan anderlücks Klaafsigge brenge dänne nit „{{int:newmessageslink}}“",
        "right-apihighlimits": "Hütere Jrenze em API",
        "right-writeapi": "Darf de <tt>writeAPI</tt> bruche",
-       "right-delete": "Sigge fottschmieße, die nit besönders vill ahle Versione han",
+       "right-delete": "Sigge fottschmiiße, di nit besönders vill ahle Väsjohne han",
        "right-bigdelete": "Sigge fottschmiiße, och wann se ahle Versione ze baasch han",
        "right-deletelogentry": "Beschtemmpte Endrääsch em Logbooch fottschmiiße un zerök holle",
        "right-deleterevision": "Einzel Versione fun Sigge fottschmiiße un zeröck holle",
        "right-deletedtext": "Fotjeschmeße Täx un Ungerscheid zwesche de verschtoche Versione aanloore",
        "right-browsearchive": "Noh fottjeschmesse Sigge söke",
        "right-undelete": "Fottjeschmeße Sigge widder zeröck holle",
-       "right-suppressrevision": "Versione vun Sigge beloore, verschteische, un zeröck holle, di sujaa för de Wiki-Köhbeße verstoche sin",
+       "right-suppressrevision": "Väsjohne vun Sigge belohre, verschteische, un zeröck holle, di sujaa för de Wiki-Köhbeße verschtoche sin",
        "right-viewsuppressed": "Beloor de Väsjohne, di vun jeedem verschtoche sin.",
        "right-suppressionlog": "De private Logböcher aanloore",
-       "right-block": "Medmaacher Sperre, un domet am Schrive hindere",
+       "right-block": "Metmaacher Schpärre, un domet am Schrihve hendere",
        "right-blockemail": "Metmaacher för et E-Mail Verschecke sperre",
        "right-hideuser": "Ene Metmaacher sperre un em singe Name versteiche",
        "right-ipblock-exempt": "Es ußjenomme vun automatesche Sperre, vun Sperre fun IP-Adresse, un vun Sperre vun Bereiche vun IP-Adresse",
        "right-editprotected": "Sigge ändere, di met „{{int:protect-level-sysop}}“ jezöz sin",
        "right-editsemiprotected": "Sigge met däm Schoz „{{int:protect-level-autoconfirmed}}“ ändere",
        "right-editcontentmodel": "et Modäll vum Ennhald vun Sigge verändere",
-       "right-editinterface": "Sigge met de Texte ändere, die et Wiki kallt",
+       "right-editinterface": "Sigge met de Täxte änndere, di et Wikki kallt",
        "right-editusercssjs": "Anderlücks CSS- un JS-Dateie ändere",
        "right-editusercss": "Anderlücks CSS-Dateie ändere",
        "right-edituserjs": "Anderlücks JS-Dateie ändere",
        "right-editmyusercss": "De eije <i lang=\"en\" xml:lang=\"en\">CSS</i> Datteije aanlääje un ändere",
        "right-editmyuserjs": "Eije JaavaSkrepp-Datteije aanlääje un ändere",
        "right-viewmywatchlist": "De eije Oppaßleß beloore",
-       "right-editmywatchlist": "De eije Oppaßleß ändere. Opjepaß: e paa axjuhne donn Sigge en di Liss-eren, och der ohne dat Rääsch.",
+       "right-editmywatchlist": "De eije Oppaßleß ändere. Opjepaß: e paa Axjuhne donn Sigge en di Less_eren, och der ohne dat Rääsch.",
        "right-viewmyprivateinfo": "ding eije päsöhnlesche Dahte belohre, wi de Adräß för de <i lang=\"en\" xml:lang=\"en\">e-mail</i> udder Dinge ääschte Nahme",
        "right-editmyprivateinfo": "ding eije päsöhnlesche Dahte ändere, wi de Adräß för de <i lang=\"en\" xml:lang=\"en\">e-mail</i> udder der ääschte Nahme",
        "right-editmyoptions": "De eije Enschtällonge ändere",
        "right-rollback": "All de letzte Änderunge fom letzte Metmaacher aan ene Sigg retur maache",
-       "right-markbotedits": "Retur jemaate Änderonge als Bot-Änderung makeere",
+       "right-markbotedits": "Retur jemahte Änderonge als Bot_Änderong makkehre",
        "right-noratelimit": "Kein Beschränkonge dorsch Jränze (<i lang=\"en\">[http://www.mediawiki.org/wiki/Manual:%24wgRateLimits $wgRateLimits]</i>)",
        "right-import": "Sigge uß ander Wikis empochteere",
-       "right-importupload": "Sigge övver et XML-Datei-Huhlade empochteere",
-       "right-patrol": "Anderlücks Änderunge aan Sigge als „nohjeloort“ makeere",
-       "right-autopatrol": "De eije Änderunge automattesch als „Nohjeloohrt“ makeere",
+       "right-importupload": "Sigge övver et <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Extensible Markup Language\">XML</i>-Dattei-Huhlahde empotteere",
+       "right-patrol": "Anderlücks Änderonge aan Sigge als „nohjelohrt“ makkehre",
+       "right-autopatrol": "De eije Änderonge automattesch als „Nohjelohrt“ makkehre",
        "right-patrolmarks": "De „noch nit Nohjeloohrt“ Zeiche en de „{{int:recentchanges}}“ jezeich krijje",
-       "right-unwatchedpages": "De Liss med Sigge beloore, die ein keine Oppasliss dren sin",
+       "right-unwatchedpages": "De Leß med Sigge beloore, di ein keine Oppaßleß dren sin",
        "right-mergehistory": "Ahle Versione vun ongerscheedlijje Sigge zosammedonn",
        "right-userrights": "Metmaacher ier Rääschte ändere",
        "right-userrights-interwiki": "Metmaacher ier Rääschte in ander Wikis ändere",
-       "right-siteadmin": "De Datebank deeschmaache un opmaache för Änderunge",
+       "right-siteadmin": "De Dahtebangk deeschmaache un opmaache för Änderonge",
        "right-override-export-depth": "Beim Sigge Expoteere de Sigge metnämme, woh Lingks drop jon — beß fönef Schredde wigk",
        "right-sendemail": "<i lang=\"en\">e-mail</i> aan ander Metmaacher schecke",
        "right-passwordreset": "De <i lang=\"en\">e-mails</i> vum Paßwoot neu Säze aanloore",
        "right-managechangetags": "[[Special:Tags|Kännzeijsche]] en de Dahtebangk aanlähje udder fottschmiiße",
        "right-applychangetags": "[[Special:Tags|Makehronge]] met de eije Änderonge zersamme verjävve",
        "right-changetags": "[[Special:Tags|Makehronge]] vun Väsjohne un Enndrähsche em Logbohch fott nämme un zohföhje",
-       "newuserlogpage": "Logboch för neu Metmaachere",
+       "newuserlogpage": "Logbohch för neu Metmaachere",
        "newuserlogpagetext": "He sin de Metmaacher opjelėßß, di sesh nöü aanjemäldt han.",
-       "rightslog": "Logboch för Änderunge aan Metmaacher-Räächde",
+       "rightslog": "Logbohch för Änderonge aan Metmaacher-Rääschde",
        "rightslogtext": "Heh sen de Änderonge an de Metmaacher ehre Räächde opjeleß.",
        "action-read": "di Sigg ze lesse",
        "action-edit": "di Sigg ze ändere",
        "action-createtalk": "Klaafsigge aanzeläje",
        "action-createaccount": "hee dä neue Metmaacher aanzemelde",
        "action-history": "de Leß met de fröhjere Väsohne vun heh dä Sigg ze belohre",
-       "action-minoredit": "hee di Änderung als klein „mini“ ze makkeere",
+       "action-minoredit": "heh di Änderong als klein „mini“ ze makkehre",
        "action-move": "di Sigg ömzebenänne",
        "action-move-subpages": "hee di Sigg un ier Ongersigge ömzebenänne",
        "action-move-rootuserpages": "enem Metmaacher sing (Houp)-Metmaacher-Sigg ömzenänne",
        "action-move-categorypages": "Sigge vun Saachjroppe ömzebenänne",
-       "action-movefile": "Die Datei ömnenne",
-       "action-upload": "hee di Datei huhzelade",
-       "action-reupload": "hee di Datei, di et ald jitt, ußzetuusche",
+       "action-movefile": "Di Dattei ömnänne",
+       "action-upload": "heh di Dattei huhzelahde",
+       "action-reupload": "hee di Dattei, di et ald jitt, ußzetuusche",
        "action-reupload-shared": "hee di Datei „för“ di ze säze, di et en de jemeinsame Biblijoteek ald jitt",
-       "action-upload_by_url": "hee di Datei fun en URL erövver trecke ze lohße",
+       "action-upload_by_url": "heh di Dattei fun en <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Uniform Ressource Locator\">URL</i> erövver träke ze lohße",
        "action-writeapi": "dat API zom Schriive ze bruche",
        "action-delete": "heh di Sigg fottzeschmiiße",
        "action-deleterevision": "heh di Versijon fottzeschmiiße",
        "action-browsearchive": "noh fottjeschmeße Sigge ze söke",
        "action-undelete": "heh di fottjeschmeße Sigg widder zeröck ze holle",
        "action-suppressrevision": "hee di fottjeschmeße Versijon aanzeloore un womööschlesch widder zeröck ze holle",
-       "action-suppressionlog": "hee dat jeheime Logboch aanzeloore",
+       "action-suppressionlog": "heh dat jeheime Logbohch aanzelohre",
        "action-block": "hee dämm Metmaacher et Sigge Ändere ze verbeede",
        "action-protect": "hee dä Sigg iere Sigge-Schotz ze ändere",
        "action-rollback": "all de letzte Änderunge fom letzte Metmaacher aan ene beshtemmpte Sigg flöck retur ze maache",
        "action-import": "Sigge uss_enem andere Wiki ze empotteere",
        "action-importupload": "Sigge uss_ene huhjelaade Dattei ze empotteere",
-       "action-patrol": "anderlüx Änderunge als „nohjeloort“ ze makeere",
+       "action-patrol": "anderlüx Änderonge als „nohjelohrt“ ze makkehre",
        "action-autopatrol": "Ding eije Änderunge sälver als „nohjeloort“ ze makeere",
        "action-unwatchedpages": "de Leß met de Sigg en kei Oppassleß aanzeloore",
        "action-mergehistory": "hee dä Sigg ier Verjangeheit un Versijon met ene andere zosamme ze lääje",
        "enhancedrc-since-last-visit": "{{PLURAL:$1|Ein|$1|Kein}} zigg_em läzde Aanloore",
        "enhancedrc-history": "Väsjohne",
        "recentchanges": "Neuste Änderonge",
-       "recentchanges-legend": "Enstellunge",
+       "recentchanges-legend": "Ennschtällonge",
        "recentchanges-summary": "Op dä Sigg heh sin de neuste Änderonge aam Wikki opjeleß.",
        "recentchanges-noresult": "Nit verändert en dä Zigg met de aanjejovve Beschrängkonge.",
        "recentchanges-feed-description": "Op dämm Abonnomang-Kannal (<i lang=\"en\">Feed</i>) kannze de {{int:recentchanges}} aam Wiki en Laif un en Färve metloore.",
        "recentchanges-label-newpage": "Di Sigg es neu dobei jekumme met dä Änderong",
-       "recentchanges-label-minor": "Heh dat es en Mini-Änderung",
-       "recentchanges-label-bot": "Di Änderung es fun enem Bot jemaat woode",
+       "recentchanges-label-minor": "Heh dat es en Mini-Änderong",
+       "recentchanges-label-bot": "Di Änderong es fun enem Bot jemaat woode",
        "recentchanges-label-unpatrolled": "Heh di Änderong es noch nit nohjelohrt",
        "recentchanges-label-plusminus": "Der Ömvang vun dä Sigg hät sesch öm di Aanzahl <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Bytes</i> verändert.",
        "recentchanges-legend-heading": "'''Lejänd:&nbsp;'''",
        "boteditletter": "B",
        "unpatrolledletter": "!",
        "number_of_watching_users_pageview": "[{{PLURAL:$1|eine|$1|kein}} Oppasser]",
-       "rc_categories": "Nor de Saachjruppe (met „|“ dozwesche):",
+       "rc_categories": "Nor de Saachjroppe (met „|“ dozwesche):",
        "rc_categories_any": "All, wat mer han",
        "rc-change-size": "$1 {{PLURAL:$1|Byte|Bytes}}",
        "rc-change-size-new": "$1 {{PLURAL:$1|Byte|Bytes|Bytes}} noh dem Ändere",
        "rc-enhanced-expand": "Einzelheite aanzeije",
        "rc-enhanced-hide": "Einzelheite versteiche",
        "rc-old-title": "ojinaal als „$1“ aanjelaat",
-       "recentchangeslinked": "Änderunge aan Sigge, wo heh drop jelink es",
+       "recentchangeslinked": "Änderonge aan Sigge, wo heh drop jelink es",
        "recentchangeslinked-feed": "Änderunge aan Sigge, wo hee drop jelink es",
-       "recentchangeslinked-toolbox": "Änderunge aan Sigge, wo hee drop jelink es",
+       "recentchangeslinked-toolbox": "Änderonge aan Sigge, wo heh drop jelenk es",
        "recentchangeslinked-title": "Änderonge aan Sigge, di vun „$1“ uß verlengk sin",
        "recentchangeslinked-summary": "Heh di {{int:nstab-special}} hädd en Leß met Änderonge aan Sigge, di vun dä aanjejovve Sigg uß verlengk sin.\nBei Saachjroppe sen et de Sigge en dä Saachjropp.\nSigge uß Dinge [[Special:Watchlist|Opaßleß]] sin en '''Fättschreff''' jeschrevve.",
        "recentchangeslinked-page": "Dä Sigg ier Övverschreff:",
        "uploadtext": "Met däm Formular unge kanns de Belder oder ander Daate huhlade.\nJangk op de [[Special:FileList|Less met de huhjelaade Datteie]], öm esu en Datteie ze beloore udder noh inne ze söhke. De Logbööscher vum [[Special:Log/upload|Huhlaade]] un vum [[Special:Log/delete|Sigge fottschmiiße]] künnte Der och hellefe.\n\nDo kanns dann Ding Werk en Sigge enbinge, met Lengks en dä Aate:\n* <code>'''<nowiki>[[</nowiki>{{ns:file}}:'''''Beldche'''''.jpg]]'''</code> — för di janze Dattei ze zeije, wi se eß,\n* <code>'''<nowiki>[[</nowiki>{{ns:file}}:'''''Beld'''''.svg | '''''200''''' px]]'''</code> — för e Mini-Beldsche met 200&nbsp;Pixelle Breedt ze zeije,\n* <code>'''<nowiki>[[</nowiki>{{ns:file}}:'''''Su süht dat us'''''.png | left | thumb | '''''ene Tex''''' ]]'''</code> — deiht e 200-Pixel-Mini-Beldsche en ene Kaßte aan der lenke (<i lang=\"en\">left</i>) Rand vun dä Sigg un „ene Tex“ onger däm Beldsche,\n* <code>'''<nowiki>[[</nowiki>{{ns:media}}:'''''Esu hürt sich dat aan'''''.ogg]]'''</code> — öm tiräk op en Dattei ze Lenke, ohne se aanzzeije.\nUsführlich met alle Müjjelichkeite fings de dat bei de Hölp.",
        "upload-permitted": "{{PLURAL:$2|Bloß dä Datteitüp <code>$1</code> es zohjelohße.|Nor heh di Dateitüpe sin zohjelohße: <code>$1</code>.|Keine Dateitüp es zohjelohße.}}",
        "upload-preferred": "De bevörzochte Zoot{{PLURAL:$2||e|}} Datei{{PLURAL:$2||je|}}: $1.",
-       "upload-prohibited": "Verbodde Zoot{{PLURAL:$2||e|} Datei{{PLURAL:$2||je|}: $1.",
-       "uploadlogpage": "Logboch met de huhjelade Dateie",
+       "upload-prohibited": "Verbodde Zoot{{PLURAL:$2||e|}} Dattei{{PLURAL:$2||je|}}: $1.",
+       "uploadlogpage": "Logbohch met de huhjelade Dateije",
        "uploadlogpagetext": "Hee sin de Neuste huhjelade Dateie opjeliss un wä dat jedon hät.\n(En de [[Special:NewFiles|Jalleri met neu Dateie]] kriß De ene Övverbleck med Belldsche)",
-       "filename": "Dä Name vun dä Datei",
+       "filename": "Dä Nahme vun dä Dattei",
        "filedesc": "Beschrievungstex un Zosammefassung",
        "fileuploadsummary": "Beschrievungstex un Zosammefaßong:",
-       "filereuploadsummary": "Änderunge aan Dateie:",
+       "filereuploadsummary": "Änderonge aan Datteie:",
        "filestatus": "Urhevver Räächsstatus:",
        "filesource": "Quell:",
-       "ignorewarning": "Warnung üvverjonn, un Datei trotzdäm avspeichere.",
-       "ignorewarnings": "Alle Warnunge üvverjonn",
-       "minlength1": "Dateiname mösse winnischßtens eij Zeijsche lang sin.",
-       "illegalfilename": "Schad:\n<br />\nEn däm Name vun dä Datei sin Zeiche enthallde,\ndie mer en Titele vun Sigge nit bruche kann.\n<br />\nSök Der statt „$1“ jet anders us,\nun dann muss de dat Dinge noch ens huhlade.",
+       "ignorewarning": "Warnong övverjonn, un de Datteij trotzdämm afschpeijschere.",
+       "ignorewarnings": "Alle Warnonge övverjonn",
+       "minlength1": "Datteinahme mösse winnischßtens eij Zeijsche lang sin.",
+       "illegalfilename": "Schahd:\n<br />\nEn däm Name vun dä Datei sin Zeijsche änthallde,\ndi mer en Titele vun Sigge nit bruche kann.\n<br />\nSöhk Der statt „$1“ jet anders us,\nun dann moß de dat Dinge noch ens huhlade.",
        "filename-toolong": "Name för Dateije künne nit mih wi 240 Bytes lang sind.",
-       "badfilename": "De Datei es en „$1“ ömjedäuf.",
-       "filetype-mime-mismatch": "Dä Datei ier Ängk vum Name (<code lang=\"en\">.$1</code>) paß nit zo dä <i lang=\"en\">MIME</i>-Zoot (<code lang=\"en\">$2</code>)",
-       "filetype-badmime": "Dateie mem MIME-Typ „<code>$1</code>“ wulle mer nit huhjelade krijje.",
+       "badfilename": "De Dattei es en „$1“ ömjedäuf.",
+       "filetype-mime-mismatch": "Dä Datei ier Ängk vum Name (<code lang=\"en\">.$1</code>) paß nit zo dä <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Zoot (<code lang=\"en\">$2</code>)",
+       "filetype-badmime": "Dateije met dä <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Zoot „<code>$1</code>“ wulle mer nit huhjelahde krijje.",
        "filetype-bad-ie-mime": "Di Datei kam_mer nit huhlade, weil der Internet Explorrer se för en „$1“\nhallde deiht, wat nit erlaub, un müjjelelscherwies ene jefährlesche Dattei-Typp es.",
        "filetype-unwanted-type": "Dat Dateifommaat '''„<code>.$1</code>“''' wulle mer nit esu jään huhjelaade krijje. Leever {{PLURAL:$3|ham_mer|ham_mer ein fun|ham_mer nix}}: $2.",
        "filetype-banned-type": "{{PLURAL:$4|Dat Dateifommaat|De Dateifommaate|}} '''<code>$1</code>''' wulle mer nit huhjelaade krijje. Älaup {{PLURAL:$3|es|sin_er|}}: <code>$2</code>",
        "filename-tooshort": "Dä Name vun dä Dattei es ze koot.",
        "filetype-banned": "Di Zoot Dattei es nit zohjelohße.",
        "verification-error": "Heh di Dattei es dorsch de Pröövung jefalle.",
-       "hookaborted": "Ding Änderung wood vun enem Zohsazprojramm nit zohjelohße.",
+       "hookaborted": "Ding Änderong wood vun enem Zohsazprojramm nit zohjelohße.",
        "illegal-filename": "Esu ene Name för en Dattei es nit zohjelohße.",
        "overwrite": "Et es nit zohjelohße, Datteie ze övverschrieve, di ald doh sin.",
        "unknown-error": "Ene Fähler es opjetrodde, dä mer nit kenne.",
        "tmp-create-error": "Mer kunnte kein Zweschedattei aanlääje.",
        "tmp-write-error": "Ene Fähler es opjetrodde bem Schrieve en de Zweschedattei.",
        "large-file": "Dateie sullte nit jröößer wääde, wi $1, ävver Ding Datei es $2 jroß.",
-       "largefileserver": "De Datei es ze jroß. Jrößer wie däm ẞööver sing Enstellung erlaub.",
-       "emptyfile": "Wat De hee jetz huhjelade häs, hät kein Daate dren jehatt. Künnt sin, dat De Dich verdon häs, un dä Name wo verkihrt jeschrevve. Luur ens ov De wirklich <strong>die</strong> Datei hee huhlade wells.",
+       "largefileserver": "De Dattei es ze jroß. Jrößer wie däm ẞööver sing Enstellung erlaub.",
+       "emptyfile": "Wat De heh jäz huhjelade häs, hät kein Dahte dren jehatt. Künnt sin, dat De Desch verdonn häs, un dä Nahme wo verkihrt jeschrevve. Luhr ens ov De verhafftesch di Dattei heh huhlade wells.",
        "windows-nonascii-filename": "Heh dat Wiki löht kein Datteiname met Sönderzeische zoh.",
        "fileexists": "Et jitt ald en Dattei met däm Nahme. Bes esu johd un lohr Der <strong>[[:$1]]</strong> aan, wann De nit secher bes, da De se ändere wells.\n[[$1|thumb]]",
        "filepageexists": "En Sigg övver di Datei met däm Tittel <strong>[[:$1]]</strong> es ald doh, ävver en Datei met däm Name ham_mer nit. Dinge Tex kütt nit automattesch op di Sigg övver di Dattei. Di Sigg moß De wann nüüdesch noch ens extra ändere.\n[[$1|thumb]]",
        "fileexists-extension": "Mer han ald en Dattei, di bahl jenou esu heijß: [[$2|thumb]]\n* Huh am laade sim_mer: <strong>[[:$1]]</strong>\n* Ald om ßörve eß: <strong>[[:$2]]</strong>\nWels De nit leever ene andere Nahme fö di Datei ußsöhke?",
        "fileexists-thumbnail-yes": "Dat süühd uß, wi wann dat hee en Minni-Beldsche em Breefmarrke-Fommaat (''<span lang=\"en\">thumbnail</span>'') wöhr. [[$1|thumb]]\nDon ens di Dattei <strong>[[:$1]]</strong> prööfe.\nWann dat de Orjinaaljrüß es, do moß keij för dat Beld keij extra Vör-Aansich huhjelade wäde.",
-       "file-thumbnail-no": "Dä Name fö di Datei fängk met <strong>$1</strong> aan.\nDat süühd uß, wi wann dat en Minni-Beldsche em Breefmarrke-Fommaat\n(''<span lang=\"en\">thumbnail</span>'') wöhr. Don ens di Dattei\n<strong>$1</strong> prööfe, of de nit e besser opjelööß Beld\ndofun häß, un don dat met singe Orjinaaljrüß huhlade, wann möjjelesch.\nSöns donn besser ene andere Dateiname ußsöke.",
+       "file-thumbnail-no": "Dä Nahme fö di Dattei fängk met <strong>$1</strong> aan.\nDat süühd uß, wi wann dat en Minni-Beldsche em Breefmarrke-Fommaht\n(<i lang=\"en\">thumbnail</i>) wöhr. Don ens di Dattei\n<strong>$1</strong> pröhfe, of De nit e besser opjelöhß Beld\ndofun häß, un don dat met singe Orjinaaljrühß huhlade, wann müjjelesch.\nSöns donn besser ene andere Datteinahme ußsöhke.",
        "fileexists-forbidden": "Et jitt ald en Dattei met däm Name, un mer kann se nit övverschriive.\nWann de Ding Dattei trozdämm huhlaade wells, da jangk zeröck un lad se\nunger enem andere Name huh. [[File:$1|thumb|center|$1]]",
        "fileexists-shared-forbidden": "Et jitt ald en Datei met däm Name em jemeinsame Speicher:\n[[File:$1|thumb|center|$1]]\nJangk zeröck un lad Ding Datei unger enem andere Name huh,\nwann De se noch han wells.",
        "file-exists-duplicate": "Di Dattei hät dersellve Enhallt wi hee di {{PLURAL:$1|Datei|Dateie|}}:",
        "file-deleted-duplicate-notitle": "En Datei mem sellve Enhallt wi di heh es ens fottjeschmeße woode, un dä iehre Tettel es verschtoche. Donn en däm Zosammehang eine froore, dä fottjeschmeße un verstoche Datteije beloore kann, ih dat De se widder huhläds.",
        "uploadwarning": "Warnung beim Huhlade",
        "uploadwarning-text": "Donn onge dä Täx övver di Dattei ändere, un versöhg_et norr_ens.",
-       "savefile": "Datei avspeichere",
+       "savefile": "Dattei avspeichere",
        "uploaddisabled": "Huhlade jesperrt",
        "copyuploaddisabled": "Et Huhlaade us URLs es afjeschalldt",
        "uploaddisabledtext": "Et Huhlade es jesperrt.",
        "php-uploaddisabledtext": "Et Dateie Huhlade es en PHP affjeschalldt.\nBes esu joot un donn noh de Enshtellung <i lang=\"en\">file_uploads</i> loore.",
        "uploadscripted": "En dä Datei es HTML dren oder Code vun enem Skripp, dä künnt Dinge Brauser en do verkihrte Hals krije un usführe.",
+       "upload-scripted-pi-callback": "Mer künne kein Dattei huhlahde woh Befähle för et Verärbeijde vun \n<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Extensible Markup Language\">XML</i> för et Fommattehre dren sin.",
+       "uploaded-script-svg": "Mer han e verbodde Skrepp_Elemänd en dä huhjelahde <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Scalable Vector Graphics\">SVG</i>_Dattei jefonge: „$1“",
+       "uploaded-hostile-svg": "Mer han onseescher <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Cascading Style Sheet\">CSS</i>-Befähle en enem „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">style</code>“-Ellemänt vun dä huhjelahde <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Scalable Vector Graphics\">SVG</i>_Dattei jefonge.",
+       "uploaded-event-handler-on-svg": "Projramme för Ä'eijschneße ze behanndelle „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">&lt;$1=\"$2\"&gt;</code>“ ennzesäze es en <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Scalable Vector Graphics\">SVG</i>_Datteije verbodde.",
+       "uploaded-href-attribute-svg": "De Eijeschaff „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">href</code>“ „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">&lt;$1 $2=\"$3\"&gt;</code>“ met Zihl_Datteije ußerhallef vum Wikki, Beijschpelle „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">http://</code>“,  „<code $3lang=\"en\" xml:lang=\"en\" dir=\"ltr\">javascript:</code>“, un esu wigger, sin verbodde en dä <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Scalable Vector Graphics\">SVG</i>_Datteije.",
+       "uploaded-href-unsafe-target-svg": "Mer han ene „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">href</code>“-Befähl obb e onseescher Zihl „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">&lt;$1 $2=\"$3\"&gt;</code>“ en dä huhjelahde <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Scalable Vector Graphics\">SVG</i>_Dattei jefonge.",
+       "uploaded-animate-svg": "Mer han dä Befähl „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">animate</code>“ en dä huhjelahde \n<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Scalable Vector Graphics\">SVG</i>_Dattei jefonge, dä ene „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">href</code>“-Befähl verändere künnt övver de „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">from</code>“-Eijeschaff „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">&lt;$1 $2=\"$3\"&gt;</code>“.",
+       "uploaded-setting-event-handler-svg": "Ed es verbodde, Projramme för Ä'eijschneße ze behanndelle ennzesäze, un de Datteije, di dat donn, wähde jeschpächt. Mer han „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">&lt;$1 $2=\"$3\"&gt;</code>“ en dä huhjelahde <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Scalable Vector Graphics\">SVG</i>_Dattei jefonge.",
+       "uploaded-setting-href-svg": "Dä Befähl „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">set</code>“ för de „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">href</code>“-Eijeschaff vun övverjeohdente Ällemänt ze säze es jeschpächt.",
+       "uploaded-wrong-setting-svg": "Dä Befähl „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">set</code>“, öm eine vun dä Eijeschaffte „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">remote/data/script target</code>“ op ejahl wat ze säze, es verbodde. Mer han „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">&lt;set to=\"$1\"&gt;</code>“ en dä huhjelahde <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Scalable Vector Graphics\">SVG</i>_Dattei jefonge.",
+       "uploaded-setting-handler-svg": "Mer han „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1=\"$2\"</code>“ en dä huhjelahde <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Scalable Vector Graphics\">SVG</i>_Dattei jefonge. Esu en Datteije, di de Eijeschaff „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">handler</code>“ op ein vun „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">remote/data/script</code>“ säz sin jeschpächt.",
+       "uploaded-remote-url-svg": "\n<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Scalable Vector Graphics\">SVG</i>_Datteije di öhnds_e „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">style</code>“-Ellemänt obb_en <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Uniform Ressource Locator\">URL</i> ußerhallef vum Wikki säze sin verbodde un jeschpächt. Mer han \n„<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1=\"$2\"</code>“ en dä huhjelahde <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Scalable Vector Graphics\">SVG</i>_Dattei jefonge.",
+       "uploaded-image-filter-svg": "Mer han ene Belder_Felter met däm <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Uniform Ressource Locator\">URL</i> <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">&lt;$1 $2=\"$3\"&gt;</code> en dä huhjelahde \n<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Scalable Vector Graphics\">SVG</i>_Dattei jefonge.",
        "uploadscriptednamespace": "De aanjejovve <i lang=\"en\" xml:lang=\"en\">SVG</i>-Dattei benöds dä verbodde Nahme-Roum „$1“",
        "uploadinvalidxml": "Dat <i lang=\"en\" xml:lang=\"en\">XML</i> en dä huh jelaade Dattei kunnt wohr nit en Oodenong beim Ongersöhke.",
        "uploadvirus": "Esu ene Dress:\n<br />\nEn dä Datei stich e Kompjutervirus!\n<br />\nDe Einzelheite: $1",
        "uploadjava": "Dat es en Sammel_Dattei em ZIP-Fommaat, woh en Java-.class-Datei dren shtich.\nJava-Datteie huhlaade es nit zohjelohße, weil mer domet de Enshtellunge ömjonn kann, di der ẞörver schöze un däm sing Sescherheit jarranteere.",
        "upload-source": "Wo de Daate herkumme",
-       "sourcefilename": "Datei zem huhlade:",
+       "sourcefilename": "Dattei zem huhlahde:",
        "sourceurl": "<i lang=\"en\">URL</i> för vun eronger ze laade",
-       "destfilename": "Unger däm Dateiname avspeichere:",
-       "upload-maxfilesize": "Der jrüütßte müjjelesche Ömfang för en Datei es $1.",
-       "upload-description": "Övver di Datei",
-       "upload-options": "Enstellunge för et Laade",
-       "watchthisupload": "Op di Datei oppaßße",
-       "filewasdeleted": "Unger däm Name wood ald ens en Datei huhjelade. Die es enzwesche ävver widder fottjeschmesse woode. Luur leever eets ens en et $1 ih dat De se dann avspeichere deis.",
+       "destfilename": "Unger däm Datteinahme avschpeijschere:",
+       "upload-maxfilesize": "Der jrühtßte müjjelesche Ömfang för en Dattei es $1.",
+       "upload-description": "Övver di Dattei",
+       "upload-options": "Ennschtällonge för et Laade",
+       "watchthisupload": "Op di Dattei oppaßße",
+       "filewasdeleted": "Onger däm Nahme wohd ald ens en Dattei huhjelahde. Di es enzwesche ävver widder fottjeschmesse woode. Luhr leever eets ens en et $1 ih dat De se dann avschpeischere deihs.",
        "filename-bad-prefix": "Dä Datei ier Name fängk met '''„$1“''' aan. dat eß fä jewöhnlesch ene Name, dä en dijjitaale Kammerra iere Belder jitt. Esu en Name donn uns esu winnisch verzälle, dat mer se nit jän em Wiki han wulle.\nBes esu joot un jiff dä enne Name, wo mer mieh met aanfange, öm ze wesse, wat en dä Datei dren es.",
        "filename-prefix-blacklist": " #<!-- Lohß di Reih jenou esu wie se es! --> <pre>\n#  Syntax:\n#   * Alles zwesche em #-Zeiche bes nohm Engk vun de Reih es ene Kommäntaa\n#   * Jede Reih met jet dren es ene typpesche Aanfang för ene Datteiname,\n#   * dä automattesch vun ene Dijjitahlkammera kütt\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # - et ein udder andere mobile Tellefohn -\nIMG # - alljemein üplesch -\nJD # Jenoptik\nMGP # Pentax\nPICT # - diverse -\n #</pre> <!-- Lohß di Reih jenou esu wie se es! -->",
        "upload-success-subj": "Et Huhlade hät jeflupp",
        "upload-proto-error": "Verkihrt Protokoll",
        "upload-proto-error-text": "Ene URL för en Datei fun huhzelade moß met <code>http://</code> uder <code>ftp://</code> aafange.",
        "upload-file-error": "Fääler em Wiki beim Huhlade",
-       "upload-file-error-text": "Ene ennere Fääler es opjekumme beim Aanläje vun en Datei om Server.\nVerzäll et enem [[Special:ListUsers/sysop|Wiki-Köbes]].",
+       "upload-file-error-text": "Ene ennere Fähler es opjekumme beim Aanlähje vun en Datteij om ẞööver.\nVerzäll et enem [[Special:ListUsers/sysop|Wikki-Köhbes]].",
        "upload-misc-error": "Dat Huhlaade jing donevve",
        "upload-misc-error-text": "Dat Huhlaade jing donevve.\nMer wesse nit woröm.\nPröf de URL un versök et noch ens.\nWann et nit flupp, verzäll et enem [[Special:ListUsers/sysop|Wiki-Köbes]].",
        "upload-too-many-redirects": "Zoh vill Ömleitunge en däm <i lang=\"en\">URL</i>",
        "licenses-edit": "Donn de Lezänzbedengonge verändere udder beärbeide.",
        "license-nopreview": "(Kein Vör-Aansich ze hann)",
        "upload_source_url": "(en Dattei med ene öffentlesch zohjänglesche URL)",
-       "upload_source_file": "(en Datei op Dingem Kompjuter)",
+       "upload_source_file": "(en Dattei op Dingem Kompjuter)",
        "listfiles-delete": "fottschmieße",
        "listfiles-summary": "Heh sin de huhjelade Dateije opjeleß.",
-       "listfiles_search_for": "Sök noh däm Name vun dä Datei:",
+       "listfiles_search_for": "Söhk noh däm Nahme vun dä Dattei:",
        "listfiles-userdoesnotexist": "Ene Metmaacher mem Nahme „$1“ ham_mer nit.",
        "imgfile": "Dattei",
        "listfiles": "Dateie opleste",
        "listfiles_thumb": "Minni-Belldsche",
        "listfiles_date": "Dattum",
-       "listfiles_name": "Name",
+       "listfiles_name": "Nahme",
        "listfiles_user": "Metmaacher",
        "listfiles_size": "Byte",
-       "listfiles_description": "Wat en dä Datei dren schtisch",
+       "listfiles_description": "Wat en dä Dattei dren schtisch",
        "listfiles_count": "Väsjohne",
        "listfiles-show-all": "Ällder Väsjohne vun de Belder med aanzeije",
        "listfiles-latestversion": "De neuste Väsjohn",
        "listfiles-latestversion-yes": "Joh",
        "listfiles-latestversion-no": "Nää",
        "file-anchor-link": "Dattei",
-       "filehist": "De Versione vun dä Datei",
+       "filehist": "De Väsjohne vun dä Dattei",
        "filehist-help": "Di domohlije Version kriß De jezeich övver dä Link op em Dattum.",
        "filehist-deleteall": "All Versione fottschmieße",
-       "filehist-deleteone": "Schmieß die Version fott",
-       "filehist-revert": "Zeröck nemme",
+       "filehist-deleteone": "Schmiiß di Väsjohn fott",
+       "filehist-revert": "Zeröck nämme",
        "filehist-current": "Von jetz",
-       "filehist-datetime": "Version vom",
+       "filehist-datetime": "Väsjohn vom",
        "filehist-thumb": "Minni-Belldsche",
        "filehist-thumbtext": "Mini-Beldsche för de Version fum $2 öm $3 Uhr",
        "filehist-nothumb": "Kei Mini-Beldsche",
        "filehist-filesize": "Dateiömfang",
        "filehist-comment": "Aanmärkong",
        "imagelinks": "Jebruch",
-       "linkstoimage": "Heh {{PLURAL:$1|kütt di Sigg|kumme di $1 Sigge|sin keij Sigge}}, die op heh di Dattei linke {{PLURAL:$1|deiht|dun|dun}}:",
+       "linkstoimage": "Heh {{PLURAL:$1|kütt di Sigg|kumme di $1 Sigge|sin keij Sigge}}, di op heh di Dattei lengke {{PLURAL:$1|deiht|donn| donn}}:",
        "linkstoimage-more": "Mieh wie {{PLURAL:$1|ein Sigg link|$1 Sigge linke|kein Sigg link}} op di Datei.\nDe Liß hee dronger zeisch nur {{PLURAL:$1|der eetse Link|de eetste $1 Links|keine Link}} op di Datei.\nMer ävver han och en [[Special:WhatLinksHere/$2|Komplätte Leß]].",
-       "nolinkstoimage": "Nix link op hee die Datei.",
-       "morelinkstoimage": "Belohr Der [[Special:WhatLinksHere/$1|de Links]] op di Datei.",
+       "nolinkstoimage": "Nix Lengk op heh di Dattei.",
+       "morelinkstoimage": "Belohr Der [[Special:WhatLinksHere/$1|de Lengks]] op di Dattei.",
        "linkstoimage-redirect": "$1 (Dattei-Ömleidong) $2",
        "duplicatesoffile": "Mer hann_er {{PLURAL:$1|en dubbelte Datei|$1 dubbelte Dateie|kei dubbelte Dateije}} fon he dä Datei, di {{PLURAL:$1|hät|han all|han}} dersellve Enhalldt ([[Special:FileDuplicateSearch/$2|mieh Einzelheite]]):",
-       "sharedupload": "De Datei es för diverse ungerscheidlije Projekte parat jelaht. Se kütt fun $1.",
+       "sharedupload": "De Dattei es för divärse ungerscheidlije Projekte paraht jelaht. Se kütt fun $1.",
        "sharedupload-desc-there": "Di Datei kütt vun $1 un kann en andere Projekte jebruch wäde.\nMer han och [$2 jenouer Date övver se].",
        "sharedupload-desc-here": "Di Datei kütt vun $1 un kann en ander Projekte jebruch wäde.\nJenouer Date övver se fingk mer op dä [$2 Sigg övver se].\nDat sellve shteiht hee dronger.",
        "sharedupload-desc-edit": "Heh di Dateti es vun $1 un künnt anderswoh och jebruch wääde.\nVelleisch sullts De dä [$2 Täx övver se doh]  aanpasse.",
        "sharedupload-desc-create": "Heh di Dateti es vun $1 un künnt anderswoh och jebruch wääde.\nVelleisch sullts De dä [$2 Täx övver se doh]  aanpasse.",
-       "filepage-nofile": "Et jit kein Datei met dämm Nahme.",
+       "filepage-nofile": "Et jit kein Dattei met dämm Nahme.",
        "filepage-nofile-link": "Et jit kein Datei met dämm Nahme, ävver De kanns se [$1 huhlaade].",
-       "uploadnewversion-linktext": "Dun en neu Version vun dä Datei huhlade",
+       "uploadnewversion-linktext": "Dun en neuj väsjohn vun dä Dattei huhlahde",
        "shared-repo-from": "uß $1",
        "shared-repo": "ene jemeinsame Beshtand",
        "shared-repo-name-wikimediacommons": "Wikkimeedija Commons",
        "filepage.css": "/* Heh dat CSS küdd op Sigge övver Dateije, och di vun ander Wikis jehollt woode sin. */",
        "upload-disallowed-here": "Do kanns heh di Dattei nit övverschriive.",
        "filerevert": "„$1“ zerök holle",
-       "filerevert-legend": "Datei zeröck holle",
+       "filerevert-legend": "Dattei zerök holle",
        "filerevert-intro": "<span class=\"plainlinks\">Do bes di Datei '''[[Media:$1|$1]]''' op di [$4 Version fum $2 öm $3 Uhr] zeröck aam sätze.</span>",
        "filerevert-comment": "Jrond:",
        "filerevert-defaultcomment": "Zerök jesaz op di Version fum $1 öm $2 Uhr",
        "filerevert-success": "<span class=\"plainlinks\">Di Dattei '''[[Media:$1|$1]]''' es jäz op di [$4 Version fum $2 öm $3 Uhr] zerök jesatz.</span>",
        "filerevert-badversion": "Mer han kei Version fun dä Datei för dä aanjejovve Zickpunk.",
        "filedelete": "Schmieß „$1“ fott",
-       "filedelete-legend": "Schmieß de Datei fott",
+       "filedelete-legend": "Schmieß de Dattei fott",
        "filedelete-intro": "Do beß di Datei '''„[[Media:$1|$1]]“''' am Fottschmieße, un och all ier vörrije Versione, der Text övver se, un all de Änderunge draan.",
        "filedelete-intro-old": "<span class=\"plainlinks\">Do schmiiß de Version [$4 fum $2 öm $3 Uhr] fun dä Datei „[[Media:$1|$1]]“ fott.</span>",
        "filedelete-comment": "Aanlaß odder Jrund:",
        "filedelete-edit-reasonlist": "De Jrönde för et Fottschmieße beärbeide",
        "filedelete-maintenance": "Datteie Fottschmiiße un widder zerök Holle jeiht jez jrad nit, mer hann Waadong.",
        "filedelete-maintenance-title": "Di Dattei künne mer nit fottschmiiße",
-       "mimesearch": "Dateije övver dänne ehre <span lang=\"en\">MIME</span>-Tüp söhke",
-       "mimesearch-summary": "Op hee dä {{int:nstab-special}} könne de Dateie noh em <i lang=\"en\" xml:lang=\"en\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Tüpp ußjesöhk wähde.\nMer moß der Medijetüp un der Ongertüp aanjevve mem scheive Schtresch derzwesche, zem Bejschpell: <code xml:lang=\"en\" lang=\"en\">image/jpeg</code> udder <code xml:lang=\"en\" lang=\"en\">text/*</code> udder esu.",
-       "mimetype": "MIME-Typ:",
+       "mimesearch": "Dateije övver dänne ehre <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Zoot söhke",
+       "mimesearch-summary": "Op hee dä {{int:nstab-special}} könne de Dateie noh de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Zoot ußjesöhk wähde.\nMer moß der Medijetüp un der Ongertüp aanjevve mem scheive Schtresch derzwesche, zem Bejschpell: <code xml:lang=\"en\" lang=\"en\">image/jpeg</code> udder <code xml:lang=\"en\" lang=\"en\">text/*</code> udder esu.",
+       "mimetype": "<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Zoot:",
        "download": "eronger laade",
        "unwatchedpages": "Sigge, wo keiner drop oppass",
        "listredirects": "Ömleitunge",
        "listduplicatedfiles": "Leß met dubbelte Datteije",
        "listduplicatedfiles-summary": "Dat heh es en Leß met Datteije, woh de neuste Väsjuhn vun es desällve es, wi de neuste Väsjuhn vun öhnds en ander Dattei. Bloß Datteije heh e Wiki sin med em Boot.",
        "listduplicatedfiles-entry": "Zoh dä Dattei [[:File:$1|$1]] ham_mer [[$3|{{PLURAL:$2|a Dubbel|$2 Dubbelte|kein Dubbelte}}]] jefonge.",
-       "unusedtemplates": "Schablone oder Baustein, die nit jebruch wääde",
-       "unusedtemplatestext": "Hee sin all de Schablone opjeliss, die em Appachtemeng „{{ns:template}}“ sin, die nit en\nander Sigge enjefüg wääde. Ih De jet dovun fottschmieß, denk dran, se künnte och op en ander Aat jebruch\nwääde, un luur Der der iehr ander Links aan!",
-       "unusedtemplateswlh": "ander Links",
+       "unusedtemplates": "Schablohne uder Bauschteijn, di nit jebruch wähde",
+       "unusedtemplatestext": "Hee sin all de Schablohne opjeleß, di em Appachtameng „{{ns:template}}“ sin, di nit en ander Sigge enjeföhsch wähde. Ih De jet dovun fottschmiiß, dängk drahn, se künnte och op en ander Aat jebruch wähde, un luhr Der dä iehr andere Lengks aan!",
+       "unusedtemplateswlh": "ander Lengks",
        "randompage": "Zofällije Sigg",
        "randompage-nopages": "En {{PLURAL:$2|dem Appachtemang|dä Appachtemangs|keinem Appachtemang}} „$1“ sin ja kein Sigge dren.",
        "randomincategory": "En zohfälleje Sigg us ener Saachjropp",
        "randomredirect-nopages": "En däm Appachtemang „$1“ sin ja kein Ömleidonge dren.",
        "statistics": "Schtatistike",
        "statistics-header-pages": "Zahle övver Sigge",
-       "statistics-header-edits": "Zahle övver Änderunge",
+       "statistics-header-edits": "Zahle övver Änderonge",
        "statistics-header-users": "Schtatistike övver de Metmaacher",
        "statistics-header-hooks": "Ander Schtatistike",
        "statistics-articles": "Atikele",
        "statistics-pages": "Sigge jesamp",
        "statistics-pages-desc": "\nAll de Sigge em Wiki, och Klaafsigge, Ömleitunge, un esu jet",
        "statistics-files": "Huhjelade Dateie",
-       "statistics-edits": "Änderunge aan Sigge",
-       "statistics-edits-average": "Aanzahl Änderunge pro Sigg em Dorschschnett",
+       "statistics-edits": "Änderonge aan Sigge",
+       "statistics-edits-average": "Aanzahl Änderonge pro Sigg em Dorschschnett",
        "statistics-users": "[[Special:ListUsers|Metmaacher]] aajemelldt",
        "statistics-users-active": "Aktive Metmaacher",
        "statistics-users-active-desc": "Aktiv sin Metmaacher, di {{PLURAL:$1|hück un jesterre|en de läzte $1 Dääsch|hück}} jät jemaat han.",
        "pageswithprop": "Sigge med en beschtemmpte Eijeschaff",
        "pageswithprop-legend": "Sigge med en Eijeschaff",
        "pageswithprop-text": "Heh di Sigg zeisch Sigge, di en beschtemmpte Eijeschaff han.",
-       "pageswithprop-prop": "Dä name vun dä Eijeschaff:",
+       "pageswithprop-prop": "Dä Nahme vun dä Eijeschaff:",
        "pageswithprop-submit": "Lohß Jonn!",
        "pageswithprop-prophidden-long": "en Eijeschaff med enem janz lange Täx als Wäät weed nit aanjezeisch ($1)",
        "pageswithprop-prophidden-binary": "en Eijeschaff med enem benähre Wäät weed nit aanjezeisch ($1)",
        "double-redirect-fixed-move": "Di Sigg [[$1]] es ömjenannt un längk jäz autmattesch öm op di Sigg [[$2]].",
        "double-redirect-fixed-maintenance": "De dubbelte Ömleidong vun [[$1]] noh [[$2]] wood opjelühß.",
        "double-redirect-fixer": "(Opjaveleß)",
-       "brokenredirects": "Ömleitunge, die en et Leere jonn",
-       "brokenredirectstext": "Die Ömleitunge hee jonn op Sigge, die mer jaa nit han:",
+       "brokenredirects": "Ömleidonge, di en et Lehre jonn",
+       "brokenredirectstext": "Di Ömleidonge heh jonn op Sigge, di mer jaa nit han:",
        "brokenredirects-edit": "ändere",
        "brokenredirects-delete": "fottschmieße",
-       "withoutinterwiki": "Atikele ohne Links op annder Shprooche",
-       "withoutinterwiki-summary": "He sin Sigge jeliß, di nit op annder Shprooche jelingk sin.",
+       "withoutinterwiki": "Sigge der ohne Lengks op annder Schprohche",
+       "withoutinterwiki-summary": "He sin Sigge jeleß, di nit op annder Schprohche jelengk sin.",
        "withoutinterwiki-legend": "Aanfang fum Sigge-Tittel",
        "withoutinterwiki-submit": "Zeije",
        "fewestrevisions": "Atikele met de winnischste Versione",
        "nbytes": "$1 Byte{{PLURAL:$1||s|}}",
-       "ncategories": "{{PLURAL:$1| ein Saachjrupp | $1 Saachjruppe | keij Saachjruppe }}",
+       "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}}",
        "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 Änderung|$1 Änderunge|Keij Änderung}}",
+       "nrevisions": "{{PLURAL:$1|Ein Änderong|$1 Änderonge|Keij Änderong}}",
        "nviews": "{{PLURAL:$1|Eine Avrof|$1 Avrofe|Keine Avrof}}",
        "nimagelinks": "Weed op {{PLURAL:$1|eine Sigg|$1 Sigge|keine Sigg}} jebruch",
        "ntransclusions": "weed op {{PLURAL:$1|eine Sigg|$1 Sigge|keine Sigg}} jebruch",
        "specialpage-empty": "Heh en dä Leß es nix dren.",
        "lonelypages": "Atikele, wo nix drop link",
        "lonelypagestext": "De Sigge hee noh sin nörjenzwoh ennjebonge un et jonn och kein Linkß drop.",
-       "uncategorizedpages": "Atikele, die en kein Saachjrupp sin",
-       "uncategorizedcategories": "Saachjruppe, die selvs en kein Saachjruppe sin",
-       "uncategorizedimages": "Dateie, die en kein Saachjruppe dren sin",
-       "uncategorizedtemplates": "Schablone, die en kein Saachjruppe sen",
-       "unusedcategories": "Saachjruppe met nix dren",
-       "unusedimages": "Dateie, die nit en Sigge dren stäche",
-       "wantedcategories": "Saachjruppe, die mer noch nit han, die noch jebruch wääde",
-       "wantedpages": "Sigge, die mer noch nit han, die noch jebruch wääde",
-       "wantedpages-summary": "He sin Sigge opjeliss, die et noch nit jitt, wo ävver Hyperlinks vun andere Sigge drop jon. en leß met Sigge met Ömleidonge drop fengk mer op dä Sigg [[{{#special:BrokenRedirects}}]].",
+       "uncategorizedpages": "Atikele, di en keine Saachjropp sen",
+       "uncategorizedcategories": "Saachjroppe, di selvs en kein Saachjroppe sen",
+       "uncategorizedimages": "Dateije, di en kein Saachjroppe dren sin",
+       "uncategorizedtemplates": "Schablohne, di en kein Saachjroppe sen",
+       "unusedcategories": "Saachjroppe met nix dren",
+       "unusedimages": "Dateije, di nit en Sigge dren steijsche",
+       "wantedcategories": "Saachjroppe, di mer noch nit han, di noch jebruch wähde",
+       "wantedpages": "Sigge, di mer noch nit han, di noch jebruch wähde",
+       "wantedpages-summary": "He sin Sigge opjeleß, di et noch nit jitt, wo ävver Lengks vun andere Sigge drop jon, di kein Ömleijdonge sin. En Leß met Sigge, di et nit jitt, met Ömleijdonge drop, fengk mer op dä Sigg [[{{#special:BrokenRedirects}}|kappodde Ömleijdonge]].",
        "wantedpages-badtitle": "Ene onjöltijje Tittel för en Sigg: $1",
        "wantedfiles": "Dateije, di onß noch fähle",
-       "wantedfiletext-cat": "Heh di Datteije sin nit doh. Se wääde ävver jebruch, wi wann se doh wööre.\nDatteije uß frembde Sammlonge künne heh opjeleß sin, och wann et se jitt.\nDi sin dann <del>dorschjeschtresche</del>. \nSigge, woh Datteije jebruch wääde sulle, die mer jaa nit han, fengk mer och en dä [[:$1]].",
+       "wantedfiletext-cat": "Heh di Datteije sin nit doh. Se wääde ävver jebruch, wi wann se doh wööre.\nDatteije uß frembde Sammlonge künne heh opjeleß sin, och wann et se jitt.\nDi sin dann <del>dorschjeschtresche</del>. \nSigge, woh Datteije jebruch wääde sulle, di mer jaa nit han, fengk mer och en dä [[:$1]].",
        "wantedfiletext-cat-noforeign": "Heh di Datteije sulle jebruch wääde, et jitt se ävver jaa nit.\nSigge, di Datteije oprohfe, di et nit jitt, fengk mer op dä Sigg [[:$1]] opjeleß.",
        "wantedfiletext-nocat": "Heh di Datteije sin nit doh. Se wääde ävver jebruch, wi wann se doh wööre.\nDatteije uß frembde Sammlonge künne heh opjeleß sin, och wann et se jitt.\nDi sin dann <del>dorschjeschtresche</del>.",
        "wantedfiletext-nocat-noforeign": "Heh di Datteije sulle jebruch wääde, et jitt se ävver jaa nit.",
-       "wantedtemplates": "Schablone, die mer noch nit han, die noch jebruch wääde",
+       "wantedtemplates": "Schablohne, di mer noch nit han, di noch jebruch wähde",
        "mostlinked": "Atikele met de mihste Lenks drop",
        "mostlinkedcategories": "Saachjroppe met de miehste Lenks drop",
        "mostlinkedtemplates": "Sigge met de miehßte Oprohfe, di wohanders enjeföhsch wähde",
-       "mostcategories": "Atikkele met de miehste Saachjruppe",
+       "mostcategories": "Atikkele met de mihste Saachjroppe",
        "mostimages": "Dateije met de mihste Lenks drop",
        "mostinterwikis": "Atikkele met de miehste Engerwikilengks",
-       "mostrevisions": "Atikkele met de miehste Änderunge",
-       "prefixindex": "All Sigge, dänne ehr Name met enem bestemmte Wood oder Tex aanfängk",
+       "mostrevisions": "Atikkele met de mihste Änderonge",
+       "prefixindex": "Alle Sigge, dänne ehr Nahme med enem beschtemmpte Wood udder Täx aanfängk",
        "prefixindex-namespace": "All Sigge med enem beschtemmpte Aanfang (Appachtemang $1 )",
        "prefixindex-strip": "Donn der jemeinsamme Aanfang vun dä Tetelle en dä Leß fottlohße.",
        "shortpages": "Atikele zoteet vun koot noh lang",
        "longpages": "Atikele zoteet vun lang noh koot",
-       "deadendpages": "Atikele ohne Links dren",
-       "deadendpagestext": "De Atikele hee han kein Links op ander Atikele em Wiki.",
+       "deadendpages": "Sigge der ohne Lengks dren",
+       "deadendpagestext": "De Sigge heh han kein Lengks op ander Sigge em Wikki.",
        "protectedpages": "Jeschötzte Sigge",
        "protectedpages-indef": "Nor de Sigge zeije, woh alleins de Wiki-Köbesse draan dörrve",
        "protectedpages-summary": "He sin Sigge opjeließ, wo jäje et Verändere udder jäje et Ömnänne jeschötz sin.\nEn Leß met dä Sigge, di mer nit aanlääje darref, es op dä Sigg [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]] ze fenge.",
        "listusers-editsonly": "Donn nor Metmaacher zeije, di och ens jät jeschrevve han.",
        "listusers-creationsort": "Noh em Dattum vum Aanmellde zoteere",
        "listusers-desc": "Vun onge noch bove zoteere",
-       "usereditcount": "{{PLURAL:$1|Ein Änderung|$1 Änderunge|Nix jedonn}}",
+       "usereditcount": "{{PLURAL:$1|Ein Änderong|$1 Änderonge|Nix jedonn}}",
        "usercreated": "{{GENDER:$3|}}Aanjemelldt aam $1 öm $2 Uhr",
        "newpages": "Neu Sigge",
        "newpages-username": "Metmaacher_Naame:",
        "move": "Ömnenne",
        "movethispage": "De Sigg ömnenne",
        "unusedimagestext": "Di Dateije hee dronger jidd_et, äver se sin en keine Sigg em Wiki enjebonge.\n<br /><strong>Opjepass:</strong> Ander Websigge künnte immer noch de Dateie hee tirek\nper URL aanspreche. Su künnt et sin, dat en\nDatei hee en de Liss steiht, ävver doch jebruch weed. Usserdäm, winnichstens bei neue Dateie, künnt sin,\ndat se noch nit en enem Atikkel enjebaut sin, weil noch Einer dran am brasselle es.",
-       "unusedcategoriestext": "De Saachjruppe hee sin enjerich, ävver jetz em Momang, es keine Atikkel un\nkein Saachjrupp dren ze finge.",
-       "notargettitle": "Keine Bezoch op e Ziel",
+       "unusedcategoriestext": "De Saachjropp heh sin enjereesch, ävver jäz em Momang, es keine Atikkel un\nkein Saachjropp dren ze fenge.",
+       "notargettitle": "Keine Bezoch obb e Zihl",
        "notargettext": "Et fählt ene Metmaacher oder en Sigg, wo mer jet zo erusfinge oder oplisste solle.",
        "nopagetitle": "Esu en Sigg ham'mer nit",
        "nopagetext": "Do häss en Sigg aanjovve, di jidd et jaa nit.",
        "pager-newer-n": "{{PLURAL:$1|aller neuerste|neuer $1}}",
        "pager-older-n": "{{PLURAL:$1|vörrije|vörrije $1}}",
        "suppress": "Versteiche",
-       "querypage-disabled": "Heh di Extrasigg es ußjeschalldt, domet dä Server jet winnijer ze brassele hät.",
+       "querypage-disabled": "Heh di {{int:specialpage}} es ußjeschalldt, domet dä ẞööver jät winnijer ze brassele hät.",
        "apihelp": "Hölp för de <i lang=\"en\" xml:lang=\"en\" title=\"Application Programmers Interface\">API</i>",
        "apihelp-no-such-module": "Et Moduhl „$1“ wood nit jefonge.",
        "booksources": "Böcher",
        "allpages": "All Sigge",
        "nextpage": "De nächste Sigg: „$1“",
        "prevpage": "Vörijje Sigg ($1)",
-       "allpagesfrom": "Sigge aanzeije av däm Name:",
+       "allpagesfrom": "Sigge aanzeije av däm Nahme:",
        "allpagesto": "Sigge aanzeije bes:",
        "allarticles": "All Atikkele",
        "allinnamespace": "All Sigge (Em Appachtemeng „$1“)",
        "allpagessubmit": "Lohß Jonn!",
        "allpagesprefix": "Sigge zeije, wo dä Name aanfängk met:",
-       "allpagesbadtitle": "Dä Siggename es nit ze jebruche. Dä hät e Köözel för en Sproch oder för ne Interwiki Link am Aanfang, oder et kütt e Zeiche dren för, wat en Siggename nit jeiht, villeich och mieh wie\neins vun all däm op eimol.",
+       "allpagesbadtitle": "Dä Siggenahme es nit ze jebruche. Dä hät e Köözel för en Schprohch uder för ene Engerwikki_Lengk am Aanfang, uder et kütt e Zeijsche dren för, wat en SiggenaHme nit jeiht, velleijsch och mih wie\neins vun all dämm op eimohl.",
        "allpages-bad-ns": "Dat Appachtemeng „$1“ ha'mer nit.",
        "allpages-hide-redirects": "Ömleidonge fott lohße",
        "cachedspecial-viewing-cached-ttl": "Dat heh küdd ussem Zewescheschpeischer un kann bes op $1 alt sin.",
        "cachedspecial-viewing-cached-ts": "Dat heh küdd ussem Zewescheschpeischer un nünnt nidd om neuste Schtand sin.",
        "cachedspecial-refresh-now": "De neuste Version.",
        "categories": "Saachjroppe",
-       "categoriespagetext": "Hee {{PLURAL:$1|es nur en Saachjrupp|sin nur Saachjruppe|es kei Saachjrupp}} jeliss, woh jät dren {{PLURAL:$1|es|es|wöhr}}. Mer han_er eije Leßte för de\n[[Special:UnusedCategories|Saachjruppe met nix dren]], un de\n[[Special:WantedCategories|jewönschte un nit aanjelaate Saachjruppe]].",
-       "categoriesfrom": "Zeich Saachjruppe vun hee af:",
+       "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:",
        "special-categories-sort-count": "Zoteere noh de Aanzahl",
        "special-categories-sort-abc": "Zoteere nohm Alphabett",
        "deletedcontributions": "Fottjeschmesse Versione",
        "linksearch-pat": "Sök noh:",
        "linksearch-ns": "Appachtemang:",
        "linksearch-ok": "Söhke",
-       "linksearch-text": "Beim Söke künnd_Er Schtäänsche aanjevve för e Schtöcksche fun ennem Naame, wo mer nit jenou weiß, wi et heiß udder wat me nit kenne deit, zem Beishpöll esu: <code>http://*.example.com</code> un ene bövverschte Name för en Domain moß aanjejovve sin, zem Beishpöll esu: <code>http://*.org</code> \n\n{{PLURAL:$2|Dat Brauserprotokoll, wat|De Brauserprotokolle, di|Kein Brauserprotokolle, di}} mer beim Söhke aanjävve kann, sin: <code>$1</code>, un der Schtandatt es <code>http://</code> wann nix aanjejovve es.",
+       "linksearch-text": "Beim Söke künnd_Er Schtäänsche aanjevve för e Schtöcksche fun ennem Nahme, wo mer nit jenou weiß, wi et heiß udder wat me nit kenne deit, zem Beischpöll esu: <code>http://*.example.com</code> un ene bövverschte Name för en Domain moß aanjejovve sin, zem Beishpöll esu: <code>http://*.org</code> \n\n{{PLURAL:$2|Dat Brauserprotokoll, wat|De Brauserprotokolle, di|Kein Brauserprotokolle, di}} mer beim Söhke aanjävve kann, sin: <code>$1</code>, un der Schtandatt es <code>http://</code> wann nix aanjejovve es.",
        "linksearch-line": "„$2“ hät ene Link op $1",
        "linksearch-error": "Shternshe kam_mer nor aam Aanfang fum Domain-Name bruche.",
        "listusersfrom": "Zeich de Metmaacher vun:",
        "activeusers-hidebots": "De Bots fott lohße",
        "activeusers-hidesysops": "De Wiki_Köbesse fott lohße",
        "activeusers-noresult": "Kein Metmaacher jefonge.",
-       "listgrouprights": "Metmaacher-Jruppe-Rääschte",
-       "listgrouprights-summary": "Hee kütt de Liss met dä Medmaacher-Jruppe, di dat Wiki hee kennt, un denne ier Rääschte.\nMieh övver de einzel Rääschte fenkt Er op de [[{{MediaWiki:Listgrouprights-helppage}}|Hölp-Sigg övver de Medmaacher ier Rääschte]].",
+       "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>",
        "listgrouprights-group": "Jropp",
        "listgrouprights-rights": "Räächte",
        "listgrouprights-helppage": "Help:Jrupperäächte",
        "listgrouprights-members": "(opliste)",
-       "listgrouprights-addgroup": "Metmaacher en {{PLURAL:$2|de Metmaacher-Jrupp|de Metmaacher-Jruppe|kein Metmaacher-Jrupp}} $1 erin dunn",
-       "listgrouprights-removegroup": "Metmaacher us {{PLURAL:$2|dä Metmaacher-Jrupp|de Metmaacher-Jruppe|jaa kei Metmaacher-Jrupp}} $1 eruß nämme",
-       "listgrouprights-addgroup-all": "Metmaacher en alle Metmaacher-Jruppe erin donn",
-       "listgrouprights-removegroup-all": "Metmaacher us alle Metmaacher-Jruppe eruß nämme",
+       "listgrouprights-addgroup": "Metmaacher en {{PLURAL:$2|de Metmaacher-Jropp|de Metmaacher-Jroppe|kein Metmaacher-Jropp}} $1 erin donn",
+       "listgrouprights-removegroup": "Metmaacher us {{PLURAL:$2|dä Metmaacher_Jropp|de Metmaacher_Jroppe|jaa kei Metmaacher_Jropp}} $1 eruß nämme",
+       "listgrouprights-addgroup-all": "Metmaacher en alle Metmaacher-Jroppe erin donn",
+       "listgrouprights-removegroup-all": "Metmaacher us alle Metmaacher-Jroppe eruß nämme",
        "listgrouprights-addgroup-self": "Kann sesch sällver {{PLURAL:$2|erinn donn en de Metmaacherjropp:|en $2 Metmaacherjroppe erinn donn:|en kei Metmaacherjropp erenn donn.}} $1",
        "listgrouprights-removegroup-self": "Kann sesch sällver {{PLURAL:$2|eruß nämme uß dä Metmaacherjropp:|uß $2 Metmaacherjroppe eruß nämme:|uß kei Metmaacherjropp eruß nämme.}} $1",
        "listgrouprights-addgroup-self-all": "Kann sesch sällver en alle Metmaacherjroppe erenn donn",
        "emailuser-title-target": "<i lang=\"en\">E-mail</i> aan {{GENDER:$1|dä Metmaacher|di Metmaacherėn|dä Metmaacher|di Metmaacherėn|dä Metmaacher}} $1",
        "emailuser-title-notarget": "Verschegg en <i lang=\"en\">e-mail</i> aan ene Metmaacher",
        "emailpage": "Verscheck <i lang=\"en\">e-mail</i> aan ene Metmaacher",
-       "emailpagetext": "Wann {{GENDER:$1|dä Metmaacher heh|dat heh|heh dä Metmaacher|sei|dat heh}} en Adräß för sing <i lang=\"en\">e-mail</i> aanjejovve hätt en singe Enstellunge, un die deit et och, dann kanns De met däm Fomular heh unge en einzel <i lang=\"en\">e-mail</i> aan {{GENDER:$1|inn|it|dä Metmaacher|heh di Metmaacherėn|et}} schecke.\n\nDing <i lang=\"en\">e-mail</i>-Adräß, di De en [[Special:Preferences|Ding eije Enstellunge]] aanjejovve häs,\ndi weed als em Afsender sing Adräß enjedrare.\nDomet kann, wä di <i lang=\"en\">e-mail</i> kritt, drop antwoote, un di Antwood jeiht tirek aan Desch.\nAlles klor?",
+       "emailpagetext": "Wann {{GENDER:$1|dä Metmaacher heh|dat heh|heh dä Metmaacher|sei|dat heh}} en Adräß för sing <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i>aanjejovve hätt en singe Enstellunge, un di deihd et och, dann kanns De met däm Fomular heh unge en einzel <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i> aan {{GENDER:$1|inn|it|dä Metmaacher|heh di Metmaacherėn|et}} schecke.\n\nDing <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i>-Adräß, di De en [[Special:Preferences|Ding eije Enstellunge]] aanjejovve häs, di weed als em Afsender sing Adräß enjedrare.\nDomet kann, wä di <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i> kritt, drop antwoote, un di Antwood jeiht tirek aan Desch.\nAlles klor?",
        "defemailsubject": "e-mail fum $1 {{GRAMMAR:fun|{{SITENAME}}}}.",
        "usermaildisabled": "De <i lang=\"en\">e-mail</i> zwesche Metmaachere es ußjeschalt",
        "usermaildisabledtext": "Do kanns kein <i lang=\"en\">e-mail</i> aan ander Metmaacher heh en dämm Wiki schecke",
        "noemailtitle": "Kein E-Mail Adress",
        "noemailtext": "Dä Metmaacher hät kein jöltijje Adreß för sing <i lang=\"en\">e-mail</i> enjedrage.<!-- oder hä well kein E-Mail krije. -->",
        "nowikiemailtext": "Hee dä Metmaacher well kein <i lang=\"en\">e-mail</i> vun ander Metmaachere jescheck krijje.",
-       "emailnotarget": "Et jitt keine Metmaacher met däm Naame, dämm mer en <i lang=\"en\">e-mail</i> schecke künnt.",
+       "emailnotarget": "Et jitt keine Metmaacher met däm Nahme, dämm mer en <i lang=\"en\">e-mail</i> scheke künnt.",
        "emailtarget": "Jiff dä Metmaacher aan, dä di <i lang=\"en\">e-mail</i> kritt",
        "emailusername": "Metmaacher_Naame:",
        "emailusernamesubmit": "Loß Jonn!",
        "watchlist": "ming Oppaßleß",
        "mywatchlist": "Oppaßleß",
        "watchlistfor2": "För dä $1 $2",
-       "nowatchlist": "En Ding Oppassliss es nix dren.",
-       "watchlistanontext": "Do moß enlogge, domet de en Ding Oppassliss erenluure kanns, oder jet dran ändere.",
+       "nowatchlist": "En Dinge Oppaßleß es nix dren.",
+       "watchlistanontext": "Do moß enlogge, domet de en Ding Oppaßleß erenluhre kanns, oder jät drahn änndere.",
        "watchnologin": "Nit enjelogg",
-       "addwatch": "En de Oppassliss don",
-       "addedwatchtext": "Die Sigg „[[:$1]]“ es jetz en Dinge [[Special:Watchlist|Oppaßleß]].\nWann di Sigg udder ier Klaafsigg verändert weed, kütt dat af jäz heh en di Oppaßleß.",
+       "addwatch": "En de Oppaßleß don",
+       "addedwatchtext": "Di Sigg „[[:$1]]“ es jetz en Dinge [[Special:Watchlist|Oppaßleß]].\nWann di Sigg udder ier Klaafsigg verändert weed, kütt dat af jäz heh en di Oppaßleß.",
        "addedwatchtext-short": "De Sigg  „$1“ es en Ding Oppaßleß openumme.",
-       "removewatch": "Us de Oppassliss nämme",
-       "removedwatchtext": "Die Sigg „[[:$1]]“ es jetz us de [[Special:Watchlist|Oppassliss]] erusjenomme.",
+       "removewatch": "Us de Oppaßleß nämme",
+       "removedwatchtext": "Di Sigg „[[:$1]]“ es jäz us de [[Special:Watchlist|Oppaßless]] erusjenomme.",
        "removedwatchtext-short": "De Sigg  „$1“ es uß Dinge Oppaßleß eruß jenumme.",
        "watch": "Drobb oppaßße",
        "watchthispage": "Op di Sigg oppaßße",
        "notvisiblerev": "Di Version es fottjeschmesse",
        "watchlist-details": "Do häß {{PLURAL:$1|ein Sigg|$1 Sigge|kein Sigg}} en Dinge Oppaßleß{{PLURAL:$1|, un di Klaafsigg dohzoh|, un de Klaafsigge dohzoh|}}.",
        "wlheader-enotif": "Et <i lang=\"en\">e-mail</i> Schecke es enjeschalt.",
-       "wlheader-showupdated": "Wann se Einer jeändert hätt, zickdäm De se et letzte Mol aanjeluurt häs, sin die Sigge <strong>extra markeet</strong>.",
+       "wlheader-showupdated": "Wann se Einer jeändert hätt, zickdäm De se et letzte Mol aanjeluurt häs, sin di Sigge <strong>extra markeet</strong>.",
        "wlnote": "{{PLURAL:$1|Hee es de läzde Änderong uß|Hee sin de läzde <strong>$1</strong> Änderonge uß|Mer han kein Änderonge en}} de läzde {{PLURAL:$2|Stund|<strong>$2</strong> Stunde|<strong>noll</strong> Stunde}} zigg em $3 öm $4 Uhr.",
        "wlshowlast": "Zeisch de läzde $1 Schtunde, $2 Dähsch aan.",
        "watchlist-options": "Eijeschaffte fun de Oppassless",
        "watching": "Drobb oppaßße…",
        "unwatching": "Nimmih drobb oppaßße",
        "watcherrortext": "Ene Fähler es opjetrodde beim Ändere vun de Enshtällonge för Ding Oppaßleß för „$1“",
-       "enotif_reset": "Saz all Änderonge op „Aanjeluurt“, un fäädesch.",
+       "enotif_reset": "Saz alle Änderonge op „Aanjeluhrt“, un fähdesch.",
        "enotif_impersonal_salutation": "Metmaacher {{GRAMMAR:Genitiv vun|{{SITENAME}}}}",
        "enotif_subject_deleted": "{{GENDER:$2|Dä Metmaacher|Et|Dä Metmaacher|De Metmaacherėn|Dä Metmaacher}} $2 hät di Sigg $1 {{GRAMMAR:en 3|{{ucfirst:{{SITENAME}}}}}} fott jeschmeße.",
        "enotif_subject_created": "{{GENDER:$2|Dä Metmaacher|Et|Dä Metmaacher|De Metmaacherėn|Dä Metmaacher}} $2 hät di Sigg $1 {{GRAMMAR:en 3|{{ucfirst:{{SITENAME}}}}}} aanjelaat.",
        "enotif_body_intro_moved": "{{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 ömjenannt. Op $3 fengks De der aktoälle Schtand vun dä Sigg.",
        "enotif_body_intro_restored": "{{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 zerökjehollt. Op $3 fengks De der aktoälle Schtand vun dä Sigg.",
        "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": "Luur unger „$1“ - do fings de all die Änderunge zick Dingem letzte Besoch hee.",
-       "enotif_lastdiff": "Loor op $1 för heh di Änderung aan_ze_loore.",
+       "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_body": "Leeven $WATCHINGUSERNAME,\n\n$PAGEINTRO $NEWPAGE\n\n{{int:summary}} „$PAGESUMMARY“ $PAGEMINOREDIT\n\nDo kanns dä Metmaacher „$PAGEEDITOR“ aanspräsche:\n* Övver e-mail: $PAGEEDITOR_EMAIL\n* Em Wiki: $PAGEEDITOR_WIKI\n\nDo kreß vun jetz aan kein e-mail mieh, 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 die Merker för e-mail för die Sigge en Dinger\nOppaßleß op eimol ä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 schmieße:\n$UNWATCHURL\n\nDo kanns heh noh Hölp luure:\n$HELPPAGE",
+       "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 mieh, 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 schmieße:\n$UNWATCHURL\n\nDo kanns heh noh Hölp luhre:\n$HELPPAGE",
        "created": "neu aanjelaht",
        "changed": "jeändert",
-       "deletepage": "Schmieß die Sigg jetz fott",
-       "confirm": "Dä Schotz för die Sigg ändere",
+       "deletepage": "Schmiiß di Sigg jäz fott",
+       "confirm": "Dä Schoz för di Sigg änndere",
        "excontent": "drop stundt: „$1“",
        "excontentauthor": "drop stundt: „$1“ un dä einzije Schriever woh: „$2“",
        "exbeforeblank": "drop stundt vörher: „$1“",
        "delete-confirm": "„$1“ fottschmieße",
        "delete-legend": "Fottschmieße",
-       "historywarning": "<strong>Opjepass:</strong> Die Sigg, di De fott schmiiße wells, hät {{PLURAL:$1|ein ällder Väsjohn|ald $1 ällder Väsjohne|jaa kein ällder Väsjohne}}.",
+       "historywarning": "<strong>Opjepass:</strong> Di Sigg, di De fott schmiiße wells, hät {{PLURAL:$1|ein ällder Väsjohn|ald $1 ällder Väsjohne|jaa kein ällder Väsjohne}}.",
        "confirmdeletetext": "Do bes koot dovör, en Sigg för iiwich fottzeschmiiße. Dobei verschwind och de janze Verjangeheit vun dä Sigg us de Dahtebangk, met all ehr Änderonge un Metmaacher Nahme, un all dä Opwand, dä do dren stich. Do moß heh jäz beschtähteje, dat de verschteihs, wat dat bedügg, un dat De weiß, wat Do do mähs.\n<strong>Dun et blohß, wann dat met de [[{{MediaWiki:Policy-url}}|Rääjelle]] verhaftech zosamme jeiht!</strong>",
        "actioncomplete": "Jedonn!",
        "actionfailed": "Dat es donevve jejange",
-       "deletedtext": "De Sigg „$1“ es jetz fottjeschmesse woode. Luur Der „$2“ aan, do häs De en Liss met de Neuste fottjeschmesse Sigge.",
-       "dellogpage": "Logboch met de fottjeschmesse Sigge",
-       "dellogpagetext": "Hee sin de Sigge oppjeliss, die et neus fottjeschmesse woodte.",
-       "deletionlog": "Dat Logboch fum Sigge-Fottschmieße",
+       "deletedtext": "De Sigg „$1“ es jäz fottjeschmeße woode. Luhr Der „$2“ aan, doh häs De en Leß met de neuste fottjeschmeße Sigge.",
+       "dellogpage": "Logbohch met de fottjeschmeße Sigge",
+       "dellogpagetext": "Heh sin de Sigge oppjeleß, di köözlesch fottjeschmeße woodte.",
+       "deletionlog": "Dat Logbohch fum Sigge_Fottschmiiße",
        "reverted": "Han de ählere Version vun dä Sigg zoröck jehollt",
        "deletecomment": "Aanlaß odder Jrund:",
        "deleteotherreason": "Ander Jrund oder Zosätzlich:",
        "deletereason-dropdown": "* Alljemein Jrönde för et Fottschmiiße\n** SPAM\n** et wohd jät kapott jemaat\n** wohr jäje et Urhävverrääsch\n** dä Schriever wolld et esu\n** kappodde Ömleidong",
        "delete-edit-reasonlist": "De Jrönde för et Fottschmieße beärbeide",
        "delete-toobig": "Di Sigg hät {{PLURAL:$1|ein Version|$1 Versione|jaa kein Version}}. Dat sinn_er ärsch fill. Domet unsere ẞööver do nit draan en de Kneen jeit, dom_mer esu en Sigg nit fottschmieße.",
-       "delete-warning-toobig": "Di Sigg hät {{PLURAL:$1|ein Version|$1 Versione|jakein Version}}. Dat sinn_er ärsch fill. Wann De die all fottschmieße wells, dat kann dem Wiki sing Datenbangk schwer ußbremse.",
+       "delete-warning-toobig": "Di Sigg hät {{PLURAL:$1|ein Version|$1 Versione|jakein Version}}. Dat sinn_er ärsch fill. Wann De di all fottschmiiße wells, dat kann dem Wikki sing Dahtebangk schwer ußbremse.",
        "deleteprotected": "Di Sigg es jeschöz, un dröm kam_mer se nit fott schmiiße.",
        "deleting-backlinks-warning": "<strong>Opjepaß:</strong> Es jitt Sigge met Lengks noh heh, udder Sigge, di heh di Sigg enbenge!",
-       "rollback": "Em Letzte sing Änderunge zeröcknemme",
-       "rollbacklink": "All dem Letzte sing Änderunge zeröckdriehe",
+       "rollback": "Em Läzde sing Änderonge zeröcknämme",
+       "rollbacklink": "All dem Läzde sing Änderonge zeröckdrihje",
        "rollbacklinkcount": "{{PLURAL:$1|Ein Änderong|$1 Änderonge|Kein Änderonge}} schtantepee retuur nämme",
        "rollbacklinkcount-morethan": "{{PLURAL:$1|Mieh wi ein Änderong|Övver $1 Änderonge|Kein Änderonge}} schtantepee retuur nämme",
        "rollbackfailed": "Dat Zeröcknemme jingk scheiv",
-       "cantrollback": "De letzte Änderung zeröckzenemme es nit müjjelich. Dä letzte Schriever es dä einzije, dä aan dä Sigg hee jet jedon hät!",
-       "alreadyrolled": "Mer künne de letzte Änderunge vun dä Sigg „[[:$1]]“ vum Metmaacher „[[User:$2|$2]]“ ([[User talk:$2|Klaaf]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) nimieh zeröcknemme, dat hät ene Andere enzwesche ald jedon, udder de Sigg ömjeändert.\n\nDe Neuste Änderung aan dä Sigg es jetz vun däm Metmaacher „[[User:$3|$3]]“ ([[User talk:$3|Klaaf]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
-       "editcomment": "Bei dä Änderung stundt: „''$1''“.",
+       "cantrollback": "De läzde Änderong zeröckzenemme es nit müjjelich. Dä läzde Schrihver es dä eijnzeje, dä aan dä Sigg heh jht jedonn hät!",
+       "alreadyrolled": "Mer künne de letzte Änderonge vun dä Sigg „[[:$1]]“ vum Metmaacher „[[User:$2|$2]]“ ([[User talk:$2|Klaaf]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) nimieh zeröcknemme, dat hät ene Andere enzwesche ald jedon, udder de Sigg ömjeändert.\n\nDe Neuste Änderong aan dä Sigg es jetz vun däm Metmaacher „[[User:$3|$3]]“ ([[User talk:$3|Klaaf]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
+       "editcomment": "Bei dä Änderong schtundt: „''$1''“.",
        "revertpage": "Änderunge vun däm Metmaacher „[[Special:Contributions/$2|$2]]“ ([[User talk:$2|däm sing Klaafsigg]]) fottjeschmesse, un doför de letzte Version vum „[[User:$1|$1]]“ widder zeröckjehollt",
        "revertpage-nouser": "Änderunge vun enem Metmaacher, däm singe Name vershtoche es, retuur jemaat op de letzte Version {{GENDER:$1|vum|vum|vumm Metmaacher|vun dä|vum}} [[User:$1|$1]]",
        "rollback-success": "De Änderungen vum $1 zeröckjenumme, un dobei de letzte Version vum $2 widder jehollt.",
        "sessionfailure-title": "Fähler met dä Daate vum Enlogge",
-       "sessionfailure": "Et jov wall e technisch Problem met Dingem Login. Dröm ha'mer dat us Vörsich jetz nit jemaht, domet mer nit villeich Ding Änderung däm verkihrte Metmaacher ungerjubele. Jangk zeröck un versök et noch ens.",
-       "protectlogpage": "Logboch vum Sigge Schötze",
+       "sessionfailure": "Et jov wall e täschnesch Problehm met Dingem Login. Dröm ham_mer dat us Vörseesch jäz nix jemaht, domet mer nit velleich Ding Änderong däm verkihrte Metmaacher ongerjubele. Jangk zeröck un versöhk et noch ens.",
+       "protectlogpage": "Logbohch vum Sigge Schötze",
        "protectlogtext": "Heh kütt et Logbooch met de Veränderonge aam Schotz vun Sigge.\nEn Leß met de [[Special:ProtectedPages|em Momang jeschözde Sigge]] ham_mer och.",
        "protectedarticle": "hät de Sigg „[[$1]]“ jeschötz",
-       "modifiedarticleprotection": "hät dä Schoz för die Sigg „[[$1]]“ jeändert",
+       "modifiedarticleprotection": "hät dä Schoz för di Sigg „[[$1]]“ jeändert",
        "unprotectedarticle": "hät der Schotz för di Sigg „[[$1]]“ opjehovve udder verändert.",
-       "movedarticleprotection": "hät de Enstellunge för der Sigge-Schotz fun „[[$2]]“ noh „[[$1]]“ övvernomme",
+       "movedarticleprotection": "hät de Ennschtällong för der Sigge-Schotz fun „[[$2]]“ noh „[[$1]]“ övvernomme",
        "protect-title": "Sigge Schotz för „$1“ ändere",
        "protect-title-notallowed": "Dä Schotz för di Sigg „$1“ ändere",
        "prot_1movedto2": "hät de Sigg vun „[[$1]]“ en „[[$2]]“ ömjenannt.",
        "protect-legend": "Sigg schötze",
        "protectcomment": "Aanlaß odder Jrund:",
        "protectexpiry": "Duur, wi lang:",
-       "protect_expiry_invalid": "Die Duur för ze Schötz es Kappes, di künne mer nit verstonn.",
-       "protect_expiry_old": "Do häs De Desch verdonn. Die Zick för ze Schötze es doch ald eröm!",
+       "protect_expiry_invalid": "De Duur för ze Schötz es Kappes, di künne mer nit verstonn.",
+       "protect_expiry_old": "Do häs De Desch verdonn. Di Zick för ze Schötze es doch ald eröm!",
        "protect-unchain-permissions": "Donn de andere Ußwahle freij schallde",
        "protect-text": "Heh kanns De dä Schotz jäje Veränderunge för de Sigg „'''$1'''“ aanluure un ändere.",
        "protect-locked-blocked": "Do kanns nit der Siggeschotz ändere, esu lang wi Dinge Zojang zom Wiki jesperrt es. Hee es der aktuelle Stand fum Siggeschotz för di Sigg '''„$1“:'''",
        "protect-locked-dblock": "De Datebank es jesperrt. Dröm künne mer der Siggeschotz nit ändere.\nHee es der aktuelle Stand fum Siggeschotz för di Sigg '''„$1“:'''",
        "protect-locked-access": "Do häs nit dat Rääsch, heh em Wiki Sigge ze schötze udder dä Schotz widder opzehevve.\nDi Sigg '''„$1“:''' es jetz jrad:",
-       "protect-cascadeon": "Die Sigg es en enne Schotz-Kaskad. Se es enjebonge en {{PLURAL:$1|einSigg|$1 Sigge|kein Sigg}}, die per Kaskade-Schotz jeschötz {{PLURAL:$1|es|sin|es}}. Do kanns dä Schotz för die Sigg heh ändere, ävver di Kaskad blief bestonn.",
+       "protect-cascadeon": "Di Sigg es en enne Schotz-Kaskad. Se es enjebonge en {{PLURAL:$1|einSigg|$1 Sigge|kein Sigg}}, di per Kaskahde_Schoz jeschöz {{PLURAL:$1|es|sin|es}}. Do kanns dä Schoz för di Sigg heh ändere, ävver di Kaskahd blief bestonn.",
        "protect-default": "Jeede Metmaacher eraan lohße",
        "protect-fallback": "Do weet dat Rääsch „$1“ jebruch.",
        "protect-level-autoconfirmed": "Bloß de automattesch beschtääteschte Metmaacher dranlooße",
        "protect-expiring": "bes öm $3 Uhr (UTC) aam $2",
        "protect-expiring-local": "löüf uß: $1",
        "protect-expiry-indefinite": "för iewich",
-       "protect-cascade": "Maach en Schoz-Kaskaade — all de Schablone en dä Sigg krijje dersellve Schoz, wi die Sigg sellver en kritt.",
+       "protect-cascade": "Maach en Schoz_Kaskahd — all de Schablohne en dä Sigg krijje dersällve Schoz, wi di Sigg sällver en kritt.",
        "protect-cantedit": "Do kanns dä Siggeschotz heh nit ändere, esu lang wie De di Sigg nit ändere darfs.",
        "protect-othertime": "En ander Door:",
        "protect-othertime-op": "en ander Door",
        "protect-expiry-options": "1 Stund:1 hour,1 Dach:1 day,1 Woch:1 week,2 Woche:2 weeks,1 Mond:1 month,3 Mond:3 months,6 Mond:6 months,1 Johr:1 year,Unbejrenz:infinite",
        "restriction-type": "jespecht es:",
        "restriction-level": "ändere darf:",
-       "minimum-size": "met mieh wie",
+       "minimum-size": "met mih wie",
        "maximum-size": "met winijjer wie",
        "pagesize": "Bytes en dä Sigg dren",
        "restriction-edit": "et Ändere",
        "restriction-move": "et Ömnenne",
-       "restriction-create": "Aanlääje",
+       "restriction-create": "Aanlähje",
        "restriction-upload": "Huhlaade",
        "restriction-level-sysop": "nur de Wiki-Köbesse",
        "restriction-level-autoconfirmed": "nur aanjemeldte Metmaacher, di ald en Zick dobei sin",
        "viewdeletedpage": "Fottjeschmesse Sigge aanzeije",
        "undeletepagetext": "{{PLURAL:$1|De Sigg heenoh es|De $1 Sigge heenoh sin|De 0 Sigge heenoh sin}} fottjeschmesse, mer künne se ävver immer noch usem Müllemmer eruskrose.",
        "undelete-fieldset-title": "Versione zeröck holle",
-       "undeleteextrahelp": "Öm de janze Sigg met all ehre Versione widder ze holle, looß all de Versione ohne Hökche, un klick op „<b style=\"padding:2px; background-color:#ddd; color:black\">{{int:Undeletebtn}}</b>“.<br />\nÖm bloß einzel Versione zeröckzeholle, maach Hökche aan die Versione, die De widder han wells, un dann dun „<b style=\"padding:2px; background-color:#ddd; color:black\">{{int:Undeletebtn}}</b>“ klicke.<br />\nOp „<b style=\"padding:2px; background-color:#ddd; color:black\">{{int:Undeletereset}}</b>“\nklicks De, wann De all Ding Hökche un Ding „{{int:Undeletecomment}}“ widder fott han wells.",
+       "undeleteextrahelp": "Öm de janze Sigg met all ehre Versione widder ze holle, looß all de Versione ohne Hökche, un klick op „<strong  style=\"padding:2px; background-color:#ddd; color:black\">{{int:Undeletebtn}}</strong>“.<br />\nÖm bloß einzel Väsjohne zeröckzeholle, maach Hökche aan di Väsjohne, di De widder han wells, un dann dun „<strong style=\"padding:2px; background-color:#ddd; color:black\">{{int:Undeletebtn}}</strong>“ kleke.<br />\nOp „<strong style=\"padding:2px; background-color:#ddd; color:black\">{{int:Undeletereset}}</strong>“\nkleks De, wann De all Ding Höhksche un Ding „{{int:Undeletecomment}}“ widder fott han wells.",
        "undeleterevisions": "{{PLURAL:$1|Ein Version|<strong>$1</strong> Versione|<strong>Kein</strong> Version}} en et Archiv jedon",
-       "undeletehistory": "Wann De die Sigg widder zeröckhölls,\ndann kriss De all de fottjeschmesse Versione widder.\nWann enzwesche en neu Sigg unger däm ahle Name enjerich woode es,\ndann wääde de zeröckjehollte Versione einfach als zosätzlije äldere\nVersione för die neu Sigg enjerich. Die neu Sigg weed nit ersetz.",
-       "undeleterevdel": "Dat Zeröckholle flupp nit, wann de neuste Version verstoche es udder verstoche Aandeile do dren sin. En esu en Fäll darrf de neuste Version kei Höksche krijje, udder se moß eets ens en en nommaale Version ömjewandelt wääde, di nit mieh verstoche es.",
-       "undeletehistorynoadmin": "Die Sigg es fottjeschmesse woode. Dä Jrund döför es en de Liss unge ze finge, jenau esu wie de Metmaacher, wo de Sigg verändert han, ih dat se fottjeschmesse wood. Wat op dä Sigg ehre fottjeschmesse ahle Versione stundt, dat künne nor de Wiki-Köbesse noch aansinn (un och widder zeröckholle)",
+       "undeletehistory": "Wann De di Sigg widder zeröckhölls,\ndann kriss De all de fottjeschmesse Väsjohne widder.\nWann enzwesche en neu Sigg unger däm ahle Nahme enjereesch woode es, dann wähde de zeröckjehollte Väsjohne einfach als zohsätzlije äldere Väsjohne för di neu Sigg ennjereesch. Di neuje Sigg weed nit äsäz.",
+       "undeleterevdel": "Dat Zeröckholle flupp nit, wann de neuste Väsjohn verschtoche es udder verschtoche Aandeile do dren sin. En esu en Fäll darrf de neuste Väsjohn kei Höhksche krijje, udder se moß eets ens en en nommahle Väsjohn ömjewandelt wääde, di nit mih verschtoche es.",
+       "undeletehistorynoadmin": "Di Sigg es fottjeschmeße woode. Dä Jrund döför es en de Liss unge ze finge, jenau esu wie de Metmaacher, wo de Sigg verändert han, ih dat se fottjeschmesse wood. Wat op dä Sigg ehre fottjeschmesse ahle Versione stundt, dat künne nor de Wiki-Köbesse noch aansinn (un och widder zeröckholle)",
        "undelete-revision": "Fottjeschmeße Version fun dä Sigg „$1“ fum $4 öm $5 Uhr, et letz jändert fum $3:",
        "undeleterevision-missing": "De Version stemmp nit. Dat wor ene verkihrte Link, oder de Version wood usem Archiv zeröck jehollt, oder fottjeschmesse.",
        "undelete-nodiff": "Mer han kei ällder Version jefonge.",
        "undeletelink": "aanloore odder widder zeröckholle",
        "undeleteviewlink": "aanloore",
        "undeleteinvert": "De Ußwahl ömdrihje",
-       "undeletecomment": "Jrond (för en et Logboch):",
+       "undeletecomment": "Jrond (för en et Logbohch):",
        "undeletedrevisions": "{{PLURAL:$1|ein Version|$1 Versione}} zeröckjehollt",
        "undeletedrevisions-files": "Zesammejenomme {{PLURAL:$1|Ein Version|<strong>$1</strong> Versione|<strong>Kein</strong> Version}} vun {{PLURAL:$2|eine Datei|<strong>$2</strong> Dateie|<strong>nix</strong>}} zeröckjehollt",
        "undeletedfiles": "{{PLURAL:$1|Ein Datei|<strong>$1</strong> Dateie|<strong>Kein</strong> Dateie}} zeröckjehollt",
        "cannotundelete": "<strong>Dä.</strong> Et Zeröckholle jing donävve.\n\n$1",
-       "undeletedpage": "<strong>De Sigg „$1“ es jetz widder do</strong>\nLuur Der et [[Special:Log/delete|Logboch met de fottjeschmesse Sigge]] aan, do häs De de Neuste fottjeschmesse\nun widder herjehollte Sigge.",
+       "undeletedpage": "<strong>De Sigg „$1“ es jetz widder do</strong>\nLuur Der et [[Special:Log/delete|Logbohch met de fottjeschmeße Sigge]] aan, do häs De de Neuste fottjeschmeße un widder herjehollte Sigge.",
        "undelete-header": "Loor Der [[Special:Log/delete|{{LCFIRST:{{int:deletionlog}}}}]] aan, doh fengks De de och neulesch fottjeschmesse Sigge.",
        "undelete-search-title": "Noh fottjeschmesse Sigge söke",
        "undelete-search-box": "Noh fottjeschmesse Sigge söke",
        "undelete-search-submit": "Söhke",
        "undelete-no-results": "Mer han em Aschiif kei Sigg, wo dä Bejreff drop paß, womet De am Söke beß.",
        "undelete-filename-mismatch": "Dä Dattei ier Version fun dä Zick $1 kunnte mer nit zeröck holle: Di Datteiname paßße nit zersamme.",
-       "undelete-bad-store-key": "Dä Dattei ier Version fun dä Zick $1 kunnte mer nit zeröck holle: Di Datei wohr ald beim Fottschmieße ja nimmieh do.",
-       "undelete-cleanup-error": "Fähler beim Fottschmieße vun de Archiv-Version „$1“, die nit jebruch wood.",
+       "undelete-bad-store-key": "Dä Dattei ier Väsjohn fun dä Zigg $1 kunnte mer nit zerök holle: Di Dattei wohr ald beim Fottschmihße ja nimmih do.",
+       "undelete-cleanup-error": "Fähler beim Fottschmieße vun de Archiv-Version „$1“, di nit jebruch wohd.",
        "undelete-missing-filearchive": "De Datei met dä Archiv-Nommer $1 künne mer nit zerök holle. Di ham_mer nit in de Datebangk. Künnt sinn, di es ald zeröckjehollt.",
        "undelete-error": "Ene Fähler es opjetrodde beim Zerökholle",
-       "undelete-error-short": "Fähler beim Zerökholle fun de Datei $1",
+       "undelete-error-short": "Fähler beim Zerökholle fun dä Dattei $1",
        "undelete-error-long": "Mer wollte en Datei widder zeröckholle, ävver dobei sin_er Fääler opjefalle:\n\n$1",
        "undelete-show-file-confirm": "Wells De dä Datei „<nowiki>$1</nowiki>“ ier fottjeschmesse Version vum $2 öm $3 Uhr verhaftesch sinn?",
        "undelete-show-file-submit": "Jo",
        "namespace": "Appachtemang:",
        "invert": "don di Ußwahl ömdrihje",
        "tooltip-invert": "Maach e Höhksche, öm Änderonge aan Sigge en däm ußjewählte Appachtemang — un däm, wat doh zohjehööt, wann doh och e Höhksche es — nit aanzezeije, ävver doför uß all de andre Appachtemangs.",
-       "tooltip-whatlinkshere-invert": "Maach heh e Höhksche, öm de Lengks ze verschteische, di vun de Sigge en dämm usjesöhkte Appachtemang ußjonn.",
+       "tooltip-whatlinkshere-invert": "Maach heh e Höhksche, öm de Lengks ze verschteische, di vun de Sigge en dämm usjesöhk Appachtemang ußjonn.",
        "namespace_association": "mem zohjehühreje Appachtemang",
        "tooltip-namespace_association": "Maach e Höhksche, öm dat Appachtemang, wat zom ußjewählte Appachtemang doh zohjehööt — entweeder de Klaafsigge udder de nomaale Sigge — zohsäzlesch ußzewähle.",
        "blanknamespace": "(Atikkele)",
        "mycontris": "Beidrähch",
        "contribsub2": "För {{GENDER:$3|dä|et|dä Metmaacher|de|dat}} $1: $1 ($2)",
        "contributions-userdoesnotexist": "Ene Metmaacher mem Nahme „$1“ ham_mer nit.",
-       "nocontribs": "Mer han kein Änderunge jefonge, en de Logböcher, die do passe däte.",
+       "nocontribs": "Mer han kein Änderunge jefonge, en de Logböcher, di do paße dähte.",
        "uctop": "(Neuste)",
        "month": "un Moohnt:",
        "year": "Beß Johr:",
        "sp-contributions-newbies": "Nor neu Metmaacher ier Beidräg zeije",
        "sp-contributions-newbies-sub": "För neu Metmaacher",
        "sp-contributions-newbies-title": "Neu Metmaacher ier Beidräsch",
-       "sp-contributions-blocklog": "Logboch met Metmaacher-Sperre",
+       "sp-contributions-blocklog": "Logbohch met de Metmaacher ier Schpärre",
        "sp-contributions-suppresslog": "verschtoche Beidrääch",
        "sp-contributions-deleted": "Fottjeschmesse Beidrääsch",
        "sp-contributions-uploads": "huhjelaade Dateie",
        "sp-contributions-newonly": "Blohß neu aanjelaate Sigge zeije.",
        "sp-contributions-submit": "Söhke",
        "whatlinkshere": "Wat noh heh link",
-       "whatlinkshere-title": "Sigge, woh Links op „$1“ dren sen",
+       "whatlinkshere-title": "Sigge, woh Lengks op „$1“ dren sen",
        "whatlinkshere-page": "Sigg:",
-       "linkshere": "Dat sin de Sigge, die op <strong>„[[:$1]]“</strong> linke dun:",
+       "linkshere": "Dat sin de Sigge, di op <strong>„[[:$1]]“</strong> lengke donn:",
        "nolinkshere": "Kein Sigg link noh <strong>„[[:$1]]“</strong>.",
        "nolinkshere-ns": "Nix link op <strong>„[[:$1]]“</strong> en dämm Appachtemang.",
        "isredirect": "Ömleidongssigg",
        "whatlinkshere-links": "← Links",
        "whatlinkshere-hideredirs": "$1 de Ömleidonge",
        "whatlinkshere-hidetrans": "$1 de Oproofe",
-       "whatlinkshere-hidelinks": "$1 de nommale Links",
-       "whatlinkshere-hideimages": "$1 de Links op Dateie",
+       "whatlinkshere-hidelinks": "$1 de nommale Lengks",
+       "whatlinkshere-hideimages": "$1 de Lengks op Datteihje",
        "whatlinkshere-filters": "Ußsööke",
        "autoblockid": "Automattesche Sperr Nommer $1",
        "block": "Metmaacher udder en <i lang=\"en\">IP</i>-Addräß sperre",
        "unblock": "Don en Sperr för ene Metmaacher udder en <i lang=\"en\">IP</i>-Addräß ophävve",
        "blockip": "{{GENDER:$1|Dä Metmaacher|De Metmaacherėn|Dä Metmaacher|De Metmaacherėn|Dä Metmaacher}} schpärre",
-       "blockip-legend": "Metmaacher ov IP-Adresse Sperre",
-       "blockiptext": "Hee kanns De bestemmte Metmaacher oder IP-Adresse sperre, su dat se hee em Wiki nit mieh schrieve und Sigge ändere künne.\nDat sollt nor jedon wääde om sujenannte Vandaale ze bremse. Un mer müsse uns dobei natörlich aan uns [[{{MediaWiki:Policy-url}}|Rejelle]] för esu en Fäll halde.\nDrag bei „Aanlass“ ene möchlichs jenaue Jrund en, wöröm dat Sperre passeet. Nenn un Link op de Sigge wo Einer kapott jemaat hät, zem Beispill.",
+       "blockip-legend": "Metmaacher Schpärre",
+       "blockiptext": "Heh kanns De beschtemmpte Metmaacher udder <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Internet Protocol\">IP</i>-Adräß schpärre, su dat se heh em Wikki nit mih schrihve un Sigge änndere künne.\nDat sollt nor jedon wääde om sujenannte Vandahle ze brämse. Un mer möße ons dobei natörlich aan uns [[{{MediaWiki:Policy-url}}|Rejelle]] för esu en Fäll halde.\nDrahch bei „Aanlass“ ene müjjeleschs jenaue Jronnd enn, woröm dat Schpärre passehrt. Nänn se un Lengk op de Sigge wo Einer kapott jemaat hät, zem Beispill.",
        "ipaddressorusername": "<i lang=\"en\">IP</i>-Adress oder Metmaacher Name:",
        "ipbexpiry": "Duur, för wie lang",
        "ipbreason": "Aanlass:",
-       "ipbreason-dropdown": "* Alljemein Jrönd för et Sperre\n** hät fekeehte Behouptunge udder Leeje en Atikele jeschrevve\n** hät Sigge fottjeschmesse udder leddig jemaat\n** hält sesch iewesch nit aan de Rejelle övver de Links op anger Websigge un jäje der Link-SPAM\n** hät Sigge met Shtuß udder Kauderwelsch drop aajelaat udder Keu en Sigge jedonn\n** deit Medmaacher bedrohe, beleijije, udder schlääsch maache\n** hät mieh wie eine Metmaachername un deit domet Schmuu maache\n* Op der Name betrocke Jrönd\n** esu ene Metmaacher-Name wolle mer nit\n* Op en IP-Adräß betrocke Jrönd\n** dat es en Proxy-ẞööver övver dänn de Lück zo vill Driß aanjestellt han",
+       "ipbreason-dropdown": "* Alljemein Jrönd för et Sperre\n** hät fekeehte Behouptunge udder Leeje en Atikele jeschrevve\n** hät Sigge fottjeschmesse udder leddig jemaat\n** hält sesch iewesch nit aan de Rejelle övver de Links op anger Websigge un jäje der Link-SPAM\n** hät Sigge met Shtuß udder Kauderwelsch drop aajelaat udder Keu en Sigge jedonn\n** deit Metmaacher bedrohe, beleijije, udder schlääsch maache\n** hät mieh wie eine Metmaachername un deit domet Schmuu maache\n* Op der Name betrocke Jrönd\n** esu ene Metmaacher_Nahme wolle mer nit\n* Op en IP-Adräß betrocke Jrönd\n** dat es en Proxy-ẞööver övver dänn de Lück zo vill Driß aanjestellt han",
        "ipb-hardblock": "Enjelogg Metmaacher dörfe vun heh dä <i lang=\"en\">IP</i>-Addräß kein Sigge ändere",
        "ipbcreateaccount": "Et Neu-Aanmelde verbeede",
        "ipbemailban": "Et <i lang=\"en\">e-mail</i>-Verschecke ongerbenge",
-       "ipbenableautoblock": "Dun automatisch de letzte IP-Adress sperre, die dä Metmaacher jehatt hät, un och all die IP-Adresse, vun wo dä versök, jet ze ändere.",
-       "ipbsubmit": "Dun dä Metmaacher sperre",
+       "ipbenableautoblock": "Donn automattesch de läzede <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Internet Protocol\">IP</i>-Adräß schpärre, di dä Metmaacher jehatt hät, un och all di <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Internet Protocol\">IP</i>-Adräß, vun wo dä versöhk, jät ze änndere.",
+       "ipbsubmit": "Dun dä Metmaacher schpärre",
        "ipbother": "För en ander Duur:",
        "ipboptions": "2 Stund:2 hours,1 Dach:1 day,3 Däch:3 days,1 Woch:1 week,2 Woche:2 weeks,1 Mond:1 month,3 Mond:3 months,6 Mond:6 months,1 Johr:1 year,Unbejrenz:infinite",
        "ipbhidename": "Don däm Metmaacher singe Name versteiche, en de Leste un däm sing Änderunge.",
        "ipbwatchuser": "Op däm Metmaacher sing Metmaachersigg un Klaafsigg oppaßße",
        "ipb-disableusertalk": "Dä Metmaacher darf sing Klaafsigg nit ändere, esulang, wi hä jwesperrt es",
-       "ipb-change-block": "Wigger sperre met dä neue Enstellunge",
-       "ipb-confirm": "Et Sperre beshtäätejje",
+       "ipb-change-block": "Wigger schpärre met dä neuje Ennschtällonge",
+       "ipb-confirm": "Et Schpärre beschtähtejje",
        "badipaddress": "Wat De do jeschrevve häs, dat es kein öntlije IP-Adress.",
        "blockipsuccesssub": "De IP-Adress es jetz jesperrt",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] es jetz jesperrt.\n<br />\nLuur op [[Special:BlockList|{{int:ipblocklist}}]] wann de ene Övverbleck övver de Sperre han wells,\nun och, wann De se ändere wells.",
        "ipb-edit-dropdown": "De Jründ för et Sperre beärrbejde",
        "ipb-unblock-addr": "„$1“ widder zohlohße",
        "ipb-unblock": "En IP-Addräß ov ene Metmaacher widder zohlohße",
-       "ipb-blocklist": "All de Sperre för Metmaacher un IP-Adresse aanzeije, die jrad bestonn",
+       "ipb-blocklist": "All de Sperre för Metmaacher un <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i>-Adräße aanzeije, di jrad beschtonn",
        "ipb-blocklist-contribs": "{{GENDER:$1|Däm|Däm|Däm Metmaacher|Dä|Däm}} $1 {{GENDER:$1|sing|singe|sing|iere|sing}} Bäjdrähsch",
        "unblockip": "Dä Medmacher widder maache looße",
        "unblockiptext": "Heh kanns De vörher jesperrte IP_Adresse oder Metmaacher widder freijevve, un dänne esu dat Rääch för ze Schrieve heh em Wiki widder jevve.",
        "ipusubmit": "Sperr ophevve!",
        "unblocked": "[[User:$1|$1]] wood widder zojelooße",
-       "unblocked-range": "Dä Berett $1 es nit mieh jesperrt.",
+       "unblocked-range": "Dä Berett $1 es nit mih jeschpächt.",
        "unblocked-id": "De Sperr met dä Nommer $1 es opjehovve",
-       "unblocked-ip": "{{GENDER:$1|Dä|Et|Dä Metmaacher|De|Dä}} [[Special:Contributions/$1|$1]] es jäz nit mieh jeschpächt.",
+       "unblocked-ip": "{{GENDER:$1|Dä|Et|Dä Metmaacher|De|Dä}} [[Special:Contributions/$1|$1]] es jäz nit mih jeschpächt.",
        "blocklist": "De Leß met jesperrte <i lang=\"en\">IP</i>-Adräße un Metmaacher",
        "ipblocklist": "Leß met jesperrte <i lang=\"en\">IP</i>-Adresse un Metmaacher",
        "ipblocklist-legend": "Ene jesperrte Metmaacher fenge",
        "blocklist-userblocks": "De einzel Metmaacher ier Sperre ußblende",
-       "blocklist-tempblocks": "De Sperre op Zick ußblende",
+       "blocklist-tempblocks": "De Schpärre op Zigg ußblände",
        "blocklist-addressblocks": "De einzel <i lang=\"en\">IP</i>-Addresse ier Sperre ußblende",
        "blocklist-rangeblocks": "Don de Sperre för ene Berett ußblände",
-       "blocklist-timestamp": "Zick wann jesperrt",
+       "blocklist-timestamp": "Zigg wann jeschpächt",
        "blocklist-target": "Jesperrt woodt",
        "blocklist-expiry": "Jesperrt beß",
        "blocklist-by": "Wä hät jesperrt",
        "infiniteblock": "för iwich",
        "expiringblock": "bes aam $1 öm $2 Uhr",
        "anononlyblock": "nor namelose",
-       "noautoblockblock": "automatisch Sperre avjeschalt",
+       "noautoblockblock": "automattesch Schpärre avjeschalt",
        "createaccountblock": "neu Aanmelde verbodde",
        "emailblock": "<i lang=\"en\">e-Mail</i> Schecke verbodde",
        "blocklist-nousertalk": "de eije Klaafsigg Änndere verbodde",
        "contribslink": "Beidräch",
        "emaillink": "Scheck en <span lang=\"en\">e-mail</span>",
        "autoblocker": "Bes automattisch jesperrt. Ding <i lang=\"en\" xml:lang=\"en\">IP</i>_Adress wood vör kootem noch vun däm Metmaacher „[[User:$1|$1]]“ jebruch. Dä es jesperrt woode wäje: „$2“",
-       "blocklogpage": "Logboch met Metmaacher-Sperre",
+       "blocklogpage": "Logbohch met Metmaacher-Schpärre",
        "blocklog-showlog": "Heh dä Metmaacher es ald fröjer jeshperrt woode. Dat Logbooch vum Metmaacher-Sperre onge künnt doh jät mieh zoh saare.",
        "blocklog-showsuppresslog": "Heh dä Metmaacher es ald fröjer jeshperrt un vershtoche woode. Dat Logbooch vum Metmaacher-Vershteishe onge künnt doh jät mieh zoh saare.",
        "blocklogentry": "hät „[[$1]]“ fö de Zick vun $2 jesperrt. $3",
        "reblock-logentry": "hät di Sperr för dä „[[$1]]“ met dä Duuer fun $2 $3 jeändert",
-       "blocklogtext": "Heh es et Logboch övver et Metmaacher-Sperre un -Freijevve vun Hand.\nAutomattesch jesperrte <i lang=\"en>IP</i>-Addräße sin nit heh, ävver en de [[Special:BlockList|{{int:ipblocklist}}]] ze fenge.",
+       "blocklogtext": "Heh es et Logbohch övver et Metmaacher-Schhpärre un -Freijävve vun Hand.\nAutomattesch jeschpächte <i lang=\"en>IP</i>-Addräße sin nit heh, ävver en de [[Special:BlockList|{{int:ipblocklist}}]] ze fenge.",
        "unblocklogentry": "Metmaacher „$1“ freijejovve",
-       "block-log-flags-anononly": "nor de namelose Metmaacher sperre",
+       "block-log-flags-anononly": "blohß de nahmelose Metmaacher schpärre",
        "block-log-flags-nocreate": "neu Metmaacher aanlääje es verbodde",
        "block-log-flags-noautoblock": "nit automatesch all däm sing IP-Adresse sperre",
        "block-log-flags-noemail": "och et E-Mail Verschecke sperre",
        "block-log-flags-nousertalk": "kann de eije Klaafsigg nit ändere",
-       "block-log-flags-angry-autoblock": "automatesch all däm sing IP-Adresse sperre, un noch mieh",
+       "block-log-flags-angry-autoblock": "automattesch all däm sing \n<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Internet Protocol\">IP</i>-Adräße schpärre, un noch mih",
        "block-log-flags-hiddenname": "Däm Metmaacher singe Name es för de Öffentleschkeit vershtoche",
        "range_block_disabled": "Adresse Jebeede ze sperre, es nit erlaub.",
        "ipb_expiry_invalid": "De Duur es Dress. Jevv se richtich aan.",
-       "ipb_expiry_temp": "Sperre för Metmaacher met verstoche Name mößße för iewish doore.",
+       "ipb_expiry_temp": "Sperre för Metmaacher met verschtoche Nahme mößße för ihwish dohre.",
        "ipb_hide_invalid": "Mer künne dä Metmaacher nit verschteische. Dä hät övver {{PLURAL:$1|ein Änderong|$1 Änderong|kein Änderong}} jemaat.",
        "ipb_already_blocked": "„$1“ es ald jesperrt",
-       "ipb-needreblock": "Dä Metmaacher „$1“ es ald jesperrt. Wellß De de Enstellunge för di Spär ändere?",
+       "ipb-needreblock": "Dä Metmaacher „$1“ es ald jeschpächt. Wellß De de Enschtällonge för di Spär ändere?",
        "ipb-otherblocks-header": "Ander {{PLURAL:$1|Sperr|Sperre|-nix-}}",
-       "unblock-hideuser": "Däm Metmaacher sing Sperr kam_mer nit ophävve, sulang dä Name verstoche es.",
+       "unblock-hideuser": "Däm Metmaacher sing Schpärr kam_mer nit ophävve, sulang dä Name verschtoche es.",
        "ipb_cant_unblock": "<strong>Ene Fähler:</strong> En Sperr met dä Nummer $1 es nit ze finge. Se künnt ald widder freijejovve woode sin.",
-       "ipb_blocked_as_range": "Dat jeit nit. De IP-Adress „$1“ es nit tirek jesperrt. Se es ävver en däm jesperrte Bereich „$2“ dren. Die Sperr kam_mer ophevve. Donoh kam_mer och kleiner Aandeile fun däm Bereich widder neu sperre. Di Adress alleins kam_mer ävver nit freijevve.",
+       "ipb_blocked_as_range": "Dat jeit nit. De <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Internet Protocol\">IP</i>-Adräß „$1“ es nit tirek jeschpächt. Se es ävver en däm jeschpächte Berätt „$2“ dren. Di Schpär kam_mer ophävve. Donoh kam_mer och kleiner Aandeijle fun däm Berätt widder neu schpärre. Di Adräß alleins kam_mer ävver nit freijävve.",
        "ip_range_invalid": "Dä Bereich vun IP_Adresse es nit en Oodnung.",
        "ip_range_toolarge": "Berette övver /$1 ze sperre is nit zohjelohße, bloß kleiner.",
        "proxyblocker": "Open_Proxy_Blocker",
        "sorbs": "<i lang=\"en\">DNSBL</i>",
        "sorbsreason": "Ding IP-Adress weed en de DNSbl als ene offe Proxy jeliss. Schwaad met Dingem System-Minsch oder Netzwerk-Techniker (ISP Internet Service Provider) drüvver, un verzäll dänne vun däm Risiko för ehr Secherheit!",
        "sorbs_create_account_reason": "Ding IP-Adress weed en de DNSbl als ene offe Proxy jeliss. Dröm kanns De Dich heh em Wiki nit als ene neue Metmaacher aanmelde. Schwaad met Dingem System-Minsch oder Netzwerk-Techniker oder (ISP Internet Service Provider) drüvver, un verzäll dänne vun däm Risiko för ehr Secherheit!",
-       "xffblockreason": "En <i lang=\"en\">IP-</i>Adräs en ener <code lang=\"en\">X-Forwarded-For</i> Koppreih es jeschpächt: Et künnt de Dinge udder enem <i lang=\"en\">proxy server</i> zweschedren sing Adräß sin. Der Jrond för et Schpärre woh orschprönglesch: $1",
+       "xffblockreason": "En <i lang=\"en\">IP-</i>Adräs en ener <code lang=\"en\">X-Forwarded-For</i> Koppreih es jeschpächt: Et künnt de Dinge udder enem <i lang=\"en\">proxy</i>_ẞööver zweschedren sing Adräß sin. Der Jrond för et Schpärre woh orschprönglesch: $1",
        "cant-see-hidden-user": "Dä Metmaacher, dä De shperre wells, es al jeshperrt un verschtoche. Weil De nit dat Rääsch häs. Metmaacher ze vershteiche (<code>hideuser</code>), kanns De däm sing Sperr och nit ändere.",
        "ipbblocked": "Do kanns kein ander Metmaachere sperrre, weil De sellver jesperrt bes",
        "ipbnounblockself": "Do kanns nit sellver ophävve, dat De jesperrt bes",
-       "lockdb": "Daatebank sperre",
+       "lockdb": "Dahtebank schpärre",
        "unlockdb": "Daatebank freijevve",
-       "lockdbtext": "Nohm Sperre kann keiner mieh Änderunge maache an sing Oppassliss, aan Enstellunge, Atikele, uew. un neu Metmaacher jitt et och nit. Bes de secher, datte dat wells?",
+       "lockdbtext": "Nohm Schpärre kann keiner mih Änderonge maache an sing Oppaßleß, aan Enschtällonge, Atikele, uew. un neu Metmaacher jitt et och nit. Bes de secher, datte dat verhaftesch wells?",
        "unlockdbtext": "Nohm Freijevve es de Daatebank nit mieh jesperrt, un all de normale Änderunge wääde widder müjjelich. Bes de secher, dat De dat wells?",
        "lockconfirm": "Jo, ich well de Daatebank jesperrt han.",
        "unlockconfirm": "Jo, ich well de Daatebank freijevve.",
-       "lockbtn": "Daatebank sperre",
+       "lockbtn": "Dahtebank schpärre",
        "unlockbtn": "Daatebank freijevve",
        "locknoconfirm": "Do häs kei Hökche en däm Feld zem Bestätije jemaht.",
        "lockdbsuccesssub": "De Daatebank es jetz jesperrt",
        "move-page": "De Sigg „$1“ ömnenne",
        "move-page-legend": "Sigg Ömnenne",
        "movepagetext": "Heh kanns De en Sigg ömnenne.\nDomet kritt di Sigg ene neue Name, un all vörherije Versione vun dä Sigg och.\nUnger däm ahle Tittel weed automatisch en Ömleidong op dä neue Tittel enjedrare.\n\nDo kannß dat Höksche säze domet Ömleidonge automattesch aanjepaß wääde, di op dä ahle Tittel zeije — dat weet ävver nur allmählesch pö a pö hengerher jemaat.\nLinks op dä ahle Tittel blieve ävver wi se wore, wann De dat Höksche nit säz.\nDat heiß, dann moß De selver nohluure, of do jäz [[Special:DoubleRedirects|dubbelde Ömleidonge]] udder [[Special:BrokenRedirects|kapodde Ömleiduoge]] bei eruskumme.\nWann De en Sigg ömnenne deis, häs Do och doför ze sorje, dat de betroffene Links do henjonn, wo se hen jonn solle.\nAlsu holl Der de Liss „Wat noh heh link“ fun dä Sigg heh un jangk se dorsch!\n\nDe Sigg weed '''nit''' ömjenannt, wann et met däm neue Name ald en Sigg jitt, '''ußer''' et es en Ömleidong un se es noch nie jeändert woode.\nEsu kam_mer en Sigg jlich widder zeröck ömbenänne, wam_mer sich bem Ömbenänne verdonn hät, un mer kann och kein Sigge kapottmaache, wo ald jet drop schteiht.\n\n'''Oppjepass!'''\nWat beim Ömnenne erus kütt, künnt en opfällije un villeisch stüürende Änderong aam Wiki sin, besönders bei öff jebruchte Sigge.\nAlsu bes secher, dat De verschteihs, wat De heh am maache bes, ih dat De et mähs!",
-       "movepagetext-noredirectfixer": "Heh kanns De en Sigg ömnenne.\nDomet kritt die Sigg ene neue Name, un all vörherije Versione vun dä Sigg och.\nOnger däm ahle Tittel weed automatisch en Ömleidong op dä neue Tittel enjedrare.\n\nLenks op dä ahle Tittel bliive ävver, wie se wohre.\nDat heiß, Do moß selver nohloore, ov doh jetz [[Special:DoubleRedirects|dubbelde]] oder [[Special:BrokenRedirects|kapodde Ömleidonge]] bei eruskumme.\nWann De en Sigg ömnenne deiß, häs Do och doför ze sorje, dat de betroffe Links doh henjonn, wo se hen jonn solle.\nAlsu holl Der di Liss „Wat noh heh link“ fun dä Sigg heh un jangk se dorsch!\n\nDi Sigg weed '''nit''' ömjenannt, wann et met däm neue Tittel ald en Sigg jitt, '''ußer''' doh es nix drop, oder et es en Ömleidong un se es noch nie jeändert woode.\nEsu kam_mer en Sigg jlich widder retuur ömnänne, wam_mer sich mem Ömnänne verdonn hät, un mer kann och kein Sigge kapottmaache, wo ald jet drop schteiht.\n\n'''Oppjepaß!'''\nWat beim Ömnänne erus kütt, künnt en opfällije un villeich stührende Änderung aam Wikki sin, besönders bei öff jebruchte Sigge.\nAlsu bes secher, dat De verschteihs, wat De heh am maache bes, ih dat De et mähs!",
+       "movepagetext-noredirectfixer": "Heh kanns De en Sigg ömnenne.\nDomet kritt di Sigg ene neue Nahme, un all vörherije Väsjohne vun dä Sigg och.\nOnger däm ahle Tittel weed automattesch en Ömleidong op dä neue Tittel enjedrare.\n\nLenks op dä ahle Tittel bliive ävver, wie se wohre.\nDat heiß, Do moß selver nohloore, ov doh jetz [[Special:DoubleRedirects|dubbelde]] oder [[Special:BrokenRedirects|kapodde Ömleidonge]] bei eruskumme.\nWann De en Sigg ömnenne deiß, häs Do och doför ze sorje, dat de betroffe Links doh henjonn, wo se hen jonn solle.\nAlsu holl Der di Liss „Wat noh heh link“ fun dä Sigg heh un jangk se dorsch!\n\nDi Sigg weed '''nit''' ömjenannt, wann et met däm neue Tittel ald en Sigg jitt, '''ußer''' doh es nix drop, oder et es en Ömleijdong un se es noch nie jeändert woode.\nEsu kam_mer en Sigg jlich widder retuur ömnänne, wam_mer sich mem Ömnänne verdonn hät, un mer kann och kein Sigge kapottmaache, wo ald jet drop schteiht.\n\n<strong>Oppjepaß!</strong>\nWat beim Ömnänne erus kütt, künnt en opfällije un velleijsch stührende Änderong aam Wikki sin, besönders bei öff jebruchte Sigge.\nAlsu bes secher, dat De verschteihs, wat De heh am maache bes, ih dat De et mähs!",
        "movepagetalktext": "Dä Sigg ehr Klaafsigg, wann se ein hät, weed automatisch met  ömjenannt, '''usser''' wann:\n* de Sigg en en ander Appachtemeng kütt,\n* en Klaafsigg met däm neue Name ald do es, un et steiht och jet drop,\n* De unge en däm Kääsje '''kei''' Hökche aan häs.\nEn dänne Fäll, muss De Der dä Enhald vun dä Klaafsigge selvs vörnemme, un eröm kopeere watte bruchs.",
        "movearticle": "Sigg zem Ömnenne:",
        "moveuserpage-warning": "'''Opjepaß:''' Do wells en Metmaachersigg ömnänne, domet weed ävver dä Metmaacher sellver ''nit'' met ömjenannt.",
        "cant-move-to-user-page": "Do häs nit dat Rääsch, en Sigg tirkäk op en Metmaacher-Sigg ömzenänne, Do kanns se ävver op en Ungersigg dofun ömnenne.",
        "cant-move-category-page": "Do häß nit dat Rääsch, Saachjroppesigge ömzebenänne.",
        "cant-move-to-category-page": "Do häß nit dat Rääsch, en Sigg obb en Saachjroppesigg ömzebenänne.",
-       "newtitle": "op dä neue Name",
+       "newtitle": "op dä neue Nahme",
        "move-watch": "Op di Sigg heh oppaßße",
        "movepagebtn": "Ömnenne",
        "pagemovedsub": "Dat Ömnenne hät jeflupp",
        "movepage-moved-redirect": "En Ömleidong es aanjelaat woode.",
        "movepage-moved-noredirect": "Kein Ömleidong woodt aanjelaat.",
        "articleexists": "De Sigg met däm Name jitt et ald, oder dä Name ka'mer oder darf mer nit bruche.<br />Do muss Der ene andere Name ussöke.",
-       "cantmove-titleprotected": "Die Sigg ömzenänne es esu nit möjjelesch, dänn dä neu Name vun dä Sigg es jäje et Neu-Aanlääje jeschötz.",
+       "cantmove-titleprotected": "Di Sigg ömzenänne es esu nit möjjelesch, dänn dä neu Name vun dä Sigg es jäje et Neu-Aanlääje jeschötz.",
        "movetalk": "dä ehr Klaafsigg met ömnenne, wat et jeiht",
        "move-subpages": "Don de Ongersigge met_ömnënne, wann_er do sin.\n{{PLURAL:$1|Bloß ein Sigg weed|Beß $1 Sigge weede|Kei einzel Sigg weed}} ömjenannt.",
        "move-talk-subpages": "Don de Ongersigge vun de Klaafsigge met_ömnënne, wann_er do sin.\n{{PLURAL:$1|Bloß ein Sigg weed|Beß $1 Sigge weede|Kei einzel Sigg weed}} ömjenannt.",
        "movepage-page-moved": "Di eejemoolijje Sigg „$1“ es jëz op „$2“ ömjenannt.",
        "movepage-page-unmoved": "Mer kůnnte di Sigg „$1“ nit op „$2“ ömnënne.",
        "movepage-max-pages": "Mer han jëtz {{PLURAL:$1|ëijn Sigg|$1 Sigge|kein Sigg}} ömjenanndt. Mieh jeiht nit automatėsch.",
-       "movelogpage": "Logboch vum Sigge Ömnenne",
+       "movelogpage": "Logbohch vum Sigge Ömnänne",
        "movelogpagetext": "Heh sin de Neuste ömjenannte Sigge opjeliss, un wä et jedon hät.",
        "movesubpage": "{{PLURAL:$1|Ungersigg|Ungersigge|Ungersigge}}",
-       "movesubpagetext": "Die Sigge hät {{PLURAL:$1|ein Ungersigg|$1 Ungersigge|kei Ungersigge}}.",
-       "movenosubpage": "Die Sigg hät kei Ungersigge.",
+       "movesubpagetext": "Di Sigg hät {{PLURAL:$1|ein Ongersigg|$1 Ongersigge|kei Ongersigge}}.",
+       "movenosubpage": "Di Sigg hät kei Ongersigge.",
        "movereason": "Aanlass:",
        "revertmove": "Et Ömnänne zerök_nämme",
        "delete_and_move": "Fottschmieße un Ömnenne",
        "bad-target-model": "De Zielsigg moß uß en ander Zoot Daate beschtonn, un vun „$1“ noh „$2“ künne mer nit ömwandele.",
        "imagenocrossnamespace": "Dateije kam_mer nor in et Appachtemang „{{ns:file}}“ donn, noh woanders hen kam_mer se och nit ömnemme!",
        "nonfile-cannot-move-to-file": "Mer kann nix uußer Datteije esu ömnänne, dat et em Appachtemang „{{ns:file}}“ landt",
-       "imagetypemismatch": "De neu Datei-Endong moß met däm Datei-Tüp zesamme passe",
-       "imageinvalidfilename": "Dä Ziel-Name för de Datei es verkeht",
+       "imagetypemismatch": "De neuje Dattei_Endong moß met däm Dattei_Tüp zesamme paße",
+       "imageinvalidfilename": "Dä Zihl_Nahme för di Dattei es verkeht",
        "fix-double-redirects": "Don noh em Ömnenne de Ömleidonge automattesch ändere, di noch op dä ahle Tittel zeije, also de neu entshtande dubbelte Ömleidonge oplöse.",
        "move-leave-redirect": "Donn en Ömleidong doför ennreschte",
        "protectedpagemovewarning": "'''Opjepaß:''' Heh di Sigg es jespert su dat blooß de Wiki-Kööbeße se ömnänne künne.\nHeh kütt der neuste Enndrach em Logbooch doh drövver:",
        "semiprotectedpagemovewarning": "'''Opjepaß:''' Heh di Sigg es jespert su dat blooß aanjemeldte Metmaacher se ömnänne künne.\nHeh kütt der neuste Enndrach em Logbooch doh drövver:",
        "move-over-sharedrepo": "==Di Dattei jidd_et ald==\nEn Dattei [[:$1]] jidd_et ald en enem jemeinsame Beschtand. En annder Dattei op dä Name ömzenänne sorresch doför, dat mer aan di Dattei em jemeinsame Beschtand vun heh uß donoh nit mieh draan kütt.",
-       "file-exists-sharedrepo": "Dinge Name för die Dattei weed ald jebruch, un zwa en enem jemeinsame Bestand vun Dateije.\nDröm söhk ene andere Name uß.",
+       "file-exists-sharedrepo": "Dinge Nahme för di Dattei weed ald jebruch, un zwa en enem jemeinsame Beschtand vun Dateije.\nDröm söhk ene andere Nahme uß.",
        "export": "Sigge Exporteere",
-       "exporttext": "Heh exportees De dä Tex un de Eijeschaffte vun ener Sigg, oder vun enem Knubbel Sigge, de aktuelle Version, met oder ohne ehr ählere Versione.\nDat Janze es enjepack en XML.\nDat kam_mer en en ander Wiki — wann et och met dä MediaWiki-Soffwär läuf — övver de Sigg „[[Special:Import|Import]]“ do widder empoteere.\n\nSchriev de Titele vun dä Sigge en dat Feld för Tex enzejevve, unge, eine Titel en jede Reih.\nDann dun onoch ussöke, ov De all de vörherije Versione vun dä Sigge han wells, oder nor de aktuelle met dä Informatione vun de letzte Änderung.\n\nEn däm Fall künns De, för en einzelne Sigg, och ene tirekte Link bruche, zom Beispill „[[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]“ för de Sigg „[[{{MediaWiki:Mainpage}}]]“ ze exporteere.",
+       "exporttext": "Heh exportees De dä Tex un de Eijeschaffte vun ener Sigg, oder vun enem Knubbel Sigge, de aktuelle Version, met oder ohne ehr ählere Versione.\nDat Janze es enjepack en XML.\nDat kam_mer en en ander Wiki — wann et och met dä MediaWiki-Soffwär läuf — övver de Sigg „[[Special:Import|Import]]“ do widder empotehre.\n\nSchriev de Titele vun dä Sigge en dat Feld för Tex enzejevve, unge, eine Titel en jede Reih.\nDann dun onoch ussöke, ov De all de vörherije Versione vun dä Sigge han wells, oder nor de aktuelle met dä Informazjuhne vun de läzde Änderong.\n\nEn däm Fall künns De, för en einzelne Sigg, och ene tirekte Link bruche, zom Beispill „[[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]“ för de Sigg „[[{{MediaWiki:Mainpage}}]]“ ze exporteere.",
        "exportall": "Alle Sigge Äxpotteere",
        "exportcuronly": "Bloß de aktuelle Version usjevve (un <strong>nit</strong> de janze ahle Versione onoch met dobei dun)",
        "exportnohistory": "----\n<strong>Opjepass:</strong> de janze Versione Exporteere es heh em Wiki avjeschalt. Schad, ävver et wör en\nzo jroße Lass för dä ẞööver.",
        "exportlistauthors": "Donn en kumpläte Lėß met dä Schriiver för en Sigg dobei",
        "export-submit": "Lohß Jonn!",
-       "export-addcattext": "Sigge dobei donn us dä Saachjrupp:",
+       "export-addcattext": "Sigge dobei donn us dä Saachjropp:",
        "export-addcat": "Dobei donn",
        "export-addnstext": "Sigge dobei donn uß dämm Appachtemang:",
        "export-addns": "Dobei Donn!",
-       "export-download": "Als en XML-Datei afspeichere",
-       "export-templates": "De Schablone met expochteere, die die Sigge bruche",
+       "export-download": "Als en <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Extensible Markup Language\">XML</i>-Dattei afspeichere",
+       "export-templates": "De Schablohne met expochtehre, di de Sigge bruche",
        "export-pagelinks": "Donn de Sigge metnämme, wo vun heh Lengks drop jon, un vun do wigger, bes esu vill Schrette:",
        "allmessages": "Aanzeije-Baustein, Täxte, un Nohreeschte vum Wiki-System",
-       "allmessagesname": "Name",
+       "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].",
        "allmessages-filter-unmodified": "nit jeändert",
        "allmessages-filter-all": "ejaal",
        "allmessages-filter-modified": "heh em Wiki jeändert",
-       "allmessages-prefix": "Name fängk aan met:",
+       "allmessages-prefix": "Nahme fängk aan met:",
        "allmessages-language": "Schprohch:",
        "allmessages-filter-submit": "Lohß Jonn!",
        "allmessages-filter-translate": "Övversäze!",
        "thumbnail-more": "Jrößer aanzeije",
-       "filemissing": "Datei es nit do",
+       "filemissing": "Di Dattei es nit doh",
        "thumbnail_error": "Ene Fähler es opjetauch beim Maache vun enem Breefmarke/Thumbnail-Beldche: „$1“",
        "thumbnail_error_remote": "Ene Fähler es em $1 opjevalle:\n$2",
        "djvu_page_error": "De DjVu-Sgg es ußerhallef",
        "thumbnail-temp-create": "Mer kunnte kein Zweschedattei für Minnibeldscher aanlääje.",
        "thumbnail-dest-create": "Mer kunnte kein Minnibeldscher faßhallde, woh se hen sulle.",
        "thumbnail_invalid_params": "Ene Parameter för et Breefmarke-Belldsche (<i lang=\"en\">thumbnail</i>) Maache wohr nit en Odenung",
-       "thumbnail_toobigimagearea": "Dattei met mieh wi $1",
+       "thumbnail_toobigimagearea": "Datteij met mih wi $1",
        "thumbnail_dest_directory": "Dat Verzeichnis för dat erin ze donn kunte mer nit aanlääje.",
        "thumbnail_image-type": "Di Zoot Beld künne mer nit met ömjonn",
        "thumbnail_gd-library": "Vun dä <i lang=\"en\">GD</i> Projramm_Biplijotheek fäählt en Funkßuhn: „$1“",
-       "thumbnail_image-missing": "Di Datei schingk nit doh ze sin: <code>$1</code>",
+       "thumbnail_image-missing": "Di Dattei schingk nit doh ze sin: <code>$1</code>",
        "thumbnail_image-failure-limit": "Mieh wi {{PLURAL:$1|eine Versohch|$1 Versohche|keine Versohch}} dat Minnibelldsche ze zeije. Versöhg_et schpääder widder.",
        "import": "Sigge Emporteere",
        "importinterwiki": "Empottehre uss_enem andere Wikki",
        "import-interwiki-sourcewiki": "Vum Wikki:",
        "import-interwiki-sourcepage": "Vun dä Sigg:",
        "import-interwiki-history": "All de Versione vun dä Sigg heh kopeere",
-       "import-interwiki-templates": "All Schablone metnämme",
+       "import-interwiki-templates": "Alle Schablohne metnämme",
        "import-interwiki-submit": "Huhlade!",
        "import-mapping-default": "Aan de schtanndattmähßeje Pläz emmpottehre:",
        "import-mapping-namespace": "En heh dat Appachtemang emmpotehre:",
        "importnopages": "Kein Sigg för ze Emporteere jefunge.",
        "imported-log-entries": "{{PLURAL:$1|Eine Enndraach woodt|$1 Enndrääsch woodte|Keine Enndraach wood}} en et Logbooch empotteert.",
        "importfailed": "Dat Importeere es donevve jejange: $1",
-       "importunknownsource": "Die Zoot Quell för et Emporteere kenne mer nit",
-       "importcantopen": "Kunnt op de Datei för dä Emport nit zojriefe",
+       "importunknownsource": "Di Zoot Quell för et Emporteere känne mer nit",
+       "importcantopen": "Kunnt op de Dattei för dä Empoot nit zojrihfe",
        "importbadinterwiki": "Verkihrte Interwiki Link",
        "importsuccess": "Dat Emporteere hät jeflupp!",
        "importnosources": "Heh es kein Wikki för_enne tiräkte Empoot enjereesch.\nÄllder Väsjohne huhzelade es nit zohjelohße.",
-       "importnofile": "Et wood kein Datei huhjelade för ze Emporteere.",
+       "importnofile": "Et wood kein Dattei huhjelahde för ze Empottehre.",
        "importuploaderrorsize": "De Import-Datei huhzelade jingk scheif, weil dat Denge jrößer wi äloup es.",
        "importuploaderrorpartial": "De Import-Datei huhzelade jingk scheif, weil dat Denge nit komplett zo eng transpotteet woode es. Do fäählt jet.",
-       "importuploaderrortemp": "De Import-Datei huhzelade jingk scheif, weil e Zwescheverzeichnis fäählt.",
+       "importuploaderrortemp": "De Empoot_Dattei huhzelahde jingk scheif, weil e Zwescheverzeijschneß fäält.",
        "import-parse-failure": "Fäähler bem Import per XML:",
        "import-noarticle": "Kein Sigge do, för ze Emporteere!",
        "import-nonewrevisions": "Et sin kein neue Väsjohne för ze emporteere doh, weil alle Väsjonhe vun heh ald fröjer empotteet wodte.",
        "xml-error-string": "$1 — en {{PLURAL:$2|eetz|$2-}}te Reih en de {{PLURAL:$3|eetz|$3-}}te Spalde, dat ess_et {{PLURAL:$4|eetz|$4-}}te Byte: $5",
-       "import-upload": "En XML-Datei impochteere",
+       "import-upload": "En <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Extensible Markup Language\">XML</i>-Dattei impottehre",
        "import-token-mismatch": "Schadt. Et senn nit alle Date heh aanjekumme.\nBes esu joot, un versök et noch ens.",
        "import-invalid-interwiki": "Us dämm jenannte Wiki künne mer nix Importeere.",
        "import-error-edit": "Di Sigg „$1“ es nit impotehrt woode. Do häs nit et Rääsch, se ze ändere.",
        "import-options-wrong": "{{PLURAL:$2|En verkiehrte Aanjab|Verkiehrte Aanjabe|Kein verkiehrte Aanjabe}}: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "Di aanjejovve Aanfangssigg hät keine jölteje Tittel.",
        "import-rootpage-nosubpage": "Em Appachtemang „$1“ vun dä Aanfangssig sin kein Ongersigge zohjelohße.",
-       "importlogpage": "Logboch met emporteerte Sigge",
+       "importlogpage": "Logbohch met emportehrte Sigge",
        "importlogpagetext": "Sigge met ehre Versione vun ander Wikis emporteere.",
        "import-logentry-upload-detail": "{{PLURAL:$1|ein Väsjohn|$1 Väsjohne|kein Väsjohn}} woodt emportehrt.",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|ein Väsjohn|$1 Väsjohne|kein VVäsjohnersion}} woodt empottehrt vun „$2“",
        "javascripttest-pagetext-skins": "Sööke en Bovverfläsch udder et Ußsinn uß, öm di Prööfonge domet ze maache:",
        "javascripttest-qunit-intro": "Loor noh dä [$1 Dokemäntation övver et Prööfe] op mediawiki.org.",
        "tooltip-pt-userpage": "Don Ding eije Metmaachersigg aanzeije",
-       "tooltip-pt-anonuserpage": "Metmaachersigg för die IP-Adress, vun wo uß De jraad Ding Änderunge un Äjänzunge aam Wiki am maache bes",
+       "tooltip-pt-anonuserpage": "Metmaachersigg för di <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Internet Protocol\">IP</i>-Adräß, vun wo uß De jraad Ding Ännderonge un Äjännzonge aam Wiki am maache bes",
        "tooltip-pt-mytalk": "Dun Ding eije Klaafsigg aanzeije",
        "tooltip-pt-anontalk": "Klaaf övver Änderunge, di vun dä IP-Adress uß jemaat wodte",
-       "tooltip-pt-preferences": "De eije Enstellunge",
-       "tooltip-pt-watchlist": "De Liss met de Sigge en Dinge eije Oppassliss",
-       "tooltip-pt-mycontris": "en Liss met Dinge eije Beidräch",
+       "tooltip-pt-preferences": "De eije Ennschtällonge",
+       "tooltip-pt-watchlist": "De Leß met de Sigge en Dinge eije Oppaßleß",
+       "tooltip-pt-mycontris": "en Leß met Dinge eije Beijdrähsch",
        "tooltip-pt-login": "Do moß Desch nit Enlogge, kannz_E ävver jähn maache!",
        "tooltip-pt-logout": "Ußlogge",
        "tooltip-pt-createaccount": "mer schlonn vör, dat De Desch aanmällde deihs un ennloggs, ävver müüdesch es et nit.",
-       "tooltip-ca-talk": "Dun die Sigg met däm Klaaf övver heh de Sigg aanzeije",
-       "tooltip-ca-edit": "De kanns die Sigg heh ändere — für em Avspeichere, donn eetß ens enen Bleck op de Vör-Aansich",
+       "tooltip-ca-talk": "Donn di Sigg met däm Klaaf övver heh de Sigg aanzeije",
+       "tooltip-ca-edit": "De kanns di Sigg heh ändere — für em Avspeichere, donn eetß ens enen Bleck op de Vör-Aansich",
        "tooltip-ca-addsection": "Donn heh enne neue Afschnett opmaache.",
-       "tooltip-ca-viewsource": "Die Sigg es jeschötz. Dä Wikitex kam'mer ävver beloore.",
+       "tooltip-ca-viewsource": "Di Sigg es jeschöz. Dä Wikkitäx kam_mer ävver belohre.",
        "tooltip-ca-history": "Ällder Versione vun dä Sigg",
-       "tooltip-ca-protect": "Dun die Sigg schötze",
+       "tooltip-ca-protect": "Donn di Sigg schöze",
        "tooltip-ca-unprotect": "Donn dä Schoz vun dä Sigg heh verändere udder ophävve.",
-       "tooltip-ca-delete": "Dun die Sigg fottschmieße",
+       "tooltip-ca-delete": "Donn di Sigg fottschmiiße",
        "tooltip-ca-undelete": "Don de Änderunge widder zerök holle, di aan dä Sigg heh jemat woode wore, ih dat se fottjeschmesse wood",
-       "tooltip-ca-move": "Dun die Sigg ömbenenne",
-       "tooltip-ca-watch": "Dun die Sigg en Ding Oppassliss opnemme",
-       "tooltip-ca-unwatch": "Schmieß die Sigg us Dinge eije Oppassliss erus",
+       "tooltip-ca-move": "Donn di Sigg ömbenänne",
+       "tooltip-ca-watch": "Don di Sigg en Ding Oppaßleß opnämme",
+       "tooltip-ca-unwatch": "Schmihß di Sigg us Dinge eije Oppaßleß eruß",
        "tooltip-search": "{{ucfirst:{{GRAMMAR:en|{{SITENAME}}}}}} söke",
        "tooltip-search-go": "Jank noh dä Sigg med jenou dämm Name",
        "tooltip-search-fulltext": "Sök noh Sigge, wo dä Tex dren enthallde es",
        "tooltip-n-recentchanges": "En Leß met de neuste Änderunge heh aam Wiki.",
        "tooltip-n-randompage": "Dun en janz zofällije Sigg ußßem Wikki trecke un aanzeije",
        "tooltip-n-help": "Do kriss De jehollfe",
-       "tooltip-t-whatlinkshere": "En Liss met all de Sigge, die ene Link noh heh han",
-       "tooltip-t-recentchangeslinked": "De neuste Änderunge aan Sigge, wo vun heh dä Sigg uß Links drop jon",
+       "tooltip-t-whatlinkshere": "En Leß met all de Sigge, di_j_ene Link noh heh han",
+       "tooltip-t-recentchangeslinked": "De neuste Änderonge aan Sigge, wo vun heh dä Sigg uß Lengks drop jon",
        "tooltip-feed-rss": "Dä RSS-Abonnomang-Kannal (Feed) för heh di Sigg",
        "tooltip-feed-atom": "Dä Atom-Abonnomang-Kannal (Feed) för heh di Sigg",
-       "tooltip-t-contributions": "Donn en Leß met dä Bedrähsch vun däm Medmaacher belooere",
+       "tooltip-t-contributions": "Donn en Leß met dä Bedrähsch vun däm Metmaacher belooere",
        "tooltip-t-emailuser": "Scheck en E-Mail aan dä Metmaacher",
-       "tooltip-t-info": "Mieh Aanjahbe övver heh di Sigg",
+       "tooltip-t-info": "Mih Aanjahbe övver heh di Sigg",
        "tooltip-t-upload": "Dateie huhlade",
-       "tooltip-t-specialpages": "Liss met de {{int:nstab-special}}e",
-       "tooltip-t-print": "De Drock-Aansich för heh die Sigg",
-       "tooltip-t-permalink": "Ene iewich haltbare Lenk (Permalink) op jenou die Version vun heh dä Sigg, die de jrad süühß un am beloore bes",
+       "tooltip-t-specialpages": "L met de {{int:nstab-special}}e",
+       "tooltip-t-print": "De Drock-Aansich för heh di Sigg",
+       "tooltip-t-permalink": "Ene iewich haltbare Lenk (Permalengk) op jenou di Väsjohn vun heh dä Sigg, di de jrad süühß un aam belohre bes.",
        "tooltip-ca-nstab-main": "Don dä Enhallt vun dä Sigg aanzeije",
-       "tooltip-ca-nstab-user": "Dun die Metmaachersig aanzeije",
+       "tooltip-ca-nstab-user": "Donn di Metmaachersigg aanzeije",
        "tooltip-ca-nstab-media": "Don de Sigg övver en Mediendatei aanzeije",
        "tooltip-ca-nstab-special": "Dat is en {{int:nstab-special}}. Do kam'mer nix draan verändere.",
-       "tooltip-ca-nstab-project": "Dun die Projeksigg aanzeije",
+       "tooltip-ca-nstab-project": "Donn di Projäksigg aanzeije",
        "tooltip-ca-nstab-image": "Don di Sigg övver heh di Dattei aanzeije",
-       "tooltip-ca-nstab-mediawiki": "En Täx vum MediaWiki-System aanzeije",
-       "tooltip-ca-nstab-template": "Dun die Schabloon aanzeije",
+       "tooltip-ca-nstab-mediawiki": "En Täx vum MehdijaWikki-System aanzeije",
+       "tooltip-ca-nstab-template": "Donn di Schablohn aanzeije",
        "tooltip-ca-nstab-help": "Donn en Sigg met Hölp aanzeije",
-       "tooltip-ca-nstab-category": "Dun die Saachjrupp aanzeije",
-       "tooltip-minoredit": "Deit Ding Änderunge als klein Mini-Änderunge markeere.",
+       "tooltip-ca-nstab-category": "Dun de Saachjropp aanzeije",
+       "tooltip-minoredit": "Deit Ding Änderonge als klein Mini-Änderonge markkehre.",
        "tooltip-save": "Deit Ding Änderonge avspeichere.",
-       "tooltip-preview": "Liss de Vör-Aansich vun dä Sigg un vun Dinge Änderunge ih datte se Avspeichere deis!",
-       "tooltip-diff": "Zeich Ding Änderunge am Tex aan.",
+       "tooltip-preview": "Liss de Vör-Aanseesch vun dä Sigg un vun Dinge Änderonge, ih datte se avspeijschere deihs!",
+       "tooltip-diff": "Zeijsch Ding Änderonge aam Täx aan.",
        "tooltip-compareselectedversions": "Dun de Ungerscheid zwesche dä beids usjewählde Versione zeije.",
        "tooltip-watch": "Op di Sigg heh oppaßße.",
        "tooltip-watchlistedit-normal-submit": "Donn  de Titele met Hökche eruß schmieße.",
-       "tooltip-watchlistedit-raw-submit": "Oppassliss neu fasshallde",
+       "tooltip-watchlistedit-raw-submit": "Oppaßleß neu fasshallde",
        "tooltip-recreate": "En fottjeschmesse Sigg widder zeröckholle",
        "tooltip-upload": "Mem Dattei-Huhlaade loßlääje",
-       "tooltip-rollback": "Nemmp alle Änderonge zeröck, di dä Läzde jemaat hät, dä aan dä heh Sigg övverhoup jet jedonn hät. Deiht nimmieh frohre, un mähd automattesch ene Endraach onger „{{int:Summary}}“ en et Logbohch eren.",
+       "tooltip-rollback": "Nemmp alle Ännderonge zeröck, di dä Läzde jemaat hät, dä aan dä heh Sigg övverhoup jet jedonn hät. Deiht nimmih frohre, un mähd automattesch ene Endrahch onger „{{int:Summary}}“ en et Logbohch eren.",
        "tooltip-undo": "„{{UCfirst:{{int:editundo}}}}“ määt der förije Zostand\nfun dä Sigg op, zom Beärbeide un widder Afspeichere.\nEsu kam_mer noch en Aanmärkong en „{{int:summary}}“ maache.",
-       "tooltip-preferences-save": "Enstellunge faßhallde",
+       "tooltip-preferences-save": "Ennschtällonge faßhallde",
        "tooltip-summary": "Jif en koote Zesammefassung en",
        "interlanguage-link-title": "$1 ($2)",
        "common.css": "/* CSS heh aan dä Stell hät Uswirkunge op all Ovverflääsche */",
        "print.css": "/* CSS heh aan dä Stell wirrek nur op et Sigge Drökke */",
        "noscript.css": "/* Dat CSS heh aan dä Stell krijje nur de Metmaacher met affjeschaldt JavaSkrepp jescheck */",
-       "group-autoconfirmed.css": "/* Dat CSS heh aan dä Stell krijje nur de automattesch beshtääteshte Metmacher jescheck */",
+       "group-autoconfirmed.css": "/* Dat CSS heh aan dä Stell krijje nur de automattesch beschtähteschte Metmaacher jescheck */",
        "group-user.css": "/* Dat CSS heh aan dä Schtäll wirrek sesch nur op de enjeloggte Metmaacher uß */",
        "group-bot.css": "/* Dat CSS heh aan dä Stell krijje nur de Bot-Projrammee jescheck */",
        "group-sysop.css": "/* Dat CSS heh aan dä Stell krijje nur dem Wiki sing Köbeße jescheck */",
        "anonymous": "Namelose {{PLURAL:$1|Metmaacher|Metmaacher|Metmaacher}} vun {{GRAMMAR:Dat|{{SITENAME}}}}",
        "siteuser": "{{SITENAME}}-Metmaacher $1",
        "anonuser": "dä nameloose Metmaacher $1 {{GRAMMAR:Genitive vum|{{SITENAME}}}}",
-       "lastmodifiedatby": "Die Sigg heh wood et letz am $1 öm $2 Uhr vum $3 jeändert.",
+       "lastmodifiedatby": "Di Sigg heh wohd et läz aam $1 öm $2 Uhr vum $3 jeändert.",
        "othercontribs": "Bout op et Werk vun $1 op.",
        "others": "ander",
        "siteusers": "{{PLURAL:$2|däm|de|keine}} {{PLURAL:$2|Metmaacher|Metmaachere|Metmaacher}} $1 aan {{GRAMMAR:Dat|{{SITENAME}}}}",
        "anonusers": "{{PLURAL:$2|dä|de|keine}} nameloose Metmaacher $1 vun de translatewiki.net",
        "creditspage": "Övver de Metmaacher un dänne ehr Beidräsch för heh di Sigg",
-       "nocredits": "För die Sigg ha'mer nix en de Liss.",
+       "nocredits": "För di Sigg ham_mer nix en de Leß.",
        "spamprotectiontitle": "SPAM_Schotz",
-       "spamprotectiontext": "De Sigg, die de avspeichere wells, die weed vun unsem SPAM_Schotz nit durchjelooße. Dat kütt miehts vun enem Link op en fremde Sigg, di op de Schwazze Leß shteiht.",
+       "spamprotectiontext": "De Sigg, di de avschpeicchere wells, di weed vun onsem Projramm zom Schoz jähje 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> nit durchjelooße. Dat kütt mihts vun enem Link op en främde Sigg, di op de \n„Schwazze Leß“ schteiht.",
        "spamprotectionmatch": "Heh dä Tex hät dä SPAM_Schotz op der Plan jerofe: „<code>$1</code>“",
        "spambot_username": "SPAM fottschmieße",
-       "spam_reverting": "De letzte Version ohne de Links op „$1“ widder zerröckjehollt.",
-       "spam_blanking": "All die Versione hatte Links op „$1“, die sin jetz erus jemaht.",
+       "spam_reverting": "De läzde Väsjohn ohne de Lengks op „$1“ widder zerröckjehollt.",
+       "spam_blanking": "All di Väsjohne hatte Lengks op „$1“, di sin jäz erus jemaht.",
        "spam_deleting": "All di Versione met Lenks op „$1“ wääde fott jeschmeße",
        "simpleantispam-label": "Donn heh nix endraare!",
        "pageinfo-title": "Övver di Sigg: „$1“",
        "pageinfo-subpages-value": "$1 (dovun {{PLURAL:$2|ein Ömleidong|$2 Ömleidonge|kein Ömleidong}} un {{PLURAL:$3|ein nomahle Sigg|$3 nomahle Sigge|kein nomahle Sigg}})",
        "pageinfo-firstuser": "Aanjelaat vun",
        "pageinfo-firsttime": "Aanjelaat aam",
-       "pageinfo-lastuser": "Dä läzde Schriiver",
+       "pageinfo-lastuser": "Dä läzde Schrihver",
        "pageinfo-lasttime": "Et Dattom vun de läzde Änderong",
        "pageinfo-edits": "De Aanzahl Änderonge",
        "pageinfo-authors": "De Aanzahl ongerscheidleje Schriever",
        "pageinfo-recent-edits": "De Aanzahl Änderonge en dä läzde Zik, ennerhallf vun $1",
        "pageinfo-recent-authors": "De Aanzahl ongerscheidleje Schriever en dä läzde Zik",
        "pageinfo-magic-words": "{{PLURAL:$1|Ei Zauberwoot|$1 Zauberwööter|Kein Zauberwööter}}",
-       "pageinfo-hidden-categories": "{{PLURAL:$1|Ein verstoche Saachjropp|$1 verstoche Saachjroppe|Kein verstoche Saachjropp}}",
+       "pageinfo-hidden-categories": "{{PLURAL:$1|Ein verschtoche Saachjropp|$1 verschtoche Saachjroppe|Kein verschtoche Saachjropp}}",
        "pageinfo-templates": "{{PLURAL:$1|Ein Schablohn|$1 Schablohne|Kein Schablohn}} opjerohfe",
        "pageinfo-transclusions": "En {{PLURAL:$1|ein Sigk|$1 Sigge|kein Sigk}} enjeföösch",
        "pageinfo-toolboxlink": "Övver heh di Sigg",
        "pageinfo-category-subcats": "De Aanzahl Ongerjroppe",
        "pageinfo-category-files": "De Aanzahl Dateie",
        "markaspatrolleddiff": "Nohjeluurt. Dun dat fasshallde.",
-       "markaspatrolledtext": "De Änderung es nohjeluert, dun dat fasshallde",
+       "markaspatrolledtext": "De Änderong es nohjeluhrt, don dat faßhallde",
        "markedaspatrolled": "Et Kennzeiche „Nohjeluurt“ speichere",
        "markedaspatrolledtext": "Et es jetz fassjehallde, dat de usjewählte Version vun dä Sigg „[[:$1]]“ nohjeluurt sin.",
        "rcpatroldisabled": "Et Nohluure vun de letzte Änderunge es avjeschalt",
        "rcpatroldisabledtext": "Et Nohluure fun de letzte Änderunge es em Momang nit müjjelich.",
        "markedaspatrollederror": "Dat Kennzeiche „Nohjeluurt“ kunnt ich nit avspeichere.",
-       "markedaspatrollederrortext": "Do muss en bestemmte Version ussöke.",
+       "markedaspatrollederrortext": "Do moss en beschtemmpte Väsjohn ußsöhke.",
        "markedaspatrollederror-noautopatrol": "Do darrefs Ding eije Änderunge nit op „Nohjeloort“ setze!",
        "markedaspatrollednotify": "Di Änderong an $1 es jäz nohjekik.",
        "markedaspatrollederrornotify": "Dat di Sigg nohjekik es, kunnte mer nit faßhalde.",
-       "patrol-log-page": "Logboch vun de nohjeloorte Änderunge",
+       "patrol-log-page": "Logbohch vun de nohjelohrte Änderonge",
        "patrol-log-header": "<!-- -->",
        "log-show-hide-patrol": "$1 et Logbuch vum Sigge nohlooere",
-       "log-show-hide-tag": "Donn et Logbohch vun de Makehronge $1",
+       "log-show-hide-tag": "Donn et Logbohch vun de Makkehronge $1",
        "deletedrevision": "De ahl Version „$1“ es fottjeschmesse",
-       "filedeleteerror-short": "Fäähler bem Datei-Fottschmieße: $1",
-       "filedeleteerror-long": "Bem fosooch, de Datei fottzeschmieße, hatte mer Fäähler:\n\n$1",
+       "filedeleteerror-short": "Fähler bem Dattei-Fottschmiiße: $1",
+       "filedeleteerror-long": "Bem Fosooch, de Dattei fottzeschmihße, hatte mer Fähler:\n\n$1",
        "filedelete-missing": "De Datei „$1“ künne mer nit fottschmieße, Leevje, di jidd_et janit.",
        "filedelete-old-unregistered": "En Version „$1“ fun dä Datei ham_mer nit in de Datebank.",
-       "filedelete-current-unregistered": "De aanjejovve Datei „$1“ ham_mer nit in de Datebank.",
+       "filedelete-current-unregistered": "De aanjejovve Dattei „$1“ ham_mer nit in de Dahtebangk.",
        "filedelete-archive-read-only": "Unsere Webßöver kann udder darf nix en dat Aschif-Verzeichnis „$1“ eren schrieve.",
-       "previousdiff": "← De Änderung dovör zeije",
-       "nextdiff": "De Änderung donoh zeije →",
+       "previousdiff": "← De Änderong dovör zeije",
+       "nextdiff": "De Änderong donoh zeije →",
        "mediawarning": "<strong>Opjepass</strong>: En dä Datei künnt en <b>jefährlich Projrammstöck</b> dren stecke. Wa'mer et laufe looße dät, do künnt dä ẞööver, udder Dinge Rääschner, met för de <i lang=\"en\">Cracker</i> opjemaht wääde.",
        "imagemaxsize": "Belder nit jrößer maache wie:<br /> ''(op dä Sigge, wo se beschrevve wääde)''",
        "thumbsize": "Esu breid solle de klein Beldche (Thumbnails/Breefmarke) sin:",
        "widthheight": "$1&nbsp;×&nbsp;$2",
        "widthheightpage": "{{PLURAL:$1|Ei Pixel|$1 Pixelle}} breed × {{PLURAL:$2|Ei Pixel|$2 Pixelle}} huh, {{PLURAL:$3|eij Sigg|$3 Sigge|keij Sigge}}",
-       "file-info": "Dateiömfang: $1, MIME-Tüp: <code>$2</code>",
-       "file-info-size": "{{PLURAL:$1|Ei Pixel|$1 Pixelle}} breed × {{PLURAL:$2|Ei Pixel|$2 Pixelle}} huh, de Datei hät $3, dä MIME-Typ es: <code>$4</code>",
-       "file-info-size-pages": "{{PLURAL:$1|Ei Pixel|$1 Pixelle}} breed × {{PLURAL:$2|Ei Pixel|$2 Pixelle}} huh, Ömfang:&nbsp;$3, <i lang=\"en\">MIME</i> Zoot: $4, met {{PLURAL:$5|ein Sigg|$5 Sigge|kein Sigge}}",
+       "file-info": "Dateiömfang: $1, <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Zoot: <code>$2</code>",
+       "file-info-size": "{{PLURAL:$1|Ei Pixel|$1 Pixelle}} breed × {{PLURAL:$2|Ei Pixel|$2 Pixelle}} huh, de Datei hät $3, de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Zood es: <code>$4</code>",
+       "file-info-size-pages": "{{PLURAL:$1|Ei Pixel|$1 Pixelle}} breed × {{PLURAL:$2|Ei Pixel|$2 Pixelle}} huh, Ömfang:&nbsp;$3, <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Zoot: $4, met {{PLURAL:$5|ein Sigg|$5 Sigge|kein Sigge}}",
        "file-nohires": "Mer han kein hüütere Oplösung vun däm Beld.",
        "svg-long-desc": "SVG-Datei, de Basis es {{PLURAL:$1|ei Pixel|$1 Pixelle|kei Pixel}} breed × {{PLURAL:$2|ei Pixel|$2 Pixelle|kei Pixel}} huh, dä Dateiömfang es $3",
        "svg-long-desc-animated": "SVG-Datei met Bewääjong, de Basis es {{PLURAL:$1|ei Pixel|$1 Pixelle|kei Pixel}} breed × {{PLURAL:$2|ei Pixel|$2 Pixelle|kei Pixel}} huh, dä Dateiömfang es $3",
        "file-info-png-repeat": "weed {{PLURAL:$1|eijmohl|$1 Mohl|keimohl}} affjespellt",
        "file-info-png-frames": "{{PLURAL:$1|ei einzel Beld|$1 einzel Belder|kei einzel Beld}}",
        "file-no-thumb-animation": "'''Opjepaß: Mer han täschnesche Jränze, dröm sind Minibeldscher vun dä Dattei ohne Bewääjong.'''",
-       "file-no-thumb-animation-gif": "'''Opjepaß: Mer han täschnesche Jränze, dröm sind Minibeldscher vun GIF-Datteije met enhuhe Oplöösung, wie die heh, ohne Bewääjong.'''",
+       "file-no-thumb-animation-gif": "<strong>Opjepaß: Mer han täschnesche Jränze, dröm sin Minibeldscher vun <i xml:lang=\"en\" lang=\"en\" dir=\"ltr\" title=\"Graphics Interchange Format\">GIF</i>-Datteije met en huhe Oplöhsung, wi di heh, ohne Bewähjong.</strong>",
        "newimages": "Neu Dateie als Jaleri",
-       "imagelisttext": "Heh küt en Liss vun <strong>$1</strong> Datei{{PLURAL:$1||e}}, zoteet $2.",
-       "newimages-summary": "Heh die Sigg zeig die zoletz huhjeladene Belder un Dateie aan.",
+       "imagelisttext": "Heh küdd en Leß vun <strong>$1</strong> Datei{{PLURAL:$1||je}}, zoteet $2.",
+       "newimages-summary": "Heh di Sigg zeijsch de zoläz huhjeladene Belder un Dateije aan.",
        "newimages-legend": "Ußwähle",
        "newimages-label": "Dä Dattei ier Name udder e Stöck dofun:",
        "newimages-showbots": "Zeisch, wat de Bots huhjelaade han.",
        "saturday-at": "Läzde Samsdaach öm $1 Uhr",
        "sunday-at": "Läzde Sundaach öm $1 Uhr",
        "yesterday-at": "Jästere öm $1 Uhr",
-       "bad_image_list": "<strong>Fomat:</strong>\nNur Reije met ennem * am Aanfang don jet.\nTirek noh däm * moß ene Link op en Datei sin, die mer nit han welle.\nDonoh kumme, en däsellve Reih, Links op Sigge wo die Datei trotz dämm jenehm eß.",
+       "bad_image_list": "Dat Fommahd es:\n\nNur Reije met ennem * am Aanfang don jet.\nTirek noh däm * moß ene Lengk obb en Dattei sin, di mer nit han welle.\nDonoh kumme, en däsellve Reih, Lengks op Sigge woh di Datei trotz dämm jenehm eß.",
        "metadata": "Metadaate",
-       "metadata-help": "En dä Datei stich noh mieh an Daate dren. Dat sin Metadaate, die normal vum Opnahmejerät kumme. Wat en Kamera, ne Scanner, un esu, do fassjehallde han, dat kann ävver späder met enem Projramm bearbeidt un usjetuusch woode sin.",
-       "metadata-expand": "Mieh zeije",
+       "metadata-help": "En dä Datei stich noh mieh an Daate dren. Dat sin Metadaate, di normal vum Opnahmejerät kumme. Wat en Kamera, ne Scanner, un esu, do fassjehallde han, dat kann ävver späder met enem Projramm bearbeidt un usjetuusch woode sin.",
+       "metadata-expand": "Mih zeije",
        "metadata-collapse": "Daate Versteche",
        "metadata-fields": "Felder us de EXIF Metadate, di heh opjeföhrt sen, zeich et Wiki op Beldersigge aan, wan de Metadate kleinjeklick sin. Di andere weede esu lang verstoche. Dat Versteiche is och der Standat.\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": "Breejd",
        "exif-software": "De enjesatz ẞoffwär",
        "exif-artist": "Fotojraf odder Maacher",
        "exif-copyright": "Wä et Urhävverrääsch hät",
-       "exif-exifversion": "Exif-Version",
+       "exif-exifversion": "Exif-Väsjohn",
        "exif-flashpixversion": "De ongershtözte <i lang=\"en\">Flashpix</i>-Version",
        "exif-colorspace": "Färveroum",
        "exif-componentsconfiguration": "Bedüggening fun all de enkele Komponente",
        "exif-focallength-format": "$1&nbsp;mm",
        "exif-subjectarea": "Em Motiv singe Bereich",
        "exif-flashenergy": "Dem Bletz sing Ennäjii",
-       "exif-focalplanexresolution": "De Kammera ierem Sensor sing räächs-links-Oplösung",
+       "exif-focalplanexresolution": "De Kammera ierem Sensor sing räächs-lengks-Oplühsong",
        "exif-focalplaneyresolution": "De Kammera ierem Sensor sing bovve-unge-Oplösung",
        "exif-focalplaneresolutionunit": "De Oplösung fum Sensor ier Moß-Einheit",
        "exif-subjectlocation": "Dä Plaz fun dämm Motif",
        "exif-exposureindex": "Beleeschtungs-Index",
        "exif-sensingmethod": "De Metood, woh der Kammera ier Sensor met messe deit",
-       "exif-filesource": "Dä Datei ier Quell",
+       "exif-filesource": "Dä Dattei ier Quell",
        "exif-scenetype": "Dä Tüp för de Darstellung udder der Szenopbou",
        "exif-customrendered": "Däm Maacher sing eije Aat, et Beld ze beärrbeide",
        "exif-exposuremode": "Beleeschtungs-Aat",
        "exif-gpsimgdirectionref": "Der Bezoch för de Ußreschtong fum Beld nohm GPS",
        "exif-gpsimgdirection": "Ußreschtong fum Beld nohm GPS",
        "exif-gpsmapdatum": "Jeodätisches Beobachtongs-Dattum nohm GPS jebruch",
-       "exif-gpsdestlatituderef": "Bezoch för de Breed fum Ziel nohm GPS",
-       "exif-gpsdestlatitude": "De Breed fum Ziel nohm GPS",
-       "exif-gpsdestlongituderef": "Bezoch för de Läng fum Ziel nohm GPS",
-       "exif-gpsdestlongitude": "De Läng fum Ziel nohm GPS",
+       "exif-gpsdestlatituderef": "Bezoch för de Breede fum Zihl nohm <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Global Positioning System\">GPS</i>",
+       "exif-gpsdestlatitude": "De Brehde fum Zihl nohm <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Global Positioning System\">GPS</i>",
+       "exif-gpsdestlongituderef": "Bezoch för de Längde fum Zihl nohm <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Global Positioning System\">GPS</i>",
+       "exif-gpsdestlongitude": "De Längde fum Zihl nohm <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Global Positioning System\">GPS</i>",
        "exif-gpsdestbearingref": "Bezoch för de Reschtong fum Mottif nohm GPS",
        "exif-gpsdestbearing": "De Reschtong fum Mottif nohm GPS",
        "exif-gpsdestdistanceref": "Bezoch för de Entfernong fum Mottif nohm GPS",
        "exif-gpsdestdistance": "De Entfernong fum Mottif nohm GPS",
-       "exif-gpsprocessingmethod": "Dä Name fum GPS-Verfahre",
-       "exif-gpsareainformation": "Dä Name fum GPS-Jebeet",
+       "exif-gpsprocessingmethod": "Dä Nahme fum <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Global Positioning System\">GPS</i>-Verfahre",
+       "exif-gpsareainformation": "Dä Nahme fum <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Global Positioning System\">GPS</i>-Jebeet",
        "exif-gpsdatestamp": "GPS-Dattum",
        "exif-gpsdifferential": "De Differenzjahl-Bereschtijong fum GPS",
        "exif-jpegfilecomment": "Aanmärkong uss ene <i lang=\"en\">JPEG</i>-Dattei",
        "exif-writer": "Schriiver",
        "exif-languagecode": "Schprohch",
        "exif-iimversion": "Dem <i lang=\"en\">IIM</i> sing Version",
-       "exif-iimcategory": "Saachjrupp udder Zoot",
+       "exif-iimcategory": "Saachjropp udder Zoot",
        "exif-iimsupplementalcategory": "Extra Saachjroppe udder Zoote",
-       "exif-datetimeexpires": "Nit mieh verwende noh",
+       "exif-datetimeexpires": "Nit mih verwännde noh",
        "exif-datetimereleased": "Öffentlesch jemaat aam",
        "exif-originaltransmissionref": "Ojinaal Kood vun de Övvermeddelong",
        "exif-identifier": "Kännong",
        "exif-cameraownername": "Däm Knipskaste singe Besetzer",
        "exif-label": "Bezeishnong, Ätikätt, Singnatuur",
        "exif-datetimemetadata": "Et Dattum vun de läzde Änderong vun de Metta_Daate",
-       "exif-nickname": "Jeläufijje Name för dat Beld",
+       "exif-nickname": "Jeläufijje Nahme för dat Beld",
        "exif-rating": "Enschäzong (uß 5)",
        "exif-rightscertificate": "Zächtifikaat för de dijitaale Rääschdeverwalldong",
        "exif-copyrighted": "Zohshtand vum Urhävver singe Rääschde",
        "exif-contentwarning": "Warnong för em Enhallt",
        "exif-giffilecomment": "Aanmärkong uss ene <i lang=\"en\">GIF</i>-Dattei",
        "exif-intellectualgenre": "De Zoot vun Enhallt",
-       "exif-subjectnewscode": "Der Schlößel (Kood) för et Teema",
+       "exif-subjectnewscode": "Der Schlößel (Kohd) för et Tehma",
        "exif-scenecode": "Dä <i lang=\"en\">IPTC</i>-Kood för Zoot vun wat mer süht",
        "exif-event": "Der jezeishte Aanlaß",
        "exif-organisationinimage": "De jezeishte Ojanisazjuhn udder Ferma",
        "exif-photometricinterpretation-2": "RJB",
        "exif-photometricinterpretation-6": "<i lang=\"en\">YCbCr</i>",
        "exif-unknowndate": "Dattum onbikannt",
-       "exif-orientation-1": "Nommaal",
+       "exif-orientation-1": "Nommahl",
        "exif-orientation-2": "Op der Kopp jespeejelt",
        "exif-orientation-3": "Op der Kopp jedrieht",
-       "exif-orientation-4": "Links-Räähß jespeejelt",
-       "exif-orientation-5": "En Veedelsdriejong mem Uhrzeijer un dann links-räähß jespeejelt",
+       "exif-orientation-4": "Links-Räähß jespehjelt",
+       "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 links-räähß jespeejelt",
+       "exif-orientation-7": "En Veedelsdriejong jääje der Uhrzeijer un dann lengks-rähß jespehjelt",
        "exif-orientation-8": "En Veedelsdriejong jääje der Uhrzeijer",
        "exif-planarconfiguration-1": "Dat Fomaat es en Stöckscher",
        "exif-planarconfiguration-2": "Dat Fomaat es flaach",
        "exif-exposureprogram-0": "Nit faßjelaat",
        "exif-exposureprogram-1": "Vun Hand",
        "exif-exposureprogram-2": "Et Standat Projramm",
-       "exif-exposureprogram-3": "De Automatik noh Zick fun de Öffnung",
+       "exif-exposureprogram-3": "De Automattek noh Zig fun de Öffnong",
        "exif-exposureprogram-4": "De Automattik för der Blende-Verschloß",
        "exif-exposureprogram-5": "E kreativ Projramm, ußjerescht op en hue Schärfedeefe",
        "exif-exposureprogram-6": "E Akßions-Projramm, ußjerescht op en koote Zick för de Beleeschtung",
        "exif-exposuremode-2": "Beleeshtungsreih",
        "exif-whitebalance-0": "Automattesche Wiiß-Affjleich",
        "exif-whitebalance-1": "Wieß-Affjleisch fun Hand jemaat",
-       "exif-scenecapturetype-0": "Nomaal",
+       "exif-scenecapturetype-0": "Nommahl",
        "exif-scenecapturetype-1": "Queerfommaat",
        "exif-scenecapturetype-2": "Huhkant",
        "exif-scenecapturetype-3": "Et Naakß",
        "exif-gaincontrol-2": "Vill heller",
        "exif-gaincontrol-3": "E beßje dungkeler",
        "exif-gaincontrol-4": "Vill dungkeler",
-       "exif-contrast-0": "Nomal",
+       "exif-contrast-0": "Nommahl",
        "exif-contrast-1": "Weijsch",
        "exif-contrast-2": "Hatt",
-       "exif-saturation-0": "Nomal",
+       "exif-saturation-0": "Nommahl",
        "exif-saturation-1": "Winnisch Sättejung",
        "exif-saturation-2": "En hue Sättejung",
-       "exif-sharpness-0": "Nomal",
+       "exif-sharpness-0": "Nommahl",
        "exif-sharpness-1": "Nit esu scharf",
        "exif-sharpness-2": "Scharf",
        "exif-subjectdistancerange-0": "Onbikannt",
        "exif-iimcategory-spo": "Shpocht",
        "exif-iimcategory-war": "Kreesch, Zängk, Opshtänd",
        "exif-iimcategory-wea": "Wädder",
-       "exif-urgency-normal": "Nommaal ($1)",
+       "exif-urgency-normal": "Nommahl ($1)",
        "exif-urgency-low": "Klein ($1)",
        "exif-urgency-high": "Huh ($1)",
        "exif-urgency-other": "Selfs faßjelaat ($1)",
        "namespacesall": "all",
        "monthsall": "all",
        "confirmemail": "E-Mail Adress bestätije",
-       "confirmemail_noemail": "En [[Special:Preferences|Ding Enstellunge]] es kein öntlich E-Mail Adress.",
-       "confirmemail_text": "Ih datte en däm Wiki heh de E-Mail bruche kanns, muss De Ding E-Mail Adress bestätich han, dat se en Oodnung es un dat se och Ding eijene es. Klick op dä Knopp un Do kriss en E-Mail jescheck. Do steiht ene Link met enem Code dren. Wann De met Dingem Brauser op dä Link jeihs, dann deis De domet bestätije, dat et wirklich Ding E-Mail Adress es. Dat es nit allzo secher, alsu wör nix för Die Bankkonto oder bei de Sparkass, ävver et sorg doför, dat nit jede Peijaß met Dinger E-Mail oder Dingem Metmaachername eröm maache kann.",
+       "confirmemail_noemail": "En [[Special:Preferences|Ding Ennschtällonge]] es kein öhntlije Adräß för de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i>.",
+       "confirmemail_text": "Ih dat De en däm Wikki heh de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i> bruche kanns, muss De Ding <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i>-Adräß beschtähtesch han, dat se en Oodnung es un dat se och Ding eijene es. Klek op dä Knopp un Do kreß en <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i> jescheck. Do schteihd ene Lengk met enem Kohd dren. Wann De met Dingem Brauser op dä Lengk jeihs, dann deihß De domet beschtähteje, dat et wirklich Ding <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i>-Adräß es. Dat es nit allzo secher, alsu wör nix för Di Bankkonto udder bei de Schpaakaß, ävver et sorsch doför, dat nit jehde Peijaß met Dinger <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i> oder Dingem Metmaachername eröm maache kann.",
        "confirmemail_pending": "Do häs ald ene Kood för de Bestätijung med ene E-Mail zojeschek bekumme. Wann De Ding Aanmeldung eez jraad jemaat häs, dann donn noch ene Moment waade, ih dat De Der ene neue Kood hölls.",
        "confirmemail_send": "Scheck en E-Mail zem Bestätije",
        "confirmemail_sent": "En E-Mail, för Ding E-Mail Adress ze bestätije, es ungerwähs.",
        "confirmemail_success": "Ding E-Mail Adress es jetz bestätich.\nJetz künns De och noch enlogge. Vill Spass!",
        "confirmemail_loggedin": "Ding Addräß fö de <i lang=\"en\">e-mail</i> es jäz beschtäätesch!",
        "confirmemail_subject": "Dun Ding e-mail Adress för {{GRAMMAR:Akkusativ|{{SITENAME}}}} bestäteje.",
-       "confirmemail_body": "Künnt jod sin, Do wors et selver, vun de IP_Adress $1 hät sich\njedenfalls einer jemeldt, un well dä Metmaacher \"$2\" {{GRAMMAR:vun|{{SITENAME}}}}\nsin, un hät en E-Mail Adress aanjejovve.\n\nÖm jetz klor ze krije, dat die E-Mail Adress un dä neue Metmaacher och\nzosamme jehüre, muss dä Neue en singem Brauser dä Link:\n\n$3\n\nopmaache. Noch för em $6 öm $7 Uhr. Alsu dun dat, wann de et selver bes.\n\nWann nit Do, sondern söns wä Ding E-Mail Adress aanjejovve hät, do bruchs de\njar nix ze don. De E-Mail Adress kann nit jebruch wääde, ih dat se nit\nbestätich es. Do kanns ävver och op he dä Link jon:\n\n$5\n\nDomet deiß De tirek sare, dat De di Adress nit bestätije wells.",
-       "confirmemail_body_changed": "Künnt jod sin, Do wors et selver. Vun de IP_Adress $1 hät sich\njedenfalls einer jemeldt, un well dä Metmaacher \"$2\" op {{GRAMMAR:Akk bet|{{SITENAME}}}}\nsin, un hät en neu Adress för sing e-mail aanjejovve.\n\nÖm jetz klor ze krije, dat die neu Adress un dä Metmaacher och\nzosamme jehüre, un öm de e-mail op {{GRAMMAR:Akk bet|{{SITENAME}}}}\nwidder aanzschallde, moss dä Metmaacher en singem Brauser dä Link:\n\n$3\n\nopmaache. Noch för em $6 öm $7 Uhr. Alsu dun dat, wann de et selver bes.\n\nWann nit Do, sondern söns wä Ding E-Mail Adress aanjejovve hät, bruchs\nDe jar nix ze don. Di Adress weed nit jebruch, wann se nit bestätich es.\nDo kanns ävver och op heh dä Link jon:\n\n$5\n\nDomet deiß De tirek sare, dat De di Adress nit bestätije wells.",
+       "confirmemail_body": "Künnt jod sin, Do wors et selver, vun de IP_Adress $1 hät sich\njedenfalls einer jemeldt, un well dä Metmaacher \"$2\" {{GRAMMAR:vun|{{SITENAME}}}}\nsin, un hät en E-Mail Adress aanjejovve.\n\nÖm jetz klor ze krije, dat di e-mail Adräß un dä neue Metmaacher och\nzosamme jehüre, muss dä Neue en singem Brauser dä Link:\n\n$3\n\nopmaache. Noch för em $6 öm $7 Uhr. Alsu dun dat, wann de et selver bes.\n\nWann nit Do, sondern söns wä Ding e-mail Adräß aanjejovve hät, do bruchs de\njar nix ze don. De e-mail Adräß kann nit jebruch wääde, ih dat se nit\nbestätich es. Do kanns ävver och op he dä Lengk jon:\n\n$5\n\nDomet deiß De tirek sare, dat De di Adräß nit bestätije wells.",
+       "confirmemail_body_changed": "Künnt jod sin, Do wors et selver. Vun de IP_Adräß $1 hät sich\njedenfalls einer jemeldt, un well dä Metmaacher \"$2\" op {{GRAMMAR:Akk bet|{{SITENAME}}}}\nsin, un hät en neu Adress för sing e-mail aanjejovve.\n\nÖm jetz klor ze krije, dat di neu Adräß un dä Metmaacher och\nzosamme jehüre, un öm de e-mail op {{GRAMMAR:Akk bet|{{SITENAME}}}}\nwidder aanzschallde, moss dä Metmaacher en singem Brauser dä Lengk:\n\n$3\n\nopmaache. Noch för em $6 öm $7 Uhr. Alsu dun dat, wann de et selver bes.\n\nWann nit Do, sondern söns wä Ding E-Mail Adress aanjejovve hät, bruchs\nDe jar nix ze don. Di Adräß weed nit jebruch, wann se nit bestätich es.\nDo kanns ävver och op heh dä Link jon:\n\n$5\n\nDomet deiß De tirek sare, dat De di Adress nit bestätije wells.",
        "confirmemail_body_set": "Künnt jod sin, Do wors et selver. Vun dä IP_Adress $1 hät op\njede Fall einer för dä Metmaacher \"$2\" op {{GRAMMAR:Akk bet|{{SITENAME}}}}\nheh di Adräß för däm sing e-mail aanjejovve.\n\nÖm jäz kloh ze krije, dat di neu Adräß un dä Metmaacher och\nzosamme jehüre, un öm de e-mail op {{GRAMMAR:Akk bet|{{SITENAME}}}}\naanzschallde, moß dä Metmaacher en singem Brauser dä Lengk:\n\n$3\n\nopmaache. Noch för em $6 öm $7 Uhr. Alsu dun dat, wann dat sing\nReeschteschkeit hät.\n\nWann nit Do, sondern söns wä Ding Addräß för de e-Mail aanjejovve hät, bruchs\nDe jar nix ze don. Di Adräß weed nit jebruch, wann se nit bestätesch es.\nDo kanns ävver och op heh dä Link jon:\n\n$5\n\nDomet deiß De tirek sare, dat De di Adräß nit bestäteje wells.",
-       "confirmemail_invalidated": "Et Bestätijje för die E-Mail-Adress es afjebroche woode, un die Adress is '''nit''' bestätich.",
+       "confirmemail_invalidated": "Et Beschtähtejje för di <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i>-Adräß es afjebroche wohde, un di Adräß es '''nit''' beschtähtesch.",
        "invalidateemail": "E-Mail-Adress nit bestätich",
        "scarytranscludedisabled": "[Et Enbinge per Interwiki es avjeschalt]",
-       "scarytranscludefailed": "[De Schablon „$1“ enzebenge hät nit jeflupp]",
-       "scarytranscludefailed-httpstatus": "[De Schablon „$1“ enzebenge hät nit jeflupp. Dä HTTP-Fähler es: $2]",
+       "scarytranscludefailed": "[De Schablohn „$1“ enzebenge hät nit jeflupp]",
+       "scarytranscludefailed-httpstatus": "[De Schablohn „$1“ enzebenge hät nit jeflupp. Dä HTTP-Fähler es: $2]",
        "scarytranscludetoolong": "[Schad, de URL es ze lang]",
-       "deletedwhileediting": "<strong>Opjepass:</strong> De Sigg wood fottjeschmesse, nohdäm Do ald aanjefange häs, dran ze Ändere.\nEm <span class=\"plainlinks\">[{{fullurl:Special:Log|type=delete&page=}}{{FULLPAGENAMEE}} Logboch vum Sigge-Fottschmieße]</span> künnt der Jrund shtonn.\nWann De de Sigg avspeichere deis, weed se widder aanjelaat.",
-       "confirmrecreate": "Dä Metmaacher [[User:$1|$1]] ([[User talk:$1|Klaaf]]) hät die Sigg fottjeschmesse, nohdäm Do do dran et Ändere aanjefange häs. Dä Jrund:\n: „<i>$2</i>“\nWells Do jetz met en neu Version die Sigg widder neu aanläje?",
+       "deletedwhileediting": "<strong>Opjepaß:</strong> De Sigg wood fottjeschmeße, nohdäm Do ald aanjefange häs, draan ze Ändere.\nEm <span class=\"plainlinks\">[{{fullurl:Special:Log|type=delete&page=}}{{FULLPAGENAMEE}} Logbohch vum Sigge-Fottschmiiße]</span> künnt der Jrond schtonn.\nWann De de Sigg avschpeischere deis, weed se widder aanjelaat.",
+       "confirmrecreate": "Dä Metmaacher [[User:$1|$1]] ([[User talk:$1|Klaaf]]) hät di Sigg fottjeschmeße, nohdäm Do do dran et Ändere aanjefange häs. Dä Jrond:\n: „<i>$2</i>“\nWells Do jetz met en neu Väsjohn di Sigg widder neu aanläje?",
        "confirmrecreate-noreason": "Dä [[User:$1|$1]] ([[User talk:$1|Klaaf]]) hät heh di Sigg fottjeschmeße, nohdämm Do aanjefange häs, draan ze ändere. Bes esu jood un donn beshtääteje, dat De di Sigg widder neu aanjelaat han wells.",
        "recreate": "Widder neu aanlääje",
        "unit-pixel": "px",
        "confirm_purge_button": "Jo — loss jonn!",
-       "confirm-purge-top": "Dä Zweschespeicher för die Sigg fottschmieße?",
+       "confirm-purge-top": "Dä Zweschespeijscher för di Sigg fottschmiiße?",
        "confirm-purge-bottom": "Dä Zweschespeicher för de Sigg fottzeschmieße sorresch doför, dat af dann de neuste Version vun dä Sigg (de Version vun jetz) aanjezeich weet.",
        "confirm-watch-button": "Lohß Jonn!",
-       "confirm-watch-top": "Sulle mer di Sigg en Ding Oppaßleß opnemme?",
+       "confirm-watch-top": "Sulle mer di Sigg en Ding Oppaßleß opnämme?",
        "confirm-unwatch-button": "Lohß Jonn!",
        "confirm-unwatch-top": "Sulle mer di Sigg uß Dinger Oppaßleß erußnämme?",
        "semicolon-separator": ";",
        "bitrate-yottabits": "$1&nbsp;Ybps",
        "lag-warn-normal": "Änderonge uß de läzde {{PLURAL:$1|Sekond|$1 Sekuode|knappe Sekond}} sin en dä Leß wall noch nit opjenomme.",
        "lag-warn-high": "Dä Datebankßööver hät jrad vill ze donn.\nÄnderonge uß de läzde {{PLURAL:$1|Sekond|$1 Sekonde|knappe Sekond}} sin dröm en dä Leß heh wall noch nit opjenomme.",
-       "watchlistedit-normal-title": "Oppassliss beärbeijde",
-       "watchlistedit-normal-legend": "Titell uß de Oppassliss eruß lohße",
+       "watchlistedit-normal-title": "Oppaßleß beärbeijde",
+       "watchlistedit-normal-legend": "Övverschreffte uß de Oppaßleß eruß lohße",
        "watchlistedit-normal-explain": "Dat sin de Endräsch en Dinge Oppaßleß.\nÖm einzel Titelle loßß ze wääde, don Hökche en de Kässjer nevve inne maache, un dann deuß De dä Knopp „{{int:watchlistedit-normal-submit}}“.\nDo kanns Ding Oppassleß och [[Special:EditWatchlist/raw|en rüh beärbeide]].",
        "watchlistedit-normal-submit": "Jangk de Titele met Hökche eruß schmieße",
        "watchlistedit-normal-done": "{{PLURAL:$1|Eine Sigge-Tittel es|<strong>$1</strong> Sigge-Tittele sin|Keine Sigge-Tittel es}} us Dinge Opassliss erus jefloore:",
-       "watchlistedit-raw-title": "Rüh Oppassliss beärbeide",
-       "watchlistedit-raw-legend": "Rüh Oppassliss beärbeide",
-       "watchlistedit-raw-explain": "Dat sin de Endrähsch in Dinge Oppaßles en rüh.\nÖm einzel Titelle loßß ze wääde, kanns de de Reije met inne eruß schmieße, ov läddich maache.\nÖm neu Titelle  dobei ze don, schriev neu Reije dobei. Jede Titel moss en en Reih för sijj_allein shtonn.\nWanns De fädig bes, dann deuß De dä Knopp „{{int:Watchlistedit-raw-submit}}“.\nNatörlesch kanns De di Les och — met Dingem Brauser singe ''<span lang=\"en\">Copy&amp;Paste</span>''-Funkßjohn — komplett kopeere odder ußtuusche.\nDe könnts Ding Oppassliss ävver och [[Special:EditWatchlist|övver e Fomulaa met Kässjer un Hökscher beärbeide]].",
+       "watchlistedit-raw-title": "Rüh Oppaßleß beärbeide",
+       "watchlistedit-raw-legend": "Rüh Oppaßleß beärbeide",
+       "watchlistedit-raw-explain": "Dat sin de Endrähsch in Dinge Oppaßles en rüh.\nÖm einzel Titelle loßß ze wähde, kanns de de Reije met inne eruß schmieße, ov läddich maache.\nÖm neu Titelle  dobei ze don, schriev neu Reije dobei. Jede Titel moss en en Reih för sijj_allein shtonn.\nWanns De fädig bes, dann deuß De dä Knopp „{{int:Watchlistedit-raw-submit}}“.\nNatörlesch kanns De di Les och — met Dingem Brauser singe ''<span lang=\"en\">Copy&amp;Paste</span>''-Funkßjohn — komplett kopeere odder ußtuusche.\nDe könnts Ding Oppaßless ävver och [[Special:EditWatchlist|övver e Fomulaa met Kässjer un Hökscher beärbeide]].",
        "watchlistedit-raw-titles": "Endrähsch:",
-       "watchlistedit-raw-submit": "Oppassliss neu fasshallde",
-       "watchlistedit-raw-done": "Ding Oppassliss es fassjehallde.",
+       "watchlistedit-raw-submit": "Oppaßleß neu faßhallde",
+       "watchlistedit-raw-done": "Ding Oppaßßleß es fassjehallde.",
        "watchlistedit-raw-added": "{{PLURAL:$1|Eine Sigge-Tittel wood|<strong>$1</strong> Sigge-Tittele woodte|Keine Sigge-Tittel}} dobeijedonn:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|Eine Endrach es eruß jefloore:|<strong>$1</strong> Endräsh es eruß jefloore:|Keine Endrach es eruß jefloore.}}",
        "watchlistedit-clear-title": "Oppaßleß läddesch jemaad",
        "watchlistedit-clear-removed": "{{PLURAL:$1|Eine Siggetettel wood|$1 Siggetettele sin}} eruß jenumme:",
        "watchlistedit-too-many": "Et sen zoh vell Sigge för heh aanzezeije.",
        "watchlisttools-clear": "Maach de Oppaßleß läddesch",
-       "watchlisttools-view": "Oppaßliß — Änderunge zeije",
+       "watchlisttools-view": "Oppaßliß — Änderonge zeije",
        "watchlisttools-edit": "beloore un beärbede",
        "watchlisttools-raw": "rüh beärbeijde | expochteere | empochteere",
        "hebrew-calendar-m1": "Tishrei",
        "timezone-utc": "<i lang=\"en\">UTC</i>",
        "duplicate-defaultsort": "'''Opjepaß:'''\nDä Shtanndat-Zoot-Schlößel „$1“ övverschriif dä älldere Zoot-Schlößel „$2“.",
        "duplicate-displaytitle": "<strong>opjepaß:</strong> Dä Nahme „$2“ övverschriev dä fröjere Nahme „$1“ för zem Aanzeije.",
-       "invalid-indicator-name": "<strong>Fähler:</strong> De Eijeschaff <code xml:lang=\"en\" lang=\"en\">name</code> vun däm Kännzeijsche för der Zohschtand för die Sigg darf nit läddesch sin.",
+       "invalid-indicator-name": "<strong>Fähler:</strong> De Eijeschaff <code xml:lang=\"en\" lang=\"en\">name</code> vun däm Kännzeijsche för der Zohschtand för di Sigg darf nit läddesch sin.",
        "version": "Väsjohn vun de Wiki Soffwär zeije",
        "version-extensions": "Installeete Erjänzunge un Zohsätz",
        "version-skins": "De enschtallehrte Bedeenbovverflääsche",
        "version-hooks": "Schnettstelle oder Hooke",
        "version-parser-extensiontags": "Erjänzunge zom Parser",
        "version-parser-function-hooks": "Parserfunktione",
-       "version-hook-name": "De Schnettstelle ier Name",
+       "version-hook-name": "De Schnettstelle ier Nahme",
        "version-hook-subscribedby": "Opjeroofe vun",
        "version-version": "(Väsjohn $1)",
        "version-no-ext-name": "[keine Nahme]",
        "version-ext-colheader-version": "Väsjohn",
        "version-ext-colheader-license": "Lėzänz",
        "version-ext-colheader-description": "Beschrevve",
-       "version-ext-colheader-credits": "Schriiver",
+       "version-ext-colheader-credits": "Schrihver",
        "version-license-title": "‎Lėzänz för $1",
        "version-license-not-found": "Mer han kein Lezänzenfommazjuhne för heh dat Zohsazprojramm jefonge.",
        "version-credits-title": "Dank för dat Projramm „$1“",
        "version-credits-not-found": "Schahd, mer han kein Aanjaabe drövver, wämm mer heh för ze danke hätte.",
-       "version-poweredby-credits": "Dat Wiki heh löp met '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001–$1 $2.",
+       "version-poweredby-credits": "Dat Wiki heh löp met <strong>[https://www.mediawiki.org/ MediaWiki]</strong>, copyright © 2001–$1 $2.",
        "version-poweredby-others": "sönß wää",
        "version-poweredby-translators": "de Övversäzer em translatewiki.net",
-       "version-credits-summary": "Mer bedanke ons för iehr Beidrähsch zom [[Special:Version|MediaWiki]] bei:",
+       "version-credits-summary": "Mer bedanke ons för dänne iehr Beidrähsch zom [[Special:Version|MehdijaWikki]] bei:",
        "version-license-info": "MediaWiki es e frei Projramm. Mer kann et unmolesteet wigger verdeile, un mer kann et verändere, wi mer löstich es, wam_mer sesch dobei aan de <i lang=\"en\">GNU General Public License</i> (jenerälle öffentlesche Lizänz noh GNU) hallde deiht, wi se vun der <i lang=\"en\">Free Software Foundation</i> (Steftung för frei Soffwäer) veröffentlesch woode es. Dobei kam_mer sesch ußsöhke of mer sesch aan de Version 2 dovun hallde deiht, udder öhnz en späädere Fassung.\n\nMediaWiki weed verdeilt met dä Hoffnung, dat et för jet jood es, ävver <span style=\"text-transform:uppercase\">der ohne jeede Jarantie</span>, un esujaa ohne ene unjesaate Jedangke, et künnt <span style=\"text-transform:uppercase\">ze verkoufe</span> sin udder <span style=\"text-transform:uppercase;\">för öhndsene bestemmpte Zweck ze jebruche</span>. Loor Der de jenannte Lizänz aan, wann De mieh Einzelheite weße wells.\n\nDo sullts en [{{SERVER}}{{SCRIPTPATH}}/COPYING Kopie vun dä <i lang=\"en\">GNU General Public License</i>] zosamme met däm Projramm krääje han, un wann nit, schrief aan de: <i lang=\"en\">Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA </i> udder [//www.gnu.org/licenses/old-licenses/gpl-2.0.html liß se em Internet noh].",
        "version-software": "Installeete Soffwäer",
        "version-software-product": "Produk",
        "redirect-not-exists": "Nit jefonge",
        "fileduplicatesearch": "Sök noh dubbelte Dateie",
        "fileduplicatesearch-summary": "Söhhk noh dubbelte Dateie övver dänne iere Häsh-Zahl.",
-       "fileduplicatesearch-legend": "Sök noh ene dubbelte Datei",
-       "fileduplicatesearch-filename": "Dateiname:",
+       "fileduplicatesearch-legend": "Sök noh ene dubbelte Dattei",
+       "fileduplicatesearch-filename": "Datteinahme:",
        "fileduplicatesearch-submit": "Söhke",
-       "fileduplicatesearch-info": "{{PLURAL:$1|Ei Pixel|$1 Pixelle|Nit}} breed × {{PLURAL:$2|Ei Pixel|$2 Pixelle|nix}} huh<br />Dateiömfang: $3<br />MIME-Tüp: <code>$4</code>",
+       "fileduplicatesearch-info": "{{PLURAL:$1|Ei Pixel|$1 Pixelle|Nit}} breed × {{PLURAL:$2|Ei Pixel|$2 Pixelle|nix}} huh<br />Dateiömfang: $3<br />de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Zoot: <code>$4</code>",
        "fileduplicatesearch-result-1": "Mer han kein akoraat dubbelte Dateie för „$1“ jefonge.",
        "fileduplicatesearch-result-n": "Vun dä Datei „$1“ ham'mer '''{{PLURAL:$2|ein|$2|kein}}''' dubbelte mem selve Enhalt jefonge.",
        "fileduplicatesearch-noresults": "Mer han kein Dattei met däm Name „$1“ jefonge.",
        "specialpages-group-maintenance": "Waadungsleste",
        "specialpages-group-other": "Ander {{int:nstab-special}}e",
        "specialpages-group-login": "Enlogge udder Aanmälde",
-       "specialpages-group-changes": "Letzte Änderunge un Logböcher",
+       "specialpages-group-changes": "Läzde Änderonge un Logböhscher",
        "specialpages-group-media": "Dateie — Huhlaade un Opliste",
        "specialpages-group-users": "Metmaacher un denne ier Rääschte",
        "specialpages-group-highuse": "Öff jebruch…",
        "specialpages-group-pages": "Siggeliste",
        "specialpages-group-pagetools": "Werrekzüch för Sigge",
        "specialpages-group-wiki": "Werrekzüch un Daate vum Syßteem",
-       "specialpages-group-redirects": "{{int:nstab-special}}e, die ömleide, söhke, un fenge",
+       "specialpages-group-redirects": "{{int:nstab-special}}e, di ömleide, söhke, un fenge",
        "specialpages-group-spam": "Werrekzüch jäje SPÄM",
        "specialpages-group-developer": "Werkzüch fö Entwecklere",
        "blankpage": "Vakat-Sigg",
        "intentionallyblankpage": "Op dä Sigg es med Afseesh nix drop.",
        "external_image_whitelist": "# Donn aan dä Reih heh nix ändere<pre>\n# Onge künne Brochstöke fun rejolähre Ußdrök aanjejovve wäde,\n# alsu dä Deil zwesche / und /\n# Noh em Verjliische met däm URL vun ene Datei fun ußerhallef:\n# Treffer: De Datei weed jezeich odder enjebonge.\n# Söns: ene Link weed aanjezeich.\n# Wam_mer et nit ömschtällt, es Jruß- un Kleinschrevv_ejaal.\n# Reije met # am Aanfang, sen bloß Kommenta\n# Donn de Brochstöck heh noh endrare, un di Reihe bes hee nit ändere</pre>",
-       "tags": "De jöltijje Makeerunge för Änderunge",
-       "tag-filter": "[[Special:Tags|Makehronge]] ußsöhke:",
+       "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)",
        "tags-title": "Makeeronge",
-       "tags-intro": "Heh sin alle de Makeerunge opjeliß, die et Wiki för Änderunge verjevve kann, un wat se bedügge.",
-       "tags-tag": "Dä Makeerung iere Name",
-       "tags-display-header": "Kennzeiche en de Leßte met Änderunge",
+       "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",
+       "tags-display-header": "Kennzeische en de Leßte met Änderonge",
        "tags-description-header": "Bedüggtening",
        "tags-source-header": "Quäll",
        "tags-active-header": "Aktiiv?",
-       "tags-hitcount-header": "Makeete Änderunge",
+       "tags-hitcount-header": "Makkehte Änderonge",
        "tags-actions-header": "Akßjuhne",
        "tags-active-yes": "Joh",
        "tags-active-no": "Näh",
        "tags-create-warnings-below": "Wells De wigger maache un dat Kännzeijsche aanlähje?",
        "tags-delete-title": "Kännzeijsche fottschmiiße",
        "tags-delete-explanation-initial": "Do bes om bäßte Wähsch, et Kännzeijsche „$1“ us de Dahtebangk ze wärfe.",
-       "tags-delete-explanation-in-use": "Et weed vun {{PLURAL:$2|eine Väsjohn udder einem Enndrahch|alle $2 Väsjohn udder Endrähsch|keine Väsjohn udder keinem Endrahsch}} em Logbohch fott jenumme, woh dat em Momang noch dren es.",
+       "tags-delete-explanation-in-use": "Et weed vun {{PLURAL:$2|eine Väsjohn udder einem Enndrahch|alle $2 Väsjohne udder Endrähsch|keine Väsjohn udder keinem Endrahsch}} em Logbohch fott jenumme, woh di em Momang noch dren es.",
        "tags-delete-explanation-warning": "Dat kam_mer <strong>nit retuur</strong> maache.\nOch wä tiräk en de Dahtebangk met alle Rääschte werreke darf, kann dat nit. Alsu bes sescher, dat dat Kännzeijsche es, wat De fottschmiiße wells.",
        "tags-delete-explanation-active": "<strong>Dat Kännzeijsche „$1“ es noch aanjeschalldt un weed wigger jebruch wähde.</strong> Öm dat ze verhendere, jangk aan dä Plaz udder all de Pläz, woh dat noch aanjeschalldt es, un donn et doh affschallde.",
        "tags-delete-reason": "Jrond:",
        "tags-deactivate-not-allowed": "Ed es nit müjjelesch, et Kännzeijsche „$1“ afzeschallde.",
        "tags-deactivate-submit": "Ußschallde",
        "tags-apply-no-permission": "Do häs nit et Rääsch, zersamme met Dinge Änderonge noch Makehronge ze verjävve.",
-       "tags-apply-not-allowed-one": "De Makehrong „$1“ kam_mer nit vun Hand verjävve.",
-       "tags-apply-not-allowed-multi": "Heh {{PLURAL:$2|de Makehrong|di Makehronge|die kein Makehronge}} kam_mer nit vun Hand verjävve: $1",
+       "tags-apply-not-allowed-one": "De Makkehrong „$1“ kam_mer nit vun Hand verjävve.",
+       "tags-apply-not-allowed-multi": "Heh {{PLURAL:$2|de Makkehrong|di Makkehronge|di kein Makkehronge}} kam_mer nit vun Hand verjävve: $1",
        "tags-update-no-permission": "Do häs nit et Rääsch, Makehronge vun einzel Väsjohne udder Enndrähsch en Logbohch fottzenämme udder zohzeföhje.",
-       "tags-update-add-not-allowed-one": "De Makehrong „$1“ kam_mer nit vun Hand verjävve.",
-       "tags-update-add-not-allowed-multi": "Heh {{PLURAL:$2|de Makehrong|di Makehronge|die kein Makehronge}} kam_mer nit vun Hand verjävve: $1",
-       "tags-update-remove-not-allowed-one": "De Makehronge „$1“ kam_mer nit fott nämme.",
-       "tags-update-remove-not-allowed-multi": "Heh {{PLURAL:$2|de Makehrong|di Makehronge|die kein Makehronge}} kam_mer nit vun Hand fott nämme: $1",
-       "tags-edit-title": "Makehronge ändere",
-       "tags-edit-manage-link": "makehronge verwallde",
+       "tags-update-add-not-allowed-one": "De Makkehrong „$1“ kam_mer nit vun Hand verjävve.",
+       "tags-update-add-not-allowed-multi": "Heh {{PLURAL:$2|de Makkehrong|di Makkehronge|di kein Makkehronge}} kam_mer nit vun Hand verjävve: $1",
+       "tags-update-remove-not-allowed-one": "De Makkehronge „$1“ kam_mer nit fott nämme.",
+       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|Heh de Makkehrong|Heh di Makkehronge|Kein Makkehronge}} kam_mer nit vun Hand fott nämme: $1",
+       "tags-edit-title": "Makkehronge ändere",
+       "tags-edit-manage-link": "Makkehronge verwallde",
        "tags-edit-revision-selected": "Ußjesöhk {{PLURAL:$1|Väsjohn|Väsjohne|Nix}} vun [[:$2]]:",
        "tags-edit-logentry-selected": "{{PLURAL:$1|Der ußjewählte Vörfall|De ußjewählte Vörfäll|kein ußjewählte Vörfäll}} uss em Logbohch:",
        "tags-edit-revision-legend": "Donn Makkehronge för heh di {{PLURAL:$1|Väsjohn|Väsjohne|kein Väsjohne}} verjävve udder wälsche fott nämme",
        "tags-edit-logentry-legend": "Donn Makkehronge för {{PLURAL:$1|heh dä Enndraach|heh di Enndrähsch|keine Enndraach}} em Logbohch verjävve udder fott nämme",
-       "tags-edit-existing-tags": "Makehronge, di mer han:",
+       "tags-edit-existing-tags": "Makkehronge, di mer han:",
        "tags-edit-existing-tags-none": "<tt>-&nbsp;nix&nbsp;-</tt>",
-       "tags-edit-new-tags": "Neuje Makehronge:",
-       "tags-edit-add": "Donn heh di Makehronge derbei:",
-       "tags-edit-remove": "Donn heh di Makehronge fottnämme:",
-       "tags-edit-remove-all-tags": "Alle Makehronge fottnämme",
-       "tags-edit-chosen-placeholder": "Donn heh Makehronge aanjävve",
-       "tags-edit-chosen-no-results": "Mer han kein zerpaß Makehronge jefonge",
+       "tags-edit-new-tags": "Neuje Makkehronge:",
+       "tags-edit-add": "Donn heh di Makkehronge derbei:",
+       "tags-edit-remove": "Donn heh di Makkehronge fottnämme:",
+       "tags-edit-remove-all-tags": "Alle Makkehronge fottnämme",
+       "tags-edit-chosen-placeholder": "Donn heh Makkehronge aanjävve",
+       "tags-edit-chosen-no-results": "Mer han kein zerpaß Makkehronge jefonge",
        "tags-edit-reason": "Jrond:",
        "tags-edit-revision-submit": "Maach Änderongea an heh dä {{PLURAL:$1|Väsjohn|Väsjohne|kein Väsjohne}}",
        "tags-edit-logentry-submit": "Maach Änderongea an {{PLURAL:$1|heh däm Enndraach|heh dä Enndrähsch|keine Enndrähch}} em Logbohch",
        "tags-edit-failure": "De jewollte Änderonge lehße sesch nit maache:\n$1",
        "tags-edit-nooldid-title": "Onjöltijje Väsjohn för et Zihl",
        "tags-edit-nooldid-text": "De Väsjohn derför wohd nit aanjejovve udder et jit se nit.",
-       "tags-edit-none-selected": "Söhk winneschßdens ein Makehrong uß för derbei ze donn udder fott ze nämme.",
+       "tags-edit-none-selected": "Söhk winneschßdens ein Makkehrong uß för derbei ze donn udder fott ze nämme.",
        "comparepages": "Sigge verjliesche",
        "compare-page1": "De ein Sigg",
        "compare-page2": "De ander Sigg",
        "compare-rev1": "de ein Version",
-       "compare-rev2": "de ander Version",
+       "compare-rev2": "de ander Väsjohn",
        "compare-submit": "Verjlieshe!",
        "compare-invalid-title": "Dä aanjejovve Tettel es nit jöltesch",
        "compare-title-not-exists": "De aanjejovve Sigg jidd_et nit.",
        "compare-revision-not-exists": "Dä aanjejovve Version jidd_et jaa nit.",
-       "dberr-problems": "Deit uns leid, die Sigg heh häd för der Momang e teschnisch Problem.",
-       "dberr-again": "Versök eijfach en e paa Menutte, norr_ens die Sigg afzeroofe.",
+       "dberr-problems": "Deijt ons leijd, di ẞait heh häd för der Momang e täschnesch Problehm.",
+       "dberr-again": "Versöhk eijfach en e paa Menotte, norr_ens di Sigg afzerohfe.",
        "dberr-info": "(Mer han kein Verbendong noh_m Dahtebangk-ẞööver krijje künne för: $1)",
        "dberr-info-hidden": "(Mer han kein Verbendong noh_m Dahtebangk-ẞööver krijje künne)",
        "dberr-usegoogle": "De künnß zweschedorsch ad met <i lang=\"en\">Google</i> söke.",
        "dberr-outofdate": "Müjjelesch, dat dat Verzeichnes vun uns Sigge do nit janß om neuste Shtannd es.",
-       "dberr-cachederror": "Wat heh noh kütt es en Kopi vum Zwescheshpeisher vun dä Sigg,\ndie De häs han welle. Se künnt jet ällder un nit mieh aktoäll sin.",
+       "dberr-cachederror": "Wat heh noh kütt es en Kopih vum Zwescheschpeischer vun dä Sigg,\ndi De häs han welle. Se künnt jädd ällder un nit mih aktoäll sin.",
        "htmlform-invalid-input": "Mer han e Problem met jet wat De enjejovve häß",
        "htmlform-select-badoption": "Dinge aanjejovve Wäät es kein müjjelesche Ußwahl.",
        "htmlform-int-invalid": "Dinge aanjejovve Wäät eß kein janze Zahl.",
        "htmlform-int-toohigh": "Dinge aanjejovve Wäät litt övver dämm hühßte, wat jeiht, un dat es $1.",
        "htmlform-required": "Heh dä Wäät es nüüdesch",
        "htmlform-submit": "Lohß Jonn!",
-       "htmlform-reset": "Änderunge retuur nämme",
+       "htmlform-reset": "Änderonge retuhr nämme",
        "htmlform-selectorother-other": "Annder",
        "htmlform-no": "Nää",
        "htmlform-yes": "Joh",
        "htmlform-chosen-placeholder": "Söhk jäd_uß",
-       "htmlform-cloner-create": "Mieh derbei donn",
+       "htmlform-cloner-create": "Mih derbei donn",
        "htmlform-cloner-delete": "Fottnämme",
        "htmlform-cloner-required": "Winnischsdens eine Wääd es nühdesch.",
        "sqlite-has-fts": "Version $1 (un kann en janze Täxte söhke)",
        "logentry-suppress-revision": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät heimlesch för {{PLURAL:$5|ein Version|$5 Versione|kein Version}} vun dä Sigg „$3“ $4.",
        "logentry-suppress-event-legacy": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät de Seeschbakeit vun Enndrääje en dä Logbööscher op dä Sigg „$3“ heimlesch verändert.",
        "logentry-suppress-revision-legacy": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät de Seeschbakeit vun älldere Väsjohne vun dä Sigg „$3“ heimlesch verändert.",
-       "revdelete-content-hid": "der Enhalt verstoche",
+       "revdelete-content-hid": "der Ennhalt verschtoche",
        "revdelete-summary-hid": "dat Fäld „{{int:summary}}“ vershtoche",
-       "revdelete-uname-hid": "der Name vum Metmaacher verstoche",
+       "revdelete-uname-hid": "der Nahme vum Metmaacher verschtoche",
        "revdelete-content-unhid": "der Enhalt öffentlesh jemaat",
        "revdelete-summary-unhid": "dat Fäld „{{int:summary}}“ öffentlesh jemaat",
        "revdelete-uname-unhid": "der Name vum Metmaacher öffentlesh jemaat",
        "logentry-managetags-delete": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät dat Kännzeijsche „$4“ fottjeschmeße un derbei uß {{PLURAL:$5|eine Väsjohn udder einem Enndraach|$5 Väsjohne udder $5 Enndrähsch|keine Väsjohn udder keinem Enndraach}} vum Logbohch eruß jenumme.",
        "logentry-managetags-activate": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät dat Kännzeijsche „$4“ aanjeschalldt för de Metmaacher un de Bots.",
        "logentry-managetags-deactivate": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät dat Kännzeijsche „$4“ för de Metmaacher un de Bots afjeschalldt.",
-       "log-name-tag": "Et Logbohch vun de Makehronge",
+       "log-name-tag": "Et Logbohch vun de Makkehronge",
        "log-description-tag": "Heh di Sigg zeijsch aan, wann Metmaacher ußdröklesch [[Special:Tags|Makehronge]] vun einzel Väsjohne udder Enndrähsch em Logbohch fott jenumme hann udder wälsche verjovve han. Mer süht heh ävver nit, wat zersamme met ene Änderong aan ener Sigg, beim Fottschmiiße, udder esu, met Matkkehronge pasehrd es.",
-       "logentry-tag-update-add-revision": "{{GENDER:$2|dä|dat|dä Metmaacher|de|dat}} „$1“ hät {{PLURAL:$7|di Makehrong|di Makehronge|nix}} $6 för de Väsjohn $4 vun dä Sigg „$3“ verjovve.",
-       "logentry-tag-update-add-logentry": "{{GENDER:$2|dä|dat|dä Metmaacher|de|dat}} „$1“ hät {{PLURAL:$7|di Makehrong|di Makehronge|nix}} $6 för der Enndrahch $5 em Logbohch vun dä Sigg „$3“ verjovve.",
-       "logentry-tag-update-remove-revision": "{{GENDER:$2|dä|dat|dä Metmaacher|de|dat}} „$1“ hät {{PLURAL:$9|di Makehrong|di Makehronge|nix}} $8 fun däVäsjohn $4 vun dä Sigg „$3“ fott jenumme.",
-       "logentry-tag-update-remove-logentry": "{{GENDER:$2|dä|dat|dä Metmaacher|de|dat}} „$1“ hät {{PLURAL:$9|di Makehrong|di Makehronge|nix}} $8 ussem Endraaach $5 em Logbohch vun dä Sigg „$3“ fott jenumme.",
-       "logentry-tag-update-revision": "{{GENDER:$2|dä|dat|dä Metmaacher|de|dat}} „$1“ hät {{PLURAL:$7|di Makehrong|di Makehronge|nix}} $6 för de Väsjohn $4 em Logbohch vun dä Sigg „$3“ verjovve un {{PLURAL:$9|di Makehrong|de Makehronge|nix}} $8 fott jenumme.",
-       "logentry-tag-update-logentry": "{{GENDER:$2|dä|dat|dä Metmaacher|de|dat}} „$1“ hädd em Endraaach $5 em Logbohch vun dä Sigg „$3“{{PLURAL:$7|di Makehrong|di Makehronge|nix}} $6 derbei jedonn un {{PLURAL:$9|di Makehrong|di Makehronge|nix}} $8 fott jenumme.",
+       "logentry-tag-update-add-revision": "{{GENDER:$2|dä|dat|dä Metmaacher|de|dat}} „$1“ hät {{PLURAL:$7|di Makkehrong|di Makkehronge|nix}} $6 för de Väsjohn $4 vun dä Sigg „$3“ verjovve.",
+       "logentry-tag-update-add-logentry": "{{GENDER:$2|dä|dat|dä Metmaacher|de|dat}} „$1“ hät {{PLURAL:$7|di Makkehrong|di Makkehronge|nix}} $6 för der Enndrahch $5 em Logbohch vun dä Sigg „$3“ verjovve.",
+       "logentry-tag-update-remove-revision": "{{GENDER:$2|dä|dat|dä Metmaacher|de|dat}} „$1“ hät {{PLURAL:$9|di Makkehrong|di Makkehronge|nix}} $8 fun däVäsjohn $4 vun dä Sigg „$3“ fott jenumme.",
+       "logentry-tag-update-remove-logentry": "{{GENDER:$2|dä|dat|dä Metmaacher|de|dat}} „$1“ hät {{PLURAL:$9|di Makkehrong|di Makkehronge|nix}} $8 ussem Endraaach $5 em Logbohch vun dä Sigg „$3“ fott jenumme.",
+       "logentry-tag-update-revision": "{{GENDER:$2|dä|dat|dä Metmaacher|de|dat}} „$1“ hät {{PLURAL:$7|di Makkehrong|di Makkehronge|nix}} $6 för de Väsjohn $4 em Logbohch vun dä Sigg „$3“ verjovve un {{PLURAL:$9|di Makkehrong|de Makkehronge|nix}} $8 fott jenumme.",
+       "logentry-tag-update-logentry": "{{GENDER:$2|dä|dat|dä Metmaacher|de|dat}} „$1“ hädd em Endraaach $5 em Logbohch vun dä Sigg „$3“{{PLURAL:$7|di Makkehrong|di Makkehronge|nix}} $6 derbei jedonn un {{PLURAL:$9|di Makkehrong|di Makehronge|nix}} $8 fott jenumme.",
        "rightsnone": "(nix)",
        "revdelete-summary": "dä Täx en „{{int:summary}}“",
        "feedback-adding": "Ben di Röckmäldong op di Sigg aam donn&nbsp;…",
        "feedback-back": "Retuur",
        "feedback-bugcheck": "Joot. Donn op jeede Vall nohlooer, dat dat bes jäz noch nit [$1 bikannt wohr].",
        "feedback-bugnew": "Hann esch nohjelooert. Esch jävven ene neue Fähler enn.",
-       "feedback-bugornote": "Wann de em Bejreff bes, övver e täschesch Probleem ze schrieve, bes esu jood un donn dat als en [$1 Fählermäldong].\nSöns, nemm dat koote Fommulaa heh dronger.\nWat De doh enjiß, kütt met Dingem Metmaachername un Dingem Brauser op die Sigg „[$3 $2]“ drop.",
+       "feedback-bugornote": "Wann de em Bejreff bes, övver e täschnesch Problehm ze schrieve, bes esu jood un donn dat als en [$1 Fählermäldong].\nSöns, nemm dat koote Fommulaa heh dronger.\nWat De doh ennjiß, kütt met Dingem Metmaachername un Dingem Brauser op di Sigg „[$3 $2]“ drop.",
        "feedback-cancel": "Stopp! Avbreche!",
        "feedback-close": "Jedonn.",
        "feedback-external-bug-report-button": "Donne ene Fähler mällde, ene Wonsch för en Verbäßerong ennreische, udder anndere täschneche Idee opbränge.",
        "feedback-submit": "Lohß jonn!",
        "feedback-terms": "Minge Brauser un sing Enschtällong un mi Bedriefssüßtehm und dänne iehr Väsohne wääde met minge Röckmäldong zersamme öffentlesch jemaat.",
        "feedback-termsofuse": "Esch donn ming Röckmäldong onger de Bedengonge för der Jebruch maache.",
-       "feedback-thanks": "Joot. Dinge Beidraach kütt op die Sigg \"[$2 $1]\".",
+       "feedback-thanks": "Joht. Dinge Beidraach küdd op di Sigg \"[$2 $1]\".",
        "feedback-thanks-title": "Ene schöne Dangk och!",
        "feedback-useragent": "Dä Brauser:",
        "searchsuggest-search": "Söhke",
        "api-error-duplicate": "Mer han em Wiki ald {{PLURAL:$1|[$2 en Dattei]|[$2 $1 andere Datteije]|[$2 kein Dattei]}} mem akeraat sellve Enhalldt.",
        "api-error-duplicate-archive": "Mer hatte {{PLURAL:$1|[$2 en ander Dattei]|[$2 ander Datteije]|[$2 kein ander Dattei]}} heh em Wiki mem sellve Enhalt, ävver se {{PLURAL:$1|es|sen|es}} ald fottjeschmeße woode.",
        "api-error-duplicate-archive-popup-title": "Ald fottjeschmeße {{PLURAL:$1|es de dubbelte Datei:|sen de dubbelte Dateije:|es kein dubbelte Datteije woode.}}",
-       "api-error-duplicate-popup-title": "Di {{PLURAL:$1|Datei es|Dateie sen|Datei es}} ald doh!",
+       "api-error-duplicate-popup-title": "Di {{PLURAL:$1|Dattei es|Datteie sen|Dattei es}} ald doh.",
        "api-error-empty-file": "En dä huhjelaade Dattei wohr jaa_nix dren.",
        "api-error-emptypage": "Neu läddijje Sigge aanzelääje es verbodde.",
        "api-error-fetchfileerror": "Fähler: Beim eronger Laade hät jät nit jeflupp.",
        "api-error-filename-tooshort": "Der Name för di Dattei es ze koot.",
        "api-error-filetype-banned": "Di Zoot Dattei es nit zohjelohße.",
        "api-error-filetype-banned-type": "{{PLURAL:$4|Dat Dateifommaat|De Dateifommaate|}} $1 wulle mer nit huhjelaade krijje. Älaup {{PLURAL:$3|es|sin_er|}}: $2",
-       "api-error-filetype-missing": "Dä Dattei iehre Naame hät kein Endong.",
-       "api-error-hookaborted": "Ding Änderung wood vun enem Zohsazprojramm nit zohjelohße.",
+       "api-error-filetype-missing": "Dä Dattei iehre Nahme hät kein Ändong.",
+       "api-error-hookaborted": "Ding Änderong wood vun enem Zohsazprojramm nit zohjelohße.",
        "api-error-http": "Fähler: Mer krijje kein Verbendung mem ẞööver.",
        "api-error-illegal-filename": "Der Name för di Dattei es verbodde.",
        "api-error-internal-error": "Fähler: Noh em Huhlaade en et Wiki es em Wiki jät scheif jeloufe.",
        "api-error-overwrite": "En Dattei ze övverschrieve es nit zohjelohße.",
        "api-error-stashfailed": "Fähler: Dä ẞööver hät kein Datteije zweschejeschpeischert.",
        "api-error-publishfailed": "Ene Fähler es em ẞööver opjetrodde. En zweschejescheischerte Dattei kunnt nit öffentlesch jemaat wääde.",
-       "api-error-stasherror": "Ene Fähler es opjetrodde, wi mer di Dattei en der <i lang=\"en\" xml:lang=\"en\">stash</i> huh aam lahde wohre.",
-       "api-error-stashedfilenotfound": "Di Dattei wohd em <i lang=\"en\" xml:lang=\"en\">stash</i> nit jefonge, wi mer se vun doh huh lahde wullte.",
-       "api-error-stashpathinvalid": "Di Dattei wohd em <i lang=\"en\" xml:lang=\"en\">stash</i> nit jefonge, weil dä Pad do hen nit jeschtemmp hät.",
-       "api-error-stashfilestorage": "Ene Fähler es opjetrodd, wi mer di Dattei en der <i lang=\"en\" xml:lang=\"en\">stash</i> donn wullte.",
-       "api-error-stashzerolength": "Dä ẞööver kunnt di Dattei nit en der <i lang=\"en\" xml:lang=\"en\">stash</i> donn, weil en dä Dattei nix dren schtund.",
-       "api-error-stashnotloggedin": "Do moß enjelogg sin, öm en Dattei en der <i lang=\"en\" xml:lang=\"en\">stash</i> huh ze lahde.",
-       "api-error-stashwrongowner": "Di Dattei em <i lang=\"en\" xml:lang=\"en\">stash</i> woh De draan wells, jehürt Der nit.",
-       "api-error-stashnosuchfilekey": "Di Dattei em <i lang=\"en\" xml:lang=\"en\">stash</i> woh De draan wells, jidd_et nit.",
+       "api-error-stasherror": "Ene Fähler es opjetrodde, wi mer di Dattei en der \"stash\" huh aam lahde wohre.",
+       "api-error-stashedfilenotfound": "Di Dattei wohd em \"stash\" nit jefonge, wi mer se vun doh huh lahde wullte.",
+       "api-error-stashpathinvalid": "Di Dattei wohd em \"stash\" nit jefonge, weil dä Pad do hen nit jeschtemmp hät.",
+       "api-error-stashfilestorage": "Ene Fähler es opjetrodd, wi mer di Dattei en der \"stash\" donn wullte.",
+       "api-error-stashzerolength": "Dä ẞööver kunnt di Dattei nit en der \"stash\" donn, weil en dä Dattei nix dren schtund.",
+       "api-error-stashnotloggedin": "Do moß enjelogg sin, öm en Dattei en der \"stash\" huh ze lahde.",
+       "api-error-stashwrongowner": "Di Dattei em \"stash\" woh De draan wells, jehürt Der nit.",
+       "api-error-stashnosuchfilekey": "Di Dattei em \"stash\" woh De draan wells, jidd_et nit.",
        "api-error-timeout": "Dä ẞööver hät en dä jewennde Zick nit jeantwoot.",
        "api-error-unclassified": "Ene Fähler es opjetrodde, der mer nit kenne.",
        "api-error-unknown-code": "Nit bekannte Fähler: „$1“",
        "api-error-unknown-warning": "En onbikannte Warnong: $1",
        "api-error-unknownerror": "Ene onbikannte Fähler: „$1“",
        "api-error-uploaddisabled": "Et Huhlaade es en heh däm Wiki nit zohjelohße.",
-       "api-error-verification-error": "Di Dattei künnt kappott sin, udder en verkehte Endong em Naame han.",
+       "api-error-verification-error": "Di Dattei künnt kappott sin, udder en verkehte Endong em Nahme han.",
        "duration-seconds": "{{PLURAL:$1|ein&nbsp;Sekond|$1&nbsp;Sekonde|kein&nbsp;Sekond}}",
        "duration-minutes": "{{PLURAL:$1|ein&nbsp;Menot|$1&nbsp;Menotte|kein&nbsp;Menot}}",
        "duration-hours": "{{PLURAL:$1|en&nbsp;Schtond|$1&nbsp;Schtonde|kein&nbsp;Schtond}}",
        "limitreport-expansiondepth-value": "$1 vun $2",
        "limitreport-expensivefunctioncount": "Oproofe vun „düüre“ Fonxjuhne em Paaser",
        "limitreport-expensivefunctioncount-value": "$1 vun $2",
-       "expandtemplates": "Schablone üvverpröfe",
-       "expand_templates_intro": "Heh di Extrasigg nemmp Täx aan un lühß alle Oproofe vun <code lang=\"en\"><nowiki>{{</nowiki>&nbsp;…&nbsp;}}</code> Klammere op.\nOch verschaachtelte.\nDerbei jehüüere enschtalleete Paaserfunxjuhne, alsu esu jät wi\n<code lang=\"en\"><nowiki>{{</nowiki>#language:…}}</code>, udder Varijaable, dat es esu jät wi\n<code lang=\"en\"><nowiki>{{</nowiki>CURRENTDAY}}</code>.",
+       "expandtemplates": "Schablohne övverpröhfe",
+       "expand_templates_intro": "Heh di {{int:specialpage}} nemmp Täx aan un lühß alle Oproofe vun <code lang=\"en\"><nowiki>{{</nowiki>&nbsp;…&nbsp;}}</code> Klammere op.\nOch verschaachtelte.\nDerbei jehüüere enschtallehrte Paaserfunxjuhne, alsu esu jät wi\n<code lang=\"en\"><nowiki>{{</nowiki>#language:…}}</code>, udder Varijaable, dat es esu jät wi\n<code lang=\"en\"><nowiki>{{</nowiki>CURRENTDAY}}</code>.",
        "expand_templates_title": "Dä Siggetitel, also wat för {{FULLPAGENAME}} uew. enjeföllt weed:",
        "expand_templates_input": "Wat De üvverpröfe wells:",
        "expand_templates_output": "Wat erus kütt es",
        "log-description-pagelang": "Dat heh es et Logbohch vun de Veränderonge aan de Schprohch vun de Sigge.",
        "logentry-pagelang-pagelang": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät de Schprohch vun dä Sigg „$3“ vun $4 op $5 verändert.",
        "default-skin-not-found": "De schtandattmähßejje Bedehnbovverfläsch <code>$1</code> för et Wikki es nit ze fenge. Se weed övver dä Enndrahch <code lang=\"en\" xml:lang=\"en\">$wgDefaultSkin</code> en dä Dattei <code lang=\"en\" xml:lang=\"en\">LocalSettings.php</code> om ẞööver faßjelaat.\n\n{{PLURAL:$4|Heh di Bedehnbovverfläsch es|Heh di Bedehnbovverfläsche sin|Kein Bedehnbovverfläsche sin}} doh:\n\n$2\n\nLohr och en et [https://www.mediawiki.org/wiki/Manual:Skin_configuration/de Handbohch övver et Enschtälle vun Bedehnbovverfläsche].\n\n*'''Falls dat heh e fresch enjereesch MehdijaWikki es:'''\n*: MehdijaWikki wood velleisch övver <i lang=\"en\" xml:lang=\"en\">Git</i> enschtallehrt, udder der Quälltäx wood tiräk obb_en ander Manier enschtallehrt. Met däm Problehm heh wohr ze rääschne. Donn winneschßdens eine vun dä Bovverfläsche uss_em [https://www.mediawiki.org/wiki/Category:All_skins Verzeischneß vun de Bedehnbovverfläsche vum MehdijaWikki] enschtallehre. Dat jeihd, endämm dat De:\n*:* einzel veröffentleschte Bovverfläsche us [https://www.mediawiki.org/wiki/Special:SkinDistributor MediaWiki.org] erongerlähds un en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun dä MehdijaWikki_Enschtallazuhn holls,\n*:* winneschsdens eins vun dä Verzeischneße us <code lang=\"en\" xml:lang=\"en\">mediawiki/skins/*</code> met <i lang=\"en\" xml:lang=\"en\">Git</i> en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun Dinge MehdijaWikki_Enschtallazuhn holls,\n*:* de [https://www.mediawiki.org/wiki/Download Dattei vum MehdijaWikki] erongerlähds, woh ongerscheidlejje Bedehnbovverfläsche dren sin un Zohsäz derzoh. Uß däm Verzeischneß doh dren kam_mer Saache en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun dä MehdijaWikki_Enschtallazuhn holle.\n*: Dat sullt sesch nit met Dingem <i lang=\"en\" xml:lang=\"en\">git</i>-Verzeischneß schtühre, falls De och ene Äntweckler vum MehdijaWikki bes.\n*'''Falls dat MehdijaWikki heh jrahd obb ene neue Schtand jebraht wood:'''\n*: Bei MehdijaWikki en dä Väsjohn 1.24 un hüüter wääde de enschtallehrte Bedehnbovverfläsche nit mieh automattesch alle aanjemaat; süsch och em [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Handbohch] dernoh. Do kanns heh di {{PLURAL:$5|Reih|Reihje|kein Reihje}} en de Dattei <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">LocalSettings.php</code> eren koppehre, öm {{PLURAL:$5|di enschtallehrte Bedehnbovverfläsch|alle enschtallehrte Bedehnbovverfläsche|kein Bedehnbovverfläsch}} aanzeschallde:\n<pre lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$3</pre>\n* '''Falls de jrahd aan dä Dattei <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">LocalSettings.php</code> jät geändert häs:'''\n*: Donn de Nahme vun de Bedehnbovverfläsche en dä Dattei pröhve. Se künnte verhehrt jeschrevve sin.",
-       "default-skin-not-found-no-skins": "De schtandattmähßejje Bedehnbovverfläsch <code>$1</code> för et Wikki es nit ze fenge. Se weed övver dä Enndraach <code lang=\"en\" xml:lang=\"en\">$wgDefaultSkin</code> en dä Dattei <code lang=\"en\" xml:lang=\"en\">LocalSettings.php</code> om ẞööver faßjelaat.\n\nEt sinn_er kein Bedehnbovverfläsche doh.\n\n*'''Falls dat heh e fresch enjereesch MehdijaWikki, es udder jrahd obb ene neue Schtand jebraht wood:'''\n*: MehdijaWikki wood velleisch övver <i lang=\"en\" xml:lang=\"en\">Git</i> enschtallehrt, udder der Quälltäx wood tiräk obb_en ander Manier enschtallehrt. Met däm Problehm heh wohr ze rääschne. Bei MehdijaWikki en dä Väsjohn 1.24 un hüüter sin kein Bedehnbovverfläsche mieh automattesch derbei. Donn winneschßdens eine vun dä Bovverfläsche uss_em [https://www.mediawiki.org/wiki/Category:All_skins Verzeischneß vun de Bedehnbovverfläsche] enschtallehre. Dat jeihd, endämm dat De:\n*:* winneschsdens eins vun dä Verzeischneße us <code lang=\"en\" xml:lang=\"en\">mediawiki/skins/*</code> met <i lang=\"en\" xml:lang=\"en\">Git</i> en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun Dinge MehdijaWikki_Enschtallazuhn holls,\n*:* einzel veröffentleschte Bovverfläsche us [https://www.mediawiki.org/wiki/Special:SkinDistributor MediaWiki.org] erongerlähds un en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun Dinge MehdijaWikki_Enschtallazuhn holls,\n*:* de [https://www.mediawiki.org/wiki/Download Dattei vum MehdijaWikki] erongerlähds, woh ongerscheidlejje Bedehnbovverfläsche dren sin un Zohsäz derzoh. Uß däm Verzeischneß doh dren kam_mer Saache en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun Dinge vun dä MehdijaWikki_Enschtallazuhn holle.\n*: Dat sullt sesch nit met Dingem <i lang=\"en\" xml:lang=\"en\">Git</i>-Verzeischneß schtühre, falls De och ene Äntweckler vum MehdijaWikki bes. Lohr em [https://www.mediawiki.org/wiki/Manual:Skin_configuration Handbohch] dernoh, wi mer Bedehnbovverfläsche aanmääd un ene Schtandatt faßlähsch.",
+       "default-skin-not-found-no-skins": "De schtandattmähßejje Bedehnbovverfläsch <code>$1</code> för et Wikki es nit ze fenge. Se weed övver dä Enndraach <code lang=\"en\" xml:lang=\"en\">$wgDefaultSkin</code> en dä Dattei <code lang=\"en\" xml:lang=\"en\">LocalSettings.php</code> om ẞööver faßjelaat.\n\nEt sinn_er kein Bedehnbovverfläsche doh.\n\n*'''Falls dat heh e fresch enjereesch MehdijaWikki, es udder jrahd obb ene neue Schtand jebraht wood:'''\n*: MehdijaWikki wood velleisch övver <i lang=\"en\" xml:lang=\"en\">Git</i> enschtallehrt, udder der Quälltäx wood tiräk obb_en ander Manier enschtallehrt. Met däm Problehm heh wohr ze rääschne. Bei MehdijaWikki en dä Väsjohn 1.24 un hüüter sin kein Bedehnbovverfläsche mieh automattesch derbei. Donn winneschßdens eine vun dä Bovverfläsche uss_em [https://www.mediawiki.org/wiki/Category:All_skins Verzeischneß vun de Bedehnbovverfläsche] enschtallehre. Dat jeihd, endämm dat De:\n*:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins <i lang=\"en\" xml:lang=\"en\">Git</i> nemms, öm de Bedehnbovverfläsche eronger ze lahde].\n*:* einzel veröffentleschte Bovverfläsche us [https://www.mediawiki.org/wiki/Special:SkinDistributor MediaWiki.org] erongerlähds un en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun Dinge MehdijaWikki_Enschtallazuhn holls,\n*:* de [https://www.mediawiki.org/wiki/Download Dattei vum MehdijaWikki] erongerlähds, woh ongerscheidlejje Bedehnbovverfläsche dren sin un Zohsäz derzoh. Uß däm Verzeischneß doh dren kam_mer Saache en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun Dinge vun dä MehdijaWikki_Enschtallazuhn holle.\n*: Dat sullt sesch nit met Dingem <i lang=\"en\" xml:lang=\"en\">Git</i>-Verzeischneß schtühre, falls De och ene Äntweckler vum MehdijaWikki bes. Lohr em [https://www.mediawiki.org/wiki/Manual:Skin_configuration Handbohch] dernoh, wi mer Bedehnbovverfläsche aanmääd un ene Schtandatt faßlähsch.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (enjeschalldt)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''ußjeschalldt''')",
        "mediastatistics": "Schtateßteke övver de Meedije",
        "mediastatistics-summary": "Schtatißteke övver de huhjelahde Zoote Datteije. Von de Datteije weed bloß de jeweils neuste Väsjohn jezallt. Fottjeschmeße un övverhollte Datteije wähde nit metjezallt.",
        "mediastatistics-nfiles": "$1 ($2%)",
        "mediastatistics-nbytes": "{{PLURAL:$1|Ei Byte|$1 Bytes|Nix}} ($2; $3%)",
-       "mediastatistics-table-mimetype": "<i lang=\"en\" xml:lang=\"en\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Tüpp",
+       "mediastatistics-table-mimetype": "<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Zoot",
        "mediastatistics-table-extensions": "Müjjelesche Datteizoote",
        "mediastatistics-table-count": "De Aanzahl Dateije",
        "mediastatistics-table-totalbytes": "Ömvang",
        "json-error-utf8": "Kapodde Zeijsche em <i lang=\"en\" lang=\"en\" xml:lang=\"en\" title=\"Universal Character Set Transformation Format-8-bit\">UTF-8</i>-Fommaat. Künnt ene Fähler mem Kodehre sin.",
        "json-error-recursion": "En däm Wäät zem Kodehre sinn_er rekursihve Bezösch dren.",
        "json-error-inf-or-nan": "Et sinn_er Wääte <i lang=\"en\" lang=\"en\" xml:lang=\"en\" title=\"Not a Number – Kein Zahl\">NAN</i> ov <i lang=\"en\" lang=\"en\" xml:lang=\"en\" title=\"Infinity – övver alle Mohße jruhß\">INF</i> en däm Wäät zem Kodehre dren.",
-       "json-error-unsupported-type": "Et wodd ene Wäät aanjejovve vun ene Zoot, di nit ze Kodehre jeiht.",
+       "json-error-unsupported-type": "Et wood ene Wäät aanjejovve vun ene Zoot, di nit ze Kodehre jeiht.",
        "headline-anchor-title": "Lengk op heh dä Afschnett",
        "special-characters-group-latin": "Lateinesch",
        "special-characters-group-latinextended": "Lateinesch met Extras",
index 132fb77..8270157 100644 (file)
@@ -38,9 +38,9 @@
        "tog-enotifwatchlistpages": "Heke rûpel an dosyeyek ez dişopînim were guhertin ji min re e-nameyekê bişîne",
        "tog-enotifusertalkpages": "Dema rûpela min a Gotûbêjê hate guhertin e-nameyekê ji min re bişîne",
        "tog-enotifminoredits": "Ji bo guhertinên biçûk jî E-nameyekê ji min re bişîne",
-       "tog-enotifrevealaddr": "Navnîşana e-nameya min di agahdariyên e-nameyan de nîşan bide",
-       "tog-shownumberswatching": "Nîşan bide, çiqas bikarhêner dişopînin",
-       "tog-oldsig": "Pêşdîtina îmzeya heye:",
+       "tog-enotifrevealaddr": "Navnîşana enameya min di agahdariyên enameyan de nîşan bide",
+       "tog-shownumberswatching": "Hejmara bikarhênerên dişopînin nîşan bide",
+       "tog-oldsig": "Îmzeya heye:",
        "tog-fancysig": "Di îmzeyê de girêdana otomatîk a bikarhêner betal bike",
        "tog-uselivepreview": "Pêşdîtina \"zindî\" bi kar bîne",
        "tog-forceeditsummary": "Hinga kurteyeke vala hate tomarkirin min agahdar bike",
@@ -49,7 +49,7 @@
        "tog-watchlisthideminor": "Guhertinên biçûk ji lîsteya şopandinê veşêre",
        "tog-watchlisthideliu": "Guherandinên bikarhênerên qeydkirî ji lîsteya şopandinê veşêre",
        "tog-watchlisthideanons": "Guherandinên bikarhênerên neqeydkirî ji lîsteya şopandinê veşêre",
-       "tog-ccmeonemails": "Kopiyên e-nameyên min ji bikarhênerên din re şandî, ji min re bişîne.",
+       "tog-ccmeonemails": "Kopiyên e-nameyên min ji bikarhênerên din re şandî, ji min re jî bişîne.",
        "tog-diffonly": "Li cem guhertinan, naveroka rûpelê nîşan nede",
        "tog-showhiddencats": "Kategoriyên veşartî bibîne",
        "tog-norollbackdiff": "Ciyawaziyê piştî şûndekirinê veşêre",
        "category_header": "Gotarên di kategoriya \"$1\" de",
        "subcategories": "Binkategorî",
        "category-media-header": "Medya di kategoriya \"$1\" de",
-       "category-empty": "''Di vê kategoriyê de niha gotarên medya nîn in.''",
+       "category-empty": "<em>Di vê kategorîyê de niha gotar an medya nîn in.<em>",
        "hidden-categories": "{{PLURAL:$1|Kategoriya veşartî|Kategoriyên veşartî}}",
        "hidden-category-category": "Kategoriyên veşartî",
        "category-subcat-count": "{{PLURAL:$2|Di vê kategoriyê de tenê ev binkategorî heye:|Di vê kategoriyê de {{PLURAL:$2|binkategoriyek heye|$2 binkategorî hene}}. Jêr {{PLURAL:$1|binkategoriyek tê|$1 binkategorî tên}} nîşandan.}}",
        "category-file-count": "{{PLURAL:$2|Di vê kategoriyê de tenê ev dane heye:|Di vê kategoriyê de {{PLURAL:$2|daneyek heye|$2 dane hene}}. Jêr {{PLURAL:$1|daneyek tê|$1 dane tên}} nîşandan.}}",
        "category-file-count-limited": "Ev {{PLURAL:$1|daneya|$1 daneyên}} jêr di vê kategoriyê de ne.",
        "listingcontinuesabbrev": "dewam",
+       "index-category": "Rûpelên nimînokkirî",
        "noindex-category": "Rûpelên bênimînok",
        "broken-file-category": "Rûpelên bi girêdanên xerabûyî",
        "about": "Der barê",
        "article": "Gotar",
-       "newwindow": "(di rûpeleke din de wê were nîşandan)",
+       "newwindow": "(di pencereyek din de wê were nîşandan)",
        "cancel": "Betal bike",
        "moredotdotdot": "Bêhtir...",
+       "morenotlisted": "Ev lîste nehatîye temamkirin.",
        "mypage": "Rûpela min",
        "mytalk": "Gotûbêja min",
        "anontalk": "Gotûbêj ji bo vê IP'ê",
        "history": "Dîroka rûpelê",
        "history_short": "Dîrok",
        "updatedmarker": "ji serdana min a dawî ve hate rojanekirin",
-       "printableversion": "Versiyon ji bo çapkirinê",
+       "printableversion": "Guhertoya bo çapkirinê",
        "permalink": "Girêdana daîmî",
        "print": "Çap",
        "view": "Bibîne",
        "view-foreign": "$1 nîşan bide",
        "edit": "Biguherîne",
+       "edit-local": "Raveya herêmî biguherîne",
        "create": "Biafirîne",
+       "create-local": "Danasînê herêmî lê zêde bike",
        "editthispage": "Vê rûpelê biguherîne",
        "create-this-page": "Vê rûpelê çêke",
        "delete": "Jê bibe",
        "deletethispage": "Vê rûpelê jê bibe",
+       "undeletethispage": "Jêbirina vê rûpele paşve hilde",
        "undelete_short": "Dîsa {{PLURAL:$1|guherandinekî|$1 guherandinan}} çêke",
+       "viewdeleted_short": "{{PLURAL:$1|guherandineke jêbirî|$1 guherandinên jêbirî}} nîşan bide",
        "protect": "Biparêze",
        "protect_change": "guherandin",
        "protectthispage": "Vê rûpelê biparêze",
        "redirectedfrom": "(Ji $1 hate beralîkirin)",
        "redirectpagesub": "Rûpelê beralî bike",
        "redirectto": "Beralîye vir bike:",
-       "lastmodifiedat": "Ev rûpel cara dawî di $2, $1 de hate guherandin.",
+       "lastmodifiedat": "Ev rûpel cara dawî $1, seet li $2an de hate guherandin.",
        "viewcount": "Ev rûpel {{PLURAL:$1|carekê|caran}} tê xwestin.",
        "protectedpage": "Rûpela parastî",
        "jumpto": "Here cem:",
        "policy-url": "Project:Rêgez",
        "portal": "Portala komê",
        "portal-url": "Project:Portala komê",
-       "privacy": "Siyaseta taybetîtiyê",
+       "privacy": "Siyaseta veşarîtiyê",
        "privacypage": "Project:Parastina daneyan",
        "badaccess": "Çewtiya destûrê",
        "badaccess-group0": "Tu nikarî vî tiştî bikî.",
        "badaccess-groups": "Ev tişta tu dixwazî bikî tenê ji bikarhênerên {{PLURAL:$2|van koman|vê komê}} re {{PLURAL:$2|ne|ye}}: $1.",
        "versionrequired": "Versiyona $1 a MediaWiki pêwîst e",
-       "versionrequiredtext": "Versiyona $1 a MediaWiki ji bo bikaranîna vê rûpelê pêwîst e. Li [[Special:Versiyon|rûpela versiyonê]] binêre.",
+       "versionrequiredtext": "Versiyona $1 a MediaWiki ji bo bikaranîna vê rûpelê pêwîst e. Li [[Special:Version|rûpela versiyonê]] binêre.",
        "ok": "Baş e",
        "retrievedfrom": "Ji \"$1\" hatiye standin.",
        "youhavenewmessages": "$1 yên te hene ($2).",
        "youhavenewmessagesfromusers": "Ji {{PLURAL:$3|bikarhênerekê/î|$3 bikarhêneran}}, ji bo te $1 ($2).",
-       "newmessageslinkplural": "{{PLURAL:$1|peyameke nû heye|peyamên nû hene}}",
-       "newmessagesdifflinkplural": "{{PLURAL:$1|guherandin|guherandinên dawî}}",
+       "newmessageslinkplural": "{{PLURAL:$1|peyameke nû heye|999=peyamên nû hene}}",
+       "newmessagesdifflinkplural": "{{PLURAL:$1|guherandin|999=guherandinên dawî}}",
        "youhavenewmessagesmulti": "Peyamên nû li $1 ji te re hene.",
        "editsection": "biguherîne",
        "editold": "biguherîne",
        "hidetoc": "veşêre",
        "collapsible-collapse": "Bigire",
        "collapsible-expand": "Berfireh bike",
+       "confirmable-confirm": "{{GENDER:$1|Tu}} pê barwerîy?",
        "confirmable-yes": "Erê",
        "confirmable-no": "Na",
        "thisisdeleted": "Li $1 binêre an jî serast bike?",
        "nospecialpagetext": "<strong>Rûpela taybet a te xwestî tune ye.</strong>\n\nHemû rûpelên taybet dikarin di [[Special:SpecialPages|lîsteya rûpelên taybet]] de werin dîtin.",
        "error": "Çewtî",
        "databaseerror": "Çewtiya bingeha daneyan",
+       "databaseerror-query": "Pirs: $1",
+       "databaseerror-function": "Fonksiyon: $1",
        "databaseerror-error": "Çewtî:$1",
        "laggedslavemode": "'''Zanibe:''' Dibe ku di vê rûpelê de rojanekirinên dawî nîn bin.",
        "readonly": "Bingeha daneyan hatiye girtin",
        "unexpected": "Tiştekî nedihate hêvîkirin: \"$1\"=\"$2\".",
        "formerror": "Çewtî: Ew nivîs pêk nehat.",
        "badarticleerror": "Ev çalakî di vê rûpelê de nabe.",
-       "cannotdelete": "Ev rûpel an wêne nikare were jêbirin. Dibe ku kesekî din ev rûpel jêbiribe.",
+       "cannotdelete": "Ev rûpel an dosyeye \"$1\" nikare were jêbirin. Dibe ku kesekî din ev rûpel jêbiribe.",
        "cannotdelete-title": "Rûpela \"$1\" nikare bê jêbirin",
+       "no-null-revision": "Ji bo rûpela $1 guhertoyek vala ê nû nehate dîtin",
        "badtitle": "Sernivîsa nebaş",
        "badtitletext": "Sernavê rûpelê yê xwestî ne derbasdar, vala an jî ne xwediyê girêdaneke rast e.\nDibe ku di sernavê de karakterên nayên bikaranîn hatibin nivîsandin.",
-       "title-invalid-interwiki": "Sernav girêdaneka înterwikiyê dihewîne",
+       "title-invalid-interwiki": "Sernavê rûpelê ê daxwazkirî girêdanek înterwîkiyê dihewîne a ku bo sernavan nikare bê bikaranîn.",
        "perfcached": "Ev dane hatine veşartin û belkî ne rojane bin. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.",
        "perfcachedts": "Ev dane hatiye veşartin û cara paşîn $1 hatiye rojanekirin. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.",
        "querypage-no-updates": "Fonksiyona rojanekirinê ya vê rûpelê hatiye sekinandin. Daneyên vir nayên rojanekirin.",
        "viewsource": "Çavkaniyê bibîne",
+       "viewsource-title": "Çavkanîya $1 bibîne",
        "actionthrottled": "Hejmara guherandinên hatine hesibandin",
        "actionthrottledtext": "Te ev tişt di demeke gelekî kin de kir. Ji kerema xwe çend xulekan bisekine û carekî din biceribîne.",
-       "protectedpagetext": "Ev rûpel ji bo nenivîsandinê hatiye parastin.",
+       "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î:",
-       "protectedinterface": "Di vê rûpelê da nivîsandin ji bo interface'î zimanan yê vê software'ê ye. Ew tê parstin ji bo vandalîzm li vê derê çênebe.",
-       "editinginterface": "'''Hişyarî:''' Tu rûpeleke 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.",
+       "viewyourtext": "Hûn çavkanîyê <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.",
        "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.",
+       "mycustomcssprotected": "Mafê te bo guherandina vê rûpela CCS'ê tune ye.",
+       "mycustomjsprotected": "Destûra te tune ku tu vê rûpela JavaScriptê biguherînî.",
+       "myprivateinfoprotected": "Destûra te tune ye ku tu agahiyên xwe yên kesane biguherînî.",
        "mypreferencesprotected": "Destûr tune ye ku tu eyarên xwe biguherînî.",
        "ns-specialprotected": "Rûpelên taybet {{ns:special}} nikarin werin guherandin.",
        "titleprotected": "Rûpelek bi vî navî nikare bê çêkirin. Ev astengkirin ji [[User:$1|$1]] bi sedema ''$2'' hatiye çêkirin.",
+       "exception-nologin": "Ne têketî",
        "virus-unknownscanner": "Antîvîrusa nenas:",
        "logouttext": "'''Tu niha derketî.'''\n\nTu dikarî {{SITENAME}} niha weke bikarhênerekî nediyarkirî bikarbînî, yan jî tu dikarî dîsa bi vî navê xwe yan navekî din wek bikarhêner <span class='plainlinks'>[$1 dîsa têkevî]</span>.\nBila di bîra te de be ku gengaz e hin rûpel mîna ku tu hîn bi navê xwe qeyd kiriyî werin nîşandan, heta ku tu nîşanên çavlêgerandina (browser) xwe jênebî.",
        "welcomeuser": "Xêr hatî, $1!",
        "userlogin-yourpassword-ph": "Şîfreya xwe binivîse",
        "createacct-yourpassword-ph": "Şîfreya xwe binivîse",
        "yourpasswordagain": "Şîfreyê dîsa binivîse:",
+       "createacct-yourpasswordagain": "Şîfreye bipejirîne",
        "createacct-yourpasswordagain-ph": "Şîfreyê ji nû ve têkeve",
        "remembermypassword": "Şifreya min di her têketina min de bîne bîra xwe (herî zêde $1 {{PLURAL:$1|rojekê|rojan}})",
        "userlogin-remembermypassword": "Min têketî bihêle",
        "createacct-imgcaptcha-ph": "Nivîsa ku tu li jor dibînî binivîse",
        "createacct-submit": "Hesabê xwe biafirîne",
        "createacct-another-submit": "Hesabek din çêke",
+       "createacct-benefit-heading": "{{SITENAME}} ji alî mirovên wek te tê çêkirin.",
+       "createacct-benefit-body1": "{{PLURAL:$1|guhertin}}",
        "createacct-benefit-body2": "{{PLURAL:$1|rûpel}}",
        "badretype": "Her du şîfreyên ku te nivîsîn li hevdu nayên.",
        "userexists": "Ev navî bikarhênerî berê tê bikaranîn. Xêra xwe navekî din dake.",
        "loginerror": "Çewtiya têketinê",
        "createacct-error": "Çewtîya çêkirine hesabê",
+       "createaccounterror": "Hesab nikare were çêkirin: $1",
        "nocookiesnew": "Hesabê bikarhêner hatibû çêkirin, lê te xwe qeyd nekiriye. {{SITENAME}} ji bo qeydkirina bikarhêneran cookie'yan bikartîne. Te bikaranîna cookie'yan girtiye. Xêra xwe cookie'yan qebûl bike, piştre bi navê bikarhêner û şîfreya xwe têkeve.",
        "nocookieslogin": "Ji bo qeydkirina bikarhêneran {{SITENAME}} \"cookies\" bikartîne. Te fonksîyona \"cookies\" girtîye. Xêra xwe kerema xwe \"cookies\" gengaz bike û careke din biceribîne.",
        "noname": "Navê ku te nivîsand derbas nabe.",
        "login-userblocked": "Rê li ber vî/vê bikarhênerî/ê hatiye girtin. Destûr bo têketinê nîne.",
        "wrongpassword": "Şifreya ku te nivîsand şaşe. Ji kerema xwe careke din biceribîne.",
        "wrongpasswordempty": "Cihê şîfreya te vala ye. Carekê din binivisîne.",
-       "passwordtooshort": "Şîfreya te netê qebûlkirin: Şîfreya te gereke bi kêmani {{PLURAL:$1|nîşaneka|$1 nîşanên}} xwe hebe û ne wek navî tê wek bikarhêner be.",
+       "passwordtooshort": "Şîfreya te hewceye ko bi kêmani {{PLURAL:$1|$1 karakter}} bê.",
        "password-name-match": "Divê şîfreya te ji navê te yê bikaranînê cuda be.",
        "password-login-forbidden": "Bikaranîna vî navî û vê şîfreyê hatiye qedexekirin.",
        "mailmypassword": "Şîfreyê nû bike",
        "emailauthenticated": "Adresa e-nameya te ji $2 $3ê hate rastandin.",
        "emailnotauthenticated": "Adresa e-nameya te hêj nehatîye naskirin. Fonksyonên e-nameyan piştî naskirina te dikarin ji te werin kirin.",
        "noemailprefs": "'''Te hên adresa e-nameyan nenivîsandîye''', fonksyonên e-nameyan hên ji te ra ne tên qebûlkirin.",
-       "emailconfirmlink": "E-Mail adresê xwe nasbike",
+       "emailconfirmlink": "E-mail adresê xwe nasbike",
        "invalidemailaddress": "Adresa e-nameyan yê te ne tê qebûlkirin, ji ber ku formata xwe qedexe ye (belkî nîşanên qedexe). Xêra xwe adreseka serrast binivisîne ya vê derê vala bêle.",
        "cannotchangeemail": "E-nameya hesabê bo vê wîkiyê nikare bê guherandin.",
        "emaildisabled": "Ev sîte e-nameya nikara bişîne.",
        "accountcreatedtext": "Hesabê bikarhêneran ji $1 ra hate çêkirin.",
        "createaccount-title": "Çêkirina hesabekî ji {{SITENAME}}",
        "createaccount-text": "Kesek ji te ra account'ekî bikarhêneran \"$2\" li {{SITENAME}} ($4) çêkir. Şîfreya otomatîk ji \"$2\" ra \"$3\" ye.\nNiha ê baş be eger tu xwe qeyd bikê û tu şîfreya xwe biguherînê.\n\nEger account'a bikarhêneran şaşî hate çêkirin, guhdare vê peyamê meke.",
+       "login-abort-generic": "Têketina te biser neket - Betal bû",
        "loginlanguagelabel": "Ziman: $1",
        "pt-login": "Têkeve",
        "pt-login-button": "Têkeve",
        "newpassword": "Şîfreya nû",
        "retypenew": "Şîfreya nû careke din binîvîse",
        "resetpass_submit": "Şîfreyê pêkbîne û têkeve",
-       "changepassword-success": "Şîfreya te hate guherandin! Niha tu tê qeydkirin...",
+       "changepassword-success": "Guhertine şîfreya te serkeftî bû!",
        "resetpass_forbidden": "Şîfre nikarin werin guhertin",
-       "resetpass-submit-loggedin": "Şîfre biguherîne",
+       "resetpass-submit-loggedin": "Şîfre biguherîne",
        "resetpass-submit-cancel": "Betal bike",
-       "resetpass-temp-password": "Şîfreya niha:",
+       "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.",
        "passwordreset": "Şîfreyê nû bike",
        "passwordreset-text-one": "Ji bo ji nû ve sazkirina şîfreyê vê formê dagire.",
        "passwordreset-legend": "Şîfreyê nû bike",
        "passwordreset-username": "Navê bikarhêner:",
-       "passwordreset-email": "Navnîşana E-nameyê:",
+       "passwordreset-domain": "Domain:",
+       "passwordreset-email": "Navnîşana e-nameyê:",
        "passwordreset-emailtitle": "Hûragahiyên hesab li ser {{SITENAME}}",
        "passwordreset-emailelement": "Navê bikarhêner:$1\nŞîfreya niha:$2",
        "passwordreset-emailsent": "E-nameyeke bibîrxistinê hate şandin.",
        "changeemail": "E-nameyê biguherîne",
        "changeemail-oldemail": "Navnîşana E-nameya niha:",
-       "changeemail-newemail": "Navnîşana E-nameya nû:",
+       "changeemail-newemail": "Navnîşana e-nameya nû:",
        "changeemail-none": "(nîne)",
-       "changeemail-submit": "E-nameyê biguherîne",
+       "changeemail-submit": "Enameyê biguherîne",
+       "resettokens": "Mifteya jê bibe",
+       "resettokens-legend": "Mifteya jê bibe",
        "bold_sample": "Nivîsa stûr",
        "bold_tip": "Nivîsa stûr",
        "italic_sample": "Nivîsa xwehr (îtalîk)",
        "anonpreviewwarning": "''Tu ne têketî yî. Tomarkirin wê navnîşana IP'ya te di dîroka guhertinan de nîşan bide.''",
        "missingsummary": "<span style=\"color:#990000;\">'''Zanibe:'''</span> Te nivîsekî kurt ji bo guherandinê ra nenivîsand. Eger tu niha carekî din li Tomar xê, guherandinê te vê nivîsekî kurt yê were tomarkirin.",
        "missingcommenttext": "Ji kerema xwe kurteya naverokê li jêr binivisîne.",
-       "missingcommentheader": "<span style=\"color:#990000;\">'''Zanibe:'''</span> Te sernavek nenivîsandiye. Heke tu niha carekî din li ser ''tomar bike'' bitikînî, ev guherandina vê sernavê wê were tomarkirin.",
+       "missingcommentheader": "<strong>Zanibe:</strong> Te sernav/mijarek nenivîsandîye. Heke tu niha carekî din li ser \"{{int:savearticle}}\" bitikînî, ev guherandina te bê sernav/mijar wê were tomarkirin.",
        "summary-preview": "Pêşdîtina kurtenivîsê:",
        "subject-preview": "Pêşdîtina sernivîsê:",
+       "previewerrortext": "Wextê pêşdîtina guhertinên te, pirsgirekek derket.",
        "blockedtitle": "Bikarhêner hate astengkirin",
        "blockedtext": "'''Navê te yê bikarhêneriyê an jî IP'ya te hate astengkirin.'''\n\nAstengkirin ji aliyê $1 ve pêkhat. Sedema astengkirina te ev e: ''$2''.\n\n* Destpêka astengkirinê: $8\n* Xelasbûna astengkirinê: $6\n* Astengkirin ji van re: $7\n\nTu dikarî bi $1  re an jî [[{{MediaWiki:Grouppage-sysop}}|koordînatorên]] din re ji bo astengkirinê bikevî têkiliyê. Tu nikarî 'Ji vê/vî bikarhênerê/î re e-name bişîne' bikarbînî heta  di [[Special:Preferences|tercihên xwe]] de navnîşana e-nameyeke derbasdar bikarbînî û tu ji bo bikaranîna vê fonksiyonê nehatî astengkirin.\n\nIP'ya te ya niha $3 ye, û ID'ya astengkirina te #$5 e. Ji kerema xwe yek ji van hejmaran têxe nav peyama xwe.",
        "autoblockedtext": "Navnîşana IP ya te otomatîk hate astengkirin, ji ber ku bikarhênerekî/e din wê bikartîne, yê niha ji $1 hate astengkirin.\nSedema astengkirinê ev e:\n\n: ''$2''\n\n*Destpêka astengkirinê: $8\n*Dawiya astengkirinê: $6\n\nEger tu difikirî ku ev astengkirin ne sererast e, ji kerema xwe bi $1 re an jî yekî din ji [[{{MediaWiki:Grouppage-sysop}}|koordînatoran]] re bipeyive.\n\nZanibe ku tu nikarî e-nameya bişînî heta tu di [[Special:Preferences|tercihên xwe]] de navnîşana e-nameyan binivîsînî û tu ji bo bikaranîna vê nehatî astengkirin.\n\n'''Heke tu bixwazî peyamekê bişînî, ji kerema xwe van tiştan têxe nav nameya xwe:'''\n\n*Koordînator, yê te astengkir: $1\n*Sedema astengkirinê: $2\n*ID'ya astengkirinê: #$5",
        "whitelistedittext": "Ji bo guherandina rûpelan, $1 pêwîst e.",
        "confirmedittext": "Tu gireke adrêsa e-nameya xwe nasbikê berî tu rûpelan diguherînê. Xêra xwe adrêsa e-nameya ya xwe di [[Special:Preferences|tercihên xwe]] da binivisîne û nasbike.",
        "nosuchsectiontitle": "Beşek wisa tune ye",
-       "nosuchsectiontext": "Te dixast beşekê biguherînê yê tune ye.",
+       "nosuchsectiontext": "Te dixwast beşekê yê tune biguherînî.\nWextê ko te rûpele nîşan dida dibe ko hatibe barkirin an jî jêbirin.",
        "loginreqtitle": "Têketin pêwîst e",
        "loginreqlink": "têkeve",
        "loginreqpagetext": "Divê tu ji bo dîtina rûpelên din $1.",
        "accmailtitle": "Şîfre hate şandin.",
-       "accmailtext": "Şîfreya '$1' hat şandin ji $2 re.",
+       "accmailtext": "Şîfreyekê ketober ê ji bo [[User talk:$1|$1]] hatiye çêkirin ji navnîşana $2 re hat şandin. Şîfreya ji bo vê hesabê nû, piştî ko te têket ji beşa <em>[[Special:ChangePassword|şîfreyê biguherîne]]</em> dikare were guhertin.",
        "newarticle": "(Nû)",
        "newarticletext": "Ev rûpel hîn tune. Eger tu bixwazî vê rûpelê çêkî, dest bi nivîsandinê bike û piştre qeyd bike. '''Wêrek be''', biceribîne!<br />\nJi bo alîkariyê binêre: [$1 Alîkarî].<br />\nHeke tu bi şaşîtî hatî, bizîvire rûpela berê.",
        "anontalkpagetext": "----''Ev rûpela gotûbêjê ye ji bo bikarhênerên nediyarkirî ku hîn hesabekî xwe çênekirine an jî bikarnaînin. Ji ber vê yekê divê em wan bi navnîşana IP ya hejmarî nîşan bikin. Navnîşaneke IP dikare ji aliyê gelek kesan ve were bikaranîn. Heger tu bikarhênerekî nediyarkirî bî û bawerdikî ku nirxandinên bê peywend di der barê te de hatine kirin ji kerema xwe re [[Special:UserLogin/signup|hesabekî xwe veke an jî têkeve]] da ku tu xwe ji tevlîheviyên bi bikarhênerên din re biparêzî.''",
        "usercsspreview": "'''Zanibe ku tu tenê pêşdîtina CSS dibînî.'''\n'''Ew hê nehatiye tomarkirin!'''",
        "userjspreview": "'''Zanibe ku tu tenê JavaScript'a xwe diceribînî, ew hê nehatiye tomarkirin!'''",
        "updated": "(Hate rojanekirin)",
-       "note": "'''Nîşe:'''",
+       "note": "<strong>Nîşe:</strong>",
        "previewnote": "'''Ji bîr neke ku ev tenê pêşdîtinek e.'''\nGuhertinên te hê nehatine tomarkirin!",
        "continue-editing": "Here qada sazandinê",
-       "editing": "Biguherîne: \"$1\"",
+       "editing": "$1 te guherandin",
        "creating": "$1 tê çêkirin",
        "editingsection": "Tê guherandin: $1 (beş)",
        "editingcomment": "$1 (beşek nû) tê guherandin.",
        "permissionserrors": "Çewtiyê destûrê",
        "permissionserrorstext": "Tu nikanê vê tiştî bikê, ji bo {{PLURAL:$1|vê sedemê|van sedeman}}:",
        "permissionserrorstext-withaction": "Mafên te bo $2 tune ye ji bo {{PLURAL:$1|vê sedemê|van sedeman}}:",
-       "recreate-moveddeleted-warn": "'''Zanibe: Tu kê rûpelekê çêkê yê niha hate jêbirin!'''\n\nZanibe ku nuhçêkirinê vê rûpelê hêja ye ya na.\nÎnformasyon li ser jêbirinê vê rûpelê li vir e:",
+       "recreate-moveddeleted-warn": "<strong>Zanibe: Tu kê rûpelekê çêkê yê niha hate jêbirin!</strong>\n\nZanibe ku nuhçêkirinê vê rûpelê hêja ye ya na.\nÎnformasyon li ser jêbirinê vê rûpelê li vir e:",
        "moveddeleted-notice": "Ev rûpel hatiye jêbirin.\nSedema jêbirina rûpelê bi referansa li jêr hatiye piştrastkirin.",
        "log-fulllog": "Tevahiya wê bibîne",
        "edit-conflict": "Têkçûna guherandinan.",
        "postedit-confirmation-saved": "Guhertina te hate tomarkirin.",
        "edit-already-exists": "Nikarî rûpeleka nuh çêke.\nEw berê heye.",
        "content-model-wikitext": "wîkînivîs",
+       "content-model-text": "nivîsê sade",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
        "content-json-empty-object": "Objeya vala",
        "histlegend": "Rênîşan: ({{int:cur}}) = cudahiya nav vê û versiyona niha, ({{int:last}}) = cudahiya nav vê û ya berî vê, '''{{int:minoreditletter}}''' = guhertina biçûk",
        "history-fieldset-title": "Li dîrokê bigere",
        "history-show-deleted": "Tenê yên jêbirî",
-       "histfirst": "Kevintirîn",
-       "histlast": "Nûtirîn",
+       "histfirst": "kevintirîn",
+       "histlast": "nûtirîn",
        "historysize": "({{PLURAL:$1|1 byte|$1 bytes}})",
        "historyempty": "(vala)",
        "history-feed-title": "Dîroka guhertoyê",
        "history-feed-description": "Di wîkî de dîroka guhertina vê rûpelê",
        "history-feed-item-nocomment": "$1 li $2",
        "history-feed-empty": "Rûpela xwestî tune ye. Belkî ew rûpel jê hatibe birîn an jî sernavê wê hatibe guherandin. [[Special:Search|Di wîkîyê de li rûpelên nêzîkî wê bigere]].",
-       "rev-deleted-comment": "(nivîs hate jêbirin)",
+       "rev-deleted-comment": "(kurteya guherandinê hate jêbirin)",
        "rev-deleted-user": "(navê bikarhêner hate jêbirin)",
        "rev-deleted-event": "(pêkhatin hate jêbirin)",
        "rev-deleted-text-permission": "Ev guhertoya vê rûpelê hatiye jêbirin. Belkî agahî di [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} jêbirina têketinê] de hebe.",
-       "rev-delundel": "nîşan bide/veşêre",
+       "rev-delundel": "xuyakirinê biguherîne",
        "rev-showdeleted": "nîşan bide",
        "revisiondelete": "Guhertoyan jê bibe/nebe",
        "revdelete-show-file-submit": "Erê",
        "revdelete-radio-set": "Veşartî",
        "revdelete-radio-unset": "Xuya",
        "revdelete-suppress": "Sedema jêbirinê ji rêveberan re jî veşêre",
-       "revdelete-log": "Sedem",
+       "revdelete-log": "Sedem:",
        "revdel-restore": "xuyakirinê biguherîne",
        "pagehist": "Dîroka rûpelê",
        "deletedhist": "Dîroka jêbirî",
        "mergehistory-box": "Guhertoyên her du rûpelan bike yek:",
        "mergehistory-from": "Çavkanîya rûpelê:",
        "mergehistory-submit": "Guhertoyan bike yek",
-       "mergehistory-reason": "Sedem",
+       "mergehistory-reason": "Sedem:",
        "mergelog": "Yekkirina gotaran",
        "revertmerge": "Veqetîne",
        "history-title": "Dîroka guhertoyên \"$1\"",
        "editundo": "betal bike",
        "diff-empty": "(Cudahî nîne)",
        "searchresults": "Encamên lêgerînê",
-       "searchresults-title": "Encamên lêgerrînê bo \"$1\"",
+       "searchresults-title": "Encamên lêgerînê bo \"$1\"",
        "titlematches": "Dîtinên di sernivîsên gotaran de",
        "textmatches": "Dîtinên di nivîsara rûpelan de",
        "notextmatches": "Di nav sernivîsan de nehat dîtin.",
        "prevn-title": "{{PLURAL:$1|result|Encamên}} pêştir $1",
        "nextn-title": "$1 {{PLURAL:$1|encama|encamên}} pêştir",
        "shown-title": "Li her rûpelê $1 {{PLURAL:$1|encam|encaman}} nîşan bide",
-       "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3).",
+       "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3) nîşan bide",
        "searchmenu-exists": "'''Rûpeleke bi navê \"[[:$1]]\" li ser vê wîkiyê heye.'''",
        "searchmenu-new": "Rûpela \"[[:$1]]\" çêke!",
        "searchprofile-articles": "Rûpelên naverokê",
        "searchall": "hemû",
        "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ê bigere",
+       "powersearch-legend": "Lêgerîna pêşketî",
        "powersearch-ns": "Di valahiya navan de lêbigere:",
        "powersearch-togglelabel": "Kontrol bike:",
        "powersearch-toggleall": "Hemû",
        "powersearch-togglenone": "Tune",
        "search-external": "Lêgerrîna derveyî",
        "searchdisabled": "<p>Tu dikarî li {{SITENAME}} bi Google an Yahoo! bigere. Têbînî: Dibe ku encamen lêgerîne ne yên herî nû ne.\n</p>",
-       "preferences": "Tercîhên min",
+       "preferences": "Hevyazên min",
        "mypreferences": "Hevyazên min",
        "prefs-edits": "Hejmarê guherandinan:",
        "prefs-skin": "Pêste",
        "prefs-rc": "Guherandinên dawî",
        "prefs-watchlist": "Lîsteya şopandinê",
        "prefs-editwatchlist": "Lîsteya şopandinê biguherîne",
-       "prefs-watchlist-days-max": "Maximum $1 {{PLURAL:$1|day|days}}",
+       "prefs-editwatchlist-clear": "Lîsteya xwe ya şopandinê paqij bike",
+       "prefs-watchlist-days": "Hejmara rojên ku di lîsteya şopandinê de bê nîşandan:",
+       "prefs-watchlist-days-max": "Herî zêde $1 {{PLURAL:$1|roj|rojan}}",
+       "prefs-watchlist-edits": "Hejmara maximum guhertinê ê di lîsteya şopandinê ya berfirehkirî de bê nîşandanː",
        "prefs-watchlist-edits-max": "Hejmara mezintirîn: 1000",
        "prefs-misc": "Eyarên cuda",
        "prefs-resetpass": "Şifreyê biguherîne",
-       "prefs-changeemail": "E-nameyê biguherîne",
-       "prefs-setemail": "Navnîşana E-nameyê binivîse",
-       "prefs-email": "Vebijarkên E-nameyê",
+       "prefs-changeemail": "Navnîşana e-nameyê biguherîne",
+       "prefs-setemail": "Navnîşana e-nameyê binivîse",
+       "prefs-email": "Vebijarkên Enameyê",
        "prefs-rendering": "Rû",
-       "saveprefs": "Tercîhan tomar bike",
+       "saveprefs": "Tomar bike",
        "restoreprefs": "Hemû eyarên berê ji nû ve ava bike (di hemû beşa da)",
        "prefs-editing": "Guherandin",
-       "rows": "Rêz",
+       "rows": "Rêz:",
        "columns": "Stûn:",
        "searchresultshead": "Lê bigere",
        "recentchangesdays-max": "Herî zêde $1 {{PLURAL:$1|roj|rojan}}",
        "default": "asayî",
        "prefs-files": "Dosya",
        "prefs-emailconfirm-label": "Piştrastkirina E-nameyê:",
-       "youremail": "E-nameya te:",
+       "youremail": "Ename:",
        "username": "{{GENDER:$1|Navê bikarhêner}}:",
        "prefs-memberingroups": "{{GENDER:$2|Endamê|Endama|Endamê/a}} {{PLURAL:$1|komê|koman}}:",
        "prefs-registration": "Dema xweqeydkirinê:",
        "yourrealname": "Navê te yê rast:",
-       "yourlanguage": "Ziman",
+       "yourlanguage": "Ziman:",
        "yourvariant": "Cuda:",
        "yournick": "Bernavkê nû (ji bo îmzeyê):",
        "badsig": "Îmzeya ne derbasdar! Li HTML binêre ka sedema şaşbûnê çiye.",
        "yourgender": "Zayend:",
        "gender-unknown": "Ez negotin çêtir dibinim",
        "gender-male": "Ew rûpelên wîkiyê diguherîne",
-       "gender-female": "",
-       "email": "E-name",
+       "gender-female": "Ew (mê) rûpelên wîkiyê diguherîne",
+       "email": "Ename",
        "prefs-help-realname": "Navê rastî ne pêwîst e. Heke tu navê xwe binivisî, ewê ji bo karê te were bikaranîn.",
        "prefs-help-email": "Email address is optional, but is needed for password resets, should you forget your password.",
        "prefs-help-email-required": "Navnîşana e-nameyê hewce ye.",
        "userrights-notallowed": "Account'a te mafê xwe tune ye ji bo guherandina mafên bikarhêneran.",
        "userrights-changeable-col": "Komên ku tu dikarî biguherînî",
        "userrights-unchangeable-col": "Komên ku tu nikarî biguherînî",
-       "group": "Kom",
+       "group": "Kom:",
        "group-user": "Bikarhêner",
        "group-autoconfirmed": "Bikarhênerên xwebixwe-piştrastkirî",
        "group-bot": "Bot",
        "right-edit": "Rûpelan biguherîne",
        "right-createtalk": "Rûpelên gotûbêjê çêke",
        "right-createaccount": "Hesaba bikarînerek nû veke",
-       "right-minoredit": "Guhertina biçûk e",
+       "right-minoredit": "Wek guhertinek biçûk nîşan bide",
        "right-move": "Rûpelan bigerîne",
        "right-upload": "Dosyeyan lê bar bike",
        "right-autoconfirmed": "Rûpelên nîv-parastî biguherîne",
        "right-delete": "Rûpelan jê bibe",
+       "right-bigdelete": "Rûpelên bi dîrokên pir dirêj jê bibe",
        "right-browsearchive": "Li rûpelên jêbirî bigerre",
        "right-undelete": "Jêbirinê betal bike",
+       "right-unblockself": "Astengiya xwe rake",
+       "right-viewmywatchlist": "Lîsteya xwe ya şopandinê bibîne",
+       "right-editmyoptions": "Hevyazên xwe biguherîne",
        "right-import": "Rûpelan ji wikiyên din împort bike",
        "right-userrights": "Hemû mafên bikarhêner biguherîne",
        "right-userrights-interwiki": "Mafên bikarhênerên li ser wîkiyên din biguherîne",
-       "right-sendemail": "Ji bikarhênerên di re e-name bişîne",
+       "right-sendemail": "Ji bikarhênerên di re ename bişîne",
        "newuserlogpage": "Çêkirina hesabê nû",
        "rightslog": "Guhertina mafê bikarhêneriyê",
        "rightslogtext": "Ev guhertineke ji bo mafên bikarhêneriyê ye.",
        "action-edit": "vê rûpelê biguherîne",
        "action-createpage": "rûpelan çêke",
        "action-createtalk": "rûpelên gotûbêjan çêke",
-       "action-createaccount": "vê account'ê bikarhênerê çê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",
        "action-move-subpages": "vê rûpelê û binrûpelên wê bigerîne",
        "action-deleterevision": "Vê revîzyonê je bibe",
        "action-deletedhistory": "dîroka vê rûpelê jêbirî bibîne",
        "action-browsearchive": "li rûpelên jêbirî bigere",
-       "action-undelete": "vê rûpelê dîsa çêke",
+       "action-undelete": "vê rûpelê jê nebe",
        "action-userrights": "hemû mafên bikarhêneran biguherîne",
        "action-userrights-interwiki": "mafê bikarhênerên li ser wîkiyên din biguherîne",
-       "action-sendemail": "e-nameyan bişîne",
+       "action-sendemail": "enameyan bişîne",
        "action-editmywatchlist": "lîsteya şopandinê biguherîne",
        "action-viewmywatchlist": "lîsteya xwe ya şopandinê nîşan bide",
        "action-viewmyprivateinfo": "agahîyên xwe ye taybet nîşan bide",
        "recentchanges-label-unpatrolled": "Ev gotar hêj nehatiye sererastkirin",
        "recentchanges-label-plusminus": "Qebareya vê rûpelê bi ev qas biteyan hate guherandin",
        "recentchanges-legend-heading": "'''Ravekirina kurtenavan:'''",
-       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (here [[Taybet:Rûpelên_nû|lîsteya rûpelên nû]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (here [[Special:NewPages|lîsteya rûpelên nû]])",
        "rclistfrom": "Guherandinên ji $3 $2 şûnde nîşan bide",
        "rcshowhideminor": "Guherandinên biçûk $1",
        "rcshowhideminor-show": "nîşan bide",
        "newpageletter": "Nû",
        "boteditletter": "b",
        "number_of_watching_users_pageview": "[{{PLURAL:$1|bikarhênerek|$1 bikarhêner}} vê rûpelê {{PLURAL:$1|dişopîne|dişopînin}}.]",
-       "rc_categories_any": "Hîç",
+       "rc_categories_any": "Qet",
        "newsectionsummary": "/* $1 */ beşeke nû",
        "rc-enhanced-expand": "Hûragahiyan nîşan bide",
        "rc-enhanced-hide": "Kitûmatan veşêre",
        "recentchangeslinked": "Guherandinên têkilîdar",
        "recentchangeslinked-feed": "Guherandinên peywend",
        "recentchangeslinked-toolbox": "Guherandinên peywend",
-       "recentchangeslinked-summary": "Ev rûpela taybetî guherandinên dawî ji rûpelên lînkkirî nîşandide. Ew rûpel yê di lîsteya te ya şopandinê da ne bi nivîsa '''estûr''' tên nîşandan.",
-       "recentchangeslinked-page": "Navê rûpelê",
+       "recentchangeslinked-title": "Guherandinên têkildarî \"$1\"",
+       "recentchangeslinked-summary": "Ev lîste, ji rûpela destnîşankirî (an jî endamên destnîşankirî) re rûpelê lîsteya guherandinên dawî ji rûpelên lînkkirî nîşandide. Ew rûpel yê di [[Special:Watchlist|lîsteya te ya şopandinê]] da bi nivîsa <strong>estûr<strong> tên nîşandan.",
+       "recentchangeslinked-page": "Navê rûpelê:",
        "upload": "Wêneyekî bar bike",
-       "uploadbtn": "Wêneyekî bar bike",
+       "uploadbtn": "Dosyeyek bar bike",
        "reuploaddesc": "Barkirinê biskîne û dîsa here rûpela barkirinê.",
        "uploadnologin": "Xwe tomar nekir",
        "uploadnologintext": "Ji kerema xwe re ji bo barkirina dosyeyan $1 dake.",
        "uploadtext": "Berê tu wêneyên nû bar bikî, ji bo dîtin an vedîtina wêneyên ku ji xwe hene binêre: [[Special:FileList|lîsteya wêneyên barkirî]]. Herwisa wêneyên ku hatine barkirin an jî jê birin li vir dikarî bibînî: [[Special:Log/upload|reşahîya barkirîyan]].\n\nYek ji lînkên jêr ji bo bikarhînana wêne an file'ê di gotarê de bikar bihîne:\n'''<nowiki>[[</nowiki>{{ns:file}}:File.jpg<nowiki>]]</nowiki>''',\n'''<nowiki>[[</nowiki>{{ns:file}}:File.png|alt text<nowiki>]]</nowiki>''',\nanjî ji bo file'ên dengî '''<nowiki>[[</nowiki>{{ns:media}}:File.ogg<nowiki>]]</nowiki>'''",
        "upload-permitted": "Cureyên pelan yên tên qebûlkirin: $1.",
        "upload-preferred": "Cureyên pelan yên tên xwestin: $1.",
-       "upload-prohibited": "Cureyên pelan yên qedexekirî: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Cureyê|Cureyên}} pelan yên qedexekirî: $1.",
        "uploadlogpage": "Barkirina belgeyan",
        "filename": "Navê pelê",
        "filedesc": "Danasîn",
        "filetype-unwanted-type": "'''\".$1\"''' formatekî nexastî ye.\nFormat {{PLURAL:$3|yê tê|yên tên}} qebûlkirin {{PLURAL:$3|ev e|ev in}}: $2.",
        "filetype-banned-type": "'''\".$1\"''' formatekî qedexe ye.\nFormat {{PLURAL:$3|yê tê|yên tên}} xwestin {{PLURAL:$3|ev e|ev in}}: $2.",
        "filetype-missing": "Piştnavê pelê tune (wek \".jpg\").",
+       "empty-file": "Dosyeya ku te tomar kir, vala bû.",
+       "filename-tooshort": "Navê dosyeye zêde kurte.",
+       "filetype-banned": "Dosyeyên bi vê cureye hatîye qedexekirin.",
+       "verification-error": "Ev dosye, rastandina dosyeye derbas nekir.",
        "unknown-error": "Çewtiyeke nenas pêk hat.",
        "large-file": "Mezinbûna pelê bila ji $1 ne mezintir be; ev pel $2 e.",
        "emptyfile": "Data'ya barkirî vala ye. Sedemê valabûnê belkî şaşnivîsek di navê data'yê da ye. Xêra xwe seke, ku tu rast dixazê vê data'yê barbikê.",
        "uploaddisabledtext": "Barkirinê data'yan  hatiye qedexekirin.",
        "uploadvirus": "Di vê data'yê da vîrûsek heye! Înformasyon: $1",
        "upload-source": "Pela çavkaniyê",
-       "sourcefilename": "Navê pelê:",
-       "sourceurl": "URL ya çavkaniyê:",
+       "sourcefilename": "Çavkanîyê navê pelê:",
+       "sourceurl": "URL'ya çavkaniyê:",
        "destfilename": "Navê pela xwestî:",
        "upload-maxfilesize": "Mezinbûna pelê ya herî mezin: $1",
        "upload-description": "Danasîna pelê",
        "upload-failure-subj": "Pirsgirêka barkirinê",
        "upload-warning-subj": "Hişyariya barkirinê",
        "upload-file-error": "Çewtiya navxweyî",
+       "backend-fail-notexists": "Dosye $1 tune ye.",
+       "backend-fail-delete": "Dosyeya \"$1\" nikaribû bê jêbirin.",
+       "backend-fail-store": "Dosyeya \"$1\" di bin \"$2\" nikaribû bê tomarkirin.",
+       "backend-fail-read": "Dosyeya \"$1\" nikaribû bê xwendin.",
+       "backend-fail-create": "Dosyeya \"$1\" nikaribû bê nivîsîn.",
        "uploadstash-refresh": "Lîsteya dosyeya nû bike",
        "img-auth-accessdenied": "Gihandin hate astengkirin",
        "img-auth-nofile": "Dosyeye \"$1\" tine.",
        "listfiles-delete": "jê bibe",
        "listfiles_search_for": "Li navê wêneyî bigere:",
        "imgfile": "dosye",
-       "listfiles": "Lîsteya wêneyan",
+       "listfiles": "Lîsteya dosyeyan",
        "listfiles_date": "Dem",
        "listfiles_name": "Nav",
        "listfiles_user": "Bikarhêner",
        "listfiles_size": "Mezinbûn",
        "listfiles_description": "Danasîn",
        "listfiles_count": "Guherto",
+       "listfiles-latestversion": "Guhertoya niha",
        "listfiles-latestversion-yes": "Erê",
        "listfiles-latestversion-no": "Na",
-       "file-anchor-link": "Wêne",
+       "file-anchor-link": "Dosye",
        "filehist": "Dîroka daneyê",
        "filehist-help": "Ji bo dîtina guhertoya wê demê bişkoka dîrokê bitikîne.",
        "filehist-deleteall": "hemûyan jê bibe",
        "filehist-filesize": "Mezinahiya pelê",
        "filehist-comment": "Şîrove",
        "imagelinks": "Bikaranîna pelê",
-       "linkstoimage": "Di van rûpelan de lînkek ji vî wêneyî re heye:",
+       "linkstoimage": "Di van rûpelan de {{PLURAL:$1|page links|$1  lînkek}} ji vî dosyeye re heye:",
        "nolinkstoimage": "Rûpelekî ku ji vî wêneyî re girêdankê çêdike nîne.",
        "linkstoimage-redirect": "$1 (beralîkirina pelê) $2",
        "sharedupload-desc-here": "Ev pel ji $1 û dibe ku ji aliyê projeyên din ve jî hatibe bikaranîn.\nAgahdariya li ser [$2 rûpela danasîna pelê] li jêr tê nîşandan.",
+       "filepage-nofile-link": "Dosyeyek bi vî navî tune ye, lê tu dikarî wê [$1 bar bikî].",
        "uploadnewversion-linktext": "Versiyoneke nû ya vê daneyê barbike",
        "shared-repo-from": "ji $1",
        "filerevert": "\"$1\" şondabike",
        "filedelete-intro-old": "Tu niha guhertoya '''[[Media:$1|$1]]''' [$4 guherto, ji $2, saet $3] jê dibî.",
        "filedelete-comment": "Sedem:",
        "filedelete-submit": "Jê bibe",
-       "filedelete-success": "'''$1''' hate jêbirin.",
+       "filedelete-success": "<strong>$1</strong> hate jêbirin.",
        "filedelete-success-old": "<span class=\"plainlinks\">Verzyona $2 ji data'ya '''[[Media:$1|$1]]''' di saet $3 da hate jêbirin.</span>",
        "filedelete-nofile": "'''$1''' nîne.",
        "filedelete-otherreason": "Sedemên din:",
        "filedelete-reason-otherlist": "Sedemên din",
        "filedelete-reason-dropdown": "*Sedemên jêbirina wêneyan\n** wêneyekî nebaş e\n** kopiyek e",
        "filedelete-edit-reasonlist": "Sedemên jêbirinê biguherîne",
+       "filedelete-maintenance-title": "Dosye nikare bê jêbirin",
        "mimesearch": "Lêgerîna li MIME",
        "download": "daxistin",
        "unwatchedpages": "Rûpelên nayên şopandin",
        "unusedtemplates": "Şablonên nayên bikaranîn",
        "unusedtemplateswlh": "lînkên din",
        "randompage": "Rûpeleke ketober",
+       "randomincategory": "Rûpelek ketober di kategoriyê de",
        "randomincategory-category": "Kategorî:",
+       "randomincategory-legend": "Rûpeleke ketober di kategoriyê de",
        "randomredirect": "Beralîkirina ketober",
        "statistics": "Statîstîk",
        "statistics-header-pages": "Statîstîkên rûpelê",
        "ncategories": "$1 {{PLURAL:$1|Kategorî|Kategorî}}",
        "nlinks": "$1 {{PLURAL:$1|girêdan|girêdan}}",
        "nmembers": "$1 {{PLURAL:$1|endam|endam}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|endam}}",
        "nrevisions": "$1 {{PLURAL:$1|guherandin|guherandin}}",
        "nviews": "$1 {{PLURAL:$1|dîtin|dîtin}}",
        "lonelypages": "Rûpelên sêwî",
        "uncategorizedpages": "Rûpelên bêkategorî",
        "uncategorizedcategories": "Kategoriyên bê kategorî",
-       "uncategorizedimages": "Wêneyên bê kategorî",
-       "uncategorizedtemplates": "Şablonên bê kategorî",
+       "uncategorizedimages": "Dosyeyên bêkategorî",
+       "uncategorizedtemplates": "Şablonên bêkategorî",
        "unusedcategories": "Kategoriyên ku nayên bikaranîn",
-       "unusedimages": "Wêneyên ku nayên bikaranîn",
+       "unusedimages": "Dosyeyên ku nayên bikaranîn",
        "wantedcategories": "Kategoriyên ku tên xwestin",
        "wantedpages": "Rûpelên ku tên xwestin",
        "wantedfiles": "Wêneyên ku tên xwestin",
        "protectedpages-noredirect": "Beralîkirinan veşêre",
        "protectedpagesempty": "Niha ti rûpelên ku bi vê parametreyê parastî ne, tine ne.",
        "protectedpages-page": "Rûpel",
+       "protectedpages-reason": "Sedem",
        "protectedpages-unknown-timestamp": "Nenas",
        "protectedpages-unknown-performer": "Bikarhênera nenas",
        "protectedtitles": "Sernavên parastî",
        "newpages": "Rûpelên nû",
        "newpages-username": "Navê bikarhêner:",
        "ancientpages": "Gotarên herî kevin",
-       "move": "Navê rûpelê biguherîne",
+       "move": "Hilgire",
        "movethispage": "Vê rûpelê bigerîne",
-       "notargettitle": "Hedef tune",
+       "notargettitle": "Armanc tune",
        "pager-newer-n": "{{PLURAL:$1|nûtir 1|nûtir $1}}",
        "pager-older-n": "{{PLURAL:$1|kevintir 1|kevintir $1}}",
        "booksources": "Çavkaniyên pirtûkan",
-       "booksources-search-legend": "Li pirtûkan bigere",
+       "booksources-search-legend": "Li çavkanîyên pirtûkan bigere",
        "booksources-search": "Lêgerîn",
        "booksources-text": "Li vir listek ji lînkên rûpelên, yê pirtûkên nû ya kevin difiroşin, heye. Hên jî li vir tu dikarî înformasyonan li ser wan pirtûkan tê derxê.",
        "specialloguserlabel": "Bikarhêner:",
-       "speciallogtitlelabel": "Sernav:",
+       "speciallogtitlelabel": "Armanc (sernav an bikarhêner)",
        "log": "Têketin",
        "all-logs-page": "Hemû têketin",
        "alllogstext": "Hemû têketinên {{SITENAME}} li jêr tên nîşandan.\nTu dikarî ji xwe re têketinekê hilbijêrî, navê bikarhêneriyê an navê rûpelekê binivîse û agahiyan li ser wê bibîne.",
        "allpagesprefix": "Rûpelên bi pêşbendik nîşan bide:",
        "allpagesbadtitle": "Sernavê rûpelê qedexe bû ya \"interwiki\"- ya \"interlanguage\"-pêşnavekî xwe hebû. Meqûle ku zêdertirî tiştekî nikanin werin bikaranîn di sernavê da.",
        "allpages-bad-ns": "Namespace'a \"$1\" di {{SITENAME}} da tune ye.",
-       "allpages-hide-redirects": "Beralîkirinan nîşan bide",
+       "allpages-hide-redirects": "Beralîkirinan veşêre",
        "categories": "Kategorî",
        "categoriespagetext": "Di van kategoriyan de rûpel an jî medya hene.\n[[Special:UnusedCategories|Kategoriyên nayên bikaranîn]] li vir nayên nîşandan.\nLi [[Special:WantedCategories|kategoriyên xwestî]] binêre.",
        "special-categories-sort-count": "hatîye rêzkirin li gorî hejmaran",
        "listgrouprights-addgroup-all": "Hemû koman tevlî bike",
        "listgrouprights-removegroup-all": "Hemû koman jê bibe",
        "trackingcategories-name": "Navê peyamê",
+       "trackingcategories-nodesc": "Ti danasîn tune ye.",
        "mailnologin": "Navnîşanê neşîne",
        "mailnologintext": "Te gireke xwe [[Special:UserLogin|qeydbikê]] û adrêsa e-nameyan di [[Special:Preferences|tercihên xwe]] da nivîsandibe ji bo şandina e-nameyan ji bikarhênerên din ra.",
        "emailuser": "Ji bikarhêner re e-name bişîne",
-       "emailpage": "E-name bikarhêner",
+       "emailuser-title-notarget": "E-nameyekê ji bikarhêner re bişîne",
+       "emailpage": "E-nameya bikarhêner",
        "defemailsubject": "{{SITENAME}} e-name",
        "noemailtitle": "Navnîşana e-name tune",
        "emailusername": "Navê bikarhêner:",
-       "emailusernamesubmit": "Tomar bike",
-       "emailfrom": "Ji",
+       "emailusernamesubmit": "Bişîne",
+       "emailfrom": "Ji:",
        "emailto": "Ji bo:",
        "emailsubject": "Mijar",
        "emailmessage": "Peyam:",
        "mywatchlist": "Lîsteya min a şopandinê",
        "nowatchlist": "Tiştek di lîsteya te ya şopandinê de tune ye.",
        "watchlistanontext": "Ji  kerema xwe ji bo dîtin an jî sererastkirina lîsteya te ya şopandinê xwe $1.",
-       "watchnologin": "Te xwe tomar nekiriye",
+       "watchnologin": "Te xwe tomar nekirîye",
        "addwatch": "Tevlî lîsteya şopandinê bike",
        "addedwatchtext": "Rûpela \"[[:$1]]\" çû ser [[{{ns:special}}:Watchlist|lîsteya te ya şopandinê]].\nLi dahatû de her guhertoyek li wê rûpelê û rûpela guftûgo ya wê were kirin li vir tê nîşandan.\n \nLi rûpela [[{{ns:special}}:Recentchanges|Guherandinên dawî]] jî ji bo hêsan dîtina wê, ew rûpel bi '''Nivîsa stûr''' tê nîşandan.\n\nGava tu bixwazî wê rûpelê ji nav lîsteya xwe ya şopandinê derbixî, li ser wê rûpelê, \"êdî neşopîne\" bitikîne.",
        "removewatch": "Ji lîsteya şopandinê derxe",
        "wlnote": "Niha {{PLURAL:$1|xeyrandinê|'''$1''' xeyrandinên}} dawî yê {{PLURAL:$2|seetê|'''$2''' seetên}} dawî {{PLURAL:$1|tê|tên}} dîtin.",
        "wlshowlast": "Guhertinên berî $1 saetan, $2 rojan, ya  nîşan bide",
        "watchlist-options": "Vebijarkên lîsteya şopandinê",
-       "watching": "Bişopîne...",
-       "unwatching": "Neşopîne…",
+       "watching": "Tê şopandin...",
+       "unwatching": "Nay şopandin…",
        "enotif_reset": "Hemû rûpelan wek lêsekirî nîşanbide",
        "enotif_impersonal_salutation": "Bikarhênerî {{SITENAME}}",
+       "enotif_subject_deleted": "Rûpela {{SITENAME}}ê/yê $1 ji aliyê $2 {{GENDER:$2|hate jêbirin}}",
        "enotif_anon_editor": "Bikarhênerê/a neqeydkirî $1",
        "enotif_body": "Birêz $WATCHINGUSERNAME,\n\n\nRûpela {{SITENAME}} $PAGETITLE hate $CHANGEDORCREATED di roja $PAGEEDITDATE de ji aliyê $PAGEEDITOR ve, ji kerema xwe li $PAGETITLE_URL ji bo guhertoya niha li $NEWPAGE binêre.\n\nKurtnivîsa bikarhêner: $PAGESUMMARY $PAGEMINOREDIT\n\nJi bo bikarhêner peyamekê binivisîne:\nE-name: $PAGEEDITOR_EMAIL\n{{SITENAME}}: $PAGEEDITOR_WIKI\n\nHeta tu li vê guherandinê nenêrî, peyamên din ên guhertinê yên vê rûpelê nayên nîşandan.\n\n             Peyamên {{SITENAME}}\n\n--\nHeke tu dixwazî lîsteya xwe ya şopandinê biguherînî, li\n{{canonicalurl:{{#special:EditWatchlist}}}} binêre.\n\nPaşagahîdan û alîkaraya din:\n$HELPPAGE",
        "created": "hate afirandin",
        "delete-toobig": "Dîroka vê rûpelê pir mezin e, zêdetirî $1 guherandin. Jêbirina van rûpelan hatîye sînorkirin, ji bo pir şaşbûn (error) di {{SITENAME}} da çênebin.",
        "delete-warning-toobig": "Dîroka vê rûpelê pir mezin e, zêdetirî $1 guherandin. Jêbirina van rûpelan dikarin şaşbûnan di database'ê {{SITENAME}} da çêkin; zandibe tu çi dikê!",
        "rollbacklink": "bizîvirîne pêş",
+       "rollbacklinkcount": "ji {{PLURAL:$1|guhertin|guhertina}} $1 vegere",
        "cantrollback": "Guherto naye vegerandin;\nbikarhênerê dawî, tenya nivîskarê vê rûpelê ye.",
        "alreadyrolled": "Guherandina dawiya [[$1]]\nbi [[User:$2|$2]] ([[User talk:$2|gotûbêj]]) venizivre; kesekî din ew rûpel zîvirandiye an guherandiye.\n\nGuhertoya dawî bi [[User:$3|$3]] ([[User talk:$3|gotûbêj]]).",
        "editcomment": "Kurtenivîsê guherandinê ev bû: \"''$1''\".",
        "unprotectedarticle": "parastina \"[[$1]]\" rakir",
        "protect-title": "parastina \"$1\" biguherîne",
        "prot_1movedto2": "Navê [[$1]] weke [[$2]] hate guhertin",
-       "protect-legend": "Parastinê teyîd bike",
+       "protect-norestrictiontypes-title": "Rûpela neparastbar",
+       "protect-legend": "Parastinê bipesinîne",
        "protectcomment": "Sedem:",
        "protectexpiry": "Heta:",
        "protect_expiry_invalid": "Dema nivîsandî şaş e.",
        "protect_expiry_old": "Dema girtinê di zemanê berê da ye.",
        "protect-default": "Destûrê bide hemû bikarhêneran",
        "protect-level-autoconfirmed": "Bikarhênerên neqeydkirî astengbike",
-       "protect-level-sysop": "Tenê ji rêveber (admîn)ara destûr bide",
+       "protect-level-sysop": "Destûrê tenê bide rêveberan",
        "protect-expiring": "heta roja $1 (UTC)",
        "protect-expiring-local": "di $1 de dema wê xilas dibe",
        "protect-othertime": "Demeke din:",
        "undelete-nodiff": "Guhertoyên berê nehatin dîtin.",
        "undeletebtn": "Dîsa çêke!",
        "undeletelink": "dîtin/dîsa çêkirin",
-       "undeleteviewlink": "bibîne:",
+       "undeleteviewlink": "bibîne",
        "undeleteinvert": "Hilbijartinê şûnde vegerîne",
        "undeletecomment": "Sedem:",
        "undeletedrevisions": "{{PLURAL:$1|Versiyonek dîsa hate|$1 versiyon dîsa hatin}} çêkirin",
        "invert": "Hemûyan bibîne",
        "namespace_association": "Navê têkilîdar",
        "blanknamespace": "(Sereke)",
-       "contributions": "Beşdariyên bikarhêner",
+       "contributions": "Beşdariyên {{GENDER:$1|bikarhêner}}",
        "contributions-title": "Beşdariyên ji bo $1",
        "mycontris": "Beşdariyên min",
        "contribsub2": "Ji bo $1 ($2)",
        "sp-contributions-talk": "gotûbêj",
        "sp-contributions-userrights": "îdarekirina mafên bikarhêneran",
        "sp-contributions-search": "Li beşdariyan bigere",
-       "sp-contributions-username": "Adresa IP'yê yan navê bikarhêner:",
+       "sp-contributions-username": "Navnîşana IP'yê an jî navê bikarhêner:",
        "sp-contributions-submit": "Lêgerîn",
        "whatlinkshere": "Girêdanên li ser vê rûpelê",
        "whatlinkshere-title": "Rûpelan, yê berve $1 tên",
        "blockiptext": "Ji bo astengkirina nivîsandinê ya ji navnîşaneke IP'yê an jî ji bikarhênerekî/ê, vê formê bikarbîne.\nDivê ev tenê ji bo sekinandina vandalîzmê were bikaranîn, ku divê li gorî [[{{MediaWiki:Policy-url}}|rêgezê]] be.\n\nSedemekê binivîse!",
        "ipaddressorusername": "adresê IP'yekê ya navekî bikarhênerekî",
        "ipbexpiry": "Dem:",
-       "ipbreason": "Sedem",
+       "ipbreason": "Sedem:",
        "ipbreason-dropdown": "*Sedemên astengkirinê\n** Vandalîzm\n** Agahiya şaş dikire gotarekê\n** Naveroka rûpelekê vala kir\n** Girêdanên xerab tevlî rûpelan dikir\n** Tiştên tewş tevlî gotaran dikir\n** Heqaretkirin\n** Pir hesab bikaranîn\n** Navekî ku nayê pejirandin",
        "ipbcreateaccount": "Çêkirina hesaban qedexe bike",
        "ipbemailban": "Ji bo şandina e-nameyan qedexe bike.",
        "ipbenableautoblock": "Otomatîk IP'yên niha û yên nû yê vê bikarhênerê astengbike.",
-       "ipbsubmit": "Vê bikarhêner asteng bike",
+       "ipbsubmit": "Vê bikarhênere asteng bike",
        "ipbother": "Demekî din:",
        "ipboptions": "2 saet:2 hours,1 roj:1 day,3 roj:3 days,1 hefte:1 week,2 hefte:2 weeks,1 meh:1 month,3 meh:3 months,6 meh:6 months,1 sal:1 year,ji her demê re:infinite",
        "ipbhidename": "Navê bikarhêner / adresê IP ji \"pirtûkê\" astengkirinê, lîsteya astengkirinên nû û lîsteya bikarhêneran veşêre",
        "ipb-unblock": "Astengkirina bikarhênerekî ya adrêsa IP'yekê rake",
        "ipb-blocklist": "Astengkirinên niha bibîne",
        "ipb-blocklist-contribs": "Beşdariyên ji bo $1",
-       "unblockip": "IP'yekê dîsa veke",
+       "unblockip": "Astengkirina bikarhêner rake",
        "unblockiptext": "Nivîsara jêr bikarwîne ji bo qebûlkirina nivîsandinê bikarhênerekî ya IP'yeka berê astengkirî.",
        "ipusubmit": "Vê astengkirinê rake",
        "unblocked": "[[User:$1|$1]] hatiye astengkirin.",
        "anononlyblock": "tenê kesên bênav",
        "noautoblockblock": "astengkirina otomatîk hatîye temirandin",
        "createaccountblock": "çêkirina hesaban hate qedexekirin",
-       "emailblock": "E-Mail hate girtin",
+       "emailblock": "e-name hate girtin",
        "blocklist-nousertalk": "nikare rûpela gotûbêja xwe biguherîne",
        "ipblocklist-empty": "Lîsteya astengkirinê vala ye.",
        "ipblocklist-no-results": "Ew IP'ya ya bikarhênera nehatîye astengkirin.",
        "ipb_cant_unblock": "Şaşbûn: ID'ya astengkirinê $1 nehate dîtin. Astengkirinê xwe niha belkî hatîye rakirin.",
        "sorbsreason": "Adrêsa IP ya te ji DNSBL'a {{SITENAME}} wek proxy'eka vekirî tê naskirin.",
        "sorbs_create_account_reason": "Adrêsa IP ya te ji DNSBL'a {{SITENAME}} wek proxy'eka vekirî tê naskirin. Tu nikarê account'ekê ji xwe ra çêkê.",
+       "ipbnounblockself": "Tu nikarî xwe asteng bikî.",
        "lockdb": "Danegehê bigire",
        "unlockdb": "Danegehê veke",
        "lockconfirm": "Erê, ez bi rastî dixwazim danegehê bigirim.",
        "unlockconfirm": "Erê, ez bi rastî dixwazim danegehê vekim.",
        "lockbtn": "Danegehê bigire",
        "unlockbtn": "Danegehê veke",
+       "unlockdbsuccesssub": "Astengiya danegehê hate rakirin",
+       "unlockdbsuccesstext": "Danegeh hatiye astengkirin.",
        "databasenotlocked": "Danegeh ne girtî ye.",
        "move-page": "$1 bigerîne",
        "move-page-legend": "Vê rûpelê bigerîne",
        "movelogpage": "Guhertina nav",
        "movelogpagetext": "Li jêr lîsteyek ji rûpelan ku navê wan hatiye guherandin heye.",
        "movenosubpage": "Binrûpelên vê rûpelê tune ne.",
-       "movereason": "Sedem",
+       "movereason": "Sedem:",
        "revertmove": "şûnde vegerîne",
        "delete_and_move": "Jêbibe û nav biguherîne",
        "delete_and_move_text": "== Jêbirin gireke ==\n\nRûpela \"[[:$1]]\" berê heye. Tu rast dixazê wê jêbibê ji bo navguherandinê ra?",
        "export-addcat": "Zêde bike",
        "export-addns": "Zêde bike",
        "export-download": "Weka dosyeyê qeyd bike",
-       "allmessages": "Hemû peyamên sîstemê",
+       "allmessages": "Peyamên sîstemê",
        "allmessagesname": "Nav",
        "allmessagescurrent": "Nivîsa niha",
        "allmessagestext": "Lîsteya hemû peyamên MediaWikiyê.",
        "allmessages-filter-unmodified": "Neguhertî",
        "allmessages-filter-all": "Hemû",
        "allmessages-filter-modified": "Guhertî",
-       "allmessages-language": "Ziman",
-       "allmessages-filter-submit": "Gotar",
+       "allmessages-language": "Ziman:",
+       "allmessages-filter-submit": "Here",
        "allmessages-filter-translate": "Wergerîne",
        "thumbnail-more": "Mezin bike",
        "filemissing": "Rûpel tune",
        "tooltip-pt-userpage": "Rûpela min",
        "tooltip-pt-anonuserpage": "Rûpela bikarhênerê ji bo navnîşana ÎP ku tu sererast dikî wekî",
        "tooltip-pt-mytalk": "Gotûbêja min",
-       "tooltip-pt-preferences": "Tercîhên min",
+       "tooltip-pt-preferences": "Hevyazên min",
        "tooltip-pt-watchlist": "The list of pages you",
        "tooltip-pt-mycontris": "Lîsteya beşdariyên min",
        "tooltip-pt-logout": "Derkeve",
        "tooltip-t-contributions": "Lîsteya beşdariyên bikarhêner bibîne",
        "tooltip-t-emailuser": "Jê re name bişîne",
        "tooltip-t-info": "Bêhtir agahî di derbarê vê rûpelê de",
-       "tooltip-t-upload": "Wêneyan bar bike",
+       "tooltip-t-upload": "Dosyeyan bar bike",
        "tooltip-t-specialpages": "Lîsteya hemû rûpelên taybetî",
        "tooltip-t-print": "Versiyona çapkirinê ya vê rûpelê",
        "tooltip-ca-nstab-main": "Li rûpela naverokê binêre",
        "tooltip-ca-nstab-special": "This is a special page, you can",
        "tooltip-ca-nstab-project": "Li rûpelê projektê seke",
        "tooltip-ca-nstab-image": "Rûpela dosyeyê bibîne",
+       "tooltip-ca-nstab-mediawiki": "Peyama sîstemê bibîne",
        "tooltip-ca-nstab-template": "Şablonê nîşan bide",
        "tooltip-ca-nstab-help": "Rûpela alîkariyê bibîne",
        "tooltip-ca-nstab-category": "Li rûpelê kategorîyê seke",
        "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.",
        "tooltip-watch": "Vê rûpelê têke nav lîsteya te ya şopandinê",
+       "tooltip-watchlistedit-normal-submit": "Sernavan jê bibe",
+       "tooltip-watchlistedit-raw-submit": "Lîsteya şopandinê rojane bike",
        "tooltip-upload": "Barkirinê destpêke",
        "common.js": "/* Any JavaScript here will be loaded for all users on every page load. */",
        "anonymous": "Bikarhênera/ê nediyarkirî ya/yê {{SITENAME}}",
        "pageinfo-header-edits": "Dîrokê biguherîne",
        "pageinfo-header-restrictions": "Parastina rûpelê",
        "pageinfo-header-properties": "Taybetmendiyên rûpelê",
+       "pageinfo-language": "Zimanê naveroka rûpelê",
        "pageinfo-watchers": "Hejmara kesên dişopînin",
+       "pageinfo-redirects-name": "Hejmara beralîkirinên ber bi vê rûpelê ve",
        "pageinfo-subpages-name": "Binrûpelên vê rûpelê",
+       "pageinfo-firsttime": "Dema çêkirina rûpelê",
+       "pageinfo-lasttime": "Dema guherandina dawî",
        "pageinfo-edits": "Hejmara guherandinan",
-       "pageinfo-toolboxlink": "Agahiya rûpelê",
+       "pageinfo-toolboxlink": "Agahiyên rûpelê",
        "pageinfo-redirectsto-info": "agahî",
        "pageinfo-contentpage-yes": "Erê",
        "pageinfo-protect-cascading-yes": "Erê",
        "pageinfo-category-info": "Agahiyên kategoriyê",
-       "pageinfo-category-pages": "hejmara rûpelan",
+       "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",
        "filedelete-current-unregistered": "Daneya \"$1\" li sîstemê tune ye.",
        "previousdiff": "← Cudahiya pêştir",
        "nextdiff": "Cudahiya paştir →",
+       "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",
        "file-nohires": "Versyonekî jê mezintir tune.",
        "svg-long-desc": "Daneya SVG, mezinbûna rast: $1 × $2 pixel; mezinbûna daneyê: $3",
        "show-big-image": "Dosyeya orjînal",
+       "show-big-image-size": "$1 × $2 pixel",
        "newimages": "Pêşangeha wêneyên nû",
        "imagelisttext": "Jêr lîsteyek ji $1 file'an heye, duxrekirin $2.",
        "newimages-summary": "Ev rûpela taybet dosyeyên ku herî dawî hatine barkirin, nîşan dide.",
        "ilsubmit": "Lêgerîn",
        "bydate": "li gor dîrokê",
        "sp-newimages-showfrom": "Daneyên nû ji dema $1, saet $2 ve bibîne",
+       "weeks": "{{PLURAL:$1|$1 hefte}}",
+       "months": "{{PLURAL:$1|$1 meh}}",
+       "years": "{{PLURAL:$1|$1 sal}}",
        "ago": "berî $1",
+       "hours-ago": "berî $1 {{PLURAL:$1|demjimêr|demjimêran}}",
        "variantname-ku-arab": "Tîpên erebî",
        "variantname-ku-latn": "Tîpên latînî",
        "variantname-ku": "disable",
        "metadata-collapse": "Detayên dirêj veşêre",
        "exif-imagewidth": "Panbûn",
        "exif-imagelength": "Dirêjbûn",
+       "exif-orientation": "Beralîkirin",
        "exif-jpeginterchangeformatlength": "Byte'ên daneya JPEG",
+       "exif-datetime": "Dem û demjimêra guherandina dosyeyê",
        "exif-imagedescription": "Navê wêne",
        "exif-model": "Modela kamerayê",
+       "exif-software": "Nivîsbarîya tê bikaranîn",
        "exif-artist": "Nûser",
+       "exif-exifversion": "Versiyona exif",
        "exif-pixelydimension": "Firehiya wêne",
        "exif-pixelxdimension": "Dirêjiya wêne",
        "exif-usercomment": "Şîroveyên bikarhêner",
+       "exif-datetimedigitized": "Dema pencekîkirinê",
        "exif-exposuretime-format": "$1 sanî ($2)",
        "exif-brightnessvalue": "Zelalî",
        "exif-flash": "Flaş",
        "exif-writer": "Nivîskar",
        "exif-languagecode": "Ziman",
        "exif-iimcategory": "Kategorî",
+       "exif-cameraownername": "Xwediyê kamerayê",
        "exif-label": "Etîket",
        "exif-copyrighted": "Rewşa telîfê",
        "exif-disclaimer": "Ferexetname",
        "exif-orientation-1": "Normal",
        "exif-exposureprogram-1": "Manûel",
        "exif-exposureprogram-2": "Programa normal",
+       "exif-subjectdistance-value": "$1 metre",
        "exif-meteringmode-0": "Nenas",
        "exif-meteringmode-255": "Yên din",
        "exif-lightsource-0": "Nenas",
        "exif-iimcategory-wea": "Hewa",
        "namespacesall": "hemû",
        "monthsall": "hemû",
-       "confirmemail": "Adrêsa e-nameyan nasbike",
+       "confirmemail": "Navnîşana e-nameyê nasbike",
        "confirmemail_noemail": "Te e-mail-adressê xwe di [[Special:Preferences|tercihên xwe da]] nenivîsandiye.",
        "confirmemail_success": "E-Mail adrêsa te hate naskirin. Tu niha dikarî xwe qeydbikê û kêfkê.",
-       "confirmemail_loggedin": "Navnîşana te ya E-Nameyê hate qebûlkirin.",
+       "confirmemail_loggedin": "Navnîşana te ya e-nameyê hate qebûlkirin.",
        "confirmemail_body": "Kesek, dibê tu, bi IP adressê $1, xwe li {{SITENAME}} bi vê navnîşana e-name tomar kir (\"$2\") .\n\nEger ev rast qeydkirinê te ye û di dixwazî bikaranîna e-nama ji te ra çêbibe li {{SITENAME}}, li vê lînkê bitikîne:\n\n$3\n\nLê eger ev *ne* tu bû, li lînkê netikîne. Ev e-nameya di rojê $4 da netê qebûlkirin.",
        "scarytranscludefailed": "[Anîna şablona $1 biserneket; biborîne]",
        "scarytranscludetoolong": "[URL zêde dirêj e]",
        "watchlistedit-normal-done": "{{PLURAL:$1|1 gotar hate|$1 gotar hatin}} jêbirin ji lîsteya te yê şopandinê:",
        "watchlistedit-raw-titles": "Sernav:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 gotar hate|$1 gotar hatin}} jêbirin:",
+       "watchlistedit-clear-titles": "Sernav:",
        "watchlisttools-edit": "Lîsteya şopandinê bibîne û biguherîne",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|gotûbêj]])",
        "version": "Versiyon",
        "version-specialpages": "Rûpelên taybet",
-       "version-other": "yên din",
+       "version-other": "Yên din",
        "version-version": "($1)",
        "version-license": "Lîsansa MediaWiki",
+       "version-ext-colheader-version": "Guherto",
+       "version-ext-colheader-license": "Destûr",
+       "version-ext-colheader-description": "Danasîn",
+       "version-ext-colheader-credits": "Xwedî",
        "version-software-product": "Berhem",
        "version-software-version": "Guherto",
        "version-entrypoints-header-url": "URL",
        "blankpage": "Rûpela vala",
        "tag-filter": "Parzûna [[Special:Tags|nîşankirinê]]:",
        "tag-filter-submit": "Parzûn",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Etîket}}]]: $2)",
        "tags-title": "Nîşankirin",
-       "tags-tag": "Tag name",
+       "tags-tag": "Navê etîketê",
+       "tags-active-header": "Çalak?",
+       "tags-active-yes": "Erê",
+       "tags-active-no": "Na",
        "tags-edit": "biguherîne",
+       "tags-create-reason": "Sedem:",
+       "tags-delete-reason": "Sedem:",
+       "tags-activate-reason": "Sedem:",
+       "tags-deactivate-reason": "Sedem:",
        "comparepages": "Rûpelan bide ber hev",
        "compare-page1": "Rûpel 1",
        "compare-page2": "Rûpel 2",
        "htmlform-selectorother-other": "Yên din",
        "htmlform-no": "Na",
        "htmlform-yes": "Erê",
-       "logentry-delete-delete": "$1 rûpela $3 jê bir",
+       "logentry-delete-delete": "$1 rûpela $3 {{GENDER:$2|jê bir}}",
        "revdelete-content-hid": "naverok veşartî ye",
        "revdelete-uname-hid": "navê bikarhêneriyê yê veşartî",
-       "logentry-move-move": "$1 navê $3 weke $4 guherand",
+       "logentry-move-move": "$1 rûpela $3 ji $4e re {{GENDER:$2|barkir}}",
        "logentry-move-move-noredirect": "$1 navê $3 guherand û kir $4",
        "logentry-move-move_redir": "$1 navê $3 guherand û kir $4",
        "logentry-newusers-newusers": "$1 hesabekî bikarhêneriyê çêkir",
-       "logentry-newusers-create": "$1 hesabekî bikarhêneriyê çêkir",
+       "logentry-newusers-create": "Hesabe bikarhêneriyê $1 {{GENDER:$2|hate çêkirin}}",
+       "logentry-upload-upload": "$1 {{GENDER:$2|hate barkirin}} $3",
        "rightsnone": "(tune)",
        "revdelete-summary": "kurteyê biguherîne",
        "feedback-back": "Paşve",
        "feedback-thanks-title": "Spas!",
        "searchsuggest-search": "Lêgerîn",
        "searchsuggest-containing": "dihundirîne...",
+       "api-error-filename-tooshort": "Navê dosyeyê pir kurt e.",
        "expand_templates_output": "Encam",
        "expand_templates_ok": "Baş e",
        "expand_templates_preview": "Pêşdîtin",
+       "pagelang-language": "Ziman",
+       "pagelang-select-lang": "Zimanekî hilbijêre",
+       "right-pagelang": "Zimanê rûpelê biguherîne",
+       "action-pagelang": "zimanê rûpelê biguherîne",
+       "log-name-pagelang": "Têketina ziman biguherîne",
        "special-characters-group-latin": "Latînî",
        "special-characters-group-latinextended": "Latînî berfirehkirî",
        "special-characters-group-ipa": "IPA",
index ed289f8..1c48612 100644 (file)
        "createacct-error": "Error in ratione creanda",
        "createaccounterror": "Rationem creare non potuit: $1",
        "nocookiesnew": "Ratio usoris creata est, sed conventum non apertum est. {{SITENAME}} ''Cookies'' utitur in usorum conventa aperiendo. Cookies tua debiles sunt. Eis potestatem fac, tum conventum aperi cum nomine usoris tesseraque tua nova.",
-       "nocookieslogin": "{{SITENAME}} ''Cookies'' utitur in usorum conventa aperiendo. Cookies tua debiles sunt. Eis potestatem fac, tum conare denuo.",
+       "nocookieslogin": "{{SITENAME}} ''Cookies'' in conventis collatorum aperiendis adhibentur. ''Cookies'' tua debilitata sunt. Eis potestatem fac, tum conare denuo.",
        "noname": "Nomen usoris ratum non designavisti.",
        "loginsuccesstitle": "Conventum prospere apertum est",
        "loginsuccess": "'''Apud {{grammar:accusative|{{SITENAME}}}} agnosceris nomine \"$1\".'''",
index 543e8ef..6bbfa60 100644 (file)
        "pool-timeout": "Timeout bis d'Spär opgehuewen ass",
        "pool-queuefull": "Pool-Queue ass voll",
        "pool-errorunknown": "Onbekannte Feeler",
+       "pool-servererror": "De Pool-Counter-Service ass net disponibel ($1).",
        "poolcounter-usage-error": "Benotzungsfeeler: $1",
        "aboutsite": "Iwwer {{SITENAME}}",
        "aboutpage": "Project:Iwwer",
        "filerenameerror": "De Fichier \"$1\" konnt net op \"$2\" ëmbenannt ginn.",
        "filedeleteerror": "De Fichier \"$1\" konnt net geläscht ginn.",
        "directorycreateerror": "De Repertoire \"$1\" konnt net geschafe ginn.",
+       "directoryreadonlyerror": "De Repertoire \"$1\" ka just geliest ginn.",
+       "directorynotreadableerror": "Repertoire \"$1\" kann net geliest ginn.",
        "filenotfound": "De Fichier \"$1\" gouf net fonnt.",
        "unexpected": "Onerwaarte Wäert: \"$1\"=\"$2\".",
        "formerror": "Feeler: Dat wat Dir aginn hutt konnt net verschafft ginn.",
        "no-null-revision": "Déi nei Nullversioun fir d'Säit \"$1\" konnt net ugeluecht ginn",
        "badtitle": "Schlechten Titel",
        "badtitletext": "De gewënschten Titel ass net valabel, eidel, oder een net korrekten Interwiki Link.",
-       "title-invalid-interwiki": "Am Titel ass en Interwiki-Link",
+       "title-invalid-empty": "Den ugefrote Säitentitel ass eidel oder besteet just aus dem Numm vun engem Nummraum.",
+       "title-invalid-utf8": "Am ugefrote Säitentitel ass eng  net valabel UTF-8 Sequenz.",
+       "title-invalid-interwiki": "Am ugefrote Säitentitel ass en Interwiki-Link deen net fir Titele benotzt ka ginn.",
+       "title-invalid-talk-namespace": "Den ugefrote Säitentitel bezitt sech op eng Diskussiounssäit déi et net gi kann.",
+       "title-invalid-characters": "Den ugefrote Säitentitel huet net valabel Buschtawen: \"$1\".",
+       "title-invalid-relative": "Titel huet e relative Pad. Relativ Säitentiteleln (./, ../) sinn net valabel well se dacks net erreechbar wa se vum Browser vum Benotzer verschafft ginn.",
+       "title-invalid-magic-tilde": "Den ugefrote Säitentitel huet eng net-valabel magesch Tild-Sequenz (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Den ugefrote Säitentitel ass ze laang. En däerf net méi laang wéi $1 {{PLURAL:$1|Byte|Byten}} am UTF-8 Format sinn.",
+       "title-invalid-leading-colon": "Den ugefrote Säitentitel huet en net valabelen Doppelpunkt am Ufank.",
        "perfcached": "Dës Date kommen aus dem Tëschespäicher a si méiglecherweis net aktuell. Maximal {{PLURAL:$1|ee Resultat ass|$1 Resultater sinn}} am Tësche späicher disponibel.",
        "perfcachedts": "Dës Donnéeë kommen aus dem Tëschespäicher, a goufe fir d'lescht den $1 aktualiséiert. Maximal {{PLURAL:$4|ee Resultat ass|$4 Resultater sinn}} am Tëschespäicher disponibel.",
        "querypage-no-updates": "D'Aktualiséierung vun dëser Säit ass zur Zäit ausgeschalt. D'Date gi bis op weideres net aktualiséiert.'''",
        "mergehistory-empty": "Et kënne keng Versioune zesummegeluecht ginn.",
        "mergehistory-success": "{{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-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.",
        "mergehistory-invalid-source": "D'Originalsäit muss ee gültege Säitennumm hunn.",
        "userrights-lookup-user": "Benotzergruppe verwalten",
        "userrights-user-editname": "Benotzernumm uginn:",
        "editusergroup": "Benotzergruppen änneren",
-       "editinguser": "Ännere vun de Rechter vum Benotzer '''[[User:$1|$1]]''' $2",
+       "editinguser": "Ännere vun de Rechter vum  {{GENDER:$1|Benotzer}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Benotzergruppen änneren",
        "saveusergroups": "Benotzergruppe späicheren",
        "userrights-groupsmember": "Member vun:",
        "unusedimages": "Net benotzt Fichieren",
        "wantedcategories": "Gewënscht Kategorien",
        "wantedpages": "Gewënscht Säiten",
-       "wantedpages-summary": "Lëscht vun de Säiten, déi et nach net gëtt, mat de meeschte Linken drop, ouni d'Säiten op déi nëmme Viruleedunge linken. Fir eng Lëscht vun de Säiten, déi et nach net gëtt, op déi Viruleedunge linken kuckt w.e.g. [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "Lëscht vun de Säiten, déi et nach net gëtt, mat de meeschte Linken drop, ouni d'Säiten op déi nëmme Viruleedunge linken. Fir eng Lëscht vun de Säiten, déi et nach net gëtt, op déi Viruleedunge linken kuckt w.e.g. [[{{#special:BrokenRedirects}}|d'Lëscht vun de futtisse Viruleedungen]].",
        "wantedpages-badtitle": "Net valabelen Titel am Resultat: $1",
        "wantedfiles": "Gewënscht Fichieren",
        "wantedfiletext-cat": "Dës Fichiere gi benotzt awer et gëtt se net. Fichiere aus frieme Repositorie kënnen hei gewise ginn och wann et se gëtt. All sou falsch Positiver ginn <del>duerchgestrach</del>. Zousätzlech gi Säiten an deene Fichieren dra sinn déi et net gëtt op [[:$1]] gewisen.",
        "import-interwiki-history": "Importéier all d'Versioune vun dëser Säit",
        "import-interwiki-templates": "Mat alle Schablounen",
        "import-interwiki-submit": "Import",
+       "import-mapping-namespace": "Import an een Nummraum:",
+       "import-mapping-subpage": "Als Ënnersäiten op dës Säit importéieren:",
        "import-upload-filename": "Numm vum Fichier:",
        "import-comment": "Bemierkung:",
        "importtext": "Exportéiert de Fichier w.e.g. vun der Source-Wiki mat der [[Special:Export|Export-Funktioun]].\nSpäichert en op Ärem Computer of a luet en hei nees erop.",
        "version-ext-colheader-description": "Beschreiwung",
        "version-ext-colheader-credits": "Auteuren",
        "version-license-title": "Lizenz fir $1",
+       "version-license-not-found": "Et gouf keng detailléiert Linzenzinformatioun fir dës Erweiderung fonnt.",
        "version-credits-title": "E spezielle Merci fir $1",
        "version-poweredby-credits": "Dës Wiki funktionéiert mat '''[https://www.mediawiki.org/ MediaWiki]''', Copyright © 2001-$1 $2.",
        "version-poweredby-others": "anerer",
        "tags-create-submit": "Uleeën",
        "tags-create-no-name": "Dir musst den Numm vun enger Markéierung (tag) uginn.",
        "tags-create-already-exists": "D'Markéierung (tag) ''$1'' gëtt et schonn.",
+       "tags-create-warnings-above": "Dës {{PLURAL:$2|Warnung ass|Warnunge si}} beim Versuch d'Markéierung (tag) \"$1\" unzeleeën.",
        "tags-delete-title": "Markéierung (tag) läSchen",
+       "tags-delete-explanation-initial": "Dir sidd am Gaang d'Markéierung (tag) \"$1\" aus der Datebank ze läschen.",
+       "tags-delete-explanation-warning": "Dës Aktioun ass <strong>irreversibel</strong> a <strong>kann net réckgängeg gemaach ginn</strong>, net emol vun den Administrateure vun der Datebank. Sidd Iech sécher datt et dës Markéierung ass déi Dir läsche wëllt.",
        "tags-delete-reason": "Grond:",
        "tags-delete-not-found": "D'Markéierung (tag) ''$1'' gëtt et net.",
        "tags-activate-title": "Markéierung (tag) aktivéieren",
        "tags-deactivate-reason": "Grond:",
        "tags-deactivate-not-allowed": "Et ass net méiglech d'Markéierung \"$1\" ze desaktivéieren.",
        "tags-deactivate-submit": "Desaktivéieren",
+       "tags-apply-not-allowed-one": "D'Markéierung \"$1\" däerf net manuell applizéiert ginn.",
+       "tags-update-add-not-allowed-one": "D'Markéierung (tag) \"$1\" däerf net manuell dobäigesat ginn.",
+       "tags-update-add-not-allowed-multi": "Dës {{PLURAL:$2|Markéierung däerf|Markéierungen däerfen}} net manuelle derbäi gesat ginn: $1",
        "tags-update-remove-not-allowed-one": "D'Markéierung (tag) \"$1\" däerf net ewechgeholl ginn.",
        "tags-update-remove-not-allowed-multi": "Dës {{PLURAL:$2|Markéierung däerf|Markéierungen däerfen}} net manuell ewechgeholl ginn: $1",
+       "tags-edit-title": "Markéierungen (tags) änneren",
+       "tags-edit-manage-link": "Markéierunge geréieren",
        "tags-edit-revision-selected": "{{PLURAL:$1|Erausgesicht Versioun|Erausgesicht Versioune}} vu(n) [[:$2]]:",
        "tags-edit-existing-tags-none": "''Keng''",
        "tags-edit-new-tags": "Nei Markéierungen (tags):",
        "tags-edit-add": "Dës Markéierungen (tags) dobäisetzen:",
+       "tags-edit-remove-all-tags": "(all Markéierungen ewechhuelen)",
+       "tags-edit-chosen-no-results": "Keng Markéierunge fonnt déi passen",
        "tags-edit-reason": "Grond:",
        "tags-edit-revision-submit": "Ännerungen op {{PLURAL:$1|dës Versioun|$1 Versiounen}} uwennen",
        "tags-edit-success": "D'Ännerunge goufen applizéiert.",
        "revdelete-uname-unhid": "Benotzernumm net verstoppt",
        "revdelete-restricted": "Limitatioune fir Administrateuren ageschalt",
        "revdelete-unrestricted": "Limitatioune fir Administrateuren opgehuewen",
+       "logentry-block-block": "$1 {{GENDER:$2|huet}} {{GENDER:$4|$3}} fir eng Zäit vu(n) $5 $6 gespaart",
        "logentry-block-unblock": "$1 {{GENDER:$2|huet}} d'Spär vum {{GENDER:$4|$3}} opgehuewen",
+       "logentry-import-upload": "$1 {{GENDER:$2|huet}} $3 duerch Eropluede vun engem Fichier importéiert",
        "logentry-import-interwiki": "$1 huet $3 vun enger anerer Wiki {{GENDER:$2|importéiert}}",
        "logentry-move-move": "$1 huet d'Säit $3 op $4 {{GENDER:$2|geréckelt}}",
        "logentry-move-move-noredirect": "$1 huet d'Säit $3 op $4 {{GENDER:$2|geréckelt}} ouni eng Viruleedung unzeleeën",
        "logentry-upload-upload": "$1 huet $3 {{GENDER:$2|eropgelueden}}",
        "logentry-upload-overwrite": "$1 huet eng nei Versioun vu(n) $3 {{GENDER:$2|eropgelueden}}",
        "logentry-upload-revert": "$1 huet $3 {{GENDER:$2|eropgelueden}}",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|huet}} d'{{PLURAL:$7|Markéierung|Markéierunge(n)}} $6 op d'Versioun $4 vun der Säit $3 dobäigesat",
        "rightsnone": "(keen)",
        "revdelete-summary": "Resumé änneren",
        "feedback-adding": "Feedback gëtt bei d'Säit derbäigesat...",
        "feedback-message": "Message:",
        "feedback-subject": "Sujet:",
        "feedback-submit": "Schécken",
+       "feedback-termsofuse": "Ech sinn d'accord Feedback ze ginn esou wéi et an den Allgemenge Bedingunge virgesinn ass.",
        "feedback-thanks": "Merci! Äre Feedback gouf op der Säit \"[$2 $1]\" gespäichert.",
        "feedback-thanks-title": "Merci!",
        "feedback-useragent": "User Agent:",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (aktivéiert)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''desaktivéiert''')",
        "mediastatistics": "Statistike vun de Medien",
+       "mediastatistics-summary": "Statistike vun den Type vun den eropgeluedene Fichieren. Dobäi gëtt nëmmen déi lescht Versioun vun engem Fichier gezielt, al oder geläscht Versioune vu Fichiere sinn ausgeschloss.",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 Byte|$1 Byten}} ($2; $3%)",
        "mediastatistics-table-mimetype": "MIME-Typ",
        "mediastatistics-table-extensions": "Méiglech Erweiderungen",
index 83aeb8a..61899f6 100644 (file)
@@ -14,7 +14,8 @@
                        "Reedy",
                        "Soul Train",
                        "Умар",
-                       "아라"
+                       "아라",
+                       "Amire80"
                ]
        },
        "tog-underline": "ЭлячӀунрин кӀаникай цӀар чӀугун",
        "powersearch-togglelabel": "Акун",
        "powersearch-toggleall": "Вири",
        "powersearch-togglenone": "Садни",
-       "preferences": "Туькlуьрун",
-       "mypreferences": "низамарунар",
+       "preferences": "ТуькӀуьрун",
+       "mypreferences": "Ð\9dизамарунар",
        "prefs-edits": "Дьузар хъувунрин кьадар",
        "prefs-skin": "Къайдадиз ттунин тема",
        "skin-preview": "Сифтедин килигун",
index 66a5e66..afa57a7 100644 (file)
@@ -4,7 +4,8 @@
                        "Bonevarluri",
                        "Mogoeilor",
                        "아라",
-                       "Macofe"
+                       "Macofe",
+                       "Mjbmr"
                ]
        },
        "tog-underline": "هوم پیوند زیرخط دار:",
        "category-empty": "ای دسه واقعن ده ور گرته هیژ بلگه ای یا وارسگر ای نی",
        "hidden-categories": "{{PLURAL:$1|دسته قام بيه|دسته يا قام بيه}}",
        "hidden-category-category": "دسه یا قام بیه",
-       "category-subcat-count": "{{جمی:$2|ای دسه فقط زیر دسه دینداگر هان دش .|ای دسه {{جمی:$1| زیردسه|$1 زیردسه یا}}هئ , وه در د $2 کل.}}",
-       "category-subcat-count-limited": "ای دسه وا دم {{جمی:$1|زیردسه|$1زیردسه یا}} بوئه",
-       "category-article-count": "{{جمی:$2|ای دسه ده ور گرته بلگه نهاییه .| {{جمی:$1| بلگه هئ|$1 بلگیا هئن}} د ای دسه, وه در $2 کل.}}",
-       "category-article-count-limited": "نها {{جمی:$1|بلگه هئ|$1بلگیا هئن}} د دسه ایسنی .",
-       "category-file-count": "{{جمی:$2|ای دسه فقط د ور گرته جانیا نهایی هئ file.| نهایی {{جمی:$1|جانیا هئ|$1 جانیایا هئن}} د ای دسه, وه در د کل $2 .}}",
-       "category-file-count-limited": " {{جمی:$1|[جانیا هئ|1$جانیایا هئن}}نهایی هان د دسه ایسنی.",
+       "category-subcat-count": "{{PLURAL:$2|ای دسه فقط زیر دسه دینداگر هان دش .|ای دسه {{جمی:$1| زیردسه|$1 زیردسه یا}}هئ , وه در د $2 کل.}}",
+       "category-subcat-count-limited": "ای دسه وا دم {{PLURAL:$1|زیردسه|$1زیردسه یا}} بوئه",
+       "category-article-count": "{{PLURAL:$2|ای دسه ده ور گرته بلگه نهاییه .| {{جمی:$1| بلگه هئ|$1 بلگیا هئن}} د ای دسه, وه در $2 کل.}}",
+       "category-article-count-limited": "نها {{PLURAL:$1|بلگه هئ|$1بلگیا هئن}} د دسه ایسنی .",
+       "category-file-count": "{{PLURAL:$2|ای دسه فقط د ور گرته جانیا نهایی هئ file.| نهایی {{جمی:$1|جانیا هئ|$1 جانیایا هئن}} د ای دسه, وه در د کل $2 .}}",
+       "category-file-count-limited": " {{PLURAL:$1|[جانیا هئ|1$جانیایا هئن}}نهایی هان د دسه ایسنی.",
        "listingcontinuesabbrev": "دماله",
        "index-category": "بلگيا سيائه دار",
        "noindex-category": "بلگيا بی سيائه",
        "delete": "پاکسا كردن",
        "deletethispage": "ای بلگه نه پاکسا بكيد",
        "undeletethispage": "ای بلگه نه پاکسا نكيد",
-       "undelete_short": "زنه کردن {{جمی:$1|یه گل ویرایشت|$1 ویرایشتیا}}",
+       "undelete_short": "زنه کردن {{PLURAL:$1|یه گل ویرایشت|$1 ویرایشتیا}}",
        "viewdeleted_short": "بوینیت {{[جمی:$1|یه گل ویرایشت پاکسا بیه|$1ویرایشتیا پاکسا بیه}}",
        "protect": "پر و پیم بكيد",
        "protect_change": "آلشت بكيد",
        "privacypage": "پروجه: خط مشی رازینه کاری کردن",
        "badaccess": "خطا :صلاداری کو",
        "badaccess-group0": "شما صلا انجوم کاری که حاستیت نارین",
-       "badaccess-groups": "ای کاری که شما هاستیته سی کاریاریا د  {{جمی:$2|گرو|یکی د گرویا}}: $1 کم بیه",
+       "badaccess-groups": "ای کاری که شما هاستیته سی کاریاریا د  {{PLURAL:$2|گرو|یکی د گرویا}}: $1 کم بیه",
        "versionrequired": "یه نسقه د حاستنیا ویکی وارسگر\n$1",
        "versionrequiredtext": "نسقه $1 ویکی وارسگر سی وه کار گرتن د ای بلگه لازمه.\nوه نه بوینیت [[ویجه:نسقه|نسقه بلگه]].",
        "ok": "خوئه",
        "backlinksubtitle": "← $1",
        "retrievedfrom": "د نو زنه بیه د\"$1\"",
        "youhavenewmessages": "شما داريت $1($2)",
-       "youhavenewmessagesfromusers": "{{جمی:$4|شما }} $1 د {{جمی:$3|کاریار هنی|$3 کاریاریا}}داریتو($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|شما }} $1 د {{PLURAL:$3|کاریار هنی|$3 کاریاریا}}داریتو($2).",
        "youhavenewmessagesmanyusers": "شما $1 د  فره کاریار داريت ($2).",
-       "newmessageslinkplural": "{{جمی:$1|یه گل پیغوم تازه|999=پیغومیا تازه}}",
-       "newmessagesdifflinkplural": "آخر {{جمی:$1|آلشت|آلشتیا}}",
+       "newmessageslinkplural": "{{PLURAL:$1|یه گل پیغوم تازه|999=پیغومیا تازه}}",
+       "newmessagesdifflinkplural": "آخر {{PLURAL:$1|آلشت|آلشتیا}}",
        "youhavenewmessagesmulti": "شما یه گل پیغوم تازه د $1 داریتو",
        "editsection": "ويرايشت",
        "editold": "ويرايشت",
        "confirmable-no": "نه",
        "thisisdeleted": "دیئن یا ورگنين $1?",
        "viewdeleted": "دیئن$1?",
-       "restorelink": "{{جمی:$1|یه گل ویرایشت پاک بیه|$1 ویرایشتیا پاک بیه}}",
+       "restorelink": "{{PLURAL:$1|یه گل ویرایشت پاک بیه|$1 ویرایشتیا پاک بیه}}",
        "feedlinks": "هوال حون:",
        "feed-invalid": "نوع مشترک بین هوال حون نامعتور",
        "feed-unavailable": "هوال حونیا د دسرس نئین",
        "no-null-revision": "سی بلگه$1 وانئری خنثی نه راس بکید",
        "badtitle": "داسون گن",
        "badtitletext": "داسون بلگه حاسته بیه معتور نی،یا  یه گل مئن زونی یا مئن ویکی داسون غلطه.\nیه شایت د ور گرته یکی با یا بیشتر کاراکتریا نبوئه سی ای داسونیا وه کار گرته بوئن",
-       "perfcached": "رسینه یا نهایی د ویرگه نهونی موکشت بینه و شایت هنی وه هنگوم سازی نبینه.بیشترونه {{جمی:$4|یه گل نتیجه|$4 یه گل نتیجه}} د ویرگه نهونی هان د دسرس.",
-       "perfcachedts": "رسینه یا نهایی د ویرگه نهونی موکشت بینه و شایت هنی وه هنگوم سازی نبینه.بیشترونه {{جمی:$4|یه گل نتیجه|$4 یه گل نتیجه}} د ویرگه نهونی هان د دسرس.",
+       "title-invalid-empty": "داسون بلگه حاستنی حالیه یا فقط مینونه دار یه گل نوم یا نومجائه.",
+       "title-invalid-utf8": "داسون بلگه حاستنی مینونه دار یه گل نماجا UTF-8 نامعتوره.",
+       "title-invalid-interwiki": "داسون مینونه دار یه گل هوم پیوند مینجا ویکیه",
+       "title-invalid-talk-namespace": "داسون بلگه حاستنی وه یه گل بلگه چک چنه که نئیش هشاره میکه.",
+       "title-invalid-characters": "داسون بلگه حاستنی مینونه دار یه گل کاراکتر نامعتوره \"1$\" ه.",
+       "title-invalid-relative": "داسون یه گل مسیر هوم دنگ داره.داسون بلگه هوم دنگ(./, ../) نامعتوره، سی یه که ونو د گاتی که دوارته نیئر کاریار وه کار گرته بوئن نمیان د بلگه نمایشت دوارته نیئر.",
+       "title-invalid-magic-tilde": "داسون بلگه حاستنی مینونه دار یه گل نماجا جادویی نامعتوره(<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "داسون بلگه حاستنی فره گپه. د حال و بار رازینه کاری UTF-8 انازه وه نواس د $1 بایت گپتر بوئه.",
+       "title-invalid-leading-colon": "داسون بلگه حاستنی مینونه دار یه گل کلون نامعتور د شرو کارشه.",
+       "perfcached": "رسینه یا نهایی د ویرگه نهونی موکشت بینه و شایت هنی وه هنگوم سازی نبینه.بیشترونه {{PLURAL:$4|یه گل نتیجه|$4 یه گل نتیجه}} د ویرگه نهونی هان د دسرس.",
+       "perfcachedts": "رسینه یا نهایی د ویرگه نهونی موکشت بینه و شایت هنی وه هنگوم سازی نبینه.بیشترونه {{PLURAL:$4|یه گل نتیجه|$4 یه گل نتیجه}} د ویرگه نهونی هان د دسرس.",
        "querypage-no-updates": "نبوئه ای بلگه وه هنگوم سازی با.\nرسینه یا ایچه تازه نبیه.",
        "viewsource": "سرچشمه نه بوينيت",
        "viewsource-title": "سرچشمه $1 بوينيت",
        "protectedinterface": "ای بلگه سی نرم افزار د ای ویکی نیسسه آماده می که، و د   .\nسی اضاف کردن یا آلشت دئن د همه ویکی یا لطفا [//translatewiki.net/ translatewiki.net] نه به کار بؤریت، ولات نشین کنی پروجه ویکی وارسگر.",
        "editinginterface": "<strong>زئنار دئن:</strong> شما داریت بلگه ای نه که سی      بیه ویرایشت می کید.",
        "translateinterface": "سی اضاف کردن یا آلشت دئن والرسته یا د همه ویکی یا،لطف بکید[//translatewiki.net/ translatewiki.net] وه کار بئیریت، پروجه ولات دیاری کردن ویکی وارسگر",
-       "cascadeprotected": "ای بلگه د ویرایشت پر و پیم بیه سی یه که {{جمی:$1|وه بلگه یه |ونو بلگه یان}} که ها دش د                 :\n$2",
+       "cascadeprotected": "ای بلگه د ویرایشت پر و پیم بیه سی یه که {{PLURAL:$1|وه بلگه یه |ونو بلگه یان}} که ها دش د                 :\n$2",
        "namespaceprotected": "شما حقی سی ویرایشت بلگه یایی که هان د نومجا  <strong>$1</strong> ناریت.",
        "customcssprotected": "شما سی ویرایشت ای بلگه سی اس اس اجازه ناریت سی یه که میزونکاری دونسمنیا شخصی یه کاریار هنی ها د وه.",
        "customjsprotected": "شما سی ویرایشت ای بلگه جاوا اسکریپت صلا ناریت سی یه که میزونکاری دونسمنیا شخصی یه کاریار هنی ها د وه.",
        "yourpasswordagain": "دوواره رازینه گواردن نه بزه",
        "createacct-yourpasswordagain": "رازینه گواردن نه پشت راس كو",
        "createacct-yourpasswordagain-ph": "دوواره رازینه گواردن نه بزه",
-       "remembermypassword": "اومائن وا مین منه د ای دوارته نیئر د ویر داشتو(سی بیشترونه$1{{جمی:$1|روز|روزیا}})",
+       "remembermypassword": "اومائن وا مین منه د ای دوارته نیئر د ویر داشتو(سی بیشترونه$1{{PLURAL:$1|روز|روزیا}})",
        "userlogin-remembermypassword": "منه مین سامونه وادار",
        "userlogin-signwithsecure": "د وصل بيئن امن وه کار بیئر",
        "yourdomainname": "پوشگیر شما:",
        "userlogin-resetlink": "جزییات وامین اومائن تونه د ویر بردیته",
        "userlogin-resetpassword-link": "رازینه گواردن د ویرتو رئته؟",
        "userlogin-helplink2": "هومیاری وا مین اومائن",
-       "userlogin-loggedin": "شما ایسه چی {{جنس:$1|$1}} اومایته وا مین.\nد نوم بلگه هاری سی وا مین اومائن چی یه گل کاریار هنی وه کار بیئرتو.",
+       "userlogin-loggedin": "شما ایسه چی {{GENDER:$1|$1}} اومایته وا مین.\nد نوم بلگه هاری سی وا مین اومائن چی یه گل کاریار هنی وه کار بیئرتو.",
        "userlogin-createanother": "يه گل حساوهنی راست بكيد",
        "createacct-emailrequired": "تیرنشون انجومانامه",
        "createacct-emailoptional": "تیرنشون انجومانامه",
        "createacct-submit": "حساو خوتونه راس بكيد",
        "createacct-another-submit": "يه گل حساوهنی راست بكيد",
        "createacct-benefit-heading": "{{نوم مالگه}} وه دس خلکی چی شما راس بیه.",
-       "createacct-benefit-body1": "{{جمی:$1|ویرایشت|ویرایشتیا}}",
-       "createacct-benefit-body2": "{{جمی:$1|بلگه|بلگه یا}}",
-       "createacct-benefit-body3": "تازه{{جمی:$1|هومیار|هومیارا}}",
+       "createacct-benefit-body1": "{{PLURAL:$1|ویرایشت|ویرایشتیا}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|بلگه|بلگه یا}}",
+       "createacct-benefit-body3": "تازه{{PLURAL:$1|هومیار|هومیارا}}",
        "badretype": "رازینه گواردنی که شما دئیته مطاوقت ناره",
        "userexists": "کاریارنوم که وارد بیه د ایسه وه کار گرته بوئه.\nلطف بکید یه گل نوم هنی انتخاو بکید",
        "loginerror": "خطا اومائن د سيستم",
        "password-login-forbidden": "وه کار گرتن ای پاسوردو نوم کاریاری قدقن بیه.",
        "mailmypassword": "د نۈ وارد كردن رازینه گواردن",
        "passwordremindertitle": "رازینه گواردن موقت تازه سی {{SITENAME}}",
-       "passwordremindertext": "یه نفر(شات خوتو،د تیرنشون آی پی $1) یه گل رازینه گواردن هنی سی {{نوم دیارگه}}($4) حاسته.یه گل رازینه گواردن موقتی سی کاریاری\"$2\" دروس بیه و د \"$3\" جاگر بیه. ار قصدتو یه بیه،شما واس ایسه روئیت وامین و یه گل رازینه گواردن هنی انتخاو بکید.\nرازینه گورادن موقتی د  {{جمی:$5|یه رو|$5 رو}}  تموم بوئه.\n\nار یه نفر هنی یه حاست داشتوئه،یا ار رازینه گورادن تونه د ویرتو اوما، و ار نحاستیت ونه آلشت بکیت، شما شایت د ای پیغوم تیه پوش بکیت و بحایت د وه کار بسن رازینه گواردن دماترتو دماداری بکیت.",
+       "passwordremindertext": "یه نفر(شات خوتو،د تیرنشون آی پی $1) یه گل رازینه گواردن هنی سی {{نوم دیارگه}}($4) حاسته.یه گل رازینه گواردن موقتی سی کاریاری\"$2\" دروس بیه و د \"$3\" جاگر بیه. ار قصدتو یه بیه،شما واس ایسه روئیت وامین و یه گل رازینه گواردن هنی انتخاو بکید.\nرازینه گورادن موقتی د  {{PLURAL:$5|یه رو|$5 رو}}  تموم بوئه.\n\nار یه نفر هنی یه حاست داشتوئه،یا ار رازینه گورادن تونه د ویرتو اوما، و ار نحاستیت ونه آلشت بکیت، شما شایت د ای پیغوم تیه پوش بکیت و بحایت د وه کار بسن رازینه گواردن دماترتو دماداری بکیت.",
        "noemail": "هیچ تیرنشون انجومانامه ای سی کاریار $1 ضفط نبیه.",
        "noemailcreate": "شما باید یه تیرنشون انجومانامه خو فراهم بکید",
        "passwordsent": "یه گل رازینه گواردن هنی سی تیرنشون انجومانامه ای که \"$1\" واش ثوت نام کرده بی کل بیه.\nخواهش میکیم هنی رویئت وامین و اوسه بئریتش.",
        "blocked-mailpassword": "نها آی پی شما سی ویرایشت گرته بیه، و",
        "eauthentsent": "یه گل انجومانامه پشت راس کردنی د یه گل تیرنشون ویجه کل بیه.\nدما یه که یه گل انجومانامه هنی د حساو کل بوئه، شما واس دما رئنمونی نه د انجومانامه بئریت، سی یه که حساو شما راستکی پشت راست بوئه.",
-       "throttled-mailpassword": "یه گل رازینه گواردن دواره زنه بیه ایسه کل بیه، د آخری {{جمی:$1|ساعت|$1 ساعتیا}}.\nسی نهاگری د اذیت دئن،فقط یه گل رازینه گواردن د انجومانامه دواره زنه بیه د هر {{جمی:$1|ساعت|$1 ساعتیا}} کل بیه.",
+       "throttled-mailpassword": "یه گل رازینه گواردن دواره زنه بیه ایسه کل بیه، د آخری {{PLURAL:$1|ساعت|$1 ساعتیا}}.\nسی نهاگری د اذیت دئن،فقط یه گل رازینه گواردن د انجومانامه دواره زنه بیه د هر {{PLURAL:$1|ساعت|$1 ساعتیا}} کل بیه.",
        "mailerror": "خطا داره کل موئه:$1",
-       "acct_creation_throttle_hit": "سیل کریا ای ویکی تیرنشون آی پی شما وه کار گرتنه د روز دمایی {{جمی:$1|1 حساو|$1 حساویا}} نه دروس کردنه، و وه د بیشترونه صلا دئن د ای دوره گاتی انجوم بیه.\nد نتیجه، سیل کریایی که د ای تیرنشون آی پی وه کار گرتنه نمی تونن  حساویا بیشتری د ای گات دروس بکن.",
+       "acct_creation_throttle_hit": "سیل کریا ای ویکی تیرنشون آی پی شما وه کار گرتنه د روز دمایی {{PLURAL:$1|1 حساو|$1 حساویا}} نه دروس کردنه، و وه د بیشترونه صلا دئن د ای دوره گاتی انجوم بیه.\nد نتیجه، سیل کریایی که د ای تیرنشون آی پی وه کار گرتنه نمی تونن  حساویا بیشتری د ای گات دروس بکن.",
        "emailauthenticated": "تیرنشون انجومانامه تونه د $2 سی 3$ مئکم بیه.",
        "emailnotauthenticated": "تیرنشون انجومانامه شما تا ایسه پشت راسگری نبیه.\nهنی انجومانامه ای سی چیا ری به نها کل نبیه.",
        "noemailprefs": "یه گل تیرنشون انجومانامه د الویتیاتو سی یه که ای ویجه گیا کار بکن انتخاو بکیت.",
        "resetpass-validity-soft": "رازینه گواردتون تو معتور نئ:$1\n\nلطفن یه گل رازینه گواردن هنی انتخاو بکیت، یا ری ایچه \"{{int:resetpass-submit-cancel}}\" سی د نو زنه کردن وه د نهاتر بپورنیت.",
        "passwordreset": "د نۈ وارد كردن رازینه گواردن",
        "passwordreset-text-one": "ای نوم بلگه نه سی گرتن یه گل رازینه گواردن موقتی وا انجومانامه پر بکیت.",
-       "passwordreset-text-many": "{{جمی:$1|یه گل د رشنه گه یا نه سی یه که رازینه گواردن موقتی وا انجومانامه گرته بوئه پر بکیت}}",
+       "passwordreset-text-many": "{{PLURAL:$1|یه گل د رشنه گه یا نه سی یه که رازینه گواردن موقتی وا انجومانامه گرته بوئه پر بکیت}}",
        "passwordreset-legend": "د نۈ وارد كردن رازینه گواردن",
        "passwordreset-disabled": "نو کرد رازینه گواردن د ای ویکی ناکشتگر بیه.",
        "passwordreset-emaildisabled": "چی یا هنی انجومانامه د ای ویکی ناکشتگر بیه.",
        "passwordreset-emailelement": "نوم کاریاری: $1\nرازینه گواردن موقتی: $2",
        "passwordreset-emailsent": "رازینه گواردن هنی سی انجومانامه کل بیه.",
        "passwordreset-emailsent-capture": "رازینه گواردن تازه تو د انجومانامه تو که د هار نشو دئه بیه کل بیه",
-       "passwordreset-emailerror-capture": "رازینه گواردن د انجومانامه د نو زنه کننه راس بیه، و وه د هار دیاری می که، اما کل بیین وه د{{جنس:$2|کاریار}} شکست حرده:$1",
+       "passwordreset-emailerror-capture": "رازینه گواردن د انجومانامه د نو زنه کننه راس بیه، و وه د هار دیاری می که، اما کل بیین وه د{{GENDER:$2|کاریار}} شکست حرده:$1",
        "changeemail": "انجومانامه تو نه آلشت بکید",
        "changeemail-text": "ای نوم بلگه نه سی آلشت دئن تیرنشون انجومانامه تو پر بکیت. شما سی پشت راس کردن ای آلشت واس رازینه گواردن خوتونه وارد بکیت.",
        "changeemail-no-info": "شما با بیایت د سامونه تا د ای بلگه دسرسی داشتویت",
        "newarticle": "تازه",
        "newarticletext": "شما وادما هوم پیوندی هئیت که وجود ناره.\nسی راس کردن بلگه.شرو د نیسنن مئن جعوه هاری بکید(سیل[$1 ] سی دونسمنی بیشتر بکید).\nار شما سی اشتوا کردن هایئن ایچه، دگمه وادما رئتن دوارته نیئر تونه بپورنیت.",
        "anontalkpagetext": "----",
-       "noarticletext": "د تازه یا د ای بلگه نیسسه نی.\nشما می تونیت د[[Special:/{{PAGENAME}}|]] بگردید د ای بلگه یا د بلگیا هنی یا<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}   د هنی پی جوری بوئه  logs]</span>   \n   [{{fullurl:{{FULLPAGENAME}}|action=edit}} یای ای بلگه نه ویرایشت بکیدpage]</span>.",
-       "noarticletext-nopermission": "د تازه یا د ای بلگه نیسسه نی.\nشما می تونیت د[[Special:/{{PAGENAME}}]] بگردید د ای بلگه یا د بلگیا هنی یا<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}   د هنی پی جوری بوئه  logs]</span>      اما شما حق ناریتو ای بلگه نه راس بکیت",
+       "noarticletext": "د تازه یا د ای بلگه نیسسه نی.\nشما می تونیت د[[Special:Search/{{PAGENAME}}|بگردید]] د ای بلگه یا د بلگیا هنی یا <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} د هنی پی جوری بوئه]</span>، <span class=\"plainlinks\">[{{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}}}} deletion log]  پیدا بوئن.",
        "userpage-userdoesnotexist": "حساو کاریاری\"$1\" ثوت نام نبیه.\nار میهایت ای بلگه نه بسازیتو یا ویرایشت بکیت یه گل وارسی انجوم بئیت.",
        "userpage-userdoesnotexist-view": "حساو کارور\"$1\" ثوت نبیه.",
        "yourdiff": "فرخيا",
        "copyrightwarning": "لطفن د ویرتو با که ایچه فرض بوئه که همه هومیاریا شما وا{{SITENAME}} د شکل «$2» درتیچ بوئن(سی چیا تر روئیت وه $1).\nار نمیهایت که که نیسسه یاتو که فره ویرایشت بینه و دلحا درتیچ بان، د ایچه کلشو نکیت.<br />\nهمچنو شما داریت وه ایما قول میئیت که خوتو ونونن نویسنیته، یا ونه د یه گل سرچشمه آزاد وا بئرکرد همگونی یا چی وه ؤرداشتیته.\n'''کاریایی که حق درتیچسن (copyright) دارن بی صلا کل نکیت!'''",
        "copyrightwarning2": "لطفن د ویرتو با که ایچه فرض بوئه که همه هومیاریا شما وا{{SITENAME}} د شکل «$2» درتیچ بوئن(سی چیا تر روئیت وه $1).\nار نمیهایت که که نیسسه یاتو که فره ویرایشت بینه و دلحا درتیچ بان، د ایچه کلشو نکیت.<br />\nهمچنو شما داریت وه ایما قول میئیت که خوتو ونونن نویسنیته، یا ونه د یه گل سرچشمه آزاد وا بئرکرد همگونی یا چی وه ؤرداشتیته.\n'''کاریایی که حق درتیچسن (copyright) دارن بی صلا کل نکیت!'''",
-       "longpageerror": "<strong>خطا:نیسسه شما  {{جمی:$1|یه کلوبایت|$1 کلوبایت}}  درازی نه دئه، که ونو د بیشرونه انازه{{جمی:$2|یه کلوبایت|$2 کلوبایت}} گپترن.</strong>\nنبوئه وه اماییه با.",
+       "longpageerror": "<strong>خطا:نیسسه شما  {{PLURAL:$1|یه کلوبایت|$1 کلوبایت}}  درازی نه دئه، که ونو د بیشرونه انازه{{PLURAL:$2|یه کلوبایت|$2 کلوبایت}} گپترن.</strong>\nنبوئه وه اماییه با.",
        "readonlywarning": "<strong>زئنار:رسینه گا سی واداشت قلف بیه، سی یه نه که شما ایسه نمی تونیت ویرایشتیاتونه اماییه بکیت.</strong>\nشات شما بحایت که نیسسه خوتونه د جانیا نیسسه ای وردار بدیس بکیت و ونه سی نهاتر اماییه بکیت.\n\nدیوونداری که ونه قلف کرده چنی گوته:$1",
        "protectedpagewarning": "<strong>زئنار:ای بلگه سی یه پر و پیم بیه که کاریاریایی که دسرسی دیوونداری دارن فقط بتونن دش ویرایشت بکن.</strong>\nآخرین سیائه سی سرچشمه یا د هار اماییه کاری بیه:",
        "semiprotectedpagewarning": "<strong>د ویر داشتویت:</strong> ای بلگه سی یه که فقط کاریاریا ثوت نام کرده تونستون دش ویرایشت بکه ن پر و پیم بیه.\nآخرین پهرستنومه دئه بیه سی سرچشمه هار نها اماییه بیه:",
        "cascadeprotectedwarning": "<strong>زئنار:</strong> ای بلگه",
        "titleprotectedwarning": "<strong>زئنار:ای بلگه پر و پیم بیه سی یه که[[ویجه:نوم گه حقوق گرو|حقوق ویجه]] باید ونه دروس بکن .</strong>\nآخرین پهرستنومه دئه بیه سی سرچشمه دئن نهااماییه بیه:",
-       "templatesused": "{{جمی:$1|چوئه|چوئه یا}}د ای بلگه وه کار گرته بیه:",
-       "templatesusedpreview": "{{جمی:$1|چوئه|چوئه یا}}استفاده بیه د ای پیش سیل:",
-       "templatesusedsection": "{{جمی:$1|چوئه|چوئه یا}} وه کار گرته بیه د ای بخش:",
+       "templatesused": "{{PLURAL:$1|چوئه|چوئه یا}} د ای بلگه وه کار گرته بیه:",
+       "templatesusedpreview": "{{PLURAL:$1|چوئه|چوئه یا}}استفاده بیه د ای پیش سیل:",
+       "templatesusedsection": "{{PLURAL:$1|چوئه|چوئه یا}} وه کار گرته بیه د ای بخش:",
        "template-protected": "(پر و پیم بيه)",
        "template-semiprotected": "نصم و نیمه پر و پیم بیه",
        "hiddencategories": "ای بلگه يه اندوم د{{PLURAL:$1|1 hidden category|$1 hidden categories}}: هئ",
        "sectioneditnotsupported-title": "ویرایشت بهرجا حامین داری نبوئه",
        "sectioneditnotsupported-text": "ویرایشت بهرجایی د ای بلگه نئیش.",
        "permissionserrors": "خطا اجازه دئین",
-       "permissionserrorstext": "شما حق ناریت ونه انجوم بیئت, سی{{جمی:$1|دلیل|دلیلیا}} نهایی:",
+       "permissionserrorstext": "شما حق ناریت ونه انجوم بیئت, سی{{PLURAL:$1|دلیل|دلیلیا}} نهایی:",
        "permissionserrorstext-withaction": "شما سی $2 اجازه ناریت\nسی نهاگری {{PLURAL:$1|دلیل|دلیلیا}}:",
        "recreate-moveddeleted-warn": "'''زنهار شما بلگه ای که وادما پاکسا بیه هنی راس کردیته'''\nشما باید دونسه بایت که آیا هنی سی نها گرتن ویرایشت ای بلگه خوئه.\nپاکسا بیئن و جمشت سی ای بلگه سی فراغتتو آماده بیه:",
        "moveddeleted-notice": "ای بلگه پاکسا بیه.\nپاکسا بین و جمشت ای بلگه سی سرچشمه دئین آماده بیه",
        "content-json-empty-array": "آرایه حالی",
        "duplicate-args-category": "بلگه یا یی که چک چنه کاریا دو کونه نه د چوئه یا واحونیشو وه کار میئرن",
        "duplicate-args-category-desc": "بلگه یی که آرگومان دوکونه داره چی، <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> یا <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
-       "expensive-parserfunction-warning": "<strong>زئنار:</strong>ای بلگه مینونه دار واحونی دستوریا مئن اشکافت فره ای هئ.\n\nانازه و باید د کمتر با$2 {{جمی:$2|واحونی|واحونیا}}، ایسه {{جمی:$1|$1 واحونی|$1 واحونیا}}ئه.",
+       "expensive-parserfunction-warning": "<strong>زئنار:</strong>ای بلگه مینونه دار واحونی دستوریا مئن اشکافت فره ای هئ.\n\nانازه و باید د کمتر با$2 {{PLURAL:$2|واحونی|واحونیا}}، ایسه {{PLURAL:$1|$1 واحونی|$1 واحونیا}}ئه.",
        "expensive-parserfunction-category": "بلگه یایی که واحونی پیوندگر خطا گرون فره ای ها دشو",
        "post-expand-template-inclusion-warning": "زنئار چوئه د ور گرته انازه ای یه که فره گپه.پاره ای د چوئه یا نه د ور نمیئره.",
        "post-expand-template-inclusion-category": "بلگیا د ور گرته چوئه ین که انازش د حد اومائه وه در",
        "history-show-deleted": "فقط پاكسا بيه",
        "histfirst": "قديمي تري",
        "histlast": "تازه تري",
-       "historysize": "({{جمی:$1|1 بایت|$1 بایتیا}})",
+       "historysize": "({{PLURAL:$1|1 بایت|$1 بایتیا}})",
        "historyempty": "(حالی)",
        "history-feed-title": "ویرگار دوواره دیئن",
        "history-feed-description": "دوواره دیئن ویرگار سی بلگه د ویکی",
        "revdelete-no-file": "جانیا تیار بیه وجود ناره.",
        "revdelete-show-file-confirm": "شما د دل میهایت که وانئری پاکسا بیه ای جانیا نه بونیت \"<nowiki>$1</nowiki>\" د $2 تا $3؟",
        "revdelete-show-file-submit": "هری",
-       "revdelete-selected-text": "{{جمی:$1|وانیری گل گر بیه|وانیری گل گر بیه}} د [[:$2]]:",
-       "revdelete-selected-file": "{{جمی:$1|وانیری گل گر بیه|وانیری گل گر بیه}} د [[:$2]]:",
-       "logdelete-selected": "{{جمی:$1|پهرستنومه رخ ونیا انتخاو بیه|پهرستنومه رخ ونیا انتخاو بیه}}:",
+       "revdelete-selected-text": "{{PLURAL:$1|وانیری گل گر بیه|وانیری گل گر بیه}} د [[:$2]]:",
+       "revdelete-selected-file": "{{PLURAL:$1|وانیری گل گر بیه|وانیری گل گر بیه}} د [[:$2]]:",
+       "logdelete-selected": "{{PLURAL:$1|پهرستنومه رخ ونیا انتخاو بیه|پهرستنومه رخ ونیا انتخاو بیه}}:",
        "revdelete-text-text": "وانئریا پاکسا بیه هنی د بلگه ویرگار دیاری می کن،اما به شیا مینونه یاشو د مین خلک دیار نیئن.",
        "revdelete-text-file": "وانئریا پاکسا بیه هنی د بلگه ویرگار دیاری می کن،اما به شیا مینونه یاشو د مین خلک دیار نیئن.",
        "logdelete-text": "وانئریا پاکسا بیه هنی د بلگه ویرگار دیاری می کن،اما به شیا مینونه یاشو د مین خلک دیار نیئن.",
        "revdelete-suppress": "پاکساگری کردن رسینه یا سی دیوونداریا و کسونا تر",
        "revdelete-unsuppress": "محدودیتیانه د وانیریا امباربیه جا وه جا بکید",
        "revdelete-log": "دلیل:",
-       "revdelete-submit": "سی {{جمی:$1|وانیری|وانیریا}} انتخاو بیه وه کار بوریتو",
+       "revdelete-submit": "سی {{PLURAL:$1|وانیری|وانیریا}} انتخاو بیه وه کار بوریتو",
        "revdelete-success": "'''دیئن وانیری وه خوئی وه هنگوم بی.'''",
        "revdelete-failure": "'''دیئن وانیری وه خوئی وه هنگوم نبی:'''$1",
        "logdelete-success": "پهرستنومه دیار بیین د خوئی میزونکاری بی.",
        "mergehistory-go": "ویرایشتیایی که سریک سازی بوئن نشو بیئه",
        "mergehistory-submit": "سر یک سازی دوواره دیئنیا",
        "mergehistory-empty": "هیپ دوواره دیئنی نبوئه یکی سازی بوئه.",
-       "mergehistory-success": "$3 {{جمی:$3|وانیری|وانیریا}} د [[:$1]] وه خوئی د [[:$2]] سریک سازی بی.",
+       "mergehistory-success": "$3 {{PLURAL:$3|وانیری|وانیریا}} د [[:$1]] وه خوئی د [[:$2]] سریک سازی بی.",
        "mergehistory-fail": "سریک سازی ویرگار انجوم نبوئه، لطفن پینیاریا گات و بلگه نه د نو وارسی بکید.",
        "mergehistory-fail-toobig": "نبوئه وه یک شیوسن ویرگا انجوم دئه سی یکه وه بیشتر د محدودیت $1 {{PLURAL:$1|نسقه}}جا وه جا موئه.",
        "mergehistory-no-source": "سرچشمه بلگه $1 وجود ناره.",
        "diff-empty": "(بی فرق)",
        "diff-multi-sameuser": "({{PLURAL:$1|یه گل نسقه مینجایی|$1 نسقه یا مینجایی}} وه دس{{PLURAL:$2|کاریاری تر|$2 کاریاریا}} نشو دئه نبیه)",
        "diff-multi-otherusers": "({{PLURAL:$1|یه گل نسقه مینجایی|$1 نسقه یا مینجایی}} وه دس{{PLURAL:$2|کاریاری تر|$2 کاریاریا}} نشو دئه نبیه)",
-       "diff-multi-manyusers": "({{جمی:$1|یه گل وانیری مینجاگرته|$1وانیریا مینجا گرته}} بیشتر د $2 {{جمی:$2|کاریار|کاریاریا}} نشو دئه نبیه)",
+       "diff-multi-manyusers": "({{PLURAL:$1|یه گل وانیری مینجاگرته|$1وانیریا مینجا گرته}} بیشتر د $2 {{PLURAL:$2|کاریار|کاریاریا}} نشو دئه نبیه)",
        "difference-missing-revision": "{{PLURAL:$2|یه گل ویرایشت|$2 ویرایشت}} د فرق مینجا($1) {{PLURAL:$2|پیدا نبی|پیدا نبینه}}.\n\nشایت بانی جاونه وه وا یه گل ویرگار وه هنگوم نبیه که د یه گل بلگه پاکسا بیه هوم پیوند بیه بوئه.\nشایت جزئیات د   [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]  پیدا بوئن.",
        "searchresults": "نتيجه يا پی جوری",
        "searchresults-title": "نتيجه يا پی جوری سی \"$1\"",
        "next-page": "بلگه نهایی",
        "prevn-title": "پيشتر $1 {{PLURAL:$1|نتيجه|نتيجيا}}",
        "nextn-title": "نيايی $1 {{PLURAL:$1|نتيجه|نتيجيا}}",
-       "shown-title": "نشون دئن $1 {{جمی:$1|نتيجه|نتيجه}} سی هر بلگه",
+       "shown-title": "نشون دئن $1 {{PLURAL:$1|نتيجه|نتيجه}} سی هر بلگه",
        "viewprevnext": "ديئن ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''ایچه بلگه ای هئ وه نوم\"[[:$1]]\" که ها د ای ویکی'''",
        "searchmenu-new": "'''ای بلگه نه راس كو \"[[:$1]]\" د ای  ويكي!'''",
        "searchprofile-images-tooltip": "جانیایانه پی جوری کو",
        "searchprofile-everything-tooltip": "همه مینونه یا نه پی جوری كو (شاملا بلگيا چك چنه)",
        "searchprofile-advanced-tooltip": "نوم جايا نوم ديار بگرد",
-       "search-result-size": "$1 ({{جمی:$2|1 کلیمه|$2 کلیمه یا}})",
-       "search-result-category-size": "{{جمی:$1|1 اندوم|$1 اندومیا}} ({{جمی:$2|1 زیردسه|$2 زیردسه یا}}, {{جمی:$3|1 جانیا|$3 جانیایا}}",
+       "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-section": "(بهرجا $1)",
        "search-category": "(دسه $1)",
        "prefs-editwatchlist-raw": "ویرایشت ردیفی سیل برگ",
        "prefs-editwatchlist-clear": "سیل برگه تونه پاک بکیت",
        "prefs-watchlist-days": "روزیا نه د سیل برگ نشو دئه بو:",
-       "prefs-watchlist-days-max": "$1 بیشترونه {{جمی:$1|روز|روزیا}}",
+       "prefs-watchlist-days-max": "$1 بیشترونه {{PLURAL:$1|روز|روزیا}}",
        "prefs-watchlist-edits": "بیشترونه انازه آلشتیایی که د سیل برگ گپ بیه نشو دئه بیه:",
        "prefs-watchlist-edits-max": "شماره بیشترونه:1000",
        "prefs-watchlist-token": "نشونه سیل برگ:",
        "stub-threshold": "آستونه ویرایشتیا د یک دیسسه<a href=\"#\" class=\"stub\">ناقص</a> (بایت):",
        "stub-threshold-disabled": "د كار ونن",
        "recentchangesdays": "روزیا آلشتیا تازه باو نه نشو بیه:",
-       "recentchangesdays-max": "$1 بیشترونه {{جمی:$1|روز|روزیا}}",
+       "recentchangesdays-max": "$1 بیشترونه {{PLURAL:$1|روز|روزیا}}",
        "recentchangescount": "انازه ویرایشتیایی که دیاری می که:",
        "prefs-help-recentchangescount": "یه شامل آلشتیا تازه،ویرگاریا بلگه و پهرستنومه یا هئ.",
        "prefs-help-watchlist-token2": "یه یه گل کلیت رازینه دار سی خوارک تیارگه سیل برگه شمانه.\nهر کسی که شما مئشناسیت می تونه سیل برگ شما نه بوحونه،په ونه هومبئری نکیت.[[Special:ResetTokens|ار لازمه ونه آلشت بئیت ایچه نه بپورنیت]].",
        "prefs-reset-intro": "شما می تونیت ای بلگه سی د نو زنه کردن ترجیحات خوت وه شکل تیارگه پیش فرض وه کار بوونیت.\nیه ورئشت پذیر نئ.",
        "prefs-emailconfirm-label": "پش راست کردن انجومانامه:",
        "youremail": "انجومانامه:",
-       "username": "{{جنس:$1|نوم کاریاری}}:",
-       "prefs-memberingroups": "{{جنس:$2|اندوم}}  {{جمی:$1|گرویا|گرویا}}:",
+       "username": "{{GENDER:$1|نوم کاریاری}}:",
+       "prefs-memberingroups": "{{GENDER:$2|اندوم}}  {{PLURAL:$1|گرویا|گرویا}}:",
        "prefs-memberingroups-type": "$1",
        "prefs-registration": "گات ثوت نام:",
        "prefs-registration-date-time": "$1",
        "group-bureaucrat": "بروکراتیا",
        "group-suppress": "تیه پایا",
        "group-all": "(همه)",
-       "group-user-member": "{{جنس:$1|کاریار}}",
-       "group-autoconfirmed-member": "{{جنس:$1|کاریار خودانجومکار}}",
+       "group-user-member": "{{GENDER:$1|کاریار}}",
+       "group-autoconfirmed-member": "{{GENDER:$1|کاریار خودانجومکار}}",
        "group-bot-member": "{{حنس:$1|بوت}}",
-       "group-sysop-member": "{{جنس:$1|دیووندار}}",
-       "group-bureaucrat-member": "{{جنس:$1|بروکرات}}",
-       "group-suppress-member": "{{جنس:$1|تیه پا}}",
+       "group-sysop-member": "{{GENDER:$1|دیووندار}}",
+       "group-bureaucrat-member": "{{GENDER:$1|بروکرات}}",
+       "group-suppress-member": "{{GENDER:$1|تیه پا}}",
        "grouppage-user": "{{ns:project}}:کاریاریا",
        "grouppage-autoconfirmed": "{{ns:project}}:کاریار خودانجومکار",
        "grouppage-bot": "{{ns:project}}:بوت یا",
        "action-managechangetags": "راس کردن و پاکسا کردن سردیسیا د رسینه جا",
        "action-applychangetags": "سردیسیا نه واگرد آلشتیایی که خوتو دئیته وه کار بیئریت",
        "action-changetags": "اضاف کردن یا جا وه جاکاری سردیسیا دل وه حایی د وانئریا و پهرستنومه یا شخصی",
-       "nchanges": "$1 {{جمی:$1|آلشت|آلشتیا}}",
-       "enhancedrc-since-last-visit": "$1 {{جمی:$1|د آخری دیئن}}",
+       "nchanges": "$1 {{PLURAL:$1|آلشت|آلشتیا}}",
+       "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|د آخری دیئن}}",
        "enhancedrc-history": "ويرگار",
        "recentchanges": "آلشتیا ایسنی",
        "recentchanges-legend": "گزینه یا آلشتیا ایسنی",
        "newpageletter": "ن",
        "boteditletter": "ب",
        "unpatrolledletter": "!",
-       "number_of_watching_users_pageview": "[$1 دینه {{جمی:$1|کاریار|کاریاریا}}]",
+       "number_of_watching_users_pageview": "[$1 دینه {{PLURAL:$1|کاریار|کاریاریا}}]",
        "rc_categories": "دسه یا نه محدود کو(وا \"|\" جگا بوئن",
        "rc_categories_any": "هرکوم",
        "rc-change-size": "$1",
-       "rc-change-size-new": "$1 {{جمی:$1|بایت|بایتیا}} نها آلشتکاری",
+       "rc-change-size-new": "$1 {{PLURAL:$1|بایت|بایتیا}} نها آلشتکاری",
        "newsectionsummary": "/* $1 */ بهرجا تازه",
        "rc-enhanced-expand": "جزيات نشون بيئه",
        "rc-enhanced-hide": "جزياته قام كو",
        "withoutinterwiki-legend": "پیشون",
        "withoutinterwiki-submit": "نشون دائن",
        "fewestrevisions": "بلگه یایی که کمتری وانئری نه دارن",
-       "nbytes": "$1{{جمی:$1|بايت|بایتیا}}",
-       "ncategories": "$1{{جمی:$1|دسه|دسه يا}}",
-       "ninterwikis": "$1 {{جمی:$1|مئن ویکی|مئن ویکیا}}",
-       "nlinks": "$1 {{جمی:$1|هوم پیوند|هوم پیوندیا}}",
+       "nbytes": "$1{{PLURAL:$1|بايت|بایتیا}}",
+       "ncategories": "$1{{PLURAL:$1|دسه|دسه يا}}",
+       "ninterwikis": "$1 {{PLURAL:$1|مئن ویکی|مئن ویکیا}}",
+       "nlinks": "$1 {{PLURAL:$1|هوم پیوند|هوم پیوندیا}}",
        "nmembers": "$1 {{PLURAL:$1|اندوم|اندوميا}}",
-       "nmemberschanged": "$1 → $2 {{جمی:$2|اندوم|اندومیا}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|اندوم|اندومیا}}",
        "nrevisions": "$1 {{جمس:$1|وانئری|وانئریا}}",
-       "nviews": "$1 {{جمی:$1|دیئن|دیئنیا}}",
-       "nimagelinks": "$1 {{جمی:$1|بلگه|بلگيا}} استفاده بیه",
-       "ntransclusions": "$1 {{جمی:$1|بلگه|بلگيا}} استفاده بیه",
+       "nviews": "$1 {{PLURAL:$1|دیئن|دیئنیا}}",
+       "nimagelinks": "$1 {{PLURAL:$1|بلگه|بلگيا}} استفاده بیه",
+       "ntransclusions": "$1 {{PLURAL:$1|بلگه|بلگيا}} استفاده بیه",
        "specialpage-empty": "نتیجه ای د ای گزارشت نئ.",
        "lonelypages": "بلگه یا تک منه",
        "lonelypagestext": "د بلگه یا هاری هیچ بلگه هنی د {{SITENAME}} هوم پیوند نبیه و د هیچ بلگه هنی مین چین نبیه.",
        "listusers-editsonly": "فقط کاروریایی که ویرایشت می کن نشو بیه",
        "listusers-creationsort": "سرجاخودگری د اساس گات دروس بیین",
        "listusers-desc": "سرجاخودگری د اساس گپ د کؤچک",
-       "usereditcount": "$1{{جمی:$1|ویرایشت|ویرایشتیا}}",
+       "usereditcount": "$1{{PLURAL:$1|ویرایشت|ویرایشتیا}}",
        "usercreated": "{{جنسیت:$3|راس بیه}}د $1 at $2",
        "newpages": "بلگيا نو",
        "newpages-username": "نوم كاروری:",
        "notargettext": "شما بلگه یا کاریاری مقصدی سی انجوم دئن ای کنشت ریش انتخاو نکردیته.",
        "nopagetitle": "چنی بلگه ای نیئش",
        "nopagetext": "بلگه حاستنی که شما دیاری کردیته وجود ناره.",
-       "pager-newer-n": "{{جمی:$1|وانها تر 1وانها تر $1}}",
-       "pager-older-n": "{{جمی:$1|گپسالتر 1|گپسالتر $1}}",
+       "pager-newer-n": "{{PLURAL:$1|وانها تر 1وانها تر $1}}",
+       "pager-older-n": "{{PLURAL:$1|گپسالتر 1|گپسالتر $1}}",
        "suppress": "پائیئن",
        "querypage-disabled": "ای بلگه ویجه سی دلیلیا انجومکاری ناکشتگر بیه.",
        "apihelp": "هومیاری آی پی آی",
        "listgrouprights-members": "(نوم گه اندومیا)",
        "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": "{{جمی:$2|گرویا|گرویا}} اضاف بکیتو: $1",
-       "listgrouprights-removegroup": "{{جمی:$2|گرویا|گرویا}} ورداریت: $1",
+       "listgrouprights-addgroup": "{{PLURAL:$2|گرویا|گرویا}} اضاف بکیتو: $1",
+       "listgrouprights-removegroup": "{{PLURAL:$2|گرویا|گرویا}} ورداریت: $1",
        "listgrouprights-addgroup-all": "همه گرویا نه اضاف کو",
        "listgrouprights-removegroup-all": "همه گرویا نه وردار",
-       "listgrouprights-addgroup-self": " {{جمی:$2|گروه|گرویا}} نه د حساو: $1 اضاف کو",
-       "listgrouprights-removegroup-self": "{{جمی:$2|گرویا|گرویا}} نه د حساو ورداریت: $1",
+       "listgrouprights-addgroup-self": " {{PLURAL:$2|گروه|گرویا}} نه د حساو: $1 اضاف کو",
+       "listgrouprights-removegroup-self": "{{PLURAL:$2|گرویا|گرویا}} نه د حساو ورداریت: $1",
        "listgrouprights-addgroup-self-all": "همه گرویا نه د حساو خوشو اضاف بکیت",
        "listgrouprights-removegroup-self-all": "همه گرویا نه د حساو خوشو ورداریت",
        "listgrouprights-namespaceprotection-header": "محدودیت نومجا",
        "mailnologin": "هیپچ نشونی یی کل نبیه",
        "mailnologintext": "سی کل کردن انجومانامه وه کاریاریا هنی واس [[Special:UserLogin|بیایت وامین سامونه]] و تیرنشون انجومانامه معتوری د [[Special:Preferences|ترجیحات]] خوتو داشتوئیت.",
        "emailuser": "ای كارور نه ايميل كو",
-       "emailuser-title-target": "ایمیل سی ای {{جنس:$1|کارور}}",
+       "emailuser-title-target": "ایمیل سی ای {{GENDER:$1|کارور}}",
        "emailuser-title-notarget": "ایمیل کارور",
        "emailpage": "ایمیل کارور",
        "emailpagetext": "شما می تونیت  نوم بلگه هار نه سی کل کردن یه گل انجومانامه وه ای  {{GENDER:$1|کاریار}} وه کار بئیرت.\nتیرنشون انجومانامه یی که د [[Special:Preferences|ترجیحات کاریارتو]] دئیه ته د تیرنشون کلکار انجومانامه میا، سی یه که گیرنه بتونه جواوش بیه.",
        "unwatchthispage": "واداشتن دیئن",
        "notanarticle": "مینونه هیچ بلگه ای نئ",
        "notvisiblerev": "آخری وانئری که د دس یه کاریار هنی انجوم بیه پاکسا بیه.",
-       "watchlist-details": "{{جمی:$1|$1 بلگه|$1 بلگیا}} د سیل برگتو هیش بلگه قسه کردن نی.",
+       "watchlist-details": "{{PLURAL:$1|$1 بلگه|$1 بلگیا}} د سیل برگتو هیش بلگه قسه کردن نی.",
        "wlheader-enotif": "وارسیاری ایمیل فعال بیه.",
        "wlheader-showupdated": "بلگه یایی که د آخرین کرتی که شما دشو دیئن کردیته آلشت بینه د <strong>توپر</strong>نشون دئه بینه",
        "wlnote": "د هار {{PLURAL:$1|آلشت|<strong>$1</strong> آلشتی}} که د {{PLURAL:$2|ساعت|<strong>$2</strong> ساعت}} دماتر انجوم بیه هیئش، ویرگار آخرین واجوری انجام شده موجود است، ویرگار آخری واجوری: $3، $4",
        "namespace_association": "نوم جایا یکاگرته",
        "tooltip-namespace_association": "ای جعوه نه وارسی بکیت ای جعوه د ور گرته چک چنه یا داسون نوم ورگه شریکی و نوم ورگه انتخاو بیه ئه",
        "blanknamespace": "اصلی",
-       "contributions": "{{جنس:$1|کاریار}} هومیاریا",
+       "contributions": "{{GENDER:$1|کاریار}} هومیاریا",
        "contributions-title": "هومياري كارور سي $1",
        "mycontris": "هومياریا",
        "contribsub2": "سي {{جنسيت:$3|$1}} ($2)",
        "isredirect": "بلگه دوباره ورگشتن",
        "istemplate": "نشونی دئن",
        "isimage": "جانیا هوم پیوند",
-       "whatlinkshere-prev": "{{جمی:$1|دمایی|دمایی $1}}",
-       "whatlinkshere-next": "{{جمی:$1|نهایی|نهایی $1}}",
+       "whatlinkshere-prev": "{{PLURAL:$1|دمایی|دمایی $1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|نهایی|نهایی $1}}",
        "whatlinkshere-links": "هوم پیوندیا",
        "whatlinkshere-hideredirs": "$1 واگردونیا",
        "whatlinkshere-hidetrans": "$1 چن نتیجه یی",
        "movepage-max-pages": "بیشترونه انازه بلگه یا شایت سی ($1 {{PLURAL:$1|بلگه|بلگه یا}}) یی که بوئه جا وه جاکاری بوئن، جا وه جاکاری بیه و بلگه یا هنی نه نبوئه و شکل خودانجوم جا وه جاکاری کرد.",
        "movelogpage": "جاوه جا کردن",
        "movelogpagetext": "د هار یه گل نوم گه د جا وه جایی یا بلگه هئ",
-       "movesubpage": "{{جمی:$1|زیر بلگه|زیر بلگه یا}}",
+       "movesubpage": "{{PLURAL:$1|زیر بلگه|زیر بلگه یا}}",
        "movesubpagetext": "ای بلگه $1 زیربلگه داره که د زیر نشو {{PLURAL:|نشو دئه بیه|دئه بینه}}.",
        "movenosubpage": "ای بلگه زیر بلگه نئ.",
        "movereason": "دلیل:",
        "import-interwiki-history": "ؤرداشتن ویرگار همه وانئریا سی ای بلگه",
        "import-interwiki-templates": "همه چوئه یا",
        "import-interwiki-submit": "وامین اوردن",
+       "import-mapping-default": "وامین اوردن جاگه یا پیش فرض",
+       "import-mapping-namespace": "وامین اوردن یه گل نومجا:",
+       "import-mapping-subpage": "وامین اوردن یه گل بلگه چی یه گل زیر بلگه:",
        "import-upload-filename": "نوم جانیا:",
        "import-comment": "ویر و باور:",
        "importtext": "لطف بکیت  جانیا نه د ویکی سرچشمه وا هومیاری [[Special:Export|اوزار وه در دئن]] بئریت.\nاوسه ونه د دسگایا خوتو اماییه کاری بکیت و ایچه ونه سوار بکیت.",
        "importstart": "د حال و بار وامین اوردن",
-       "import-revision-count": "$1 {{جمی:$1|وانئری|وانئریا}}",
+       "import-revision-count": "$1 {{PLURAL:$1|وانئری|وانئریا}}",
        "importnopages": "هیچ بلگه ای وامین نیومائه.",
        "imported-log-entries": "$1 {{PLURAL:$1|داده وار پهرستنومه|داده وار پهرستنومه یا}} وامین اومائه.",
        "importfailed": "وامین اوردن شکست حرده: <nowiki>$1</nowiki>",
        "import-rootpage-nosubpage": "نومجا \"$1\" بلگه پایه صلا زیر بلگه نه نمی یه.",
        "importlogpage": "پهرستنومه دئن",
        "importlogpagetext": "وامین اوردن بلگه یا وا ویرگارچه ویرایشت ونو د ویکی یا هنی",
-       "import-logentry-upload-detail": "$1 {{جمی:$1|وانئری|وانئریا}} وامین اومانه",
-       "import-logentry-interwiki-detail": "$1 {{جمی:$1|وانئری|وانئریا}} د $2 وامین اومائنه",
+       "import-logentry-upload-detail": "$1 {{PLURAL:$1|وانئری|وانئریا}} وامین اومانه",
+       "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|وانئری|وانئریا}} د $2 وامین اومائنه",
        "javascripttest": "ازمایشت کردن جاوا اسکریپت",
        "javascripttest-pagetext-noframework": "ای بلگه سی انجوم دئن ازمایشتیا جاوا اسکریپت اماییه کاری بیه.",
        "javascripttest-pagetext-unknownframework": "چوئه کار نادیار ازمایشت \"$1\"",
        "tooltip-summary": "يه چكسته كؤچك وارد بكيد",
        "interlanguage-link-title": "$1-$2",
        "interlanguage-link-title-nonlang": "$1 – $2",
-       "anonymous": "ناشناس {{جمی:$1|کارور|کاروریا}}  {{سیل جا}}",
+       "anonymous": "ناشناس {{PLURAL:$1|کارور|کاروریا}}  {{سیل جا}}",
        "siteuser": "{{نوم سیلجا}} کارور $1",
        "anonuser": "{{سیل جا}}  کارور ناشناس $1",
        "lastmodifiedatby": "ای بلگه آخری بار د $1,$2 وه دس $2 آلشت دئه بیه.",
        "othercontribs": "د اساس کار وا $1.",
        "others": "دیه رون",
-       "siteusers": "{{نوم سیل جا}} {{جمی:$2|کارور|کاروریا}} $1",
-       "anonusers": "{{نوم سیل جا}} نادیار {{جمی:$2|کاریار|کاریاریا}} $1",
+       "siteusers": "{{نوم سیل جا}} {{PLURAL:$2|کارور|کاروریا}} $1",
+       "anonusers": "{{نوم سیل جا}} نادیار {{PLURAL:$2|کاریار|کاریاریا}} $1",
        "creditspage": "اعتوار بلگه",
        "nocredits": "دونسمنیا راس کننه یا ای بلگه د دسرس نئ",
        "spamprotectiontitle": "فیلتر پر و پیم گری د اسپم",
        "pageinfo-recent-edits": "شماره ویرایشتیا ایسنی (د $1 دماتر)",
        "pageinfo-recent-authors": "شماره کلی نویسنه یا یکونه",
        "pageinfo-magic-words": "جادویی{{PLURAL:$1|کلیمه|کلیمه یا}} ($1)",
-       "pageinfo-hidden-categories": "$1{{جمی:$1|دسه|دسه يا}} قام بیه",
+       "pageinfo-hidden-categories": "$1{{PLURAL:$1|دسه|دسه يا}} قام بیه",
        "pageinfo-templates": "{{PLURAL:$1|چوئه|چوئه یا}} وه کار گرته بیه($1)",
        "pageinfo-transclusions": "{{PLURAL:$1|بلگه|بلگه یا}} وه کار گرته بیه د ($1)",
        "pageinfo-toolboxlink": "دونسمنیا بلگه",
        "file-info-gif-looped": "حلقه دار",
        "file-info-gif-frames": "$1 {{PLURAL:$1|فریم|فریمیا}}",
        "file-info-png-looped": "حلقه دار",
-       "file-info-png-repeat": "$1 بازی کرده{{جمی:$1|وخت|وختیا}}",
+       "file-info-png-repeat": "$1 بازی کرده{{PLURAL:$1|وخت|وختیا}}",
        "file-info-png-frames": "$1 {{PLURAL:$1|فریم|فریمیا}}",
        "file-no-thumb-animation": "'''د ویر داشتوئیت: سی مشگلیا فنی پیش نمایشت جانیا وه حال و بار جمشت دار نشو دئه نبوئه.'''",
        "file-no-thumb-animation-gif": "'''د ویر داشتوئیت: سی مشگلیا فنی پیش نمایشت جانیایا GIF چی یه وه حال و بار جمشت دار نشو دئه نبوئه.'''",
        "seconds": "{{PLURAL:$1|$1 ثانیه|$1 ثانیه یا}}",
        "minutes": "{{PLURAL:$1|$1 دیقه|$1 دیقه یا}}",
        "hours": "{{PLURAL:$1|$1 ساعت|$1 ساعت یا}}",
-       "days": "{{جمی:$1|1$ روز|$1 روز}}",
+       "days": "{{PLURAL:$1|1$ روز|$1 روز}}",
        "weeks": "{{PLURAL:$1|$1 هفته|$1 هفته یا}}",
-       "months": "{{جمی:$1|$1 ما|$1 مایا}}",
-       "years": "{{جمی:$1|$1 سال|$1 سال}}",
+       "months": "{{PLURAL:$1|$1 ما|$1 مایا}}",
+       "years": "{{PLURAL:$1|$1 سال|$1 سال}}",
        "ago": "$1 دماتر",
        "just-now": "فقط ایسه",
        "hours-ago": "$1 {{PLURAL:$1|ساعت |ساعتیا}} دماتر",
        "exif-gpslatitude-s": "پئنا ولاتشناسی هارگه",
        "exif-gpslongitude-e": "پئنا ولاتشناسی افتوزنون",
        "exif-gpslongitude-w": "پئنا ولاتشناسی افتونشین",
-       "exif-gpsaltitude-above-sealevel": "$1 {{جمی:$1|متر|متریا}} وارؤ د ریتراز دریا",
-       "exif-gpsaltitude-below-sealevel": "$1 {{جمی:$1|متر|متریا}} وارؤ د ریتراز دریا",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|متر|متریا}} وارؤ د ریتراز دریا",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|متر|متریا}} وارؤ د ریتراز دریا",
        "exif-gpsstatus-a": "د حال و بار انازه یاری",
        "exif-gpsstatus-v": "ری وه ری یک کاری انازه یاری",
        "exif-gpsmeasuremode-2": "انازه یاری دو ورگه جایی",
        "tags-delete": "پاکسا کردن",
        "tags-activate": "کنشتیاری کردن",
        "tags-deactivate": "ناکنشتیاری کردن",
-       "tags-hitcount": "$1 {{جمی:$1|آلشت|آلشتیا}}",
+       "tags-hitcount": "$1 {{PLURAL:$1|آلشت|آلشتیا}}",
        "tags-manage-no-permission": "شما صلا یه نه که آلشت دئن سردیسیا نه دیوونداری بکیت ناریت.",
        "tags-create-heading": "راس کردن یه گل سردیس تازه",
        "tags-create-explanation": "د شکل پیش فرض، سردیسیا تازه ره وندیاری بیه سی وه کار گرتن کاریاریا و رباتیا هان د دسرس.",
        "duration-seconds": "$1 {{PLURAL:$1|ثانیه|ثانیه یا}}",
        "duration-minutes": "$1 {{PLURAL:$1|دیقه|دیقه یا}}",
        "duration-hours": "$1 {{PLURAL:$1|ساعت |ساعتیا}}",
-       "duration-days": "$1{{جمی:$1|روز|روزیا}}",
-       "duration-weeks": "$1 {{جمی:$1|هفته|هفته یا}}",
-       "duration-years": "$1{{جمی:$1| سال|سالیا}}",
+       "duration-days": "$1{{PLURAL:$1|روز|روزیا}}",
+       "duration-weeks": "$1 {{PLURAL:$1|هفته|هفته یا}}",
+       "duration-years": "$1{{PLURAL:$1| سال|سالیا}}",
        "duration-decades": "$1 {{PLURAL:$1|دهه|دهه یا}}",
        "duration-centuries": "$1 {{PLURAL:$1|سده|سده یا}}",
        "duration-millennia": "$1 {{PLURAL:$1|میلینیوم|ملینا}}",
index 3d7cb68..64439a1 100644 (file)
@@ -38,7 +38,7 @@
        "tog-hidepatrolled": "Slėpti patikrintus keitimus paskutinių keitimų sąraše",
        "tog-newpageshidepatrolled": "Slėpti patikrintus puslapius iš naujausių straipsnių sąrašo",
        "tog-extendwatchlist": "Išplėsti stebimųjų sąrašą, kad rodytų visus tinkamus keitimus, ne tik pačius naujausius.",
-       "tog-usenewrc": "Naudoti patobulintąjį paskutinių keitimų sąrašą (reikia JavaScript)",
+       "tog-usenewrc": "Grupuoti pakeitimas pagal puslapį paskutinių keitimų ir stebėjimo sąrašuose",
        "tog-numberheadings": "Automatiškai numeruoti skyrelius",
        "tog-showtoolbar": "Rodyti redagavimo įrankių juosta",
        "tog-editondblclick": "Puslapių redagavimas dvigubu spustelėjimu (JavaScript)",
@@ -47,6 +47,7 @@
        "tog-watchdefault": "Pridėti puslapius, kuriuos aš redaguoju, į stebimų sąrašą",
        "tog-watchmoves": "Pridėti puslapius, kuriuos aš perkeliu, į stebimų sąrašą",
        "tog-watchdeletion": "Pridėti puslapius, kuriuos aš ištrinu, į stebimų sąrašą",
+       "tog-watchrollback": "Pridėti puslapius, kuriuose aš atlikau atmetimus į mano stebėjimo sąrašą",
        "tog-minordefault": "Pagal nutylėjimą pažymėti redagavimus kaip smulkius",
        "tog-previewontop": "Rodyti peržiūrą virš redagavimo lauko",
        "tog-previewonfirst": "Rodyti peržiūrą pirmą kartą pakeitus",
        "jumptonavigation": "navigaciją",
        "jumptosearch": "paiešką",
        "view-pool-error": "Atsiprašome, šiuo metu serveriai yra perkrauti.\nPernelyg daug naudotojų skaito šį puslapį.\nPrašome palaukti ir bandyti į šį puslapį patekti dar kartą.\n\n$1",
+       "generic-pool-error": "Atsiprašome, šiuo metu serveriai yra perkrauti.\nPernelyg daug naudotojų skaito šį išteklį.\nPrašome palaukti ir bandyti prieiti prie šio išteklio dar kartą.",
        "pool-timeout": "Baigėsi laikas laukiant užrakto",
        "pool-queuefull": "Telkinio eilė pilna",
        "pool-errorunknown": "Nežinoma klaida",
+       "pool-servererror": "Saugyklos skaitiklio paslauga negalima ($1).",
        "poolcounter-usage-error": "Naudojimo klaida: $1",
        "aboutsite": "Apie {{SITENAME}}",
        "aboutpage": "Project:About",
        "readonly_lag": "Duomenų bazė buvo automatiškai užrakinta, kol pagalbinės duomenų bazės prisivys pagrindinę",
        "internalerror": "Vidinė klaida",
        "internalerror_info": "Vidinė klaida: $1",
+       "internalerror-fatal-exception": " \"$1\" tipo lemiama išimtis",
        "filecopyerror": "Nepavyksta kopijuoti failo iš „$1“ į „$2“.",
        "filerenameerror": "Nepavyksta pervardinti failo iš „$1“ į „$2“.",
        "filedeleteerror": "Nepavyksta ištrinti failo „$1“.",
        "cannotdelete": "Nepavyko ištrinti puslapio ar failo „$1“.\nGalbūt jį jau kažkas kitas ištrynė.",
        "cannotdelete-title": "Negalite ištrinti puslapio \"$1\"",
        "delete-hook-aborted": "Trynimą atšaukė kabliukas.\nNebuvo duotas joks paaiškinimas.",
+       "no-null-revision": "Negalima sukurti nulinės peržiūros puslapiui „$1“",
        "badtitle": "Blogas pavadinimas",
        "badtitletext": "Nurodytas puslapio pavadinimas buvo neleistinas, tuščias arba neteisingai sujungtas tarpkalbinis arba tarpprojektinis pavadinimas. Jame gali būti vienas ar daugiau simbolių, neleistinų pavadinimuose.",
+       "title-invalid-empty": "Prašomas puslapio pavadinimas yra tuščias arba jame yra tik tarpo simbolis.",
+       "title-invalid-utf8": "Prašomo puslapio pavadinimas turi negalimą UTF-8 seką.",
+       "title-invalid-interwiki": "Pavadinimas turi interwiki nuorodą",
+       "title-invalid-talk-namespace": "Prašomo puslapio pavadinimas nurodo į diskusijų puslapį, kuris negali egzistuoti.",
+       "title-invalid-characters": "Prašomo puslapio pavadinimas turi negalimų simbolių: „$1“.",
+       "title-invalid-relative": "Pavadinimas turi reliatyvų taką. Reliatyvūs puslapių pavadinimai (./, ../) yra negalimi, nes jie dažnai bus nepasiekiami vartotojo naršykle.",
+       "title-invalid-magic-tilde": "Prašomo puslapio pavadinimas turi negalima magiška tildės seką (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Prašomo puslapio pavadinimas yra per ilgas. Jis turi būti ne ilgesnis nei $1 bitai UTF-8 koduotėje.",
+       "title-invalid-leading-colon": "Prašomo puslapio pavadinimas turi neleistiną dvitaškį pradžioje.",
        "perfcached": "Rodoma išsaugota duomenų kopija, todėl duomenys gali būti ne patys naujausi. Maksimaliai $1 {{PLURAL:$1|rezultatas|rezultatai|rezultatų}} yra saugoma.",
        "perfcachedts": "Rodoma išsaugota duomenų kopija, kuri buvo atnaujinta $2 $3. Maksimaliai $4 {{PLURAL:$4|rezultatas|rezultatai|rezultatų}} yra saugoma.",
        "querypage-no-updates": "Atnaujinimai šiam puslapiui dabar yra išjungti. Duomenys čia dabar nebus atnaujinti.",
        "wrongpassword": "Įvestas neteisingas slaptažodis. Pamėginkite dar kartą.",
        "wrongpasswordempty": "Įvestas slaptažodis yra tuščias. Pamėginkite vėl.",
        "passwordtooshort": "Slaptažodžiai turi būti bent $1 {{PLURAL:$1|simbolio|simbolių|simbolių}} ilgio.",
+       "passwordtoolong": "Slaptažodžiai negali būti ilgesni nei {{PLURAL:$1|1 simbolis|$1 simboliai}}.",
        "password-name-match": "Jūsų slaptažodis turi skirtis nuo jūsų naudotojo vardo.",
        "password-login-forbidden": "Šito naudotojo vardo ir slaptažodžio naudojimas yra uždraustas.",
        "mailmypassword": "Atkurti slaptažodį",
        "changeemail-password": "Jūsų {{SITENAME}} slaptažodis:",
        "changeemail-submit": "Keisti el. pašto adresą",
        "changeemail-throttled": "Jūs atlikote pernelyg daug bandymų prisijungti.\nLuktelėkite $1 prieš bandant vėl.",
+       "resettokens": "Atnaujinti žetonus",
+       "resettokens-text": "Jūs galite atnaujinti žetonus, kurie suteikia prieigą prie tam tikros privačios informacijos susijusios su jūsų paskyra čia.\n\nJūs turėtumėte tai padaryti jei netyčia jais pasidalinote su kuo nors arba jei jūsų paskyra buvo pavojuje.",
+       "resettokens-no-tokens": "Nėra žetonų, kuriuos galima atnaujinti.",
+       "resettokens-legend": "Atnaujinti žetonus",
        "resettokens-tokens": "Žetonai:",
        "resettokens-token-label": "$1 (dabartinė reikšmė: $2)",
+       "resettokens-watchlist-token": "Žetonas skirtas interneto pateikčiai (Atom/RSS) [[Special:Watchlist|pakeitimai puslapiuose, kuriuose jūs stebite]]",
+       "resettokens-done": "Žetonų atnaujinimas.",
+       "resettokens-resetbutton": "Atnaujinti pasirinktus žetonus",
        "bold_sample": "Paryškintas tekstas",
        "bold_tip": "Paryškinti tekstą",
        "italic_sample": "Tekstas kursyvu",
        "missingcommentheader": "'''Priminimas:''' Jūs nenurodėte šio komentaro pavadinimo/antraštės.\nJei vėl paspausite „{{int:savearticle}}“, jūsų keitimas bus įrašytas be jo.",
        "summary-preview": "Komentaro peržiūra:",
        "subject-preview": "Skyrelio/antraštės peržiūra:",
+       "previewerrortext": "Įvyko klaida bandant peržiūrėti jūsų pakeitimus.",
        "blockedtitle": "Naudotojas yra užblokuotas",
        "blockedtext": "'''Jūsų naudotojo vardas arba IP adresas yra užblokuotas.'''\n\nUžblokavo $1. Nurodyta priežastis yra ''$2''.\n\n* Blokavimo pradžia: $8\n* Blokavimo pabaiga: $6\n* Numatytas blokuojamasis: $7\n\nJūs galite susisiekti su $1 arba kuriuo nors kitu [[{{MediaWiki:Grouppage-sysop}}|administratoriumi]] ir aptarti neaiškumus dėl blokavimo.\nAtkreipkite dėmesį, kad negalėsite naudotis funkcija „Rašyti laišką šiam naudotojui“, jei nesate užsiregistravę ir pateikę realaus savo el. pašto adreso naudotojo [[Special:Preferences|nustatymuose]], arba, jei jums užblokuotas šios funkcijos naudojimas.\nJūsų IP adresas yra $3, o blokavimo ID yra #$5.\nPrašome nurodyti vieną iš jų ar abu, kai kreipiatės dėl blokavimo.",
        "autoblockedtext": "Jūsų IP adresas buvo automatiškai užblokuotas, nes jį naudojo kitas naudotojas, kurį užblokavo $1.\nNurodyta priežastis yra ši:\n\n:''$2''\n\n* Blokavimo pradžia: $8\n* Blokavimo pabaiga: $6\n* Numatomas blokavimo laikas: $7\n\nJūs galite susisiekti su $1 arba kitu [[{{MediaWiki:Grouppage-sysop}}|administratoriumi]], kad aptartumėte neaiškumus dėl blokavimo.\n\nJūs negalite naudotis funkcija „Rašyti laišką šiam naudotojui“, jei nesate nurodę tikro el. pašto adreso savo [[Special:Preferences|naudotojo nustatymuose]]. Taip pat Jūs negalite naudotis šia funkcija, jei Jums užblokuotas jos naudojimas.\n\nJūsų IP adresas yra $3, blokavimo ID yra $5.\nPrašome nurodyti šiuos duomenis visais atvejais, kai kreipiatės dėl blokavimo.",
        "anontalkpagetext": "----''Tai yra anoniminio naudotojo, nesusikūrusio arba nenaudojančio paskyros, aptarimų puslapis.\nDėl to naudojamas IP adresas jo identifikavimui.\nŠis IP adresas gali būti dalinamas keliems naudotojams.\nJeigu Jūs esate anoniminis naudotojas ir atrodo, kad komentarai nėra skirti Jums, [[Special:UserLogin/signup|sukurkite paskyrą]] arba [[Special:UserLogin|prisijunkite]], ir nebūsite tapatinamas su kitais anoniminiais naudotojais.''",
        "noarticletext": "Šiuo metu šiame puslapyje nėra jokio teksto.\nJūs galite [[Special:Search/{{PAGENAME}}|ieškoti šio puslapio pavadinimo]] kituose puslapiuose,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ieškoti susijusių įrašų],\narba [{{fullurl:{{FULLPAGENAME}}|action=edit}} redaguoti šį puslapį]</span>.",
        "noarticletext-nopermission": "Šiuo metu šiame puslapyje nėra jokio teksto.\nJūs galite [[Special:Search/{{PAGENAME}}|ieškoti šio puslapio pavadinimo]] kituose puslapiuose,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ieškoti susijusių įrašų]</span>, bet jūs neturite teisės sukurti šį puslapį.",
+       "missing-revision": "Puslapio peržiūra #$1 pavadinto „{{FULLPAGENAME}}“ neegzistuoja.\n\nTai paprastai atsitinka kai pasenusi nuoroda veda į puslapį, kuris buvo ištrintas.\nInformaciją galima rasti [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
        "userpage-userdoesnotexist": "Naudotojo paskyra „<nowiki>$1</nowiki>“ yra neužregistruota. Prašom patikrinti, ar jūs norite kurti/redaguoti šį puslapį.",
        "userpage-userdoesnotexist-view": "Naudotojo paskyra „$1“ neužregistruota.",
        "blocked-notice-logextract": "Šis naudotojas šiuo metu yra užblokuotas.\nŽemiau pateikiamas paskutinis blokavimo istorijos įrašas:",
        "expansion-depth-exceeded-category-desc": "Puslapis viršija didžiausią plėtros gylį.",
        "expansion-depth-exceeded-warning": "Puslapis, viršijantis didžiausią plėtros gylį",
        "parser-unstrip-loop-warning": "Rastas neuždarytas ciklas",
+       "parser-unstrip-recursion-limit": "Unstrip rekursijos limitas viršytas ($1)",
        "converter-manual-rule-error": "Rankinėje kalbos pertvarkymo taisyklėje rasta klaida",
        "undo-success": "Keitimas gali būti atšauktas. Prašome patikrinti palyginimą, esantį žemiau, kad patvirtintumėte, kad jūs tai ir norite padaryti, ir tada išsaugokite pakeitimus, esančius žemiau, kad užbaigtumėte keitimo atšaukimą.",
        "undo-failure": "Keitimas negali būti atšauktas dėl konfliktuojančių tarpinių keitimų.",
        "history-feed-description": "Šio puslapio versijų istorija projekte",
        "history-feed-item-nocomment": "$1 $2",
        "history-feed-empty": "Prašomas puslapis neegzistuoja.\nJis galėjo būti ištrintas iš projekto, arba pervardintas.\nPamėginkite [[Special:Search|ieškoti projekte]] susijusių naujų puslapių.",
+       "history-edit-tags": "Redaguoti pažymėtų pakeitimų žymes",
        "rev-deleted-comment": "(keitimo aprašymas pašalintas)",
        "rev-deleted-user": "(naudotojo vardas pašalintas)",
        "rev-deleted-event": "(įrašas pašalintas)",
        "rev-showdeleted": "rodyti",
        "revisiondelete": "Trinti/atkurti versijas",
        "revdelete-nooldid-title": "Neleistina paskirties versija",
-       "revdelete-nooldid-text": "Jūs nenurodėte versijos (-ų), kurioms įvykdyti šią funkciją, nurodyta versija neegzistuoja arba jūs bandote paslėpti esamą versiją.",
+       "revdelete-nooldid-text": "Jūs nenurodėte pakeitimų, kuriems įvykdyti šią funkciją, arba šis pakeitimas neegzistuoja, arba jūs bandote paslėpti esamą versiją.",
        "revdelete-no-file": "Nurodytas failas neegzistuoja.",
        "revdelete-show-file-confirm": "Ar tikrai norite peržiūrėti ištrintą failo „<nowiki>$1</nowiki>“ $2 $3 versiją?",
        "revdelete-show-file-submit": "Taip",
        "diff-multi-sameuser": "(nerodoma {{PLURAL:$1|viena tarpinė versija, sukurta|$1 tarpinės versijos, sukurtos|$1 tarpinių versijų, sukurtų}} to paties naudotojo)",
        "diff-multi-otherusers": "(nerodoma {{PLURAL:$1|viena tarpinė versija, sukurta|$1 tarpinės versijos, sukurtos|$1 tarpinių versijų, sukurtų}} {{PLURAL:$2|vieno naudotojo|$2 naudotojų}})",
        "diff-multi-manyusers": "(daugiau nei $2 {{PLURAL:$2|naudotojo|naudotojų|naudotojų}} $1 {{PLURAL:$1|tarpinis keitimas nėra rodomas|tarpiniai keitimai nėra rodomi|tarpinių keitimų nėra rodoma}})",
+       "difference-missing-revision": "{{PLURAL:$2|Vienas pakeitimas|$2 pakeitimai}} šio skirtumo ($1) {{PLURAL:$2|nebuvo}} rasti.\n\nTai paprastai atsitinka kai nuoroda veda į puslapį, kuris buvo ištrintas.\nInformacija gali būti rasta [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
        "searchresults": "Paieškos rezultatai",
        "searchresults-title": "Paieškos rezultatai \"$1\"",
        "titlematches": "Puslapių pavadinimų atitikmenys",
        "notextmatches": "Jokių puslapių teksto atitikmenų",
        "prevn": "{{PLURAL:$1|atgal|ankstesnius $1}}",
        "nextn": "{{PLURAL:$1|toliau|tolimesnius $1}}",
+       "prev-page": "ankstesnis puslapis",
+       "next-page": "kitas puslapis",
        "prevn-title": "{{PLURAL:$1|Ankstesnis $1 rezultatas|Ankstesni $1 rezultatai|Ankstesni $1 rezultatų}}",
        "nextn-title": "{{PLURAL:$1|Kitas $1 rezultatas|Kiti $1 rezultatai|Kiti $1 rezultatų}}",
        "shown-title": "Rodyti $1 {{PLURAL:$1|rezultatą|rezultatus|rezultatus}} puslapyje",
        "prefs-personal": "Naudotojo profilis",
        "prefs-rc": "Naujausi keitimai",
        "prefs-watchlist": "Stebimų sąrašas",
+       "prefs-editwatchlist": "Redaguoti stebimųjų sąrašą",
+       "prefs-editwatchlist-label": "Redaguoti įrašus savo stebėjimo sąraše:",
+       "prefs-editwatchlist-edit": "Peržiūrėti ir pašalinti pavadinmus savo stebėjimo sąraše",
+       "prefs-editwatchlist-raw": "Redaguoti grynąjį stebimųjų sąrašą",
+       "prefs-editwatchlist-clear": "Išvalyti stebimųjų sąrašą",
        "prefs-watchlist-days": "Dienos rodomos stebimųjų sąraše:",
        "prefs-watchlist-days-max": "Daugiausiai 7 {{PLURAL:$1|diena|dienos|dienų}}",
        "prefs-watchlist-edits": "Kiek daugiausia keitimų rodyti išplėstiniame stebimųjų sąraše:",
        "prefs-advancedwatchlist": "Papildomi nustatymai",
        "prefs-displayrc": "Rodymo nustatymai",
        "prefs-displaywatchlist": "Rodymo nuostatos",
+       "prefs-tokenwatchlist": "Žetonas",
        "prefs-diffs": "Skirtumai",
        "prefs-help-prefershttps": "Šis nustatymas suveiks kitą kartą prisijungiant.",
        "prefswarning-warning": "Jūs atlikote savo nustatymų pakeitimus, kurie dar nebuvo išsaugoti.\nJei paliksite puslapį nepaspaudę \"$1\", jūsų nustatymai nebus atnaujinti.",
        "right-protect": "Pakeisti apsaugos lygius ir redaguoti apsaugotus puslapius",
        "right-editprotected": "Taisyti puslapius, apsaugotus kaip \"{{int:protect-level-sysop}}\"",
        "right-editsemiprotected": "Taisyti puslapius, apsaugotus kaip \"{{int:protect-level-autoconfirmed}}\"",
+       "right-editcontentmodel": "Redaguoti puslapio turinio modelį",
        "right-editinterface": "Keisti naudotojo aplinką",
        "right-editusercssjs": "Redaguoti kitų naudotojų CSS ir JS failus",
        "right-editusercss": "Redaguoti kitų naudotojų CSS failus",
        "right-override-export-depth": "Eksportuoti puslapius įtraukiant susietus puslapius iki 5 lygio gylio",
        "right-sendemail": "Siųsti el. laišką kitiems naudotojams",
        "right-passwordreset": "Peržiūrėti slaptažodžio pakeitimo e-mail laiškus",
+       "right-managechangetags": "Kurti ir ištrinti [[Special:Tags|žymes]] iš duomenų bazės",
+       "right-applychangetags": "Taikyti [[Special:Tags|žymes]] kartu su pokyčiais",
+       "right-changetags": "Pridėti ir ištrinti savavališkus [[Special:Tags|žymes]] individualiuose pakeitimuose ir žurnalo įrašuose",
        "newuserlogpage": "Prisiregistravę naudotojai",
        "newuserlogpagetext": "Tai naudotojų kūrimo sąrašas.",
        "rightslog": "Naudotojų teisių pakeitimai",
        "action-viewmywatchlist": "rodyti savo stebėjimų sąrašą",
        "action-viewmyprivateinfo": "peržiūrėti jūsų privačią informaciją",
        "action-editmyprivateinfo": "redaguoti savo privačią informaciją",
+       "action-editcontentmodel": "redaguoti puslapio turinio modelį",
+       "action-managechangetags": "sukurti ir ištrinti žymes duomenų bazėje",
+       "action-applychangetags": "taikyti žymes kartu su savo pokeitymais",
+       "action-changetags": "pridėti ir ištrinti savavališkas žymes individualiuose pakeitimuose ir žurnalo įrašuose",
        "nchanges": "$1 {{PLURAL:$1|pakeitimas|pakeitimai|pakeitimų}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|nuo paskutinio apsilankymo}}",
        "enhancedrc-history": "istorija",
        "backend-fail-connect": "Negalima prisijungti prie galutinės saugyklos \"$1\".",
        "backend-fail-internal": "Nežinoma klaida įvyko galutinėje saugykloje \"$1\".",
        "backend-fail-contenttype": "Negalima nustatyti failo turinio tipo, kuris saugomas \"$1\".",
+       "backend-fail-batchsize": "Saugyklos posistemė gavo seriją $1 failo {{PLURAL:$1|operaciją|operacijų}}; limitas yra $2 {{PLURAL:$2|operacija|operacijos}}.",
+       "backend-fail-usable": "Negalima perskaityti ar įrašyti failo „$1“ dėl nepakankamų teisių ar trūkstamo katalogo/konteinerio.",
+       "filejournal-fail-dbconnect": "Nepavyko prisijungti prie žurnalo duomenų bazės saugojimo posistemei „$1“.",
+       "filejournal-fail-dbquery": "Nepavyko atnaujinti žurnalo duomenų bazės saugojimo posistemei „$1“.",
        "lockmanager-notlocked": "Negalima atrakinti \"$1\", nes jis nėra užrakintas.",
        "lockmanager-fail-closelock": "Negalima uždaryti rakinimų failo dėl \"$1\".",
        "lockmanager-fail-deletelock": "Negalima panaikinti rakinimų failo dėl \"$1\".",
        "lockmanager-fail-acquirelock": "Negalima nustatyti rakinimo dėl \"$1\".",
        "lockmanager-fail-openlock": "Negalima atidaryti rakinimų failo dėl \"$1\".",
        "lockmanager-fail-releaselock": "Negalima panaikinti rakinimo dėl \"$1\".",
+       "lockmanager-fail-db-bucket": "Nepavyko susisiekti su pakankamai užraktų duomenų bazių kibire $1.",
+       "lockmanager-fail-db-release": "Nepavyko atskleisti užraktų duomenų bazei $1.",
+       "lockmanager-fail-svr-acquire": "Nepavyko gauti užraktų serveryje $1.",
+       "lockmanager-fail-svr-release": "Nepavyko atskleisti užraktų serveryje $1.",
        "zip-file-open-error": "Įvyko klaida atidarant ZIP patikrinimus failą.",
        "zip-wrong-format": "Nurodytas failas nėra ZIP failas.",
        "zip-bad": "Šis failas yra sugadintas ar kitaip neįskaitomas ZIP failą.! N! Ji negali būti tinkamai patikrinti dėl jų saugumo.",
        "listfiles-delete": "trinti",
        "listfiles-summary": "Šiame specialiame puslapyje rodomos visos įkeltos rinkmenos.",
        "listfiles_search_for": "Ieškoti failo pavadinimo:",
+       "listfiles-userdoesnotexist": "Vartotojo paskyrą „$1“ nėra registruota.",
        "imgfile": "rinkmena",
        "listfiles": "Failų sąrašas",
        "listfiles_thumb": "Miniatiūra",
        "filedelete-maintenance": "Failų trynimas ir atkūrimas laikinai išjungtas dėl profilaktikos.",
        "filedelete-maintenance-title": "Negalima panaikinti failo",
        "mimesearch": "MIME paieška",
-       "mimesearch-summary": "Šis puslapis leidžia rodyti failus pagal jų MIME tipą. Įveskite: turiniotipas/potipis, pvz. <code>image/jpeg</code>.",
+       "mimesearch-summary": "Šis puslapis leidžia filtruoti failus pagal jų MIME tipą.\nĮveskite: turinio tipas/potipis/*, pvz. <code>image/jpeg</code>.",
        "mimetype": "MIME tipas:",
        "download": "parsisiųsti",
        "unwatchedpages": "Nestebimi puslapiai",
        "pageswithprop-text": "Šiame puslapyje pateikiami puslapiai, kurie ypač naudoja puslapio atributus.",
        "pageswithprop-prop": "Ypatybės pavadinimas:",
        "pageswithprop-submit": "Eiti",
+       "pageswithprop-prophidden-long": "ilgo teksto turto vertė paslėpta ($1)",
+       "pageswithprop-prophidden-binary": "dvejetainė turto vertė paslėpta ($1)",
        "doubleredirects": "Dvigubi peradresavimai",
        "doubleredirectstext": "Šiame puslapyje yra puslapių, kurie nukreipia į kitus peradresavimo puslapius, sąrašas.\nKiekvienoje eilutėje yra nuorodos į pirmąjį ir antrąjį peradresavimą, taip pat antrojo peradresavimo paskirtis, kuris paprastai yra „tikrasis“ paskirties puslapis, į kurį pirmasis peradresavimas ir turėtų rodyti.\n<del>Išbraukti</del> įrašai yra išspręsti.",
        "double-redirect-fixed-move": "[[$1]] buvo pervardytas; dabar tai peradresavimas į [[$2]].",
        "unusedimages": "Nenaudojami failai",
        "wantedcategories": "Geidžiamiausios kategorijos",
        "wantedpages": "Geidžiamiausi puslapiai",
+       "wantedpages-summary": "Sąrašas neegzistuojančių puslapių su daugiausią nuorodų į juos, išskyrus puslapius, kurie turi tik nukreipimus į juos. Jei norite pamatyti sąrašą neegzistuojančių puslapių, su nukreipimais į juos,  žiūrėkite [[{{#special:BrokenRedirects}}]].",
        "wantedpages-badtitle": "Neleistinas pavadinimas rezultatų rinkinyje: $1",
        "wantedfiles": "Trokštami failai",
        "wantedfiletext-cat": "Sekantys failai yra naudojami, bet neegzistuoja. Čia failai iš išorinių saugyklų gali būti išvardinti, nors jie jose ir egzistuoja. Failai netenkinantys šių sąlygų gali būti <del>perbraukti</del>. Papildomai peržiūrėkite [[:$1|puslapius]], kuriuose yra naudojami čia išvardinti neegzistuojantys failai.",
+       "wantedfiletext-cat-noforeign": "Šie failai yra naudojami, bet neegzistuoja. Be to, puslapiai su šiais failais, kurie neegzistuoja yra išvardinti [[:$1]].",
        "wantedfiletext-nocat": "Sekantys failai yra naudojami, bet neegzistuoja. Čia failai iš išorinių saugyklų gali būti išvardinti, nors jie jose ir egzistuoja. Failai netenkinantys šių sąlygų gali būti <del>perbraukti</del>.",
        "wantedfiletext-nocat-noforeign": "Šios rinkmenos yra naudojamos, tačiau nesti.",
        "wantedtemplates": "Trokštami šablonai",
        "logempty": "Sąraše nėra jokių atitinkančių įvykių.",
        "log-title-wildcard": "Ieškoti pavadinimų, prasidedančių šiuo tekstu",
        "showhideselectedlogentries": "Rodyti/slėpti pasirinktus sąrašo elementus",
+       "log-edit-tags": "Redaguoti žymes pasirinktuose žurnalo įrašuose",
        "allpages": "Visi puslapiai",
        "nextpage": "Kitas puslapis ($1)",
        "prevpage": "Ankstesnis puslapis ($1)",
        "trackingcategories-name": "Pranešimo pavadinimas",
        "trackingcategories-desc": "Įtraukimo kategorijon sąlygos",
        "noindex-category-desc": "Šis puslapis nėra indeksuojamas robotų, nes jame yra specialus įrašas <code><nowiki>__NOINDEX__</nowiki></code> ir yra vardų srityje, kuri ši vėliava leidžiama.",
+       "index-category-desc": "Šis puslapis turi <code><nowiki>__INDEX__</nowiki></code> (ir yra tarp vardų, kur žymėjimas yra leidžiamas) ir todėl yra indeksuojamas robotų, kur paprastai nebūtų.",
        "post-expand-template-inclusion-category-desc": "Puslapio dydis viršija <code>$wgMaxArticleSize</code>, kai išskleidžiami visi šablonai, todėl keletas šablonų liko neišskleista.",
+       "post-expand-template-argument-category-desc": "Puslapis yra didesnis nei <code>$wgMaxArticleSize</code> po šablono argumento išplėtimo (kažkas tarp trigubų skliaustelių, kaip <code>{{{Foo}}}</code>).",
+       "expensive-parserfunction-category-desc": "Šis puslapis naudoja per daug brangių analizatoriaus funkcijų (kaip <code>#ifexist</code>). Žiūrėkite [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
        "broken-file-category-desc": "Puslapyje yra neveikianti rinkmenos nuoroda (yra rinkmenos nuoroda, tačiau pačios rinkmenos nėra).",
+       "hidden-category-category-desc": "Kategorija turi <code><nowiki>__HIDDENCAT__</nowiki></code> puslapio turinyje, tai neleidžia jai pasirodyti kategorijų nuorodų dėžutėje, puslapiuose pagal numatytuosius nustatymus.",
        "trackingcategories-nodesc": "Nėra aprašymo.",
        "trackingcategories-disabled": "Kategorija išjungta",
        "mailnologin": "Nėra adreso",
        "emailccsubject": "Laiško kopija naudotojui $1: $2",
        "emailsent": "El. laiškas išsiųstas",
        "emailsenttext": "Jūsų el. pašto žinutė išsiųsta.",
-       "emailuserfooter": "Šis elektroninis laiškas buvo išsiųstas naudotojo $1 naudotojui $2 naudojant „Rašyti elektroninį laišką“ funkciją projekte {{SITENAME}}.",
+       "emailuserfooter": "Šis el. laiškas buvo išsiųstas naudotojo $1 naudotojui $2 naudojant „{{int:emailpage}}“ funkciją {{SITENAME}}.",
        "usermessage-summary": "Paliekamas sistemos pranešimas.",
        "usermessage-editor": "Sistemos pranešėjas",
        "watchlist": "Stebimų sąrašas",
        "namespace": "Vardų sritis:",
        "invert": "Žymėti priešingai",
        "tooltip-invert": "Įjunkite šią parinktį, jei norite paslėpti nurodytos vardų srities (ir susijusių, jei įjungta parinktis) puslapių pakeitimus",
+       "tooltip-whatlinkshere-invert": "Pažymėkite šį langelį jei norite slėpti nuorodas iš puslapių pasirinkto pavadinimo tarpe.",
        "namespace_association": "Susijusi vardų sritis",
        "tooltip-namespace_association": "Įjunkite šią parinktį, kad taip pat įtrauktumėte aptarimų arba temos sritį, susijusią su pasirinkta sritimi",
        "blanknamespace": "(Pagrindinė)",
        "proxyblockreason": "Jūsų IP adresas yra užblokuotas, nes jis yra atvirasis tarpinis serveris. Prašome susisiekti su savo interneto paslaugų tiekėju ar technine pagalba ir praneškite jiems apie šią svarbią saugumo problemą.",
        "sorbsreason": "Jūsų IP adresas yra įtrauktas į atvirųjų tarpinių serverių DNSBL sąrašą, naudojamą šios svetainės.",
        "sorbs_create_account_reason": "Jūsų IP adresas yra įtrauktas į atvirųjų tarpinių serverių DNSBL sąrašą, naudojamą šios svetainės. Jūs negalite sukurti paskyros",
+       "xffblockreason": "IP adresas esantys X-Forwarded-For antraštėje, jūsų ar tarpinio serverio, kuriuo jūs naudojatės, buvo užblokuotas. Originali bloko priežastis buvo: $1",
        "cant-see-hidden-user": "Naudotojas, kurį bandote užblokuoti, jau yra užblokuotas arba paslėptas.\nKadangi jūs neturi hideuser teisės, jūs negalite pamatyti arba pakeisti naudotojo blokavimo.",
        "ipbblocked": "Jūs negalite blokuoti ar atblokuoti kitų naudotojų, nes pats esate užblokuotas",
        "ipbnounblockself": "Jums nėra leidžiama savęs atblokuoti",
        "immobile-target-namespace-iw": "Tarprojektinė nuoroda yra neleistina paskirtis perkelti puslapį.",
        "immobile-source-page": "Šio puslapio perkelti negalima.",
        "immobile-target-page": "Negalima perkelti į paskirtąją vietą.",
+       "bad-target-model": "Norimas tikslas naudoja kitokį turinio modelį. Negalima konvertuoti iš $1 į $2.",
        "imagenocrossnamespace": "Negalima pervadinti failo į ne failo vardų sritį",
        "nonfile-cannot-move-to-file": "Negalima perkelti ne failo į failų vardų sritį",
        "imagetypemismatch": "Naujas failo plėtinys neatitinka jo tipo",
        "thumbnail_image-type": "Paveikslėlio tipas nėra palaikomas",
        "thumbnail_gd-library": "Nepilna GD bibliotekos konfigūracija: trūksta funkcijos $1",
        "thumbnail_image-missing": "Gali būti, kad failo nėra: $1",
+       "thumbnail_image-failure-limit": "Pastaruoju metu įvyko per daug nesėkmingų bandymų ($1 ar daugiau) pateikti šį paveikslėlį. Prašome pabandyti vėliau.",
        "import": "Importuoti puslapius",
        "importinterwiki": "Įkelti iš kitos Viki",
-       "import-interwiki-text": "Pasirinkite projektą ir puslapio pavadinimą importavimui.\nVersijų datos ir redaktorių vardai bus išlaikyti.\nVisi tarpprojektiniai importo veiksmai yra registruojami  [[Special:Log/import|importo istorijoje]].",
+       "import-interwiki-text": "Pasirinkite viki ir puslapio pavadinimą importavimui.\nVersijų datos ir redaktorių vardai bus išlaikyti.\nVisi importai iš kitų viki yra registruojami [[Special:Log/import|importo istorijoje]].",
        "import-interwiki-sourcewiki": "Pradinė wiki:",
        "import-interwiki-sourcepage": "Pirminis puslapis:",
        "import-interwiki-history": "Kopijuoti visas istorijos versijas šiam puslapiui",
        "import-interwiki-templates": "Įtraukti visus šablonus",
        "import-interwiki-submit": "Importuoti",
+       "import-mapping-default": "Importuoti į numatytąsias vietas",
+       "import-mapping-namespace": "Importuoti į vardų sritį:",
+       "import-mapping-subpage": "Importuoti kaip popuslapius šiam puslapiui:",
        "import-upload-filename": "Failo pavadinimas:",
        "import-comment": "Paaiškinimas:",
        "importtext": "Prašome eksportuoti iš projekto-šaltinio failo, naudojant [[Special:Export|eksportavimo pagalbininką.]]\nIšsaugokite jį savo kompiuteryje ir įkelkite jį čia.",
        "importcantopen": "Nepavyksta atverti importo failo",
        "importbadinterwiki": "Bloga tarpprojektinė nuoroda",
        "importsuccess": "Importas užbaigtas!",
-       "importnosources": "Nenustatyti transwiki importo šaltiniai, o tiesioginis praeities įkėlimas uždraustas.",
+       "importnosources": "Nėra viki iš kur importai buvo apibrėžti ir tiesioginiai istorijos įkėlimai yra neįgalinti.",
        "importnofile": "Nebuvo įkeltas joks importo failas.",
        "importuploaderrorsize": "Importavimo failo įkėlimas nepavyko. Failas didesnis nei leidžiamas dydis.",
        "importuploaderrorpartial": "Importavimo failo įkėlimas nepavyko. Failas buvo tik dalinai įkeltas.",
        "importuploaderrortemp": "Importavimo failo įkėlimas nepavyko. Trūksta laikinojo aplanko.",
        "import-parse-failure": "XML importo nagrinėjimo klaida",
        "import-noarticle": "Nėra puslapių importuoti!",
-       "import-nonewrevisions": "Visos versijos buvo importuotos anksčiau.",
+       "import-nonewrevisions": "Nebuvo importuotos jokios versijos (visos jau buvo įkeltos arba praleistos dėl klaidų).",
        "xml-error-string": "$1 $2 eilutėje, $3 stulpelyje ($4 baitas): $5",
        "import-upload": "Įkelti XML duomenis",
        "import-token-mismatch": "Sesijos duomenys prarasti. Bandykite iš naujo.",
        "import-invalid-interwiki": "Nepavyko importuoti iš nurodyto wiki projekto.",
-       "import-error-edit": "Puslapis \"$1\" nebuvo įkeltas, kadangi jūs neturite teisės jį redaguoti.",
-       "import-error-create": "Puslapis \"$1\" nebuvo įkeltas, kadangi jūs neturite teisės jį sukurti.",
-       "import-error-interwiki": "Puslapis \"$1\" nebuvo įkeltas, kadangi jo pavadinimas yra rezervuotas išorinei nuorodai (interviki).",
-       "import-error-special": "Puslapis \"$1\" nebuvo įkeltas, kadangi jis priklauso specialiai vardų sričiai, kurioje yra negalimi puslapiai.",
+       "import-error-edit": "Puslapis \"$1\" nebuvo įkeltas, nes jūs neturite teisės jį redaguoti.",
+       "import-error-create": "Puslapis „$1“ nebuvo importuotas, nes jūs neturite teisės jį sukurti.",
+       "import-error-interwiki": "Puslapis \"$1\" nebuvo importuotas, nes jo pavadinimas yra rezervuotas išorinei nuorodai (interviki).",
+       "import-error-special": "Puslapis „$1“ nebuvo importuotas, nes jis priklauso specialiai vardų sričiai, kurioje neleidžiami puslapiai.",
        "import-error-invalid": "Puslapis \"$1\" nebuvo įkeltas, kadangi jo vardas yra neteisingas.",
+       "import-error-unserialize": "Versija $2 puslapio „$1“ negali būti nepublikuota. Versija buvo pranešta dėl turinio modelio $3 naudojimo publikuoti kaip $4.",
+       "import-error-bad-location": "Versija $2 naudojanti turinio modelį $3 negali būti laikoma „$1“ šioje viki, nes šis modelis nėra palaikomas tame puslapyje.",
+       "import-options-wrong": "Netinka {{PLURAL:$2|pasirinktis|pasirinktys}}: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "Duotas šaknų puslapis yra blogas pavadinimas.",
+       "import-rootpage-nosubpage": "Šakninio puslapio vardų sritis „$1“ neleidžia popuslapių.",
        "importlogpage": "Importavimų sąrašas",
        "importlogpagetext": "Administraciniai puslapių importai su keitimų istorija iš kitų wiki projektų.",
-       "import-logentry-upload-detail": "$1 {{PLURAL:$1|keitimas|keitimai|keitimų}}",
-       "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|keitimas|keitimai|keitimų}} iš $2",
+       "import-logentry-upload-detail": "$1 {{PLURAL:$1|keitimas|keitimai}} importuoti",
+       "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|keitimas|keitimai}} importuoti iš $2",
        "javascripttest": "JavaScript testavimas",
        "javascripttest-pagetext-noframework": "Šis puslapis yra skirtas vykdyti JavaScript testavimus.",
        "javascripttest-pagetext-unknownframework": "Nežinoma \"$1\" testavimo struktūra.",
+       "javascripttest-pagetext-unknownaction": "Nežinomas veiksmas „$1“.",
        "javascripttest-pagetext-frameworks": "Prašome pasirinkti vieną iš išvardintų testavimo struktūrų: $1",
        "javascripttest-pagetext-skins": "Pasirinkite naudotojo sąsajos išvaizdą, kuriai atliksite testavimą:",
        "javascripttest-qunit-intro": "Peržiūrėkite [$1 testavimo dokumentaciją]",
        "pageinfo-length": "Puslapio ilgis (baitais)",
        "pageinfo-article-id": "Puslapio ID",
        "pageinfo-language": "Puslapio turinio kalba",
-       "pageinfo-robot-policy": "Paieškos variklio būsena",
+       "pageinfo-content-model": "Puslapio turinio modelis",
+       "pageinfo-robot-policy": "Robotų indeksavimas",
        "pageinfo-robot-index": "Leidžiama",
        "pageinfo-robot-noindex": "Neleidžiama",
        "pageinfo-watchers": "Puslapio stebėtojų skaičius",
+       "pageinfo-few-watchers": "Mažiau nei $1 {{PLURAL:$1|stebėtojas|stebėtojų}}",
        "pageinfo-redirects-name": "Nukreipimai į šį puslapį",
        "pageinfo-subpages-name": "Šio puslapio papuslapiai",
        "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|peradresavimas|peradresavimai}}; $3 {{PLURAL:$3|neperadresavimas|peradresavimai}})",
        "pageinfo-protect-cascading-yes": "Taip",
        "pageinfo-protect-cascading-from": "Apsaugos yra kaskaduotos iš",
        "pageinfo-category-info": "Informacija apie kategoriją",
+       "pageinfo-category-total": "Visas narių skaičius",
        "pageinfo-category-pages": "Puslapių skaičius",
        "pageinfo-category-subcats": "Dukterinių kategorijų skaičius",
        "pageinfo-category-files": "Failų skaičius",
        "patrol-log-page": "Patikrinimų sąrašas",
        "patrol-log-header": "Tai patvirtintų versijų sąrašas.",
        "log-show-hide-patrol": "$1 patvirtinimų sąrašą",
+       "log-show-hide-tag": "$1 žymės žurnalas",
        "deletedrevision": "Ištrinta sena versija $1",
        "filedeleteerror-short": "Klaida trinant rinkmeną: $1",
        "filedeleteerror-long": "Įvyko klaidų trinant failą:\n\n$1",
        "file-info-png-repeat": "grota $1 {{PLURAL:$1|kartą|kartus|kartų}}",
        "file-info-png-frames": "$1 {{PLURAL:$1|kadras|kadrai|kadrų}}",
        "file-no-thumb-animation": "'''Pastaba: Dėl techninių apribojimų, miniatiūrų, šis failas negali būti animacinis.'''",
+       "file-no-thumb-animation-gif": "<strong>Note: Dėl techninių apribojimų, didelės rezoliucijos GIF paveikslėlių miniatiūros, kaip ši nebus animuotos.</strong>",
        "newimages": "Naujausių failų galerija",
        "imagelisttext": "Žemiau yra '''$1''' {{PLURAL:$1|failo|failų|failų}} sąrašas, surūšiuotas $2.",
        "newimages-summary": "Šis specialus puslapis rodo paskiausiai įkeltus failus.",
        "watchlisttools-raw": "Redaguoti grynąjį sąrašą",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|aptarimas]])",
        "duplicate-defaultsort": "Įspėjimas: Numatytasis rikiavimo raktas „$2“ pakeičia ankstesnį numatytąjį rikiavimo raktą „$1“.",
+       "duplicate-displaytitle": "<strong>Perspėjimas:</strong> Rodymas pavadinimas „$2“ pakeičia ankstesnį rodoma pavadinimą „$1“.",
+       "invalid-indicator-name": "<strong>Klaida:</strong> Puslapio statuso <code>pavadinimo</code> rodiklio požymis turi būti netuščias.",
        "version": "Versija",
        "version-extensions": "Įdiegti priedai",
        "version-skins": "Įrašytos išvaizdos",
        "version-ext-colheader-description": "Aprašymas",
        "version-ext-colheader-credits": "Autoriai",
        "version-license-title": "$1 licencija",
+       "version-license-not-found": "Išsami licencijos informacijas šiam plėtiniui nebuvo rasta.",
        "version-credits-title": "$1 autoriai",
+       "version-credits-not-found": "Išsami kreditų informacija šiam plėtiniui nebuvo rasta.",
        "version-poweredby-credits": "Šis projektas naudoja '''[https://www.mediawiki.org/ MediaWiki]''', autorystės teisės © 2001-$1 $2.",
        "version-poweredby-others": "kiti",
        "version-poweredby-translators": "translatewiki.net vertėjai",
        "version-entrypoints": "Įėjimo taško URL",
        "version-entrypoints-header-entrypoint": "Įėjimo taškas",
        "version-entrypoints-header-url": "URL",
+       "version-libraries": "Įdiegtos bibliotekos",
        "version-libraries-library": "Biblioteka",
        "version-libraries-version": "Versija",
-       "redirect": "Nukreipkite iš failo, naudotojo arba pakeiskite ID",
+       "redirect": "Nukreiptas iš failo, naudotojo arba versijos ID",
        "redirect-legend": "Nukreipti į failą ar puslapį",
+       "redirect-summary": "Šis specialus puslapis peradresuoją į failą (nurodant failo pavadinimą), puslapį (nurodant versijos ID ar puslapio ID), arba vartotojo puslapį (nurodant skaitinį vartotojo ID).\nNaudojimas: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], or [[{{#Special:Redirect}}/user/101]].",
        "redirect-submit": "Eiti",
        "redirect-lookup": "Peržvalgos:",
        "redirect-value": "Vertė:",
        "tags-tag": "Žymos pavadinimas",
        "tags-display-header": "Išvaizda keitimų sąrašuose",
        "tags-description-header": "Visas reikšmės aprašymas",
+       "tags-source-header": "Šaltinis",
        "tags-active-header": "Veikiantis?",
        "tags-hitcount-header": "Pažymėti pakeitimai",
+       "tags-actions-header": "Veiksmai",
        "tags-active-yes": "Taip",
        "tags-active-no": "Ne",
+       "tags-source-extension": "Apibrėžta papildinio",
+       "tags-source-manual": "Taikoma vartotojų ar robotų rankiniu būdu",
+       "tags-source-none": "Nebevartojamas",
        "tags-edit": "taisyti",
+       "tags-delete": "ištrinti",
+       "tags-activate": "aktyvuoti",
+       "tags-deactivate": "išjungti",
        "tags-hitcount": "$1 {{PLURAL:$1|pakeitimas|pakeitimai|pakeitimų}}",
+       "tags-manage-no-permission": "Jūs neturite teisių valdyti pakeitimo žymes.",
+       "tags-create-heading": "Kurti naują žymą",
+       "tags-create-explanation": "Pagal numatytuosius nustatymus naujai sukurtos žymos bus prieinamos naudojimui vartotojams ir robotams.",
+       "tags-create-tag-name": "Žymos pavadinimas:",
+       "tags-create-reason": "Priežastis:",
+       "tags-create-submit": "Sukurti",
+       "tags-create-no-name": "Privalote nurodyti žymės pavadinimą.",
+       "tags-create-invalid-chars": "Žymių pavadinimai neturi turėti kablelių (<code>,</code>) ar pasvirusių brūkšnių (<code>/</code>).",
+       "tags-create-invalid-title-chars": "Žymių pavadinimai negali turėti simbolių, kurie negali būti naudojami puslapių pavadinimuose.",
+       "tags-create-already-exists": "Žymė „$1“ jau egzistuoja.",
+       "tags-create-warnings-above": "Buvo susidurta su {{PLURAL:$2|įspėjimu|įspėjimais}} bandant sukurti žymę „$1“:",
+       "tags-create-warnings-below": "Ar nori toliau kurti žymę?",
+       "tags-delete-title": "Trinti žymę",
+       "tags-delete-explanation-initial": "Jūs ruošiatės ištrinti žymę „$1“ iš duomenų bazės.",
+       "tags-delete-explanation-in-use": "Žymė bus pašalinta iš {{PLURAL:$2|$2 versijos ar žurnalo įrašų|visų $2 versijų ir/ar žurnalo įrašų}}, kuriems tai galima taikyti.",
+       "tags-delete-explanation-warning": "Šis veiksmas yra <strong>negrįžtamas</strong> ir <strong>negali būti anuliuojamas</strong> net ir duomenų bazės administratorių. Būkite tikri, kad tai yra žymė, kurią norite ištrinti.",
+       "tags-delete-explanation-active": "<strong>Žymė „$1“ yra vis dar aktyvi ir bus taikomos ateityje.</strong> Norint tai sustabdyti eikite į vietą(-as), kur žymė yra nustatyti taikimui, ir išjungti ją ten.",
+       "tags-delete-reason": "Priežastis:",
+       "tags-delete-submit": "Negrįžtamai ištrinti šią žymą",
+       "tags-delete-not-allowed": "Žymos apibrėžtos plėtinio negali būti pašalintos, nebent būtent plėtinys tai leidžia.",
+       "tags-delete-not-found": "Žymė „$1“ neegzistuoja.",
+       "tags-delete-too-many-uses": "Žymė „$1“ yra naudojama daugiau nei $2 {{PLURAL:$2|versijoje|versijose}}, o tai reiškia, kad ji negali būti ištrinta.",
+       "tags-delete-warnings-after-delete": "Žymė „$1“ buvo ištrinta sėkmingai, tačiau buvo susidurta su {{PLURAL:$2|įspėjimu|įspėjimais}}:",
+       "tags-activate-title": "Aktyvuoti žymę",
+       "tags-activate-question": "Jūs ruošiatės aktyvuoti žymę „$1“.",
+       "tags-activate-reason": "Priežastis:",
+       "tags-activate-not-allowed": "Neįmanoma aktyvuoti žymę „$1“\90.",
+       "tags-activate-not-found": "Žymė „$1“ neegzistuoja.",
+       "tags-activate-submit": "Aktyvuoti",
+       "tags-deactivate-title": "Išjungti žymę",
+       "tags-deactivate-question": "Jūs ketinate išjungti žymę „$1“.",
+       "tags-deactivate-reason": "Priežastis:",
+       "tags-deactivate-not-allowed": "Neįmanoma išjungti žymę „$1“.",
+       "tags-deactivate-submit": "Išjungti",
+       "tags-apply-no-permission": "Jūs neturite leidimo taikyti pakeitimo žymes kartu su savo pakeitimais.",
+       "tags-apply-not-allowed-one": "Žymė „$1“ negali būti taikoma rankiniu būdu.",
+       "tags-apply-not-allowed-multi": "{{PLURAL:$2|žyme|žymės}} negali būti taikoma rankiniu būdu: $1",
+       "tags-update-no-permission": "Jūs neturite leidimo pridėti arba pašalinti pokyčių žymes iš atskirų pakeitimų ar žurnalo įrašų.",
+       "tags-update-add-not-allowed-one": "Žymė „$1“ negali būti pridėta rankiniu būdu.",
+       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|žymė|žymės}} negali būti pridėtos rankiniu būdu: $1",
+       "tags-update-remove-not-allowed-one": "Žymė \"$1\" negali būti pašalinta.",
+       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|žymė|žymės}} negali būti pašalinta rankiniu būdu: $1",
+       "tags-edit-title": "Redaguoti žymas",
+       "tags-edit-manage-link": "Tvarkyti žymas",
+       "tags-edit-revision-selected": "{{PLURAL:$1|Pasirinkta versija|Pasirinktos versijos}} [[:$2]]:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Pasirinktas žurnalo įvykis|Pasirinkti žurnalo įvykiai}}:",
+       "tags-edit-revision-legend": "Pridėti arba pašalinti žymas iš {{PLURAL:$1|šios versijos|visų $1 versijų}}",
+       "tags-edit-logentry-legend": "Pridėti arba pašalinti žymas iš {{PLURAL:$1|šio žurnalo įrašo|visų $1 žurnalo įrašų}}",
+       "tags-edit-existing-tags": "Egzistuojančios žymos:",
+       "tags-edit-existing-tags-none": "\"Nėra\"",
+       "tags-edit-new-tags": "Naujos žymos:",
+       "tags-edit-add": "Pridėti šias žymas:",
+       "tags-edit-remove": "Pašalinti šias žymas:",
+       "tags-edit-remove-all-tags": "(pašalinti visas žymes)",
+       "tags-edit-chosen-placeholder": "Pasirinkite kai kuriuos žymes",
+       "tags-edit-chosen-no-results": "Nėra atitinkančių žymių",
+       "tags-edit-reason": "Priežastis:",
+       "tags-edit-revision-submit": "Taikyti pakeitimus {{PLURAL:$1|šiai versijai|$1 versijoms}}",
+       "tags-edit-logentry-submit": "Taikyti pakeitimus {{PLURAL:$1|šiam žurnalo įrašui|$1 žurnalo įrašams}}",
+       "tags-edit-success": "Pakeitimai sėkmingai pritaikyti.",
+       "tags-edit-failure": "Pokyčiai negali būti taikomi:\n$1",
+       "tags-edit-nooldid-title": "Negalima pasirinkta versija",
+       "tags-edit-nooldid-text": "Jūs nenurodėte jokio peržiūros, kuriai vykdyti šią funkciją, arba nurodytos peržiūros nėra.",
+       "tags-edit-none-selected": "Prašome pasirinkti bent vieną žymę, jei norite pridėti arba pašalinti.",
        "comparepages": "Palyginti puslapius",
        "compare-page1": "Puslapis 1",
        "compare-page2": "Puslapis 2",
        "compare-revision-not-exists": "Keitimas, kurį nurodėte, neegzistuoja.",
        "dberr-problems": "Atsiprašome! Svetainei iškilo techninių problemų.",
        "dberr-again": "Palaukite kelias minutes ir perkraukite puslapį.",
-       "dberr-info": "(Nepavyksta pasiekti duomenų bazės serverio: $1)",
-       "dberr-info-hidden": "(Nepavyksta susisiekti su duomenų bazės serveriu)",
+       "dberr-info": "(Nepavyksta pasiekti duomenų bazės: $1)",
+       "dberr-info-hidden": "(Nepavyksta pasiekti duomenų bazės)",
        "dberr-usegoogle": "Šiuo metu jūs galite ieškoti per „Google“.",
        "dberr-outofdate": "Mūsų turinio kopijos ten gali būti pasenusios.",
        "dberr-cachederror": "Tai prašomo puslapio išsaugota kopija, ji gali būti pasenusi.",
        "sqlite-no-fts": "$1 be visatekstės paieškos palaikymo",
        "logentry-delete-delete": "$1 {{GENDER:$2|ištrynė}} puslapį $3",
        "logentry-delete-restore": "$1 {{GENDER:$2|atkūrė}} puslapį $3",
-       "logentry-delete-event": "$1 pakeistas  matomumas {{PLURAL:$5|žurnalo įvykio|$5 žurnalo įvykių}} tarp $3: $4",
-       "logentry-delete-revision": "$1 pakeitė puslapio „$3“ {{PLURAL:$5|versijos|$5 versijų}} matomumą: $4",
-       "logentry-delete-event-legacy": "$1 pakeistas matomumą žurnalo renginiams tarp $3",
-       "logentry-delete-revision-legacy": "$1 pakeistas matomumas pažiūrų puslapio $3",
-       "logentry-suppress-delete": "$1 nuslopino puslapį $3",
-       "logentry-suppress-event": "$1 slaptai pakeistas matomumas {{PLURAL:$5|žurnalo įvykio|$5 žurnalo įvykiu}} tarp $3: $4",
-       "logentry-suppress-revision": "$1 slaptai pakeistas matomumas {{PLURAL:$5|peržiūros|$5 peržiūrų}} puslapyje $3: $4",
-       "logentry-suppress-event-legacy": "$1 slaptai pakeistas matomumas žurnalo įvykių tarp $3",
-       "logentry-suppress-revision-legacy": "$1 slaptai pakeistas matomumas peržiūrų puslapyje $3",
+       "logentry-delete-event": "$1 {{GENDER:$2|pakeitė}} matomumą {{PLURAL:$5|žurnalo įvykio|$5 žurnalo įvykių}} $3: $4",
+       "logentry-delete-revision": "$1 {{GENDER:$2|pakeitė}} matomumą {{PLURAL:$5|versijos|$5 versijų}} puslapyje $3: $4",
+       "logentry-delete-event-legacy": "$1 {{GENDER:$2|pakeitė}} matomumą žurnalo renginiams $3",
+       "logentry-delete-revision-legacy": "$1 {{GENDER:$2|pakeitė}} puslapio peržiūrų matomumą $3",
+       "logentry-suppress-delete": "$1 {{GENDER:$2|nuslopino}} puslapį $3",
+       "logentry-suppress-event": "$1 slaptai {{GENDER:$2|pakeitė}} matomumą {{PLURAL:$5|žurnalo įvykio|$5 žurnalo įvykiu}} $3: $4",
+       "logentry-suppress-revision": "$1 slaptai {{GENDER:$2|pakeitė}} {{PLURAL:$5|peržiūros|$5 peržiūrų}} puslapyje matomumą $3: $4",
+       "logentry-suppress-event-legacy": "$1 slaptai {{GENDER:$2|pakeitė}} žurnalo įvykių matomumą $3",
+       "logentry-suppress-revision-legacy": "$1 slaptai {{GENDER:$2|pakeitė}} puslapio peržiūrų matomumą $3",
        "revdelete-content-hid": "turinys paslėptas",
        "revdelete-summary-hid": "paslėptas keitimo komentaras",
        "revdelete-uname-hid": "paslėptas naudotojo vardas",
        "logentry-block-reblock": "$1 {{GENDER:$2|pakeitė}} {{GENDER:$4|$3}} blokavimo nustatymus, blokavimo laikas – $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2|užblokavo}} {{GENDER:$4|$3}}, blokavimo laikas – $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|pakeitė}} {{GENDER:$4|$3}} blokavimo nustatymus, blokavimo laikas – $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|importavo}} $3 per failų keltuvą",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|importavo}} $3 iš kitos viki",
+       "logentry-merge-merge": "$1 {{GENDER:$2|sujungė}} $3 į $4 (versijas iki $5)",
        "logentry-move-move": "$1 pervadino puslapį $3 į $4",
-       "logentry-move-move-noredirect": "$1 pervadino puslapį $3 į $4, nepalikdamas nukreipimo",
-       "logentry-move-move_redir": "$1 pervadino puslapį iš $3 į $4, vietoje buvusio nukreipimo",
-       "logentry-move-move_redir-noredirect": "$1 pervadino puslapį iš $3 į $4, vietoje buvusio nukreipimo, bet nesukurdamas naujo",
-       "logentry-patrol-patrol": "$1 pažymėjo peržiūrą $4 puslapio $3 patruliuojama",
-       "logentry-patrol-patrol-auto": "$1 automatiškai pažymėjo peržiūrą $4 puslapio $3 patruliuojama",
-       "logentry-newusers-newusers": "$1 sukūrė naudotojo paskyrą",
+       "logentry-move-move-noredirect": "$1 {{GENDER:$2|perkėlė}} puslapį $3 į $4 be nukreipimo",
+       "logentry-move-move_redir": "$1 {{GENDER:$2|perkėlė}} puslapį $3 į $4 per nukreipimą",
+       "logentry-move-move_redir-noredirect": "$1 {{GENDER:$2|perkėlė}} puslapį $3 į $4 per nukreipimą be paliko nukreipimo",
+       "logentry-patrol-patrol": "$1 {{GENDER:$2|payžėmjo}} versiją $4 puslapio $3 kaip patruliuojama",
+       "logentry-patrol-patrol-auto": "$1 automatiškai {{GENDER:$2|pažymėjo}} versiją $4 puslapio $3 kaip patruliuojama",
+       "logentry-newusers-newusers": "Vartotojo paskyra $1 buvo {{GENDER:$2|sukurta}}",
        "logentry-newusers-create": "$1 sukūrė naudotojo paskyrą",
-       "logentry-newusers-create2": "$1 sukūrė naudotojo paskyrą $3",
-       "logentry-newusers-byemail": "Naudotojas $1 sukūrė paskyrą $3, slaptažodis išsiųstas E-paštu.",
-       "logentry-newusers-autocreate": "Paskyra $1 buvo sukurta automatiškai",
-       "logentry-rights-rights": "$1 pakeista narystė grupėje $3 iš $4 į $5",
+       "logentry-newusers-create2": "Vartotojo paskyra $3 buvo {{GENDER:$2|sukurta}} $1",
+       "logentry-newusers-byemail": "Vartotojo paskyra $3 buvo {{GENDER:$2|sukurta}} $1 ir slaptažodis išsiųstas el. paštu",
+       "logentry-newusers-autocreate": "Vartotojo paskyra $1 buvo {{GENDER:$2|sukurta}} automatiškai",
+       "logentry-rights-rights": "$1 {{GENDER:$2|pakeitė}} grupės narystę $3 iš $4 į $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|pakeista}} narystė grupėje $3",
        "logentry-rights-autopromote": "$1 buvo automatiškai {{GENDER:$2|pervestas}} iš $4 į $5",
        "logentry-upload-upload": "$1 {{GENDER:$2|įkėlė}} $3",
        "logentry-upload-overwrite": "$1 {{GENDER:$2|įkėlė}} naują $3 versiją",
        "logentry-upload-revert": "$1 {{GENDER:$2|įkėlė}} $3",
+       "log-name-managetags": "Žymės tvarkymo žurnalas",
+       "log-description-managetags": "Šis puslapis yra sąrašas tvarkymo užduočių susijusių su [[Special:Tags|žymėmis]]. Žurnale yra veiksmai, kuriuos atliko administratorius rankiniu būdu, žymės gali būti sukurtos ar ištrintos viki programinės įrangos be įrašo šiame žurnale.",
+       "logentry-managetags-create": "$1 {{GENDER:$2|sukūė}} žymę \"$4\"",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|ištrynė}} žymę \"$4\" (pašalino iš $5 {{PLURAL:$5|versijos ar žurnalo įrašo|versijų ir/ar žurnalų įrašų}})",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|aktyvavo}} žymę \"$4\" vartotojų ir robotų naudojimui",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|išjungė}} žymę \"$4\" vartotojų ir robotų naudojimui",
+       "log-name-tag": "Žymių žurnalas",
+       "log-description-tag": "Šis puslapis rodo kada naudotojai pridėjo ar pašalino [[Special:Tags|žymes]] iš individualių versijų ar žurnalo įrašų. Žurnale nėra žymėjimo veiksmų, kai jie įvykdomi kaip dalis redagavimo, trynimo ar panašaus veiksmo.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|pridėjo}} {{PLURAL:$7|žymę|žymes}} $6 prie $3 puslapio versijos $4",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|pridėjo}} {{PLURAL:$7|žymę|žymes}} $6 prie $3 puslapio $5 žurnalo įrašo",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|pašalino}} {{PLURAL:$9|žymę|žymes}} $8 iš $3 puslapio $4 versijos",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|pašalino}} {{PLURAL:$9|žymę|žymes}} $8 iš $3 puslapio žurnalo įrašo $5",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|atnaujino}} žymes $3 puslapio versijoje $4, ({{PLURAL:$7|pridėjo}} $6; {{PLURAL:$9|pašalino}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|atnaujino}} žymes $3 puslapio žurnalo įraše $5 ({{PLURAL:$7|pridėtas}} $6; {{PLURAL:$9|pašalintas}} $8)",
        "rightsnone": "(jokių)",
        "revdelete-summary": "keitimo paaiškinimas",
        "feedback-adding": "Pridedamas atsiliepimas į puslapį ...",
        "feedback-bugornote": "Jei jūs esate pasirengę aprašyti techninę problemą išsamiau, [$1 praneškite apie programinę klaidą].\nKitu atveju, galite naudotis žemiau esančia paprastesne forma. Jūsų komentaras bus įtrauktas į puslapį „[$3 $2]“, kartu su jūsų naudotojo vardu ir jūsų naudojama naršykle.",
        "feedback-cancel": "Atšaukti",
        "feedback-close": "Atlikta",
+       "feedback-external-bug-report-button": "Užpildyti techninę užduotį",
        "feedback-dialog-title": "Pateikti atsiliepimą",
+       "feedback-dialog-intro": "Galite naudoti lengvą formą esančia žemiau, kad pateiktumėte savo atsiliepimus. Jūsų komentaras bus pridėtas prie puslapio \"$1\", kartu su jūsų vartotojo vardu.",
        "feedback-error-title": "Klaida",
        "feedback-error1": "Klaida: Neatpažįstamas rezultatas iš API",
        "feedback-error2": "Klaida: Redagavimas nepavyko",
        "feedback-error3": "Klaida: Jokio atsakymo iš API",
+       "feedback-error4": "Klaida: negalima rašyti į pateiktą atsiliepimų puslapį",
        "feedback-message": "Pranešimas:",
        "feedback-subject": "Tema:",
        "feedback-submit": "Pateikti",
+       "feedback-terms": "Aš suprantu, kad mano vartotojo informacija apima informacija apie mano naršyklės ir operacinės sistemos versiją ir ji bus pasidalinta kartu su mano atsiliepimu.",
+       "feedback-termsofuse": "Aš sutinku teikti atsiliepimą pagal Naudojimosi Sąlygas.",
        "feedback-thanks": "Ačiū! Jūsų atsiliepimas buvo užregistruotas puslapyje „[$2 $1]“.",
+       "feedback-thanks-title": "Ačiū!",
+       "feedback-useragent": "Vartotojo veiksnys:",
        "searchsuggest-search": "Ieškoti",
        "searchsuggest-containing": "turintys",
        "api-error-badaccess-groups": "Jums neleidžiama įkelti failus į šią wiki.",
        "api-error-file-too-large": "Failą, kurį pateikėte buvo per didelis.",
        "api-error-filename-tooshort": "Failo vardas yra per trumpas.",
        "api-error-filetype-banned": "Šis failų tipas yra uždraustas.",
-       "api-error-filetype-banned-type": "$1 nėra {{PLURAL:$4|leistinas failo tipas|leistini failo tipai}}. {{PLURAL:$3|Leistinas failų tipas|Leistini failų tipai}} yra $2.",
+       "api-error-filetype-banned-type": "$1 {{PLURAL:$4|nėra leistinas failo tipas|nėra leistini failo tipai}}.{{PLURAL:$3|Leistinas failo tipas yra|Leistini failo tipai yra}} $2.",
        "api-error-filetype-missing": "Failas neturi galūnės.",
        "api-error-hookaborted": "Pakeitimą, kurį bandėte atlikti, nutraukė priedas.",
        "api-error-http": "Vidinė klaida: nepavyko prisijungti prie serverio.",
        "api-error-overwrite": "Perrašymas esamą failą neleidžiamas.",
        "api-error-stashfailed": "Vidinė klaida: serveriui nepavyko išsaugoti laikinąjį failą.",
        "api-error-publishfailed": "Vidinė klaida: serveriui nepavyko paskelbti laikino failo.",
+       "api-error-stasherror": "Įvyko klaida keliant failą į laikyklą.",
+       "api-error-stashedfilenotfound": "Saugomas failas nebuvo rastas bandant įkelti jį iš saugyklos.",
+       "api-error-stashpathinvalid": "Kelias, kuriuo saugomas failas būtų surastas yra negalimas.",
+       "api-error-stashfilestorage": "Įvyko klaida saugant failą saugykloje.",
+       "api-error-stashzerolength": "Serveris negalėjo išsaugoti failo, nes jo ilgis yra nulinis.",
+       "api-error-stashnotloggedin": "Jūs turite būti prisijungęs jei norite išsaugoti failus įkėlimų saugykloje.",
+       "api-error-stashwrongowner": "Failas, kuri bandėte pasiekti saugykloje jums nepriklauso.",
+       "api-error-stashnosuchfilekey": "Failo raktas, kurį bandėte pasiekti saugykloje neegzistuoja.",
        "api-error-timeout": "Serveris neatsakė per numatytą laiką.",
        "api-error-unclassified": "Įvyko nežinoma klaida",
        "api-error-unknown-code": "Nežinoma klaida: \" $1 \"",
        "duration-decades": "$1 {{PLURAL:$1|dešimtmetis|dešimtmečiai|dešimtmečių}}",
        "duration-centuries": "$1 {{PLURAL:$1|amžius|amžiai|amžių}}",
        "duration-millennia": "$1 {{PLURAL:$1|tūkstantmetis|tūkstantmečiai|tūkstantmečių}}",
+       "rotate-comment": "Paveikslėlis pasuktas $1 {{PLURAL:$1|laipsniu|laipsniais}} pagal laikrodžio rodyklę",
        "limitreport-title": "Analizatoriaus duomenys:",
+       "limitreport-cputime": "CPU naudojimas",
+       "limitreport-cputime-value": "$1 {{PLURAL:$1|sekundė|sekundžių}}",
+       "limitreport-walltime": "Realaus laiko naudojimas",
+       "limitreport-walltime-value": "$1 {{PLURAL:$1|sekundė|sekundžių}}",
+       "limitreport-ppvisitednodes": "Pirminio apdorojimo procesorius lankytų mazgų skaičius",
+       "limitreport-ppgeneratednodes": "Pirminio apdorojimo procesorius sugeneruotų mazgų skaičius",
+       "limitreport-postexpandincludesize": "Po išplėtimo įtrauktas dydis",
+       "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|bitas|bitai}}",
+       "limitreport-templateargumentsize": "Šablono argumento dydis",
+       "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|bitas|bitai}}",
+       "limitreport-expansiondepth": "Didžiausias plėtimosi gylis",
+       "limitreport-expensivefunctioncount": "Brangaus analizatoriaus funkcijos skaičius",
+       "expandtemplates": "Išplėsti šablonus",
+       "expand_templates_intro": "Šis specialus puslapis pasirenką tekstą ir išplečia visus rekursyviai.\nJis taip pat išplečia palaikomas analizatoriaus funkcijas kaip\n<code><nowiki>{{</nowiki>#language:…}}</code> ir kintamuosius kaip\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code>.\nTiesą sakant, jis išplečia beveik viską dvigubuose skliaustuose.",
+       "expand_templates_title": "Aplinkybės pavadinimas, {{FULLPAGENAME}} ir pan.:",
+       "expand_templates_input": "Įvesties tekstas:",
        "expand_templates_output": "Rezultatas",
+       "expand_templates_xml_output": "XML išvestis",
+       "expand_templates_html_output": "Gryna HTML išvestis",
        "expand_templates_ok": "Gerai",
        "expand_templates_remove_comments": "Pašalinti komentarus",
+       "expand_templates_remove_nowiki": "Slopinamos <nowiki> žymos rezultatas",
+       "expand_templates_generate_xml": "Rodyti XML nagrinėjimo medį",
+       "expand_templates_generate_rawhtml": "Rodyti gryną HTML",
        "expand_templates_preview": "Peržiūra",
+       "expand_templates_preview_fail_html": "<em>Nes {{SITENAME}} turi įgalinta gryną HTML ir įvyko sesijos duomenų praradimas, peržiūra yra paslėpta kaip atsargos priemonė prieš JavaScript atakas.</em>\n\n<strong>Jei tai teisėtas peržiūros bandymas, prašome bandyti dar kartą.</strong>\nJei tai vistiek neveikia, pabandykite [[Special:UserLogout|atsijungti]] ir vėl prisijungti.",
+       "expand_templates_preview_fail_html_anon": "<em>Nes {{SITENAME}} turi įgalinta gryną HTML ir jūs esate neprisijungęs, peržiūra paslėpta kaip atsargumo priemonė prieš JavaScript atakas.</em>\n\n<strong>Jei tai teisėtas peržiūros bandymas prašome [[Special:UserLogin|prisijungti]] ir bandyti vėl.</strong>",
        "pagelanguage": "Puslapio kalbos pasirinkimas",
        "pagelang-name": "Puslapis",
        "pagelang-language": "Kalba",
        "right-pagelang": "Keisti puslapio kalbą",
        "action-pagelang": "keisti puslapio kalbą",
        "log-name-pagelang": "Keisti kalbos žurnalą",
+       "log-description-pagelang": "Tai pakeitimų žurnalas puslapio kalbomis.",
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|pakeitė}} puslapio kalbą $3 iš $4 į $5.",
+       "default-skin-not-found": "Ups! Numatytoji išvaizda jūsų viki, nustatyta <code dir=\"ltr\">$wgDefaultSkin</code> kaip <code>$1</code>, yra negalima.\n\nPanašu, kad jūsų instaliacija turi {{PLURAL:$4|šią išvaizdą|šias išvaizdas}}. Žiūrėkite [https://www.mediawiki.org/wiki/Manual:Skin_configuration Instrukcija: Išvaizdos konfiguracija] dėl informacijos kaip įgalinti {{PLURAL:$4|ją|jas ir pasirinkti numatytuosius}}.\n\n$2\n\n; Jei ką tik instaliavote MediaWiki:\n: Jūs tikriausiai instaliavote iš git arba tiesiai iš kodo naudojant kitą metodą. Tai tikėtina. Pabandykite įdiegti išvaizdas iš [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org išvaizdų katalogo]:\n:* Persisiunčiant  [https://www.mediawiki.org/wiki/Download tvarkyklę], kuri turi kelius išvaizdas ir plėtinius. Jūs galite nukopijuoti ir įklijuoti <code>skins/</code> kataloge.\n:* Persiųsti individualias išvaizdas iš [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Klonuojant vieną iš <code>mediawiki/skins/*</code> saugyklas per git į <code dir=\"ltr\">skins/</code> kataloge jūsų MediaWiki instaliacijoje.\n: Tai neturėtų trukdyti jūsų git saugyklai jei jūs esate MediaWiki kūrėjas.\n\n; Jei jūs ką tik atnaujinote MediaWiki:\n: MediaWiki 1.24 ir naujesnės versijos daugiau automatiškai neįgalina įdiegtas versijas (žiūrėkite [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Instrukcija: Išvaizdų automatinis aptikimas]). Jūs galite įklijuoti {{PLURAL:$5|šią eilutę|šias eilutes}} į <code>LocalSettings.php</code>, kad įgalintumėte {{PLURAL:$5| |visus}} šiuo metu {{PLURAL:$5|įdiegtą išvaizdą|įdiegtas išvaizdas}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Jei jūs ką tik pakeitėte <code>LocalSettings.php</code>:\n: Dar kartą patikrinkite išvaizdą dėl galimų klaidų.",
+       "default-skin-not-found-no-skins": "Ups! Jūsų viki numatytoji išvaizdą, nurodyta <code>$wgDefaultSkin</code> <code>$1</code>, yra negalima.\n\nJūs neturi įdiegtų išvaizdų.\n\n; Jei ką tik instaliavote MediaWiki:\n: Jūs tikriausiai instaliavote iš git arba tiesiai iš kodo naudojant kitą metodą. Tai tikėtina. Pabandykite įdiegti išvaizdas iš [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org išvaizdų katalogo]:\n:* Persisiunčiant  [https://www.mediawiki.org/wiki/Download tvarkyklę], kuri turi kelius išvaizdas ir plėtinius. Jūs galite nukopijuoti ir įklijuoti <code>skins/</code> kataloge.\n:* Persiųsti individualias išvaizdas iš [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Klonuojant vieną iš <code>mediawiki/skins/*</code> saugyklas per git į <code dir=\"ltr\">skins/</code> kataloge jūsų MediaWiki instaliacijoje.\n: Tai neturėtų trukdyti jūsų git saugyklai jei jūs esate MediaWiki kūrėjas. Žiūrėkite [https://www.mediawiki.org/wiki/Manual:Skin_configuration Instrukcija: Išvaizdos konfigūracija] dėl informacijos kaip įgalinti išvaizdas ir pasirinkti numatytuosius.",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (įgalinta)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''išjungtas''')",
+       "mediastatistics": "Medios statistika",
+       "mediastatistics-summary": "Statistika apie įkeltus failo tipus. Tai apima tik naujausias failo versijas. Senos ar ištrintos failų versijos nėra įtrauktos.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 bitas|$1 bitai}} ($2; $3%)",
        "mediastatistics-table-mimetype": "MIME tipas",
+       "mediastatistics-table-extensions": "Galimi plėtiniai",
+       "mediastatistics-table-count": "Failų skaičius",
+       "mediastatistics-table-totalbytes": "Bendras dydis",
+       "mediastatistics-header-unknown": "Nežinoma",
+       "mediastatistics-header-bitmap": "Rastriniai atvaizdai",
+       "mediastatistics-header-drawing": "Piešiniai (vektoriniai vaizdai)",
+       "mediastatistics-header-audio": "Garsas",
+       "mediastatistics-header-video": "Vaizdas",
+       "mediastatistics-header-multimedia": "Turtinga media",
+       "mediastatistics-header-office": "Ofisas",
+       "mediastatistics-header-text": "Tekstinis",
+       "mediastatistics-header-executable": "Vykdomieji",
+       "mediastatistics-header-archive": "Suspausti formatai",
+       "json-warn-trailing-comma": "$1 {{PLURAL:$1|galinis kablelis buvo|galiniai kableliai buvo}} buvo pašalinti iš JSON",
+       "json-error-unknown": "Iškilo problema su JSON. Klaida: $1",
+       "json-error-depth": "Maksimalus krūvos dydis buvo viršytas",
+       "json-error-state-mismatch": "Negalimas ar neteisingai suformuluotas JSON",
+       "json-error-ctrl-char": "Kontrolės pobūdžio klaida, galimai neteisingai užkoduota",
        "json-error-syntax": "Sintaksės klaida",
+       "json-error-utf8": "Neteisingai suformuoti UTF-8 simboliai, galimai neteisingai užkoduoti",
+       "json-error-recursion": "Vienos ar daugiau rekursinės nuorodos vertės turi būti užkoduotos",
+       "json-error-inf-or-nan": "Vienos ar daugiau NAN arba INF reikšmės turi būti užkoduotos",
+       "json-error-unsupported-type": "Rūšies vertė, kuri negali būti užkoduota buvo pateikta",
        "headline-anchor-title": "Nuoroda į šią pastraipą",
        "special-characters-group-latin": "Lotynų",
        "special-characters-group-latinextended": "Lotynų išplėstoji",
        "special-characters-group-devanagari": "Devanagari",
        "special-characters-group-thai": "Tajų",
        "special-characters-group-lao": "Laosiečių",
-       "special-characters-group-khmer": "Khmerų"
+       "special-characters-group-khmer": "Khmerų",
+       "special-characters-title-endash": "en brūkšnys",
+       "special-characters-title-emdash": "em brūkšnys",
+       "special-characters-title-minus": "minuso ženklas"
 }
index 69e59e3..e5c0665 100644 (file)
@@ -48,7 +48,7 @@
        "tog-shownumberswatching": "Rādīt uzraudzītāju skaitu",
        "tog-oldsig": "Pašreizējais paraksts:",
        "tog-fancysig": "Vienkāršs paraksts (bez automātiskās saites)",
-       "tog-uselivepreview": "Lietot tūlītējo priekšskatījumu (eksperimentāla iespēja)",
+       "tog-uselivepreview": "Lietot tūlītējo priekšskatījumu",
        "tog-forceeditsummary": "Atgādināt man, ja kopsavilkuma ailīte ir tukša",
        "tog-watchlisthideown": "Paslēpt manus labojumus uzraugāmo lapu sarakstā",
        "tog-watchlisthidebots": "Paslēpt botu labojumus uzraugāmo lapu sarakstā",
        "permalink": "Pastāvīgā saite",
        "print": "Drukāt",
        "view": "Skatīt",
+       "view-foreign": "Apskatīt $1",
        "edit": "Labot šo lapu",
        "edit-local": "Labot vietējo aprakstu",
        "create": "Izveidot",
        "jumpto": "Pārlēkt uz:",
        "jumptonavigation": "navigācija",
        "jumptosearch": "meklēt",
-       "view-pool-error": "Atvainojiet, šobrīd serveri ir pārslogoti.\nPārāk daudz lietotāju mēģina apskatīt šo lapu.\nLūdzu, brīdi uzgaidiet un mēģiniet šo lapu apskatīties vēlreiz.\n\n$1",
+       "view-pool-error": "Atvainojiet, šobrīd serveri ir pārslogoti.\nPārāk daudz lietotāju mēģina apskatīt šo lapu.\nLūdzu, brīdi uzgaidiet un mēģiniet šo lapu apskatīt vēlreiz.\n\n$1",
        "pool-errorunknown": "Nezināma kļūda",
        "poolcounter-usage-error": "Izmantošanas kļūda: $1",
        "aboutsite": "Par {{grammar:akuzatīvs|{{SITENAME}}}}",
        "filerenameerror": "Neizdevās pārdēvēt failu \"$1\" par \"$2\".",
        "filedeleteerror": "Nevar izdzēst failu \"$1\".",
        "directorycreateerror": "Nevar izveidot mapi \"$1\".",
+       "directoryreadonlyerror": "Direktorija \"$1\" ir tikai nolasāma.",
+       "directorynotreadableerror": "Direktorija \"$1\" nav nolasāma.",
        "filenotfound": "Neizdevās atrast failu \"$1\".",
        "unexpected": "Negaidīta vērtība: \"$1\"=\"$2\".",
        "formerror": "Kļūda: neizdevās nosūtīt saturu",
        "viewsource-title": "Apskatīt $1 izejas kodu",
        "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īties un nokopēt šīs lapas vikitekstu:",
+       "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].",
        "namespaceprotected": "Tev nav atļaujas izmainīt lapas, kas atrodas '''$1''' ''namespacē''.",
        "permissionserrors": "Atļauju kļūda",
        "permissionserrorstext": "Tev nav atļauts veikt šo darbību {{PLURAL:$1|šādu iemeslu|šāda iemesla|šādu iemeslu}} dēļ:",
        "permissionserrorstext-withaction": "Tev nav atļauts $2 {{PLURAL:$1|šādu iemeslu|šāda iemesla|šādu iemeslu}} dēļ:",
-       "recreate-moveddeleted-warn": "'''Brīdinājums: Tu atjauno lapu, kas ir tikusi izdzēsta'''\n\nTev vajadzētu pārliecināties, vai ir lietderīgi turpināt izmainīt šo lapu.\nTe var apskatīties dzēšanas un pārvietošanas reģistrus, kuros jābūt datiem par to kas, kad un kāpēc šo lapu izdzēsa.",
-       "moveddeleted-notice": "Šī lapa ir tikusi izdzēsta.\nTe var apskatīties dzēšanas un pārvietošanas reģistru fragmentus, lai noskaidrotu kurš, kāpēc un kad to izdzēsa.",
+       "recreate-moveddeleted-warn": "'''Brīdinājums: Tu atjauno lapu, kas ir tikusi izdzēsta'''\n\nTev vajadzētu pārliecināties, vai ir lietderīgi turpināt izmainīt šo lapu.\nTe var apskatīt dzēšanas un pārvietošanas reģistrus, kuros jābūt datiem par to kas, kad un kāpēc šo lapu izdzēsa.",
+       "moveddeleted-notice": "Šī lapa ir tikusi izdzēsta.\nTe var apskatīt dzēšanas un pārvietošanas reģistru fragmentus, lai noskaidrotu kurš, kāpēc un kad to izdzēsa.",
        "log-fulllog": "Paskatīties pilnu reģistru",
        "edit-hook-aborted": "Aizķere pārtrauca labojumu.\nNetika sniegts paskaidrojums.",
        "edit-gone-missing": "Nevar atjaunināt lapu.\nIzskatās, ka lapa ir dzēsta.",
        "edit-conflict": "Labošanas konflikts.",
        "edit-no-change": "Tavs labojums tika ignorēts, jo tekstā netika izdarītas izmaiņas.",
+       "postedit-confirmation-created": "Lapa ir izveidota.",
+       "postedit-confirmation-restored": "Lapa ir atjaunota.",
        "postedit-confirmation-saved": "Jūsu labojums tika saglabāts.",
        "edit-already-exists": "Nevar izveidot jaunu lapu.\nTā jau eksistē.",
        "defaultmessagetext": "Noklusētais ziņojuma teksts",
        "revdelete-legend": "Uzstādīt redzamības ierobežojumus",
        "revdelete-hide-text": "Versijas teksts",
        "revdelete-hide-image": "Paslēpt faila saturu",
-       "revdelete-hide-name": "Paslēpt darbību un tās objektu",
+       "revdelete-hide-name": "Paslēpt mērķi un parametrus",
        "revdelete-hide-comment": "Kopsavilkums",
        "revdelete-hide-user": "Autora lietotājvārds/IP adrese",
        "revdelete-hide-restricted": "Paslēpt datus arī no administratoriem",
        "notextmatches": "Neviena rezultāta, meklējot lapas tekstā",
        "prevn": "{{PLURAL:$1|iepriekšējās $1|iepriekšējā $1|iepriekšējās $1}}",
        "nextn": "{{PLURAL:$1|nākamās $1|nākamā $1|nākamās $1}}",
+       "prev-page": "iepriekšējā lapa",
+       "next-page": "nākamā lapa",
        "prevn-title": "{{PLURAL:$1|Iepriekšējie|Iepriekšējais|Iepriekšējie}} $1 {{PLURAL:$1|rezultāti|rezultāts|rezultāti}}",
        "nextn-title": "{{PLURAL:$1|Nākamie|Nākamais|Nākamie}} $1 {{PLURAL:$1|rezultāti|rezultāts|rezultāti}}",
        "shown-title": "Parādīt $1 {{PLURAL:$1|rezultātus|rezultātu|rezultātus}} vienā lapā",
        "search-result-category-size": "$1 {{PLURAL:$1|apakšelementi|apakšelements|apakšelementi}} ($2 {{PLURAL:$2|apakškategorijas|apakškategorija|apakškategorijas}}, $3 {{PLURAL:$3|faili|fails|faili}})",
        "search-redirect": "(pāradresēts no $1)",
        "search-section": "(sadaļa $1)",
+       "search-category": "(kategorija $1)",
        "search-file-match": "(atbilst faila saturam)",
        "search-suggest": "Vai jūs domājāt: $1",
        "search-interwiki-caption": "Citi projekti",
        "prefs-personal": "Lietotāja dati",
        "prefs-rc": "Pēdējās izmaiņas",
        "prefs-watchlist": "Uzraugāmie raksti",
+       "prefs-editwatchlist": "Labot uzraugāmo rakstu sarakstu",
+       "prefs-editwatchlist-label": "Labot ierakstus savā uzraugāmo rakstu sarakstā:",
        "prefs-watchlist-days": "Dienu skaits, kuras parādīt uzraugāmo rakstu sarakstā:",
        "prefs-watchlist-days-max": "Ne vairāk kā $1 {{PLURAL:$1|dienas|dienu|dienas}}",
        "prefs-watchlist-edits": "Izmaiņu skaits, kuras rādīt izvērstajā uzraugāmo rakstu sarakstā:",
        "right-move": "Pārvietot lapas",
        "right-move-subpages": "Pārvietot lapas kopā ar to apakšlapām",
        "right-move-rootuserpages": "Pārvietot saknes lietotāja lapas",
+       "right-move-categorypages": "Pārvietot kategoriju lapas",
        "right-movefile": "Pārvietot failus",
        "right-suppressredirect": "Neveidot pāradresāciju no vecā nosaukuma, pārvietojot lapu",
        "right-upload": "Augšupielādēt failus",
        "right-reupload-own": "Pārrakstīt paša augšuplādētu esošu failu",
        "right-upload_by_url": "Augšupielādēt failus no URL",
        "right-autoconfirmed": "Izmainīt daļēji aizsargātas lapas",
+       "right-apihighlimits": "Izmantot augstākus ierobežojumus API vaicājumiem",
        "right-writeapi": "Rakstīšanas API lietošana",
        "right-delete": "Dzēst lapas",
        "right-bigdelete": "Dzēst lapas ar lielām hronoloģijām",
        "action-createpage": "izveidot lapas",
        "action-createtalk": "izveidot diskusiju lapas",
        "action-createaccount": "izveidot šo lietotāja kontu",
+       "action-history": "apskatīt šīs lapas vēsturi",
        "action-minoredit": "atzīmēt šo labojumu kā maznozīmīgu",
        "action-move": "pārvietot šo lapu",
        "action-move-subpages": "pārvietot šo lapu un tās apakšlapas",
        "action-move-rootuserpages": "pārvietot saknes lietotāja lapas",
+       "action-move-categorypages": "pārvietot kategoriju lapas",
        "action-movefile": "pārvietot šo failu",
        "action-upload": "augšupielādēt šo failu",
        "action-reupload": "pārrakstīt esošo failu",
        "upload_directory_missing": "Augšupielādes direktorijs ($1) ir pazudis, un to tīmekļa serveris nevar izveidot.",
        "upload_directory_read_only": "Augšupielādes direktoriju ($1) tīmekļa serveris nevar labot.",
        "uploaderror": "Augšupielādes kļūda",
-       "upload-recreate-warning": "'''Brīdinājums: Fails ar šādu nosaukumu ir dzēsts vai pārvietots.'''\n\n Dzēšanas un pārvietošanas reģistri šai lapai ir uzskaitīti šeit:",
+       "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.",
        "fewestrevisions": "Lapas, kurām ir vismazāk veco versiju",
        "nbytes": "$1 {{PLURAL:$1|baitu|baits|baitu}}",
        "ncategories": "$1 {{PLURAL:$1|kategorijas|kategorija|kategorijas}}",
+       "ninterwikis": "$1 {{PLURAL:$1|starpviki saites|starpviki saite|starpviki saites}}",
        "nlinks": "$1 {{PLURAL:$1|saites|saite|saites}}",
        "nmembers": "$1 {{PLURAL:$1|lapas|lapa|lapas}}",
        "nrevisions": "$1 {{PLURAL:$1|versijas|versija|versijas}}",
        "pager-newer-n": "{{PLURAL:$1|$1 jaunākas|$1 jaunāku|$1 jaunākas}}",
        "pager-older-n": "{{PLURAL:$1|$1 vecākas|$1 vecāku|$1 vecākas}}",
        "querypage-disabled": "Šī īpašā lapā ir atspējota veiktspējas iemeslu dēļ.",
+       "apihelp": "API palīdzība",
+       "apihelp-no-such-module": "Modulis \"$1\" nav atrasts.",
        "booksources": "Grāmatu avoti",
        "booksources-search-legend": "Meklēt grāmatu avotus",
        "booksources-search": "Meklēt",
        "listgrouprights-removegroup-all": "Noņemt visas grupas",
        "listgrouprights-addgroup-self-all": "Pievienot visas grupas savam kontam",
        "listgrouprights-removegroup-self-all": "Noņemt visas grupas no sava konta",
+       "listgrouprights-namespaceprotection-header": "Vārdtelpas ierobežojumi",
+       "listgrouprights-namespaceprotection-namespace": "Vārdtelpa",
+       "trackingcategories-nodesc": "Apraksts nav pieejams.",
        "mailnologin": "Nav adreses, uz kuru sūtīt",
        "mailnologintext": "Tev jābūt [[Special:UserLogin|iegājušam]], kā arī tev jābūt [[Special:Preferences|norādītai]] derīgai e-pasta adresei, lai sūtītu e-pastu citiem lietotājiem.",
        "emailuser": "Sūtīt e-pastu šim lietotājam",
        "confirmdeletetext": "Tu tūlīt no datubāzes dzēsīsi lapu vai attēlu, kā arī to iepriekšējās versijas. Lūdzu, apstiprini, ka tu tiešām to vēlies darīt, ka tu apzinies sekas un ka tu to dari saskaņā ar [[{{MediaWiki:Policy-url}}|vadlīnijām]].",
        "actioncomplete": "Darbība pabeigta",
        "actionfailed": "Darbība neizdevās",
-       "deletedtext": "Lapa \"$1\" ir izdzēsta.\nŠeit var apskatīties pēdējos izdzēstos: \"$2\".",
+       "deletedtext": "Lapa \"$1\" ir izdzēsta.\nŠeit var apskatīt pēdējos izdzēstos: \"$2\".",
        "dellogpage": "Dzēšanas reģistrs",
        "dellogpagetext": "Šajā lapā ir pēdējo dzēsto lapu saraksts.",
        "deletionlog": "dzēšanas reģistrs",
        "protectexpiry": "Beidzas:",
        "protect_expiry_invalid": "Beigu termiņš ir nederīgs.",
        "protect_expiry_old": "Beigu termiņs ir pagātnē.",
-       "protect-text": "Šeit var apskatīties un izmainīt lapas '''$1''' aizsardzības līmeni.",
+       "protect-text": "Šeit var apskatīt un izmainīt lapas <strong>$1</strong> aizsardzības līmeni.",
        "protect-locked-access": "Jūsu kontam nav atļaujas mainīt lapas aizsardzības pakāpi.\nPašreizējie lapas '''$1''' iestatījumi ir:",
        "protect-cascadeon": "Šī lapa pašlaik ir aizsargāta, jo tā ir iekļauta {{PLURAL:$1|šajās lapās|šajā lapā|šajās lapās}} (mainot šīs lapas aizsardzības līmeni aizsardzība netiks noņemta):",
        "protect-default": "Atļaut visiem lietotājiem",
        "autoblockid": "Autobloķēšana #$1",
        "block": "Bloķēt lietotāju",
        "unblock": "Atbloķēt lietotāju",
-       "blockip": "Bloķēt lietotāju",
+       "blockip": "Bloķēt {{GENDER:$1|lietotāju}}",
        "blockip-legend": "Bloķēt lietotāju",
        "blockiptext": "Šo veidni izmanto, lai bloķētu kādas IP adreses vai lietotājvārda piekļuvi wiki lapu saglabāšanai. Dari to tikai, lai novērstu vandālismu atbilstoši [[{{MediaWiki:Policy-url}}|noteikumiem]].\nNorādi konkrētu iemeslu (piemēram, linkus uz vandalizētajām lapām).",
        "ipaddressorusername": "IP adrese vai lietotājvārds",
        "ipb-edit-dropdown": "Izmainīt bloķēšanas iemeslus",
        "ipb-unblock-addr": "Atbloķēt $1",
        "ipb-unblock": "Atbloķēt lietotāju vai IP adresi",
-       "ipb-blocklist": "Apskatīties esošos blokus",
+       "ipb-blocklist": "Apskatīt esošos blokus",
        "ipb-blocklist-contribs": "$1 devums",
        "unblockip": "Atbloķēt lietotāju",
        "unblockiptext": "Šeit var atbloķēt iepriekš nobloķētu IP adresi vai lietotāja vārdu (atjaunot viņiem rakstīšanas piekļuvi).",
        "emaillink": "nosūtīt e-pastu",
        "autoblocker": "Tava IP ir nobloķēta automātiski, tāpēc, ka to nesen lietojis \"[[User:$1|$1]]\".\nViņa bloķēšanas iemesls bija: \"$2\"",
        "blocklogpage": "Bloķēšanas reģistrs",
-       "blocklog-showlog": "Šis lietotājs ir bijis bloķēts jau agrāk.\nTe apakšā var apskatīties bloķēšanas reģistru:",
+       "blocklog-showlog": "Šis lietotājs ir bijis bloķēts jau agrāk.\nTe apakšā var apskatīt bloķēšanas reģistru:",
        "blocklogentry": "nobloķēja [[$1]] uz $2 $3",
        "reblock-logentry": "izmainīja bloķēšanas iestatījumus [[$1]] ar beigu termiņu $2 $3",
        "blocklogtext": "Šajā lapā ir pēdējo nobloķēto un atbloķēto lietotāju saraksts.\nTe neparādās automātiski nobloķētās IP adreses.\nŠobrīd aktīvos blokus var apskatīties bloķēto lietotāju [[Special:BlockList|IP adrešu sarakstā]].",
        "thumbnail_gd-library": "Nepilnīga GD bibliotēkas konfigurācija: trūkst $1 funkcijas",
        "thumbnail_image-missing": "Šķiet, ka fails ir pazudis: $1",
        "import": "Importēt lapas",
-       "importinterwiki": "Starpviki importēšana",
+       "importinterwiki": "Importēšana no cita viki",
+       "import-interwiki-sourcewiki": "Avota viki:",
+       "import-interwiki-sourcepage": "Avota lapa:",
        "import-interwiki-history": "Nokopēt visas šīs lapas hronoloģijā atrodamās versijas",
        "import-interwiki-templates": "Iekļaut visas veidnes",
        "import-interwiki-submit": "Importēt",
+       "import-mapping-namespace": "Importēt vārdtelpā:",
        "import-upload-filename": "Faila nosaukums:",
        "import-comment": "Komentārs:",
        "importstart": "Importē lapas...",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|versijas|versija|versijas}}",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|versijas|versija|versijas}} no $2",
        "javascripttest": "JavaScript testēšana",
+       "javascripttest-pagetext-unknownaction": "Nezināma darbība \"$1\".",
        "tooltip-pt-userpage": "Tava lietotāja lapa",
        "tooltip-pt-anonuserpage": "Manas IP adreses lietotāja lapa",
        "tooltip-pt-mytalk": "Tava diskusiju lapa",
        "tooltip-ca-talk": "Diskusija par šī raksta lapu",
        "tooltip-ca-edit": "Labot šo lapu. Lūdzam izmantot pirmskatu pirms lapas saglabāšanas.",
        "tooltip-ca-addsection": "Sākt jaunu sadaļu",
-       "tooltip-ca-viewsource": "Šī lapa ir aizsargāta. Tu vari apskatīties tās izejas kodu.",
+       "tooltip-ca-viewsource": "Šī lapa ir aizsargāta. Tu vari apskatīt tās izejas kodu.",
        "tooltip-ca-history": "Šīs lapas iepriekšējās versijas.",
        "tooltip-ca-protect": "Aizsargāt šo lapu",
        "tooltip-ca-unprotect": "Mainīt šīs lapas aizsardzību",
        "pageinfo-length": "Lapas garums (baitos)",
        "pageinfo-article-id": "Lapas ID",
        "pageinfo-language": "Lappuses satura valoda",
+       "pageinfo-content-model": "Lapas satura modelis",
        "pageinfo-watchers": "Lapas uzraudzītāju skaits",
        "pageinfo-redirects-name": "Pāradresāciju skaits uz šo lapu",
        "pageinfo-subpages-name": "Šīs lapas apakšlapas",
        "file-info-size-pages": "$1 × $2 pikseļi, faila izmērs: $3, MIME tips: $4, $5 {{PLURAL:$5|lapas|lapa|lapas}}",
        "file-nohires": "Augstāka izšķirtspēja nav pieejama.",
        "svg-long-desc": "SVG fails, definētais izmērs $1 × $2 pikseļi, faila izmērs: $3",
+       "svg-long-desc-animated": "Animēts SVG fails, definētais izmērs $1 × $2 pikseļi, faila izmērs: $3",
        "svg-long-error": "Nederīgs SVG fails: $1",
        "show-big-image": "Sākotnējais fails",
        "show-big-image-preview": "Šī priekšskata izmērs: $1.",
        "file-info-png-frames": "$1 {{PLURAL:$1|kadri|kadrs|kadri}}",
        "newimages": "Jauno attēlu galerija",
        "imagelisttext": "Šobrīd redzams $1 {{PLURAL:$1|attēlu|attēla|attēlu}} uzskaitījums, kas sakārtots $2.",
-       "newimages-summary": "Šeit var apskatīties pēdējos augšuplādētos failus šajā Vikipēdijā",
+       "newimages-summary": "Šeit var apskatīt pēdējos augšupielādētos failus.",
        "newimages-legend": "Filtrs",
        "newimages-label": "Faila nosaukums (vai tā daļa):",
        "newimages-showbots": "Parādīt botu augšupielādētos failus",
        "imgmultipagenext": "nākamā lapa →",
        "imgmultigo": "Aiziet!",
        "imgmultigoto": "Iet uz lapu $1",
+       "img-lang-default": "(noklusējuma valoda)",
        "ascending_abbrev": "pieaug.",
        "descending_abbrev": "dilst.",
        "table_pager_next": "Nākamā lapa",
        "version-software": "Instalētā programmatūra",
        "version-software-product": "Produkts",
        "version-software-version": "Versija",
+       "version-entrypoints": "Ieejas punktu URL",
+       "version-entrypoints-header-entrypoint": "Ieejas punkts",
        "version-entrypoints-header-url": "URL",
+       "version-libraries": "Instalētās bibliotēkas",
+       "version-libraries-library": "Bibliotēka",
+       "version-libraries-version": "Versija",
        "redirect-value": "Vērtība:",
        "redirect-user": "Lietotāja ID",
        "redirect-file": "Faila nosaukums",
        "tags-description-header": "Nozīmes pilns apraksts",
        "tags-active-header": "Aktīvs?",
        "tags-hitcount-header": "Iezīmētās izmaiņas",
+       "tags-actions-header": "Darbības",
        "tags-active-yes": "Jā",
        "tags-active-no": "Nē",
+       "tags-source-none": "Vairs netiek izmantots",
        "tags-edit": "labot",
+       "tags-delete": "dzēst",
+       "tags-activate": "aktivizēt",
+       "tags-deactivate": "deaktivizēt",
        "tags-hitcount": "$1 {{PLURAL:$1|izmaiņas|izmaiņa|izmaiņas}}",
+       "tags-manage-no-permission": "Tev nav atļaujas veidot pārvaldīt izmaiņu iezīmes.",
+       "tags-create-heading": "Izveidot jaunu iezīmi",
+       "tags-create-explanation": "Pēc noklusējuma jaunizveidotās iezīmes būs pieejamas izmantošanai lietotājiem un botiem.",
+       "tags-create-tag-name": "Iezīmes nosaukums:",
+       "tags-create-reason": "Iemesls:",
+       "tags-create-submit": "Izveidot",
+       "tags-create-no-name": "Tev jānorāda iezīmes nosaukums.",
+       "tags-create-invalid-chars": "Iezīmju nosaukumi nevar saturēt komatus (<code>,</code>) vai slīpsvītras (<code>/</code>).",
+       "tags-create-invalid-title-chars": "Iezīmju nosaukumi nevar saturēt rakstzīmes, kuras nevar izmantot lapu nosaukumos.",
+       "tags-create-already-exists": "Iezīme \"$1\" jau pastāv.",
+       "tags-delete-title": "Dzēst iezīmi",
+       "tags-delete-reason": "Iemesls:",
+       "tags-activate-reason": "Iemesls:",
+       "tags-deactivate-reason": "Iemesls:",
+       "tags-edit-title": "Labot iezīmes",
+       "tags-edit-manage-link": "Pārvaldīt iezīmes",
+       "tags-edit-existing-tags": "Esošās iezīmes:",
+       "tags-edit-new-tags": "Jaunās iezīmes:",
+       "tags-edit-add": "Visas šīs iezīmes:",
+       "tags-edit-remove": "Noņemt šīs iezīmes:",
+       "tags-edit-remove-all-tags": "(noņemt visas iezīmes)",
+       "tags-edit-reason": "Iemesls:",
        "comparepages": "Salīdzināt lapas",
        "compare-page1": "1. lapa",
        "compare-page2": "2. lapa",
index 9b646e0..7ea0395 100644 (file)
@@ -50,7 +50,7 @@
        "tog-shownumberswatching": "ध्यान राखैबला प्रयोक्ताक संख्या",
        "tog-oldsig": "अखुनका दस्खत:",
        "tog-fancysig": "दस्खतकें विकिटेक्सटक रूपमे देखू (स्वचालित श्रृंखला हीन)",
-       "tog-uselivepreview": "à¤\95रà¥\82 à¤\9aल à¤ªà¥\82रà¥\8dवावलà¥\8bà¤\95न (पà¥\8dरायà¥\8bà¤\97िà¤\95)",
+       "tog-uselivepreview": "पà¥\82रà¥\8dवावलà¥\8bà¤\95नà¤\95à¥\87 à¤\89पयà¥\8bà¤\97 à¤\95रà¥\80",
        "tog-forceeditsummary": "हमरा सचेत करू जखन हम खाली सम्पादम सारांशमे जाइ",
        "tog-watchlisthideown": "हमर साकांक्ष सूचीसँ हमर सम्पादन नुकाउ",
        "tog-watchlisthidebots": "हमर साकांक्ष सूचीसँ स्वचालित सम्पादन हटाउ",
        "pool-queuefull": "प्रतीक्षा-पाँती पौती भरल",
        "pool-errorunknown": "अज्ञात भ्रम",
        "pool-servererror": "पूल काउंटर सेवा उपलब्ध नै अछि ($1)।",
+       "poolcounter-usage-error": "उपयोग त्रुटि: $1",
        "aboutsite": "विषयमे {{SITENAME}}",
        "aboutpage": "Project:विवरण",
        "copyright": "$1क अंतर्गत विषय सूची उपलब्ध अछि",
        "disclaimers": "अनाधिकार घोषणा",
        "disclaimerpage": "Project:अनाधिकार घोषणा",
        "edithelp": "संपादन सहयोग",
+       "helppage-top-gethelp": "मदति",
        "mainpage": "सम्मुख पन्ना",
        "mainpage-description": "सम्मुख पृष्ठ",
        "policy-url": "Project:नीति",
        "readonly_lag": "दत्तांशनिधि स्वचालित रूपेँ प्रतिबन्धित कएल गेल अछि जा परजीवी दतांशनिधि वितरक मूलक समक्ष नै आबि जाए।",
        "internalerror": "आन्तरिक भ्रम",
        "internalerror_info": "आन्तरिक भ्रम: $1",
+       "internalerror-fatal-exception": "प्रकारक गम्भीर अपवाद \"$1\"",
        "filecopyerror": "\"$1\" सँ \"$2\" केँ नै अनुकृति कऽ सकल।",
        "filerenameerror": "\"$1\" सँ \"$2\" केँ नै नाम बदलि सकल।",
        "filedeleteerror": "\"$1\" केँ नै मेटा सकल।",
        "directorycreateerror": "विभाग \"$1\" नै बना सकल।",
+       "directoryreadonlyerror": "निर्देशिका \"$1\" केवल पठनीय अछि।",
+       "directorynotreadableerror": "निर्देशिका \"$1\" पठनीय नै अछि।",
        "filenotfound": "फाइल \"$1\" नै ताकि सकल।",
        "unexpected": "आसक विपरीत परिणाम: \"$1\"=\"$2\"",
        "formerror": "फॉर्म नै पठा सकल",
        "no-null-revision": "\"$1\" पृष्ठ के लेल बिना परिवर्तन नब अवतरण बनाबए में असफल।",
        "badtitle": "खराप शीर्षक",
        "badtitletext": "आग्रह कएल पन्नाक शीर्षक गलत, खाली, वा गलत सम्बन्धित अन्तर-न्हाषा अन्तर विकी शीर्षक छी। ई एक वा बेशी कलाकार युक्त भऽ सकैए जे शीर्षकमे प्रयुक्त नै कएल जा सकैए।",
+       "title-invalid-empty": "निवेदित पृष्ठक शीर्षक खाली अछि या मात्र नामस्थान राखने अछि।",
+       "title-invalid-utf8": "निवेदित पृष्ठक शीर्षक अवैध यू०टी०एफ-८ सँ सिलसिला राखैत अछि।",
+       "title-invalid-interwiki": "निवेदित पृष्ठ के शीर्षक एक अन्तर-विकी जडी राखैत अछि जे शीर्षक में प्रयोग नै कैर सकएत छि।",
+       "title-invalid-talk-namespace": "निवेदित पृष्ठक शीर्षक एक वार्ता पृष्ठ सँ सन्दर्भित अछि जे मौजूद नै अछि।",
+       "title-invalid-characters": "निवेदित पृष्ठक शीर्षक अवैध क्यारेक्टर: \"$1\" राखैत अछि।",
+       "title-invalid-relative": "शीर्षक एक सन्दर्भित मार्ग राखैत अछि। सन्दर्भित पन्ना के शीर्षक (./, ../)अवैध अछि, कियाकी ई अधिकांश रूप पहुँच से बाहर छि जे हुनका उपयोगकर्ता के ब्रौज़र से प्रयोग में लाबई के प्रयास करल जाएत अछि ।",
+       "title-invalid-magic-tilde": "निवेदित पन्ना के शीर्षक अवैध जादूई टिल्ड सिलसिला राखएत अछि (<nowiki>~~~</nowiki>)।",
+       "title-invalid-too-long": "माँग कएल गेल पन्ना कें शीर्षक बहुत नम्हर अछि । एकरा यू०टी०एफ़० कोडिंग मे $1 {{PLURAL:$1|बाइट|बाइट्स}} से बढ़का नए होना चाही आर एकरा यू०टी०एफ़०-८ एनकोडिंग में होना चाही ।",
+       "title-invalid-leading-colon": "निवेदित पन्ना के शीर्षक प्रारंभ में अवैध कोलन रखएत अछि।",
        "perfcached": "ई दत्तांश उपस्मृतिक आधारपर अछि आ भऽ सकैए जे अद्यतन नै हुअए। अधिकतम {{PLURAL:$1|एकटा परिणाम|$1 परिणाम सभ}} क्याचेमे उपलब्ध अछि ।",
        "perfcachedts": "ई दत्तांश उपस्मृतिमे अछि, आ एकर अन्तिम परिवर्धन भेल अछि $1 केँ। A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.",
        "querypage-no-updates": "ऐ पन्नाक नवीनीकरण अखन बन्न अछि।\nएतुक्का दत्तांश अखन नवीकरण नै कएल जाएत।",
        "viewyourtext": "अहाँ '''अहाँक सम्पादन''' केँ देख आ एतए उतारि सकै छी:",
        "protectedinterface": "ई पन्ना तंत्रांश लेल मध्यस्थ पाठक व्यवस्था करैत अछि, आ अपशब्द रोकबाक ब्योंत करैत अछि।",
        "editinginterface": "'''चेतौनी''' अहाँ एकटा एहेन पन्नाक सम्पादन कऽ रहल छी जे तंत्रांशक मध्यस्थ पन्नाकेँ पाठ देबा लेल प्रयोग भऽ रहल अछि।\nऐ पन्नामे परिवर्तन दोसर प्रयोक्ता लेल प्रयोक्ता मध्यस्थक रूपमे परिवर्तन करत।\nअनुवाद लेल [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net] जाउ, मीडियाविकी स्थानीयकरण परियोजना पर।",
+       "translateinterface": "सभ विकिसब के लेल अनुवाद जोडइ या बदलई के लेल मीडियाविकि क्षेत्रीयकरण परियोजना [//translatewiki.net/ translatewiki.net] कें प्रयोग करु।",
        "cascadeprotected": "ऐ पन्नाक सम्पादन सम्भव नै अछि, कारण ई ऐ मे सम्मिलित अछि, {{PLURAL:$1|पन्ना, जे अछि|पन्ना, से सभ अछि}} सुरक्षित अछि \"तराउपड़ी\" विकल्प खोललाक बाद:\n$2",
        "namespaceprotected": "अहाँकेँ '''$1''' नाम-पेटारमे सम्पादनक अनुमति नै अछि।",
        "customcssprotected": "अहांकें ऐ सी.एस.एस.पन्नाकें सम्पादित करबाक अधिकार नै अछि, कारण ऐमे दोसर प्रयोक्ताक व्यक्तिगत विकल्प छै।",
        "wrongpassword": "गलत कूटशब्द देल गेल।\nफेरसँ प्रयास करू।",
        "wrongpasswordempty": "रिक्त कूटशब्द देल गेल।\nफेरसँ प्रयास करू।",
        "passwordtooshort": "कूटशब्द कमसँ कम {{PLURAL:$1|1 वर्ण|$1 वर्णक}} हुअए।",
+       "passwordtoolong": "कुटशब्द kuttsabda {{PLURAL:$1|1 वर्ण|$1 वर्णों}} से बेसी नम्हर भ्या सकएत अछि।",
        "password-name-match": "अहाँक कूटशब्द अहाँक प्रयोक्तानामसँ भिन्न हेबाक चाही।",
        "password-login-forbidden": "ऐ प्रयोक्तानाम आ कूटशब्दक प्रयोग प्रतिबन्धित अछि।",
        "mailmypassword": "नूतन कूटशब्द ई-पत्रसँ पठाउ",
        "preview": "पूर्वावलोकन",
        "showpreview": "पूर्वप्रदर्शन",
        "showdiff": "परिवर्त्तन देखाऊ",
+       "blankarticle": "<strong>चेतावनी:</strong> आहाँ एक रिक्त पन्ना के निर्माण कइर रहल छी।\nयदि आहाँ \"{{int:savearticle}}\" को पुनः दाबई चिए त पन्ना के बिना कोनो सामग्री के निर्मित क्या सकैचिए ।",
        "anoneditwarning": "'''चेतौनी:''' अहाँ सम्प्रवेशित नै छी।\nअहाँक अनिकेत ऐ पन्नाक सम्पादन इतिहासमे दर्ज कएल जाएत।",
        "anonpreviewwarning": "'' अहाँ सम्प्रवेशित नै छी। अखन रक्षण केलासँ अहाँक अनिकेत पता ऐ पन्नाक सम्पादन इतिहासमे दर्ज भऽ जाएत।''",
        "missingsummary": "'''स्मारक:''' अहाँ सम्पादन सार नै देने छी।\nजँ अहाँ फेरसँ क्लिक करब \"{{int:savearticle}}\", अहाँक सम्पादन बिना एकर संरक्षित भऽ जाएत।",
+       "selfredirect": "<strong>चेतावनी:</strong> आहाँ स्वेम के ई पन्ना पुनः निर्देशीत कएर रहल छी।\nआहाँ अनुप्रेषित के लेल गलत लक्ष्य निर्दिष्ट भ्या सकएत अछि, या आहाँ गलत पन्ना कें संपादन कैर सकएत छी।\nआहाँ फेरो से \"{{int:savearticle}}\" क्लिक करएत छी, रीडायरेक्ट ओनाहो भी बनाबल जेल अछि।",
        "missingcommenttext": "कृपा कऽ अपन विचार नीचाँ प्रविष्ट करू।",
        "missingcommentheader": "'''स्मरण:''' अहाँ कोनो विषय/ शीर्षक ऐ टिप्पणीक लेल नै देने छी।\nजँ अहाँ फेरसँ क्लिक करब \"{{int:savearticle}}\" , अहाँक सम्पादन बिना एकर संरक्षित भऽ जाएत।",
        "summary-preview": "सारांश पूर्वावलोकन",
        "subject-preview": "विषय/ शीर्षक पूर्वावलोकन",
+       "previewerrortext": "आहाँकें परिवर्तन के पूर्वावलोकन करई कें समय एक त्रुटि एल ।",
        "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ऐ सभ विवरणक उल्लेख अहाँ अपन कोनो कएल जाइबला प्रश्नमे करू।",
        "anontalkpagetext": "----'' ई एकटा अनाम प्रयोक्ताक लेल वार्ता पन्ना छी जे अखन धरि अपन खाता नै खोलने छथि, वा जे एकर प्रयोग नै करै छथि।\nहमरा सभकेँ तइ लेल अंकीय अनिकेतक प्रयोग हुनका देखार करबा लेल करऽ पड़ि रहल अछि।\nऐ तरहक अनिकेत अनेक प्रयोक्ता द्वारा साझी कएल जा सकैत अछि।\nजँ अहाँ अनाम प्रयोक्ता छी आ बुझै छी जे बिना मतलबक टिप्पणी अहाँ दिस देल जा रहल अछि, तँ कृपा कऽ [[Special:UserLogin/signup|एकटा खाता खोलू]] वा [[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}}|ऐ पन्ना शीर्षक लेल ताकू]]",
+       "missing-revision": "\"{{FULLPAGENAME}}\" पन्ना के अवतरण #$1 मौजूद नई अछि ।\n\nओन त ई एक हट्याल गेल पन्ना के पुराना कडी पे क्लिक करबाक कारण से होएत अछि।\nअधिक जानकारी के लेल आहाँ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} हटाबै के लॉग] देख सकै अछि।",
        "userpage-userdoesnotexist": "प्रयोक्ता खाता \"<nowiki>$1</nowiki>\" पंजीकृत नै अछि।\nनिश्चय करू जे की अहाँ ई पन्ना बनेबाक/ सम्पादित करबाक इच्छुक छी।",
        "userpage-userdoesnotexist-view": "प्रयोक्ता खाता \"$1\" पंजीकृत नै अछि।",
        "blocked-notice-logextract": "ई प्रयोक्ता अखन प्रतिबन्धित अछि।\nअद्यतन प्रतिबन्धित  वृत्तलेख लेखा सन्दर्भ लेल नीचाँ देल अछि:",
        "content-model-text": "सामान्य पाठ",
        "content-model-javascript": "जावास्क्रिप्ट",
        "content-model-css": "सी॰एस॰एस",
+       "content-json-empty-object": "रिक्त सामग्री",
+       "content-json-empty-array": "रिक्त ऐरे",
+       "duplicate-args-category": "आकृति कल में डुप्लिकेट तर्कक उपयोग करैत पन्नासभ",
+       "duplicate-args-category-desc": "पन्ना जेना तर्कों कें डुप्लिकेट के उपयोग करई वाल टेम्पलेट कॉल, जेना <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> आर <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''चेतौनी:''' ई पन्ना बड्ड बेसी महग विभाजक प्रकार्य आह्वान करैत अछि।\n एकरा $2 सँ कम {{PLURAL:$2|call|calls}}, ओतऽ {{PLURAL:$1|ई अछि $1 call|ई सभ अछि $1 calls}}",
        "expensive-parserfunction-category": "बड बेसी महग विभाजक आह्वानबला पन्ना सभ",
        "post-expand-template-inclusion-warning": "'''चेतौनी:''' नमूना लेबाक आकार बड्ड पैघ अछि।\nकिछु नमूना नै लेल जा सकत।",
        "undo-success": "ई सम्पादन पूर्ववत बदलल जा सकैए।\nकृपा क' नीचाँक तुलनाक जाँच करू ई देखैले जे ई वएह भेल अछि जे अहाँ चाहै छलहुँ, आ तखन सम्पादन ख़तम करबा लेल नीचाँक परिवर्तन सुरक्षित करू ।",
        "undo-failure": "मध्यवर्ती विरोधी सम्पादनक कारण ऐ सम्पादनकेँ खतम नै कएल जा सकैए।",
        "undo-norev": "ई सम्पादन खतम नै कएला जा सकैए कारण ई अछि नै वा मेटा देल गेल अछि।",
+       "undo-nochange": "ऐना लगया की ई सम्पादन कें पहील से पूर्ववत करई देन अछि।",
        "undo-summary": "$1 संशोधन खतम करू [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]])",
+       "undo-summary-username-hidden": "नुकाएल गेल प्रयोक्ताद्वारा केल गेल परिवर्तन $1 के पूर्ववत केल गेल",
        "cantcreateaccounttitle": "खाता नै बना सकल",
        "cantcreateaccount-text": "('''$1''') अनिकेत पतासँ खाता निर्माण प्रतिबन्धित कएल गेल [[User:$3|$3]]।\n$3 द्वारा देल कारण अछि ''$2''",
+       "cantcreateaccount-range-text": "'''$1''' के श्रेणी में आबई वाला आई॰पी पता सऽ, जएमें आहाँ कें आई॰पी पता ('''$4''') शामिल अछि, नया खाता के रचना [[User:$3|$3]] द्वारा अवरोधित केल गेल अछि। \n\n$3 द्वारा देल गेल कारण अछि: \"$2\"",
        "viewpagelogs": "ऐ पन्नाक वृत्तलेख सभ देखू",
        "nohistory": "ऐ पन्ना लेल कोनो सम्पादन इतिहास नै अछि।",
        "currentrev": "नूतन संशोधन",
        "history-feed-description": "ऐ पन्नाक विकीपर सम्पादन इतिहास",
        "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": "(वà¥\83तलà¥\87à¤\96 à¤\95ारà¥\8dय à¤¹à¤\9fाà¤\8fल गेल)",
+       "rev-deleted-event": "(वà¥\83तलà¥\87à¤\96 à¤\95ारà¥\8dय à¤¹à¤\9fावà¥\8bल गेल)",
        "rev-deleted-user-contribs": "[प्रयोक्तानाम वा अनिकेत हटाएल गेल- योगदानमे नुकाएल सम्पादित करू]",
        "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-text-unhide": "ई पन्ना संशोधन '''दबाएल''' गेल।\nवर्णन ताकि सकै छी [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log] मे।\nअहाँ अखनो [$1 ई संशोधन देखू] जँ अहाँ आगाँ बढ़ऽ चाहै छी।",
        "rev-deleted-text-view": "ई पन्ना संशोधन '''मेटाएल''' गेल।\nअहाँ एकरा देख सकै छी; वर्ण भेट सकैए [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log] मे।",
        "rev-showdeleted": "देखाउ",
        "revisiondelete": "मेटाउ / संशोधन फेरसँ आनू",
        "revdelete-nooldid-title": "अमान्य लक्ष्य संशोधन",
-       "revdelete-nooldid-text": "अहाँ चाहे तँ ऐ प्रकार्यक निष्पादन लेल कोनो विशेष लक्ष्य संशोधन (संशोधन सभ) नै तँए-तफसिला केने छी, विशेष संशोधन नै उपस्थित अछि, वा अहाँ वर्तमान संशोधनकेँ नुकेबाक प्रयास कऽ रहल छी।",
+       "revdelete-nooldid-text": "अहाँ चाहे तँ ऐ प्रकार्यक निष्पादन लेल कोनो विशेष लक्ष्य संशोधन नै तँए-तफसिला केने छी, विशेष संशोधन नै उपस्थित अछि, वा अहाँ वर्तमान संशोधनकेँ नुकेबाक प्रयास कऽ रहल छी।",
        "revdelete-no-file": "विषिष्ट संचिका अछिये नै।",
        "revdelete-show-file-confirm": "की अहाँ आश्वस्त छी जे अहाँ संचिकाक मेटाएल संशोधन देखऽ चाहै छी \"<nowiki>$1</nowiki>\" ऐ सँ $2 एतऽ $3?",
        "revdelete-show-file-submit": "हँ",
+       "revdelete-selected-text": "[[:$2]] {{PLURAL:$1|क|के}} चयनित अवतरण:",
+       "revdelete-selected-file": "[[:$2]] {{PLURAL:$1|क|के}} चयनित फाइल अवतरण:",
        "logdelete-selected": "{{PLURAL:$1|चुनल वृत्तलेख घटना|चुनल वृत्तलेख घटना सभ}}:",
+       "revdelete-text-text": "हटाएल गेल अवतरण पृष्ठ इतिहासमें देखाएल जाएत मुदा वोकर सामग्री सार्वजनिक रूपसँ नै देखाएल जा सकएत अछि।",
+       "revdelete-text-file": "हटाएल गेल अवतरण पृष्ठ इतिहासमें देखाएल जाएत मुदा वोकर सामग्री सार्वजनिक रूपसँ नै देखाएल जा सकएत अछि।",
+       "logdelete-text": "हटाए गेल प्रवेश घटनासभ अखैनो भी लॉग में दिखाबल ज्यात, लेकिन ओकर सामग्री के कुछ भाग के सार्वजनीक करबाक के लेल दुर्गम भ्या जेत।",
        "revdelete-confirm": "कृपा कऽ आश्वस्त भऽ जाउ जे अहाँ ई करऽ चाहै छी, अहाँकेँ एकर परिणामक जनतब अछि, आ अहाँ एकरा [[{{MediaWiki:Policy-url}}|निअम]] क अनुसार कऽ रहल छी।",
        "revdelete-suppress-text": "दबाबैबला काज '''मात्र''' ऐ सभ स्थितिमे प्रयोग करू:\n* मानहानिक सम्भावनाबला सूचना\n* भ्रमयुक्त व्यक्तिगत सूचना\n*: ''घरक पता आ टेलीफोन नम्बर, सामाजिक सुरक्षा संख्या, आदि।''",
        "revdelete-legend": "दृश्यतापर प्रतिबन्धक सीमा लगाउ",
        "notextmatches": "पन्नाक पाठक किछु मेल नै खाइए",
        "prevn": "पछिला {{PLURAL:$1|$1}}",
        "nextn": "आगाँ {{PLURAL:$1|$1}}",
+       "prev-page": "पहिलुका पृष्ठ",
+       "next-page": "अगला पृष्ठ",
        "prevn-title": "पहिलुका $1 {{PLURAL:$1|परिणाम|परिणाम सभ}}",
        "nextn-title": "आगाँ $1 {{PLURAL:$1|परिणाम|परिणाम सभ}}",
        "shown-title": "प्रति पन्ना $1 {{PLURAL:$1|परिणाम|परिणाम सभ}} देखाउ",
        "searchall": "सभटा",
        "showingresults": "नीचाँ एतऽ धरि {{PLURAL:$1|'''1''' परिणाम|'''$1''' परिणाम सभ}}  #'''$2''' सँ प्रारम्भ भऽ कऽ।",
        "showingresultsinrange": "नीचाँ एतऽ धरि {{PLURAL:$1|'''1''' परिणाम|'''$1''' परिणाम सभ}}  #'''$2''' सँ प्रारम्भ भऽ कऽ।",
+       "search-showingresults": "{{PLURAL:$4|<strong>$3</strong> में से <strong>$1</strong> परिणाम|<strong>$3</strong> में सँ परिणाम <strong>$1 - $2</strong>}}",
        "search-nonefound": "अभ्यर्थनासँ मेल खाइत कोनो परिणाम नै भेटल।",
        "powersearch-legend": "विशेष खोज",
        "powersearch-ns": "निर्धारकमे खोज",
        "prefs-personal": "प्रयोक्ता परिचय",
        "prefs-rc": "हालक परिवर्तन",
        "prefs-watchlist": "साकांक्ष-सूची",
+       "prefs-editwatchlist": "साकांक्षसूची बदलू",
+       "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": "बढ़ाएल साकांक्ष सूचीमे अधिकतम परिवर्तन देखाएब:",
        "right-protect": "सुरक्षा स्तर बदलू आ संरक्षित पन्ना सम्पादित करू",
        "right-editprotected": "संरक्षित पन्ना सम्पादित करू (बिना तराउपड़ी सुरक्षाक)",
        "right-editsemiprotected": "संरक्षित पन्ना सम्पादित करू (बिना तराउपड़ी सुरक्षाक)",
+       "right-editcontentmodel": "एक पन्ना के सामग्री मॉडल कें सम्पादन।",
        "right-editinterface": "प्रयोक्ता मध्यस्थक सम्पादन करू",
        "right-editusercssjs": "दोसर प्रयोक्ताक सी.एस.एस. आ जावास्क्रिप्ट संचिका सभक सम्पादन करू",
        "right-editusercss": "दोसर प्रयोक्ता सभक सी.एस.एस. संचिका सभक सम्पादन करू",
        "right-override-export-depth": "५ परत धरि जा  पन्ना सभ निर्यात, जइमे लागिबला पन्ना सभ शामिल अछि, करू।",
        "right-sendemail": "ई-पत्र दोसर प्रयोक्ता लोकनिकेँ पठाउ",
        "right-passwordreset": "कूटशब्द पुनर्निर्धारण ई-पत्र देखू",
+       "right-managechangetags": "डेटाबेस से [[Special:Tags|नुकाबू]] बनाबु आर हटाबु",
+       "right-applychangetags": "प्रयोग में लाबू [[Special:Tags|tags]] कक्रो बदलाव के साथ।",
+       "right-changetags": "जमा करु आर हटाबु स्वतंत्र [[Special:Tags|टैग]] व्यक्तिगत अवतरण आर लॉग प्रविक्ति पे",
        "newuserlogpage": "प्रयोक्ता रचना वृत्तलेख",
        "newuserlogpagetext": "ई प्रयोक्ता निर्माणक वृत्तलेख अछि।",
        "rightslog": "प्रयोक्ता अधिकार वृत्तलेख",
        "action-viewmywatchlist": "अपन काँच साकांक्षसूची देखु",
        "action-viewmyprivateinfo": "अपन व्यक्तिगत जानकारी देखु",
        "action-editmyprivateinfo": "अपन व्यक्तिगत जानकारी सम्पादित करु",
+       "action-editcontentmodel": "एक पन्ना के सामग्री मॉडल कें सम्पादन।",
+       "action-managechangetags": "डेटाबेस से चिप्पि बनाबु आर हटाबु",
+       "action-applychangetags": "आहाँ के बदलाव के साथ टैग जोडू।",
+       "action-changetags": "जमा करु आर हटाबु स्वतंत्र टैग व्यक्तिगत अवतरण आर लॉग प्रविक्ति पे",
        "nchanges": "$1 {{PLURAL:$1|परिवर्त्तन|परिवर्त्तन}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|अंतिम बेर देखला के बाद स}}",
        "enhancedrc-history": "इतिहास",
        "uploaderror": "उपारोपण भ्रम",
        "upload-recreate-warning": "'''चेतौनी: ऐ नामक संचिका मेटा वा हटा देल गेल अछि।'''",
        "uploadtext": "निचुक्का पत्र संचिका उपारोपित करबा लेल प्रयोग करू।\nपहिलुका उपारोपित संचिका देखबा वा तकबा लेल जाउ [[Special:FileList|उपारोपित संचिका सभक सूची]], (पुनः) उपारोपित सेहो सम्प्रवेशित अछि [[Special:Log/upload|उपारोपित वृत्तलेख]] मे, मेटाएल सभ [[Special:Log/delete|मेटाएल वृत्तलेख]] मे।\nपन्नमे एकटा संचिका देबा लेल, ऐ पत्र सभमेसँ कोनो लागिक प्रयोग करू:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' संचिकाक पूर्ण संस्करण देखबा लेल\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>'''  २०० चित्राणु चाकर प्रकटन एकटा बक्शामे \"वैकल्पिक पाठ\" वामा कात वर्णनक रूपमे लिखल प्रयोग करू\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' बिना संचिका देखेने सोझे संचिकाक लागि देब",
-       "upload-permitted": "मानà¥\8dय à¤¸à¤\82à¤\9aिà¤\95ा à¤ªà¥\8dरà¤\95ार:$1 ।",
+       "upload-permitted": "à¤\85नà¥\81मतित à¤«à¤¾à¤\87ल  {{PLURAL:$2|पà¥\8dरà¤\95ार}}: $1।",
        "upload-preferred": "मोनपसिन्न संचिका प्रकार:$1 ।",
        "upload-prohibited": "प्रतिबन्धित संचिका प्रकार:$1 ।",
        "uploadlogpage": "उपारोपण वृत्तलेख",
        "backend-fail-read": "फाइल $1 पैढ नै जा सकल ।",
        "backend-fail-create": "फाइल $1 नै लिखल जा सकल।",
        "backend-fail-maxsize": "फाइल $1 नै लिखल जा सकल कियाक कि ई {{PLURAL:$2|$2 बाईट}} सऽ बडका अछि।",
+       "lockmanager-notlocked": "\"$1\" अनलक नै केल गेल; इ बन्द नै अछि।",
+       "lockmanager-fail-closelock": "\"$1\" के लॉक फ़ाइल बंद नै करु ।",
+       "lockmanager-fail-deletelock": "\"$1\" के लॉक फ़ाइल नै हटाबु ।",
+       "lockmanager-fail-acquirelock": "\"$1\" के लॉक प्राप्त नै करल अछि।",
+       "lockmanager-fail-releaselock": "\"$1\" के लॉक फ़ाइल नै हटाबु ।",
+       "lockmanager-fail-db-bucket": "बकेट $1 में आवश्यक संख्या में लॉक डाटाबेसों से सम्पर्क नै भ्या रहल अछि ।",
+       "lockmanager-fail-db-release": "डाटाबेस $1 से ताला नै हटबु ।",
+       "lockmanager-fail-svr-acquire": "सर्वर $1 पे ताल प्राप्त नै अछि ।",
+       "lockmanager-fail-svr-release": "डाटाबेस $1 से ताला नै हटबु ।",
        "zip-file-open-error": "संकुचित संचिका जाँचमे संचिका खोललापर एकटा भ्रम आएल।",
        "zip-wrong-format": "खास संचिका संकुचित संचिका नै छी।",
        "zip-bad": "ई संचिका एकटा टूटल आ ओहिनो बिन पढ़बा योग्य संकुचित फाइल छी।",
        "listfiles-delete": "मिटाउ",
        "listfiles-summary": "ई विशिष्ट पन्ना सभटा उपारोपित संचिका देखबैए।\nप्रयोक्ता द्वारा चुनलापर अन्तिम उपारोपित संचिका देखबैत अछि।",
        "listfiles_search_for": "ऐ दृश्य-श्रव्य नामले ताकू:",
+       "listfiles-userdoesnotexist": "प्रयोक्ता खाता \"$1\" पंजीकृत नै अछि।",
        "imgfile": "संचिका",
        "listfiles": "संचिका सूची",
        "listfiles_thumb": "लघुचित्र",
        "listfiles_size": "आकार",
        "listfiles_description": "वर्णन",
        "listfiles_count": "संस्करण सभ",
+       "listfiles-show-all": "इ में चित्र के पुरान अवतरण शामील अछि",
        "listfiles-latestversion": "बर्तमान भर्जन",
        "listfiles-latestversion-yes": "हँ",
        "listfiles-latestversion-no": "नै",
        "sharedupload": "ई फाइल $1 सँ अछि आ दोसर प्रकल्प लेल प्रयोग कएल जा सकैए।",
        "sharedupload-desc-there": "ई संचिका $1 सँ अछि आ दोसर परियोजना लेल प्रयोग कएल जा सकैए।\nकृपा कऽ देखू [$2 संचिका वर्णन पन्ना] विशेष सूचना लेल।",
        "sharedupload-desc-here": "ई संचिका $1 सँ अछि आ ई दोसर परियोजना द्वारा प्रयोग कएल जा सकैए।\nऐ पर विवरण [$2 संचिका विवरण पन्ना] ओइपर नीचाँ देखाएल अछि।",
+       "sharedupload-desc-edit": "ई फ़ाइल $1 से छी आर अन्य परियोजना द्वारा सेहो प्रयोग भ्या रहल अछि\nशायद आहाँ [$2 पे एकर फ़ाइल विवरण पन्ना] के सम्पादन करइल चाहए छी।",
+       "sharedupload-desc-create": "ई फ़ाइल $1 से अछि आर अन्य परियोजनासभ द्वारा से प्रयोग भऽ रहल अछि\nशायद आहाँ [$2 पे एकर फ़ाइल विवरण पन्ना] के सम्पादन करइल चाहए छी ।",
        "filepage-nofile": "ऐ नामक कोनो संचिका उपलब्ध नै अछि।",
        "filepage-nofile-link": "ऐ नामक कोनो संचिका उपलब्ध नै अछि मुदा अहाँ [$1 एकरा उपारोपित करू]।",
        "uploadnewversion-linktext": "ऐ फाइलक नव संस्करणक उपारोपण",
        "download": "अवारोपन",
        "unwatchedpages": "बिन ध्यान देल पन्ना",
        "listredirects": "रस्ता बदलेनक सूची",
+       "listduplicatedfiles": "डुप्लिकेट के साथ फाइलसभ के सूची।",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]] राखैत अछि  [[$3|{{PLURAL:$2|एक प्रतिलिपि|$2 duplicates}}]] ।",
        "unusedtemplates": "बिना प्रयोगक नमूना सभ",
        "unusedtemplatestext": "ई पन्ना {{ns:template}} नामस्थानमे सभ पन्नाकेँ सूची बनबैए, जे दोसर पन्नापर शामिल नै अछि।\nमेटेबासँ पहिने दोसर नमूनाक लागिकेँ जाँचब मोन राखू।",
        "unusedtemplateswlh": "दोसर लागि सभ",
        "randompage": "अव्यवस्थित पृष्ठ",
        "randompage-nopages": "ऐमे दोसर पन्ना नै अछि {{PLURAL:$2|namespace|namespaces}}: $1 ।",
+       "randomincategory": "श्रेणी में यादृच्छिक (रैंडम) पन्ना",
+       "randomincategory-invalidcategory": "\"$1\" एक मान्य श्रेणी नाम नै अछि।",
        "randomincategory-category": "श्रेणी:",
        "randomredirect": "मिज्झर बदलेनबला लागि",
        "randomredirect-nopages": "नामस्थान \"$1\" मे कोनो बदलेनबला लागि नै अछि।",
        "mostlinkedtemplates": "सभसँ बेसी लागिबला नमूना सभ",
        "mostcategories": "सभसँ बेसी संवर्गबला पन्ना सभ",
        "mostimages": "सभसँ बेसी लागिबला संचिका सभ",
+       "mostinterwikis": "सर्वाधिक अन्तरविकी जडीभेल पृष्ठसभ",
        "mostrevisions": "सभसँ बेसी संशोधनबला पन्ना सभ",
        "prefixindex": "उपसर्गक संग सभटा पृष्ठ",
        "prefixindex-namespace": "उपसर्ग भएल सभ पृष्ठ ($1 नामस्थान)",
        "listusers": "प्रयोक्ता सूची",
        "listusers-editsonly": "सम्पादन करैबला प्रयोक्ताकेँ मात्र देखाउ",
        "listusers-creationsort": "निर्माण तिथिक हिसाबसँ छाँटू",
+       "listusers-desc": "अवरोही क्रम में क्रमबद्ध करी",
        "usereditcount": "$1 {{PLURAL:$1|सम्पादन|सम्पादन सभ}}",
        "usercreated": "{{GENDER:$3| बनैलक|बनैलकिन्ह}} $1 तिथि पर $2 काले",
        "newpages": "नव पन्ना सभ",
        "logempty": "वृत्तलेखमे कोनो मेल खाइबला बौस्तु नै।",
        "log-title-wildcard": "खोज शीर्षक सभ ऐ पाठसँ प्रारम्भ",
        "showhideselectedlogentries": "देखाउ/ नुकाउ चयनित लग सभ",
+       "log-edit-tags": "चुनल गेल लग प्रविक्तिसभ एक सम्पादन ट्याग",
        "allpages": "सभ पन्ना",
        "nextpage": "अगिला पन्ना ($1)",
        "prevpage": "पहिलुका पन्ना ($1)",
        "thumbnail_gd-library": "अपूर्ण जी.डी.पुस्तकालय विन्यास: प्रकार्य $1 अनुपस्थित",
        "thumbnail_image-missing": "संचिका लगैए अनुपस्थित अछि: $1",
        "import": "पन्ना सभकेँ आनू",
-       "importinterwiki": "à¤\9fà¥\8dरानà¥\8dसविà¤\95à¥\80 à¤\86नà¥\82",
-       "import-interwiki-text": "à¤\8fà¤\95à¤\9fा à¤µà¤¿à¤\95à¥\80 à¤\86 à¤ªà¤¨à¥\8dना à¤¶à¥\80रà¥\8dषà¤\95 à¤\85नबालà¥\87 à¤\9aà¥\81नà¥\82।\nसà¤\82शà¥\8bधन à¤¤à¤¿à¤¥à¤¿ à¤\86 à¤¸à¤®à¥\8dपादà¤\95à¤\95 à¤¨à¤¾à¤® à¤¸à¥\81रà¤\95à¥\8dषित à¤°à¤¹à¤¤à¥¤\nसभà¤\9fा à¤\9fà¥\8dरानà¥\8dसविà¤\95à¥\80 à¤\86यात à¤\95à¥\8dरिया à¤¸à¤®à¥\8dपà¥\8dरवà¥\87शित à¤\85à¤\9bि [[Special:Log/import|import log]] à¤ªà¤°।",
+       "importinterwiki": "à¤\95à¥\8bनà¥\8b à¤\94र à¤µà¤¿à¤\95ि à¤¸à¤\81 à¤\86यात à¤\95रà¥\80",
+       "import-interwiki-text": "à¤\8fà¤\95à¤\9fा à¤µà¤¿à¤\95à¥\80 à¤\86 à¤ªà¤¨à¥\8dना à¤¶à¥\80रà¥\8dषà¤\95 à¤\86नà¥\88लà¥\87ल à¤\9aà¥\81नà¥\82।\nसà¤\82शà¥\8bधन à¤¤à¤¿à¤¥à¤¿ à¤\86 à¤¸à¤®à¥\8dपादà¤\95à¤\95 à¤¨à¤¾à¤® à¤¸à¥\81रà¤\95à¥\8dषित à¤°à¤¹à¤¤à¥¤\nसभà¤\9fा à¤\9fà¥\8dरानà¥\8dसविà¤\95à¥\80 à¤\86यात à¤\95à¥\8dरिया à¤¸à¤®à¥\8dपà¥\8dरवà¥\87शित [[Special:Log/import|à¤\86यात à¤²à¤\97]] à¤ªà¤° à¤°à¤¹à¤¤।",
        "import-interwiki-sourcewiki": "मूल विकि:",
        "import-interwiki-sourcepage": "मूल पन्ना:",
        "import-interwiki-history": "अए पन्नाक सभटा इतिहास संशोधनक द्वितीयक बनाउ",
        "import-interwiki-templates": "सभटा नमूना शामिल करू",
        "import-interwiki-submit": "आनू",
+       "import-mapping-default": "पूर्व निर्धारित स्थान सभ पर आयात करी",
+       "import-mapping-namespace": "कोनो नामस्थान पर आयात करी",
+       "import-mapping-subpage": "निम्न लिखित पृष्ठ के उपपृष्ठ के रूप में आयात करी:",
        "import-upload-filename": "संचिकानाम:",
        "import-comment": "समीक्षा:",
        "importtext": "मूल विकी [[Special:Export|export utility]] क प्रयोग कऽ संचिका पठाउ।\nअपन संगणकमे एकरा सुरक्षित करू आ एतए उपारोपित करू।",
        "import-invalid-interwiki": "विशिष्ट विकीसँ आयात नै कऽ सकै छी।",
        "import-error-edit": "\"$1\" पन्ना आयातित नै कएल गेल अछि कारण अहाँकेँ एकरा सम्पादित करबाक अधिकार नै अछि।",
        "import-error-create": "\"$1\" पन्ना आयातित नै कएल गेल अछि कारण अहाँकेँ एकरा निर्माण करबाक अधिकार नै अछि।",
+       "import-error-interwiki": "पृष्ठ \"$1\" आयात नै केल गेल कियाकि एकर नाम अन्तरविकि जडी बनाबै के लेल आरक्षित अछि।",
+       "import-error-special": "पृष्ठ \"$1\" आयात नै केल गेल कियाकि इ एक एहन विशेष नामस्थान के अन्तर्गत आबैत अछि जे में पृष्ठ पृष्ठ नै बनाएल जा सकैत अछि।",
+       "import-error-invalid": "पृष्ठ \"$1\" आयात नै केल गेल कियाकि इ आयात पश्चात जे नाम रहत यो इ विकी पर अमान्य अछि।",
+       "import-options-wrong": "गलत {{PLURAL:$2|विकल्प}}: <nowiki>$1</nowiki>",
+       "import-rootpage-invalid": "दयाल गेल उपसर्ग पन्ना शीर्षक अमान्य अछि ।",
+       "import-rootpage-nosubpage": "दयाल गेल उपसर्ग पन्ना \"$1\" के नामस्थान में उप-पन्ना नै बनाबाल जा सकएत अछि ।",
        "importlogpage": "लॉगक आयात",
        "importlogpagetext": "पन्ना सभक प्रशासनिक आयात दोसर विकीक सम्पादन इतिहासक संग।",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|सुधार|सुधार सभ}}",
        "javascripttest": "जावास्क्रिप्ट परिक्षण",
        "javascripttest-pagetext-noframework": "इ पृष्ठ जावास्क्रिप्ट परीक्षण चलावए के लेल अछि।",
        "javascripttest-pagetext-unknownframework": "अज्ञात परीक्षण ढाँचा \"$1\"",
+       "javascripttest-pagetext-unknownaction": "अज्ञात क्रिया \"$1\" ।",
        "javascripttest-pagetext-frameworks": "कृपया निम्न परीक्षण ढाँचा सभ में सँ एक चुनु: $1",
        "javascripttest-pagetext-skins": "परीक्षण करए के लेल त्वचा चुनु:",
        "javascripttest-qunit-intro": "mediawiki.org पर [$1 परीक्षण के प्रलेखन] देखु।",
        "spambot_username": "मीडियाविकी अनिष्ट संकेत सफाइ",
        "spam_reverting": "अन्तिम संशोधन लग घुरल जइमे $1 लागि नै अछि",
        "spam_blanking": "सभटा संशोधन $1 लागिसँ युक्त अि, खतम कऽ रहल छी",
+       "spam_deleting": "सभटा संशोधन $1 लागिसँ युक्त अि, खतम कऽ रहल छी",
        "simpleantispam-label": "ऐन्टी-स्पैम जाँच।\nयी मऽ <strong>नै</strong> भरु!",
        "pageinfo-title": "\"$1\"पृष्ठक लेल नब गप",
+       "pageinfo-not-current": "माफ करु, पुरान संशोधन के लेल ई जानकारी प्रदान करनाए संभव नै अछि ।",
        "pageinfo-header-basic": "न्यूनतम जानकारी",
        "pageinfo-header-edits": "संपादन",
        "pageinfo-header-restrictions": "पन्ना संरक्षण",
        "pageinfo-length": "पन्ना आकार (बाइट्स में)",
        "pageinfo-article-id": "पन्ना आई॰डी॰",
        "pageinfo-language": "पन्ना सामग्री भाषा",
+       "pageinfo-content-model": "पन्ना सामग्री के नमूना",
+       "pageinfo-robot-policy": "बॉट द्वारा अनुक्रमण",
        "pageinfo-robot-index": "मान्य",
        "pageinfo-robot-noindex": "अमान्य",
        "pageinfo-watchers": "जानकारक संख्या",
+       "pageinfo-few-watchers": "$1 स कम ध्यान दीए {{PLURAL:$1|वाला}}",
+       "pageinfo-redirects-name": "इ पन्ना के पुनर्निर्देशसभ के संख्या",
+       "pageinfo-subpages-name": "इ पन्ना के उप-पन्ना",
+       "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|पुनर्निर्देश}}; $3 {{PLURAL:$3|ग़ैर-पुनर्निर्देश}})",
        "pageinfo-firstuser": "पन्ना सर्जक",
        "pageinfo-firsttime": "पृष्ठ निर्माण तिथि",
        "pageinfo-lastuser": "अन्तिम सम्पादक",
        "pageinfo-redirectsto-info": "जानकारी",
        "pageinfo-contentpage": "सामग्री पृष्ठ सभ में गिनल जाएत अछि",
        "pageinfo-contentpage-yes": "हँ",
+       "pageinfo-protect-cascading": "सुरक्षा-विकल्प यहाँ से व्यापक भऽ रहल अछि",
        "pageinfo-protect-cascading-yes": "हँ",
+       "pageinfo-protect-cascading-from": "सुरक्षा-विकल्प व्यापक भऽ रहल अछि स्थान-सऽ",
        "pageinfo-category-info": "संवर्ग जानकारी",
+       "pageinfo-category-total": "सम्पादनक संख्या",
        "pageinfo-category-pages": "पृष्ठ संख्या",
        "pageinfo-category-subcats": "उपसंवर्ग के संख्या",
        "pageinfo-category-files": "फाइल सभके संख्या",
        "patrol-log-page": "संचालन वृत्तलेख",
        "patrol-log-header": "ई संचालित संशोधन सभक वृत्तलेख छी।",
        "log-show-hide-patrol": "$1 निरीक्षण वृत्तलेख",
+       "log-show-hide-tag": "$1 टैग लॉग",
        "deletedrevision": "पुरान संशोधन $1 हटा देलौं",
        "filedeleteerror-short": "संचिका मेटेबामे भ्रम : $1",
        "filedeleteerror-long": "संचिका मेटेबा काल भ्रम संकेत भेटल:\n$1",
        "imgmultigo": "जाऊ",
        "imgmultigoto": "$1 पृष्ठ पर जाऊ",
        "img-lang-default": "(डिफल्ट भाषा)",
+       "img-lang-info": "ई चित्र को $1. $2 में ढालु",
        "img-lang-go": "जाऊ",
        "ascending_abbrev": "asc",
        "descending_abbrev": "desc",
        "watchlisttools-raw": "काँच साकांक्षसूची संपादित करू",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|talk]])",
        "duplicate-defaultsort": "'''चेतौनी:''' पूर्वनिर्धारित विन्यास चाभी \"$2\" पहिलुका पूर्वनिर्धारित विन्यास चाभी \"$1\" केँ खतम करैए।",
+       "duplicate-displaytitle": "<strong>चेतना:</strong> शीर्षक दिखाबु \"$2\" पूर्व दिखाएल गेल शीर्षक \"$1\" पे हाबी भऽ रहल अछि।",
+       "invalid-indicator-name": "<strong>त्रुटि:</strong> पन्ना स्थिति सुचीत <code>नाम</code> गुण खाली नै रहना चाही।",
        "version": "संस्करण",
        "version-extensions": "संस्करणक आगाँ",
        "version-skins": "रूप",
        "version-software": "प्रतिष्ठापित तंत्रांश",
        "version-software-product": "उत्पाद",
        "version-software-version": "संस्करण",
+       "version-entrypoints": "प्रवेश बिंदु यू॰आर॰एल",
+       "version-entrypoints-header-entrypoint": "प्रवेश बिंदु",
        "version-entrypoints-header-url": "यू॰आर॰एल",
+       "version-libraries": "स्थापित लाइब्रेरी",
+       "version-libraries-library": "लाइब्रेरी",
+       "version-libraries-version": "संस्करण",
+       "redirect": "अनुप्रेषित करु फ़ाइल, प्रयोगकर्ता, वा संशोधन पहीचान के आधार में",
+       "redirect-legend": "फ़ाइल अथवा पन्ना के पुनर्प्रेषण",
+       "redirect-summary": "ई विशेष पन्ना फ़ाइलनाम प्रदान करै पे फ़ाइल नाम के, पन्न आइ॰दी अथवा अवतरण आइ॰दी दुनु पे पन्ना के,आर साथी सदस्य आइ॰दी दुनु पे सदस्य पन्ना के पुनर्प्रेषित करएत अछि । उदाहरण: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], या [[{{#Special:Redirect}}/user/101]]।",
        "redirect-submit": "जाऊ",
        "redirect-lookup": "ताकू:",
        "redirect-value": "मूल्य:",
        "redirect-page": "पन्ना आई॰डी॰",
        "redirect-revision": "पन्ना अवतरण संख्या",
        "redirect-file": "फाइल नाम",
+       "redirect-not-exists": "बैनर नैं मिल्ल",
        "fileduplicatesearch": "द्वितीयक संचिका ताकू",
        "fileduplicatesearch-summary": "हैश मानक आधारपर द्वितीयक संचिका ताकू।",
        "fileduplicatesearch-legend": "द्वितीयक ताकू",
        "specialpages-group-wiki": "विकी दत्तांश आ औजार सभ",
        "specialpages-group-redirects": "घुरबैबला विशेष पन्ना सभ",
        "specialpages-group-spam": "अनपेक्षित संदेश औजार",
+       "specialpages-group-developer": "डेवलपर उपकरण",
        "blankpage": "खाली पन्ना",
        "intentionallyblankpage": "ई पन्ना पलानि कऽ खाली छोड़ल गेल।",
        "external_image_whitelist": "# ऐ पाँतीकेँ एकदम ओहिना छोड़ि दियौ जेना ई अछि<pre>\n# सामान्य वैचारिक खण्ड नीचाँ राखू (// क बीचक खण्ड मात्र)।\n# ई सभ बाहरी (ताजाताजी लागि) चित्रक सार्वत्रिक विभव संकेतसँ मेल खुआएल जाएत\n# ओ सभ जे मेल खाएत से चित्रक रूपमे प्रदर्शित हएत, नै तँ खाली एकटा चित्रक लागि देखाएल जाएत\n# # सँ शुरू भेल पाँती टिप्पणीक रूपमे देखल जाएत।\n# ई ब्रह्मक्षर-लघ्वक्षरक फेरासँ स्वतंत्र अछि।\n\n# सभटा सामान्य कथन ऐ पाँतीसँ ऊपर राखू। ऐ पाँतीकेँ एकदम ओहिना छोड़ू जेना ई अछि </pre>",
        "tags-tag": "चेन्हक नाम",
        "tags-display-header": "परिवर्तन सूची सभक रूपरंग",
        "tags-description-header": "अर्थक पूर्ण विवरण",
+       "tags-source-header": "स्रोत",
        "tags-active-header": "सक्रिय?",
        "tags-hitcount-header": "चेन्हयुक्त परिवर्तन सभ",
+       "tags-actions-header": "क्रिया सभ",
        "tags-active-yes": "हँ",
        "tags-active-no": "नै",
+       "tags-source-extension": "एक्सटेन्सनद्वारा परिभाषित",
+       "tags-source-manual": "प्रयोक्तासभ आर बोटद्वारा नियमानुसार लागू",
+       "tags-source-none": "आब प्रयोग में नै",
        "tags-edit": "सम्पादन करू",
+       "tags-delete": "मेटाउ",
+       "tags-activate": "सक्रिय करी",
+       "tags-deactivate": "निष्क्रिय करी",
        "tags-hitcount": "$1 {{PLURAL:$1|परिवर्तन|परिवर्तन सभ}}",
+       "tags-manage-no-permission": "अहाँकेँ पन्ना घसकेबाक अधिकार नै अछि।",
+       "tags-create-heading": "एकटा नयाँ विकि-समूह बनाबु",
+       "tags-create-explanation": "पुनः निर्धारित रूप से, नवनिर्मित टैग प्रयोगकर्तासभ आर बॉट के लेल हाजीर राहत।",
+       "tags-create-tag-name": "चेन्हक नाम:",
+       "tags-create-reason": "कारण:",
+       "tags-create-submit": "बनाउ",
+       "tags-create-no-name": "अहाँके एगो चेन्हाक नाम निर्दिष्ट करना चाहि।",
+       "tags-create-invalid-chars": "टैग नाम के बीच कॉमा(<code>,</code>) वा आगु के स्लैश नै होना चाही । (<code>/</code>).",
+       "tags-create-invalid-title-chars": "टैग नाम में एहन कैरेक्टर नै होना चाही जे पन्ना के शीर्षक में नै प्रयोग भऽ सकेत अछि।",
+       "tags-create-already-exists": "फाइल $1 पहिने स अछि।",
+       "tags-create-warnings-above": "निम्न लिखित {{PLURAL:$2|चेतना देखी गेल अछि}}  जखन टैग \"$1\" बनाबे प्रयास गेल छेल:",
+       "tags-create-warnings-below": "की आहाँ ई टैग के सम्पादन जारी राखेला चाहै चिए?",
+       "tags-delete-title": "ट्याग मेटाउ",
+       "tags-delete-explanation-initial": "आहाँ टैग \"$1\" के डाटाबेस से हटाबै जा रहल चिए।",
+       "tags-delete-reason": "कारण:",
+       "tags-delete-submit": "अपरिवर्तनीय रूप से ई टैग के हटाबु",
+       "tags-delete-not-found": "टैग \"$1\" उपलब्ध नै अछि ।",
+       "tags-activate-title": "सक्रिय ट्याग",
+       "tags-activate-question": "आहाँ टैग \"$1\" के सक्रिय कर जा रहल चिए।",
+       "tags-activate-reason": "कारण:",
+       "tags-activate-not-allowed": "टैग \"$1\" के सक्रिय करनाइ सम्भव नै अछि।",
+       "tags-activate-not-found": "टैग \"$1\" उपलब्ध नै अछि ।",
+       "tags-activate-submit": "सक्रिय करी",
+       "tags-deactivate-title": "निस्क्रिय ट्याग",
+       "tags-deactivate-question": "आहाँ टैग \"$1\" के निश्कृय कर जा रहल चिए।",
+       "tags-deactivate-reason": "कारण:",
+       "tags-deactivate-not-allowed": "टैग \"$1\" के असक्रिय करनाइ सम्भव नै अछि।",
+       "tags-deactivate-submit": "निष्क्रिय करी",
+       "tags-edit-title": "ट्याग सम्पादन",
+       "tags-edit-manage-link": "ट्याग व्यवस्थापन",
+       "tags-edit-revision-selected": "[[:$2]] {{PLURAL:$1|क|के}} चयनित अवतरण:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|चुनल वृत्तलेख घटना|चुनल वृत्तलेख घटना सभ}}:",
+       "tags-edit-existing-tags-none": "''कोनो नै''",
+       "tags-edit-new-tags": "नव ट्याग:",
+       "tags-edit-add": "इ ट्यागसभ जोडी:",
+       "tags-edit-remove": "इ ट्यागसभ हटाबी:",
+       "tags-edit-remove-all-tags": "(सभ ट्याग मेटाबी)",
+       "tags-edit-chosen-placeholder": "किछु ट्याग चुनी",
+       "tags-edit-chosen-no-results": "ए नामक ट्याग नै भेटल",
+       "tags-edit-reason": "कारण:",
        "comparepages": "पन्ना सभक तुलना करू",
        "compare-page1": "पन्ना १",
        "compare-page2": "पन्ना २",
        "revdelete-uname-unhid": "प्रयोक्तानाम सोझाँ",
        "revdelete-restricted": "संचालक लेल प्रायोगिक प्रतिबन्ध",
        "revdelete-unrestricted": "संचालक लेल हटाओल प्रतिबन्ध",
+       "logentry-import-upload": "$1 {{GENDER:$2|आयात केल गेल}} $3 संचिका उपारोपन के माध्यम सँ",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|आयात केल गेल}} $3 कोनो और विकि सँ",
+       "logentry-merge-merge": "$1 {{GENDER:$2|विलय केल गेल}} $3 के $4 में (संशोधन $5 धरि)",
        "logentry-move-move": "$1 हटाएल पन्ना $3 सँ $4",
        "logentry-move-move-noredirect": "$1 {{लिंग:$2|हटाएल}} पन्ना $3 सँ $4 घुमौआकेँ बिना छोड़ने",
        "logentry-move-move_redir": "$1 {{लिंग:$2|हटाएल}} पन्ना $3 सँ $4 घुमौआक अतिरिक्त",
        "logentry-newusers-newusers": "$1 {{लिंग:$2|बनाएल}} एकटा प्रयोक्ता खाता",
        "logentry-newusers-create": "$1 {{लिंग:$2|बनाएल}} एकटा प्रयोक्ता खाता",
        "logentry-newusers-create2": "$1 {{लिंग:$2|बनाएल}} {{लिंग:$4|एकटा प्रयोक्ता खाता}} $3",
+       "logentry-newusers-byemail": "$1 द्वारा प्रयोक्ता खाता $3 {{GENDER:$2|बनाओल}} गेल आ कूटशब्द ई-पत्र द्वारा भेजल गेल",
        "logentry-newusers-autocreate": "खाता $1 छल {{लिंग:$2|बनाएल}} स्वतः",
        "logentry-upload-upload": "$1 {{GENDER:$2|ए}} $3 अपलोड केलक",
+       "log-name-tag": "ट्याग लग",
        "rightsnone": "(कोनो नै)",
        "revdelete-summary": "सम्पादन सारांश",
        "feedback-adding": "पन्ना उपर प्रतिक्रिया जोडु ...",
+       "feedback-back": "पाछां",
        "feedback-bugcheck": "बहुत निक! जांच करु कि [ $1 known bugs] पहिले स त नै अछि ।",
+       "feedback-bugnew": "हम जाँच केलौ। एक नव बग रिपोर्ट करी",
        "feedback-cancel": "रद्द करु",
        "feedback-close": "भ गेल",
+       "feedback-error-title": "त्रुटि",
+       "feedback-error1": "त्रुटि: नै पहचानल गेल परिणाम एपीआईसँ",
        "feedback-error2": "त्रुटि: संपादन विफल भेल",
+       "feedback-error3": "त्रुटि:एपीआईसँग कोनो प्रतिक्रिया नै",
        "feedback-message": "संदेश:",
        "feedback-subject": "विषय:",
        "feedback-submit": "दिअ",
+       "feedback-thanks-title": "धन्यवाद!",
+       "feedback-useragent": "सदस्य कर्ता:",
        "searchsuggest-search": "ताकू",
        "searchsuggest-containing": "...सऽ युक्त",
        "api-error-badaccess-groups": "अहि विकी सें अहां कोनो प्रारूप लोड नहि क सकब.",
+       "api-error-badtoken": "आन्तरिक त्रुटि: खराब टोकन।",
+       "api-error-copyuploaddisabled": "युआरयलद्वारा इ सर्वर पर अपलोड अक्षम अछि।",
        "api-error-filename-tooshort": "ई संचिका नाम बड छोट अछि |",
        "api-error-filetype-banned": "ऐ तरहक संचिका नाम प्रतिबंधित  अछि।",
        "api-error-filetype-banned-type": "$1 {{PLURAL:$4|मान्य संचिका प्रकार नै अछि|मान्य संचिका प्रकार सभ नै अछि}}। मान्य अछि {{PLURAL:$3|संचिका प्रकार अछि|संचिका प्रकार सभ अछि}} $2।",
        "pagelang-language": "भाषा",
        "pagelang-select-lang": "भाषा चुनु",
        "right-pagelang": "पृष्ठ के भाषा परिवर्तन करू",
-       "action-pagelang": "पृष्ठ के भाषा परिवर्तन करू"
+       "action-pagelang": "पृष्ठ के भाषा परिवर्तन करू",
+       "special-characters-group-latin": "ल्याटिन",
+       "special-characters-group-latinextended": "ल्याटिन विस्तारित",
+       "special-characters-group-ipa": "आइपीए",
+       "special-characters-group-symbols": "प्रतीक",
+       "special-characters-group-greek": "ग्रीक",
+       "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": "खमेर",
+       "special-characters-title-endash": "एन डैश",
+       "special-characters-title-emdash": "एम डैश",
+       "special-characters-title-minus": "ऋण चिह्न"
 }
index f7cf1c6..17aafd7 100644 (file)
        "tog-usenewrc": "Klompok owahan miturut kaca nang owahan anyar lan daptar pangawasan (mbutuhna JavaScript)",
        "tog-numberheadings": "Aweh nomer judul secara otomatis",
        "tog-showtoolbar": "Tidhokna bilah alat penyuntingan",
-       "tog-editondblclick": "Nyunting kaca nganggo dobel klik (mbutuhna JavaScript)",
-       "tog-editsectiononrightclick": "Aktifna penyuntingan subbagian nganggo klik-tengen nang judul bagian (mbutuhna JavaScript)",
+       "tog-editondblclick": "Nyunting kaca nganggo klik ping loro",
+       "tog-editsectiononrightclick": "Aktifna panyuntingan subbagian nganggo klik-tengen nang judul bagian",
        "tog-watchcreations": "Tambahna kaca gaweanne inyong lan berkas sing tek unggah nang daptar pangawasanne inyong",
        "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-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-previewonfirst": "Tidokna pratayang nang suntingan sing pertama",
@@ -33,7 +34,7 @@
        "tog-shownumberswatching": "Tidhokna jumlah pangawas",
        "tog-oldsig": "Tapak asma sekiye:",
        "tog-fancysig": "Tapak asma dianggep dadi teks wiki (ora nganggo pranala otomatis)",
-       "tog-uselivepreview": "Gunakna pratayang langsung (mbutuhna JavaScript) (egin jajalan)",
+       "tog-uselivepreview": "Gunakna pratayang langsung",
        "tog-forceeditsummary": "Emutna inyong anggere durung ngisi kotak ringkesan suntingan",
        "tog-watchlisthideown": "Umpetna suntingane inyong sekang daftar pangawasan",
        "tog-watchlisthidebots": "Umpetna suntingane bot sekang daftar pangawasan",
@@ -45,6 +46,7 @@
        "tog-diffonly": "Aja tidokna isi kaca nang ngisor bedane suntingan",
        "tog-showhiddencats": "Tidokna kategori sing diumpetna",
        "tog-norollbackdiff": "Lirwakna perbedaan 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",
        "underline-never": "Ora tau",
        "newwindow": "(buka nang jendhéla anyar)",
        "cancel": "Ora Sida",
        "moredotdotdot": "Liyané...",
-       "morenotlisted": "Liyane sing durung kedaftar...",
+       "morenotlisted": "Daftar kiye ora kumplit.",
        "mypage": "Kaca",
        "mytalk": "Dopokan",
        "anontalk": "Dhiskusi IP kiye",
        "permalink": "Pranala permanèn",
        "print": "Nyetak",
        "view": "Deleng",
+       "view-foreign": "Deleng nang $1",
        "edit": "Sunting",
+       "edit-local": "Sunting deskripsi lokal",
        "create": "Gawe",
+       "create-local": "Tambahna pawedharan lokal",
        "editthispage": "Sunting kaca kiye",
        "create-this-page": "Gawe kaca kiye",
        "delete": "Busek",
        "articlepage": "Deleng isi tulisan",
        "talk": "bahas",
        "views": "Tampilan",
-       "toolbox": "perangkat",
+       "toolbox": "Pekakas",
        "userpage": "Ndeleng kaca panganggo",
        "projectpage": "Deleng kaca proyèk",
        "imagepage": "Deleng kaca berkas",
        "otherlanguages": "basa liya",
        "redirectedfrom": "(Dialihna sekang $1)",
        "redirectpagesub": "Kaca pangalihan",
+       "redirectto": "Dialihna maring:",
        "lastmodifiedat": "Kaca kiye nembe diowahi dong jam $2, tanggal $1.",
        "viewcount": "Kaca kiye uwis diakses ping {{PLURAL:$1|sepisan|$1}}",
        "protectedpage": "Kaca sing direksa",
        "jumptonavigation": "navigasi",
        "jumptosearch": "goleti",
        "view-pool-error": "Nyuwun ngapuro, peladèn lagi sibuk wektu sekiye.\nKakèhan panganggo sing njajal mbukak kaca kiye.\nEntèni sedhéla sadurungé njajal ngaksès kaca kiye maning .\n\n$1",
+       "generic-pool-error": "Nyuwun ngapura, peladèn lagi sibuk wektu sekiye.\nKakèhan panganggo sing njajal ndeleng sumber kiye.\nEntèni sedhéla sedurungé rika njajal ngaksès sumber kiye maning .",
        "pool-timeout": "Kelangkung wekdal nengga kunci",
        "pool-queuefull": "Kumpulan antriane kebak",
        "pool-errorunknown": "Kesalahan sing ora dingerteni sebabe",
+       "pool-servererror": "Layanan sing nggo ngitung pool durung disediyakna ($1).",
+       "poolcounter-usage-error": "Usage error: $1",
        "aboutsite": "Prakara {{SITENAME}}",
        "aboutpage": "Project:Prakara",
        "copyright": "Kabeh teks ana miturut $1.",
        "disclaimers": "Pamaidonan",
        "disclaimerpage": "Project:Panyangkalan umum",
        "edithelp": "Pitulung panyuntingan",
+       "helppage-top-gethelp": "Pitulung",
        "mainpage": "Kaca Utama",
        "mainpage-description": "Kaca Utama",
        "policy-url": "Project:Kabijakan",
        "youhavenewmessages": "Rika duwe $1 ($2).",
        "youhavenewmessagesfromusers": "Rika nduwe $1 sekang {{PLURAL:$3|panganggo liya|$3 panganggo}} ($2).",
        "youhavenewmessagesmanyusers": "Rika nduwe $1 sekang akeh panganggo ($2).",
-       "newmessageslinkplural": "{{PLURAL:$1|pesen anyar|pesen anyar}}",
-       "newmessagesdifflinkplural": "{{PLURAL:$1||}}owah-owahan pungkasan",
+       "newmessageslinkplural": "{{PLURAL:$1|pesen anyar|999=pesen anyar}}",
+       "newmessagesdifflinkplural": "{{PLURAL:$1|owahan|999=owahan}} pungkasan",
        "youhavenewmessagesmulti": "Rika olih pesen-pesen anyar nang $1",
        "editsection": "sunting",
        "editold": "sunting",
        "hidetoc": "umpetna",
        "collapsible-collapse": "Umpetna",
        "collapsible-expand": "Tidokna",
+       "confirmable-confirm": "Apa {{GENDER:$1|rika}} yakin?",
+       "confirmable-yes": "Ya",
+       "confirmable-no": "Ora",
        "thisisdeleted": "Deleng apa mbalekna $1?",
        "viewdeleted": "Ndeleng $1?",
        "restorelink": "{{PLURAL:$1|siji suntingan|$1 suntingan}} sing wis dibusak",
        "gotaccount": "Wis duwe akun? $1.",
        "gotaccountlink": "Mlebu log",
        "userlogin-resetlink": "Apa Rika kelalen info detil nggo mlebune?",
-       "userlogin-resetpassword-link": "Setel maning tembung sandhine Rika",
+       "userlogin-resetpassword-link": "Rika kelalen tembung sandhine?",
+       "userlogin-helplink2": "Pitulung mlebu log",
+       "userlogin-loggedin": "Rika uwis mlebu log nganggo jeneng {{GENDER:$1|$1}}.\nGunakna formulir nang ngisor kiye kanggo mlebu log dadi pangganggo sejen.",
+       "userlogin-createanother": "Gawe akun anyar",
        "createacct-emailrequired": "Alamat imel",
        "createacct-emailoptional": "Alamat imel (ora kudu)",
        "createacct-email-ph": "Lebokna alamat imele Rika",
        "createacct-submit": "Gawe akune Rika",
        "createacct-another-submit": "Gawe akun liyane",
        "createacct-benefit-heading": "{{SITENAME}} kuwe digawe nang wong kaya Rika.",
-       "createacct-benefit-body1": "{{PLURAL:$1|suntingan|suntingan}}",
+       "createacct-benefit-body1": "{{PLURAL:$1|owahan|owahan}}",
        "createacct-benefit-body2": "{{PLURAL:$1|kaca}}",
        "createacct-benefit-body3": "{{PLURAL:$1|kontributor}} anyaran",
        "badretype": "Tembung sandhi sing Rika lebokna ora gathuk.",
        "wrongpassword": "Tembung sandhi sing dilebokna salah.\nMonggo dijajal sepisan maning.",
        "wrongpasswordempty": "Rika ora nglebokna tembung sandhi.\nMonggo dijajal sepisan maning.",
        "passwordtooshort": "Tembung sandhi kuwe paling ora cacahe {{PLURAL:$1|1 karakter|$1 karakter}}.",
+       "passwordtoolong": "Tembung sandhi ora olih lewih dawa sekang {{PLURAL:$1|1 karakter|$1 karakter}}.",
        "password-name-match": "Tembung sandhi Rika kudu sejen karo jeneng panganggone Rika.",
        "password-login-forbidden": "Jeneng panganggo lan tembung sandhi kiye ora olih dienggo.",
        "mailmypassword": "Tembung sandhi di-reset",
        "createaccount-text": "Ana wong sing gawe akun nggo alamat imel-e Rika nang {{SITENAME}} ($4) nganggo jeneng \"$2\", lan tembung sandhi \"$3\".\nRika mendingan mlebu log disit lan ganti tembung sandine sekiye.\n\nRika teyeng nglirwakna pesen kiye anggere akun kiye kuwe jebule anu salah gawe.",
        "login-throttled": "Rika wis kakehan gole njajal mlebu log.\nTulung ngenteni $1 sedurunge njajal maning.",
        "login-abort-generic": "Proses mlebu log Rika ora gagal - Dibatalna",
+       "login-migrated-generic": "Akune rika uwis dipindahna, lan jeneng panganggone rika wis ora ana maning nang wiki kiye.",
        "loginlanguagelabel": "Basa: $1",
        "suspicious-userlogout": "Panjalukan Rika nggo metu log ditolak jalarak ketone dikirim nang panjlajah sing rusak utawa proksi panyinggah (''caching proxy'').",
        "createacct-another-realname-tip": "'''Jeneng asli''' kuwe ora kudu.\nAngger Rika milih arep ngaweh, kiye bakal digunakna nggo aweh atribut maring kasil kerjaane Rika.",
+       "pt-login": "Mlebu log",
+       "pt-login-button": "Mlebu log",
+       "pt-createaccount": "Gawe akun",
+       "pt-userlogout": "Metu Log",
        "php-mail-error-unknown": "Kasalahan sing ora genah nang fungsi mail() PHP.",
        "user-mail-no-addy": "Njajal ngirimna imel tanpa nganggo alamat imel.",
        "user-mail-no-body": "Njajal ngirim imel sing kosong urawa isine sithik thok.",
        "changepassword": "Ganti tembung sandhi",
-       "resetpass_announce": "Rika wis mlebu log karo kode sementara sing dikirim maring imel.\nNggo nerusna, Rika kudu nglebokna tembung sandhi anyar nang kene:",
+       "resetpass_announce": "Kanggo ngrampungna gole mlebu log, rika kudu nglebokna tembung sandhi anyar.",
        "resetpass_header": "Ganti tembung sandhine akun",
        "oldpassword": "Tembung sandi lawas:",
        "newpassword": "Tembung sandi anyar:",
        "retypenew": "Ketik maning tembung sandhi:",
        "resetpass_submit": "Nata tembung sandhi lan mlebu log",
        "changepassword-success": "Tembung sandhi Rika wis sukses diowahi!",
+       "changepassword-throttled": "Rika wis kakehan gole njajal mlebu log.\nTulung ngenteni $1 sedurunge njajal maning.",
        "resetpass_forbidden": "Tembung sandhi ora teyeng diganti",
        "resetpass-no-info": "Rika kudu mlebu log kanggo ngakses kaca kiye sacara langsung.",
        "resetpass-submit-loggedin": "Ganti tembung sandhi",
        "resetpass-submit-cancel": "Batal",
        "resetpass-wrong-oldpass": "Tembung sandhi ora sah.\nRika ndeyan  uwis kasil ngganti tembung sandhine Rika utawa wis njaluk tembung sandhi sauntara sing anyar.",
+       "resetpass-recycled": "Monggo diganti tembung sandhine rika nganggo sing sejen sekang tembung sandhi sekiye.",
+       "resetpass-temp-emailed": "Rika mlebu long nganggo kode sawetara sing ana nang surel.\nKanggo ngrampungna gole mlebu log, rika kudu ngatur tembung sandhi anyar nang kene:",
        "resetpass-temp-password": "Tembung sandhi sauntara:",
        "resetpass-abort-generic": "Owahan tembung sandhi wis dibatalna nang ektensi.",
+       "resetpass-expired": "Tembung sandhine rika wis kedaluwarsa. Monggo ngatur tembung sandhi anyar kanggo mlebu log.",
        "passwordreset": "Tembung sandhi di-''reset''",
        "passwordreset-text-one": "Kumpliti formulir kiye kanggo nyetel maning tembung sandhine Rika.",
        "passwordreset-text-many": "{{PLURAL:$1|Isi salah siji kotak kanggo nyetel maning tembung sandhine Rika.}}",
        "session_fail_preview": "'''Nuwun sèwu, suntingan Rika ora teyeng diolah jalaran dhata sèsi kabusak.\nMonggo dijajal sepisan maning. \nAngger tetep ora teyeng, jajal [[Special:UserLogout|metu log]] disit lan mlebu log maning.",
        "session_fail_preview_html": "'''Nuwun sèwu! Kita ora teyeng mrosès suntingan Rika jalaran data sési ilang.'''\n\n''Jalaran {{SITENAME}} ngidina panrapan HTML mentah, pratayang diumpetna minangka penggakan marang serangan Javascript.''\n\n'''Angger kiye kuwe upaya suntingan sing sah, monggo dijajal maning.'''\nNek esih tetep ora kasil, jajalen [[Special:UserLogout|metu log]] lan mlebu log maning.",
        "editing": "Nyunting $1",
+       "creating": "Gawe $1",
        "editingsection": "Nyunting $1 (bagiyan)",
+       "editingcomment": "Nyunting $1 (bagéyan anyar)",
+       "editconflict": "Konflik panyuntingan: $1",
        "protectedpagewarning": "'''Pénget:  Kaca kiye wis dikunci dadi mung panganggo sing nduwé hak aksès pangurus baé sing teyeng nyunting.'''\nEntri cathetan pungkasan disadiakna nang ngisor kanggo referensi:",
        "semiprotectedpagewarning": "'''Cathetan:''' Kaca kiye lagi pinuju direksa, dadi mung panganggo kadaftar sing teyeng nyunting.\nEntri cathetan pungkasan disadiakna nang ngisor kanggo referensi:",
        "templatesused": "{{PLURAL:$1|Cithakan|Cithakan}} sing dienggo nang kaca kiye:",
        "delete-toobig": "Kaca kiye nduwe sejarah panyuntingan sing dawa, lewih sekang $1 {{PLURAL:$1|revisi|revisi}}.\nMbusek kaca sing kaya kiye ora kena dilakokna nggo menggak karusakan nang {{SITENAME}}.",
        "delete-warning-toobig": "Kaca kiye duwé sajarah panyuntingan sing dawa, lewih sekang $1 {{PLURAL:$1|révisi|révisi}}.\nMbusek kaca kiye teyeng ngrusak operasi basis data nang {{SITENAME}};\nkudu ngati-ati.",
        "rollback": "Mbalekna suntingan",
-       "rollback_short": "Balèkna",
        "rollbacklink": "balekna",
        "rollbackfailed": "Pambalèkan gagal dilakoni",
        "cantrollback": "Ora teyeng mbatalna suntingan;\nkontributor pungkasane kuwe siji-sijine sing nulis artikel kiye.",
index 0072654..1d8ee1f 100644 (file)
        "disclaimers": "Fampitandremana",
        "disclaimerpage": "Project:General disclaimer",
        "edithelp": "Fanoroana",
+       "helppage-top-gethelp": "Fanoroana",
        "mainpage": "Fandraisana",
        "mainpage-description": "Fandraisana",
        "policy-url": "Project:Fepetra",
        "readonly_lag": "\nMihidy ho azy aloha ny banky angona mandra-pahatratran'ny serveur andevo ny tompony",
        "internalerror": "Tsy fetezana anatin'ny rindrankajy",
        "internalerror_info": "Tsy fetezana ety anatiny : $1",
+       "internalerror-fatal-exception": "Karazana-kadisoana nampijanona \"$1\"",
        "filecopyerror": "Tsy voadika ho \"$2\" ilay rakitra\"$1\".",
        "filerenameerror": "Tsy voaova ho \"$2\" ny anaran'ilay rakitra \"$1\".",
        "filedeleteerror": "Tsy voafafa ilay rakitra \"$1\".",
        "notextmatches": "Tsy nahitana votoatim-pejy mifanaraka",
        "prevn": "{{PLURAL:$1|$1}} taloha",
        "nextn": "{{PLURAL:$1|$1}} manaraka",
+       "prev-page": "pejy nialoha",
+       "next-page": "pejy manaraka",
        "prevn-title": "Valim-pikarohana taloha $1{{PLURAL:}}",
        "nextn-title": "Valim-pikarohana manaraka $1{{PLURAL:}}",
        "shown-title": "Aseho valiny $1 isaky ny pejy iray{{PLURAL:}}",
        "search-result-category-size": "Mpiray sokajy $1{{PLURAL:$1}} (zana-tsokajy $2{{PLURAL:}}, rakitra $3{{PLURAL:}})",
        "search-redirect": "(redirect avy amin'ny/amin'i $1)",
        "search-section": "(fizaràna $1)",
+       "search-category": "(sokajy $1)",
        "search-file-match": "(miady amin'ny votoatin-drakitra)",
        "search-suggest": "Andramo : $1",
        "search-interwiki-caption": "zandri-tetikasa",
        "randomincategory": "Pejy kisendra ao amin'ny sokajy",
        "randomincategory-invalidcategory": "Tsy anaran-tsokajy azo raisina \"$1\"",
        "randomincategory-nopages": "Tsy misy pejy ao amin'i [[:Category:$1]]",
+       "randomincategory-category": "Sokajy:",
        "randomredirect": "Pejy fihodinana kisendra",
        "randomredirect-nopages": "Tsy misy pejy fihodinana eo amin'ny anaran-tsehatra «$1»",
        "statistics": "Statistika",
        "listusers": "Lisitry ny mpikambana",
        "listusers-editsonly": "Ny mpikambana manam-pandraisan'anjara ihany no aseho",
        "listusers-creationsort": "Afantina amin'ny daty fanokafana",
+       "listusers-desc": "Fantinana amin'ny laharana midina",
        "usereditcount": "fanovana $1 {{PLURAL:}}",
        "usercreated": "Noforonina ny {{GENDER:$3}} $1 tamin'ny $2",
        "newpages": "Pejy vaovao",
        "pager-older-n": "$1 {{PLURAL:$1|taloha|taloha}}",
        "suppress": "Hitondra",
        "querypage-disabled": "Tsy ampiasaina ity pejy manokana ity mba hitsitsy ny solosaina",
+       "apihelp": "Fanoroana API",
+       "apihelp-no-such-module": "Tsy hita ny joro \"$1\".",
        "booksources": "boky tsiahy",
        "booksources-search-legend": "hikaroka anatin'ny boky todika",
        "booksources-search": "Fikarohana",
        "tooltip-pt-mycontris": "Lisitra ny fandraisan'anjaranao",
        "tooltip-pt-login": "Tsara aminao no miditra na misoratra anarana, fa tsy voatery ianao.",
        "tooltip-pt-logout": "Hidio",
+       "tooltip-pt-createaccount": "Amporisihana mafy ianao hanokatra kaonty ary miditra; na dia izany aza, tsy voatery atao izany.",
        "tooltip-ca-talk": "resaka momba io takelaka io",
        "tooltip-ca-edit": "Azonao atao no manova n'ity pejy ity.\nAmpesao ny topi-maso aloha no mihatiry.",
        "tooltip-ca-addsection": "hanomboka fizaràna vaovao",
        "spambot_username": "Fanadiovana ny spam amin'i MediaWiki.",
        "spam_reverting": "Famerenana an'ilay versiona farany tsy misy ny rohy mankany amin'ny $1",
        "spam_blanking": "Voafotsy ny versiona misy ny rohy mankany amin'ny $1",
+       "simpleantispam-label": "Fanamarinana anoherana ny spam.\n<strong>AZA</strong> fenoina ity!",
        "pageinfo-title": "Fampahalalana ho an'i \"$1\"",
        "pageinfo-header-basic": "Fampahalalana fototra",
        "pageinfo-header-edits": "Tantaran'ny fanovana",
        "exif-samplesperpixel": "Mpandahatra isaky ny piksely",
        "exif-planarconfiguration": "Fandaminana ny data",
        "exif-ycbcrpositioning": "Fipetraky ny Y sy C",
+       "exif-xresolution": "Famahana mitsivalana",
        "exif-yresolution": "Isan-teboka mijidina",
        "exif-stripoffsets": "Toerana isian'ny datan'ny sary",
        "exif-rowsperstrip": "Isan'ny andininy isaky ny bandy",
        "exif-subjectdistance": "Halaviran'ny alaina sary",
        "exif-meteringmode": "Fomba fandrefesana",
        "exif-lightsource": "Loharanon-kazavana",
+       "exif-flash": "Tselatra",
+       "exif-subjectarea": "Faritry ny alain-tsary",
        "exif-flashenergy": "Angôvon'akonkazavana",
        "exif-subjectlocation": "Toeram-pisian'ny alaina sary",
        "exif-filesource": "Fangon-drakitra",
        "exif-meteringmode-255": "Hafa",
        "exif-lightsource-0": "Tsy fantatra",
        "exif-lightsource-1": "Hazavan'andro",
+       "exif-lightsource-4": "Tselatra",
        "exif-lightsource-9": "Toetr'andro mazava",
        "exif-lightsource-10": "Toetr'andro mandrahona",
        "exif-lightsource-11": "Haloka",
        "imgmultipagenext": "pejy manaraka →",
        "imgmultigo": "Andao !",
        "imgmultigoto": "Handeha any amin'ny pejy $1",
+       "img-lang-default": "(fiteny tsipalotra)",
+       "img-lang-go": "Alefa",
        "ascending_abbrev": "mihak.",
        "descending_abbrev": "mihid.",
        "table_pager_next": "Pejy manaraka",
        "tags": "Balizin'ny fanovana mety",
        "tag-filter": "manasongadina [[Special:Tags|balizy]] :",
        "tag-filter-submit": "Manasongadina",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Marika}}]]: $2)",
        "tags-title": "Balizy",
        "tags-intro": "Ity pejy ity dia manalisitra ny balizy azon'ny rindrankajy ampiasaina mba hanamarika fanovana iray sy ny dikany.",
        "tags-tag": "Anaran'ny balizy",
index 3f38f59..080a3dc 100644 (file)
        "oct": "Шыжа",
        "nov": "Кылме",
        "dec": "Теле",
-       "pagecategories": "{{PLURAL:$1|1=Категорий|Категорий}}",
+       "pagecategories": "{{PLURAL:$1|Категорий|Категорий}}",
        "category_header": "\"$1\" категорийыште лаштык-влак",
        "subcategories": "Ӱлылкатегорий-влак",
        "category-media-header": "\"$1\" категорийыште файл-влак",
        "category-empty": "''Ты жаплан тиде категорийыште нимоат уке.''",
-       "hidden-categories": "{{PLURAL:$1|1=Шылтыме категорий|Шылтыме категорий-влак}}",
+       "hidden-categories": "{{PLURAL:$1|Шылтыме категорий|Шылтыме категорий-влак}}",
        "hidden-category-category": "Шылтымо категорий-влак",
        "category-subcat-count": "{{PLURAL:$2|Тиде категорийыш ик ӱлылкатегорий гына пура.|{{PLURAL:$1|1=Тыгай $1 ӱлылкатегорий|Тыгане $1 ӱлылкатегорий-влак}} тиде категорийыште, чыла $2.}}",
        "category-article-count": "{{PLURAL:$2|Тиде категорийыш ик лаштык гына пура.|{{PLURAL:$1|1=Тыгай $1 лаштык|Тыгане $1 лаштык-влак}} тиде категорийыште, чыла $2.}}",
        "printableversion": "Савыкташлан келыштарыме",
        "permalink": "Эре улшо кылвер",
        "print": "Савык",
+       "view": "Ончалаш",
        "edit": "Тӧрлаташ",
        "create": "Ышташ",
        "editthispage": "Тӧрлаташ тиде лаштыкым",
        "virus-unknownscanner": "палыдыме антивирус:",
        "welcomeuser": "Пагален ӱжына, $1!",
        "yourname": "Пайдаланышын лӱмжӧ:",
+       "userlogin-yourname": "Пайдаланышын лӱмжӧ",
+       "userlogin-yourname-ph": "Шке пайдаланыше лӱметым пурто",
        "yourpassword": "Шолыпмут:",
+       "userlogin-yourpassword": "Шолыпмут",
        "createacct-yourpassword-ph": "Шолыпмутым пурто",
        "yourpasswordagain": "Шолыпмутым угыч пуртымаш:",
        "createacct-yourpasswordagain": "Шолыпмутым пеҥгыдемде",
        "eauthentsent": "Пеҥгыдемдымаш дене серышым темлыме электрон адресыш колтымо. Электрон почто адресын тыйын улмым пеҥгыдемдаш, серышыште улшо инструкцийым шукто.",
        "emailauthenticated": "Тыйын почто адресетым пеҥгыдемдыме $2, $3.",
        "loginlanguagelabel": "Йылме: $1",
+       "pt-login": "Пураш",
+       "pt-userlogout": "Лекташ",
        "changepassword": "Шолыпмутым вашталташ",
        "oldpassword": "Тошто шолыпмут:",
        "newpassword": "У шолыпмут:",
        "yourtext": "Тендан текст",
        "yourdiff": "Ойыртем",
        "copyrightwarning": "Шотыш нал, чыла пашам {{SITENAME}} проектыш $2 лицензий почеш лукмо семын шотлыман($1 ончал). \nВозыметым нигӧлан пайдаланаш, тӧрлаташ ынет пу гын тышке тудым ит шыҥдаре.<br />\nТыгак текстым шке возымо але тудым эрыкан вер гыч налме шотышто мутым пуэт.<br />\n'''АВТОР АЛЕ ТУДЫН ПРАВАМ АРАЛЫШЕ-ВЛАК ДЕЧ ЙОДДЕ МАТЕРИАЛЫМ ИТ ШЫҤДАРЕ!'''",
-       "templatesused": "Тиде лаштыкыште кучылтмо {{PLURAL:$1|1=ямдылык|ямдылык-влак}}:",
+       "templatesused": "Тиде лаштыкыште кучылтмо {{PLURAL:$1|ямдылык|ямдылык-влак}}:",
        "templatesusedpreview": "Тиде лаштыкыште кучылтмо {{PLURAL:$1|1=ямыдылык|ямдылык-влак}}:",
        "template-protected": "(тӧрлаташ чарыме)",
        "template-semiprotected": "(верын аралыме)",
        "prevn": "кодшо {{PLURAL:$1|$1}}",
        "nextn": "весе {{PLURAL:$1|$1}}",
        "prevn-title": "Кодшо $1 {{PLURAL:$1|результат}}",
-       "nextn-title": "Весе $1 {{PLURAL:$1|результат}}",
+       "nextn-title": "Весе $1 {{PLURAL:$1|лектыш|лектыш}}",
        "shown-title": "Лаштыкыште $1 {{PLURAL:$1|1=возымаш|возымашым}} ончыкташ",
        "viewprevnext": "Ончал ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-new": "'''Тиде вики-проектыште «[[:$1]]» лӱман лаштыкым ышташ!'''",
        "searchprofile-images-tooltip": "Файл-влакым кычалмаш",
        "searchprofile-everything-tooltip": "Чыла лаштык-влакыште кычалаш (каҥашымаш лаштык-влакыштат)",
        "searchprofile-advanced-tooltip": "Искать в заданных пространствах имён",
-       "search-result-size": "$1 ({{PLURAL:$2|1=$2 мут|$2 мут}})",
+       "search-result-size": "$1 ({{PLURAL:$2|1 мут|$2 мут}})",
        "search-result-category-size": "$1 {{PLURAL:$1|вхождение|вхождения|вхождений}} ($2 {{PLURAL:$2|подкатегория|подкатегории|подкатегорий}}, $3 {{PLURAL:$3|файл|файла|файлов}}).",
        "search-redirect": "($1 вес вере колтымаш)",
        "search-section": "(ужаш $1)",
        "rightslog": "Участникын праваже-влакым ончыктышо журнал",
        "action-edit": "тиде лаштыкым тӧрлаташ",
        "nchanges": "$1 {{PLURAL:$1|тӧрлатымаш}}",
+       "enhancedrc-history": "эртык",
        "recentchanges": "Пытартыш тӧрлатымаш-влак",
        "recentchanges-legend": "Пытартыш тӧрлатымаш-влакын келыштарымашышт",
        "recentchanges-summary": "Тиде лаштыкыште пытартыш тӧрлатымашым шекланаш.",
        "recentchanges-label-minor": "Тиде изи тӧрлатымаш",
        "recentchanges-label-bot": "Тиде тӧрлатымашым бот ыштен",
        "recentchanges-label-unpatrolled": "Тиде тӧрлатымашым нигӧ терген огыл",
+       "recentchanges-legend-heading": "'''Легенде:'''",
        "recentchanges-legend-newpage": "$1 - у лаштык",
        "rcnotefrom": "Ниже перечислены изменения с '''$2''' (не более '''$1''').",
        "rclistfrom": "$3 $2 гыч тӱҥалын у вашталтымашым ончыкташ",
        "rcshowhideminor": "Изи тӧрлатымашым $1",
+       "rcshowhideminor-hide": "шылташ",
        "rcshowhidebots": "Бот-влакым $1",
+       "rcshowhidebots-show": "ончыкташ",
        "rcshowhideliu": "Шолып пайдаланыше-влакым $1",
+       "rcshowhideliu-hide": "шылташ",
        "rcshowhideanons": "Ончыкталтше пайдаланыше-влакым $1",
+       "rcshowhideanons-hide": "шылташ",
        "rcshowhidepatr": "$1 тергыме тӧрлатымаш",
        "rcshowhidemine": "Мыйын тӧрлымым $1",
+       "rcshowhidemine-hide": "шылташ",
        "rclinks": "Пытартыш $2 кечылан $1 вашталтымашым ончыкташ<br />$3",
        "diff": "ойырт.",
        "hist": "эрт.",
        "nolinkstoimage": "Тиде файл дене кылдалтше ик лаштыкат уке.",
        "sharedupload": "Тиде файлын верже: $1, туге гынат, тудым моло веренат кучылташ лиеш.",
        "uploadnewversion-linktext": "Тиде файлын у версийжым пурташ",
+       "upload-disallowed-here": "Тый тиде файлым угыч возен от керт.",
        "filedelete-comment": "Амал:",
        "filedelete-submit": "Шӧраш",
        "filedelete-otherreason": "Вес/ешартыш амал:",
        "brokenredirects-edit": "тӧрлаташ",
        "brokenredirects-delete": "шӧраш",
        "withoutinterwiki-submit": "ончыкташ",
-       "nbytes": "$1 {{PLURAL:$1|1=байт|байт}}",
+       "nbytes": "$1 {{PLURAL:$1|байт|байт}}",
        "nmembers": "$1 {{PLURAL:$1|1=лаштык|лаштык-влак}}",
        "nviews": "$1 {{PLURAL:$1|1=ончымо|ончымо-влак}}",
        "lonelypages": "Тулык лаштык-влак",
        "namespace": "Лӱм-влакын кумдыкышт:",
        "invert": "инвертировать выделенное",
        "blanknamespace": "(Тӱҥ)",
-       "contributions": "Пайдаланышын пашаже",
+       "contributions": "{{GENDER:$1|User}}-ын пашаже",
        "contributions-title": "$1 пайдаланышын паша",
        "mycontris": "Мыйын паша",
        "contribsub2": "$1 лан ($2)",
        "nolinkshere-ns": "Тыгай лӱм-влакын кумдыкышто '''[[:$1]]''' лаштык дене нимогай вес лаштык-влак кылым огыт кучо.",
        "isredirect": "вес вере колтышо лаштык",
        "istemplate": "пуртымаш",
-       "isimage": "файллан кылвер",
-       "whatlinkshere-prev": "{{PLURAL:$1|1=ончычсо|$1 ончычсо}}",
-       "whatlinkshere-next": "{{PLURAL:$1|1=вес|$1 вес}}",
+       "isimage": "файлыш кылвер",
+       "whatlinkshere-prev": "{{PLURAL:$1|ончычсо|$1 ончычсо}}",
+       "whatlinkshere-next": "{{PLURAL:$1|вес|$1 вес}}",
        "whatlinkshere-links": "← кылвер-влак",
        "whatlinkshere-hideredirs": "вес вере колтымаш-влакым $1",
        "whatlinkshere-hidetrans": "пуртымашым $1",
        "file-nohires": "Кугурак чаплык уке.",
        "svg-long-desc": "SVG файл, шкенжын кугытшо: $1 × $2 пиксел, файлын кугытшо: $3",
        "show-big-image": "Шкенжын чаплыкше",
+       "show-big-image-size": "$1 × $2 пиксел",
        "newimages-legend": "Фильтр",
        "ilsubmit": "Кычал",
        "bad_image_list": "Формат тыгай лийшаш:\n\nЛӱмерын ужашыже-влак гына шотыш налалташ тӱналалтыт (* дене туҥалше корно-влак).\nКорнышто икымше кылвер шӱкшӧ файлыш кылвер семын лийшаш.\nТиде корнышто вара лийше кылвер-влак лийын кертдыме семын ончалтыт: файлыш кылверан лаштык-влак.",
        "specialpages-group-redirects": "Вес вере колтышо спецлаштык-влак",
        "external_image_whitelist": " #Оставьте эту строчку такой, как она есть<pre>\n#Разместите здесь фрагменты регулярных выражений (ту часть, что находится между //)\n#они будут соотнесены с URL внешних изображений.\n#Подходящие будут показаны как изображения, остальные будут показаны как ссылки на изображения.\n#Строки, начинающиеся с # считаются комментариями.\n#Строки не чувствительны к регистру\n\n#Размещайте фрагменты регулярных выражений над этой строчкой. Оставьте эту строчку такой, как она есть.</pre>",
        "revdelete-summary": "тӧрлатымаш-влакым возен ончыктымаш",
+       "searchsuggest-search": "Кычалаш",
        "expand_templates_ok": "Йӧра",
        "expand_templates_preview": "Ончылгоч ончымаш"
 }
index e02ba2e..b99ecee 100644 (file)
        "badtitletext": "Бараниот наслов е грешен, празен или неисправно поврзан меѓујазичен или меѓувики наслов. \nМоже да содржи недопуштени знаци.",
        "title-invalid-empty": "Бараниот наслов е празен или го содржи само називот на именскиот простор.",
        "title-invalid-utf8": "Бараниот наслов содржи неважечка UTF-8-низа.",
-       "title-invalid-interwiki": "Ð\9dаÑ\81ловоÑ\82 Ñ\81одÑ\80жи Ð¼ÐµÑ\93Ñ\83Ñ\98азиÑ\87на Ð²Ñ\80Ñ\81ка",
+       "title-invalid-interwiki": "Ð\91аÑ\80аниоÑ\82 Ð½Ð°Ñ\81лов Ñ\81одÑ\80жи Ð¼ÐµÑ\93Ñ\83Ñ\98азиÑ\87на Ð²Ñ\80Ñ\81ка Ñ\88Ñ\82о Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñ\81е ÐºÐ¾Ñ\80иÑ\81Ñ\82и Ð²Ð¾ Ð½Ð°Ñ\81лови.",
        "title-invalid-talk-namespace": "Бараниот наслов се однесува на страница за разговор што не може да постои.",
        "title-invalid-characters": "Бараниот наслов содржи неважечки знаци: „$1“.",
        "title-invalid-relative": "Насловот има односна патека. Односните наслови (./, ../) се неважечки бидејќи честопати се недостапни за прелистувачот.",
        "title-invalid-magic-tilde": "Побараниот наслов содржи низа неважечки тилди (<nowiki>~~~</nowiki>).",
-       "title-invalid-too-long": "Бараниот наслов е предолг. Не смее да биде поголем од $1 бајти, шифриран според UTF-8.",
+       "title-invalid-too-long": "Бараниот наслов е предолг. Не смее да биде поголем од  $1 {{PLURAL:$1|бајт|бајти}} шифриран според UTF-8.",
        "title-invalid-leading-colon": "Бараниот наслов содржи неважечки две точки на почетокот.",
        "perfcached": "Следните податоци се меѓускладирани и може да не се тековни. Во меѓускладот {{PLURAL:$1|е достапен највеќе еден резултат|се достапни највеќе $1 резултати}}.",
        "perfcachedts": "Следните податоци се меѓускладирани, последен пат подновени на $1. Во меѓускладот {{PLURAL:$4|е достапен највеќе еден резултат|се достапни највеќе $4 резултати}}.",
        "content-model-css": "CSS",
        "content-json-empty-object": "Празен објект",
        "content-json-empty-array": "Празна низа",
+       "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>.",
        "expensive-parserfunction-warning": "Предупредување: Оваа страница користи премногу повикувања на parser функции.\n\nТреба да има помалку од $2 {{PLURAL:$2|повикување|повикувања}} а сега има {{PLURAL:$1|$1 повикување|$1 повикувања}}.",
        "userrights-lookup-user": "Раководење со кориснички групи",
        "userrights-user-editname": "Внесете корисничко име:",
        "editusergroup": "Уреди кориснички групи",
-       "editinguser": "Ð\9cенÑ\83ваÑ\9aе Ð½Ð° ÐºÐ¾Ñ\80иÑ\81ниÑ\87киÑ\82е Ð¿Ñ\80ава Ð½Ð° ÐºÐ¾Ñ\80иÑ\81никоÑ\82 '''[[User:$1|$1]]''' $2",
+       "editinguser": "Ð\9cенÑ\83ваÑ\9aе Ð½Ð° Ð¿Ñ\80аваÑ\82а Ð½Ð° {{GENDER:$1|коÑ\80иÑ\81никоÑ\82}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Уреди ги корисничките групи",
        "saveusergroups": "Зачувај ги корисничките групи",
        "userrights-groupsmember": "Член на:",
        "uploaddisabledtext": "Подигањето на податотеки е оневозможено.",
        "php-uploaddisabledtext": "Подигањето на податотеки е оневозможено во PHP. \nПроверете го нагодувањето file_uploads.",
        "uploadscripted": "Податотеката содржи HTML-код или сценарио што може погрешно да се протолкува во прелистувачот.",
+       "upload-scripted-pi-callback": "Не можам да подигнам податотека што содржи напатствие за обработка на XML-стилска страница.",
+       "uploaded-script-svg": "Пронајдов скриптен елемент „$1“ во подигнатата SVG-податотека.",
+       "uploaded-hostile-svg": "Пронајдов небезбеден CSS во стилскиот елемент на подигнатата SVG-податотека.",
+       "uploaded-event-handler-on-svg": "Задавањето на атрибути <code>$1=\"$2\"</code> за работа со настани не е дозволено за SVG-податотеки.",
+       "uploaded-href-attribute-svg": "Href-атрибути <code>&lt;$1 $2=\"$3\"&gt;</code> со немесна цел (на пр. http://, javascript: и тн.) не се дозволени во SVG-податотеки.",
+       "uploaded-href-unsafe-target-svg": "Пронајдов href кон небезбедна цел <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“ во матичен елемент е спречена.",
+       "uploaded-wrong-setting-svg": "Употребата на ознаката „set“ за ставање на оддалечна/податочна/скриптна цел во било кој атрибут е спречена. Пронајдов <code>&lt;set to=\"$1\"&gt;</code> во подигнатата SVG-податотека.",
+       "uploaded-setting-handler-svg": "SVG што го задава атрибутот „handler“ со оддалечено/податочна/скриптна е спречен. Пронајдов <code>$1=\"$2\"</code> во подигнатата SVG-податотека.",
+       "uploaded-remote-url-svg": "SVG што задава било каков стилски атрибут со оддалечена URL е спречен. Пронајдов <code>$1=\"$2\"</code> во подигнатата SVG-податотека.",
+       "uploaded-image-filter-svg": "Пронајдов филтер за слики со URL: <code>&lt;$1 $2=\"$3\"&gt;</code> во подигнатата SVG-податотека.",
        "uploadscriptednamespace": "Овааа SVG-податотека го содржи недопуштениот именски простор „$1“",
        "uploadinvalidxml": "Не можев да го расчленам XML-от што се наоѓа во подигнатата податотека.",
        "uploadvirus": "Оваа податотека содржи вирус! Повеќе подробности: $1",
        "unusedimages": "Неискористени слики",
        "wantedcategories": "Потребни категории",
        "wantedpages": "Потребни страници",
-       "wantedpages-summary": "Список на непостоечки страници со највеќе врски што водат до нив, исклучувајќи страниците до кои водат само пренасочувања. Список на непостоечки страници до кои водат пренасочувања ќе најдете на [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "Список на непостоечки страници со највеќе врски што водат до нив, исклучувајќи страниците до кои водат само пренасочувања. Список на непостоечки страници до кои водат пренасочувања ќе најдете на [[{{#special:BrokenRedirects}}|списокот на прекинати пренасочувања]].",
        "wantedpages-badtitle": "Невалиден наслов во резултатите: $1",
        "wantedfiles": "Потребни податотеки",
        "wantedfiletext-cat": "Следниве податотеки се користат, но не постојат. Податотеките од други складишта може да се наведени дури и ако постојат. Таквите ќе бидат <del>поништени</del> од списокот. Покрај ова, страниците што содржат податотеки кои не постојат се наведени на [[:$1]].",
        "exif-exposureprogram-0": "Неопределено",
        "exif-exposureprogram-1": "Рачно",
        "exif-exposureprogram-2": "Нормален режим",
-       "exif-exposureprogram-3": "Ð\9fÑ\80иоÑ\80иÑ\82еÑ\82 Ð½Ð° Ð¾Ñ\82воÑ\80оÑ\82 Ð½Ð° Ð±Ð»ÐµÐ½Ð´Ð°Ñ\82а",
+       "exif-exposureprogram-3": "Приоритет на блендата",
        "exif-exposureprogram-4": "Приоритет на затворачот",
        "exif-exposureprogram-5": "Креативен режим (врз основа на потребната длабочина на острина)",
        "exif-exposureprogram-6": "Спортски режим (на основа на што побрз затворач)",
        "log-name-pagelang": "Дневник на менување на јазикот",
        "log-description-pagelang": "Ова е дневник на менувања на јазикот на страницата.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|го смени}} јазикот на страницата $3 од $4 на $5.",
-       "default-skin-not-found": "За жал, основното руво на вашето вики оопределено во <code dir=\"ltr\">$wgDefaultSkin</code> како <code>$1</code> не е достапно.\n\nВашата воспоставка {{PLURAL:$4|го опфаќа следново руво|ги опфаќа следниве рува}}. Погледајте [https://www.mediawiki.org/wiki/Manual:Skin_configuration Прирачник: Поставување на рува] за да дознаете како да ги вклучите и како да го изберете основното.\n\n$2\n\n; Ако штотуку го имате воспоставено МедијаВики:\n: Веројатно сте го воспоставиле од git, или пак непосредно од изворниот код на некој друг начин. Ова е очекувано. Пробајте да воспоставите некои рува од [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's именикот на рува] вака:\n* Со преземање на [https://www.mediawiki.org/wiki/Download tarball-воспоставувачот], кој самиот содржи неколку рува и додатоци. Можете да ја прекопирате папката <code>skins/</code> од него.\n:* Преземање на tarball-и за рува од [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n* Клонирајќи едно од складиштата <code>mediawiki/skins/*</code> преку git во папката <code dir=\"ltr\">skins/</code> на вашата воспоставка на МедијаВики.\n: Ова не би требало да прави пречки на вашето git-складиште ако сте програмер на МедијаВики.\n\n; Ако штотуку го имате надградено МедијаВики:\n: МедијаВики 1.24 и поновите верзии повеќе не ги вклучуваат воспоставените рува автоматски (погл. [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Прирачник: Самооткривање на рува]). Можете да {{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>$wgDefaultSkin</code> како <code>$1</code>, не е достапно.\n\nНемате воспоставено ниедно руво.\n\n; Ако штотуку го имате воспоставено или надградено МедијаВики:\n: Веројатно сте го воспоставиле од git, или пак непосредно од изворниот код на некој друг начин. Ова е очекувано. МедијаВики 1.24 и поновите верзии немаат рува во главното складиште. Пробајте да воспоставите некои рува од [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's именикот на рува] вака:\n:* Со преземање на [https://www.mediawiki.org/wiki/Download tarball-воспоставувачот], кој самиот содржи неколку рува и додатоци. Можете да ја прекопирате папката <code dir=\"ltr\">skins/</code> од него.\n:* Преземање на tarball-и за поединечни рува од [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n: Ова не би требало да прави пречки на вашето git-складиште ако сте програмер на МедијаВики. Погледајте [https://www.mediawiki.org/wiki/Manual:Skin_configuration Прирачник: Поставување на рува] за да дознаете како да ги вклучите и како да го изберете основното.",
+       "default-skin-not-found": "За жал, основното руво на вашето вики оопределено во <code dir=\"ltr\">$wgDefaultSkin</code> како <code>$1</code> не е достапно.\n\nВашата воспоставка {{PLURAL:$4|го опфаќа следново руво|ги опфаќа следниве рува}}. Погледајте [https://www.mediawiki.org/wiki/Manual:Skin_configuration Прирачник: Поставување на рува] за да дознаете како да ги вклучите и како да го изберете основното.\n\n$2\n\n; Ако штотуку го имате воспоставено МедијаВики:\n: Веројатно сте го воспоставиле од git, или пак непосредно од изворниот код на некој друг начин. Ова е очекувано. Пробајте да воспоставите некои рува од [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's именикот на рува] вака:\n* Со преземање на [https://www.mediawiki.org/wiki/Download tarball-воспоставувачот], кој самиот содржи неколку рува и додатоци. Можете да ја прекопирате папката <code>skins/</code> од него.\n:* Преземање на tarball-и за рува од [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Користејќи го Git за преземање рува].\n: Ова не би требало да прави пречки на вашето git-складиште ако сте програмер на МедијаВики.\n\n; Ако штотуку го имате надградено МедијаВики:\n: МедијаВики 1.24 и поновите верзии повеќе не ги вклучуваат воспоставените рува автоматски (погл. [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Прирачник: Самооткривање на рува]). Можете да {{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>$wgDefaultSkin</code> како <code>$1</code>, не е достапно.\n\nНемате воспоставено ниедно руво.\n\n; Ако штотуку го имате воспоставено или надградено МедијаВики:\n: Веројатно сте го воспоставиле од git, или пак непосредно од изворниот код на некој друг начин. Ова е очекувано. МедијаВики 1.24 и поновите верзии немаат рува во главното складиште. Пробајте да воспоставите некои рува од [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's именикот на рува] вака:\n:* Со преземање на [https://www.mediawiki.org/wiki/Download tarball-воспоставувачот], кој самиот содржи неколку рува и додатоци. Можете да ја прекопирате папката <code dir=\"ltr\">skins/</code> од него.\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Користејќи го Git за преземање рува].\n: Ова не би требало да прави пречки на вашето git-складиште ако сте програмер на МедијаВики. Погледајте [https://www.mediawiki.org/wiki/Manual:Skin_configuration Прирачник: Поставување на рува] за да дознаете како да ги вклучите и како да го изберете основното.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (вклучено)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''исклучено''')",
        "mediastatistics": "Статистики за слики и снимки",
index 9c892db..8290fd0 100644 (file)
@@ -27,7 +27,8 @@
                        "Vssun",
                        "Ævar Arnfjörð Bjarmason <avarab@gmail.com>",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Viswaprabha"
                ]
        },
        "tog-underline": "കണ്ണികൾക്ക് അടിവരയിടുക:",
        "no-null-revision": "\"$1\" എന്ന താളിന് പുതിയ ശൂന്യമായ മാറ്റമുള്ള നാൾപ്പതിപ്പ് സൃഷ്ടിക്കാൻ കഴിഞ്ഞില്ല",
        "badtitle": "അസാധുവായ തലക്കെട്ട്",
        "badtitletext": "താങ്കൾ ആവശ്യപ്പെട്ട തലക്കെട്ടുള്ള ഒരു താൾ നിലവിലില്ല. ഇതു തെറ്റായി അന്തർഭാഷാ/അന്തർവിക്കി കണ്ണി ചെയ്യപ്പെട്ടതു മൂലമോ, തലക്കെട്ടിൽ ഉപയോഗിക്കരുതാത്ത അക്ഷരരൂപങ്ങൾ ഉപയോഗിച്ചതു മൂലമോ സംഭവിച്ചതായിരിക്കാം.",
+       "title-invalid-empty": "ആവശ്യപ്പെട്ട താളിന്റെ തലക്കെട്ട് ശൂന്യമാണ് അല്ലെങ്കിൽ ഒരു നാമമേഖലയുടെ പേര് മാത്രം ഉൾക്കൊള്ളുന്നതാണ്.",
+       "title-invalid-utf8": "ആവശ്യപ്പെട്ട താളിന്റെ തലക്കെട്ടിൽ അസാധുവായ യു.ടി.എഫ്.-8 ശ്രേണി ആണുള്ളത്.",
+       "title-invalid-interwiki": "ആവശ്യപ്പെട്ട താളിന്റെ തലക്കെട്ടിൽ ഒരു അന്തർവിക്കി കണ്ണി ഉണ്ട്, അങ്ങനെ ഉപയോഗിക്കാൻ പാടില്ലാത്തതാണ്.",
+       "title-invalid-talk-namespace": "ആവശ്യപ്പെട്ട താളിന്റെ തലക്കെട്ട് നിലവിലില്ലാത്ത ഒരു സംവാദത്താളിനെയാണ് സൂചിപ്പിക്കുന്നത്.",
+       "title-invalid-characters": "ആവശ്യപ്പെട്ട താളിന്റെ തലക്കെട്ടിൽ അസാധുവായ അക്ഷരങ്ങളുണ്ട്: \"$1\".",
+       "title-invalid-relative": "തലക്കെട്ടിന് ആപേക്ഷികമായ പഥമാണുള്ളത്. ഉപയോക്താവിന്റെ ബ്രൗസറിൽ നിന്ന് ശ്രമിക്കുമ്പോൾ മിക്കവാറും എത്തിച്ചേരില്ലാത്തതിനാൽ ആപേക്ഷിക താൾ തലക്കെട്ടുകൾ (./, ../) അസാധുവാണ്.",
+       "title-invalid-magic-tilde": "ആവശ്യപ്പെട്ട താൾ തലക്കെട്ടിൽ അസാധുവായ മാന്ത്രിക ടിൽഡേ പരമ്പര ഉൾപ്പെടുന്നു (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "ഈ തലക്കെട്ടിന്റെ നീളം കൂടുതലാണു്. UTF-8 എൻകോഡിങ്ങിൽ തലക്കെട്ടുകൾക്ക് $1 {{PLURAL:$1|ബൈറ്റിലധികം|ബൈറ്റുകളിലധികം}} നീളമുണ്ടാകാൻ പാടില്ല.",
+       "title-invalid-leading-colon": "ആവശ്യപ്പെട്ട താൾ തലക്കെട്ടിന്റെയാദ്യം അസാധുവായ അപൂർണ്ണവിരാമം ഉൾപ്പെടുന്നു.",
        "perfcached": "താഴെ കൊടുത്തിരിക്കുന്ന വിവരം ശേഖരിച്ചു വെച്ചിരിക്കുന്നതാണ്, അതുകൊണ്ട് ചിലപ്പോൾ പുതിയതായിരിക്കണമെന്നില്ല. പരമാവധി {{PLURAL:$1|ഒരു ഫലം|$1 ഫലങ്ങൾ}} ശേഖരിച്ചുവെച്ചിരിക്കുന്നവയിൽ ഉണ്ട്.",
        "perfcachedts": "താഴെയുള്ള വിവരങ്ങൾ ശേഖരിച്ച് വെച്ചവയിൽ പെടുന്നു, അവസാനം പുതുക്കിയത് $1-നു ആണ്‌. പരമാവധി {{PLURAL:$4|ഒരു ഫലം|$4 ഫലങ്ങൾ}} ശേഖരിച്ചുവെച്ചിരിക്കുന്നവയിൽ ഉണ്ട്.",
        "querypage-no-updates": "ഈ താളിന്റെ പുതുക്കൽ തൽക്കാലം നടക്കുന്നില്ല. ഇവിടുള്ള വിവരങ്ങൾ ഏറ്റവും പുതിയതാവണമെന്നില്ല.",
        "userrights-lookup-user": "ഉപയോക്തൃസംഘങ്ങളെ പരിപാലിക്കുക",
        "userrights-user-editname": "ഒരു ഉപയോക്തൃനാമം ടൈപ്പു ചെയ്യുക:",
        "editusergroup": "ഉപയോക്തൃസംഘങ്ങൾ തിരുത്തുക",
-       "editinguser": "'''[[User:$1|$1]]''' എന്ന ഉപയോക്താവിന്റെ ഉപയോക്തൃ അവകാശങ്ങൾ തിരുത്തുന്നു $2",
+       "editinguser": "{{GENDER:$1|user}} <strong>[[User:$1|$1]]</strong> $2 എന്ന ഉപയോക്താവിന്റെ ഉപയോക്തൃ അവകാശങ്ങൾ തിരുത്തുന്നു",
        "userrights-editusergroup": "ഉപയോക്തൃസമൂഹത്തിലെ അംഗത്വം തിരുത്തുക",
        "saveusergroups": "ഉപയോക്തൃസംഘങ്ങൾ സേവ് ചെയ്യുക",
        "userrights-groupsmember": "അംഗത്വമുള്ളത്:",
        "uploaddisabledtext": "പ്രമാണം അപ്‌ലോഡ് ചെയ്യുന്നതു സാദ്ധ്യമല്ലാതാക്കിയിരിക്കുന്നു.",
        "php-uploaddisabledtext": "പി.എച്ച്.പി.യിൽ പ്രമാണ അപ്‌‌ലോഡുകൾ സാദ്ധ്യമല്ലാതാക്കിയിരിക്കുന്നു.\nദയവായി file_uploads ക്രമീകരണങ്ങൾ പരിശോധിക്കുക.",
        "uploadscripted": "ഈ പ്രമാണത്തിൽ വെബ് ബ്രൗസർ തെറ്റായി വ്യാഖ്യാനിച്ചേക്കാവുന്ന എച്ച്.റ്റി.എം.എൽ. അല്ലെങ്കിൽ സ്ക്രിപ്റ്റ് കോഡ് ഉണ്ട്.",
+       "uploaded-script-svg": "അപ്‌ലോഡ് ചെയ്ത എസ്.വി.ജി. പ്രമാണത്തിൽ സ്ക്രിപ്റ്റ് ചെയ്യാവുന്ന ഭാഗമായ \"$1\" കണ്ടെത്തി.",
        "uploadscriptednamespace": "ഈ എസ്.വി.ജി. പ്രമാണത്തിൽ ഉപയോഗിക്കാൻ പാടില്ലാത്ത നാമമേഖലയായ \"$1\" ഉണ്ട്",
        "uploadinvalidxml": "അപ്‌ലോഡ് ചെയ്ത പ്രമാണത്തിലെ എക്സ്.എം.എൽ. പാഴ്സ് ചെയ്യാൻ കഴിയില്ല.",
        "uploadvirus": "പ്രമാണത്തിൽ വൈറസുണ്ട്! വിശദാംശങ്ങൾ: $1",
        "listfiles-delete": "മായ്ക്കുക",
        "listfiles-summary": "അപ്‌ലോഡ് ചെയ്തിട്ടുള്ള എല്ലാ പ്രമാണങ്ങളും ഈ പ്രത്യേക താളിൽ കാണാവുന്നതാണ്.",
        "listfiles_search_for": "മീഡിയ പ്രമാണം തിരയുക:",
+       "listfiles-userdoesnotexist": "ഉപയോക്തൃ അംഗത്വം \"$1\" എടുക്കപ്പെട്ടിട്ടില്ല.",
        "imgfile": "പ്രമാണം",
        "listfiles": "പ്രമാണങ്ങളുടെ പട്ടിക",
        "listfiles_thumb": "ലഘുചിത്രം",
        "unusedimages": "ഉപയോഗിക്കപ്പെടാത്ത പ്രമാണങ്ങൾ",
        "wantedcategories": "അവശ്യ വർഗ്ഗങ്ങൾ",
        "wantedpages": "അവശ്യ താളുകൾ",
-       "wantedpages-summary": "മറàµ\8dà´±àµ\81താളàµ\81à´\95ളിൽ à´¨à´¿à´¨àµ\8dà´¨àµ\8d à´\8fà´±àµ\8dറവàµ\81മധിà´\95à´\82 à´\95à´£àµ\8dണിà´\9aàµ\87ർതàµ\8dതിരിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨ à´¨à´¿à´²à´µà´¿à´²à´¿à´²àµ\8dലാതàµ\8dà´¤ à´¤à´¾à´³àµ\81à´\95à´³àµ\81à´\9fàµ\86 à´ªà´\9fàµ\8dà´\9fà´¿à´\95യാണിതàµ\8d, à´¤à´¿à´°à´¿à´\9aàµ\8dà´\9aàµ\81വിà´\9fà´²àµ\81à´\95ൾ à´®à´¾à´¤àµ\8dà´°à´\82 à´\95à´£àµ\8dണി à´\9aàµ\87ർതàµ\8dതിരിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dനവ à´\92ഴിവാà´\95àµ\8dà´\95ിയിരിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨àµ\81. à´¤à´¿à´°à´¿à´\9aàµ\8dà´\9aàµ\81വിà´\9fà´²àµ\81à´\95ൾ à´\95à´£àµ\8dണി à´\9aàµ\87ർതàµ\8dതിരിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨ à´¨à´¿à´²à´µà´¿à´²à´¿à´²àµ\8dലാതàµ\8dà´¤ à´¤à´¾à´³àµ\81à´\95à´³àµ\81à´\9fàµ\86 à´ªà´\9fàµ\8dà´\9fà´¿à´\95à´¯àµ\8dà´\95àµ\8dà´\95àµ\8d [[{{#special:BrokenRedirects}}]] à´\95ാണàµ\81à´\95.",
+       "wantedpages-summary": "തിരിà´\9aàµ\8dà´\9aàµ\81വിà´\9fà´²àµ\81à´\95ൾ à´\92à´´à´¿à´\95àµ\86, à´®à´±àµ\8dà´±àµ\81താളàµ\81à´\95ളിൽ à´¨à´¿à´¨àµ\8dà´¨àµ\8d à´\8fà´±àµ\8dറവàµ\81മധിà´\95à´\82 à´\95à´£àµ\8dണിà´\9aàµ\87ർതàµ\8dതിരിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dനതàµ\81à´\82 à´\8eà´¨àµ\8dനാൽ à´¨à´¿à´²à´µà´¿à´²à´¿à´²àµ\8dലാതàµ\8dതതàµ\81മായ à´¤à´¾à´³àµ\81à´\95à´³àµ\81à´\9fàµ\86 à´ªà´\9fàµ\8dà´\9fà´¿à´\95. (തിരിà´\9aàµ\8dà´\9aàµ\81വിà´\9fൽ à´\95à´£àµ\8dണിà´\95ൾ à´\9aàµ\87ർതàµ\8dതിà´\9fàµ\8dà´\9fàµ\81à´£àµ\8dà´\9fàµ\86à´\99àµ\8dà´\95à´¿à´²àµ\81à´\82  à´¨à´¿à´²à´µà´¿à´²à´¿à´²àµ\8dലാതàµ\8dà´¤ à´¤à´¾à´³àµ\81à´\95à´³àµ\81à´\9fàµ\86 à´ªà´\9fàµ\8dà´\9fà´¿à´\95à´¯àµ\8dà´\95àµ\8dà´\95àµ\8d [[{{#special:BrokenRedirects}}]] à´\95ാണàµ\81à´\95).",
        "wantedpages-badtitle": "ഫലങ്ങളുടെ ഗണത്തിൽ അസാധുവായ തലക്കെട്ട്: $1",
        "wantedfiles": "ആവശ്യമുള്ള പ്രമാണങ്ങൾ",
        "wantedfiletext-cat": "താഴെക്കൊടുത്തിരിക്കുന്ന പ്രമാണങ്ങൾ ഉപയോഗിച്ചിട്ടുണ്ടെങ്കിലും നിലവിലില്ല. ബാഹ്യ റെപ്പോസിറ്ററികളിൽ നിന്നുള്ള പ്രമാണങ്ങൾ നിലവിലുണ്ടെങ്കിലും പട്ടികയിൽ ഉൾപ്പെട്ടിട്ടുണ്ടാവാം. അത്തരത്തിൽ തെറ്റായി ഉൾപ്പെടുത്തിയിരിക്കുന്നവ <del>വെട്ടിക്കളയുക</del>. കൂടുതലായി, നിലവിലില്ലാത്ത പ്രമാണങ്ങൾ ഉൾപ്പെടുത്തിയിട്ടുള്ള താളുകൾ കാണാൻ [[:$1]] സന്ദർശിക്കുക.",
        "logempty": "പ്രവർത്തനരേഖയിൽ ബന്ധമുള്ളവ ഇല്ല.",
        "log-title-wildcard": "ഈ വാക്കിൽ തുടങ്ങുന്ന തിരച്ചിൽ ഫലങ്ങൾ",
        "showhideselectedlogentries": "തിരഞ്ഞെടുത്ത രേഖാ വിവരങ്ങൾ പ്രദർശിപ്പിക്കുക/മറയ്ക്കുക",
+       "log-edit-tags": "രേഖയിലെ തിരഞ്ഞെടുക്കപ്പെട്ട ഉൾപ്പെടുത്തലുകളുടെ ടാഗുകൾ തിരുത്തുക",
        "allpages": "എല്ലാ താളുകളും",
        "nextpage": "അടുത്ത താൾ ($1)",
        "prevpage": "മുൻപത്തെ താൾ ($1)",
        "import-interwiki-history": "ഈ താളിന്റെ എല്ലാ പൂർവ്വചരിത്രവും പകർത്തുക",
        "import-interwiki-templates": "എല്ലാ ഫലകങ്ങളും ഉൾപ്പെടുത്തുക",
        "import-interwiki-submit": "ഇറക്കുമതി",
+       "import-mapping-default": "സ്വതെയുള്ള സ്ഥാനങ്ങളിലേക്ക് ഇറക്കുമതി ചെയ്യുക",
+       "import-mapping-namespace": "ഒരു നാമമേഖലയിലേക്ക് ഇറക്കുമതി ചെയ്യുക:",
+       "import-mapping-subpage": "ഇനിക്കൊടുക്കുന്ന താളിന്റെ ഉപതാളുകളായി ഇറക്കുമതി ചെയ്യുക:",
        "import-upload-filename": "പ്രമാണത്തിന്റെ പേര്‌",
        "import-comment": "കുറിപ്പ്:",
        "importtext": "ദയവായി സ്രോതസ്സ് വിക്കിയിൽ നിന്ന് [[Special:Export|കയറ്റുമതി ഉപകരണം]] ഉപയോഗിച്ച് പ്രമാണം കയറ്റുമതി ചെയ്യുക.\nഅത് താങ്കളുടെ കമ്പ്യൂട്ടറിൽ ശേഖരിച്ച് ഇവിടെ അപ്‌‌ലോഡ് ചെയ്യുക.",
        "confirm-watch-top": "ഈ താൾ താങ്കൾ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിലേക്കു ചേർക്കട്ടെ?",
        "confirm-unwatch-button": "ശരി",
        "confirm-unwatch-top": "ഈ താൾ ഞാൻ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽനിന്നും നീക്കട്ടെ?",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← മുൻപത്തെ താൾ",
        "imgmultipagenext": "അടുത്ത താൾ →",
        "imgmultigo": "പോകൂ!",
        "tags-delete-explanation-initial": "\"$1\" എന്ന ടാഗ് ഡേറ്റാബേസിൽ നിന്നും താങ്കൾ മായ്ക്കാൻ പോകുകയണ്.",
        "tags-delete-explanation-in-use": "ഇപ്പോൾ നിലവിലുള്ള {{PLURAL:$2|$2 നാൾപ്പതിപ്പ് അല്ലെങ്കിൽ രേഖയിലെ ഉൾപ്പെടുത്തലിൽ|എല്ലാ $2 നാൾപ്പതിപ്പുകളിൽ ഒപ്പം/അല്ലെങ്കിൽ രേഖകളിലെ ഉൾപ്പെടുത്തലുക്കളിൽ}} നിന്ന് ഇത് നീക്കംചെയ്യപ്പെടുന്നതാണ്.",
        "tags-delete-explanation-warning": "ഈ പ്രവൃത്തി ഡേറ്റാബേസ് കാര്യനിർവ്വഹകർക്ക് കൂടി <strong>പിൻവലിക്കാനാവാത്തതും</strong> <strong>പിന്നീട് തിരുത്താനാവാത്തതും</strong> ആണ്. താങ്കൾക്ക് മായ്ക്കേണ്ട ടാഗ് ഇതാണെന്ന് ഉറപ്പ് വരുത്തുക.",
+       "tags-delete-explanation-active": "<strong>\"$1\" എന്ന ടാഗ് ഇപ്പോഴും സജീവമാണ്, അത് ഭാവിയിലും ചേർക്കപ്പെട്ടുകൊണ്ടിരിക്കും.</strong> ഇത് സംഭവിക്കാതിരിക്കണമെന്നുണ്ടെങ്കിൽ, ടാഗ് ബാധകമാക്കാൻ സജ്ജീകരിച്ചിട്ടുള്ള സ്ഥലങ്ങളിൽ ചെന്ന് അവിടെ അത് നിർജ്ജീവമാക്കേണ്ടതാണ്.",
        "tags-delete-reason": "കാരണം:",
        "tags-delete-submit": "പിൻവലിക്കാനാവാത്തവിധം ഈ ടാഗ് മായ്ക്കുക",
+       "tags-delete-not-allowed": "അനുബന്ധം വ്യക്തമായി അനുവദിക്കുന്നില്ലെങ്കിൽ, അനുബന്ധങ്ങൾ വഴി നിർവ്വചിക്കുന്ന ടാഗുകൾ മായ്ക്കാനാവുകയില്ല.",
        "tags-delete-not-found": "\"$1\" എന്ന ടാഗ് നിലവിലില്ല.",
+       "tags-delete-too-many-uses": "\"$1\" എന്ന ടാഗ് {{PLURAL:$2|ഒന്നിലധികം നാൾപ്പതിപ്പുകളിൽ|$2 എണ്ണത്തിലധികം നാൾപ്പതിപ്പുകളിൽ}} ഉപയോഗിക്കുന്നു, അതിനാൽ അത് മായ്ക്കാനാവില്ല.",
+       "tags-delete-warnings-after-delete": "\"$1\" എന്ന ടാഗ് വിജയകരമായി മായ്ച്ചിരിക്കുന്നു, പക്ഷേ ഇനിക്കൊടുക്കുന്ന {{PLURAL:$2|മുന്നറിയിപ്പ്|മുന്നറിയിപ്പുകൾ}} ഉണ്ടായി:",
        "tags-activate-title": "ടാഗ് സജ്ജമാക്കുക",
+       "tags-activate-question": "താങ്കൾ, \"$1\" എന്ന ടാഗ് പ്രവർത്തനക്ഷമമാക്കാൻ പോവുകയാണ്.",
        "tags-activate-reason": "കാരണം:",
+       "tags-activate-not-allowed": "\"$1\" എന്ന ടാഗ് സജ്ജമാക്കാൻ കഴിയില്ല.",
        "tags-activate-not-found": "\"$1\" എന്ന ടാഗ് നിലവിലില്ല.",
        "tags-activate-submit": "സജ്ജമാക്കുക",
        "tags-deactivate-title": "ടാഗ് പ്രവർത്തനരഹിതമാക്കുക",
        "tags-deactivate-reason": "കാരണം:",
        "tags-deactivate-not-allowed": "\"$1\" എന്ന ടാഗ് പ്രവർത്തനരഹിതമാക്കാൻ സാധിക്കുകയില്ല.",
        "tags-deactivate-submit": "പ്രവർത്തനരഹിതമാക്കുക",
+       "tags-apply-no-permission": "താങ്കളുടെ മാറ്റങ്ങളോടൊപ്പം ടാഗുകളിലും മാറ്റം വരുത്താനുള്ള അനുമതി താങ്കൾക്കില്ല.",
+       "tags-apply-not-allowed-one": "യാന്ത്രികമായിട്ടല്ലാതെ \"$1\" എന്ന ടാഗ് ബാധകമാക്കാൻ അനുവാദമില്ല.",
+       "tags-apply-not-allowed-multi": "താഴെക്കൊടുത്തിരിക്കുന്ന {{PLURAL:$2|ടാഗ്|ടാഗുകൾ}} യാന്ത്രികമായിട്ടല്ലാതെ ബാധകമാക്കാൻ അനുവാദമില്ല: $1",
+       "tags-update-no-permission": "ഒറ്റയൊറ്റ നാൾപ്പതിപ്പുകളിലോ രേഖകളിലെ ഉൾപ്പെടുത്തലുകളിലോ ടാഗുകൾ ചേർക്കാനും നീക്കംചെയ്യാനും താങ്കൾക്ക് അനുവാദമില്ല.",
+       "tags-update-add-not-allowed-one": "യാന്ത്രികമായിട്ടല്ലാതെ \"$1\" എന്ന ടാഗ് ചേർക്കാൻ അനുവാദമില്ല.",
+       "tags-update-add-not-allowed-multi": "താഴെക്കൊടുക്കുന്ന {{PLURAL:$2|ടാഗ്|ടാഗുകൾ}} യാന്ത്രികമായിട്ടല്ലാതെ ചേർക്കാൻ അനുവദിക്കുന്നില്ല: $1",
+       "tags-update-remove-not-allowed-one": "\"$1\" എന്ന ടാഗ് നീക്കംചെയ്യാൻ അനുവദിക്കുന്നില്ല.",
+       "tags-update-remove-not-allowed-multi": "താഴെക്കൊടുക്കുന്ന {{PLURAL:$2|ടാഗ്|ടാഗുകൾ}} യാന്ത്രികമായിട്ടല്ലാതെ നീക്കംചെയ്യാൻ അനുവദിക്കുന്നില്ല: $1",
        "tags-edit-title": "ടാഗുകൾ തിരുത്തുക",
        "tags-edit-manage-link": "ടാഗുകൾ കൈകാര്യം ചെയ്യുക",
+       "tags-edit-revision-selected": "[[:$2]] എന്ന താളിന്റെ {{PLURAL:$1|തിരഞ്ഞെടുത്ത നാൾപ്പതിപ്പ്|തിരഞ്ഞെടുത്ത നാൾപ്പതിപ്പുകൾ}}:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|തിരഞ്ഞെടുത്ത രേഖയിലുള്ളത്|തിരഞ്ഞെടുത്ത രേഖയിലുള്ളവ}}:",
+       "tags-edit-revision-legend": "{{PLURAL:$1|ഈ നാൾപ്പതിപ്പിൽ|എല്ലാ $1 നാൾപ്പതിപ്പുകളിലും}} ടാഗുകൾ ചേർക്കുക അല്ലെങ്കിൽ നീക്കംചെയ്യുക",
+       "tags-edit-logentry-legend": "{{PLURAL:$1|രേഖയിലെ ഈ ഉൾപ്പെടുത്തലിൽ|രേഖയിലെ എല്ലാ $1 ഉൾപ്പെടുത്തലുകളിലും }} ടാഗുകൾ കൂട്ടിച്ചേർക്കുക അല്ലെങ്കിൽ നീക്കംചെയ്യുക",
        "tags-edit-existing-tags": "നിലവിലുള്ള ടാഗുകൾ:",
        "tags-edit-existing-tags-none": "''ഒന്നുമില്ല''",
        "tags-edit-new-tags": "പുതിയ ടാഗുകൾ:",
        "tags-edit-remove": "ഈ ടാഗുകൾ നീക്കംചെയ്യുക:",
        "tags-edit-remove-all-tags": "(എല്ലാ ടാഗുകളും നീക്കംചെയ്യുക)",
        "tags-edit-chosen-placeholder": "ടാഗുകൾ തിരഞ്ഞെടുക്കുക",
+       "tags-edit-chosen-no-results": "ഒത്തുപോകുന്ന ടാഗുകളൊന്നും കണ്ടെത്താനായില്ല",
        "tags-edit-reason": "കാരണം:",
+       "tags-edit-revision-submit": "{{PLURAL:$1|ഈ നാൾപ്പതിപ്പിൽ|$1 നാൾപ്പതിപ്പുകളിൽ}} മാറ്റങ്ങൾ ബാധകമാക്കുക",
+       "tags-edit-logentry-submit": "{{PLURAL:$1|രേഖയിലെ ഈ ഉൾപ്പെടുത്തലിൽ|രേഖയിലെ $1 ഉൾപ്പെടുത്തലുകളിൽ}} മാറ്റങ്ങൾ ബാധകമാക്കുക",
+       "tags-edit-success": "മാറ്റങ്ങൾ വിജയകരമായി ബാധകമാക്കിയിരിക്കുന്നു.",
+       "tags-edit-failure": "മാറ്റങ്ങൾ ബാധകമാക്കാൻ കഴിഞ്ഞില്ല:\n$1",
+       "tags-edit-nooldid-title": "അസാധുവായ ലക്ഷ്യ നാൾപ്പതിപ്പ്",
+       "tags-edit-nooldid-text": "താങ്കൾ ഒന്നെങ്കിൽ ഈ  പ്രവൃത്തി ചെയ്യേണ്ട ലക്ഷ്യ നാൾപ്പതിപ്പ് വ്യക്തമാക്കിയില്ല അല്ലെങ്കിൽ ആ നാൾപ്പതിപ്പ് നിലവിലില്ല.",
+       "tags-edit-none-selected": "കൂട്ടിച്ചേർക്കാൻ അല്ലെങ്കിൽ നീക്കംചെയ്യാൻ കുറഞ്ഞത് ഒരു ടാഗ് എങ്കിലും തിരഞ്ഞെടുക്കുക.",
        "comparepages": "താളുകൾ താരതമ്യപ്പെടുത്തുക",
        "compare-page1": "താൾ 1",
        "compare-page2": "താൾ 2",
        "logentry-block-reblock": "$5 $6 കാലത്തേക്ക് {{GENDER:$4|$3}} എന്ന അംഗത്വത്തിന്റെ തടയൽ സജ്ജീകരണങ്ങൾ $1 {{GENDER:$2|മാറ്റിയിരിക്കുന്നു}}",
        "logentry-suppress-block": "$5 $6 കാലത്തേക്ക് {{GENDER:$4|$3}} എന്ന അംഗത്വത്തെ $1 {{GENDER:$2|തടഞ്ഞിരിക്കുന്നു}}",
        "logentry-suppress-reblock": "$5 $6 കാലത്തേക്ക് {{GENDER:$4|$3}} എന്ന അംഗത്വത്തിന്റെ തടയൽ സജ്ജീകരണങ്ങൾ $1 {{GENDER:$2|മാറ്റിയിരിക്കുന്നു}}",
+       "logentry-import-upload": "പ്രമാണ അപ്‌ലോഡ് വഴി $3 എന്ന താൾ $1 {{GENDER:$2|ഇറക്കുമതി ചെയ്തിരിക്കുന്നു}}",
+       "logentry-import-interwiki": "മറ്റൊരു വിക്കിയിൽ നിന്നും $3 എന്ന താൾ $1 {{GENDER:$2|ഇറക്കുമതി ചെയ്തിരിക്കുന്നു}}",
        "logentry-merge-merge": "$3 എന്ന താൾ $4 എന്നതിലേക്ക് ($5 നാൾപ്പതിപ്പ് വരെ), $1 {{GENDER:$2|ലയിപ്പിച്ചു}}",
        "logentry-move-move": "$1 എന്ന ഉപയോക്താവ് $3 എന്ന താൾ $4 എന്നാക്കി {{GENDER:$2|മാറ്റിയിരിക്കുന്നു}}",
        "logentry-move-move-noredirect": "$3 എന്ന താൾ $4 എന്ന തലക്കെട്ടിലേയ്ക്ക് തിരിച്ചുവിടലില്ലാതെ $1 {{GENDER:$2|മാറ്റി}}",
        "logentry-upload-upload": "$1 $3 {{GENDER:$2|അപ്‌ലോഡ് ചെയ്തു}}",
        "logentry-upload-overwrite": "$1 ഒരു പുതിയ പതിപ്പ് $3 {{GENDER:$2|അപ്‌ലോഡ് ചെയ്തു}}",
        "logentry-upload-revert": "$1 $3 {{GENDER:$2|അപ്‌ലോഡ് ചെയ്തു}}",
+       "log-name-managetags": "ടാഗ് കൈകാര്യ രേഖ",
+       "log-description-managetags": "ഈ താളിൽ [[Special:Tags|ടാഗുകളുമായി]] ബന്ധപ്പെട്ട പ്രവൃത്തികളുടെ കാര്യനിർവഹണം ഉൾപ്പെടുത്തിയിരിക്കുന്നു. രേഖയിൽ ഒരു കാര്യനിർവ്വാഹക(ൻ) നടത്തിയ പ്രവൃത്തികൾ മാത്രമേ ഉൾപ്പെടുന്നുള്ളു; വിക്കി സോഫ്റ്റ്‌വേർ സൃഷ്ടിച്ചതോ നീക്കംചെയ്തതോ ആയ ടാഗുകൾ ഈ രേഖയിൽ ശേഖരിക്കുന്നില്ല.",
+       "logentry-managetags-create": "\"$4\" എന്ന ടാഗ് $1 {{GENDER:$2|സൃഷ്ടിച്ചിരിക്കുന്നു}}",
+       "logentry-managetags-delete": "\"$4\" എന്ന ടാഗ് $1 {{GENDER:$2|മായ്ച്ചിരിക്കുന്നു}} ({{PLURAL:$5|ഒരു നാൾപ്പതിപ്പിൽ അല്ലെങ്കിൽ രേഖയിലെ ഉൾപ്പെടുത്തലിൽ നിന്ന്|$5 നാൾപ്പതിപ്പുകളിൽ ഒപ്പം / അഥവാ രേഖയിലെ ഉൾപ്പെടുത്തലുകളിൽ നിന്ന്}} ഒഴിവാക്കിയിരിക്കുന്നു)",
+       "logentry-managetags-activate": "\"$4\" എന്ന ടാഗ് $1, ഉപയോക്താക്കളുടേയും യന്ത്രങ്ങളുടേയും ഉപയോഗത്തിനായി {{GENDER:$2|സജ്ജമാക്കിയിരിക്കുന്നു}}",
+       "logentry-managetags-deactivate": "\"$4\" എന്ന ടാഗ് $1, ഉപയോക്താക്കളുടേയും യന്ത്രങ്ങളുടേയും ഉപയോഗത്തിൽ നിന്ന് {{GENDER:$2|പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നു}}",
+       "log-name-tag": "ടാഗ് രേഖ",
+       "log-description-tag": "ഒറ്റയൊറ്റ നാൾപ്പതിപ്പുകളിലോ രേഖകളിലെ ഉൾപ്പെടുത്തലുകളിലോ ഉപയോക്താക്കൾ [[Special:Tags|ടാഗുകൾ]] എപ്പോഴൊക്കെ ചേർക്കുകയോ നീക്കംചെയ്യുകയോ ചെയ്തെന്ന് ഈ താളിൽ കാണാൻ കഴിയും. തിരുത്തൽ, മായ്ക്കൽ അല്ലെങ്കിൽ അതുപോലുള്ള മറ്റു പ്രവൃത്തികളാൽ ടാഗ് ചെയ്യപ്പെടുകയാണെങ്കിൽ അതിവിടെ കാണുകയില്ല.",
+       "logentry-tag-update-add-revision": "$3 എന്ന താളിന്റെ $4 എന്ന നാൾപ്പതിപ്പിൽ, $6 എന്ന {{PLURAL:$7|ടാഗ്|ടാഗുകൾ}}, $1 {{GENDER:$2|ചേർത്തു}}",
+       "logentry-tag-update-add-logentry": "$3 എന്ന താളിന്റെ $5 എന്ന രേഖയിലെ ഉൾപ്പെടുത്തലിൽ, $6 എന്ന {{PLURAL:$7|ടാഗ്|ടാഗുകൾ}}, $1 {{GENDER:$2|ചേർത്തു}}",
+       "logentry-tag-update-remove-revision": "$3 എന്ന താളിന്റെ $4 എന്ന നാൾപ്പതിപ്പിൽ, $8 എന്ന {{PLURAL:$9|ടാഗ്|ടാഗുകൾ}}, $1 {{GENDER:$2|നീക്കംചെയ്തു}}",
+       "logentry-tag-update-remove-logentry": "$3 എന്ന താളിന്റെ $5 എന്ന രേഖയിലെ ഉൾപ്പെടുത്തലിൽ, $8 എന്ന {{PLURAL:$9|ടാഗ്|ടാഗുകൾ}}, $1 {{GENDER:$2|നീക്കംചെയ്തു}}",
+       "logentry-tag-update-revision": "$3 എന്ന താളിന്റെ $4 എന്ന നാൾപ്പതിപ്പിൽ ടാഗുകൾ $1 {{GENDER:$2|പുതുക്കി}} ($6 {{PLURAL:$7|ചേർത്തു}}; $8 {{PLURAL:$9|നീക്കംചെയ്തു}})",
+       "logentry-tag-update-logentry": "$3 എന്ന താളിന്റെ $5 എന്ന രേഖയിലെ ഉൾപ്പെടുത്തലിൽ ടാഗുകൾ $1 {{GENDER:$2|പുതുക്കി}} ($6 {{PLURAL:$7|ചേർത്തു}}; $8 {{PLURAL:$9|നീക്കംചെയ്തു}})",
        "rightsnone": "(ഒന്നുമില്ല)",
        "revdelete-summary": "തിരുത്തലിന്റെ ചുരുക്കം",
        "feedback-adding": "താങ്കളുടെ അഭിപ്രായങ്ങൾ താളിലേയ്ക്ക് ചേർക്കുന്നു...",
        "feedback-error1": "പിഴവ്: എ.പി.ഐ.യിൽ നിന്നും തിരിച്ചറിയാനാകാത്ത ഫലം",
        "feedback-error2": "പിഴവ്: തിരുത്തൽ പരാജയപ്പെട്ടു",
        "feedback-error3": "പിഴവ്: എ.പി.ഐ.യിൽ നിന്നും യാതൊരു പ്രതികരണവുമില്ല",
+       "feedback-error4": "പിഴവ്: നൽകിയ പ്രതികരണത്തിന്റെ തലക്കെട്ട് പ്രസിദ്ധീകരിക്കാൻ കഴിയില്ല",
        "feedback-message": "സന്ദേശം:",
        "feedback-subject": "വിഷയം:",
        "feedback-submit": "സമർപ്പിക്കുക",
        "expand_templates_generate_xml": "എക്സ്.എം.എൽ. പാഴ്‌സർ ട്രീ പ്രദർശിപ്പിക്കുക",
        "expand_templates_generate_rawhtml": "അസംസ്കൃത എച്ച്.റ്റി.എം.എൽ. പ്രദർശിപ്പിക്കുക",
        "expand_templates_preview": "എങ്ങനെയുണ്ടെന്നു കാണുക",
-       "expand_templates_preview_fail_html": "<em>{{SITENAME}} à´¸à´\82à´°à´\82à´­à´¤àµ\8dതിൽ à´\85à´¸à´\82à´¸àµ\8dà´\95àµ\83à´¤ à´\8eà´\9aàµ\8dà´\9aàµ\8d.à´±àµ\8dറി.à´\8eà´\82.à´\8eൽ à´¸à´\9càµ\8dà´\9cമാà´\95àµ\8dà´\95ിയിരിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dനതിനാൽ, à´¸àµ\86ഷൻ à´µà´¿à´µà´°à´\99àµ\8dà´\99ൾ à´¨à´·àµ\8dà´\9fà´ªàµ\8dà´ªàµ\86à´\9fàµ\8dà´\9fà´¿à´°à´¿à´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨àµ\81, ജാവാസ്ക്രിപ്റ്റ് ആക്രമണങ്ങൾക്കെതിരെയുള്ള മുൻകരുതൽ എന്ന നിലയിൽ എങ്ങനെയുണ്ടെന്ന് കാണൽ മറച്ചിരിക്കുകയാണ്.</em>\n\n<strong>ഇത് എങ്ങനെയുണ്ടെന്ന് കാണാനുള്ള യഥാർത്ഥശ്രമമാണെങ്കിൽ വീണ്ടും ശ്രമിക്കുക.</strong>\nഇപ്പോഴും പ്രവർത്തിക്കുന്നില്ലെങ്കിൽ, [[Special:UserLogout|പുറത്ത് കടന്ന്]] വീണ്ടും പ്രവേശിച്ച ശേഷം പരീക്ഷിക്കുക.",
-       "expand_templates_preview_fail_html_anon": "<em>{{SITENAME}} à´¸à´\82à´°à´\82à´­à´¤àµ\8dതിൽ à´\85à´¸à´\82à´¸àµ\8dà´\95àµ\83à´¤ à´\8eà´\9aàµ\8dà´\9aàµ\8d.à´±àµ\8dറി.à´\8eà´\82.à´\8eൽ à´¸à´\9càµ\8dà´\9cമാà´\95àµ\8dà´\95ിയിരിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dനതിനാൽ, à´¸àµ\86ഷൻ à´µà´¿à´µà´°à´\99àµ\8dà´\99ൾ à´¨à´·àµ\8dà´\9fà´ªàµ\8dà´ªàµ\86à´\9fàµ\8dà´\9fà´¿à´°à´¿à´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨àµ\81, ജാവാസ്ക്രിപ്റ്റ് ആക്രമണങ്ങൾക്കെതിരെയുള്ള മുൻകരുതൽ എന്ന നിലയിൽ എങ്ങനെയുണ്ടെന്ന് കാണൽ മറച്ചിരിക്കുകയാണ്.</em>\n\n<strong>ഇത് എങ്ങനെയുണ്ടെന്ന് കാണാനുള്ള യഥാർത്ഥശ്രമമാണെങ്കിൽ [[Special:UserLogin|പ്രവേശിച്ച ശേഷം]] വീണ്ടും ശ്രമിക്കുക.</strong>",
+       "expand_templates_preview_fail_html": "<em>{{SITENAME}} à´¸à´\82à´°à´\82à´­à´¤àµ\8dതിൽ à´\85à´¸à´\82à´¸àµ\8dà´\95àµ\83à´¤ à´\8eà´\9aàµ\8dà´\9aàµ\8d.à´±àµ\8dറി.à´\8eà´\82.à´\8eൽ à´¸à´\9càµ\8dà´\9cമാà´\95àµ\8dà´\95ിയിരിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dനതിനാലàµ\81à´\82, à´¸àµ\86ഷൻ à´µà´¿à´µà´°à´\99àµ\8dà´\99ൾ à´¨à´·àµ\8dà´\9fà´ªàµ\8dà´ªàµ\86à´\9fàµ\8dà´\9fà´¿à´°à´¿à´\95àµ\8dà´\95àµ\81à´¨àµ\8dനതിനാലàµ\81à´\82, ജാവാസ്ക്രിപ്റ്റ് ആക്രമണങ്ങൾക്കെതിരെയുള്ള മുൻകരുതൽ എന്ന നിലയിൽ എങ്ങനെയുണ്ടെന്ന് കാണൽ മറച്ചിരിക്കുകയാണ്.</em>\n\n<strong>ഇത് എങ്ങനെയുണ്ടെന്ന് കാണാനുള്ള യഥാർത്ഥശ്രമമാണെങ്കിൽ വീണ്ടും ശ്രമിക്കുക.</strong>\nഇപ്പോഴും പ്രവർത്തിക്കുന്നില്ലെങ്കിൽ, [[Special:UserLogout|പുറത്ത് കടന്ന്]] വീണ്ടും പ്രവേശിച്ച ശേഷം പരീക്ഷിക്കുക.",
+       "expand_templates_preview_fail_html_anon": "<em>{{SITENAME}} à´¸à´\82à´°à´\82à´­à´¤àµ\8dതിൽ à´\85à´¸à´\82à´¸àµ\8dà´\95àµ\83à´¤ à´\8eà´\9aàµ\8dà´\9aàµ\8d.à´±àµ\8dറി.à´\8eà´\82.à´\8eൽ à´¸à´\9càµ\8dà´\9cമാà´\95àµ\8dà´\95ിയിരിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dനതിനാലàµ\81à´\82, à´¸àµ\86ഷൻ à´µà´¿à´µà´°à´\99àµ\8dà´\99ൾ à´¨à´·àµ\8dà´\9fà´ªàµ\8dà´ªàµ\86à´\9fàµ\8dà´\9fà´¿à´°à´¿à´\95àµ\8dà´\95àµ\81à´¨àµ\8dനതിനാലàµ\81à´\82, ജാവാസ്ക്രിപ്റ്റ് ആക്രമണങ്ങൾക്കെതിരെയുള്ള മുൻകരുതൽ എന്ന നിലയിൽ എങ്ങനെയുണ്ടെന്ന് കാണൽ മറച്ചിരിക്കുകയാണ്.</em>\n\n<strong>ഇത് എങ്ങനെയുണ്ടെന്ന് കാണാനുള്ള യഥാർത്ഥശ്രമമാണെങ്കിൽ [[Special:UserLogin|പ്രവേശിച്ച ശേഷം]] വീണ്ടും ശ്രമിക്കുക.</strong>",
        "pagelanguage": "താളിന്റെ ഭാഷാ തിരഞ്ഞെടുപ്പ് സൗകര്യം",
        "pagelang-name": "താൾ",
        "pagelang-language": "ഭാഷ",
        "log-name-pagelang": "ഭാഷ മാറ്റലിന്റെ രേഖ",
        "log-description-pagelang": "താളുകളുടെ ഭാഷകൾ മാറ്റിയതിന്റെ രേഖകൾ ഇവിടെക്കാണാം.",
        "logentry-pagelang-pagelang": "$3 എന്ന താളിന്റെ ഭാഷയായിരുന്ന $4, $1 $5 ആയി {{GENDER:$2|മാറ്റി}}.",
-       "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: ഗിറ്റിൽ നിന്ന് അല്ലെങ്കിൽ മറ്റെങ്കിലും മാർഗ്ഗം ഉപയോഗിച്ച് സോഴ്സ് കോഡ് നേരിട്ട് ഉപയോഗിക്കുകയായിരിന്നെങ്കിൽ ഇത് സംഭവിച്ചേക്കാം. [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's ദൃശ്യരൂപ ഡയറക്ടറിയിൽ നിന്ന്], ഇനിക്കൊടുക്കുന്ന മാർഗ്ഗങ്ങൾ ഉപയോഗിച്ച് ഏതാനം ദൃശ്യരൂപങ്ങൾ ഇൻസ്റ്റോൾ ചെയ്യാൻ നോക്കുക:\n:* [https://www.mediawiki.org/wiki/Download ടാർബോൾ ഇൻസ്റ്റോളർ] ഡൗൺലോഡ് ചെയ്യുക, അതിൽ നിരവധി ദൃശ്യരൂപങ്ങളും അനുബന്ധങ്ങളും ഉൾപ്പെടുത്തിയിരിക്കുന്നു. അതിൽ നിന്നും താങ്കൾക്ക് <code>skins/</code> ഡയറക്ടറി പകർത്താവുന്നതാണ്.\n:* ഓരോരോ ദൃശ്യരൂപങ്ങളും ടാർബോളുകളായി ഒറ്റയ്ക്കൊറ്റയ്ക്കും  [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org സംരംഭത്തിൽ] നിന്നും ഡൗൺലോഡ് ചെയ്യാവുന്നതാണ്.\n:* താങ്കളുടെ മീഡിയവിക്കി ഇൻസ്റ്റലേഷന്റെ <code dir=\"ltr\">skins/</code> ഡയറക്ടറിയിലേക്ക് ഗിറ്റ് ഉപയോഗിച്ച് <code>mediawiki/skins/*</code> റെപ്പോസിറ്ററികളിലൊന്ന് ക്ലോൺ ചെയ്യുക.\n: താങ്കളൊരു മീഡിയവിക്കി ഡവലപ്പറാണെങ്കിൽ ഇത് താങ്കളുടെ ഗിറ്റ് ഡെപ്പോസിറ്ററിയെ ബാധിക്കുന്നതല്ല.\n\n; മീഡിയവിക്കി താങ്കൾ അപ്ഗ്രേഡ് ചെയ്തതേ ഉള്ളുവെങ്കിൽ:\n: മീഡിയവിക്കി 1.24 ഒപ്പം അതിനു ശേഷമുള്ളവയും ഇൻസ്റ്റോൾ ചെയ്തിട്ടുള്ള ദൃശ്യരൂപങ്ങൾ സ്വതേ സജ്ജമാക്കുന്നില്ല ([https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery ദൃശ്യരൂപം ഓട്ടോഡിസ്കവറി സഹായം] കാണുക). ഇൻസ്റ്റോൾ ചെയ്തിട്ടുള്ള ദൃശ്യരൂപങ്ങൾ സജ്ജമാക്കുന്നതിനായി ഇനിക്കൊടുക്കുന്ന വരികൾ <code>LocalSettings.php</code> എന്നതിലോട്ട് പകർത്തുക:\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: ഗിറ്റിൽ നിന്ന് അല്ലെങ്കിൽ മറ്റെങ്കിലും മാർഗ്ഗം ഉപയോഗിച്ച് സോഴ്സ് കോഡ് നേരിട്ട് ഉപയോഗിക്കുകയായിരിന്നെങ്കിൽ ഇത് സംഭവിച്ചേക്കാം. [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's ദൃശ്യരൂപ ഡയറക്ടറിയിൽ നിന്ന്], ഇനിക്കൊടുക്കുന്ന മാർഗ്ഗങ്ങൾ ഉപയോഗിച്ച് ഏതാനം ദൃശ്യരൂപങ്ങൾ ഇൻസ്റ്റോൾ ചെയ്യാൻ നോക്കുക:\n:* [https://www.mediawiki.org/wiki/Download ടാർബോൾ ഇൻസ്റ്റോളർ] ഡൗൺലോഡ് ചെയ്യുക, അതിൽ നിരവധി ദൃശ്യരൂപങ്ങളും അനുബന്ധങ്ങളും ഉൾപ്പെടുത്തിയിരിക്കുന്നു. അതിൽ നിന്നും താങ്കൾക്ക് <code>skins/</code> ഡയറക്ടറി പകർത്താവുന്നതാണ്.\n:* ഓരോരോ ദൃശ്യരൂപങ്ങളും ടാർബോളുകളായി ഒറ്റയ്ക്കൊറ്റയ്ക്കും  [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org സംരംഭത്തിൽ] നിന്നും ഡൗൺലോഡ് ചെയ്യാവുന്നതാണ്.\n:* താങ്കളുടെ മീഡിയവിക്കി ഇൻസ്റ്റലേഷന്റെ <code dir=\"ltr\">skins/</code> ഡയറക്ടറിയിലേക്ക് ഗിറ്റ് ഉപയോഗിച്ച് <code>mediawiki/skins/*</code> റെപ്പോസിറ്ററികളിലൊന്ന് ക്ലോൺ ചെയ്യുക.\n: താങ്കളൊരു മീഡിയവിക്കി ഡവലപ്പറാണെങ്കിൽ ഇത് താങ്കളുടെ ഗിറ്റ് ഡെപ്പോസിറ്ററിയെ ബാധിക്കുന്നതല്ല. ദൃശ്യരൂപങ്ങൾ എങ്ങനെ ക്രമീകരിക്കാം എന്നും സ്വതേ വേണ്ടത് എങ്ങനെ സജ്ജമാക്കാം എന്നും [https://www.mediawiki.org/wiki/Manual:Skin_configuration ദൃശ്യരൂപം സജ്ജമാക്കൽ സഹായിയിൽ] കാണുക.",
+       "default-skin-not-found": "അയ്യോ! <code dir=\"ltr\"> $wgDefaultSkin</code> നിർവചിക്കപ്പെട്ടതുപ്രകാരമുള്ള താങ്കളുടെ വിക്കിയുടെ സ്വതേയുള്ള ദൃശ്യരൂപമായ <code>$1</code>, ലഭ്യമല്ല.\n\nതാങ്കളുടെ ഇൻസ്റ്റലേഷനിൽ താഴെക്കൊടുക്കുന്ന {{PLURAL:$4|ദൃശ്യരൂപം|ദൃശ്യരൂപങ്ങൾ}} ഉണ്ടാകേണ്ടതാണ്. അവ എങ്ങനെ ക്രമീകരിക്കാം എന്നും സ്വതേ വേണ്ടത് എങ്ങനെ സജ്ജമാക്കാം എന്നും [https://www.mediawiki.org/wiki/Manual:Skin_configuration ദൃശ്യരൂപം സജ്ജമാക്കൽ സഹായിയിൽ] കാണുക.\n\n$2\n\n; താങ്കൾ മീഡിയവിക്കി ഇൻസ്റ്റോൾ ചെയ്തതേ ഉള്ളുവെങ്കിൽ:\n: ഗിറ്റിൽ നിന്ന് അല്ലെങ്കിൽ മറ്റെങ്കിലും മാർഗ്ഗം ഉപയോഗിച്ച് സോഴ്സ് കോഡ് നേരിട്ട് ഉപയോഗിക്കുകയായിരിന്നെങ്കിൽ ഇത് സംഭവിച്ചേക്കാം. [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's ദൃശ്യരൂപ ഡയറക്ടറിയിൽ നിന്ന്], ഇനിക്കൊടുക്കുന്ന മാർഗ്ഗങ്ങൾ ഉപയോഗിച്ച് ഏതാനം ദൃശ്യരൂപങ്ങൾ ഇൻസ്റ്റോൾ ചെയ്യാൻ നോക്കുക:\n:* [https://www.mediawiki.org/wiki/Download ടാർബോൾ ഇൻസ്റ്റോളർ] ഡൗൺലോഡ് ചെയ്യുക, അതിൽ നിരവധി ദൃശ്യരൂപങ്ങളും അനുബന്ധങ്ങളും ഉൾപ്പെടുത്തിയിരിക്കുന്നു. അതിൽ നിന്നും താങ്കൾക്ക് <code>skins/</code> ഡയറക്ടറി പകർത്താവുന്നതാണ്.\n:* ഓരോരോ ദൃശ്യരൂപങ്ങളും ടാർബോളുകളായി ഒറ്റയ്ക്കൊറ്റയ്ക്കും  [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org സംരംഭത്തിൽ] നിന്നും ഡൗൺലോഡ് ചെയ്യാവുന്നതാണ്.\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins ഗിറ്റ് ഉപയോഗിച്ച് ദൃശ്യരൂപങ്ങൾ ഡൗൺലോഡ് ചെയ്യൽ].\n: താങ്കളൊരു മീഡിയവിക്കി ഡവലപ്പറാണെങ്കിൽ ഇത് താങ്കളുടെ ഗിറ്റ് ഡെപ്പോസിറ്ററിയെ ബാധിക്കുന്നതല്ല.\n\n; മീഡിയവിക്കി താങ്കൾ അപ്ഗ്രേഡ് ചെയ്തതേ ഉള്ളുവെങ്കിൽ:\n: മീഡിയവിക്കി 1.24 ഒപ്പം അതിനു ശേഷമുള്ളവയും ഇൻസ്റ്റോൾ ചെയ്തിട്ടുള്ള ദൃശ്യരൂപങ്ങൾ സ്വതേ സജ്ജമാക്കുന്നില്ല ([https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery ദൃശ്യരൂപം ഓട്ടോഡിസ്കവറി സഹായം] കാണുക). ഇൻസ്റ്റോൾ ചെയ്ത {{PLURAL:$5|ദൃശ്യരൂപം|ദൃശ്യരൂപങ്ങൾ}} {{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: ഗിറ്റിൽ നിന്ന് അല്ലെങ്കിൽ മറ്റെങ്കിലും മാർഗ്ഗം ഉപയോഗിച്ച് സോഴ്സ് കോഡ് നേരിട്ട് ഉപയോഗിക്കുകയായിരിന്നെങ്കിൽ ഇത് സംഭവിച്ചേക്കാം. [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's ദൃശ്യരൂപ ഡയറക്ടറിയിൽ നിന്ന്], ഇനിക്കൊടുക്കുന്ന മാർഗ്ഗങ്ങൾ ഉപയോഗിച്ച് ഏതാനം ദൃശ്യരൂപങ്ങൾ ഇൻസ്റ്റോൾ ചെയ്യാൻ നോക്കുക:\n:* [https://www.mediawiki.org/wiki/Download ടാർബോൾ ഇൻസ്റ്റോളർ] ഡൗൺലോഡ് ചെയ്യുക, അതിൽ നിരവധി ദൃശ്യരൂപങ്ങളും അനുബന്ധങ്ങളും ഉൾപ്പെടുത്തിയിരിക്കുന്നു. അതിൽ നിന്നും താങ്കൾക്ക് <code>skins/</code> ഡയറക്ടറി പകർത്താവുന്നതാണ്.\n:* ഓരോരോ ദൃശ്യരൂപങ്ങളും ടാർബോളുകളായി ഒറ്റയ്ക്കൊറ്റയ്ക്കും  [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org സംരംഭത്തിൽ] നിന്നും ഡൗൺലോഡ് ചെയ്യാവുന്നതാണ്.\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins ഗിറ്റ് ഉപയോഗിച്ച് ദൃശ്യരൂപങ്ങൾ ഡൗൺലോഡ് ചെയ്യൽ].\n: താങ്കളൊരു മീഡിയവിക്കി ഡവലപ്പറാണെങ്കിൽ ഇത് താങ്കളുടെ ഗിറ്റ് ഡെപ്പോസിറ്ററിയെ ബാധിക്കുന്നതല്ല. ദൃശ്യരൂപങ്ങൾ എങ്ങനെ ക്രമീകരിക്കാം എന്നും സ്വതേ വേണ്ടത് എങ്ങനെ സജ്ജമാക്കാം എന്നും [https://www.mediawiki.org/wiki/Manual:Skin_configuration ദൃശ്യരൂപം സജ്ജമാക്കൽ സഹായിയിൽ] കാണുക.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (സജ്ജം)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''സജ്ജമല്ല''')",
        "mediastatistics": "മീഡിയ സ്ഥിതിവിവരക്കണക്കുകൾ",
index 084057a..d01fead 100644 (file)
        "print": "Хэвлэх",
        "view": "Харагдац",
        "edit": "Засварлах",
+       "edit-local": "локал тайлбарыг засах",
        "create": "Үүсгэх",
+       "create-local": "локал тайлбар нэмэх",
        "editthispage": "Энэ хуудсыг засварлах",
        "create-this-page": "Энэ хуудсыг үүсгэх",
        "delete": "Устгах",
        "otherlanguages": "Өөр хэлээр",
        "redirectedfrom": "($1-с чиглүүлэгдэв)",
        "redirectpagesub": "Хуудсыг чиглүүлэх",
+       "redirectto": "Үсрэх:",
        "lastmodifiedat": "Энэ хуудас хамгийн сүүлд $1-ы $2-д өөрчлөгдсөн.",
        "viewcount": "Энэ хуудсанд {{PLURAL:$1|ганцхан удаа|$1 удаа}} хандсан байна.",
        "protectedpage": "Хамгаалагдсан хуудас",
        "jumptonavigation": "залуурдлага",
        "jumptosearch": "хайлт",
        "view-pool-error": "Уучлаарай, серверүүд хэт их ачааллагдсан байна.\nЭнэ хуудсыг хэт олон хэрэглэгч харах гэж оролдож байна.\nДахин энэ хуудаст хандахынхаа өмнө түр хугацаагаар хүлээнэ үү.\n\n$1",
+       "generic-pool-error": "Сервер ачаалалтай байна.\nЭнэ нөөцийг хэтэрсэн олон хэрэглэгч үзэж байна.\nТүр хүлээгээд ахин үзнэ үү.",
        "pool-timeout": "Түгжээг хүлээх явцад хугацаа дуусав",
        "pool-queuefull": "Пүүлийн дараалал дүүрсэн байна",
        "pool-errorunknown": "Үл мэдэгдэх алдаа",
+       "pool-servererror": "pool -ын тоолуур сервис ажиллагаагүй байна($1).",
+       "poolcounter-usage-error": "Хэрэглээний алдаа: $1",
        "aboutsite": "{{SITENAME}}-н тухай",
        "aboutpage": "Project:Тухай",
        "copyright": "Тусгайлсан тайлбар байхгүй бол энэ агуулгыг $1 лицензийн дагуу хэрэглэх боломжтой.",
        "disclaimers": "Татгалзал",
        "disclaimerpage": "Project:Ерөнхий татгалзал",
        "edithelp": "Засвар хийх тухай тусламж",
+       "helppage-top-gethelp": "Тусламж",
        "mainpage": "Нүүр хуудас",
        "mainpage-description": "Нүүр хуудас",
        "policy-url": "Project:Бодлого баримтлал",
        "nospecialpagetext": "<strong>Та хүчингүй тусгай хуудас руу орох гэсэн үйлдлийг хийлээ.</strong>\n\nТусгай хуудсуудын жагсаалтыг [[Special:SpecialPages|{{int:specialpages}}]] хуудаснаас харна уу.",
        "error": "Aлдаа",
        "databaseerror": "Өгөгдлийн сангийн алдаа",
+       "databaseerror-text": "Өгөгдлийн сангийн query ны алдаа гарлаа.\nПрограмд bug байх магадлалтай.",
+       "databaseerror-textcl": "Өгөгдлийн сангийн query ны алдаа гарлаа.",
+       "databaseerror-query": "Бичсэн query: $1",
        "databaseerror-function": "Функц: $1",
        "databaseerror-error": "Алдаа: $1",
        "laggedslavemode": "Анхаар: Энэ хуудас нь хамгийн сүүлийн өөрчлөлтүүдийг хамруулаагүй байж болно.",
        "readonly_lag": "Хоёрдогч серверүүд анхдагчдаа гүйцэж ирэх хүртэл мэдээллийн санг автоматаар түгжлээ.",
        "internalerror": "Дотоод алдаа",
        "internalerror_info": "Дотоод алдаа: $1",
+       "internalerror-fatal-exception": "\"$1\" төрлийн фатал алдаа",
        "filecopyerror": "Файлыг \"$1\"-с \"$2\" руу хуулж чадсангүй.",
        "filerenameerror": "Файлын нэрийг \"$1\"-с \"$2\" болгон өөрчилж чадсангүй.",
        "filedeleteerror": "\"$1\" файлыг устгаж чадсангүй.",
        "directorycreateerror": "\"$1\" жагсаалтыг үүсгэж чадсангүй.",
+       "directoryreadonlyerror": "\"$1\" директор нь read-only байна.",
+       "directorynotreadableerror": "\"$1\" директорыг уншиж болохгүй байна.",
        "filenotfound": "\"$1\" файл олдсонгүй.",
        "unexpected": "Санаандгүй утга: \"$1\"=\"$2\".",
        "formerror": "Алдаа: маягтыг явуулж чадсангүй",
        "cannotdelete": "\"$1\" гэсэн хуудас буюу файлыг устгаж чадсангүй.\nӨөр хэрэглэгч өрсөж устгасан байж магадгүй.",
        "cannotdelete-title": "\"$1\" хуудсыг устгаж чадсангүй",
        "delete-hook-aborted": "Хүк устгалыг зогсоолоо.\nШалтгаан өгөгдсөнгүй.",
+       "no-null-revision": "\"$1\" хуудсанд хоосон эргэцүүлэл шинээр нэмж болохгүй байна.",
        "badtitle": "Хүчингүй хуудасны нэр байна",
        "badtitletext": "Оруулсан хуудасны нэр тань хүчингүй, хоосон, эсвэл буруу холбосон интер-хэл буюу интер-викигийн нэр байна. Нэрэнд хэрэглэгдэж болохгүй тэмдэгт орсон байж болзошгүй.",
+       "title-invalid-empty": "Сонгосон хуудасны гарчиг нэг бол хоосон эсвэл namespace -ын нэрийг агуулсан",
+       "title-invalid-utf8": "Сонгосон хуудас UTF-8 алдаатай дараалал агуулсан байна.",
+       "title-invalid-interwiki": "Сонгосон хуудас interwiki link -г агуулсан учир гарчигт хэрэглэх боломжгүй.",
+       "title-invalid-talk-namespace": "Сонгосон хуудасны гарчиг байхгүй ярианы хуудсыг заасан байна.",
+       "title-invalid-characters": "\"$1\" : сонгосон хуудас буруу үсэг агуулсан байна.",
+       "title-invalid-relative": "Гарчигтай холбоотой зам байна. Гарчигийн холбоотой зам нь  (./, ../) буруу, хэрэглэгчийн веб хөтчөөс хүрэх боломжгүй.",
+       "title-invalid-too-long": "Сонгосон хуудасны гарчиг хэтэрсэн урттай байна. UTF-8 форматаар $1 -аас хэтрэхгүй байх ёстой.",
+       "title-invalid-leading-colon": "Сонгосон хуудасны гарчиг тодорхойлох цэгийг эхэндээ авч болохгүй.",
        "perfcached": "Дараах тоо баримт нь нөөц хуулбар учраас хуучирсан мэдээлэлтэй байж магадгүй. Дээд тал нь {{PLURAL:$1|нэг илэрц|$1 илэрцүүд}} нөөцөд бэлэн байна.",
        "perfcachedts": "Дараах тоо баримт нь нөөц хуулбар учраас хуучирсан мэдээлэлтэй байж магадгүй. Дээд тал нь {{PLURAL:$1|нэг илэрц|$1 илэрцүүд}} нөөцөд бэлэн байна.",
        "querypage-no-updates": "Одоогийн байдлаар энэ хуудсанд шинэчлэлүүд хаагдсан байна. Энд байгаа тоо баримт одоохондоо сэргээгдэхгүй.",
        "protectedpagetext": "Энэ хуудсыг засвар хийхээс хамгаалсан байна.",
        "viewsourcetext": "Та энэ хуудасны кодыг харах болон хуулж авах үйлдлийг хийх боломжтой:",
        "viewyourtext": "Та энэ хуудсан дахь '''өөрийн өөрчлөлтөө''' хуулбарлаж, харж болно",
-       "protectedinterface": "Энэ хуудас программын харагдах байдалд ашиглагддаг текстийг агуулдаг тул түгжигдсэн байна.",
+       "protectedinterface": "Энэ хуудас программын харагдах байдалд ашиглагддаг текстийг агуулдаг тул түгжигдсэн байна.\n[//translatewiki.net/ translatewiki.net] -аар орж викигийн орчуулгуудыг нэмэх, өөрчлөх үйлдлийг хийнэ.",
        "editinginterface": "'''Анхаар''': Та программын харагдах байдалд ашиглагддаг текстийг агуулсан хуудсыг засварлах гэж байна.\nЭнэ хуудсанд өөрчлөлт оруулснаар бусад хэрэглэгчдийн программын харагдах байдалд нөлөөлөх болно.\nОрчуулга хийх гэж байгаа бол МедиаВикигийн орчуулгын төсөл болох, [//translatewiki.net/wiki/Main_Page?setlang=mn Бетавики]-г хэрэглэхийг санал болгож байна.",
+       "translateinterface": "Бүх wiki -нд орчуулах нэмэх, өөрчлөх тохиодолд [//translatewiki.net/ translatewiki.net] хэмээх MediaWiki -ын нутагшуулалтын төслийг ашигла.",
        "cascadeprotected": "Энэ хуудас нь давхар хамгаалалттай дараах {{PLURAL:$1|хуудсанд|хуудсуудад}} орсон тул засварлагдахаас хамгаалагдсан байна:\n$2",
        "namespaceprotected": "Таньд '''$1''' нэрний зай дахь хуудсуудыг засварлах зөвшөөрөл байхгүй байна.",
        "customcssprotected": "Энэхүү CSS хуудас өөр хэрэглэгчийн хувийн тохиргоог агуулдаг тул та засварлах эрхгүй.",
        "customjsprotected": "Энэхүү JavaScript хуудас өөр хэрэглэгчийн хувийн тохиргоог агуулдаг тул та засварлах эрхгүй.",
+       "mycustomcssprotected": "Энэ CSS хуудсанд өөрчлөлт хийх зөвшөөрөлгүй байна.",
        "mycustomjsprotected": "Танд энэхүү ЖаваСкрипт хуудсыг засварлах эрх байхгүй байна.",
        "myprivateinfoprotected": "Танд хувийн мэдээллээ засварлах эрх байхгүй байна.",
+       "mypreferencesprotected": "Та өөрийн тохиргоог өөрчлөх зөвшөөрөлгүй байна.",
        "ns-specialprotected": "Тусгай хуудсуудыг засварлах боломжгүй.",
        "titleprotected": "[[User:$1|$1]] нь энэ хуудсыг үүсгэх явдыг хорьжээ.\nШалтгаан нь: ''$2''.",
        "filereadonlyerror": "\"$1\" файлыг өөрчилж чадсангүй, \"$2\" файлын санг зөвхөн уншихаар тохируулсан байна.\n\nТүүнийг түгжсэн админы тайлбар: \"$3\".",
        "invalidtitle-unknownnamespace": "$1 гэсэн үл мэдэгдэх неймспайсын дугаар, \"$2\" бичвэртэй буруу гарчиг байна.",
        "exception-nologin": "Та хэрэглэгчийн нэрээр нэвтрээгүй байна.",
        "exception-nologin-text": "Энэ хуудсанд хандах, эсвэл уг үйлдлийг хийхийн тулд [[Special:Userlogin|нэвтэрнэ]] үү.",
+       "exception-nologin-text-manual": "Энэ хуудас, үйлдэлд нэвтрэхийн тулд $1 -г хийнэ үү.",
        "virus-badscanner": "Буруу тохиргоо: үл мэдэгдэх вирус илрүүлэгч программ: ''$1''",
        "virus-scanfailed": "гүйлгэж чадсангүй (код $1)",
        "virus-unknownscanner": "үл мэдэгдэх антивирус:",
        "createacct-yourpasswordagain": "Нууц үгээ баталгаажуулна уу",
        "createacct-yourpasswordagain-ph": "Нууц үгээ дахиж оруулна уу",
        "remembermypassword": "Энэ компьютер дээрх миний нэвтрэлтийг сана (хамгийн дээд талдаа $1 {{PLURAL:$1|өдрийн|өдрийн}} туршид)",
+       "userlogin-remembermypassword": "Намайг сана",
        "userlogin-signwithsecure": "Хамгаалалттай сүлжээ хэрэглэнэ үү",
        "yourdomainname": "Таны домэйн:",
        "password-change-forbidden": "Та энэ вики дээрх нууц үгээ сольж болохгүй.",
        "gotaccountlink": "Нэвтрэх",
        "userlogin-resetlink": "Нэвтрэх мэдээллээ мартаа юу?",
        "userlogin-resetpassword-link": "Нууц үгээ мартсан уу?",
+       "userlogin-helplink2": "Нэвтрэх талаар зөвлөмж",
        "userlogin-loggedin": "Та {{GENDER:$1|$1}} нэрээр нэвтэрсэн байна.\nӨөр нэрээр нэвтрэх бол доорх маягтыг ашиглана уу.",
        "userlogin-createanother": "Өөр бүртгэл үүсгэх",
        "createacct-emailrequired": "Цахим шуудангийн хаяг",
+       "createacct-emailoptional": "Емайл хаяг (өөрөө)",
        "createacct-email-ph": "Цахим шуудангийн хаягаа оруулна уу",
        "createacct-another-email-ph": "Цахим шуудангийн хаяг оруулна уу",
        "createaccountmail": "Мэйлээр илгээх",
        "createacct-captcha": "Аюулгүй байдлын хяналт",
        "createacct-imgcaptcha-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|хувь нэмэр оруулагч|хувь нэмэр оруулагч}}",
        "badretype": "Таны оруулсан хоёр нууц үг таарахгүй байна.",
        "userexists": "Хэрэглэгчийн нэр ашиглагдаж байна.\nӨөр нэрээр нэвтэрнэ үү.",
        "loginerror": "Нэвтрэхэд алдаа гарлаа",
        "wrongpassword": "Нууц үгээ буруу оруулсан байна. Дахин оролдоно уу.",
        "wrongpasswordempty": "Хоосон нууц үг оруулсан байна. Дахин оруулна уу.",
        "passwordtooshort": "Таны нууц үг хэт богино байна.\nХамгийн багадаа {{PLURAL:$1|1 үсэгтэй|$1 үсэгтэй}} байх ёстой.",
+       "passwordtoolong": "Таны нууц үг {{PLURAL:$1|нэг |$1 }} үсэгнээс олон байж болохгүй.",
        "password-name-match": "Таны нууц үг хэрэглэгчийн нэрнээс ялгаатай байх ёстой.",
        "password-login-forbidden": "Ийм хэрэглэгчийн, нууц үгээр нэвтрэхийг хориглож байна.",
        "mailmypassword": "Нууц үгээ сэргээх",
        "cannotchangeemail": "Энэ вики-н бүртгэлийн цахим шуудангийн хаяг солигдож болохгүй.",
        "emaildisabled": "Та энэ сайт дээрээс и-мэйл явуулж болохгүй.",
        "accountcreated": "Бүртгэл үүсгэгдлээ",
-       "accountcreatedtext": "$1 хэрэглэгчийн бүртгэл үүсгэгдлээ.",
+       "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|яриа]]) -ны хэрэглэгчийн бүртгэл үүслээ.",
        "createaccount-title": "{{SITENAME}}-н бүртгэлийн үүсгэл",
        "createaccount-text": "Хэн нэгэн {{SITENAME}}-д ($4) \"$2\" гэсэн нэрээр, \"$3\" гэсэн нууц үгтэйгээр таны мэйл хаягийг ашиглан бүртгүүлжээ.\nТа одоо нэвтэрч өөрийн нууц үгээ солих хэрэгтэй.\n\nХэрэв буруугаар бүртгүүлсэн бол энэ мэдэгдлийг үл ойшоож болно.",
        "login-throttled": "Та хэт олон удаа нэвтрэх гэж оролдсон байна.\n$1 хүлээж байгаад дахин оролдоно уу.",
        "login-abort-generic": "Та нэвтэрч чадсангүй",
+       "login-migrated-generic": "Таны бүртгэлд миграц хийгдсэн. Тиймээс ийм нэртэй хэрэглэгч байхгүй.",
        "loginlanguagelabel": "Хэл: $1",
        "suspicious-userlogout": "Таны гарах хүсэлт нь эвдэрхий хөтөч буюу кэшлэгч проксигоор явуулсан мэт харагдаж байгаа тул зөвшөөрсөнгүй.",
        "createacct-another-realname-tip": "Жинхэнэ нэрээ заавал оруулах албагүй.\nОруулбал таны хийсэн бүтээлийг түүгээр хаяглана.",
        "pt-login": "Нэвтрэх",
+       "pt-login-button": "Нэвтрэн орох",
        "pt-createaccount": "Бүртгүүлэх",
        "pt-userlogout": "Гарах",
        "php-mail-error-unknown": "PHP's mail() функцэд үл танигдах алдаа гарлаа.",
        "resetpass-submit-loggedin": "Нууц үгээ солих",
        "resetpass-submit-cancel": "Цуцлах",
        "resetpass-wrong-oldpass": "Хүчингүй түр зуурын эсвэл одоогийн нууц үг байна.\nТа аль хэдийнээ нууц үгээ сольсон эсвэл түр зуурын нууц үг хүссэн байна.",
+       "resetpass-recycled": "Одоо байгаагаас өөр нүүц үг оруулна уу.",
+       "resetpass-temp-emailed": "Та түр зуур нэврэх нууц үгээр орсон байна.\nНууц үгээ шинэчилнэ үү.",
        "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}}\" дээр дарж ресет хий, эсвэл шинэ нууц үг сонго.",
        "passwordreset": "Нууц үгийг сэргээх",
+       "passwordreset-text-one": "Энэ формыг бөглөснөөр түр ашиглах нууц үгийг емайлруу илгээнэ.",
+       "passwordreset-text-many": "{{PLURAL:$1|Энэ талбарыг бөглөж түр ашиглах нууц үгээ емайлээр авна.}}",
        "passwordreset-legend": "Нууц үгээ сэргээх",
        "passwordreset-disabled": "Энэ вики-д нууц үгийг сэргээх боломжгүй байна.",
+       "passwordreset-emaildisabled": "Энэ викид емайл ашиглах боломжгүй.",
        "passwordreset-username": "Хэрэглэгчийн нэр:",
        "passwordreset-domain": "Домайн:",
        "passwordreset-capture": "Цахим шуудангийн нууц үг сэргээх шууданг үзэх",
        "passwordreset-emailtext-ip": "Хэн нэгэн ($1 гэсэн IP хаягаас) {{SITENAME}} ($4) дээр таны бүртгэлийн сануулга авахаар хүссэн байна. Дараах {{PLURAL:$3|бүртгэл|бүртгэл}}\nуг е-шуудантай холбоотой:\n\n$2\n\n{{PLURAL:$3|Уг түр хэрэглэх нууц үг|Уг түр хэрэглэх нууц үгүүд}} нь {{PLURAL:$5|нэг өдрийн|$5 өдрийн}} дотор устах болно.\nТа уг нууц үгээр нэвтэрч, түүнийг шинэчлэх хэрэгтэй. Хэрэв өөр нэгэн уг хүсэлтийг явуулсан бол \nэсвэл өөрийн ориг нууц үгээ санаж байгаад түүнийгээ өөрчлөхийг хүсэхгүй байгаа бол энэ захиаг үл ойшоож \nэнгийнээр нэвтэрч болно.",
        "passwordreset-emailtext-user": "{{SITENAME}} дээрх $1 хэрэглэгч {{SITENAME}} ($4) дээр өөрийн тань бүртгэл дээр сануулга хүссэн байна. \nДараах {{PLURAL:$3|бүртгэл|бүртгэлүүд}} уг е-шуудантай холбоотой байна:\n\n$2\n\nЭнэ {{PLURAL:$3|түр нууц үг|түр нууц үгс}} {{PLURAL:$5|нэг өдрийн дараа|$5 өдрийн дараа}} устах болно.\nТүүгээр нэвтэрч ороод нууц үгээ шинэчилнэ үү. Энэ сануулгыг өөр хэн нэгэн хийсэн, эсвэл та\nнууц үгээ санаж байгаа бол энэ захиаг анхааралгүйгээр хуучнаараа ороход болно.",
        "passwordreset-emailelement": "Хэрэглэгчийн нэр: $1\nТүр зуурын нууц үг: $2",
-       "passwordreset-emailsent": "Танд Ñ\81анамж Ð±Ð¾Ð»Ð³Ð¾Ð½ Ð½Ñ\8dг Ð¸Ð¼Ð°Ð¹Ð» Ñ\8fвÑ\83Ñ\83ллаа",
-       "passwordreset-emailsent-capture": "Доор харуулснаар цахим шуудангийн сануулгыг явууллаа.",
-       "passwordreset-emailerror-capture": "ЦаÑ\85им Ñ\88Ñ\83Ñ\83дангийн Ñ\81анÑ\83Ñ\83лга Ð´Ð¾Ð¾Ñ\80 Ñ\85аÑ\80Ñ\83Ñ\83лÑ\81нÑ\8b Ð´Ð°Ð³Ñ\83Ñ\83 Ñ\85ийгдÑ\81ан Ð±Ð¾Ð»Ð¾Ð²Ñ\87 $1 Ñ\85Ñ\8dÑ\80Ñ\8dглÑ\8dгÑ\87ид Ñ\85Ò¯Ñ\80Ñ\87 Ñ\87адÑ\81ангүй, Ð°Ð»Ð´Ð°Ð° Ð³Ð°Ñ\80лаа.",
+       "passwordreset-emailsent": "Ð\9dÑ\83Ñ\83Ñ\86 Ò¯Ð³ Ñ\81олин ÐµÐ¼Ð°Ð¹Ð» Ð¸Ð»Ð³Ñ\8dÑ\8dÑ\81Ñ\8dн.",
+       "passwordreset-emailsent-capture": "Доор харагдаж байгаа нь танируу илгээсэн нууц үг ресет хийх емайл.",
+       "passwordreset-emailerror-capture": "Ð\94ооÑ\80 Ñ\85аÑ\80агдаж Ð±Ð°Ð¹Ð³Ð°Ð° Ð½Ñ\83Ñ\83Ñ\86 Ò¯Ð³ Ñ\80еÑ\81еÑ\82 Ñ\85ийÑ\85 ÐµÐ¼Ð°Ð¹Ð» Ò¯Ò¯Ñ\81Ñ\81Ñ\8dÑ\85 Ð±Ð¾Ð»Ð¾Ð²Ñ\87 {{GENDER:$2|Ñ\85Ñ\8dÑ\80Ñ\8dглÑ\8dгÑ\87ид}} Ð¸Ð»Ð³Ñ\8dÑ\8dÑ\85Ñ\8dд Ð°Ð»Ð´Ð°Ð° Ð³Ð°Ñ\80лаа : $1",
        "changeemail": "Цахим шуудангийн хаяг солих",
        "changeemail-text": "Энэ маягтийг бөглөж цахим шуудангийн хаягаа солино уу. Өөрчлөлт хийхийн тулд нууц үгээ оруулна уу.",
        "changeemail-no-info": "Энэ хуудсыг үзэхэд хэрэглэгчийн нэрээр орсон байх шаардлагатай.",
        "changeemail-none": "(байхгүй)",
        "changeemail-password": "{{SITENAME}} дахь таны нууц үг:",
        "changeemail-submit": "Цахим шуудан солих",
+       "changeemail-throttled": "Дэндүү олон амжилтгүй нэвтрэх оролдлого хийсэн байна.\n$1 хүлээгээ ахин үзнэ үү.",
+       "resettokens": "Токен ресет хийх",
+       "resettokens-no-tokens": "Ресет хийх токен ална.",
+       "resettokens-legend": "Токен ресет хийх",
+       "resettokens-tokens": "Токен:",
+       "resettokens-token-label": "$1 (одоогийн утга: $2)",
+       "resettokens-done": "Токен ресет хийлээ.",
+       "resettokens-resetbutton": "Сонгосон токеныг ресет хийх",
        "bold_sample": "Тодруулсан бичиг",
        "bold_tip": "Тодруулсан бичиг",
        "italic_sample": "Налуу бичиг",
        "missingcommentheader": "'''Сануулга:''' Та энэхүү санал бодолдоо гарчиг бичээгүй байна.\nХэрэв та {{int:savearticle}} дээр дахин дарвал таны засвар гарчиггүй хадгалагдах болно.",
        "summary-preview": "Товч агуулгын урьдчилж харсан байдал:",
        "subject-preview": "Сэдэв/гарчигийн урьдчилж харсан байдал:",
+       "previewerrortext": "Таны өөрчлөлтийг хянахад алдаа гарлаа.",
        "blockedtitle": "Хэрэглэгч түгжигдлээ.",
        "blockedtext": "'''Таны хэрэглэгчийн нэр эсвэл IP хаяг түгжигдсэн байна.'''\n\nТүгжээг $1 хийсэн. Шалтгаан нь ''$2'' байна.\n\n* Түгжээ эхлэсэн огноо: $8\n* Түгжээ дуусах огноо: $6\n* Түгжигдсэн: $7\n\nТа $1 эсвэл бусад [[{{MediaWiki:Grouppage-sysop}}|администраторуудтай]] харилцаж түгжээнийхээ талаар хэлэлцэж болно.\nТаны [[Special:Preferences|хувийн тохиргоонд]] мэйл хаяг заагдсан бөгөөд түүний хэрэглээ түгжигдээгүй үед та 'энэ хэрэглэгчид мэйл илгээх' функцийг хэрэглэх боломжтой.\nТаны одоогийн IP хаяг бол $3, түгжээний ID нь #$5 байна. Түгжээний талаарх хэлэлцүүлэгт энэ хоёрыг заавал оруулаарай.",
        "autoblockedtext": "Таны IP хаяг автоматаар түгжигдсэн байна, учир нь өмнө өөр хэрэглэгчээр ашиглагдаж түүнийг $1 түгжсэн байна.\nШалтгаан нь:\n\n:''$2''\n\n* Түгжээ эхлэсэн огноо: $8\n* Түгжээ дуусах огноо: $6\n* Түгжигдсэн: $7\n\nТа $1 эсвэл бусад [[{{MediaWiki:Grouppage-sysop}}|администраторуудтай]] харилцаж түгжээнийхээ талаар хэлэлцэж болно.\n\nТаны [[Special:Preferences|хувийн тохиргоонд]] мэйл хаяг заагдсан, мөн үүнийгээ хэрэглэхээс түгжигдээгүй үед л \"энэ хэрэглэгчид мэйл илгээх\" функцийг хэрэглэх боломжтой.\n\nТаны одоогийн IP хаяг $3, таны түгжээний дугаар #$5 байна.\nТүгжээний талаарх асуултандаа дээрх бүх зүйлсийг тусгаж өгөөрэй.",
        "nocreate-loggedin": "Таньд шинэ хуудас үүсгэх эрх байхгүй байна.",
        "sectioneditnotsupported-title": "Хэсгийг засварлах функц дэмжигдэхгүй байна",
        "sectioneditnotsupported-text": "Энэхүү хуудсанд хэсгийг засварлах функц дэмжигдэхгүй байна.",
-       "permissionserrors": "Зөвшөөрлүүдийн алдаанууд",
+       "permissionserrors": "Зөвшөөрлийн алдаа",
        "permissionserrorstext": "Таньд үүнийг хийх зөвшөөрөл байхгүй байна. {{PLURAL:$1|Шалтгаан|Шалтгаанууд}} нь:",
        "permissionserrorstext-withaction": "Дараах {{PLURAL:$1|шалтгааны|шалтгаануудын}} улмаас таньд $2 эрх байхгүй байна:",
        "recreate-moveddeleted-warn": "'''Анхаар: Та өмнө нь устгагдсан хуудсыг дахин үүсгэх гэж байна.'''\n\nТа энэ хуудсанд дахин засвар хийх нь зүйтэй юу гэж бодох хэрэгтэй.\nЭнэ хуудасны устгалын ба зөөлтийн лог хэрэг болж магадгүй тул доор тавигдсан байгаа:",
        "edit-gone-missing": "Хуудсыг шинэчилж чадсангүй.\nХуудас устгагдсан юм шиг байна.",
        "edit-conflict": "Засварын зөрчилдөөн.",
        "edit-no-change": "Текстэд өөрчлөлт хийгдээгүй тул таны засварыг үл тоов.",
+       "postedit-confirmation-created": "Хуудас үүслээ.",
+       "postedit-confirmation-restored": "Хуудсыг сэргээлээ.",
+       "postedit-confirmation-saved": "Таны өөрчлөлт хадгалагдлаа.",
        "edit-already-exists": "Шинэ хуудас үүсгэж чадсангүй.\nӨмнө үүсгэгдсэн байна.",
        "defaultmessagetext": "Үндсэн мессеж текст",
        "content-failed-to-parse": "$2 гэсэн агуулгыг $1 модел дээр авч чадсангүй: $3",
+       "invalid-content-data": "Агуулгад алдаатай мэдээлэл байна",
+       "content-not-allowed-here": "[[$2]] хуудсанд \"$1\" гэсэн агуулга хориотоай",
+       "editpage-notsupportedcontentformat-title": "Агуулга дэмждэггүй форматтай байна",
+       "editpage-notsupportedcontentformat-text": "$1 гэсэн агуулын формат $2 моделд дэмжигддэггүй.",
        "content-model-wikitext": "вики бичвэр",
        "content-model-text": "энгийн бичвэр",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "content-json-empty-object": "Хоосон объект",
+       "content-json-empty-array": "Хоосон хүснэгт",
        "expensive-parserfunction-warning": "'''Анхаар:''' Энэ хуудсанд хэт олон парсер функцийн дуудлагууд байна.\n\n$2 дуудлагаас доош байх ёстой, харин одоо $1 байна.",
        "expensive-parserfunction-category": "Хэт олон парсер функцийн дуудлагатай хуудсууд",
        "post-expand-template-inclusion-warning": "'''Анхаар:''' Загварын оролцуулах хэмжээ хэт том байна.\nЗарим загваруудыг оролцуулахгүй.",
        "parser-template-loop-warning": "Загвар тойрч буйг тогтоов: [[$1]]",
        "parser-template-recursion-depth-warning": "Загварын рекурсийн хэмжээний хязгаараас хэтрэв ($1)",
        "language-converter-depth-warning": "Хэл хооронд хөрвүүлэх гүний хязгаараас хэтрэв ($1)",
+       "node-count-exceeded-category": "node -ын тоо хэтэрсэн хуудсууд",
+       "node-count-exceeded-category-desc": "Хуудас хамгийн дээд node -ын тооноос хэтэрсэн.",
+       "node-count-exceeded-warning": "Хуудас node -ын тооноос хэтэрсэн",
+       "expansion-depth-exceeded-category": "Сунгах урт нь хэтэрсэн хуудсууд",
+       "expansion-depth-exceeded-category-desc": "Тэлэх хамгийн дээд урт нь хэтэрсэн хуудас.",
+       "expansion-depth-exceeded-warning": "Хуудасны тэлэх хамгийн дээд урт нь хэтэрсэн.",
+       "converter-manual-rule-error": "Гараар хэл солих дүрэмд алдаа илэрлээ",
        "undo-success": "Засвар цуцлагдаж болно.\nДоорх харьцуулалтыг шалгаж үнэхээр хиймээр байгаа зүйл мөн үү гэдгээ нотлоорой. Дараа нь засварыг дуусгахын тулд өөрчлөлтүүдээ хадгална уу.",
        "undo-failure": "Хоорондын засваруудаас болж засвар цуцлагдах боломжгүй байна.",
        "undo-norev": "Засвар оршдогүүй эсвэл устгагдсан тул цуцлаж чадсангүй.",
+       "undo-nochange": "Энэ өөрчлөлтийг буцаасан байна.",
        "undo-summary": "[[Special:Contributions/$2|$2]] ([[User talk:$2|Яриа]]) хэрэглэгчийн $1 засварыг цуцлах",
+       "undo-summary-username-hidden": "$1 залруулгыг далд хэрэглэгчээр буцаах",
        "cantcreateaccounttitle": "Хэрэглэгчийн бүртгэлийг үүсгэж чадсангүй.",
        "cantcreateaccount-text": "[[User:$3|$3]] нь энэ IP хаягаас ('''$1''') бүртгэл үүсгэх эрхийг түгжсэн байна.\n\n$3-н тодорхойлсон шалтгаан нь ''$2''",
        "viewpagelogs": "Энэ хуудасны логийг үзэх",
        "currentrev": "Одоогийн засвар",
        "currentrev-asof": "$1-ий байдлаарх одоогийн засвар",
        "revisionasof": "$1-ий байдлаарх засвар",
-       "revision-info": "$1-ий байдлаарх $2 хэрэглэгчийн хийсэн засвар",
+       "revision-info": "$1-ий байдлаарх $2 хэрэглэгчийн хийсэн залруулга",
        "previousrevision": "←Хуучны засвар",
        "nextrevision": "Дараагийн засвар→",
        "currentrevisionlink": "Одоогийн засвар",
        "history-feed-description": "Вики дэх энэ хуудасны засварын түүх",
        "history-feed-item-nocomment": "$2 дээрх $1",
        "history-feed-empty": "Таны үзэх гэсэн хуудас байхгүй байна.\nВикигээс устгагдсан юмуу нэр нь өөрчлөгдсөн байж магадгүй.\n[[Special:Search|Викид хайлт хийж]] үзнэ үү.",
+       "history-edit-tags": "Сонгосон залруулгын таг-ыг өөрчлөх",
        "rev-deleted-comment": "(өөрчлөх тухай мэдээлэл арилгагдсан байна)",
        "rev-deleted-user": "(хэрэглэгчийн нэр арилгагдсан байна)",
-       "rev-deleted-event": "(логийн үйлдэл арилгагдсан байна)",
+       "rev-deleted-event": "(логийн тухай мэдээлэлийг арилгасан)",
        "rev-deleted-user-contribs": "[хэрэглэгчийн нэр эсвэл IP хаягыг арилгасан байна - засварыг хувь нэмрээс нуув]",
        "rev-deleted-text-permission": "Энэ хуудасны засвар '''устгагдсан'''.\n[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Устгалын логт] дэлгэрэнгүй мэдээлэл байж магадгүй.",
        "rev-deleted-text-unhide": "Энэ хуудасны эргэцүүлэл '''устгагдсан байна'''.\n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Устгалын логоос] дэлгэрэнгүй мэдээллийг орж харж болно.\nТа хүсвэл [$1 энэ засварыг үзэх] боломжтой.",
        "revdelete-no-file": "Өгөгдсөн файл байхгүй байна.",
        "revdelete-show-file-confirm": "$2-ий $3 дахь \"<nowiki>$1</nowiki>\" файлын устгагдсан засварыг үзмээр байгаадаа итгэлтэй байна уу?",
        "revdelete-show-file-submit": "Тийм",
+       "revdelete-selected-text": "[[:$2]] -ын {{PLURAL:$1|Сонгосон залруулга|Сонгосон залруулгууд}} :",
+       "revdelete-selected-file": "[[:$2]] -ны {{PLURAL:$1|сонгосон файлын хувилбар|сонгосон файлын хувилбарууд}} :",
        "logdelete-selected": "{{PLURAL:$1|Сонгосон логийн үйл явдал|Сонгосон логийн үйл явдлууд}}:",
+       "revdelete-text-text": "Устгасан залруулгууд хуудасны түүх хэсэг харагдана. \nАгуулгын хэсгүүд нь нийтэд харагдахгүй.",
+       "revdelete-text-file": "Файлын устгасан хувилбарууд түүх хэсэгт харагдана.\nАгуулгын хэсгүүд нь нийтэд харагдахгүй.",
+       "logdelete-text": "Логийн үйлдлүүд лог хэсэгт харагдана.\nАгуулгын хэсгүүд нь нийтэд харагдахгүй.",
+       "revdelete-text-others": "Цаанаас нь хязгаарлаагүй тохиолдолд бусад админууд нуусан агуулгыг харах эрхтэй бөгөөд сэргээх боломжтой.",
        "revdelete-confirm": "Та энэхүү үйлдлийг хийх гэж байгаа, үр дагаварыг ойлгож байгаа, [[{{MediaWiki:Policy-url}}|дүрмийн дагуу]] хийж байгаа гэдгээ батална уу.",
        "revdelete-suppress-text": "'''Зөвхөн'' дараах тохиолдлуудад л далдалгааг хэрэглэнэ:\n*Гүтгэсэн, матсан байж болох мэдээлэл\n*Тохиромжгүй хувийн мэдээлэл\n*: ''гэрийн хаяг, утасны дугаар, иргэний бүртгэлийн дугаар г.м.''",
        "revdelete-legend": "Харагдах байдалд хязгаар тавих",
        "revdelete-hide-text": "Засварын текстийг нуух",
        "revdelete-hide-image": "Файлын агуулыг нуух",
-       "revdelete-hide-name": "Объект ба түүнд хийсэн үйлдлийг нуух",
-       "revdelete-hide-comment": "Засварын товч агуулгыг нуух",
-       "revdelete-hide-user": "Засварлагчийн хэрэглэгчийн нэр/IP хаягийг нуух",
+       "revdelete-hide-name": "Объект ба параметрыг нуух",
+       "revdelete-hide-comment": "Засварын товч агуулгыг өөрчлөх",
+       "revdelete-hide-user": "Засварлагчийн хэрэглэгчийн нэр/IP хаяг",
        "revdelete-hide-restricted": "Администраторууд болон бусдаас энэ мэдээллийг далдлах",
        "revdelete-radio-same": "(битгий өөрчил)",
-       "revdelete-radio-set": "Тийм",
-       "revdelete-radio-unset": "Үгүй",
+       "revdelete-radio-set": "Ð\9dÑ\83Ñ\83Ñ\81ан",
+       "revdelete-radio-unset": "Ил",
        "revdelete-suppress": "Системийн операторууд болон бусдаас мэдээллийг нууцлах",
        "revdelete-unsuppress": "Сэргээгдсэн засварууд дахь хязгаарлалтуудыг авч хаях",
        "revdelete-log": "Шалтгаан:",
        "compareselectedversions": "Сонгосон хоёр хувилбарыг харьцуулах",
        "showhideselectedversions": "Олон хувилбарыг харуулах/болих",
        "editundo": "цуцлах",
+       "diff-empty": "(Өөрчлөлт алга)",
+       "diff-multi-sameuser": "(Хэрэглэгчид {{PLURAL:$1|дундын нэг хувилбар|$1 дундын хувилбарууд}} харагдахгүй)",
+       "diff-multi-otherusers": "({{PLURAL:$1|Дундын нэг хувилбар|$1 дундын хувилбарууд}} {{PLURAL:$2|өөр нэг хэрэглэгчид|$2 хэрэглэгчид}} харагдахгүй)",
        "diff-multi-manyusers": "($2 гаруй {{PLURAL:$2|хэрэглэгчийн}} {{PLURAL:$1|дундын нэг засварыг|дундын $1 засварыг}} үзүүлсэнгүй)",
+       "difference-missing-revision": "($1) -ын ялгааны {{PLURAL:$2|нэг хувилбар|$2 хувилбарууд}}  {{PLURAL:$2|олсонгүй|олсонгүй}}.\n\nЭнэ нь хуудас устгахад шинэчлэгдээгүй ялгааны линкээс болдог. \n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} устгасан лог] -оос мэдээлэл авна уу.",
        "searchresults": "Хайлтын үр дүн",
        "searchresults-title": "\"$1\" гэх хайлтын үр дүн",
        "titlematches": "Хуудасны гарчигтай таарсан хуудсууд",
        "notextmatches": "Хуудасны тексттэй таарсан хуудсууд байхгүй байна",
        "prevn": "өмнөх {{PLURAL:$1|$1}}",
        "nextn": "дараагийн {{PLURAL:$1|$1}}",
+       "prev-page": "өмнөх хуудас",
+       "next-page": "дараагийн хуудас",
        "prevn-title": "Өмнөх $1 {{PLURAL:$1|үр дүн|үр дүн}}",
        "nextn-title": "Дараагийн $1 {{PLURAL:$1|үр дүн|үр дүн}}",
        "shown-title": "Хуудас бүрд $1 {{PLURAL:$1|үр дүн}} гаргах",
        "search-result-category-size": "{{PLURAL:$1|1 гишүүн|$1 гишүүн}} ({{PLURAL:$2|1 дэд ангилал|$2 дэд ангилал}}, {{PLURAL:$3|1 файл|$3 файл}})",
        "search-redirect": "(чиглүүлэгч $1)",
        "search-section": "(Хэсэг $1)",
+       "search-category": "($1 категори)",
+       "search-file-match": "(файлын агуулгад тохирно)",
        "search-suggest": "Та $1 гэж хайя гэсэн үү?",
        "search-interwiki-caption": "Ах дүү төслүүд",
-       "search-interwiki-default": "$1 үр дүн:",
+       "search-interwiki-default": "$1 -ын үр дүн:",
        "search-interwiki-more": "(илүү их)",
        "search-relatedarticle": "Холбоотой",
        "searchrelated": "холбоотой",
        "powersearch-togglelabel": "Сонгох:",
        "powersearch-toggleall": "Бүгдийг",
        "powersearch-togglenone": "Байхгүй",
+       "powersearch-remember": "Дараа дараагийн хайлтад энэ сонголтыг ашигла",
        "search-external": "Гадны хайлт",
        "searchdisabled": "{{SITENAME}} хайлтыг түр хаасан байна.\nТа одоохондоо Google-г ашиглан хайх боломжтой.\nАнхааруулж хэлэхэд, тэдний {{SITENAME}}-н агуулгын индексүүд хоцрогдсон байж магадгүй.",
+       "search-error": "$1 -ыг хайхад алдаа гарлаа",
        "preferences": "Хэрэглэгчийн тохиргоо",
        "mypreferences": "Миний тохиргоо",
        "prefs-edits": "Засваруудын тоо:",
        "prefs-personal": "Хувийн тохируулга",
        "prefs-rc": "Сүүлийн засварууд",
        "prefs-watchlist": "Хянах жагсаалт",
+       "prefs-editwatchlist": "Хянах жагсаалтаа засварлах",
+       "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": "Дэлгэрүүлсэн хянах жагсаалтанд үзүүлэх дээд хэмжээний өөрчлөлтүүдийн тоо:",
        "prefs-email": "И-мэйлийн сонгох тохиргоо",
        "prefs-rendering": "Харагдац",
        "saveprefs": "Хадгалах",
-       "restoreprefs": "Бүх тохиргоог анхны байдалд оруулах",
+       "restoreprefs": "Бүх тохиргоог анхны байдалд оруулах (хэсэг бүрт)",
        "prefs-editing": "Засварлах",
        "rows": "Мөр:",
        "columns": "Багана:",
        "prefs-help-signature": "Ярианы хуудсуудад санал бодлоо оруулахдаа ард нь \"<nowiki>~~~~</nowiki>\" гэж бичих ёстой бөгөөд энэ нь таны гарын үсэг, бичсэн цаг болж хувирна.",
        "badsig": "Хүчингүй гарын үсэг байна; HTML тагуудаа шалгаж үзнэ үү.",
        "badsiglength": "Таны хоч нэр хэтэрхий урт байна.\n$1 тэмдэгтээс богино байх ёстой.",
-       "yourgender": "Хүйс:",
-       "gender-unknown": "ТодоÑ\80Ñ\85ойгүй",
-       "gender-male": "ЭÑ\80",
-       "gender-female": "Эм",
+       "yourgender": "Өөрийгөө хэрхэн тодорхойлох вэ?",
+       "gender-unknown": "Ð\91и Ð¸Ð½Ð³Ñ\8dмÑ\8dÑ\8dÑ\80 Ð±Ð°Ð¹Ð½Ð°",
+       "gender-male": "ТÑ\8dÑ\80 Ð²Ð¸ÐºÐ¸ Ñ\85Ñ\83Ñ\83дÑ\81Ñ\8bг Ð·Ð°Ñ\81даг",
+       "gender-female": "ТÑ\8dÑ\80 Ð²Ð¸ÐºÐ¸ Ñ\85Ñ\83Ñ\83дÑ\81Ñ\8bг Ð·Ð°Ñ\81даг",
        "prefs-help-gender": "Заавал биш: прорамм хангамж таньд хандахдаа зөв хүйсний үгсийг хэрэглэнэ.\nЭнэ мэдээлэл нийтэд нээлттэй байх болно.",
        "email": "Мэйл хаяг",
        "prefs-help-realname": "Жинхэнэ нэрээ заавал оруулах албагүй бөгөөд оруулбал таны хийсэн бүтээлийг түүгээр хаяглана.",
        "prefs-signature": "Гарын үсэг",
        "prefs-dateformat": "Огнооны хэлбэр",
        "prefs-timeoffset": "Цагын зөрөө",
-       "prefs-advancedediting": "Ахимаг хэмжээний сонголтууд",
+       "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": "Гараад орох уг тохиргоо идэвхижнэ.",
+       "prefs-tabs-navigation-hint": "Зөвлөмж: Баруун зүүн сумаар таб хооронд шилжиж болно.",
        "email-address-validity-valid": "Цахим шуудан хүчинтэй байна",
        "email-address-validity-invalid": "и-майл хаягаа зөв оруулна уу.",
        "userrights": "Хэрэглэгчдийн эрхийн удирдлага",
        "userrights-no-interwiki": "Таньд өөр викинүүдэд хэрэглэгчдийн эрхийг өөрчлөх зөвшөөрөл байхгүй.",
        "userrights-nodatabase": "$1 мэдээллийн сан байхгүй, эсвэл дотоодынх биш байна.",
        "userrights-nologin": "Та хэрэглэгчдийн эрхийг хуваарилахбн тулд администраторын бүртгэлтэйгээр [[Special:UserLogin|нэвтэрч орох]] шаардлагатай.",
-       "userrights-notallowed": "Та хэрэглэгчдийн эрхийг хасаж, нэмэх зөвшөөрөлгүй байна.",
+       "userrights-notallowed": "Танд хэрэглэгчдийн эрхийг хасаж, нэмэх эрх байхгүй.",
        "userrights-changeable-col": "Таны өөрчилж болох бүлгүүд",
        "userrights-unchangeable-col": "Таны өөрчилж болохгүй бүлгүүд",
+       "userrights-conflict": "Хэрэглэгчийн эрхийн өөрчлөлтийн зөрчилдөөн! Өөрийнхөө өөрчлөлтөд итгэлтэй эсэхээ ахин нягтлаарай.",
+       "userrights-removed-self": "Та өөрийнхөө эрхийг авч хаялаа. Тиймээс та энэ хуудсанд нэвтрэх эрхгүй болно.",
        "group": "Бүлэг:",
        "group-user": "Хэрэглэгчид",
        "group-autoconfirmed": "Автоматаар батлагдсан хэрэглэгчид",
        "right-move": "Хуудсуудыг зөөх",
        "right-move-subpages": "Хуудсуудыг дэд хуудсуудын хамт зөөх",
        "right-move-rootuserpages": "Хэрэглэгчийн үндсэн хуудсуудыг зөөх",
+       "right-move-categorypages": "Категорын хуудсыг дөөх",
        "right-movefile": "Хуудсуудыг зөөх",
        "right-suppressredirect": "Хуудсуудыг зөөхдөө эх үүсвэр хуудсуудаас чиглүүлэгч үүсгэхгүй",
        "right-upload": "Файл оруулах",
        "right-reupload-shared": "Хувааж хэрэглэгдэх медиа агуулах дахь файлуудыг дээрээс нь дарж оруулах",
        "right-upload_by_url": "URL-с файл оруулах",
        "right-purge": "Баталгаажуулахгүйгээр сайтын хийсвэр санах ойг цэвэрлэх",
-       "right-autoconfirmed": "Хагас хамгаалагдсан хуудсуудыг засварлах",
+       "right-autoconfirmed": "IP-д суурилсан ханшийн хязгаарт нөлөөлөгдөхгүй",
        "right-bot": "Автомат процесс гэж хандагдах",
        "right-nominornewtalk": "Шинэ мессеж ирлээ гэдэг бичгийг ярианы хуудсанд бага зэргийн засвар хийгдсэн тохиолдолд гаргахгүй байх",
        "right-apihighlimits": "API-н хайлтанд илүү өндөр хязгаарыг хэрэглэх",
        "right-browsearchive": "Устгагдсан хуудсуудаас хайх",
        "right-undelete": "Хуудсуудыг үл устгах",
        "right-suppressrevision": "Администраторуудаас нуусан засваруудыг хянаж, сэргээх",
+       "right-viewsuppressed": "Хэрэглэгчидээс нуусан эргэцүүллийг харах",
        "right-suppressionlog": "Хувийн логийг үзэх",
        "right-block": "Бусад хэрэглэгчдийг засвар хийхээс түгжих",
        "right-blockemail": "Хэрэглэгчийг мэйл явуулахаас түгжих",
        "right-hideuser": "Хэрэглэгчийн нэрийг түгжиж нийтээс нуух",
        "right-ipblock-exempt": "IP-н түгжээ, автомат түгжээ, бүсийн түгжээг тойрч гарах",
        "right-proxyunbannable": "Проксинуудын автомат түгжээг тойрч гарах",
-       "right-unblockself": "Ó¨Ó©Ñ\80Ñ\81дийнÑ\85Ó©Ó© түгжээг тайлах",
+       "right-unblockself": "Ó¨Ó©Ñ\80Ñ\82 Ñ\85ийÑ\81Ñ\8dн түгжээг тайлах",
        "right-protect": "Хамгаалалтын түвшингүүдийг өөрчилж хамгаалагдсан хуудсуудыг засварлах",
-       "right-editprotected": "Хамгаалагдсан хуудсуудыг засварлах (давхар хамгаалалтгүй)",
+       "right-editprotected": "Хамгаалагдсан хуудсуудыг \"{{int:protect-level-sysop}}\" хэлбэрээр засварлах",
+       "right-editsemiprotected": "\"{{int:protect-level-autoconfirmed}}\" -ээр хамгаалагдсан хуудсыг засах",
+       "right-editcontentmodel": "Хуудасны моделын агуулгыг засах",
        "right-editinterface": "Хэрэглэгчийн интерфэйсийг засварлах",
        "right-editusercssjs": "Бусад хэрэглэгчдийн CSS болон JS файлуудыг засварлах",
        "right-editusercss": "Бусад хэрэглэгчдийн CSS файлуудыг засварлах",
        "right-edituserjs": "Бусад хэрэглэгчдийн JS файлуудыг засварлах",
+       "right-editmyusercss": "Өөрийн хэрэглэгчийн CSS файлыг засах",
+       "right-editmyuserjs": "Өөрийн хэрэглэгчийн JavaScript файлыг засах",
+       "right-viewmywatchlist": "Өөрийн харах жагсаалтыг харах",
+       "right-editmywatchlist": "Өөрийн харах жагсаалтыг засна. Зарим үйлдэл энэ эрх байхгүй ч хуудас нэмнэ.",
+       "right-viewmyprivateinfo": "Өөрийн хувийн мэдээллийг харах (емайл, нэр гм)",
+       "right-editmyprivateinfo": "Өөрийн хувийн мэдээллийг засах (емайл, нэр гм)",
+       "right-editmyoptions": "Өөрийн тохиргоог заах",
        "right-rollback": "Тодорхой хуудсыг засварласан хамгийн сүүлийн хэрэглэгчийн засварыг түргэн буцаах",
        "right-markbotedits": "Буцаасан засваруудыг ботын засвар гэж тэмдэглэх",
        "right-noratelimit": "Үйлдлийн хурдны хязгааруудад хамаарагдахгүй байх",
        "right-override-export-depth": "5 хүртэлх гүний хуудсуудыг холбогдсон хуудсуудтай хамт гаргах",
        "right-sendemail": "Бусад хэрэглэгчид руу и-мэйл явуулах",
        "right-passwordreset": "Цахим шуудангийн нууц үгийг сэргээн харах",
+       "right-managechangetags": "[[Special:Tags|tags]] -ыг өгөгдлийн сангаас устгах, нэмэх",
+       "right-applychangetags": "[[Special:Tags|tags]] -ыг өөрчлөлтийн хамт хэрэгжүүлэх",
+       "right-changetags": "[[Special:Tags|tags]] -ыг хувийн хяналт, логийн бичлэг дагалдуулан нэмэх, хасах",
        "newuserlogpage": "Хэрэглэгч үүсгэлтийн лог",
        "newuserlogpagetext": "Энэ нь хэрэглэгч үүсгэлтийн лог юм.",
        "rightslog": "Хэрэглэгчдийн эрхийн лог",
        "action-createpage": "хуудас үүсгэх",
        "action-createtalk": "ярианы хуудас үүсгэх",
        "action-createaccount": "энэ хэрэглэгчийн бүртгэлийг үүсгэх",
+       "action-history": "хуудасны түүхийг харах",
        "action-minoredit": "энэ засварыг бага зэргийн гэж тэмдэглэх",
        "action-move": "нэр солих",
        "action-move-subpages": "энэ хуудас болон түүний дэд хуудсуудыг зөөх",
        "action-move-rootuserpages": "хэрэглэгчийн үндсэн хуудсуудыг зөөх",
+       "action-move-categorypages": "категори хуудсыг зөөх",
        "action-movefile": "энэ файлыг зөөх",
        "action-upload": "энэ файлыг оруулах",
        "action-reupload": "энэ оршиж буй файлын дээрээс дарж оруулах",
        "action-block": "энэ хэрэглэгчийг засвар хийхээс түгжих",
        "action-protect": "энэ хуудасны хамгаалалтын түвшингүүдийг өөрчлөх",
        "action-rollback": "сүүлд хийгдсэн тодорхой хэрэглэгчдийн өөрчлөлтүүдийг буцаах",
-       "action-import": "энэ хуудсыг өөр викигээс оруулах",
-       "action-importupload": "энэ хуудсыг файл оруулалтаас оруулах",
+       "action-import": "өөр викигээс хуудас импорт хийх",
+       "action-importupload": "Файл оруулах хэсгээр хуудас импорт хийх",
        "action-patrol": "бусдын хийсэн засварыг манагдсан гэж тэмдэглэх",
        "action-autopatrol": "өөрийн хийсэн засварыг манагдсан гэж тэмдэглэх",
        "action-unwatchedpages": "хянагдаагүй хуудсуудын жагсаалтыг үзэх",
        "action-userrights-interwiki": "бусад викинүүд дээрх хэрэглэгчийн эрхүүдийг засварлах",
        "action-siteadmin": "мэдээллийн баазыг түгжих буюу нээх",
        "action-sendemail": "цахим шуудан явуулах",
+       "action-editmywatchlist": "өөрийн харах жагсаалтыг эмхлэх",
+       "action-viewmywatchlist": "өөрийн харах жагсаалт",
+       "action-viewmyprivateinfo": "өөрийн хувийн мэдээллийг харах",
+       "action-editmyprivateinfo": "өөрийн хувийн мэдээллийг засах",
+       "action-editcontentmodel": "хуудасны агуулын моделийг засах",
+       "action-managechangetags": "өгөгдлийн сангаас таг-ыг нэмэх, хасах",
+       "action-applychangetags": "өөрийн өөрчлөлтийн хамт таг-ыг хэрэгжүүл",
+       "action-changetags": "таг-ыг хувийн хяналт, логийн бичлэгийн хамт дагалдан нэмэх, хасах",
        "nchanges": "$1 өөрчлөлт",
+       "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|сүүлийн оролтоос хойш}}",
+       "enhancedrc-history": "Түүх",
        "recentchanges": "Сүүлийн өөрчлөлтүүд",
        "recentchanges-legend": "Сар өдөр, шинж төрлөөр шүүх хүснэгт",
        "recentchanges-summary": "Энэхүү хуудсанд викид хийсэн хамгийн сүүлийн өөрчлөлтүүдийг үзүүлж байна.",
        "rcshowhideminor-show": "үзүүлэх",
        "rcshowhideminor-hide": "нуух",
        "rcshowhidebots": "Роботуудыг $1",
+       "rcshowhidebots-show": "Харах",
+       "rcshowhidebots-hide": "Нуух",
        "rcshowhideliu": "Нийт $1 бүртгэгдсэн хэрэглэгчид",
        "rcshowhideliu-show": "үзүүлэх",
        "rcshowhideliu-hide": "нуух",
        "rcshowhideanons-show": "үзүүлэх",
        "rcshowhideanons-hide": "нуух",
        "rcshowhidepatr": "Хянагдаж буй засваруудыг $1",
+       "rcshowhidepatr-show": "Харах",
        "rcshowhidemine": "Миний засваруудыг $1",
        "rcshowhidemine-show": "үзүүлэх",
        "rcshowhidemine-hide": "нуух",
        "license": "Эрх олгож байна:",
        "license-header": "Лиценз",
        "nolicense": "Алиныг ч сонгоогүй байна",
+       "licenses-edit": "Лицензийн сонголтыг засах",
        "license-nopreview": "(Урьдчилж харсан байдлыг харж болохгүй байна)",
        "upload_source_url": " (хүчинтэй, нийтэд нээлттэй URL)",
        "upload_source_file": "(таны компьютер доторх файл)",
+       "listfiles-delete": "устгах",
        "listfiles-summary": "Энэ тусгай хуудсанд бүх оруулагдсан файлыг харуулсан байгаа.\nХамгийн сүүлд оруулсан файлууд жагсаалтын хамгийн дээр байгаа.\nБаганын гарчиг дээр дарвал жагсаалт өөрчлөгдөнө.",
        "listfiles_search_for": "Зургийн нэрээр хайх:",
        "imgfile": "файл",
        "listfiles_size": "Хэмжээ (bytes)",
        "listfiles_description": "Тодорхойлолт/Дүрслэл",
        "listfiles_count": "Хувилбар",
+       "listfiles-show-all": "Зурагны хуучин хувилбарыг хавсаргах",
        "file-anchor-link": "Файл",
        "filehist": "Файлын түүх",
        "filehist-help": "Огноо/цаг дээр дарж тухайн үеийнх нь файлын байдлыг харна уу.",
index b69882b..d208e07 100644 (file)
        "disclaimers": "Penolak tuntutan",
        "disclaimerpage": "Project:Penolak tuntutan umum",
        "edithelp": "Bantuan menyunting",
+       "helppage-top-gethelp": "Bantuan",
        "mainpage": "Laman Utama",
        "mainpage-description": "Laman utama",
        "policy-url": "Project:Dasar",
        "readonly_lag": "Pangkalan data telah dikunci secara automatik sementara semua pelayan pangkalan data diselaraskan.",
        "internalerror": "Ralat dalaman",
        "internalerror_info": "Ralat dalaman: $1",
+       "internalerror-fatal-exception": "Pengecualian fatal jenis \"$1\"",
        "filecopyerror": "Fail \"$1\" tidak dapat disalin ke \"$2\".",
        "filerenameerror": "Nama fail \"$1\" tidak dapat ditukarkan kepada \"$2\".",
        "filedeleteerror": "Fail \"$1\" tidak dapat dihapuskan.",
        "no-null-revision": "Semakan nol baru untuk \"$1\" tidak dapat diwujudkan",
        "badtitle": "Tajuk tidak sah",
        "badtitletext": "Tajuk laman yang diminta tidak sah, kosong, ataupun tajuk antara bahasa atau tajuk antara wiki yang salah dipaut. Ia mungkin mengandungi aksara yang tidak dibenarkan.",
+       "title-invalid-empty": "Tajuk laman yang diminta adalah kosong atau hanya mengandungi nama ruang nama.",
+       "title-invalid-utf8": "Tajuk laman yang diminta mengandungi jujukan UTF-8 yang tidak sah.",
+       "title-invalid-interwiki": "Tajuk mengandungi pautan antarawiki yang tidak boleh digunakan dalam tajuk.",
+       "title-invalid-talk-namespace": "Tajuk laman yang diminta merujuk kepada laman perbincangan yang tidak boleh wujud.",
+       "title-invalid-characters": "Tajuk laman yang diminta mengandungi aksara tak sah: \"$1\".",
+       "title-invalid-relative": "Tajuk mempunyai laluan relatif. Tajuk laman relatif (./, ../) tidak sah kerana sering tidak tercapai jika dikendalikan oleh pelayar web pengguna.",
+       "title-invalid-magic-tilde": "Tajuk laman yang diminta mengandungi jujukan tilde magik yang tidak sah (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Tajuk laman yang diminta terlalu panjang. Ia mestilah dikodkan dengan UTF-8 dan tidak melebihi $1 bait.",
+       "title-invalid-leading-colon": "Tajuk laman yang diminta bermula dengan tanda titik bertindih yang tidak sah.",
        "perfcached": "Data yang berikut disimpan dalam cache dan mungkin tidak terkemas kini. Semaksimum {{PLURAL:$1|satu hasil|$1 hasil}} terdapat dalam cache.",
        "perfcachedts": "Data yang berikut disimpan dalam cache dan kali terakhir dikemaskinikan pada $1. Semaksimum {{PLURAL:$4|satu hasil|$4 hasil}} terdapat dalam cache.",
        "querypage-no-updates": "Buat masa ini, pengkemaskinian laman ini telah dilumpuhkan.\nData yang ada di sini tidak akan disegarkan semula sekarang.",
        "wrongpassword": "Kata laluan yang dimasukkan adalah salah. Sila cuba lagi.",
        "wrongpasswordempty": "Kata laluan yang dimasukkan adalah kosong. Sila cuba lagi.",
        "passwordtooshort": "Kata laluan mestilah sekurang-kurangnya {{PLURAL:$1|1 aksara|$1 aksara}}.",
+       "passwordtoolong": "Kata laluan tidak boleh melebihi $1 aksara.",
        "password-name-match": "Kata laluan anda mesti berbeza daripada nama pengguna anda.",
        "password-login-forbidden": "Penggunaan nama pengguna dan kata laluan ini adalah dilarang.",
        "mailmypassword": "Set semula kata laluan",
        "missingcommentheader": "'''Peringatan:''' Anda tidak menyatakan tajuk bagi komen ini. Klik '''{{int:savearticle}}''' sekali lagi untuk menyimpan suntingan ini tanpa tajuk.",
        "summary-preview": "Pralihat ringkasan:",
        "subject-preview": "Pralihat tajuk:",
+       "previewerrortext": "Ralat berlaku ketika cuba mempratayangkan hasil suntingan anda.",
        "blockedtitle": "Pengguna disekat",
        "blockedtext": "<strong>Nama pengguna atau alamat IP anda telah disekat.</strong>\n\nSekatan ini dilakukan oleh $1.\nSebab yang telah diberikan ialah <em>$2</em>.\n\n* Sekatan mula: $8\n* Sekatan tamat: $6\n* Pengguna sasaran: $7\n\nAnda boleh hubungi $1 atau [[{{MediaWiki:Grouppage-sysop}}|penyelia]] yang lain untuk membincangkan sekatan ini.\n\nSila ambil perhatian bahawa anda tidak boleh menggunakan ciri \"kirim e-mel kepada pengguna ini\" kecuali sekiranya anda telah menetapkan alamat e-mel yang sah dalam [[Special:Preferences|keutamaan pengguna]] anda dan anda tidak disekat daripada menggunakannya.\n\nAlamat IP semasa anda ialah $3, dan ID sekatan ialah #$5.\nSila sertakan maklumat-maklumat di atas dalam sebarang pertanyaan yang anda membuat.",
        "autoblockedtext": "Alamat IP anda telah disekat secara automatik kerana ia digunakan oleh pengguna lain yang disekat oleh $1.\nSebab yang dinyatakan ialah:\n\n:<em>$2</em>\n\n* Sekatan mula: $8\n* Sekatan tamat: $6\n* Pengguna sasaran: $7\n\nAnda boleh menghubungi $1 atau seorang [[{{MediaWiki:Grouppage-sysop}}|penyelia]] yang lain untuk membincangkan sekatan ini.\n\nSila ambil perhatian bahawa anda tidak boleh menggunakan ciri \"kirim e-mel kepada pengguna ini\" kecuali sekiranya anda telah menetapkan alamat e-mel yang sah dalam [[Special:Preferences|keutamaan pengguna]] anda dan anda tidak disekat daripada menggunakannya.\n\nAlamat IP semasa anda ialah $3, dan ID sekatan ialah #$5.\nSila sertakan maklumat-maklumat di atas dalam sebarang pertanyaan yang anda membuat.",
        "history-feed-description": "Sejarah semakan bagi laman ini",
        "history-feed-item-nocomment": "$1 pada $2",
        "history-feed-empty": "Laman yang diminta tidak wujud.\nMungkin ia telah dihapuskan atau namanya telah ditukar.\nCuba [[Special:Search|cari]] laman lain yang mungkin berkaitan.",
+       "history-edit-tags": "Sunting teg-teg semakan terpilih",
        "rev-deleted-comment": "(ringkasan suntingan dibuang)",
        "rev-deleted-user": "(nama pengguna dibuang)",
        "rev-deleted-event": "(butiran log terpadam)",
        "rev-showdeleted": "tunjukkan",
        "revisiondelete": "Hapus/nyahhapus semakan",
        "revdelete-nooldid-title": "Tiada semakan sasaran",
-       "revdelete-nooldid-text": "Anda tidak menyatakan semakan sasaran.",
+       "revdelete-nooldid-text": "Sama ada anda tidak menyatakan sebarang semakan sasaran yang mana untuk menjalankan fungsi ini, ataupun semakan yang dinyatakan tidak wujud, ataupun anda sedang cuba menyelindungkan semakan semasa.",
        "revdelete-no-file": "Fail yang dinyatakan tidak wujud.",
        "revdelete-show-file-confirm": "Anda pasti anda mahu paparkan semakan yang telah dihapuskan bagi fail \"<nowiki>$1</nowiki>\" dari $2 pada $3?",
        "revdelete-show-file-submit": "Ya",
        "notextmatches": "Tiada teks laman yang sepadan",
        "prevn": "{{PLURAL:$1|$1 sebelumnya}}",
        "nextn": "{{PLURAL:$1|$1 berikutnya}}",
+       "prev-page": "laman sebelumnya",
+       "next-page": "laman berikutnya",
        "prevn-title": "$1 hasil sebelumnya",
        "nextn-title": "$1 hasil berikutnya",
        "shown-title": "Papar $1 hasil setiap laman",
        "prefs-personal": "Profil",
        "prefs-rc": "Perubahan terkini",
        "prefs-watchlist": "Senarai pantau",
+       "prefs-editwatchlist": "Sunting senarai pantau",
+       "prefs-editwatchlist-label": "Sunting entri-entri dalam senarai pantau anda:",
+       "prefs-editwatchlist-edit": "Paparkan dan gugurkan tajuk-tajuk pada senarai pantau anda",
+       "prefs-editwatchlist-raw": "Sunting senarai pantau mentah",
+       "prefs-editwatchlist-clear": "Kosongkan senarai pantau anda",
        "prefs-watchlist-days": "Had bilangan hari dalam senarai pantau:",
        "prefs-watchlist-days-max": "Maksimum $1 hari",
        "prefs-watchlist-edits": "Had maksimum perubahan untuk ditunjukkan dalam senarai pantau penuh:",
        "userrights-lookup-user": "Urus kumpulan pengguna",
        "userrights-user-editname": "Masukkan nama pengguna:",
        "editusergroup": "Sunting Kumpulan Pengguna",
-       "editinguser": "Mengubah hak pengguna '''[[User:$1|$1]]''' $2",
+       "editinguser": "Mengubah hak {{GENDER:$1|pengguna}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Ubah kumpulan pengguna",
        "saveusergroups": "Simpan Kumpulan Pengguna",
        "userrights-groupsmember": "Ahli bagi:",
        "right-sendemail": "Mengirim e-mel kepada pengguna-pengguna lain",
        "right-passwordreset": "Lihat e-mel set semula kata laluan",
        "right-managechangetags": "Mencipta dan menghapuskan [[Special:Tags|teg]] dari pangkalan data",
+       "right-applychangetags": "Mengenakan [[Special:Tags|teg]] di samping suntingan seseorang",
+       "right-changetags": "Menambah dan menggugurkan [[Special:Tags|teg]] yang dikenakan sembarangan pada semakan dan entri log individu",
        "newuserlogpage": "Log akaun baru",
        "newuserlogpagetext": "Yang berikut ialah log penciptaan pengguna.",
        "rightslog": "Log hak pengguna",
        "action-editmyprivateinfo": "menyunting maklumat peribadi sendiri",
        "action-editcontentmodel": "menyunting model kandungan laman",
        "action-managechangetags": "mencipta dan menghapuskan teg dari pangkalan data",
+       "action-applychangetags": "mengenakan teg di samping suntingan anda",
+       "action-changetags": "menambah dan menggugurkan teg yang dikenakan sembarangan pada semakan dan entri log individu",
        "nchanges": "$1 perubahan",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|sejak lawatan terakhir}}",
        "enhancedrc-history": "sejarah",
        "uploaderror": "Ralat muat naik",
        "upload-recreate-warning": "'''Amaran: Sebuah fail dengan nama tersebut telah pun dihapuskan atau dipindahkan.'''\n\nLog penghapusan dan pemindahan untuk laman ini disediakan di bawah ini untuk kemudahan:",
        "uploadtext": "Gunakan borang di bawah untuk memuat naik fail.\nUntuk melihat atau mencari imej yang sudah dimuat naik, sila ke [[Special:FileList|senarai fail yang dimuat naik]]. Tindakan muat naik akan direkodkan dalam [[Special:Log/upload|log muat naik]], manakala penghapusan dalam [[Special:Log/delete|log penghapusan]].\n\nUntuk menyertakan sebarang fail ke dalam sesebuah laman, gunakan pautan dengan satu daripada bentuk-bentuk berikut:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fail.jpg]]</nowiki></code>''' untuk menggunakan versi penuh bagi fail itu\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fail.png|200px|thumb|left|teks alternatif]]</nowiki></code>''' untuk menggunakan lakaran 200 piksel lebar di dalam sebuah kotak yang diletakkan di jidar kiri dengan keterangan 'teks alternatif'\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fail.ogg]]</nowiki></code>''' untuk memaut secara terus tanpa memaparkan fail itu",
-       "upload-permitted": "Jenis fail yang dibenarkan: $1.",
-       "upload-preferred": "Jenis fail yang diutamakan: $1.",
-       "upload-prohibited": "Jenis fail yang dilarang: $1.",
+       "upload-permitted": "{{PLURAL:$2|Jenis|Jenis-jenis}} fail yang dibenarkan: $1.",
+       "upload-preferred": "{{PLURAL:$2|Jenis|Jenis-jenis}} fail yang diutamakan: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Jenis|Jenis-jenis}} fail yang dilarang: $1.",
        "uploadlogpage": "Log muat naik",
        "uploadlogpagetext": "Yang berikut ialah senarai terkini bagi fail yang dimuat naik.",
        "filename": "Nama fail",
        "uploaddisabledtext": "Ciri muat naik fail dimatikan.",
        "php-uploaddisabledtext": "Pemuatnaikan fail PHP dilumpuhkan. Sila semak tetapan file_uploads.",
        "uploadscripted": "Fail ini mengandungi kod HTML atau skrip yang boleh disalahtafsirkan oleh pelayar web.",
+       "upload-scripted-pi-callback": "Tidak dapat memuat naik fail yang mengandungi arahan pemprosesan hamparan xml.",
+       "uploaded-script-svg": "Terdapat elemen terskrip \"$1\" dalam fail SVG yang dimuat naik.",
+       "uploaded-hostile-svg": "Terdapat CSS yang tidak selamat dalam elemen stail fail SVG yang dimuat naik.",
+       "uploaded-event-handler-on-svg": "Penetapan atribut <i>event-handler</i> <code>$1=\"$2\"</code> tidak dibenarkan dalam fail SVG.",
+       "uploaded-href-attribute-svg": "Atribut href <code>&lt;$1 $2=\"$3\"&gt;</code> dengan sasaran bukan setempat (cth. http://, javascript:, dsb) tidak dibenarkan dalam fail SVG.",
+       "uploaded-href-unsafe-target-svg": "Terdapat href ke sasaran tak selamat <code>&lt;$1 $2=\"$3\"&gt;</code> dalam fail SVG yang dimuat naik.",
+       "uploaded-animate-svg": "Terdapat teg \"animate\" yang mungkin sedang mengubah href, menggunakan atribut \"from\" <code>&lt;$1 $2=\"$3\"&gt;</code> dalam fail SVG yang dimuat naik.",
+       "uploaded-setting-event-handler-svg": "Dilarang menetapkan atribut <i>event-handler</i>, terdapat <code>&lt;$1 $2=\"$3\"&gt;</code> dalam fail SVG yang dimuat naik.",
+       "uploaded-setting-href-svg": "Dilarang menggunakan teg \"set\" untuk menambahkan atribut \"href\" kepada elemen induk.",
+       "uploaded-wrong-setting-svg": "Dilarang menggunakan teg \"set\" untuk menambah sasaran jauh/data/skrip ke sebarang atribut. Terdapat <code>&lt;set to=\"$1\"&gt;</code> dalam fail SVG yang dimuat naik.",
+       "uploaded-image-filter-svg": "Terdapat penapis imej dengan URL: <code>&lt;$1 $2=\"$3\"&gt;</code> dalam fail SVG yang dimuat naik.",
        "uploadscriptednamespace": "Fail SVG ini mengandungi ruang nama terlarang \"$1\"",
        "uploadinvalidxml": "XML dalam fail yang dimuat naik ini tidak dapat dihuraikan.",
        "uploadvirus": "Fail tersebut mengandungi virus! Butiran: $1",
        "zip-wrong-format": "Fail yang dinyatakan bukan fail ZIP.",
        "zip-bad": "Fail ini adalah fail ZIP rosak atau tidak dapat dibaca.\nIa tidak dapat diperiksa dengan betul demi keselamatan.",
        "zip-unsupported": "Fail ini adalah fail ZIP yang menggunakan ciri-ciri ZIP tidak disokong oleh MediaWiki. \nIa tidak dapat diperiksa dengan betul demi keselamatan.",
-       "uploadstash": "Sorokan muat naik",
+       "uploadstash": "Stor muat naik",
        "uploadstash-summary": "Laman ini menyediakan capaian kepada fail-fail yang dimuat naik (atau sedang dimuat naik) tapi belum diterbitkan ke dalam wiki. Fail-fail ini tidak dapat dilihat oleh sesiapa melainkan pengguna yang memuatnaiknya.",
        "uploadstash-clear": "Bersihkan fail-fail sorokan",
        "uploadstash-nofiles": "Anda tiada sebarang fail sorokan.",
        "listfiles-delete": "hapus",
        "listfiles-summary": "Laman khas ini memaparkan semua fail yang telah dimuat naik.",
        "listfiles_search_for": "Cari nama imej:",
+       "listfiles-userdoesnotexist": "Akaun pengguna \"$1\" tidak berdaftar.",
        "imgfile": "fail",
        "listfiles": "Senarai fail",
        "listfiles_thumb": "Gambar kenit",
        "unusedimages": "Imej tidak digunakan",
        "wantedcategories": "Kategori dikehendaki",
        "wantedpages": "Laman dikehendaki",
+       "wantedpages-summary": "Senarai laman-laman tak wujud yang paling banyak pautan, tidak termasuk laman-laman yang berpautan dengan lencongan sahaja. Untuk senarai laman tak wujud yang mempunyai lencongan, rujuk [[{{#special:BrokenRedirects}}|senarai lencongan terputus]].",
        "wantedpages-badtitle": "Tajuk tidak sah dalam set keputusan: $1",
        "wantedfiles": "Fail dikehendaki",
        "wantedfiletext-cat": "Fail-fail berikut sedang digunakan tetapi tidak wujud. Fail-fail dari repositori asing mungkin tersenarai walaupun wujud. Sebarang positif palsu sedemikian akan <del>dipotong</del>. Tambahannya, laman-laman yang membenamkan fail-fail yang tidak wujud disenaraikan dalam [[:$1]].",
        "logempty": "Tiada item yang sepadan dalam log.",
        "log-title-wildcard": "Cari semua tajuk yang bermula dengan teks ini",
        "showhideselectedlogentries": "Tunjukkan/sorokkan entri-entri log yang terpilih",
+       "log-edit-tags": "Sunting teg-teg entri log terpilih",
        "allpages": "Semua laman",
        "nextpage": "Halaman berikutnya ($1)",
        "prevpage": "Halaman sebelumnya ($1)",
        "emailccsubject": "Salinan bagi mesej anda kepada $1: $2",
        "emailsent": "E-mel dikirim",
        "emailsenttext": "E-mel anda telah dikirim.",
-       "emailuserfooter": "E-mel ini telah dikirim oleh $1 kepada $2 menggunakan alat \"E-mel pengguna\" di {{SITENAME}}.",
+       "emailuserfooter": "E-mel ini telah dikirim oleh $1 kepada $2 oleh fungsi \"{{int:emailpage}}\" di {{SITENAME}}.",
        "usermessage-summary": "Meninggalkan pesanan sistem.",
        "usermessage-editor": "Utusan sistem",
        "watchlist": "Senarai pantau",
        "namespace": "Ruang nama:",
        "invert": "Kecualikan pilihan",
        "tooltip-invert": "Tandai kotak ini untuk menyorokkan perubahan dalam ruang nama yang dipilih (dan ruang nama yang berkaitan jika ditandai)",
+       "tooltip-whatlinkshere-invert": "Tandai kotak ini untuk menyorokkan pautan-pautan dari laman-laman dalam ruang nama yang dipilih.",
        "namespace_association": "Ruang nama berkaitan",
        "tooltip-namespace_association": "Tandai kotak ini untuk turut menyertakan ruang nama perbincangan atau subjek yang dikaitkan dengan ruang nama terpilih",
        "blanknamespace": "(Utama)",
        "thumbnail_image-missing": "Fail ini nampaknya hilang: $1",
        "thumbnail_image-failure-limit": "Terdapat terlalu banyak percubaan yang gagal ($1 atau lebih) untuk memaparkan thumbnail ini. Sila cuba lagi kemudian.",
        "import": "Import laman",
-       "importinterwiki": "Import transwiki",
-       "import-interwiki-text": "Sila pilih wiki dan tajuk laman yang ingin diimport.\nSemua tarikh semakan dan nama penyunting akan dikekalkan.\nSemua tindakan import transwiki dicatatkan dalam [[Special:Log/import|log import]].",
+       "importinterwiki": "Import dari wiki lain",
+       "import-interwiki-text": "Sila pilih wiki dan tajuk laman yang ingin diimport.\nSemua tarikh semakan dan nama penyunting akan dikekalkan.\nSemua pengimportan dari wiki lain dicatatkan dalam [[Special:Log/import|log import]].",
        "import-interwiki-sourcewiki": "Wiki sumber:",
        "import-interwiki-sourcepage": "Laman sumber:",
        "import-interwiki-history": "Salin semua versi sejarah bagi laman ini",
        "import-interwiki-templates": "Sertakan semua templat",
        "import-interwiki-submit": "Import",
+       "import-mapping-default": "Import ke lokasi-lokasi asali",
+       "import-mapping-namespace": "Import ke ruang nama:",
+       "import-mapping-subpage": "Import sebagai sublaman bagi laman berikut:",
        "import-upload-filename": "Nama fail:",
        "import-comment": "Komen:",
        "importtext": "Sila eksport fail daripada sumber wiki dengan menggunakan [[Special:Export|utiliti eksport]].\nSimpan dalam komputer anda dan muat naiknya di sini.",
        "importcantopen": "Fail import tidak dapat dibuka",
        "importbadinterwiki": "Pautan antara wiki rosak",
        "importsuccess": "Import selesai!",
-       "importnosources": "Tiada sumber import transwiki ditentunkan dan ciri muat naik sejarah secara terus dimatikan.",
+       "importnosources": "Wiki punca import tidak ditentukan, maka ciri-ciri muat naik langsung sejarah dimatikan.",
        "importnofile": "Tiada fail import dimuat naik.",
        "importuploaderrorsize": "Fail import tidak dapat dimuat naik kerana melebihi had muat naik yang dibenarkan.",
        "importuploaderrorpartial": "Fail import tidak dapat dimuat naik kerana tidak dimuat naik sampai habis.",
        "pageinfo-protect-cascading-yes": "Ya",
        "pageinfo-protect-cascading-from": "Perlindungan sedang melata dari",
        "pageinfo-category-info": "Keterangan kategori",
+       "pageinfo-category-total": "Jumlah ahli",
        "pageinfo-category-pages": "Bilangan halaman",
        "pageinfo-category-subcats": "Bilangan subkategori",
        "pageinfo-category-files": "Bilangan fail",
        "patrol-log-page": "Log pemeriksaan",
        "patrol-log-header": "Yang berikut ialah log rondaan bagi semakan.",
        "log-show-hide-patrol": "$1 log rondaan",
+       "log-show-hide-tag": "$1 log teg",
        "deletedrevision": "Menghapuskan semakan lama $1.",
        "filedeleteerror-short": "Ralat ketika menghapuskan fail: $1",
        "filedeleteerror-long": "Berlaku ralat ketika menghapuskan fail tersebut:\n\n$1",
        "exif-devicesettingdescription": "Huraian tetapan peranti",
        "exif-subjectdistancerange": "Julat jarak subjek",
        "exif-imageuniqueid": "ID unik imej",
-       "exif-gpsversionid": "Versi label GPS",
+       "exif-gpsversionid": "Versi teg GPS",
        "exif-gpslatituderef": "Latitud utara atau selatan",
        "exif-gpslatitude": "Latitud",
        "exif-gpslongituderef": "Logitud timur atau barat",
        "blankpage": "Laman kosong",
        "intentionallyblankpage": "Laman ini sengaja dibiarkan kosong dan digunakan untuk kerja-kerja ujian dan sebagainya.",
        "external_image_whitelist": " #Jangan ubah baris ini<pre>\n#Letakkan senarai ungkapan nalar (tidak termasuk apitan //) di baris kosong di bawah\n#Setiap ungkapan akan dipadankan dengan pautan imej luar\n#Pautan yang sepadan sahaja akan dijadikan imej, jika tidak hanya pautan kepada imej akan muncul\n#Baris yang bermula dengan aksara # diabaikan\n#Ini sensitif kepada atur huruf\n\n#Jangan letak ungkapan nalar di bawah baris ini dan jangan ubah baris ini</pre>",
-       "tags": "Label perubahan yang sah",
-       "tag-filter": "Tapis [[Special:Tags|label]]:",
+       "tags": "Teg-teg perubahan yang sah",
+       "tag-filter": "Tapis [[Special:Tags|teg]]:",
        "tag-filter-submit": "Tapis",
-       "tag-list-wrapper": "([[Special:Tags|Label]]: $2)",
-       "tags-title": "Label",
-       "tags-intro": "Yang berikut ialah senarai label yang digunakan untuk menanda suntingan, berserta maknanya.",
-       "tags-tag": "Nama label",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Teg|Teg-teg}}]]: $2)",
+       "tags-title": "Teg",
+       "tags-intro": "Yang berikut ialah senarai teg yang digunakan untuk menanda suntingan, berserta maknanya.",
+       "tags-tag": "Nama teg",
        "tags-display-header": "Rupa dalam senarai perubahan",
        "tags-description-header": "Keterangan makna",
        "tags-source-header": "Sumber",
        "tags-activate": "hidupkan",
        "tags-deactivate": "matikan",
        "tags-hitcount": "$1 perubahan",
+       "tags-manage-no-permission": "Anda tidak mempunyai keizinan untuk menguruskan teg suntingan.",
+       "tags-create-heading": "Cipta teg baru",
        "tags-create-explanation": "Secara asali, teg-teg yang baru dicipta akan dibuka untuk kegunaan pengguna dan juga bot.",
        "tags-create-tag-name": "Nama teg:",
        "tags-create-reason": "Sebab:",
        "tags-create-submit": "Cipta",
        "tags-create-no-name": "Anda mesti menyebut satu nama teg.",
        "tags-create-invalid-chars": "Nama teg tidak boleh mengandungi tanda koma (<code>,</code>) atau tanda miring (<code>/</code>).",
+       "tags-create-invalid-title-chars": "Nama teg tidak boleh mengandungi aksara-aksara yang tidak boleh digunakan dalam tajuk laman.",
        "tags-create-already-exists": "Teg \"$1\" sudah wujud.",
        "tags-create-warnings-above": "{{PLURAL:$2|Amaran|Amaran-amaran}} berikut ditemui ketika cuba mencipta teg \"$1\":",
        "tags-create-warnings-below": "Adakah anda hendak bersambung mencipta teg ini?",
+       "tags-delete-title": "Hapuskan teg",
        "tags-delete-explanation-initial": "Anda bakal menghapuskan teg \"$1\" dari pangkalan data.",
+       "tags-delete-explanation-in-use": "Teg ini akan digugurkan dari {{PLURAL:$2|$2|semua $2}} semakan atau entri log yang berkenaan.",
+       "tags-delete-explanation-warning": "Tindakan ini <strong>tidak boleh diundurkan</strong> dan <strong>tidak boleh dipulihkan</strong> oleh sesiapa juga termasuk penyelia pangkalan data. Pastikan sebaik-baiknya bahawa inilah teg yang anda hendak hapuskan.",
        "tags-delete-explanation-active": "<strong>Teg \"$1\" masih aktif dan akan terus dijalankan di masa akan datang.</strong> Untuk menghentikannya, pergi ke tempat(-tempat) di mana teg ini disetkan untuk dijalankan, dan matikannya di sana.",
        "tags-delete-reason": "Sebab:",
+       "tags-delete-submit": "Hapuskan teg ini juga",
        "tags-delete-not-allowed": "Teg-teg yang ditakrifkan oleh sambungan tidak boleh dihapuskan melainkan dibenarkan khususnya oleh sambungan berkenaan.",
        "tags-delete-not-found": "Teg \"$1\" tidak wujud.",
+       "tags-delete-too-many-uses": "Teg \"$1\" dikenakan pada lebih daripada $2 semakan, maka ia tidak boleh dihapuskan.",
+       "tags-delete-warnings-after-delete": "Teg \"$1\" berjaya dihapuskan, tetapi terdapat {{PLURAL:$2|amaran|amaran-amaran}} berikut:",
        "tags-activate-title": "Hidupkan teg",
        "tags-activate-question": "Anda bakal menghidupkan teg \"$1\".",
        "tags-activate-reason": "Sebab:",
+       "tags-activate-not-allowed": "Teg \"$1\" tidak boleh dihidupkan.",
        "tags-activate-not-found": "Teg \"$1\" tidak wujud.",
        "tags-activate-submit": "Hidupkan",
        "tags-deactivate-title": "Matikan teg",
        "tags-deactivate-reason": "Sebab:",
        "tags-deactivate-not-allowed": "Teg \"$1\" tidak boleh dimatikan.",
        "tags-deactivate-submit": "Matikan",
+       "tags-apply-no-permission": "Anda tidak mempunyai keizinan untuk mengenakan teg suntingan di samping suntingan anda.",
+       "tags-apply-not-allowed-one": "Teg \"$1\" tidak dibenarkan untuk dikenakan secara manual.",
+       "tags-apply-not-allowed-multi": "{{PLURAL:$2|Teg|Teg-teg}} berikut tidak boleh dikenakan secara manual: $1",
+       "tags-update-no-permission": "Anda tidak mempunyai keizinan untuk menambahkan atau menggugurkan teg-teg suntingan dari semakan atau entri log individu.",
+       "tags-update-add-not-allowed-one": "Teg \"$1\" tidak dibenarkan untuk ditambahkan secara manual.",
+       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|Teg|Teg-teg}} berikut tidak boleh ditambahkan secara manual: $1",
+       "tags-update-remove-not-allowed-one": "Teg \"$1\" tidak dibenarkan untuk digugurkan.",
+       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|Teg|Teg-teg}} berikut tidak boleh digugurkan secara manual: $1",
+       "tags-edit-title": "Sunting teg",
+       "tags-edit-manage-link": "Uruskan teg",
+       "tags-edit-revision-selected": "{{PLURAL:$1|Semakan|Semakan-semakan}} terpilih bagi [[:$2]]:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Peristiwa|Peristiwa-peristiwa}} log terpilih:",
+       "tags-edit-revision-legend": "Tambahkan atau gugurkan teg-teg dari {{PLURAL:$1|semakan ini|kesemua $1 semakan}}",
+       "tags-edit-logentry-legend": "Tambah atau gugurkan teg dari {{PLURAL:$1|entri log ini|kesemua $1 entri log}}",
+       "tags-edit-existing-tags": "Teg-teg sedia ada:",
+       "tags-edit-existing-tags-none": "''Tiada''",
+       "tags-edit-new-tags": "Teg-teg baru:",
+       "tags-edit-add": "Tambahkan teg-teg ini:",
+       "tags-edit-remove": "Gugurkan teg-teg ini:",
+       "tags-edit-remove-all-tags": "(gugurkan semua teg)",
+       "tags-edit-chosen-placeholder": "Pilih beberapa teg",
+       "tags-edit-chosen-no-results": "Tiada teg berpadanan dijumpai",
+       "tags-edit-reason": "Sebab:",
+       "tags-edit-revision-submit": "Kenakan perubahan pada {{PLURAL:$1|semakan ini|$1 semakan}}",
+       "tags-edit-logentry-submit": "Kenakan perubahan pada {{PLURAL:$1|entri log ini|$1 entri log}}",
+       "tags-edit-success": "Perubahan berjaya dikenakan.",
+       "tags-edit-failure": "Perubahan-perubahan tidak dapat dikenakan:\n$1",
+       "tags-edit-nooldid-title": "Semakan sasaran tidak sah",
+       "tags-edit-nooldid-text": "Sama anda anda belum menentukan sebarang semakan sasaran untuk melakukan fungsi ini atau semakan yang ditentukan tidak wujud.",
+       "tags-edit-none-selected": "Sila pilih sekurang-kurangnya satu teg untuk ditambahkan atau digugurkan.",
        "comparepages": "Perbandingan laman",
        "compare-page1": "Laman 1",
        "compare-page2": "Laman 2",
        "revdelete-uname-unhid": "nama pengguna terdedah",
        "revdelete-restricted": "mengenakan sekatan pada penyelia",
        "revdelete-unrestricted": "menarik sekatan daripada penyelia",
+       "logentry-block-block": "$1 telah {{GENDER:$2|menyekat}} {{GENDER:$4|$3}} selama $5 $6",
+       "logentry-block-unblock": "$1 telah {{GENDER:$2|menyahsekat}} {{GENDER:$4|$3}}",
+       "logentry-block-reblock": "$1 telah {{GENDER:$2|mengubah}} tetapan sekatan untuk {{GENDER:$4|$3}} selama $5 $6",
+       "logentry-suppress-block": "$1 telah {{GENDER:$2|menyekat}} {{GENDER:$4|$3}} selama $5 $6",
+       "logentry-suppress-reblock": "$1 telah {{GENDER:$2|mengubah}} tetapan sekatan untuk {{GENDER:$4|$3}} selama $5 $6",
+       "logentry-import-upload": "$1 telah {{GENDER:$2|mengimport}} $3 melalui pemuatnaikan fail",
+       "logentry-import-interwiki": "$1 telah {{GENDER:$2|mengimport}} $3 dari wiki lain",
        "logentry-merge-merge": "$1 telah {{GENDER:$2|menggabungkan}} $3 ke dalam $4 (pindaan sehingga $5)",
        "logentry-move-move": "$1 telah {{GENDER:$2|memindahkan}} laman $3 ke $4",
        "logentry-move-move-noredirect": "$1 telah {{GENDER:$2|memindahkan}} laman $3 ke $4 tanpa meninggalkan lencongan",
        "logentry-upload-overwrite": "$1 telah {{GENDER:$2|muat naik}} versi baru $3",
        "logentry-upload-revert": "$1 telah {{GENDER:$2|muat naik}} $3",
        "log-name-managetags": "Log pengurusan teg",
+       "log-description-managetags": "Laman ini menyenaraikan tugas-tugas berkenaan [[Special:Tags|teg]]. Lognya hanya mengandungi tindakan-tindakan yang dijalankan secara manual oleh penyelia; teg-teg boleh dicipta atau dihapuskan oleh perisian wiki tanpa tercatat entrinya dalam log ini.",
        "logentry-managetags-create": "$1 {{GENDER:$2|mencipta}} teg \"$4\"",
        "logentry-managetags-delete": "$1 {{GENDER:$2|menghapuskan}} teg \"$4\" (digugurkan dari $5 {{PLURAL:$5|semakan atau entri log}})",
        "logentry-managetags-activate": "$1 {{GENDER:$2|menghidupkan}} teg \"$4\" untuk kegunaan pengguna dan bot",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|mematikan}} teg \"$4\" untuk kegunaan pengguna dan bot",
+       "log-name-tag": "Log teg",
+       "log-description-tag": "Laman ini memaparkan ketika-ketika pengguna menambahkan atau menggugurkan [[Special:Tags|teg]] dari semakan atau log entri individu. Log ini tidak menyenaraikan tindakan teg senarai yang terjadi sebagai sebahagian daripada tindakan menyunting, menghapus atau sebagainya.",
+       "logentry-tag-update-add-revision": "$1 telah {{GENDER:$2|menambahkan}} {{PLURAL:$7|teg|teg-teg}} $6 pada semakan $4 bagi laman $3",
+       "logentry-tag-update-add-logentry": "$1 telah {{GENDER:$2|menambahkan}} {{PLURAL:$7|teg|teg-teg}} $6 pada entri log $5 bagi laman $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|menggugurkan}} {{PLURAL:$9|teg|teg-teg}} $8 dari semakan $4 pada laman $3",
+       "logentry-tag-update-remove-logentry": "$1 telah {{GENDER:$2|menggugurkan}} {{PLURAL:$9|teg|teg-teg}} $8 dari entri log $5 bagi laman $3",
+       "logentry-tag-update-revision": "$1 telah {{GENDER:$2|mengemaskinikan}} teg-teg pada semakan $4 pada $3 ({{PLURAL:$7|menambahkan}} $6; {{PLURAL:$9|menggugurkan}} $8)",
+       "logentry-tag-update-logentry": "$1 telah {{GENDER:$2|mengemaskinikan}} teg-teg pada entri log $5 bagi laman $3 ({{PLURAL:$7|menambahkan}} $6; {{PLURAL:$9|menggugurkan}} $8)",
        "rightsnone": "(tiada)",
        "revdelete-summary": "ringkasan",
        "feedback-adding": "Maklum balas sedang diisikan ke dalam laman...",
+       "feedback-back": "Kembali",
        "feedback-bugcheck": "Bagus! Cuma pastikan itu bukan salah satu [$1 pepijat] yang sedia diketahui.",
        "feedback-bugnew": "Saya dah semak. Laporkan pepijat baru",
        "feedback-bugornote": "Jika anda bersedia untuk menerangkan masalah teknikal secara terperinci, sila [$1 laporkan pepijat]. \nAtaupun, anda boleh menggunakan borang yang mudah di bawah. Ulasan anda akan dicatatkan pada laman \"[$3 $2]\", beserta nama pengguna anda dan pelayar yang anda gunakan.",
        "feedback-cancel": "Batalkan",
        "feedback-close": "Siap",
+       "feedback-external-bug-report-button": "Failkan tugas teknikal",
+       "feedback-dialog-title": "Hantar maklum balas",
+       "feedback-dialog-intro": "Anda boleh menggunakan borang yang mudah di bawah untuk menyerahkan maklum balas. Ulasan anda akan disiarkan pada laman \"$1\" di samping nama pengguna anda.",
+       "feedback-error-title": "Ralat",
        "feedback-error1": "Perhatian: Hasil dari API tidak dikenali",
        "feedback-error2": "Perhatian: Penyuntingan gagal",
        "feedback-error3": "Perhatian: Tiada gerak balas dari API",
+       "feedback-error4": "Ralat: Tidak dapat mengirim ke tajuk maklum balas yang ditentukan",
        "feedback-message": "Pesanan:",
        "feedback-subject": "Perkara:",
        "feedback-submit": "Hantar",
+       "feedback-terms": "Saya memahami bahawa maklumat ejen pengguna saya merangkumi maklumat mengenai versi pelayar web dan sistem operasi saya setepatnya, dan akan disiarkan secara umum di samping ulasan maklum balas saya.",
+       "feedback-termsofuse": "Saya setuju untuk memberikan maklum balas selaras dengan Syarat-Syarat Penggunaan.",
        "feedback-thanks": "Terima kasih! Maklum balas anda telah dicatatkan pada laman \"[$2 $1]\".",
+       "feedback-thanks-title": "Terima kasih!",
+       "feedback-useragent": "Ejen pengguna:",
        "searchsuggest-search": "Cari",
        "searchsuggest-containing": "mengandungi...",
        "api-error-badaccess-groups": "Anda tidak dibenarkan memuat naik fail di wiki ini.",
        "api-error-stashpathinvalid": "Laluan di mana fail disimpan sepatutnya didapati tidak sah.",
        "api-error-stashfilestorage": "Terdapat ralat semasa menyimpan fail dalam simpanan.",
        "api-error-stashzerolength": "Pelayan tidak dapat menyimpan fail, kerana ia mempunyai panjang sifar.",
+       "api-error-stashnotloggedin": "Anda mesti log masuk untuk menyimpan fail-fail dalam stor muat naik.",
+       "api-error-stashwrongowner": "Fail yang anda cuba akses dalam stor itu bukan milik anda.",
+       "api-error-stashnosuchfilekey": "Kunci fail yang anda cuba akses dalam stor itu tidak wujud.",
        "api-error-timeout": "Pelayan tidak bergerak balas dalam tempoh yang diharapkan.",
        "api-error-unclassified": "Berlakunya ralat yang tidak diketahui",
        "api-error-unknown-code": "Ralat tidak diketahui: \"$1\"",
        "expand_templates_generate_xml": "Papar pepohon hurai XML",
        "expand_templates_generate_rawhtml": "Paparkan HTML mentah",
        "expand_templates_preview": "Pralihat",
+       "expand_templates_preview_fail_html": "<em>Memandangkan {{SITENAME}} dibolehkan HTML mentah dan berlakunya kehilangan data sesi, maka pratayangan ini disembunyikan sebagai langkah berjaga-jaga terhadap serangan JavaScript.</em>\n\n<strong>Jika cubaan pratayang ini tiada salahnya, sila cuba lagi.</strong>\nJika ia masih tidak menjadi, cuba [[Special:UserLogout|log keluar]] dan log masuk semula.",
+       "expand_templates_preview_fail_html_anon": "<em>Memandangkan {{SITENAME}} dibolehkan HTML mentah dan berlakunya kehilangan data sesi, maka pratayangan ini disembunyikan sebagai langkah berjaga-jaga terhadap serangan JavaScript.</em>\n\n<strong>Jika cubaan pratayang ini tiada salahnya, sila [[Special:UserLogin|log masuk]] dan cuba lagi.</strong>",
        "pagelanguage": "Pemilih bahasa laman",
        "pagelang-name": "Laman",
        "pagelang-language": "Bahasa",
        "log-name-pagelang": "Log perubahan bahasa",
        "log-description-pagelang": "Ini adalah log untuk perubahan-perubahan bahasa laman.",
        "logentry-pagelang-pagelang": "$1 telah {{GENDER:$2|mengubahkan}} bahasa untuk laman $3 dari $4 ke $5.",
-       "default-skin-not-found": "Whoops! Rupa asli untuk wiki anda yang tertakrif dalam <code dir=\"ltr\">$wgDefaultSkin</code> sebagai <code>$1</code>, tidak disediakan.\n\nPasangan anda kelihatan untuk mempunyai rupa-rupa berikut. Lihat [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] untuk maklumat cara membolehkan mereka dan memilih yang asli.\n\n$2\n\n; Jika anda baru sahaja memasang MediaWiki:\n: Anda kemungkinan memasang dari git, atau terus dari kod sumber melalui cara lain. Ini adalah dijangka. Cubalah memasang beberapa rupa dari [https://www.mediawiki.org/wiki/Category:All_skins panduan rupa mediawiki.org], dengan:\n:* Memuat turun [https://www.mediawiki.org/wiki/Download pemasang tarball] yang terlengkap dengan beberapa rupa dan sambungan. Anda boleh menyalin dan menampal direktori <code>skins/</code> terus darinya.\n:* Mengklonkan salah satu repositori <code>mediawiki/skins/*</code> melalui git ke dalam direktori <code dir=\"ltr\">skins/</code> pasangan MediaWiki anda.\n: Perbuatan ini tidak patut mengganggu repositori git anda jika anda seorang pembangun MediaWiki.\n\n; Jika anda baru sahaja menaik taraf MediaWiki:\n: MediaWiki 1.24 dan ke atas tidak lagi membolehkan rupa-rupa yang dipasang secara automatik (lihat [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual:Skin autodiscovery]). Anda boleh menampalkan baris-baris berikut ke dalam <code>LocalSettings.php</code> untuk membolehkan semua rupa yang semasa dipasang:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Jika anda baru sahaja mengubah <code>LocalSettings.php</code>:\n: Semakkan lagi nama-nama rupa untuk kesalahan ejaan.",
-       "default-skin-not-found-no-skins": "Whoops! Rupa asli untuk wiki anda yang tertakrif dalam <code dir=\"ltr\">$wgDefaultSkin</code> sebagai <code>$1</code>, tidak disediakan.\n\nAnda tidak mempunyai rupa-rupa yang dipasang.\n\n; Jika anda baru sahaja memasang atau menaik taraf MediaWiki:\n: Anda kemungkinan memasang dari git, atau terus dari kod sumber melalui cara lain. Ini adalah dijangka. MediaWiki 1.24 dan ke atas tidak memasuki sebarang rupa dalam repositori utama. Cubalah memasang beberapa rupa dari [https://www.mediawiki.org/wiki/Category:All_skins panduan rupa mediawiki.org], dengan:\n:* Memuat turun [https://www.mediawiki.org/wiki/Download pemasang tarball] yang terlengkap dengan beberapa rupa dan sambungan. Anda boleh menyalin dan menampal direktori <code>skins/</code> terus darinya.\n:* Mengeklon salah satu repositori <code>mediawiki/skins/*</code> melalui git ke dalam direktori <code dir=\"ltr\">skins/</code> pasangan MediaWiki anda.\n: Perbuatan ini tidak patut mengganggu repositori git anda jika anda seorang pembangun MediaWiki. Lihat [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] untuk maklumat cara membolehkan mereka dan memilih yang asli.",
+       "default-skin-not-found": "Maaf, tidak terdapat rupa asali wiki anda yang tertakrif dalam <code dir=\"ltr\">$wgDefaultSkin</code> sebagai <code>$1</code>.\n\nNampaknya pemasangan anda merangkumi {{PLURAL:$4|rupa|rupa-rupa}} yang berikut. Rujuk [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] untuk cara-cara membolehkan {{PLURAL:$4|rupa tersebut|rupa-rupa tersebut serta memilih rupa asali}}.\n\n$2\n\n; Jika anda baru memasang MediaWiki:\n: Mungkin anda memasangnya dari git, atau terus dari kod sumber dengan menggunakan suatu kaedah lain. Perkara ini dijangka. Cuba pasang beberapa rupa dari [https://www.mediawiki.org/wiki/Category:All_skins direktori rupa mediawiki.org], dengan:\n:* Memuat turun [https://www.mediawiki.org/wiki/Download pemasang tarball] yang datang dengan beberapa rupa dan sambungan. Anda boleh menyalin-tampal direktori <code>skins/</code> daripadanya.\n:* Memuatkan satu persatu tarball rupa dari [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Menggunakan Git untuk memuat turun rupa].\n: Tindakan ini seharusnya tidak mengganggu repositori git anda jika anda seorang pembangun MediaWiki.\n\n; Jika anda baru menaik taraf MediaWiki:\n: MediaWiki 1.24 ke atas tidak lagi membolehkan  secara automatik rupa-rupa yang terpasang dari luaran (rujuk [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Anda boleh menampalkan {{PLURAL:$5|baris|baris-baris}} berikut kepada <code>LocalSettings.php</code> untuk membolehkan {{PLURAL:$5|rupa|semua rupa}} yang terpasang:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Jika anda baru mengubahsuai <code>LocalSettings.php</code>:\n: Semak nama-nama rupa untuk kesilapan ejaan.",
+       "default-skin-not-found-no-skins": "Maaf, tidak terdapat rupa asali wiki anda yang tertakrif dalam <code dir=\"ltr\">$wgDefaultSkin</code> sebagai <code>$1</code>.\n\nTiadanya rupa yang terpasang.\n\n; Jika anda baru memasang atau menaik taraf MediaWiki:\n: Mungkin anda memasangnya dari git, atau terus dari kod sumber dengan menggunakan suatu kaedah lain. Perkara ini dijangka. MediaWiki 1.24 ke atas tidak menyertakan sebarang rupa dalam repositori utama.  Cuba pasang beberapa rupa dari [https://www.mediawiki.org/wiki/Category:All_skins direktori rupa mediawiki.org], dengan:\n:* Memuatkan tarball rupa satu persatu dari [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Menggunakan Git untuk memuat turun rupa].\n: Tindakan ini seharusnya tidak mengganggu repositori git anda jika anda seorang pembangun MediaWiki. Rujuk [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] untuk cara-cara membolehkan penggunaan rupa-rupa serta memilih rupa asali.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (dibolehkan)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''dimatikan''')",
        "mediastatistics": "Statistik media",
        "json-error-recursion": "Sekurang-kurangnya satu rujukan rekursif untuk dikodkan di dalam nilai berkenaan",
        "json-error-inf-or-nan": "Sekurang-kurangnya satu nilai NAN atau INF untuk dikodkan di dalam nilai berkenaan",
        "json-error-unsupported-type": "Diberikannya nilai jenis yang tidak boleh dikodkan",
+       "headline-anchor-title": "Pautan ke bahagian ini",
        "special-characters-group-latin": "Rumi",
        "special-characters-group-latinextended": "Rumi lanjutan",
        "special-characters-group-ipa": "IPA",
index b9e8e4e..28c3fe8 100644 (file)
        "pool-queuefull": "Il-kju tal-''pool'' hi mimlija",
        "pool-errorunknown": "Problema mhux magħrufa",
        "pool-servererror": "Is-servizz kontra l-pool mhux disponibbli ($1).",
+       "poolcounter-usage-error": "Żball fl-użu: $1",
        "aboutsite": "Dwar {{SITENAME}}",
        "aboutpage": "Project:Dwar",
        "copyright": "Il-kontenut huwa disponibbli taħt il-liċenzja $1 sakemm mhux indikat mod ieħor.",
        "disclaimers": "Ċaħdiet",
        "disclaimerpage": "Project:Ċaħda ġenerali",
        "edithelp": "Gwida",
+       "helppage-top-gethelp": "Għajnuna",
        "mainpage": "Il-Paġna prinċipali",
        "mainpage-description": "Il-Paġna prinċipali",
        "policy-url": "Project:Politika",
        "readonly_lag": "Id-databażi ġiet awtomatikament magħluqa sakemm id-databażi inferjuri tas-server jilħqu ma' dak superjuri",
        "internalerror": "Problema interna",
        "internalerror_info": "Problema interna: $1",
+       "internalerror-fatal-exception": "Eċċezzjoni fatali tat-tip \"$1\"",
        "filecopyerror": "Ma setax jiġi kkuppjat il-fajl \"$1\" f' \"$2\".",
        "filerenameerror": "Il-fajl \"$1\" ma setax jiġi msemmi mill-ġdid għal \"$2\".",
        "filedeleteerror": "Il-fajl \"$1\" ma setax jiġi mħassar.",
        "no-null-revision": "Ma setghitx tinħoloq reviżjoni nulla ġdida għall-paġna \"$1\"",
        "badtitle": "Titlu ħażin",
        "badtitletext": "It-titlu tal-paġna rikjesta huwa invalidu, vojt, jew ġej minn żball fil-ħolqa bejn siti wiki differenti jew verżjonijiet ta' lingwi differenti tal-istess sit. Jista' wkoll ikollu wieħed jew aktar karattri li ma jistgħux jintużaw għat-titli.",
+       "title-invalid-empty": "It-titlu tal-paġna rikjesta huwa vojt jew jinkludi isem ta' spazju tal-isem.",
+       "title-invalid-utf8": "It-titlu tal-paġna rikjesta jinkludi sekwenza UTF-8 li mhix valida.",
+       "title-invalid-interwiki": "It-titlu jinkludi ħolqa interwiki",
+       "title-invalid-talk-namespace": "It-titlu tal-paġna rikjesta tirreferi għal paġna ta' diskussjoni li ma teżistix.",
+       "title-invalid-characters": "It-titlu tal-paġna rikjesta tinkludi karattri li mhumiex validi: \"$1\".",
+       "title-invalid-magic-tilde": "It-titlu tal-paġna rikjesta jinkludi sekwenza ħażina ta' ''tilde'' (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "It-titlu tal-paġna rikjesta huwa wisq twil. Ma jistax ikun itwal minn $1 byte kodifikat taħt il-UTF-8.",
+       "title-invalid-leading-colon": "It-titlu tal-paġna rikjesta jinkludi żewġ punti fil-bidu tat-titlu.",
        "perfcached": "L-informazzjoni li jmiss ġejja minn kopja ''cache'' u tista' ma tkunx aġġornata. Massimu ta'  {{PLURAL:$1|riżultat wieħed hu|$1 riżultati huma}} disponibbli fil-\"cache\".",
        "perfcachedts": "Id-dejta li jmiss ġejja minn kopja \"cache\" u l-aħħar aġġornament kien: $1. Mhux aktar minn {{PLURAL:$4|riżultat wieħed hu|$4 riżultati huma}} disponibbli fil-\"cache\".",
        "querypage-no-updates": "Aġġornamenti għal din il-paġna huma temporalment sospesi. L-Informazzjoni hawnhekk preżentament mhux qiegħed jiġi aġġornat.",
        "wrongpassword": "Il-password li daħħalt mhijiex tajba.\nJekk jogħġbok, erġa' pprova.",
        "wrongpasswordempty": "Ma ddaħlet l-ebda password.\nJekk jogħġbok, erġa' pprova.",
        "passwordtooshort": "Il-password trid tkun mill-inqas {{PLURAL:$1|karattru|$1 karattri}} twila u differenti mill-isem tal-utent.",
+       "passwordtoolong": "Il-password ma tistax tkun itwal minn {{PLURAL:$1|karattru wieħed|$1 karattri}}.",
        "password-name-match": "Il-password trid tkun differenti mill-isem tal-utent tiegħek.",
        "password-login-forbidden": "L-użu ta' dan l-isem tal-utent u l-password huwa projbit.",
        "mailmypassword": "Erġa' waqqaf kelma tad-dħul",
        "login-migrated-generic": "Il-kont tiegħek tmexxa u ismek ta' utent m'għadux jeżisti fuq dan il-wiki.",
        "loginlanguagelabel": "Lingwa: $1",
        "suspicious-userlogout": "Ir-rikjesta tiegħek li toħroġ barra mill-kont tiegħek ġiet miċħuda minħabba li jidher li din intbagħtet minn browser li ma jaħdimx jew minn proxy ta' caching.",
+       "createacct-another-realname-tip": "L-isem proprju mhuwiex huwa fakultattiv. Jekk tagħżel li ddaħlu, dan jiġi wżat biex jattribwixxi lill-utent ta' xogħlu.",
        "pt-login": "Idħol",
        "pt-login-button": "Idħol",
        "pt-createaccount": "Oħloq kont",
        "changeemail-submit": "Biddel l-indirizz elettroniku",
        "changeemail-throttled": "Ippruvajt tidħol wisq drabi.\nJekk jogħġbok stenna $1 qabel ma terġa' tipprova.",
        "resettokens": "Irrisettja t-tokens",
+       "resettokens-no-tokens": "M'hemm l-ebda ''token'' biex jerġa' jiġi ssettjat.",
+       "resettokens-legend": "Irrisettja t-''tokens''",
+       "resettokens-tokens": "''Tokens'':",
        "resettokens-token-label": "$1 (valur attwali: $2)",
        "bold_sample": "Tipa ħoxna",
        "bold_tip": "Tipa ħoxna",
        "postedit-confirmation-restored": "Il-paġna ġġeddet.",
        "postedit-confirmation-saved": "Il-modifika tiegħek ġiet salvata.",
        "edit-already-exists": "Ma tistax tinħoloq din il-paġna.\nDin teżisti diġà.",
+       "defaultmessagetext": "Test tal-messaġġ awtomatiku",
        "editwarning-warning": "Jekk tħalli din il-paġna jista' jwassal sabiex titlef kwalunkwe tibdil li tkun għamilt. Jekk int tinsab fil-kont tiegħek, tista' tneħħi dan l-avviż fis-sezzjoni \"Modifiki\" tal-preferenzi tiegħek.",
+       "editpage-notsupportedcontentformat-title": "Il-format tal-kontenut mhuwiex kompatibbli.",
+       "editpage-notsupportedcontentformat-text": "Il-format tal-kontenut $1 mhuwex kompatibbli mal-mudell tal-kontenut $2.",
        "content-model-wikitext": "test tal-wiki",
        "content-model-text": "test normali",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "content-json-empty-object": "Oġġett vojt",
        "expensive-parserfunction-warning": "'''Twissija:''' Din il-paġna għandha ħafna sejħiet għall-funzjonijiet parser.\n\nSuppost irid ikollha inqas minn $2, bħalissa hemm {{PLURAL:$1|waħda|$1}}.",
        "expensive-parserfunction-category": "Paġni b'ħafna sejħiet ta' funżjonijiet ta' analiżi għoljien.",
        "post-expand-template-inclusion-warning": "Twissija: Id-Daqs tal-kontenut ta' template hija wisq kbira.\nFtit templates mhux se jiġu inkluża.",
        "histlegend": "Selezzjoni diff: marka l-kaxxi tar-radju tal-verżjonijiet sabiex tagħmel paragun u agħfas enter jew il-buttuna fin-naħħa t'isfel.<br />\nLeġġenda: (kur) = differenzi bil-verżjoni kurrenti,\n(l-aħħar) = differenzi bil-verżjoni preċedenti, M = modifiki żgħar.",
        "history-fieldset-title": "Fittex fil-kronoloġija",
        "history-show-deleted": "Dawk biss imħassra",
-       "histfirst": "L-iġded",
-       "histlast": "L-eqdem",
+       "histfirst": "l-eqdem",
+       "histlast": "l-iġded",
        "historysize": "({{PLURAL:$1|1 byte|$1 bytes}})",
        "historyempty": "(vojta)",
        "history-feed-title": "Kronoloġija",
        "revdelete-no-file": "Il-fajl speċifikat ma jeżistix.",
        "revdelete-show-file-confirm": "Tinsab ċert li trid tara reviżjoni mħassra tal-fajl \"<nowiki>$1</nowiki>\" tal-$2 fil-$3?",
        "revdelete-show-file-submit": "Iva",
+       "revdelete-selected-text": "{{PLURAL:$1|Reviżjoni|Reviżjonijiet}} magħżula ta' [[:$2]]:",
+       "revdelete-selected-file": "{{PLURAL:$1|Verżjoni tal-fajl magħżul|Verżjonijiet tal-fajl magħżula}} ta' [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|Avveniment tar-reġistru magħżul|Avvenimenti tar-reġistri magħżula}}:",
        "revdelete-confirm": "Jekk jogħġbok ikkonferma li dan hu dak li tixtieq tagħmel, li tifhem il-konsegwenzi, u li qed tagħmel dan skont il-[[{{MediaWiki:Policy-url}}|politika]].",
        "revdelete-suppress-text": "It-trażżin għandu jintuża '''biss''' għall-każijiet segwenti:\n* Potenzjal ta' kontenut libelluż\n* Informazzjoni personali mhux xierqa\n*: ''indirizzi postali u numri tat-telefowns, numri tas-sigurtà soċjali, eċċ.''",
        "revdelete-legend": "Oħloq limiti ta' viżibilità",
-       "revdelete-hide-text": "Aħbi l-kontenut tar-reviżjoni",
+       "revdelete-hide-text": "Test tar-reviżjoni",
        "revdelete-hide-image": "Aħbi l-kontenut tal-fajl",
        "revdelete-hide-name": "Aħbi l-azzjoni u it-tarka",
-       "revdelete-hide-comment": "Aħbi kumment tal-modifika",
+       "revdelete-hide-comment": "Taqsira",
        "revdelete-hide-user": "Aħbi l-isem tal-utent/IP tal-modifikatur",
        "revdelete-hide-restricted": "Aħbi d-dati indikati anki lill-amministraturi.",
        "revdelete-radio-same": "(tbiddilx)",
-       "revdelete-radio-set": "Iva",
-       "revdelete-radio-unset": "Le",
+       "revdelete-radio-set": "Moħbi",
+       "revdelete-radio-unset": "Viżibbli",
        "revdelete-suppress": "Aħbi l-informazzjoni minn Amministraturi wkoll bħall-oħrajn",
        "revdelete-unsuppress": "Neħħi limiti fuq reviżjonijiet irkuprati",
        "revdelete-log": "Raġuni:",
        "compareselectedversions": "Qabbel il-verżjonijiet magħżula",
        "showhideselectedversions": "Uri/aħbi reviżjonijiet magħżula",
        "editundo": "ħassar",
+       "diff-empty": "(L-ebda differenza)",
        "diff-multi-sameuser": "(Mhux qed {{PLURAL:$1|tintwera r-reviżjoni intermedja|jintwerew $1 r-reviżjonijiet intermedji}} mill-istess awtur)",
        "diff-multi-manyusers": "(Mhux qed {{PLURAL:$1|tintwera reviżjoni intermedja|jintwerew $1 reviżjonijit intermedji}} mingħand iktar minn $2 {{PLURAL:$2|utent|$2 utenti}})",
        "searchresults": "Riżultat tat-tfittxija",
        "notextmatches": "L-ebda test ta' paġna ma jaqbel",
        "prevn": "{{PLURAL:$1|$1}} ta' qabel",
        "nextn": "{{PLURAL:$1|$1}} li jmiss",
+       "prev-page": "paġna preċedenti",
+       "next-page": "paġna li jmiss",
        "prevn-title": "{{PLURAL:$1|Riżultat preċedenti|$1 riżultati preċedenti}}",
        "nextn-title": "{{PLURAL:$1|Riżultat suċċessiv|$1 riżultati suċċessivi}}",
        "shown-title": "Uri {{PLURAL:$1|riżultat|$1 riżultati}} kull paġna",
        "search-result-category-size": "{{PLURAL:$1|membru wieħed|$1 membri}} ({{PLURAL:$2|sottokategorija waħda|$2 sottokategoriji}}, {{PLURAL:$3|fajl wieħed|$3 fajls}})",
        "search-redirect": "(rindirizza $1)",
        "search-section": "(sezzjoni $1)",
+       "search-category": "(kategorija $1)",
        "search-suggest": "Trid tfisser: $1",
        "search-interwiki-caption": "Proġetti kuġini",
-       "search-interwiki-default": "Riżultati ta' $1:",
+       "search-interwiki-default": "Riżultati minn $1:",
        "search-interwiki-more": "(aktar)",
        "search-relatedarticle": "Relatati",
        "searchrelated": "relatati",
        "preferences": "Preferenzi",
        "mypreferences": "Preferenzi",
        "prefs-edits": "Numru ta' modifiki:",
+       "prefsnologintext2": "Jekk jogħġbok idħol fil-kont tiegħek biex tbiddel il-preferenzi.",
        "prefs-skin": "Aspett grafiku (skin)",
        "skin-preview": "dehra proviżorja",
        "datedefault": "L-ebda preferenza",
        "prefs-personal": "Profil tal-utent",
        "prefs-rc": "Modifiki riċenti",
        "prefs-watchlist": "Osservazzjoni speċjali",
+       "prefs-editwatchlist": "Immodifika l-lista ta' osservazzjonijiet",
+       "prefs-editwatchlist-clear": "Ħassar il-lista ta' osservazzjonijiet",
        "prefs-watchlist-days": "Numru ta' ġranet li għandu jintwera fil-osservazzjoni speċjali:",
        "prefs-watchlist-days-max": "Massimu ta' $1 {{PLURAL:$1|ġurnata|ġranet}}",
        "prefs-watchlist-edits": "Numru ta' modifiki li tista' turi bil-funżjoni avvanzata:",
        "prefs-advancedwatchlist": "Opzjonijiet avvanzati",
        "prefs-displayrc": "Opzjonijiet ta' viżwalizazzjoni",
        "prefs-displaywatchlist": "Opzjonijiet ta' viżwalizazzjoni",
+       "prefs-tokenwatchlist": "<em>Token</em>",
        "prefs-diffs": "Differenzi",
+       "prefs-help-prefershttps": "Din il-preferenza se tieħu effett mal-login li jmiss.",
+       "prefswarning-warning": "Għamilt xi tibdil fil-preferenzi tiegħek li għandhomx ma ġewx issejvjati. Jekk se titlaq minn din il-paġna mingħajr ma tagħfas fuq \"$1\", il-preferenzi tiegħek mhumiex se jiġu aġġornati.",
+       "prefs-tabs-navigation-hint": "Suġġeriment: Tista' tuża l-vleġġeġ tax-xellug u l-lemin tat-tastiera sabiex tinnaviga bejn sezzjoni u oħra.",
        "email-address-validity-valid": "L-indirizz elettroniku jidher validu",
        "email-address-validity-invalid": "Daħħal indirizz elettroniku validu",
        "userrights": "Ġestjoni tad-drittijiet tal-utent",
        "userrights-notallowed": "Il-kont tiegħek m'għandux il-permessi neċessarji li jżid jew ineħħi drittijiet tal-utent.",
        "userrights-changeable-col": "Gruppi li tista' tbiddel",
        "userrights-unchangeable-col": "Gruppi li ma tistax tbiddel",
+       "userrights-removed-self": "Neħħejt b'suċċess id-drittijiet tiegħek. B'hekk, m'għadekx tista' taċċessa din il-paġna.",
        "group": "Grupp:",
        "group-user": "Utenti",
        "group-autoconfirmed": "Utenti konfermati awtomatikament",
        "right-move": "Imexxi paġni",
        "right-move-subpages": "Imexxi paġni flimkien mas-sottopaġni tagħhom",
        "right-move-rootuserpages": "Imexxi paġni prinċipali tal-utenti",
+       "right-move-categorypages": "Imexxi l-kategoriji",
        "right-movefile": "Imexxi fajls",
        "right-suppressredirect": "Ma joħloqx rindirizz awtomatiku meta jmexxi paġna",
        "right-upload": "Itella' fajls",
        "right-browsearchive": "Uri paġni mħassra",
        "right-undelete": "Irkupra paġna",
        "right-suppressrevision": "Irrevedi u rkupra reviżjonijiet moħbija mill-amministraturi",
+       "right-viewsuppressed": "Ara reviżjonijiet moħbija minn kwalunkwe utent",
        "right-suppressionlog": "Uri reġistri privati",
        "right-block": "Blokka utenti oħrajn mill-modifikar",
        "right-blockemail": "Blokka utent milli jkun jista' jibgħat posta elettronika",
        "right-unblockself": "Jiżblokkaw lilhom infushom",
        "right-protect": "Modifika l-livell ta' protezzjoni",
        "right-editprotected": "Modifika paġni protetti",
+       "right-editcontentmodel": "Jimmodifika l-mudell ta' kontenut ta' paġna",
        "right-editinterface": "Immodifika l-interfaċċa tal-utent",
        "right-editusercssjs": "Modifika l-fajls CSS u JS ta' utenti oħrajn",
        "right-editusercss": "Modifika l-fajls CSS ta' utenti oħrajn",
        "right-edituserjs": "Modifika l-fajls JS ta' utenti oħrajn",
+       "right-editmyusercss": "Immodifika l-fajls tas-CSS personali",
+       "right-editmyuserjs": "Immodifika l-fajls tal-JavaScript personali",
+       "right-viewmywatchlist": "Ara l-lista ta' osservazzjonijiet tiegħek",
+       "right-editmywatchlist": "Jimmodifika l-lista ta' osservazzjonijiet personali. Kun af li ċerti azzjonijiet jistgħu jżidu paġni anke mingħajr dan id-dritt.",
+       "right-viewmyprivateinfo": "Jara l-informazzjoni personali tiegħu (eż. indirizz elettroniku, isem proprju)",
+       "right-editmyprivateinfo": "Jimmodifika l-informazzjoni personali tiegħu (eż. indirizz elettroniku, isem proprju)",
+       "right-editmyoptions": "Immodifika l-preferenzi tiegħek",
        "right-rollback": "Rollback malajr il-modifiki ta' l-aħħar utent li għamel modifiki f'paġna partikulari",
        "right-markbotedits": "Marka modifiki speċifiki bħalha modifiki ta' bot",
        "right-noratelimit": "Mhux suġġett ta' limitu ta' azzjoni",
        "right-override-export-depth": "Jesporta paġni li jinkludu paġni b'ħoloq sa fond ta' 5",
        "right-sendemail": "Jibgħat ittri-e lil utenti oħra",
        "right-passwordreset": "Jara l-messaġġi tal-impostazzjoni mill-ġdid tal-password",
+       "right-managechangetags": "Joħloq u jħassar [[Special:Tags|tikketti]] mid-''database''",
+       "right-applychangetags": "Japplika [[Special:Tags|tikketti]] flimkien mal-modifiki tiegħu",
+       "right-changetags": "Iżid u jneħħi [[Special:Tags|tikketti]] partikulari f'reviżjonijiet u f'daħliet fir-reġistru",
        "newuserlogpage": "Utenti ġodda",
        "newuserlogpagetext": "Dan hu reġistru tal-kreazzjoni ta' kontijiet ġodda.",
        "rightslog": "Drittijiet tal-utenti",
        "action-createpage": "oħloq paġni",
        "action-createtalk": "oħloq paġni ta' diskussjoni",
        "action-createaccount": "oħloq dan il-kont tal-utent",
+       "action-history": "tara l-kronoloġija ta' din il-paġna",
        "action-minoredit": "timmarka din il-modifika bħala waħda minuri",
        "action-move": "tmexxi din il-paġna",
        "action-move-subpages": "mexxi din il-paġna, u s-sottopaġni",
        "action-move-rootuserpages": "imexxi l-paġni prinċipali tal-utenti",
+       "action-move-categorypages": "tmexxi l-kategoriji",
        "action-movefile": "mexxi dan il-fajl",
        "action-upload": "tella' dan il-fajl",
        "action-reupload": "tikteb fuq dan il-fajl eżistenti",
        "action-suppressionlog": "ara dan il-log privat",
        "action-block": "imblokka lil dan l-utent milli jimmodifika",
        "action-protect": "biddel il-livelli ta' protezzjoni għal din il-paġna",
-       "action-import": "timporta din il-paġna minn wiki oħra",
-       "action-importupload": "timporta din il-paġna minn tlugħ ta' fajl",
+       "action-import": "timporta paġni minn wiki oħra",
+       "action-importupload": "timporta paġni mit-tlugħ ta' fajls",
        "action-patrol": "timmarka l-modifiki ta' utenti oħrajn bħala verifikati",
        "action-autopatrol": "timmarka l-modifiki tiegħek stess bħala verifikati",
        "action-unwatchedpages": "uri l-lista ta' paġni li mhumiex osservati",
        "action-userrights-interwiki": "timmodifika d-drittijiet tal-utenti fuq wikis oħra",
        "action-siteadmin": "timblokka jew tiżblokka d-databażi",
        "action-sendemail": "ibgħat l-ittri-e",
+       "action-editmywatchlist": "timmodifika l-lista ta' osservazzjonijiet tiegħek",
+       "action-viewmywatchlist": "tara l-lista ta' osservazzjonijiet tiegħek",
+       "action-viewmyprivateinfo": "tara l-informazzjoni personali tiegħek",
+       "action-editmyprivateinfo": "timmodifika l-informazzjoni personali tiegħek",
+       "action-editcontentmodel": "timmodifika l-mudell ta' kontenut ta' paġna",
+       "action-managechangetags": "toħloq u tħassar tikketti mid-''database''",
+       "action-applychangetags": "tapplika tikketti flimkien mal-modifiki tiegħek",
+       "action-changetags": "iżżid u tneħħi tikketti partikulari f'reviżjonijiet u f'daħliet fir-reġistru",
        "nchanges": "{{PLURAL:$1|modifika $1 |$1 modifiki}}",
+       "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|mill-aħħar żjara}}",
        "enhancedrc-history": "kronoloġija",
        "recentchanges": "Bidliet riċenti",
        "recentchanges-legend": "Opzjonijiet tat-tibdil riċenti",
        "rcshowhideanons-hide": "Aħbi",
        "rcshowhidepatr": "$1 modifiki kontrollati",
        "rcshowhidepatr-show": "Uri",
+       "rcshowhidepatr-hide": "Aħbi",
        "rcshowhidemine": "$1 modifiki tiegħi",
        "rcshowhidemine-show": "Uri",
        "rcshowhidemine-hide": "Aħbi",
        "rc_categories_any": "Kwalunkwe",
        "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} wara l-modifika",
        "newsectionsummary": "/* $1 */ sezzjoni ġdida",
-       "rc-enhanced-expand": "Uri d-dettalji (hemm bżonn tal-JavaScript)",
+       "rc-enhanced-expand": "Uri d-dettalji",
        "rc-enhanced-hide": "Aħbi d-dettalji",
        "rc-old-title": "oriġinarjament maħluqa bħala \"$1\"",
        "recentchangeslinked": "Tibdil relatat",
        "ignorewarnings": "Injora kull twissija",
        "minlength1": "L-ismijiet tal-fajls għandhom ikunu ta' l-inqas ittra waħda.",
        "illegalfilename": "L-Isem tal-fajl \"$1\" għandu karattri li mhux permessi fit-titli ta' paġna. Jekk jogħġbok agħti isem ġdid lil fajl u prova tellgħu mill-ġdid.",
+       "filename-toolong": "L-ismijiet tal-fajls ma jistgħux ikunu ikbar minn 240 byte.",
        "badfilename": "Isem il-fajl ġie mibdul għal \"$1\".",
        "filetype-mime-mismatch": "L-estensjoni tal-fajl \".$1\" ma taqbilx mat-tip MIME li nstab fil-fajl ($2).",
        "filetype-badmime": "Mhux permess li fajls jiġu ''uploaded'' ta' tip MIME \"$1\".",
        "largefileserver": "Il-Fajl għandu dimenżjoni akbar minn dak konsentit mill-konfigurazzjoni tas-server.",
        "emptyfile": "Il-Fajl li ġie ''uploaded'' jidher li huwa vojt. Dan jista' jkun minħabba żball fl-isem tal-fajl.\nJekk jogħġbok verifika jekk xorta waħda trid itella' dan il-fajl.",
        "windows-nonascii-filename": "Din il-wiki ma taċċettax ismijiet tal-fajls b'karattri speċjali.",
-       "fileexists": "Fajl b'dan l-isem ġa jeżisti, jekk jogħġbok verifika l-ewwel <strong>[[:$1]]</strong> jekk ma tridx tikteb fuqu.\n[[$1|thumb]]",
+       "fileexists": "Fajl b'dan l-isem diġà jeżisti. Jekk jogħġbok, ivverifika qabel <strong>[[:$1]]</strong> jekk ma tridx tikteb fuqu.\n[[$1|thumb]]",
        "filepageexists": "Il-paġna ta' deskrizzjoni għal dan il-fajl diġà ġiet maħluqa f'<strong>[[:$1]]</strong>, iżda l-ebda fajl b'dan l-isem ma jeżisti. It-taqsira li daħħalt mhux se tidher fuq il-paġna ta' deskrizzjoni.\nSabiex it-taqsira tidher fuq il-paġna ta' deskrizzjoni, huwa neċessarju li timmodifikaha manwalment.\n[[$1|thumb]]",
        "fileexists-extension": "Diġà jeżisti fajl b'isem simili: [[$2|thumb]]\n* L-isem tal-fajl imtella': <strong>[[:$1]]</strong>\n* L-isem tal-fajl eżistenti: <strong>[[:$2]]</strong>\nJekk jogħġbok, agħżel isem differenti.",
        "fileexists-thumbnail-yes": "Il-fajl li ttella' jidher li huwa stampa żgħira ''(minjatura)''. [[$1|thumb]]\nJekk jogħġbok, iċċekkja dan il-fajl <strong>[[:$1]]</strong>.\nJekk il-fajl li ċċekkjajt huwa l-istess stampa fid-daqs oriġinali, m'hemmx bżonn li ttella' minjatura oħra.",
        "uploaddisabledtext": "It-tlugħ ta' fajls mhuwiex attiv.",
        "php-uploaddisabledtext": "It-tlugħ tal-fajls permezz tal-PHP huwa diżattivat. Iċċekkja l-konfigurazzjoni ta' file_uploads.",
        "uploadscripted": "Dan il-fajl fih kodiċi ta' ''HTML'' u ''script'' li jista' jkun interpretat hażin mill-''web browser''.",
+       "uploadscriptednamespace": "Il-fajl SVG jinkludi spazju tal-isem \"$1\" li mhuwiex permess.",
+       "uploadinvalidxml": "L-XML fil-fajl imtella' ma setax jiġi analizzat.",
        "uploadvirus": "Dan il-fajl huwa infettat b'virus! Dettalji: $1",
        "uploadjava": "Il-fajl huwa fajl ZIP li jinkludi fajl .class tal-Java.\nIt-tlugħ ta' fajls tal-Java mhuwiex permess, minħabba li jistgħu jaqbżu restrizzjonijiet ta' sigurtà.",
        "upload-source": "Sors tal-fajl",
        "upload-misc-error-text": "Waqt li l-fajl kien qed jittella', ġiet verifikata problema mhux magħrufha.<br />\nIvverifika li l-URL huwa validu u aċċessibbli, u erġa' pprova.<br />\nJekk il-problema tkompli tippersisti, ikkuntatja lil xi [[Special:ListUsers/sysop|amministratur]].",
        "upload-too-many-redirects": "Il-URL kienet tinkludi diversi rindirizzi",
        "upload-http-error": "Qam żball HTTP: $1",
+       "backend-fail-notexists": "Il-fajl $1 diġà jeżisti.",
+       "backend-fail-hashes": "Il-''hashes'' tal-fajls ma setgħux jiġu miksuba għall-konfront.",
+       "backend-fail-notsame": "Fajl mhux identiku jeżisti f'\"$1\".",
+       "backend-fail-invalidpath": "\"$1\" mhuwiex post valid għall-arkivjar.",
        "backend-fail-delete": "Il-fajl \"$1\" ma setax jiġi mħassar.",
        "backend-fail-alreadyexists": "Il-fajl \"$1\" diġà jeżisti.",
+       "backend-fail-store": "Il-fajl \"$1\" ma setax jiġi maħżun fuq \"$2\".",
+       "backend-fail-copy": "Il-fajl \"$1\" ma setax jiġi kkupjat fuq \"$2\".",
+       "backend-fail-move": "Il-fajl \"$1\" ma setax jiġi mmexxi fuq \"$2\".",
+       "backend-fail-opentemp": "Il-fajl temporanju ma setax jinfetaħ.",
+       "backend-fail-writetemp": "Il-fajl temporanju ma setax jinkiteb.",
+       "backend-fail-closetemp": "Il-fajl temporanju ma setax jingħalaq.",
        "backend-fail-read": "Il-fajl \"$1\" ma jistax jinqara.",
        "backend-fail-create": "Il-fajl \"$1\" ma jistax jinkiteb.",
+       "backend-fail-maxsize": "Il-fajl \"$1\" ma setax jinkiteb minħabba li huwa ikbar minn {{PLURAL:$2|byte|$2 byte}}.",
        "zip-file-open-error": "Qam żball waqt il-ftuħ tal-fajl għall-kontrolli ZIP.",
        "zip-wrong-format": "Il-fajl speċifikat ma kienx fajl ZIP.",
        "zip-bad": "Il-fajl huwa korrott jew inkella ma jistax jinqara.\nMa jistax jiġi kkontrollat għas-sigurtà b'mod adegwat.",
        "license-nopreview": "(Dehra proviżorja mhix disponibbli)",
        "upload_source_url": " (URL validu u aċċessibli)",
        "upload_source_file": " (fajl fuq il-komputer tiegħek)",
-       "listfiles-summary": "Din il-paġna speċjali turi l-fajls kollha mtella'.\nMeta r-riżultati huma ffiltrati, jintwerew biss dawk il-fajls li l-utent tella' l-aktar verżjoni riċenti.",
+       "listfiles-delete": "ħassar",
+       "listfiles-summary": "Din il-paġna speċjali turi l-fajls kollha mtella'.",
        "listfiles_search_for": "Fittex stampi skont l-isem:",
+       "listfiles-userdoesnotexist": "L-utent \"$1\" mhuwiex reġistrat.",
        "imgfile": "fajl",
        "listfiles": "Lista tal-fajl",
        "listfiles_thumb": "Minjatura",
        "listfiles_size": "Daqs",
        "listfiles_description": "Deskrizzjoni",
        "listfiles_count": "Verżjonijiet",
+       "listfiles-show-all": "Inkludi verżjonijiet qodma tal-istampi",
+       "listfiles-latestversion": "Verżjoni attwali",
+       "listfiles-latestversion-yes": "Iva",
+       "listfiles-latestversion-no": "Le",
        "file-anchor-link": "Fajl",
        "filehist": "Kronoloġija tal-fajl",
        "filehist-help": "Agħfas fuq il-grupp data/ħin biex tara l-fajl biex tara kif jidher dak il-ħin.",
        "filedelete-maintenance": "It-tħassir u r-restawr ta' fajls huwa diżattivat għall-mument minħabba xi manutenzjoni.",
        "filedelete-maintenance-title": "Il-fajl ma jistax jiġi mħassar",
        "mimesearch": "Fittex fil-bażi għal tip MIME",
-       "mimesearch-summary": "Din il-paġna tippermetti l-iffiltrar ta' fajls abbażi tat-tip MIME.\nDaħħal: tip/sottotip, eż. <code>image/jpeg</code>.",
+       "mimesearch-summary": "Din il-paġna tippermetti li tiffiltra l-fajls skont it-tip MIME.\nDaħħal: tip/sottotip jew tip/*, eż. <code>image/jpeg</code>.",
        "mimetype": "Tip MIME:",
        "download": "niżżel",
        "unwatchedpages": "Paġni mhux osservati",
        "listredirects": "Lista ta' rindirizzi",
+       "listduplicatedfiles": "Lista ta' fajls duplikati",
+       "listduplicatedfiles-summary": "Din hija lista ta' fajls fejn l-iktar verżjoni riċenti ta' fajl huwa duplikat ta' verżjoni iktar riċenti ta' xi fajls oħra. Fajls lokali biss huma kkunsidrati.",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]] għandu [[$3|{{PLURAL:$2|dulikat|$2 duplikati}}]].",
        "unusedtemplates": "Templates mhux użati",
        "unusedtemplatestext": "F'din il-paġna hawn il-lista ta' paġni fl-ispazju tal-isem {{ns:template}} li mhumiex inklużi fl-ebda paġna. Qabel ma tħassarhom huwa opportun li tivverifika li dawn il-mudelli m'għandhomx ħoloq oħra.",
        "unusedtemplateswlh": "links oħrajn",
        "randompage": "Paġna kwalunkwe",
        "randompage-nopages": "M'hemm l-ebda paġna fl-{{PLURAL:$2|ispazju tal-isem|ispazji tal-isem}} segwenti: $1.",
+       "randomincategory": "Paġna kwalunkwe fil-kategorija",
+       "randomincategory-invalidcategory": "\"$1\" mhuwiex isem validu għal kategorija.",
+       "randomincategory-nopages": "M'hemm l-ebda paġna fil-kategorija [[:Category:$1|$1]].",
+       "randomincategory-category": "Kategorija:",
+       "randomincategory-legend": "Paġna kwalunkwe fil-kategorija",
        "randomredirect": "Rindirizz kwalunkwe",
        "randomredirect-nopages": "M'hawnx riindirizzi fl-ispazju tal-isem \"$1\".",
        "statistics": "Statistika",
        "wantedpages-badtitle": "Titlu invalidu fil-grupp ta' riżultati: $1",
        "wantedfiles": "Fajls rikjesti",
        "wantedfiletext-nocat": "Il-fajls segwenti huma wżati, imma ma jeżistux. Fajls minn repożitorji barranin jistgħu jkunu elenkati minkejja li ma jeżistux. Dawn il-falzi pożittivi jkunu <del>maqtugħin</del>.",
+       "wantedfiletext-nocat-noforeign": "Il-fajls segwenti huma wżati imma ma jeżistux.",
        "wantedtemplates": "Mudelli rikjesti",
        "mostlinked": "Paġni bl-ikbar numru ta' links li jwasslu għalihom",
        "mostlinkedcategories": "Kategoriji bl-ikbar numru ta' links li jwasslu għalihom",
-       "mostlinkedtemplates": "L-iktar mudelli wżati",
+       "mostlinkedtemplates": "L-iktar paġni wżati",
        "mostcategories": "Paġni bl-ikbar numru ta' kategoriji",
        "mostimages": "Fajls bl-ikbar numru ta' links li jwasslu għalihom",
        "mostinterwikis": "Paġni bl-iktar interwikis",
        "mostrevisions": "Paġni bl-ikbar numru ta' reviżjonijiet",
        "prefixindex": "Il-paġni kollha bil-prefiss",
        "prefixindex-namespace": "Il-paġni kollha bil-prefiss tal-ispazju tal-isem $1",
+       "prefixindex-strip": "Aħbi l-prefiss fil-lista",
        "shortpages": "Paġni qosra",
        "longpages": "Paġni twal",
        "deadendpages": "Paġni bla ħruġ",
        "deadendpagestext": "Il-Paġni segwenti m'għandhomx link għal paġna oħra.",
        "protectedpages": "Paġni protetti",
        "protectedpages-indef": "Protezzjoni indefinit biss",
+       "protectedpages-summary": "Din il-paġna telenka l-paġni eżistenti li huma attwalment protetti. Għal lista ta' titli li huma protetti mill-ħolqien tagħhom, ara [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
        "protectedpages-cascade": "Protezzjonijiet rikorsivi biss",
+       "protectedpages-noredirect": "Aħbi r-rindirizzi",
        "protectedpagesempty": "M'hawnx paġni protetti bħalissa b'dawn il-parametri.",
+       "protectedpages-timestamp": "Data u ħin",
+       "protectedpages-page": "Paġna",
+       "protectedpages-expiry": "Tiskadi",
+       "protectedpages-performer": "Protetta mill-utent",
+       "protectedpages-params": "Parametri tal-protezzjoni",
+       "protectedpages-reason": "Raġuni",
+       "protectedpages-unknown-timestamp": "Mhux magħrufa",
+       "protectedpages-unknown-performer": "Utent mhux magħruf",
        "protectedtitles": "Titli protetti",
+       "protectedtitles-summary": "Din il-paġna telenka t-titli li huma attwalment protetti milli jinħolqu. Għal lista ta' paġni eżistenti li huma protetti, ara [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
        "protectedtitlesempty": "L-Ebda titli bħalissa huma protetti b'dawn il-parametri.",
        "listusers": "Lista tal-utenti",
        "listusers-editsonly": "Uri biss utenti li għamlu xi modifika",
        "listusers-creationsort": "Irranġa l-lista skont id-data tal-ħolqien tal-kont",
+       "listusers-desc": "Ordna f'sens dixxendenti",
        "usereditcount": "$1 {{PLURAL:$1|kontribuzzjonijiet|kontribuzzjoni}}",
        "usercreated": "{{GENDER:$3|Maħluq}} nhar il-$1 fil-$2",
        "newpages": "Paġni ġodda",
        "pager-older-n": "{{PLURAL:$1|l-inqas riċenti|$1 l-inqas riċenti}}",
        "suppress": "Oversight",
        "querypage-disabled": "Din il-paġna speċjali hija diżattivata għal raġunijiet ta' prestazzjoni.",
+       "apihelp": "Għajnuna fuq l-API",
+       "apihelp-no-such-module": "Il-modulu \"$1\" ma nstabx.",
        "booksources": "Sorsi tal-kotba",
        "booksources-search-legend": "Fittex għal sorsi tal-kotba",
        "booksources-isbn": "Kodiċi ISBN:",
        "logempty": "Ir-reġistru m'għandu l-ebda element li jaqbel mat-tfittxija tiegħek.",
        "log-title-wildcard": "Tfittxija ta' titli li jibdew b'dan it-test",
        "showhideselectedlogentries": "Uri/aħbi d-daħliet magħżula tar-reġistru",
+       "log-edit-tags": "Immodifika t-tikketti ta' daħliet partikulari fir-reġistru",
        "allpages": "Il-paġni kollha",
        "nextpage": "Il-paġna li jmiss ($1)",
        "prevpage": "Il-paġna ta' qabel ($1)",
        "listgrouprights-removegroup-self": "Jista' jneħħi {{PLURAL:$2|grupp|gruppi}} lill-kont tiegħu stess: $1",
        "listgrouprights-addgroup-self-all": "Jista' jżid kull grupp lill-kont tiegħu stess",
        "listgrouprights-removegroup-self-all": "Jista' jneħħi l-gruppi kollha mill-kont tiegħu stess",
+       "listgrouprights-namespaceprotection-header": "Restrizzjonijiet għall-ispazju tal-isem",
+       "listgrouprights-namespaceprotection-namespace": "Spazju tal-isem",
+       "listgrouprights-namespaceprotection-restrictedto": "Dritt(ijiet) li jippermettu lill-utent biex jimmodifika",
+       "trackingcategories-name": "Isem tal-messaġġ",
+       "noindex-category-desc": "Din il-paġna mhix indiċizzata mir-robots minħabba li għandha l-frażi maġika <code><nowiki>__NOINDEX__</nowiki></code> u hija fi spazju tal-isem fejn din il-bandiera hija permessa.",
+       "broken-file-category-desc": "Din il-paġna tinkludi ħolqa lejn fajl ħażin (ħolqa biex tinkludi fajl meta dan l-istess fajl ma jkunx jeżisti).",
+       "hidden-category-category-desc": "Il-kategorija tinkludi <code><nowiki>__HIDDENCAT__</nowiki></code> fil-paġna tagħha, li ma tħallix lil din il-kategorija milli tidher fil-kaxxa tal-lista ta' kategoriji ta' paġna.",
+       "trackingcategories-nodesc": "L-ebda deskrizzjoni mhi disponibbli.",
        "mailnologin": "L-Ebda indirizz tal-posta",
        "mailnologintext": "Sabiex tkun tista' tibgħat posta elettronika 'l utenti oħrajn huwa neċessarju li [[Special:UserLogin|tidħol fis-sit]] bħalha utent reġistrat u jkollhok indirizz validu fil-[[Special:Preferences|preferenzi]] tiegħek.",
        "emailuser": "Ikteb lil dan l-utent",
+       "emailuser-title-target": "Ibgħat lill-{{GENDER:$1|utent}}",
        "emailuser-title-notarget": "Ibgħat ittre lil utent",
        "emailpage": "Ibgħat messaġġ lil dan l-utent bil-posta elettronika",
        "emailpagetext": "Tista' tuża' din il-formola t'hawn taħt sabiex tibgħat ittra elettronika lil dan l-{{GENDER:$1|utent}}.\nL-indirizz elettroniku li daħħalt fil-[[Special:Preferences|preferenzi]] jidher fl-ispazju \"Minn\" tal-messaġġ, biex dak li jirċievi l-messaġġ ikun jista' jagħtik risposta.",
        "emailccsubject": "Kopja tal-messaġġ tiegħek lil $1: $2",
        "emailsent": "Il-messaġġ intbagħat",
        "emailsenttext": "Il-messaġġ bil-posta elettronika intbagħat.",
-       "emailuserfooter": "Din il-posta elettronika intbgħattet minn $1 lil $2 bil-\"Utent tal-posta elettronika\" funżjoni ta' {{SITENAME}}.",
+       "emailuserfooter": "Din il-posta elettronika intbgħatet minn $1 lil $2 bl-użu tal-funzjoni \"{{int:emailpage}}\" fuq {{SITENAME}}.",
        "usermessage-summary": "Messaġġ tas-sistema",
        "usermessage-editor": "Messaġġier tas-sistema",
-       "watchlist": "Lista ta' osservazzjoni tiegħi",
+       "watchlist": "Lista ta' osservazzjonijiet",
        "mywatchlist": "Lista ta' paġni osservati",
        "watchlistfor2": "Tal-utent $1 $2",
        "nowatchlist": "Il-lista ta' osservazzjoni tiegħek hija vojta.",
        "watchnologin": "Għadek ma dħaltx ġewwa",
        "addwatch": "Żid mal-lista ta' osservazzjonijiet",
        "addedwatchtext": "Il-paġna \"[[:$1]]\" ġiet miżjuda mal-[[Special:Watchlist|lista ta' osservazzjonijiet]] tiegħek.\nKwalunkwe modifika li ssir fil-futur, kemm fuq din il-paġna u fil-paġna ta' diskussjoni tagħha, tiġi elenkata hemmhekk.",
+       "addedwatchtext-short": "Il-paġna \"$1\" ġie miżjuda mal-lista ta' osservazzjonijiet personali.",
        "removewatch": "Neħħi mil-lista ta' osservazzjonijiet",
        "removedwatchtext": "Il-paġna \"[[:$1]]\" tneħħiet mil-[[Special:Watchlist|lista ta' osservazzjoni tiegħek]].",
+       "removedwatchtext-short": "Il-paġna \"$1\" tneħħiet mil-lista ta' osservazzjonijiet tiegħek.",
        "watch": "Segwi",
        "watchthispage": "Segwi din il-paġna",
        "unwatch": "Issegwix",
        "delete-edit-reasonlist": "Immodifika r-raġunijiet ta' tħassir",
        "delete-toobig": "Din il-paġna għandha kronoloġija ta' modifikar kbira, l-fuq minn $1 {{PLURAL:$1|reviżjoni|reviżjonijiet}}.\nTħassir ta' dawn il-paġni huwa limitat sabiex tnaqqas il-ħolqien aċċidentalment ta' problemi fil-funżjoni tad-database ta' {{SITENAME}}.",
        "delete-warning-toobig": "Din il-paġna għandha kronoloġija ta' modifikar kbira, l-fuq minn $1 {{PLURAL:$1|reviżjoni|reviżjonijiet}}.\nTħassara tista' toħloq problema ta' funżjoni fid-database ta' {{SITENAME}}; moħħok hemm.",
+       "deleteprotected": "Ma tistax tħassar din il-paġna minħabba li ġiet protetta.",
+       "deleting-backlinks-warning": "'''Attenzjoni:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Paġni oħrajn]] għandhom ħoloq jew inklużjonijiet lejn din il-paġna li se tħassar.",
        "rollback": "Ħassar il-modifiki",
        "rollbacklink": "rollback",
        "rollbacklinkcount": "Erġa' lura $1 {{PLURAL:$1|modifika|modifiki}}",
+       "rollbacklinkcount-morethan": "reġġa' lura iktar minn {{PLURAL:$1|modifika waħda|$1 modifiki}}",
        "rollbackfailed": "Rollback ma ħadmitx",
        "cantrollback": "Impossibli tħassar il-modifiki; l-utent li wettaqhom huwa l-unika li għamel kontributi lil din il-paġna.",
        "alreadyrolled": "Mhuwiex possibbli li tneħħi l-modifiki ta' [[User:$2|$2]] ([[User talk:$2|diskussjoni]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) fil-paġna [[:$1]]; utent ieħor diġà immodifika din il-paġna jew inkella reġġa' lura.\n\nL-iktar modifika riċenti fuq dil-paġna saret minn [[User:$3|$3]] ([[User talk:$3|diskussjoni]]).",
        "unprotectedarticle": "neħħa l-protezzjoni minn \"[[$1]]\"",
        "movedarticleprotection": "mexxa l-protezzjoni minn \"[[$2]]\" għal \"[[$1]]\"",
        "protect-title": "Modifika livell ta' protezzjoni ta' \"$1\"",
+       "protect-title-notallowed": "Ara l-livell ta' protezzjoni ta' \"$1\"",
        "prot_1movedto2": "[[$1]] tmexxa lejn [[$2]]",
+       "protect-badnamespace-title": "Spazju tal-isem mhux suxxettibbli għall-protezzjoni",
        "protect-badnamespace-text": "Paġni f'dan l-ispazju tal-isem ma jistgħux jiġu protetti.",
+       "protect-norestrictiontypes-text": "Il-paġna ma tistax tiġi protetta minħabba li m'hemm l-ebda tip ta' restrizzjoni disponibbli.",
+       "protect-norestrictiontypes-title": "Paġna mhux suxxettibbli għall-protezzjoni",
        "protect-legend": "Ikkonferma l-protezzjoni",
        "protectcomment": "Raġuni:",
        "protectexpiry": "Jiskadi:",
        "namespace": "Spazju tal-ismijiet:",
        "invert": "Aqleb l-għażla",
        "tooltip-invert": "Agħżel din il-kaxxa biex taħbi l-modifiki lejn paġni li jinsabu fl-ispazji tal-isem magħżula (u l-ispazju tal-isem assoċjat jekk hu magħżul)",
+       "tooltip-whatlinkshere-invert": "Agħżel din il-kaxxa biex taħbi l-ħoloq lejn paġni fl-ispazju tal-isem magħżul.",
        "namespace_association": "Spazju tal-ismijiet assoċjat",
        "tooltip-namespace_association": "Agħżel din il-kaxxa sabiex tinkludi l-paġna ta' diskussjoni jew l-oġġett tal-ispazju tal-isem assoċjat mal-ispazju tal-isem magħżul",
        "blanknamespace": "(Prinċipali)",
        "contributions": "Kontributi tal-{{GENDER:$1|utent}}",
        "contributions-title": "Kontribuzzjonijiet tal-utent għal $1",
        "mycontris": "Kontributi",
-       "contribsub2": "Għal $1 ($2)",
+       "contribsub2": "Għal {{GENDER:$3|$1}} ($2)",
+       "contributions-userdoesnotexist": "L-utent \"$1\" mhuwiex reġistrat.",
        "nocontribs": "L-Ebda modifiki li jisodisfa l-kriterji tat-tfittxija.",
-       "uctop": "(l-aħħar fil-paġna)",
+       "uctop": "(attwali)",
        "month": "Mix-xahar (u qabel):",
        "year": "Mis-sena (u qabel):",
        "sp-contributions-newbies": "Uri biss il-kontribuzzjonijiet tal-utenti l-ġodda",
        "sp-contributions-newbies-sub": "Għall-utenti l-ġodda",
        "sp-contributions-newbies-title": "Kontribuzzjonijiet ta' utenti ġodda",
        "sp-contributions-blocklog": "blokki",
+       "sp-contributions-suppresslog": "kontribuzzjonijiet tal-utenti mħassra",
        "sp-contributions-deleted": "kontribuzzjonijiet imħassra tal-utent",
        "sp-contributions-uploads": "tlugħ ta' fajls",
        "sp-contributions-logs": "reġistri",
        "sp-contributions-search": "Fittex għal kontribuzzjonijiet",
        "sp-contributions-username": "Indirizz IP jew isem tal-utent:",
        "sp-contributions-toponly": "Uri biss modifiki li huma l-aħħar reviżjonijiet għall-paġna",
+       "sp-contributions-newonly": "Uri biss modifiki li huma ħolqien ta' paġni ġodda",
        "sp-contributions-submit": "Fittex",
        "whatlinkshere": "Li jwasslu 'l hawn",
        "whatlinkshere-title": "Paġni li jippuntaw lejn $1",
        "autoblockid": "Awtoblokk #$1",
        "block": "Imblokka utent",
        "unblock": "Żblokka utent",
-       "blockip": "Imblokka lil utent",
+       "blockip": "Imblokka lill-{{GENDER:$1|utent}}",
        "blockip-legend": "Imblokka 'l-utent",
        "blockiptext": "Uża l-formola t'hawn taħt sabiex biex tibblokkja l-aċċess tal-kitba lil IP speċifiku jew utent.\nIl-blokk irid ikun użat biss sabiex jitnaqqas iċ-ċans ta' vandaliżmu, u għandu josservja b'mod strett il-[[{{MediaWiki:Policy-url}}|politika ta' {{SITENAME}}]].\nIndika r-raġuni speċifika għalfejn tixtieq tipproċedi bil-blokk (per eżempju, billi turi l-paġni partikolari li ġew ivvandalizzati).",
        "ipaddressorusername": "Indirizz tal-IP jew isem tal-utent:",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] ġie imblukkat.<br />\nAra l-[[Special:BlockList|lista tal-blokki]] sabiex tara l-blokki attivi.",
        "ipb-blockingself": "Inti se timblokka lilek innifsek! Inti ċert li trid tagħmel dan?",
        "ipb-confirmhideuser": "Inti se timblokka utent bl-opzjoni \"Aħbi l-utent\" magħżula. B'dan il-mod jiġi evitat li jidher l-isem tal-utent fl-elenki u fid-daħliet rar-reġistri kollha. Inti ċert li trid tagħmel dan?",
+       "ipb-confirmaction": "Jekk tinsab ċert li trid tagħmilha, agħżel il-kaxxa ta' \"{{int:ipb-confirm}}\" hawn taħt.",
        "ipb-edit-dropdown": "Immodifika r-raġunijiet tal-imblukkar",
        "ipb-unblock-addr": "Żblokkja $1",
        "ipb-unblock": "Żblokka isem tal-utent jew indirizz IP",
        "ipb-blocklist": "Uri l-blokki eżistenti",
-       "ipb-blocklist-contribs": "Kontribuzzjonijiet ta' $1",
+       "ipb-blocklist-contribs": "Kontribuzzjonijiet ta' {{GENDER:$1|$1}}",
        "unblockip": "Żblokkja l-utent",
        "unblockiptext": "Uża l-formola t'hawn taħt sabiex tirkupra l-aċċess tal-ktiba 'l utent jew indirizz tal-IP imblukkat.",
        "ipusubmit": "Żblokkja dan l-indirizz",
        "unblocked": "L-utent [[User:$1|$1]] ġie żblokkjat",
        "unblocked-range": "$1 ġie żblukkat",
        "unblocked-id": "Il-blokk $1 tneħħa",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] ġie żblukkat.",
        "blocklist": "Utenti mblukkati",
        "ipblocklist": "Utenti mblukkati",
        "ipblocklist-legend": "Fittex utent ibblokkjat",
        "proxyblockreason": "L-indirizz IP tiegħek ġie imblukkat peress li huwa proxy miftuħ. Jekk jogħġbok, ikkuntattja lill-provdituri tas-servizz tal-internet (ISP) jew lis-''support'' tekniku tiegħek u infurmahom b'din il-problema serja ta' sigurtà.",
        "sorbsreason": "L-indirizz IP tiegħek huwa mniżżel bħala proxy miftuħ fid-DNSBL użat minn {{SITENAME}}.",
        "sorbs_create_account_reason": "L-indirizz IP tiegħek huwa mniżżel bħala proxy miftuħ fid-DNSBL użat minn {{SITENAME}}. Ma tistax toħloq kont.",
+       "xffblockreason": "Indirizz IP preżenti fl-intestatura X-Forwarded-For, jew tiegħek jew tas-''server proxy'' li qiegħed tuża, ġie mblukkat. Ir-raġuni oriġinali wara l-blokk kienet: $1",
        "cant-see-hidden-user": "L-utent li qiegħed tipprova timblokka diġà ġie imblukkat u moħbi.\nMinħabba li inti m'għandikx id-dritt li \"taħbi 'l-utent\", ma tistax tara jew timmodifika l-blokk tal-utent.",
        "ipbblocked": "Ma tistax timblokka jew tiżblokka utenti oħra, minħabba li inti stess tinsab imblukkat",
        "ipbnounblockself": "M'għandekx il-permess li tiżblokka lilek innifsek",
        "movepagetalktext": "Il-Paġna korrispondenti tad-diskussjoni se tiġi awtomatikament imċaqilqa flimkien magħha '''sakemm:'''\n* Paġna mhux vojta ta' diskussjoni ġa teżisti taħt l-isem il-ġdid.\n* Ma tagħżilx il-kaxxa t'hawn taħt.\n\nF'dawn il-każi, inti trid iċaqlaq jew tagħqad il-paġna manwalment jekk dan huwa mixtieq.",
        "movearticle": "Ċaqlaq il-paġna:",
        "moveuserpage-warning": "'''Twissija:''' Inti se tmexxi paġna tal-utent. Kun af li hi l-paġna biss li se titmexxa. L-utent ''mhux'' se jitmexxa.",
+       "movecategorypage-warning": "<strong>Attenzjoni:</strong> Se tmexxi kategorija. Kun af li l-paġna biss se titmexxa u kwalunkwe paġna fil-kategorija l-qadima <em>mhumiex</em> se jiġu kategorizzati fil-kategorija l-ġdida.",
        "movenologintext": "Trid [[Special:UserLogin|tidħol]] bħalha utent reġistrat sabiex tkun tista' iċaqlaq din il-paġna.",
        "movenotallowed": "Inti m'għandekx il-permessi meħtieġa sabiex tmexxi l-paġni.",
        "movenotallowedfile": "M'għandekx il-permessi neċessarji sabiex tmexxi fajls.",
        "cant-move-user-page": "M'għandekx il-permessi neċessarji sabiex tmexxi paġni tal-utent (sottopaġni esklużi).",
        "cant-move-to-user-page": "M'għandekx permess neċessarji sabiex tmexxi paġna lejn paġna tal-utent (ħlief għas-sottopaġni tal-utent).",
+       "cant-move-category-page": "M'għandekx il-permess li tmexxi kategoriji.",
+       "cant-move-to-category-page": "M'għandekx il-permess li tmexxi paġna lejn kategorija.",
        "newtitle": "Titlu ġdid:",
        "move-watch": "Segwi din il-paġna",
        "movepagebtn": "Ċaqlaq il-paġna",
        "immobile-target-namespace-iw": "Il-ħolqa interwiki mhijiex destinazzjoni valida biex tmexxi l-paġna.",
        "immobile-source-page": "Din il-paġna ma tistax tiġi mmexxiha.",
        "immobile-target-page": "Ma jistax jitmexxa lejn it-titlu indikat.",
+       "bad-target-model": "Id-destinazzjoni mixtieqa tuża mudell ta' kontenut differenti. Mhuwiex possibbli li tikkonverti minn $1 għal $2.",
        "imagenocrossnamespace": "Ma tistax iċaqlaq fajl f'namespace mhux tal-fajls.",
        "nonfile-cannot-move-to-file": "Mhuwiex possibbli li jitmexxa fajl barra mill-ispazju tal-isem relattiv.",
        "imagetypemismatch": "L-Estenżjoni l-ġdida tal-fajl ma taqbilx mat-tip tagħha.",
        "allmessages-prefix": "Iffiltra skont il-prefiss:",
        "allmessages-language": "Lingwa:",
        "allmessages-filter-submit": "Mur",
+       "allmessages-filter-translate": "Ittraduċi",
        "thumbnail-more": "Kabbar",
        "filemissing": "Fajl nieqes",
        "thumbnail_error": "Problema fil-ħolqien ta' ''thumbnail'': $1",
+       "thumbnail_error_remote": "Messaġġ ta' żball għal $1:\n$2",
        "djvu_page_error": "Numru tal-paġna DjVu bla klassifika",
        "djvu_no_xml": "Impossibli ġġib il-XML għal fajl DjVu",
        "thumbnail-temp-create": "Huwa impossibbli li jinħoloq fajl temporanju għall-minjatura",
        "thumbnail-dest-create": "Huwa impossibbli li l-minjatura tiġi salvata fid-destinazzjoni",
        "thumbnail_invalid_params": "Parametri invalidi għall-minjatura",
+       "thumbnail_toobigimagearea": "Fajl b'qisien ikbar minn $1",
        "thumbnail_dest_directory": "Impossibli toħloq id-direttorju tad-destinazzjoni",
        "thumbnail_image-type": "Tip ta' stampa mhux aċċettat",
        "thumbnail_gd-library": "Konfigurazzjoni mhux kompluta tal-librerija GD: funzjoni $1 nieqsa",
        "thumbnail_image-missing": "Il-fajl $1 jidher li hu nieqes",
+       "thumbnail_image-failure-limit": "Kien hemm wisq attenti riċenti li fallew ($1 jew iktar) biex tiġi ġġenerata din il-minjature. Jekk jogħġbok, ipprova iktar tard.",
        "import": "Importa paġni",
        "importinterwiki": "Importazzjoni transwiki",
        "import-interwiki-text": "Agħżel wiki u titlu ta' paġna li se timporta.\nDati ta' reviżjonijiet u ismijiet tal-modifikaturi jiġu preservati.\nKull azzjonijiet ta' importazzjoni tal-transwiki jiġu reġistrati fil-[[Special:Log/import|log ta' importazzjoni]].",
+       "import-interwiki-sourcewiki": "Wiki oriġinarja:",
+       "import-interwiki-sourcepage": "Paġna oriġinarja:",
        "import-interwiki-history": "Kopja l-verżjonijiet tal-kronoloġija kollha għal din il-paġna",
        "import-interwiki-templates": "Inkludi l-mudelli kollha",
        "import-interwiki-submit": "Importa",
+       "import-mapping-namespace": "Importa lejn spazju tal-isem:",
+       "import-mapping-subpage": "Importa bħala sottopaġni tal-paġna segwenti:",
        "import-upload-filename": "Isem tal-fajl:",
        "import-comment": "Kumment:",
        "importtext": "Jekk jogħġbok esporta l-fajl mis-sit wiki tal-oriġini bil-funzjoni [[Special:Export|funzjoni ta' esportazzjoni]], salvah fuq id-diska tiegħek u imbagħad tellgħu hawn.",
        "import-invalid-interwiki": "Ma jistax jiġi importat mill-wiki indikata.",
        "import-error-edit": "Il-paġna \"$1\" ma ġietx  impurtata minħabba li mintix awtorizzat li timmodifikaha.",
        "import-error-create": "Il-paġna \"$1\" ma ġietx  impurtata minħabba li mintix awtorizzat li toħloqha.",
+       "import-error-interwiki": "Il-paġna \"$1\" ma ġietx importata minħabba li isimha huwa riservat għal ħolqa esterna (interwiki).",
+       "import-error-special": "Il-paġna \"$1\" ma ġietx importata minħabba li hi parti ta' spazju tal-isem speċjali li ma jħallix paġni.",
        "import-error-invalid": "Il-paġna \"$1\" ma ġietx impurtata minħabba li isimha hi invalida.",
+       "import-options-wrong": "{{PLURAL:$2|Għażla ħażina|Għażliet ħżiena}}: <nowiki>$1</nowiki>",
+       "import-rootpage-invalid": "Il-paġna prinċipali mogħtija għandha titlu ħażin.",
+       "import-rootpage-nosubpage": "L-ispazju tal-isem \"$1\" tal-paġna prinċipali ma jħallix li jkollu sottopaġni.",
        "importlogpage": "Importazzjoni",
        "importlogpagetext": "Importi amministrativi ta' paġni b'kronoloġiji ta' modifiki minn wikis oħrajn.",
-       "import-logentry-upload-detail": "{{PLURAL:$1|reviżjoni|$1 reviżjonijiet}}",
+       "import-logentry-upload-detail": "{{PLURAL:$1|Reviżjoni waħda importata|$1 reviżjonijiet importati}}",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|reviżjoni|$1 reviżjonijiet}} minn $2",
        "javascripttest": "Testjar tal-JavaScript",
        "javascripttest-pagetext-noframework": "Din il-paġna hi riservata għall-eżekuzzjoni tat-testijiet tal-JavaScript.",
+       "javascripttest-pagetext-unknownaction": "Azzjoni \"$1\" mhux magħrufa.",
        "javascripttest-pagetext-frameworks": "Jekk jogħġbok agħżel wieħed mill-oqsma tal-ittestjar: $1",
        "javascripttest-pagetext-skins": "Agħżel aspett grafiku fuq liema tesegwixxi testijiet:",
        "javascripttest-qunit-intro": "Ara d-[$1 dokumentazzjoni dwar it-test] fuq mediawiki.org.",
        "tooltip-feed-atom": "Feed Atom għal din il-paġna",
        "tooltip-t-contributions": "Uri l-lista tal-kontribuzzjonijiet ta' dan l-utent",
        "tooltip-t-emailuser": "Ibgħat posta elettronika lil dan l-utent",
+       "tooltip-t-info": "Aktar informazzjoni fuq din il-paġna",
        "tooltip-t-upload": "Tella' fajls",
        "tooltip-t-specialpages": "Lista tal-paġni speċjali kollha",
        "tooltip-t-print": "Verżjoni tal-ipprintjar ta' din il-paġna",
        "pageinfo-length": "Daqs tal-paġna (f'bytes)",
        "pageinfo-article-id": "ID tal-paġna",
        "pageinfo-language": "Lingwa tal-kontenut tal-paġna",
+       "pageinfo-content-model": "Mudell tal-kontenut tal-paġna",
        "pageinfo-robot-policy": "Stat għall-muturi tat-tfittxija",
        "pageinfo-robot-index": "Indiċjabbli",
        "pageinfo-robot-noindex": "Mhux indiċjabbli",
        "pageinfo-magic-words": "{{PLURAL:$1|Kelma maġika|Kliem maġiku}} ($1)",
        "pageinfo-hidden-categories": "{{PLURAL:$1|Kategorija|Kategoriji}} moħbija ($1)",
        "pageinfo-templates": "{{PLURAL:$1|Mudell inkluż|Mudelli inklużi}} ($1)",
+       "pageinfo-transclusions": "{{PLURAL:$1|Paġna inkluża|Paġni inkluża}} ($1)",
        "pageinfo-toolboxlink": "Informazzjoni fuq il-paġna",
        "pageinfo-redirectsto": "Tirrindirizza lejn",
        "pageinfo-redirectsto-info": "info",
        "pageinfo-protect-cascading": "Protezzjoni li tintiret minn hawnhekk",
        "pageinfo-protect-cascading-yes": "Iva",
        "pageinfo-protect-cascading-from": "Protezzjoni li tintiret minn",
+       "pageinfo-category-info": "Informazzjoni fuq il-kategorija",
+       "pageinfo-category-total": "Numru totali ta' membri",
+       "pageinfo-category-pages": "Numru ta' paġni",
+       "pageinfo-category-subcats": "Numru ta' sottokategoriji",
+       "pageinfo-category-files": "Numru ta' fajls",
        "markaspatrolleddiff": "Marka l-modifiki bħalha verifikati",
        "markaspatrolledtext": "Immarka din il-paġna bħala verifikata",
        "markedaspatrolled": "Markat bħalha verifikat",
        "patrol-log-page": "Modifiki verifikati",
        "patrol-log-header": "Dan huwa reġistru ta' reviżjonijiet verifikati.",
        "log-show-hide-patrol": "$1 r-reġistru tal-modifiki verifikati",
+       "log-show-hide-tag": "$1 r-reġistru tat-tikketti",
        "deletedrevision": "Reviżjoni preċedenti, mħassra: $1",
        "filedeleteerror-short": "Problema waqt li kont qiegħed tħassar il-fajl: $1",
        "filedeleteerror-long": "Ġew verifikati xi problemi waqt li kont qiegħed tħassar il-fajl:\n\n$1",
        "file-info-size-pages": "$1 × $2 pixels, daqs tal-fajl: $3, tip MIME: $4, $5 {{PLURAL:$5|paġna|paġni}}",
        "file-nohires": "Mhux disponibli verżjonijiet b'risoluzzjoni akbar.",
        "svg-long-desc": "Fajl fil-format SVG, dimensjoni nominali $1 × $2 pixel, dimensjoni tal-fajl: $3",
+       "svg-long-desc-animated": "Fajl f'format SVG animat, qisien nominali ta' $1 × $2 pixels, daqs tal-fajl: $3",
+       "svg-long-error": "Fajl SVG ħażin: $1",
        "show-big-image": "Fajl oriġinali",
        "show-big-image-preview": "Daqs tad-dehra proviżorja: $1.",
        "show-big-image-other": "{{PLURAL:$2|Riżoluzzjoni|Riżoluzzjonijiet}} oħra: $1",
        "file-info-png-looped": "ċiklika",
        "file-info-png-repeat": "ripetuta {{PLURAL:$1|darba|$1 darbiet}}",
        "file-info-png-frames": "{{PLURAL:$1|frejm wieħed|$1 frejms}}",
+       "file-no-thumb-animation": "<strong>Nota: Minħabba limiti tekniċi, minjaturi ta' dan il-fajl mhumiex se jkunu animati.</strong>",
+       "file-no-thumb-animation-gif": "<strong>Nota: Minħabba limiti tekniċi, minjaturi ta' fajls GIF b'riżoluzzjoni għolja bħal din mhumiex se jkunu animati.</strong>",
        "newimages": "Gallerija ta' fajls ġodda",
        "imagelisttext": "Il-Lista t'hawn taħt ta' '''$1''' {{PLURAL:$1|fajl|fajls}} irranġati $2.",
        "newimages-summary": "Din il-paġna speċjali turi l-aħħar fajls li ġew mtella' riċentament.",
        "newimages-legend": "Filtru",
        "newimages-label": "Isem tal-fajl (jew parti minnu):",
+       "newimages-showbots": "Uri tlugħ ta' fajls minn bots",
        "noimages": "M'hawn xejn x'tara.",
        "ilsubmit": "Fittex",
        "bydate": "data",
        "minutes": "{{PLURAL:$1|$1 minuta|$1 minuti}}",
        "hours": "{{PLURAL:$1|siegħa|$1 sigħat}}",
        "days": "{{PLURAL:$1|ġurnata|$1 ġranet}}",
+       "weeks": "{{PLURAL:$1|ġimgħa|$1 ġimgħat}}",
+       "months": "{{PLURAL:$1|xahar|$1 xhur}}",
+       "years": "{{PLURAL:$1|$1 sena|$1 snin}}",
        "ago": "$1 ilu",
+       "just-now": "issa",
+       "hours-ago": "{{PLURAL:$1|siegħa|$1 sigħat}} ilu",
+       "minutes-ago": "{{PLURAL:$1|minuta|$1 minuti}} ilu",
+       "seconds-ago": "{{PLURAL:$1|sekonda|$1 sekondi}} ilu",
+       "monday-at": "Nhar it-Tnejn fil-$1",
+       "tuesday-at": "Nhar it-Tlieta fil-$1",
+       "wednesday-at": "Nhar l-Erbgħa fil-$1",
+       "thursday-at": "Nhar il-Ħamis fil-$1",
+       "friday-at": "Nhar il-Ġimgħa fil-$1",
+       "saturday-at": "Nhar is-Sibt fil-$1",
+       "sunday-at": "Nhar il-Ħadd fil-$1",
+       "yesterday-at": "Ilbieraħ fil-$1",
        "bad_image_list": "Il-format huwa kif imiss:\n\nJiġu kkunsidrati biss listi ppuntati (linji li jibdew b'*).\nL-ewwel link fil-linja hija link għal fajl ħażin.\nIl-links suċċessivi fuq l-istess linja huma kkunsidrati bħala eċċezzjonijiet, ċoè, paġni fejn il-fajl jista' jiġi rikjamat b'mod normali.",
        "metadata": "Metadati",
        "metadata-help": "Dan il-fajl fih aktar informazzjoni, aktarx ġie miżjud minn kamera diġitali jew skanner li ġew użati sabiex joħolquh jew biex jagħmluh diġitali.\nJekk il-fajl ġie modifikat mill-istat oriġinali, xi dettalji jistgħu ma jikkorispondux mal-verżjoni kurrenti.",
        "invalidateemail": "Ħassar il-konfermazzjoni tal-posta elettronika",
        "scarytranscludedisabled": "[L-Inklużjoni tal-paġna fost is-siti tal-wiki mhux attivata]",
        "scarytranscludefailed": "[Problema: Impossibli ġġib il-mudell $1]",
+       "scarytranscludefailed-httpstatus": "[Il-kisba tal-mudell ma rnexxietx għal $1: HTTP $2]",
        "scarytranscludetoolong": "[Problema: URL wisq twil]",
        "deletedwhileediting": "'''Twissija''': Din il-paġna ġiet imħassra wara li int bdejt timmodifikaha!",
        "confirmrecreate": "L-Utent [[User:$1|$1]] ([[User talk:$1|diskussjoni]]) ħassar din il-paġna wara li bdejt tagħmel il-modifiki bir-raġuni:\n: ''$2''\nJekk jogħġbok konferma jekk vera trid terġa' toħloq din il-paġna.",
        "confirm-unwatch-button": "OK",
        "confirm-unwatch-top": "Neħħi din il-paġna mil-lista ta' osservazzjonijiet?",
        "semicolon-separator": ";",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← il-paġna ta' qabel",
        "imgmultipagenext": "il-paġna li jmiss →",
        "imgmultigo": "Mur!",
        "imgmultigoto": "Mur għal paġna $1",
+       "img-lang-default": "(lingwa awtomatika)",
+       "img-lang-info": "Aqleb din l-istampa f'$1. $2",
+       "img-lang-go": "Mur",
        "ascending_abbrev": "axx",
        "descending_abbrev": "dixx",
        "table_pager_next": "Il-paġna li jmiss",
        "autosumm-replace": "Il-paġna ġiet mibdula ma' '$1'",
        "autoredircomment": "Paġna rindirizzata lejn [[$1]]",
        "autosumm-new": "Inħolqot paġna b'\"$1\"",
+       "autosumm-newblank": "Paġna vojta maħluqa",
        "size-bytes": "$1 B",
        "size-kilobytes": "$1 KB",
        "size-megabytes": "$1 MB",
        "watchlistedit-raw-done": "Il-lista ta' osservazzjoni tiegħek ġiet aġġornata.",
        "watchlistedit-raw-added": "{{PLURAL:$1|Titlu kien miżjud|$1 titli kienu miżjuda}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|Titlu tneħħa|$1 titli tneħħew}}:",
+       "watchlistedit-clear-title": "Lista ta' osservazzjonijiet imnaddfa",
+       "watchlistedit-clear-legend": "Ħassar il-lista ta' osservazzjonijiet",
+       "watchlistedit-clear-explain": "It-titli kollha se jiġu mneħħija mil-lista ta' osservazzjonijiet tiegħek",
+       "watchlistedit-clear-titles": "Titli:",
+       "watchlistedit-clear-submit": "Naddaf il-lista ta' osservazzjonijiet (din hi permanenti!)",
+       "watchlistedit-clear-done": "Il-lista ta' osservazzjonijiet tiegħek ġiet imnaddfa.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|Titlu wieħed ġie imħassar|$1 titli ġew imħassra}}:",
+       "watchlistedit-too-many": "Hemm wisq paġni x'jintwerew hawnhekk.",
+       "watchlisttools-clear": "Ħassar il-lista ta' osservazzjonijiet",
        "watchlisttools-view": "Uri l-modifiki relevanti",
        "watchlisttools-edit": "Uri u mmodifika l-lista tal-osservazzjoni",
        "watchlisttools-raw": "Immodifika l-lista f'format testwali",
        "iranian-calendar-m10": "Dey",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|diskussjoni]])",
        "duplicate-defaultsort": "'''Twissija:''' iċ-ċavetta tal-issortjar oriġinali \"$2\" tissostitwixxi dik preċedenti \"$1\".",
+       "duplicate-displaytitle": "<strong>Attenzjoni:</strong> It-titlu muri \"$2\" jieħu post t-titlu preċedenti \"$1\".",
+       "invalid-indicator-name": "<strong>Żball:</strong> L-attribut <code>name</code> tal-indikaturi tal-istat tal-paġna ma jistax ikun vojt.",
        "version": "Verżjoni",
        "version-extensions": "Estensjonijiet installati",
-       "version-skins": "Aspetti",
+       "version-skins": "Aspetti grafiċi installati",
        "version-specialpages": "Paġni speċjali",
        "version-parserhooks": "Hook tal-parser",
        "version-variables": "Varjabili",
        "version-hook-name": "Isem tal-hook",
        "version-hook-subscribedby": "Reġistrat minn",
        "version-version": "($1)",
-       "version-license": "Liċenzja",
+       "version-no-ext-name": "[mingħajr isem]",
+       "version-license": "Liċenzja ta' MediaWiki",
+       "version-ext-license": "Liċenzja",
+       "version-ext-colheader-name": "Estensjoni",
+       "version-skin-colheader-name": "Dehra",
+       "version-ext-colheader-version": "Verżjoni",
+       "version-ext-colheader-license": "Liċenzja",
+       "version-ext-colheader-description": "Deskrizzjoni",
+       "version-ext-colheader-credits": "Awturi",
+       "version-license-title": "Liċenzja għal $1",
+       "version-license-not-found": "Għal din l-estensjoni m'hemm l-ebda informazzjoni dettaljata fuq il-liċenzja.",
+       "version-credits-title": "Krediti għal $1",
+       "version-credits-not-found": "Għal din l-estensjoni m'hemm l-ebda informazzjoni dettaljata fuq il-krediti.",
        "version-poweredby-credits": "Din il-wiki hija operata minn '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
        "version-poweredby-others": "oħrajn",
+       "version-poweredby-translators": "Tradutturi ta' translatewiki.net",
+       "version-credits-summary": "Nixtiequ nirrikonoxxu lil dawn in-nies għall-kontribut tagħhom fuq [[Special:Version|MediaWiki]].",
        "version-license-info": "MediaWiki huwa softwer b'xejn; inti tista' tqassmu mill-ġdid u/jew timmodifikah taħt it-termini tal-GNU General Public License, kif ippubblikata mill-Free Software Foundation; jew it-2 verżjoni tal-Liċenzja, jew (skont l-għażla tiegħek) kwalunkwe verżjoni suċċessiva.\n\nMediaWiki hi distribwita bl-iskop li din tkun utli, imma MINGĦAJR EBDA GARANZIJA; mingħajr lanqas il-garanzija impliċita ta' NEGOZJABILITÀ jew ta' ADEGWATEZZA GĦAL SKOP PARTIKULARI. Ara l-GNU General Public License għal aktar dettalji.\n\nFlimkien ma' dan il-programm suppost kellek tirċievi [{{SERVER}}{{SCRIPTPATH}}/COPYING kopja tal-GNU General Public License]; jekk le, ikteb lil Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA jew [//www.gnu.org/licenses/old-licenses/gpl-2.0.html aqraha fuq l-internet].",
        "version-software": "Softwer installat",
        "version-software-product": "Prodott",
        "version-entrypoints": "URL ta' aċċess",
        "version-entrypoints-header-entrypoint": "Punt ta' dħul",
        "version-entrypoints-header-url": "URL",
+       "version-libraries": "Libreriji installati",
+       "version-libraries-library": "Librerija",
+       "version-libraries-version": "Verżjoni",
+       "redirect": "Irrindirizza lejn fajl, utent, paġna jew reviżjoni",
+       "redirect-legend": "Irrindirizza lejn fajl jew paġna",
+       "redirect-summary": "Din il-paġna speċjali tirrindirizza lejn fajl (meta tispeċifika isem ta' fajl), paġna (meta tispeċifika l-ID tar-reviżjoni jew l-ID tal-paġna) jew paġna tal-utent (meta tispeċifika l-ID numeriku tal-utent). Użu: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], jew [[{{#Special:Redirect}}/user/101]].",
        "redirect-submit": "Mur",
+       "redirect-lookup": "Fittex:",
+       "redirect-value": "Valur:",
+       "redirect-user": "ID tal-utent",
+       "redirect-page": "ID tal-paġna",
+       "redirect-revision": "Reviżjoni tal-paġna",
+       "redirect-file": "Isem tal-fajl",
+       "redirect-not-exists": "Il-valur ma nstabx",
        "fileduplicatesearch": "Fittex fajls duplikati",
        "fileduplicatesearch-summary": "Fittex fajls duplikati fil-bażi għal valur ''hash''.",
        "fileduplicatesearch-legend": "Fittex għal duplikat",
        "fileduplicatesearch-result-n": "Il-Fajl \"$1\" għandu {{PLURAL:$2|duplikat identiku|$2 duplikati identiki}}.",
        "fileduplicatesearch-noresults": "Ma nstab l-ebda fajl bl-isem \"$1\".",
        "specialpages": "Paġni speċjali",
-       "specialpages-note": "---\n* Paġni speċjali normali.\n* <span class=\"mw-specialpagerestricted\">Paġni speċjali riservati.</span>\n* <span class=\"mw-specialpagecached\">Paġni speċjali disponibbli f'verżjoni cache (jistgħu jkunu skaduti).</span>",
+       "specialpages-note-top": "Leġġenda",
+       "specialpages-note": "* Paġni speċjali normali.\n* <span class=\"mw-specialpagerestricted\">Paġni speċjali ristretti.</span>",
        "specialpages-group-maintenance": "Rapporti ta' manutenzjoni",
        "specialpages-group-other": "Paġni speċjali oħrajn",
        "specialpages-group-login": "Idħol / oħloq kont",
        "tags-tag": "Isem tat-tikketta",
        "tags-display-header": "Dehra fil-lista tal-modifiki",
        "tags-description-header": "Deskrizzjoni sħiħa tat-tifsira",
+       "tags-source-header": "Sors",
+       "tags-active-header": "Attiv?",
        "tags-hitcount-header": "Modifiki li għandhom tikketti",
+       "tags-actions-header": "Azzjonijiet",
+       "tags-active-yes": "Iva",
+       "tags-active-no": "Le",
+       "tags-source-extension": "Definit minn estensjoni",
+       "tags-source-manual": "Applikat manwalment minn utenti u bots",
+       "tags-source-none": "M'għadhiex użata",
        "tags-edit": "editja",
+       "tags-delete": "ħassar",
+       "tags-activate": "attiva",
+       "tags-deactivate": "iddiżattiva",
        "tags-hitcount": "$1 {{PLURAL:$1|bidla|bidliet}}",
+       "tags-manage-no-permission": "M'għandekx permess li tamministra t-tibdil tat-tikketti.",
+       "tags-create-heading": "Oħloq tikketta ġdida",
+       "tags-create-explanation": "Awtomatikament, it-tikketti l-ġodda se jkunu disponibbli għall-użu mill-utenti u l-bots.",
+       "tags-create-tag-name": "Isem tat-tikketta:",
+       "tags-create-reason": "Raġuni:",
+       "tags-create-submit": "Oħloq",
+       "tags-create-no-name": "Trid tispeċifika isem ta' tikketta.",
+       "tags-create-invalid-chars": "Ismijiet tat-tikketti m'għandhomx ikollhom virgoli (<code>,</code>) jew żbarri (<code>/</code>).",
+       "tags-create-invalid-title-chars": "L-ismijiet tat-tikketti m'għandhomx ikollhom karattri li ma jistgħux jintużaw fit-titli tal-paġni.",
+       "tags-create-already-exists": "It-tikketta \"$1\" diġà teżisti.",
+       "tags-create-warnings-below": "Tixtieq tkompli toħloq din it-tikketta?",
+       "tags-delete-title": "Ħassar it-tikketta",
+       "tags-delete-explanation-initial": "Inti se tħassar it-tikketta \"$1\" mid-''database''.",
+       "tags-delete-reason": "Raġuni:",
+       "tags-delete-submit": "Ħassar b'mod irriversibbli din it-tikketta",
+       "tags-delete-not-found": "It-tikketta \"$1\" ma teżistix.",
+       "tags-delete-too-many-uses": "It-tikketta \"$1\" hi wżata ma' iktar minn {{PLURAL:$2|reviżjoni waħda|$2 reviżjonijiet}}, li tfisser li ma tistax tiġi mħassra.",
+       "tags-delete-warnings-after-delete": "It-tikketta \"$1\" ġiet imħassra b'suċċess, imma agħati kas tal-{{PLURAL:$2|avviż|avviżi}} segwenti:",
+       "tags-activate-title": "Attiva t-tikketta",
+       "tags-activate-question": "Se tattiva t-tikketta \"$1\".",
+       "tags-activate-reason": "Raġuni:",
+       "tags-activate-not-allowed": "Mhuwiex possibbli li tattiva t-tikketta \"$1\".",
+       "tags-activate-not-found": "It-tikketta \"$1\" ma teżistix.",
+       "tags-activate-submit": "Attiva",
+       "tags-deactivate-title": "Iddiżattiva t-tikketta",
+       "tags-deactivate-reason": "Raġuni:",
+       "tags-deactivate-not-allowed": "Mhuwiex possibbli li tiddiżattiva t-tikketta \"$1\".",
+       "tags-deactivate-submit": "Iddiżattiva",
+       "tags-apply-no-permission": "M'għandekx il-permess li tapplika l-modifika tat-tikketta flimkien mal-modifiki tiegħek.",
+       "tags-apply-not-allowed-one": "It-tikketta \"$1\" ma tistax tiġi applikata manwalment.",
+       "tags-apply-not-allowed-multi": "It-{{PLURAL:$2|tikketta segwenti ma tistax tiġi applikata|tikketi segwenti ma jistgħux jiġu applikati}} manwalment: $1",
+       "tags-update-no-permission": "M'għandekx il-permess li żżid jew tneħħi modifiki ta' tikketti mir-reviżjonijiet jew daħliet fir-reġistru.",
+       "tags-update-add-not-allowed-one": "It-tikketta \"$1\" ma tistax tiġi miżjuda manwalment.",
+       "tags-update-add-not-allowed-multi": "It-{{PLURAL:$2|tikketta segwenti ma tistax tiġi|tikketti segwenti ma jistgħux jiġu}} miżjuda manwalment: $1",
+       "tags-update-remove-not-allowed-one": "It-tikketta \"$1\" ma tistax tiġi mħassra.",
+       "tags-update-remove-not-allowed-multi": "It-{{PLURAL:$2|tikketta segwenti ma tistax tiġi mneħħija|tikketi segwenti ma jistgħux jiġu mneħħija}} manwalment: $1",
+       "tags-edit-title": "Immodifika t-tikketti",
+       "tags-edit-manage-link": "Amministra t-tikketti",
+       "tags-edit-revision-selected": "{{PLURAL:$1|Reviżjoni|Reviżjonijiet}} magħżula ta' [[:$2]]:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Avveniment tar-reġistru magħżul|Avvenimenti tar-reġistru magħżula}}:",
+       "tags-edit-revision-legend": "Żid jew neħħi tikketti minn {{PLURAL:$1|din ir-reviżjoni|dawn il-$1 reviżjonijiet}}",
+       "tags-edit-logentry-legend": "Żid jew neħħi tikketti {{PLURAL:$1|minn din id-daħla tar-reġistru|mill-$1 daħliet tar-reġistru}}",
+       "tags-edit-existing-tags": "Tikketti eżistenti:",
+       "tags-edit-existing-tags-none": "''L-ebda''",
+       "tags-edit-new-tags": "Tikketti ġodda:",
+       "tags-edit-add": "Żid dawn it-tikketti:",
+       "tags-edit-remove": "Neħħi dawn it-tikketti:",
+       "tags-edit-remove-all-tags": "(neħħi t-tikketti kollha)",
+       "tags-edit-chosen-placeholder": "Agħżel xi tikketti",
+       "tags-edit-chosen-no-results": "L-ebda tikketa li taqbel ma nstabet",
+       "tags-edit-reason": "Raġuni:",
+       "tags-edit-revision-submit": "Applika t-tibdiliet lil {{PLURAL:$1|din ir-reviżjoni|$1 reviżjonijiet}}",
+       "tags-edit-logentry-submit": "Applika t-tibdil {{PLURAL:$1|lil din id-daħla tar-reġistru|lill-$1 daħliet tar-reġistru}}",
+       "tags-edit-success": "It-tibdil ġew applikati b'suċċess.",
+       "tags-edit-failure": "It-tibdil ma setgħux jiġu applikati:\n$1",
+       "tags-edit-nooldid-title": "Verżjoni speċifikata ħażina",
+       "tags-edit-nooldid-text": "Ma ġietx speċifikata l-ebda reviżjoni tal-paġna fuq liema se tagħmel din il-funzjoni jew ir-reviżjoni magħżula ma teżistix.",
+       "tags-edit-none-selected": "Jekk jogħġbok, agħżel minn tal-anqas tikketta waħda xi żżid jew tneħħi.",
        "comparepages": "Qabbel il-paġni",
        "compare-page1": "Paġna 1",
        "compare-page2": "Paġna 2",
        "htmlform-submit": "Ibgħat",
        "htmlform-reset": "Annulla l-modifiki",
        "htmlform-selectorother-other": "Oħrajn",
+       "htmlform-no": "Le",
+       "htmlform-yes": "Iva",
+       "htmlform-chosen-placeholder": "Agħżel għażla",
+       "htmlform-cloner-create": "Żid aktar",
+       "htmlform-cloner-delete": "Neħħi",
+       "htmlform-cloner-required": "Minn tal-anqas valur wieħed huwa bżonnjuż.",
        "sqlite-has-fts": "$1 bil-possibilità ta' tfittxija kompluta fit-test",
        "sqlite-no-fts": "$1 mingħajr il-possibilità ta' tfittxija kompluta fit-test",
        "logentry-delete-delete": "$1 {{GENDER:$2|ħassar|ħassret}} il-paġna $3",
        "revdelete-uname-unhid": "isem tal-utent muri mill-ġdid",
        "revdelete-restricted": "limiti applikati 'l amministraturi",
        "revdelete-unrestricted": "neħħi l-limiti 'l amministraturi",
+       "logentry-import-upload": "$1 {{GENDER:$2|importa|importat}} $3 permezz tat-tlugħ tal-fajls",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|importa|importat}} $3 minn wiki oħra",
+       "logentry-merge-merge": "$1 {{GENDER:$2|waħħad|waħħdet}} $3 ma' $4 (reviżjonijiet sa $5)",
        "logentry-move-move": "$1 {{GENDER:$2|mexxa l|mexxiet il}}-paġna $3 għal $4",
        "logentry-move-move-noredirect": "$1 mexxa l-paġna $3 għal $4 mingħajr ma ħalla rindirizz",
        "logentry-move-move_redir": "$1 mexxa l-paġna $3 għal $4 fuq rindrizz",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|biddel|biddlet}} is-sħubija fil-gruppi ta' $3",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|ġie|ġiet}} awtomatikament {{GENDER:$2|promoss|promossa}} minn $4 għal $5",
        "logentry-upload-upload": "$1 {{GENDER:$2|tella'|tellgħet}} $3",
+       "logentry-upload-revert": "$1 {{GENDER:$2|tella'|tellgħet}} $3",
+       "log-name-managetags": "Reġistru tal-ġestjoni tat-tikketti",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|ħassar|ħassret}} it-tikketta \"$4\" (imħassra minn $5 {{PLURAL:$5|reviżjoni jew daħla fir-reġistru|reviżjonijiet u/jew daħliet fir-reġistru}})",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|attiva|attivat}} it-tikketta \"$4\" għall-użu mill-utenti u l-bots",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|iddiżattiva|iddiżattivat}} it-tikketta \"$4\" għall-użu mill-utenti u l-bots",
+       "log-name-tag": "Reġistru tat-tikketti",
+       "log-description-tag": "Din il-paġna turi meta l-utenti jżidu jew iħassru [[Special:Tags|tags]] minn reviżjonijiet jew daħliet fir-reġistru. Dan ir-reġistru ma jelenkax l-azzjonijiet relatati mat-tikketta meta jiġru bħala parti mill-modifika, tħassir jew azzjoni simili.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|żied|żiedet}} it-{{PLURAL:$7|tikketta|tikketti}} $6 lir-reviżjoni $4 tal-paġna $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|żied|żiedet}} it-{{PLURAL:$7|tikketta|tikketti}} $6 lid-daħla fir-reġistru $5 tal-paġna $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|ħassar|ħassret}} it-{{PLURAL:$9|tikketta|tikketti}} $8 mir-reviżjoni $4 tal-paġna $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|ħassar|ħassret}} it-{{PLURAL:$9|tikketta|tikketti}} $8 mid-daħla fir-reġistru $5 tal-paġna $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|aġġorna|aġġornat}} it-tikketti tar-reviżjoni $4 tal-paġna $3 ({{PLURAL:$7|miżjuda}} $6; {{PLURAL:$9|imneħħija}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|aġġorna|aġġornat}} it-tikketti tad-daħla fir-reġistru $5 tal-paġna $3 ({{PLURAL:$7|miżjuda}} $6; {{PLURAL:$9|imneħħija}} $8)",
        "rightsnone": "(xejn)",
        "revdelete-summary": "Taqsira tal-modifika",
+       "feedback-adding": "Qed jiżdied ir-rispons lil din il-paġna...",
+       "feedback-back": "Lura",
        "feedback-bugcheck": "Tajjeb ħafna! Ivverifika li mhux diġà fost id-[$1 difetti magħrufa].",
        "feedback-bugnew": "Ikkontrollajt. Irrapporta d-difett",
        "feedback-bugornote": "Jekk int lest biex tiddeskrivi problema teknika fid-dettall, jekk jogħbok [$1 irraporta l-bug].\nInkella, tista' tuża l-formola sempliċi t'hawn taħt. Il-kumment tiegħek se jiżdied mal-paġna \"[$3 $2]\", flimkien ma' isem l-utent tiegħek.",
        "feedback-cancel": "Annulla",
        "feedback-close": "Lest",
+       "feedback-external-bug-report-button": "Irrapporta problema teknika",
+       "feedback-dialog-title": "Ibgħat ir-rispons",
+       "feedback-dialog-intro": "Tista' tuża din il-formola sabiex tibgħat ir-rispons tiegħek. Il-kumment tiegħek jiġi miżjuda mal-paġna \"$1\", flimkien mal-isem tal-utent.",
+       "feedback-error-title": "Żball",
        "feedback-error1": "Żball: Riżultat mhux rikonoxxut mill-API",
        "feedback-error2": "Żball: Modifika mhux esegwita",
        "feedback-error3": "Żball: L-ebda risposta mill-API",
+       "feedback-error4": "Żball: Ir-rispons tiegħek ma setax jintbagħat taħt it-titlu indikat",
        "feedback-message": "Messaġġ:",
        "feedback-subject": "Suġġett:",
        "feedback-submit": "Ibgħat",
+       "feedback-terms": "Jiena nifhem li l-informazzjoni tiegħi tal-<em>user agent</em> tinkludi informazzjoni eżatta dwar il-browser u l-verżjoni tas-sistema operattiva tiegħi u se tiġi maqsuma pubblikament, flimkien mar-rispons tiegħi.",
+       "feedback-termsofuse": "Jien naqbel li nagħti rispons skont it-Termini t'Użu.",
        "feedback-thanks": "Grazzi! Ir-rispons tiegħek ġie ippubblikat fuq il-paġna \"[$2 $1]\".",
+       "feedback-thanks-title": "Grazzi!",
+       "feedback-useragent": "Aġent tal-utent:",
        "searchsuggest-search": "Fittex",
        "searchsuggest-containing": "li tinkludi...",
+       "api-error-badaccess-groups": "Mintix permess li ttella' fajls fuq din il-wiki.",
+       "api-error-badtoken": "Żball intern: <em>Token</em> ħażin.",
+       "api-error-copyuploaddisabled": "It-tlugħ ta' fajls bl-użu tal-URL mhuwiex permess fuq dan is-server.",
+       "api-error-duplicate": "Hemm {{PLURAL:$1|[$2 fajl ieħor]|[$2 xi fajls oħra]}} diġà fuq dan is-sit bl-istess kontenut.",
+       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Fajl duplikat li diġà ġie mħassar|Fajls duplikat li diġà ġew imħassra}}.",
+       "api-error-duplicate-popup-title": "{{PLURAL:$1|Fajl duplikat|Fajls duplikati}}.",
+       "api-error-empty-file": "Il-fajl li bgħatt kien vojt.",
+       "api-error-emptypage": "Mhuwiex permess il-ħolqien ta' paġna ġdida vojta.",
+       "api-error-fetchfileerror": "Żball intern: Kien hemm problema waqt il-kisba tal-fajl.",
        "api-error-fileexists-forbidden": "Fajl bl-isem \"$1\" diġà jeżisti, u ma jistax jiġi miktub fuqu.",
        "api-error-fileexists-shared-forbidden": "Fajl bl-isem \"$1\" diġà jeżisti fir-repożitorju maqsum u ma jistax jiġi miktub fuqu.",
        "api-error-file-too-large": "Il-fajl magħżul huwa wisq kbir.",
        "api-error-filename-tooshort": "L-isem tal-fajl huwa qasir wisq.",
        "api-error-filetype-banned": "It-tip ta' fajl mhuwiex aċċettat.",
        "api-error-filetype-missing": "L-isem tal-fajl jonqsu l-estensjoni.",
+       "api-error-http": "Żball intern: Mhuwiex possibbli li taqbad mas-server.",
        "api-error-illegal-filename": "L-isem tal-fajl mhuwiex permess.",
+       "api-error-internal-error": "Żball intern: Xi ħaġa marret ħażina fl-ipproċessar tat-tlugħ tiegħek fuq din il-wiki.",
+       "api-error-invalid-file-key": "Żball intern: Il-fajl ma nstabx fil-ħażna temporanja.",
+       "api-error-missingparam": "Żball intern: Parametri tar-rikjesta nieqsa.",
+       "api-error-missingresult": "Żball intern: Mhuwiex magħruf jekk il-kopja rnexxietx.",
+       "api-error-mustbeloggedin": "Trid tkun fil-kont tiegħek sabiex ittella' fajls.",
+       "api-error-mustbeposted": "Żball intern: Ir-rikjesta għandha bżonn tal-HTTP POST.",
+       "api-error-noimageinfo": "It-tlugħ tal-fajl irnexxa, imma s-server ma ta lura l-ebda informazzjoni dwar il-fajl.",
+       "api-error-ok-but-empty": "Żball intern: L-ebda rispons mis-server.",
+       "api-error-overwrite": "Li tikteb fuq fajl diġà eżistenti mhuwiex permess.",
+       "api-error-stashfailed": "Żball intern: Is-server falla milli jżomm fajl temporanju.",
+       "api-error-publishfailed": "Żball intern: Is-server falla milli jippubblika l-fajl temporanju.",
+       "api-error-timeout": "Is-server ma tax risposta lura fil-ħin previst.",
+       "api-error-unclassified": "Inqala żball mhux magħruf.",
+       "api-error-unknown-code": "Żball mhux magħruf: \"$1\".",
+       "api-error-unknown-error": "Żball intern: Xi ħaġa marret ħażin fit-tlugħ tal-fajl.",
+       "api-error-unknown-warning": "Avviż mhux magħruf: \"$1\".",
        "api-error-unknownerror": "Żball mhux magħruf: \"$1\"",
        "api-error-uploaddisabled": "It-tlugħ ta' fajls mhuwiex attivat fuq din il-wiki.",
        "api-error-verification-error": "Dan il-fajl jista' jkun imħassar, jew għandu l-estensjoni l-ħażina.",
        "duration-decades": "$1 {{PLURAL:$1|deċennju|deċennji}}",
        "duration-centuries": "$1 {{PLURAL:$1|seklu|sekli}}",
        "duration-millennia": "$1 {{PLURAL:$1|millennju|millennji}}",
+       "limitreport-cputime-value": "$1 {{PLURAL:$1|sekonda|sekondi}}",
+       "limitreport-walltime-value": "{{PLURAL:$1|sekonda|$1 sekondi}}",
        "expandtemplates": "Espandi l-mudelli",
        "expand_templates_intro": "!Din il-paġna speċjali tieħu test u tkabbar il-mudelli kollha preżenti.\nBarra minn hekk, din tikkalkola r-riżultat tal-funzjonijiet ''parser'' bħal\n<code><nowiki>{{</nowiki>#language:…}}</code>, u varjabbli bħal\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code>.\nFil-fatt, din tespandi kważi dak kollu bejn żewġ parentesi.",
        "expand_templates_title": "Kuntest (għal {{FULLPAGENAME}} etċ.):",
        "expand_templates_remove_nowiki": "Ħassar it-''tags'' <nowiki> fir-riżultat",
        "expand_templates_generate_xml": "Uri siġra sintattika XML",
        "expand_templates_preview": "Dehra proviżorja",
+       "pagelang-name": "Paġna",
+       "pagelang-language": "Lingwa",
+       "pagelang-select-lang": "Agħżel lingwa",
+       "right-pagelang": "Biddel il-lingwa tal-paġna",
+       "action-pagelang": "tbiddel il-lingwa tal-paġna",
+       "log-description-pagelang": "Dan huwa reġistru tat-tibdliet fil-lingwa tal-paġni.",
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|biddel|biddlet}} il-lingwa tal-paġna $3 minn $4 għal $5.",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (permess)",
        "mediastatistics": "Statistika tal-midja",
        "mediastatistics-summary": "L-istatistika dwar it-tipi ta' fajls imtellgħin. Din tinkludi biss il-verżjoni l-aktar reċenti t' fajl. Il-verżjonijiet antiki jew imħassrin tal-fajls tħallew barra.",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 bytes}} ($2; $3%)",
        "mediastatistics-header-text": "Fajls testwali",
        "mediastatistics-header-executable": "Fajls eżegwitabbli",
        "mediastatistics-header-archive": "Formats kompressati",
+       "json-error-unknown": "Kien hemm problema bil-JSON. Żball: $1",
+       "json-error-state-mismatch": "JSON ħażin jew ifformatjat ħażin",
+       "json-error-syntax": "Żball fis-sintassi",
+       "headline-anchor-title": "Orbot lejn din is-sezzjoni",
        "special-characters-group-latin": "Latin",
        "special-characters-group-latinextended": "Latin estiż",
        "special-characters-group-ipa": "IPA",
index cfffb37..5194094 100644 (file)
@@ -19,7 +19,8 @@
                        "Umherirrender",
                        "Zawthet",
                        "ကိုရာဝီ",
-                       "아라"
+                       "아라",
+                       "9.sinistra"
                ]
        },
        "tog-underline": "လင့်ကို မျဉ်းသားသည့် ပုံစံ -",
        "login-throttled": "သင်သည် login ဝင်ရန် အကြိမ်မြောက်မြားစွာ အားထုတ်ခဲ့ပြီးဖြစ်သည်။\nကျေးဇူးပြု၍ ထပ်မဝင်ခင် စောင့်ပေးပါ။",
        "login-abort-generic": "Login ဝင်ခြင်း မအောင်မြင်ပါ - ထွက်သွားပြီ",
        "loginlanguagelabel": "ဘာသာ: $1",
+       "pt-login": "အကောင့်၀င်ရန်",
+       "pt-createaccount": "အကောင့် ဖန်တီးရန်",
        "changepassword": "စကားဝှက် ပြောင်းရန်",
        "resetpass_announce": "သင်သည် ယာယီ စကားဝှက်ဖြင့် ဝင်ရောက်ခြင်းဖြစ်သည်။\nစကားဝှက် အသစ်အား ဤနေရာတွင်ရိုက်ပါ :",
        "resetpass_header": "အကောင့်စကားဝှက်ပြောင်းရန်",
        "boteditletter": "ဘော့",
        "number_of_watching_users_pageview": "[စောင့်ကြည့်နေသော အသုံးပြုသူ $1 {{PLURAL:$1|ဦး|ဦး}}]",
        "rc_categories_any": "မည်သည်မဆို",
+       "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} ပြောင်းလဲပြီးနောက်",
        "newsectionsummary": "/* $1 */ အပိုင်းသစ်",
        "rc-enhanced-expand": "အသေးစိတ် ပြရန် (JavaScript လိုအပ်သည်)",
        "rc-enhanced-hide": "အသေးစိတ် မပြရန်",
        "revdelete-unrestricted": "အက်ဒမင်များအတွက် ကန့်သတ်ချက်များကို ဖယ်ရှားရန်",
        "rightsnone": "(ဘာမှမရှိ)",
        "revdelete-summary": "အကျဉ်းချုပ်ကို တည်းဖြတ်ရန်",
+       "searchsuggest-search": "ရှာဖွေရန်",
        "api-error-filename-tooshort": "ဖိုင်အမည်သည် တိုလွန်းသည်။",
        "api-error-filetype-banned": "ဤဖိုင်အမျိုးအစားကို တားမြစ်ထားသည်။",
        "api-error-http": "အတွင်းပိုင်းအမှား - ဆာဗာကို မဆက်သွယ်နိုင်ပါ။",
index cbe2198..17a4858 100644 (file)
@@ -8,7 +8,8 @@
                        "Rob Church <robchur@gmail.com>",
                        "Shirayuki",
                        "Teòtlalili",
-                       "아라"
+                       "아라",
+                       "Fitoschido"
                ]
        },
        "tog-underline": "Mokìnxòîkuilòtzàswis tzòwilistìn:",
        "currentevents-url": "Project:Āxcāncāyōtl",
        "disclaimers": "Nahuatīllahtōl",
        "edithelp": "Tlapatlaliztechcopa tēpalēhuiliztli",
+       "helppage-top-gethelp": "Tēpalēhuiliztli",
        "mainpage": "Achkàuhìxtlapalli",
        "mainpage-description": "Achkàuhìxtlapalli",
        "policy-url": "Project:Nahuatīltōn",
        "deleteotherreason": "Occē īxtlamatiliztli:",
        "deletereasonotherlist": "Occē īxtlamatiliztli",
        "delete-edit-reasonlist": "Tiquimpatlāz īxtlamatiliztli tlapoloaliztechcopa",
-       "rollback_short": "Tlacuepāz",
        "rollbacklink": "tlacuepāz",
        "rollback-success": "Ōmotlacuep $1 ītlahcuilōl; āxcān achto $2 ītlahcuilōl.",
        "protectedarticle": "ōmoquīxti \"[[$1]]\"",
        "api-error-uploaddisabled": "Sèuhtok in êkawilistli ìpan inìn wiki.",
        "api-error-verification-error": "Inìn èwalli welis îtlakauhtok, noso âmò kualli motzòwîtok.",
        "expand_templates_ok": "Cualli",
-       "expand_templates_preview": "Xiquitta achtochīhualiztli"
+       "expand_templates_preview": "Xiquitta achtochīhualiztli",
+       "special-characters-group-latin": "Latintlahcuilōlli",
+       "special-characters-group-latinextended": "Mantoc latintlahcuilōlli",
+       "special-characters-group-greek": "Greciatlahcuilōlli",
+       "special-characters-group-cyrillic": "Cirilotlahcuilōlli",
+       "special-characters-group-arabic": "Arabiatlahcuilōlli",
+       "special-characters-group-persian": "Persiatlahcuilōlli",
+       "special-characters-group-hebrew": "Hebreotlahcuilōlli",
+       "special-characters-group-bangla": "Banglatlahcuilōlli",
+       "special-characters-group-telugu": "Telugutlahcuilōlli",
+       "special-characters-group-sinhala": "Cingalatlahcuilōlli",
+       "special-characters-group-gujarati": "Guyaratitlahcuilōlli",
+       "special-characters-group-thai": "Taitlahcuilōlli",
+       "special-characters-group-lao": "Laotlahcuilōlli",
+       "special-characters-group-khmer": "Jemertlahcuilōlli"
 }
index 291d243..0f1e796 100644 (file)
        "no-null-revision": "Nun se può crià na nnova revisione nulla p' 'a paggena \"$1\"",
        "badtitle": "'O nnomme nun è jùsto",
        "badtitletext": "'O titolo d' 'a paggena richiesta è abbacante, sbagliato o pure nun è linkato buono a 'o titolo inter-lengua o inter-wiki.\nPutesse pure tené uno o cchiù carattere ca nun se ponno usà dint'e titule.",
+       "title-invalid-empty": "'O titulo d' 'a paggena addimannata è abbacante o cuntene surtanto 'o nomme 'e nu namespace.",
+       "title-invalid-utf8": "'O titulo 'e paggena addimannato cuntene na sequenza invalida UTF-8.",
+       "title-invalid-interwiki": "'O titulo d' 'a paggena cercata cuntene nu link interwiki ca nun se putess'ausà dint' 'e titule.",
+       "title-invalid-talk-namespace": "'O titulo 'e paggena addimannato riferisce a na paggena 'e chiacchiera ca putesse nun esistere.",
+       "title-invalid-characters": "'O titulo 'e paggena addimannato cuntene carattere invalide: \"$1\".",
+       "title-invalid-relative": "'O titulo tene nu nnerizzo relativo. 'E titule 'e paggene relative (./, ../) nun songhe valide, pecché nun se putessero trasì quanno s'ausasse nu navigatore 'utente.",
+       "title-invalid-magic-tilde": "'O titulo 'e paggena addimannato cuntene na sequenza che facesse maggie, e nun serve (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "'O titulo 'e paggena addimannato è troppo luongo. Nun s'avesse 'e ffà cchiù luongo 'e $1 {{PLURAL:$1|byte}} dint'a na codifica UTF-8.",
+       "title-invalid-leading-colon": "'O titulo 'e paggena addimannato cuntene na culonna invalida addò 'o cummencio.",
        "perfcached": "Può darse, ch' 'e ddate ca stanno ccà (\"ncache\") nun song'agghiurnate. Nu massimo 'e {{PLURAL:$1|unu risultato è|$1 risultate songhe}} a disposizione 'n \"cache\".",
        "perfcachedts": "'E ddate ca stanno ccà songhe asciute 'a na copia \"cache\" d' 'o database, 'o cuale tene l'úrdemo agghiurnamento 'o $1. Nu massimo 'e {{PLURAL:$4|unu risultato è|$4 risultate songhe}} a disposizione dint'a \"cache\".",
        "querypage-no-updates": "Ll'agghiurnamente pe' sta paggena songo sospese mmo'. 'E ddate cuntenute ccà nun s'agghiurnarranno.",
        "content-model-css": "CSS",
        "content-json-empty-object": "Oggetto abbacante",
        "content-json-empty-array": "Array abbacante",
+       "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>.",
        "expensive-parserfunction-warning": "'''Attenziò:''' Sta paggena cuntene troppe chiammate a 'e funzione parser.\n\nN'avesse 'a tené meno 'e $2, p' 'o mumento ce ne {{PLURAL:$1|stà $1|stanno $1}}.",
        "userrights-lookup-user": "Gestione 'e gruppe d'utenza",
        "userrights-user-editname": "Nzertàte nu nomme utente:",
        "editusergroup": "Cagnate 'e gruppe d'utenze",
-       "editinguser": "Cagnamiento d' 'e deritte d'utente '''[[User:$1|$1]]''' $2",
+       "editinguser": "Cagnamiento d' 'e deritte d'{{GENDER:$1|utente}} '''[[User:$1|$1]]''' $2",
        "userrights-editusergroup": "Cagnate 'e gruppe d'utenze",
        "saveusergroups": "Sarvate 'e gruppe d'utenza",
        "userrights-groupsmember": "Ffà parte {{PLURAL:$1|d' 'o gruppo|d' 'e gruppe}}:",
        "uploaddisabledtext": "'E carreche 'e file so' state stutate.",
        "php-uploaddisabledtext": "'E càrreche 'e file pe' bbia d' 'o PHP so' state stutate. Cuntrullate 'a configurazione d' 'o file_uploads.",
        "uploadscripted": "Stu file cuntene codece HTML o script, ca se putesse nterpretà erroneamente 'a nu navigatóre web.",
+       "upload-scripted-pi-callback": "Nun se pò carrecà nu file ca tene struziune 'e prucesse xml-stylesheet",
+       "uploaded-script-svg": "Truvato n'elemento pe script \"$1\" int' 'o file SVG carrecato.",
+       "uploaded-hostile-svg": "Truvato nu CSS insecuro int'a l'elemente 'e stile d' 'o file SVG carrecate.",
+       "uploaded-event-handler-on-svg": "Mpustà 'e parametre 'e gistore-evente <code>$1=\"$2\"</code> nun è premmesso dint' 'e file SVG.",
+       "uploaded-href-attribute-svg": "Ll'attribbute Href <code>&lt;$1 $2=\"$3\"&gt;</code> cu target non-local (e.g. http://, javascript:, ecc) nun so' premmesse int' 'e file SVG.",
+       "uploaded-href-unsafe-target-svg": "S'è truvato nu href a nu target ca nun era sicuro <code>&lt;$1 $2=\"$3\"&gt;</code> dint' 'o file SVG carrecato.",
+       "uploaded-animate-svg": "Truvato 'o tag \"animate\" ca putesse stà a cagnà href, ausanno l'attribbuto \"from\" <code>&lt;$1 $2=\"$3\"&gt;</code> int' 'o file carrecato SVG.",
+       "uploaded-setting-event-handler-svg": "Mpustà n'attributo event-handler è bluccato, truvato <code>&lt;$1 $2=\"$3\"&gt;</code> int' 'o fie carrecato SVG.",
+       "uploaded-setting-href-svg": "Ausà 'o tag \"set\" pe' putè azzeccà attribbute \"href\" a l'elemento parente è bluccato.",
+       "uploaded-wrong-setting-svg": "D'ausà 'o tag \"set\" pe' putè azzeccà nu target remoto/date/script a n'attribbuto mò è bluccato. Truvato 'o code>&lt;set to=\"$1\"&gt;</code> dint' 'o file SVG carrecato.",
+       "uploaded-setting-handler-svg": "'o SVG ca mpustasse l'attribbuto \"handler\" cu nu remoto/date/script è bluccato. Truvato <code>$1=\"$2\"</code> dint' 'o file SVG carrecato.",
+       "uploaded-remote-url-svg": "SVG ca mpustasse n'attribbuto 'e stile cu n'URL remota bluccata. Truvate <code>$1=\"$2\"</code> int' 'o file carrecato SVG.",
+       "uploaded-image-filter-svg": "Truvato filtro immaggene cu n'URL: <code>&lt;$1 $2=\"$3\"&gt;</code> int' 'o file SVG carrecato.",
        "uploadscriptednamespace": "Stu file SVG cuntene nu namespace '$1' nun permesso.",
        "uploadinvalidxml": "'O códece XML d' 'o file carrecato nun se può passà.",
        "uploadvirus": "Stu file cuntene nu virus! Dettaglie: $1",
        "unusedimages": "File ca nun s'ausano",
        "wantedcategories": "Categurìe addimannate",
        "wantedpages": "Paggene cchiù addemannate",
-       "wantedpages-summary": "Elenco 'e paggene nun esistente ca teneno na parte assaje d' 'e link ca spuntassero a chiste. Pe' na lista 'e paggene nun esistente ca teneno redirect ca spuntassero a chiste, vide [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "Elenco 'e paggene nun esistente ca teneno na parte assaje d' 'e link ca spuntassero a chiste. Pe' na lista 'e paggene nun esistente ca teneno redirect ca spuntassero a chiste, vide [[{{#special:BrokenRedirects}}|'a lista 'e redirect scassate]].",
        "wantedpages-badtitle": "Titolo invalido mmiez' 'o nzieme 'e risultate: $1",
        "wantedfiles": "File addimannate",
        "wantedfiletext-cat": "Chisti file s'ausano ma nun esisteno. 'E file ca veneno 'e n'archivio 'e fore s'alencano ccà senza cuntrullà l'esistenza suja. Sti fauze pusitive sarranno <del>nzignate</del>. 'E paggene ca teneno sti file ca nun esisteno song'alencate dint'a [[:$1]].",
        "log-name-pagelang": "Càgna 'o riggistro 'e llengue",
        "log-description-pagelang": "Chest'è nu riggistro 'e cagnamiente 'e lengua d' 'e paggene.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|ave cagnato}} 'a lengua d' 'a paggena $3 'a $4 a $5.",
-       "default-skin-not-found": "Oops! 'A skin predefinta ' 'o wiki vuosto, definita 'n <code dir=\"ltr\">$wgDefaultSkin</code> comme <code>$1</code>, nun se tròva.\n\n'A installazione pare ca tenesse {{PLURAL:$4|'a skin|'e skin}} ccà abbascio. Vedite [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manuale: configurazione skin] pe' n'avè cchiù nfurmaziune ncopp' 'a manera {{PLURAL:$4|'e ll'abbià}} o scegliere chilla predefinita.\n\n$2\n\n; Si avite installato MediaWiki mò mò:\n: Probabbilmente l'avite installato 'a git, o direttamente 'a 'o codece sorgente ausanno cocch'atu metodo. Chesto era permesso. Verite 'e installà cocche skin 'a [https://www.mediawiki.org/wiki/Category:All_skins directory ncoppa mediawiki.org], tramite:\n:* Scarrecanno 'o [https://www.mediawiki.org/wiki/Download programma 'e installazione tarball], ca venesse fornito ch' 'e diverze skin ed estenziune. Putite fare copia-azzecca d' 'a directory <code dir=\"ltr\">skins/</code>.\n:* Scarrecanne 'e tarballs individuale 'e skin 'a [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clonanno uno 'e chiste repository <code>mediawiki/skins/*</code> pe' bbìa d' 'o git dint' 'a directory <code>skins/</code> d' 'a installazione MediaWiki vosta.\n: Facenno accussì nun se mmescasse 'o repository git vuosto si site sviluppatore MediaWiki.\n\n; Si avite MediaWiki agghiurnato MediaWiki mò mò:\n: MediaWiki 1.24 e verziune appriesso nun abbìa automatecamente 'e skin installate (vedite [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manuale: rilevamento automateco skin]). Putite copià {{PLURAL:$5|'a linea|'e linee}} ccà abbascio dint' 'o <code>LocalSettings.php</code> pe' putè appiccià {{PLURAL:$5|'o|tutt' 'e}} {{PLURAL:$5|skin}} installate mò mò:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si avite cagnato mò mò <code>LocalSettings.php</code>:\n: Cuntrullate 'e nomme d' 'e skin n'ata vota pe' ve sparagnà cocch'errore 'e battitura.",
-       "default-skin-not-found-no-skins": "Oops! 'A skin predefinita p' 'o wiki vuosto, definita 'n <code dir=\"ltr\">$wgDefaultSkin</code> comme <code>$1</code>, nun se tròva.\n\nNun avite installato nisciuno skin.\n\n; Si avite installato MediaWiki mò mò:\n: Probabbilmente l'avite installato 'a git, o direttamente 'a 'o codece sorgente ausanno cocch'atu metodo. Chesto era permesso. Verite 'e installà cocche skin 'a [https://www.mediawiki.org/wiki/Category:All_skins directory ncoppa mediawiki.org], tramite:\n:* Scarrecanno 'o [https://www.mediawiki.org/wiki/Download programma 'e installazione tarball], ca venesse fornito ch' 'e diverze skin ed estenziune. Putite fare copia-azzecca d' 'a directory <code dir=\"ltr\">skins/</code>.\n:* Scarrecanne 'e tarballs individuale 'e skin 'a [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clonanno uno 'e chiste repository <code>mediawiki/skins/*</code> pe' bbìa d' 'o git dint' 'a directory <code>skins/</code> d' 'a installazione MediaWiki vosta.\n: Facenno accussì nun se mmescasse 'o repository git vuosto si site sviluppatore MediaWiki. Vedite [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manuale: rilevamento automateco skin]) pe n'avè nfurmaziune ncopp' 'a maniera d'appiccià e scegliere chella predefinita.",
+       "default-skin-not-found": "Oops! 'A skin predefinta ' 'o wiki vuosto, definita 'n <code dir=\"ltr\">$wgDefaultSkin</code> comme <code>$1</code>, nun se tròva.\n\n'A installazione pare ca tenesse {{PLURAL:$4|'a skin|'e skin}} ccà abbascio. Vedite [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manuale: configurazione skin] pe' n'avè cchiù nfurmaziune ncopp' 'a manera {{PLURAL:$4|'e ll'abbià}} o scegliere chilla predefinita.\n\n$2\n\n; Si avite installato MediaWiki mò mò:\n: Probabbilmente l'avite installato 'a git, o direttamente 'a 'o codece sorgente ausanno cocch'atu metodo. Chesto era permesso. Verite 'e installà cocche skin 'a [https://www.mediawiki.org/wiki/Category:All_skins directory ncoppa mediawiki.org], tramite:\n:* Scarrecanno 'o [https://www.mediawiki.org/wiki/Download programma 'e installazione tarball], ca venesse fornito ch' 'e diverze skin ed estenziune. Putite fare copia-azzecca d' 'a directory <code dir=\"ltr\">skins/</code>.\n:* Scarrecanne 'e tarballs individuale 'e skin 'a [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Ausanno Git pe' scarrecà skin].\n: Facenno accussì nun se mmescasse 'o repository git vuosto si site sviluppatore MediaWiki.\n\n; Si avite MediaWiki agghiurnato MediaWiki mò mò:\n: MediaWiki 1.24 e verziune appriesso nun abbìa automatecamente 'e skin installate (vedite [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manuale: rilevamento automateco skin]). Putite copià {{PLURAL:$5|'a linea|'e linee}} ccà abbascio dint' 'o <code>LocalSettings.php</code> pe' putè appiccià {{PLURAL:$5|'o|tutt' 'e}} {{PLURAL:$5|skin}} installate mò mò:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si avite cagnato mò mò <code>LocalSettings.php</code>:\n: Cuntrullate 'e nomme d' 'e skin n'ata vota pe' ve sparagnà cocch'errore 'e battitura.",
+       "default-skin-not-found-no-skins": "Oops! 'A skin predefinita p' 'o wiki vuosto, definita 'n <code dir=\"ltr\">$wgDefaultSkin</code> comme <code>$1</code>, nun se tròva.\n\nNun avite installato nisciuno skin.\n\n; Si avite installato MediaWiki mò mò:\n: Probabbilmente l'avite installato 'a git, o direttamente 'a 'o codece sorgente ausanno cocch'atu metodo. Chesto era permesso. Verite 'e installà cocche skin 'a [https://www.mediawiki.org/wiki/Category:All_skins directory ncoppa mediawiki.org], tramite:\n:* Scarrecanne 'e tarballs individuale 'e skin 'a [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Ausanno Git pe' scarrecà skin].\n: Facenno accussì nun se mmescasse 'o repository git vuosto si site sviluppatore MediaWiki. Vedite [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manuale: rilevamento automateco skin]) pe n'avè nfurmaziune ncopp' 'a maniera d'appiccià e scegliere chella predefinita.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (funzione appicciata)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''funzione stutata''')",
        "mediastatistics": "Statistiche d' 'e media",
index 98f487f..4ed5b63 100644 (file)
        "no-null-revision": "Det ble ikke laget en null-endring av side \"$1\"",
        "badtitle": "Ugyldig tittel",
        "badtitletext": "Den ønskede tittelen var ugyldig, tom eller feilaktig lenket fra en annen wiki.\nDen inneholder kanskje ett eller flere tegn som ikke kan brukes i titler.",
+       "title-invalid-empty": "Den forespurte sidetittelen er tom eller inneholder bare navnet til et navnerom.",
+       "title-invalid-utf8": "Den forespurte sidetittelen inneholder en ugyldig UTF-8-sekvens.",
+       "title-invalid-interwiki": "Tittel inneholder en interwiki-lenke",
+       "title-invalid-talk-namespace": "Den forespurte sidetittelen refererer til en diskusjonsside som ikke kan eksistere.",
+       "title-invalid-characters": "Den forespurte sidetittelen inneholder ugyldige tegn: «$1».",
+       "title-invalid-relative": "Tittel har relativ sti. Relative sidetitler (./, ../) er ugyldige fordi de ofte vil være unåelige når de blir håndtert av brukerens nettleser.",
+       "title-invalid-magic-tilde": "Den ønskede sidetittelen inneholder en ugyldig magisk tildesekvens (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Den ønskede sidetittelen er for lang. Den kan ikke være lengre enn $1 bytes i UTF-8-koding.",
+       "title-invalid-leading-colon": "Den ønskede sidetittelen inneholder et ugyldig kolon i starten.",
        "perfcached": "Følgende data er en tidligere kopi og ikke nødvendigvis den siste versjonen i databasen. Maksimalt {{PLURAL:$1|ett resultat|$1 resultater}} er {{PLURAL:$1|tilgjengelig|tilgjengelige}} som tidligere kopier.",
        "perfcachedts": "Listen ble sist oppdatert $1. Maksimalt {{PLURAL:$4|ett resultat|$4 resultater}} vises.",
        "querypage-no-updates": "Oppdateringer for denne siden er slått av. Data her blir ikke gjenoppfrisket.",
        "rev-showdeleted": "vis",
        "revisiondelete": "Slett/gjenopprett revisjoner",
        "revdelete-nooldid-title": "Ugyldig målversjon",
-       "revdelete-nooldid-text": "Du har ikke angitt en målversjon for denne funksjonen, den angitte versjonen finnes ikke, eller du forsøker å skjule den nåværende versjonen.",
+       "revdelete-nooldid-text": "Du har enten ikke angitt en målrevisjon for denne funksjonen, den angitte revisjonen finnes ikke, eller du forsøker å skjule den nåværende versjonen.",
        "revdelete-no-file": "Den spesifiserte filen finnes ikke.",
        "revdelete-show-file-confirm": "Er du sikker på at du ønsker å vise en slettet versjon av filen «<nowiki>$1</nowiki>» fra $2 kl. $3?",
        "revdelete-show-file-submit": "Ja",
        "right-sendemail": "Send e-post til andre brukere",
        "right-passwordreset": "Vis e-poster over tilbakestilte passord",
        "right-managechangetags": "Opprette og slette [[Special:Tags|tagger]] fra databasen",
+       "right-applychangetags": "Legg til [[Special:Tags|merker]] sammen med ens endringer",
+       "right-changetags": "Legg til og fjern vilkårlige [[Special:Tags|merker]] på individuelle revisjoner og loggposter",
        "newuserlogpage": "Brukeropprettelseslogg",
        "newuserlogpagetext": "Dette er en logg over brukeropprettelser.",
        "rightslog": "Brukerrettighetslogg",
        "action-editmyprivateinfo": "rediger din private informasjon",
        "action-editcontentmodel": "rediger innholdsmodellen til en side",
        "action-managechangetags": "opprette og slette tagger fra databasen",
+       "action-applychangetags": "bruk merker sammen med dine endringer",
+       "action-changetags": "legg til og fjern vilkårlige merker på individuelle revisjoner og loggposter",
        "nchanges": "$1 {{PLURAL:$1|endring|endringer}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|siden forrige besøk}}",
        "enhancedrc-history": "historikk",
        "logempty": "Ingen elementer i loggen.",
        "log-title-wildcard": "Søk i titler som starter med denne teksten",
        "showhideselectedlogentries": "Vis/skjul de valgte logghendelsene",
+       "log-edit-tags": "Rediger merker til valgte loggposter",
        "allpages": "Alle sider",
        "nextpage": "Neste side ($1)",
        "prevpage": "Forrige side ($1)",
        "import-interwiki-history": "Kopier all historikk for denne siden",
        "import-interwiki-templates": "Inkluder alle maler",
        "import-interwiki-submit": "Importer",
+       "import-mapping-default": "Importer til standardplasser",
+       "import-mapping-namespace": "Importer til navnerom:",
+       "import-mapping-subpage": "Importer som underside til den følgende siden:",
        "import-upload-filename": "Filnavn:",
        "import-comment": "Kommentar:",
        "importtext": "Importer filen fra kildewikien med [[Special:Export|eksporteringsverktøyet]].\nLagre den på din egen datamaskin og last den opp her.",
        "pageinfo-protect-cascading-yes": "Ja",
        "pageinfo-protect-cascading-from": "Dypbeskyttelse fra",
        "pageinfo-category-info": "Kategoriinformasjon",
+       "pageinfo-category-total": "Totalt antall medlemmer",
        "pageinfo-category-pages": "Antall sider",
        "pageinfo-category-subcats": "Antall underkategorier",
        "pageinfo-category-files": "Antall filer",
        "tags-deactivate-reason": "Årsak:",
        "tags-deactivate-not-allowed": "Det er ikke mulig å deaktivere taggen «$1».",
        "tags-deactivate-submit": "Deaktiver",
+       "tags-apply-no-permission": "Du har ikke tilgang til å legge til merker sammen med dine endringer.",
+       "tags-apply-not-allowed-one": "Merket «$1» kan ikke legges til manuelt.",
+       "tags-apply-not-allowed-multi": "{{PLURAL:$2|Det følgende merket|De følgende merkene}} kan ikke legges til manuelt: $1",
+       "tags-update-no-permission": "Du har ikke tilgang til å legge til eller fjerne merker fra individuelle revisjoner eller loggposter.",
+       "tags-update-add-not-allowed-one": "Merket «$1» kan ikke legges til manuelt.",
+       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|Det følgende merket|De følgende merkene}} kan ikke legges til manuelt: $1",
+       "tags-update-remove-not-allowed-one": "Merket «$1» kan ikke fjernes.",
+       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|Det følgende merket|De følgende merkene}} kan ikke fjernes manuelt: $1",
+       "tags-edit-title": "Rediger merker",
+       "tags-edit-manage-link": "Håndter merker",
+       "tags-edit-revision-selected": "{{PLURAL:$1|Valgt revisjon|Valgte revisjoner}} av [[:$2]]:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Valgt loggpost|Valgte loggposter}}:",
+       "tags-edit-revision-legend": "Legg til eller fjern fra {{PLURAL:$1|denne revisjonen|alle revisjoner}}",
+       "tags-edit-logentry-legend": "Legg til eller fjern fra {{PLURAL:$1|denne loggposten|alle loggposter}}",
+       "tags-edit-existing-tags": "Eksisterende merker:",
+       "tags-edit-existing-tags-none": "«Ingen»",
+       "tags-edit-new-tags": "Nye merker:",
+       "tags-edit-add": "Legg til disse merkene:",
+       "tags-edit-remove": "Fjern disse merkene:",
+       "tags-edit-remove-all-tags": "(fjern alle merker)",
+       "tags-edit-chosen-placeholder": "Velg noen merker",
+       "tags-edit-chosen-no-results": "Ingen merker funnet som passer",
+       "tags-edit-reason": "Årsak:",
+       "tags-edit-revision-submit": "Utfør endringene på {{PLURAL:$1|denne revisjonen|$1 revisjoner}}",
+       "tags-edit-logentry-submit": "Utfør endringene på {{PLURAL:$1|denne loggposten|$1 loggposter}}",
+       "tags-edit-success": "Endringene ble suksessfullt utført.",
+       "tags-edit-failure": "Denne endringen kunne ikke bli utført:\n$1",
+       "tags-edit-nooldid-title": "Ugyldig målrevisjon",
+       "tags-edit-nooldid-text": "Du har enten ikke angitt noen målversjon for denne funksjonen, eller så har du angitt en revisjon som ikke finnes.",
+       "tags-edit-none-selected": "Velg minst ett merke som skal legges til eller fjernes.",
        "comparepages": "Sammenlign sider",
        "compare-page1": "Side 1",
        "compare-page2": "Side 2",
        "logentry-suppress-block": "$1 {{GENDER:$2|blokkerte}} {{GENDER:$4|$3}} med en utløpstid på $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|endret}} blokkeringsinnstillingen for {{GENDER:$4|$3}} med en utløpstid på $5 $6",
        "logentry-import-upload": "$1 {{GENDER:$2|importert}} $3 gjennom filopplastning",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|importerte}} $3 fra en annen wiki",
        "logentry-merge-merge": "$1 {{GENDER:$2|slo sammen}} $3 i $4 (versjonene t.o.m. $5)",
        "logentry-move-move": "$1 {{GENDER:$2|flyttet}} siden $3 til $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|flyttet}} siden $3 til $4 uten å etterlate en omdirigering",
        "logentry-managetags-delete": "$1 {{GENDER:$2|slettet}} taggen «$4» (fjernet fra $5 {{PLURAL:$5|revisjon eller loggoppføring|revisjoner og/eller loggoppføringer}})",
        "logentry-managetags-activate": "$1 {{GENDER:$2|aktiverte}} taggen «$4» for bruke av brukere og roboter",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|deaktiverte}} taggen «$4» for bruk av brukere og roboter",
+       "log-name-tag": "Merkelogg",
+       "log-description-tag": "Denne siden viser når brukere har lagt til eller fjernet [[Special:Tags|merker]] fra individuelle revisjoner eller loggposter. Loggen viser ikke merkeendringer som skjer som følge av en redigering, sletting eller lignende handlinger.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|la til}} {{PLURAL:$7|merket|merkene}} $6 på revisjonen $4 av siden $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|la til}} {{PLURAL:$7|merket|merkene}} $6 til loggposten $5 på siden $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|fjernet}} {{PLURAL:$9|merket|merkene}} $8 fra revisjonen $4 av siden $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|fjernet}} {{PLURAL:$9|merket|merkene}} $8 fra loggposten $5 for siden $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|oppdaterte}} merker på revisjonen $4 av siden $3\n({{PLURAL:$7|la til}} $6; {{PLURAL:$9|fjernet}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|oppdaterte}} merker på loggposten $5 til siden $3\n({{PLURAL:$7|la til}} $6; {{PLURAL:$9|fjernet}} $8)",
        "rightsnone": "(ingen)",
        "revdelete-summary": "redigeringssammendrag",
        "feedback-adding": "Tilføyer tilbakmelding til side ...",
        "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-error-title": "Feil",
        "feedback-error1": "Feil: Ukjent resultat fra API",
        "feedback-error2": "Feil: Redigering feilet",
        "feedback-error3": "Feil: Ingen respons fra API",
+       "feedback-error4": "Feil: Ute av stand til å sende til den angitte tilbakemeldingstittelen",
        "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-thanks": "Din tilbakemelding til siden \"[ $2  $1 ]\" er sendt. Takk skal du ha!",
        "feedback-thanks-title": "Takk!",
        "feedback-useragent": "Brukeragent",
        "log-name-pagelang": "Endre språklogg",
        "log-description-pagelang": "Dette er en logg som viser endringer i sidespråk",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|endret}} sidespråk for $3 fra $4 til $5.",
-       "default-skin-not-found": "Ops! Standarddrakten for wikien din, definert i <code dir=\"ltr\">$wgDefaultSkin</code> som <code>$1</code>, er ikke tilgjengelig.\n\nInstallasjonen din ser ut til å inneholde følgende drakter. Se [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for informasjon om hvordan du kan slå disse på eller heller velge en standarddrakt.\n\n$2\n\n; Om du nettopp har installert MediaWiki:\n: Du har trolig installert fra git, eller direkte fra kildekoden med en annen metode. Dette er forventet. Prøv å installere noen drakter fra [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org sin draktbase] ved å\n:* laste ned [https://www.mediawiki.org/wiki/Download tarball-installereren], som kommer med flere drakter og utvidelser. Du kan kopiere og lime inn <code>skins/</code>-mappen fra denne.\n:* laste ned individuelle drakter fra [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* klone en av <code>mediawiki/skins/*</code>-lagrene via git inn i <code>skins/</code> -mappen av din MediaWiki-installasjon.\n: Å gjøre dette skal ikke forstyrre git-mappen din om du er en MediaWiki-utvikler.\n\n; Om du nettopp har oppgradert MediaWiki:\n: MediaWiki 1.24 og nyere slår ikke lenger på automatisk installerte drakter (se [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Du kan lime inn følgende linjer i <code>LocalSettings.php</code> for å slå på alle installerte drakter:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Om du nettopp har endret <code>LocalSettings.php</code>:\n: Dobbelsjekk draktnavnene for skrivefeil.",
+       "default-skin-not-found": "Ops! Standarddrakten for wikien din, definert i <code dir=\"ltr\">$wgDefaultSkin</code> som <code>$1</code>, er ikke tilgjengelig.\n\nInstallasjonen din ser ut til å inneholde følgende {{PLURAL:$4|drakt|drakter}}. Se [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for informasjon om hvordan du kan slå {{PLURAL:$4|denne på|disse på og velge en standarddrakt}}.\n\n$2\n\n; Om du nettopp har installert MediaWiki:\n: Du har trolig installert fra git, eller direkte fra kildekoden med en annen metode. Dette er forventet. Prøv å installere noen drakter fra [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org sin draktbase] ved å\n:* laste ned [https://www.mediawiki.org/wiki/Download tarball-installereren], som kommer med flere drakter og utvidelser. Du kan kopiere og lime inn <code>skins/</code>-mappen fra denne.\n:* laste ned individuelle drakter fra [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* klone en av <code>mediawiki/skins/*</code>-lagrene via git inn i <code>skins/</code> -mappen av din MediaWiki-installasjon.\n: Å gjøre dette skal ikke forstyrre git-mappen din om du er en MediaWiki-utvikler.\n\n; Om du nettopp har oppgradert MediaWiki:\n: MediaWiki 1.24 og nyere slår ikke lenger på automatisk installerte drakter (se [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Du kan lime inn følgende {{PLURAL:$5|linje|linjer}} i <code>LocalSettings.php</code> for å slå på {{PLURAL:$5|den|alle}} nåværende installerte {{PLURAL:$5|drakten|drakter}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Om du nettopp har endret <code>LocalSettings.php</code>:\n: Dobbelsjekk draktnavnene for skrivefeil.",
        "default-skin-not-found-no-skins": "Ops! Standarddrakten for wikien din, definert i <code>$wgDefaultSkin</code> som <code>$1</code>, er ikke tilgjengelig.\n\nDu har ingen installerte drakter.\n\n;Om du nettopp har installert eller oppgradert MediaWiki:\n: Du installerte trolig fra git, eller direkte fra kildekoden med en annen metode. Dette er forventet. MediaWiki 1.24 og nyere inkluderer ingen drakter i hovedarkivet. Prøv å installere noen drakter fra [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.orgs draktmappe], ved å:\n:* laste ned [https://www.mediawiki.org/wiki/Download tarball-installereren], som kommer med mange drakter og tillegg. Du kan kopiere og lime inn <code>skins/</code>-mappen fra denne.\n:* laste ned individuelle drakt-tarballer fra [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* klone en av <code>mediawiki/skins/*</code>-arkivene via git til <code dir=\"ltr\">skins/</code>-mappa i din MediaWiki-installasjon.\n: Å gjøre dette vil ikke forstyrre ditt git-arkiv om du er en MediaWiki-utvikler. Se [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] for informasjon om hvordan du slår på drakter og velger en standarddrakt.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (slått på)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''slått av''')",
index 721933a..c36843a 100644 (file)
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|hef}} t groepslidmaotschap ewiezigd veur $3",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|is}} automaties bevorderd van $4 tot $5",
        "logentry-upload-upload": "$1 hef $3 {{GENDER:$2|op-estuurd}}",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|hef}} n nieje versie van $3 op-elaojen",
        "rightsnone": "(gien)",
        "revdelete-summary": "samenvatting bewarken",
        "feedback-adding": "Joew kommentaar wörden op de zied ezet...",
index 3a53438..569367f 100644 (file)
                        "아라",
                        "Steinsplitter",
                        "Macofe",
-                       "बिप्लब आनन्द"
+                       "बिप्लब आनन्द",
+                       "Nirjal stha",
+                       "राम प्रसाद जोशी"
                ]
        },
-       "tog-underline": "समà¥\8dबनà¥\8dध à¤¨à¤¿à¤®à¥\8dन à¤°à¥\87à¤\96ाà¤\99à¥\8dà¤\95न:",
-       "tog-hideminor": "भरà¥\8dà¤\96रà¤\95ा à¤®à¤¾à¤®à¥\82लà¥\80 à¤¸à¤®à¥\8dपादनहरà¥\81लाà¤\88 लुकाउने",
-       "tog-hidepatrolled": "गस्ती(patrolled)सम्पादनहरु हालका परिवर्तनहरुमा लुकाउने",
-       "tog-newpageshidepatrolled": "गस्ती गरिएका पृष्ठहरू नयाँ पृष्ठ सूचीबाट लुकाउने",
-       "tog-extendwatchlist": "निगरानी सूचीलाई सबै परिवर्तनहरू देखाउने गरी बढाउने , हालैको  बाहेक",
-       "tog-usenewrc": "पà¥\83षà¥\8dठà¤\95ा à¤­à¤°à¥\8dà¤\96रà¤\95ा à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤° à¤\85वलà¥\8bà¤\95न à¤¸à¥\82à¤\9aà¥\80à¤\95à¥\8b à¤\86धारमा à¤¸à¤¾à¤®à¥\82हिà¤\95 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनहरà¥\81",
-       "tog-numberheadings": "शà¥\80रà¥\8dषà¤\95हरà¥\81लाई स्वत:अङ्कित गर्नुहोस्",
+       "tog-underline": "रà¥\87à¤\96ाà¤\99à¥\8dà¤\95ित à¤²à¤¿à¤\99à¥\8dà¤\95:",
+       "tog-hideminor": "सामानà¥\8dय à¤¸à¤®à¥\8dपादनहरà¥\81लाà¤\88 à¤¨à¤¯à¤¾à¤\81 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनहरà¥\82बाà¤\9f लुकाउने",
+       "tog-hidepatrolled": "गस्ती गरिएका सम्पादनहरुलाई नयाँ परिवर्तनहरूबाट लुकाउने",
+       "tog-newpageshidepatrolled": "गस्ती गरिएका पृष्ठहरूलाई नयाँ पृष्ठ सूचीबाट लुकाउने",
+       "tog-extendwatchlist": "निगरानी सूचीलाई सबै परिवर्तनहरू देखाउने गरी बढाउने, हालैको परिवर्तनहरू बाहेक",
+       "tog-usenewrc": "पà¥\83षà¥\8dठà¤\95ा à¤­à¤°à¥\8dà¤\96रà¤\95ा à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤° à¤\85वलà¥\8bà¤\95न à¤¸à¥\82à¤\9aà¥\80à¤\95à¥\8b à¤\86धारमा à¤¸à¤¾à¤®à¥\82हिà¤\95 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनहरà¥\82",
+       "tog-numberheadings": "शà¥\80रà¥\8dषà¤\95हरà¥\82लाई स्वत:अङ्कित गर्नुहोस्",
        "tog-showtoolbar": "सम्पादन औजारबट्टा देखाउने",
        "tog-editondblclick": "दोहोरो क्लिकमा पृष्ठ सम्पादन गर्ने",
        "tog-editsectiononrightclick": "शीर्षकमा दाहिने क्लिकद्वारा खण्ड सम्पादन सक्षम पार्ने",
        "tog-watchdefault": "मैले सम्पादन गरेको पृष्ठ र फाइल निगरानी सूचीमा थप्ने",
        "tog-watchmoves": "मैले सारेका पृष्ठहरू र फाइलहरूलाई निगरानी सूचीमा थप्ने",
        "tog-watchdeletion": "मैले हटाएका पृष्ठहरू र फाइलहरूलाई निगरानी सूचीमा थप्ने",
-       "tog-minordefault": "सबै सम्पादनहरुलाई पूर्वनिर्धारित रुपमा सामान्य चिनो लगाउने",
-       "tog-previewontop": "सम्पादन सन्दुक अगि पूर्वरुप देखाउने",
+       "tog-watchrollback": "मैले रोलब्याक गरेका पृष्ठहरूलाई मेरो निगरानी सूचीमा थप्ने।",
+       "tog-minordefault": "सबै सम्पादनहरूलाई पूर्वनिर्धारित रुपमा सामान्य चिनो लगाउने",
+       "tog-previewontop": "सम्पादन सन्दुक अघि पूर्वरुप देखाउने",
        "tog-previewonfirst": "पहिलो सम्पादनमा पूर्वरुप देखाउने",
-       "tog-enotifwatchlistpages": "मà¥\87रà¥\8b à¤¨à¤¿à¤\97रानà¥\80 à¤¸à¥\82à¤\9aà¥\80मा à¤°à¤¹à¥\87à¤\95ा à¤ªà¥\83षà¥\8dठ à¤\85थवा à¤«à¤¾à¤\87लहरà¥\81 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤\97रिà¤\8f मलाई ई-मेल गरियोस्",
-       "tog-enotifusertalkpages": "मà¥\87रà¥\8b à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता à¤µà¤¾à¤°à¥\8dता à¤ªà¥\83षà¥\8dठ à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤\97रिà¤\8f मलाई ई-मेल गर्ने",
-       "tog-enotifminoredits": "पà¥\83षà¥\8dठहरà¥\82 à¤° à¤«à¤¾à¤\87लहरà¥\82मा à¤¸à¤¾à¤®à¤¾à¤¨à¥\8dय à¤¸à¤®à¥\8dपादन à¤­à¤\8fमा à¤ªà¤¨à¤¿ à¤®à¤²à¤¾à¤\88 à¤\88-मà¥\87ल à¤\97रियà¥\8bसà¥\8d",
-       "tog-enotifrevealaddr": "à¤\9cानà¤\95ारà¥\80 à¤\87-मà¥\87लहरà¥\81मा मेरो इ-मेल खुलाउने",
-       "tog-shownumberswatching": "निà¤\97रानà¥\80 à¤\97रिरहà¥\87à¤\95ा à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताहरà¥\81को संख्या देखाउने",
+       "tog-enotifwatchlistpages": "मà¥\87रà¥\8b à¤¨à¤¿à¤\97रानà¥\80 à¤¸à¥\82à¤\9aà¥\80मा à¤°à¤¹à¥\87à¤\95ा à¤ªà¥\83षà¥\8dठ à¤\85थवा à¤«à¤¾à¤\87लहरà¥\81 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤­à¤\8fपà¤\9bà¥\80 मलाई ई-मेल गरियोस्",
+       "tog-enotifusertalkpages": "मà¥\87रà¥\8b à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता à¤µà¤¾à¤°à¥\8dता à¤ªà¥\83षà¥\8dठ à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤­à¤\8fपà¤\9bà¥\80 मलाई ई-मेल गर्ने",
+       "tog-enotifminoredits": "पà¥\83षà¥\8dठहरà¥\82 à¤° à¤«à¤¾à¤\87लहरà¥\82मा à¤¸à¤¾à¤®à¤¾à¤¨à¥\8dय à¤¸à¤®à¥\8dपादन à¤­à¤\8fमा à¤ªà¤¨à¤¿ à¤®à¤²à¤¾à¤\88 à¤\88-मà¥\87ल à¤\97रà¥\8dनà¥\87",
+       "tog-enotifrevealaddr": "à¤\9cानà¤\95ारà¥\80 à¤\87-मà¥\87लहरà¥\82मा मेरो इ-मेल खुलाउने",
+       "tog-shownumberswatching": "निà¤\97रानà¥\80 à¤\97रिरहà¥\87à¤\95ा à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताहरà¥\82को संख्या देखाउने",
        "tog-oldsig": "वर्तमान हस्ताक्षर:",
-       "tog-fancysig": "मेरो दस्तखतलाई विकि पाठको रुपमा लिने(स्वत सम्वन्ध बिना)",
+       "tog-fancysig": "मेरो दस्तखतलाई विकि पाठको रुपमा लिने (स्वत लिङ्क बिना)",
        "tog-uselivepreview": "प्रत्यक्ष पूर्वरुप प्रयोग गर्नुहोस",
-       "tog-forceeditsummary": "à¤\96ालà¥\80 à¤¸à¤®à¥\8dपादन à¤¸à¤¾à¤° प्रविष्टि गरेमा मलाई सोध्ने",
+       "tog-forceeditsummary": "à¤\96ालà¥\80 à¤¸à¤®à¥\8dपादन à¤¶à¥\80रà¥\8dषà¤\95 प्रविष्टि गरेमा मलाई सोध्ने",
        "tog-watchlisthideown": "मेरा सम्पादनहरू निगनारी सूचीबाट लुकाउने",
        "tog-watchlisthidebots": "बोट सम्पादनहरू निगरानी सूचीबाट लुकाउने",
-       "tog-watchlisthideminor": "साना-तिना सम्पादनहरू निगरानी सूचीबाट लुकाउने",
-       "tog-watchlisthideliu": "पà¥\8dरवà¥\87श à¤\97रà¥\87à¤\95ा à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताहरà¥\81को सम्पादन निगरानी सूचीबाट लुकाउने",
-       "tog-watchlisthideanons": "à¤\85à¤\9cà¥\8dà¤\9eात à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताहरà¥\81बाट गरिएको सम्पादन निगरानी सूचीबाट लुकाउने",
-       "tog-watchlisthidepatrolled": "à¤\97सà¥\8dतà¥\80 à¤\97रिà¤\8fà¤\95ा à¤¸à¤®à¥\8dपादनहरà¥\81 मेरो निगरानी सूचीबाट लुकाउने",
-       "tog-ccmeonemails": "मà¥\88लà¥\87 à¤\85रà¥\81 à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताहरà¥\81लाई पठाउने इ-मेलको प्रतिलिपि मलाई पठाउने",
-       "tog-diffonly": "तलà¤\95ा à¤ªà¥\83षà¥\8dठहरà¥\81à¤\95à¥\8b à¤­à¤¿à¤¨à¥\8dनहरà¥\81 सामग्री नदेखाउने",
-       "tog-showhiddencats": "लà¥\81à¤\95ाà¤\87à¤\8fà¤\95à¥\8b à¤¶à¥\8dरà¥\87णà¥\80हरà¥\81 देखाउने",
+       "tog-watchlisthideminor": "सामानà¥\8dय सम्पादनहरू निगरानी सूचीबाट लुकाउने",
+       "tog-watchlisthideliu": "पà¥\8dरवà¥\87श à¤\97रà¥\87à¤\95ा à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताहरà¥\82को सम्पादन निगरानी सूचीबाट लुकाउने",
+       "tog-watchlisthideanons": "à¤\85à¤\9cà¥\8dà¤\9eात à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताहरà¥\82बाट गरिएको सम्पादन निगरानी सूचीबाट लुकाउने",
+       "tog-watchlisthidepatrolled": "à¤\97सà¥\8dतà¥\80 à¤\97रिà¤\8fà¤\95ा à¤¸à¤®à¥\8dपादनहरà¥\82 मेरो निगरानी सूचीबाट लुकाउने",
+       "tog-ccmeonemails": "मà¥\88लà¥\87 à¤\85नà¥\8dय à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताहरà¥\82लाई पठाउने इ-मेलको प्रतिलिपि मलाई पठाउने",
+       "tog-diffonly": "तलà¤\95ा à¤ªà¥\83षà¥\8dठहरà¥\82à¤\95à¥\8b à¤­à¤¿à¤¨à¥\8dनहरà¥\82 सामग्री नदेखाउने",
+       "tog-showhiddencats": "लà¥\81à¤\95ाà¤\87à¤\8fà¤\95à¥\8b à¤¶à¥\8dरà¥\87णà¥\80हरà¥\82 देखाउने",
        "tog-norollbackdiff": "पूर्वस्थितिमा फर्काएपछि भिन्नता हटाउने",
-       "tog-useeditwarning": "समà¥\8dपादनहरà¥\82 à¤¸à¤\99à¥\8dà¤\97à¥\8dरह à¤\97रिनसà¤\95à¥\87को अवस्थामा अर्को पृष्ठमा जान खोज्दा चेतावनी देखाउने",
-       "tog-prefershttps": "प्रवेश गर्दा जहिले पनि सुरक्षित जडान प्रयोग गर्ने",
+       "tog-useeditwarning": "समà¥\8dपादनहरà¥\82 à¤¸à¤\99à¥\8dà¤\97à¥\8dरह à¤¨à¤\97रिà¤\8fको अवस्थामा अर्को पृष्ठमा जान खोज्दा चेतावनी देखाउने",
+       "tog-prefershttps": "प्रवेश गर्दा जहिले पनि सुरक्षित जडानको प्रयोग गर्ने",
        "underline-always": "सधैँ",
        "underline-never": "कहिल्यै",
        "underline-default": "खोल अथवा ब्राउजर पूर्वस्थिति",
        "views": "अवलोकनहरू",
        "toolbox": "औजारहरू",
        "userpage": "प्रयोगकर्ता पृष्ठ हेर्ने",
-       "projectpage": "पà¥\8dरà¥\8bà¤\9cà¥\87à¤\95à¥\8dà¤\9f पृष्ठ हेर्ने",
+       "projectpage": "à¤\86यà¥\8bà¤\9cना पृष्ठ हेर्ने",
        "imagepage": "फाइल पृष्ठ हेर्नुहोस्",
        "mediawikipage": "सन्देश पृष्ठ हेर्ने",
        "templatepage": "ढाँचा पृष्ठ हेर्ने",
        "categorypage": "श्रेणी पृष्ठ हेर्नुहोस्",
        "viewtalkpage": "छलफल हेर्नुहोस्",
        "otherlanguages": "अरु भाषामा",
-       "redirectedfrom": "($1 बाट पठाइएको)",
+       "redirectedfrom": "($1बाट अनुप्रेषित)",
        "redirectpagesub": "अनुप्रेषित पृष्ठ",
        "redirectto": "अनुप्रेषित पृष्ठ:",
        "lastmodifiedat": "यो पृष्ठलाई अन्तिमपटक $2, $1 मा परिवर्तन गरिएको थियो।",
        "pool-timeout": "समय सकियो बन्द गर्ने प्रतीक्षामा",
        "pool-queuefull": "प्रतीक्षा पङ्क्ति भरियो",
        "pool-errorunknown": "अज्ञात त्रुटि",
+       "pool-servererror": "पुल काउन्टर सेवा उपलब्ध छैन ($1)।",
+       "poolcounter-usage-error": "प्रयोग त्रुटी:$1",
        "aboutsite": "{{SITENAME}}को बारेमा",
        "aboutpage": "Project:बारेमा",
        "copyright": "सामाग्री $1 अनुसार उपलब्ध छ, खुलाइएको अवस्था बाहेकको हकमा ।",
-       "copyrightpage": "{{ns:project}}:पà¥\8dरतिलिपà¥\80 à¤\85धिà¤\95ारहरà¥\81",
+       "copyrightpage": "{{ns:project}}:पà¥\8dरतिलिपà¥\80 à¤\85धिà¤\95ारहरà¥\82",
        "currentevents": "हालैका घटनाहरू",
        "currentevents-url": "Project:हालैका घटनाहरू",
-       "disclaimers": "à¤\85सà¥\8dविà¤\95ारà¥\8bà¤\95à¥\8dतिहरà¥\81",
+       "disclaimers": "à¤\85सà¥\8dविà¤\95ारà¥\8bà¤\95à¥\8dतिहरà¥\82",
        "disclaimerpage": "Project:सामान्य अस्वीकारोक्ति",
        "edithelp": "सम्पादन सहायता",
        "helppage-top-gethelp": "सहायता",
        "confirmable-confirm": "तपाईं {{GENDER:$1|लिङ्ग}} हो?",
        "confirmable-yes": "हो",
        "confirmable-no": "होइन",
-       "thisisdeleted": "$1 हेर्ने या पूर्वरुपमा फर्काउने हो ?",
-       "viewdeleted": "$1 हेर्ने ?",
+       "thisisdeleted": "$1 हेर्ने या पूर्वरुपमा फर्काउने हो?",
+       "viewdeleted": "$1 हेर्ने?",
        "restorelink": "{{PLURAL:$1|एक मेटिएको सम्पादन |$1 मेटिएका सम्पादनहरू}}",
        "feedlinks": "फिड :",
        "feed-invalid": "अमान्य फिड प्रकार ग्राह्याता ।",
        "feed-unavailable": "सिन्डीकेसन फिडहरु उपलब्ध छैनन्",
-       "site-rss-feed": "$1 RSS फिड",
+       "site-rss-feed": "$1 आरएसएस फिड",
        "site-atom-feed": "$1 एटम फिड",
-       "page-rss-feed": "\"$1\" RSS फिड",
+       "page-rss-feed": "\"$1\" आरएसएस फिड",
        "page-atom-feed": "\"$1\" एटम फिड",
        "feed-atom": "अणु",
        "feed-rss": "RSS",
        "databaseerror-textcl": "डेटावेस क्वेरीमा खराबी देखियो ।",
        "databaseerror-query": "क्वेरी: $1",
        "databaseerror-function": "फङ्सन : $1",
-       "databaseerror-error": "à¤\96राबà¥\80: $1",
-       "laggedslavemode": "'''चेतावनी:''' पृष्ठमा हालका अद्यतनहरु नहुनसक्छन् ।",
+       "databaseerror-error": "तà¥\8dरà¥\81à¤\9fि: $1",
+       "laggedslavemode": "<strong>चेतावनी:</strong> पृष्ठमा हालका अद्यतनहरू नहुनसक्छन् ।",
        "readonly": "डेटाबेस बन्द गरिएको छ",
        "enterlockreason": "ताल्चा मार्नुको कारण दिनुहोस्, साथै ताल्चा हटाउने समयको अवधि अनुमान लगाउनुहोस्।",
        "readonlytext": "सम्भवतः नियमित डेटाबेस रख-रखाउको कारण अहिलेलाई नयाँ डेटाबेस प्रविष्टी र अन्य संशोधनहरु  बन्द राखिएकोछ,, जसलाई पछिबाट सामान्य गरिनेछ। \nप्रबन्धक जसले यो बन्द गरेकाछन्, यो स्पष्टीकरण दिएकाछन्: $1",
        "missing-article": "नाम \"$1\" $2 भएको भेटिनु पर्ने पृष्ठको पाठ डेटाबेसले  भेटाइएन, \n\nयस्तो प्राय: मिति नाघिसकेको भिन्न वा इतिहास वा कुनै मेटिसकेको पानाको लिंक पहिल्याउनाले हुन्छ ।\n\nयदि यस्तो भएको होइन भने सफ्टवेयरको त्रुटि पनि हुनसक्छ ।\nकृपया यसको url खुलाइ [[Special:ListUsers/sysop|प्रबन्धक]]लाई उजुरी गर्नुहोस्",
        "missingarticle-rev": "(संशोधन #: $1)",
-       "missingarticle-diff": "(डिफ diff: $1, $2)",
-       "readonly_lag": "डेटाबेस स्वतः बन्द गरिएकोछ जबकि अधिनस्थ डेटाबेस सर्वरले मूल पहिल्याउँदछ।",
+       "missingarticle-diff": "(परि: $1, $2)",
+       "readonly_lag": "डेटाबेस स्वतः बन्द गरिएको छ जबकि अधिनस्थ डेटाबेस सर्वरले मूल पहिल्याउँदैछ।",
        "internalerror": "आन्तरिक त्रुटि",
        "internalerror_info": "आन्तरिक त्रुटि: $1",
+       "internalerror-fatal-exception": "प्रकारको गम्भीर अपवाद \"$1\"",
        "filecopyerror": "फाइल  \"$1\" लाई \"$2\" मा प्रतिलिपि गर्न सकिएन ।",
        "filerenameerror": "फाइल \"$1\" को नाम \"$2\" मा परिवर्तन गर्न सकिएन ।",
        "filedeleteerror": "फाइल \"$1\"  मेट्न सकिएन ।",
        "directorycreateerror": "डाइरेक्टरी \"$1\" निर्माण गर्न सकिएन ।",
+       "directoryreadonlyerror": "निर्देशिका \"$1\" मात्रै पढ्न योग्य छ।",
+       "directorynotreadableerror": "निर्देशिका \"$1\" पढ्न योग्य छैन।",
        "filenotfound": "\"$1\" फाइल भेटिएन ।",
        "unexpected": "अप्रत्यासित मान :\"$1\"=\"$2\" ।",
-       "formerror": "तà¥\8dरà¥\81à¤\9fà¥\80 : फर्म बुझाउन सकिएन",
+       "formerror": "तà¥\8dरà¥\81à¤\9fि : फर्म बुझाउन सकिएन",
        "badarticleerror": "यो कार्य यस पृष्ठमा गर्न मिल्दैन।",
        "cannotdelete": "\"$1\" पृष्ठ वा फ़ाइल मेट्नसकिएन।\nयो अघिबाट नैं मेटिएको हुनुपर्छ।",
        "cannotdelete-title": "पृष्ठ  \"$1\" लाई मेट्न सकिएन",
        "no-null-revision": "$1 पृष्ठको लागि खालि पुनरावलोकन सिर्जना गर्न सकिएन",
        "badtitle": "गलत शीर्षक",
        "badtitletext": "अनुरोध गरेको पृष्ठ शीर्षक अमान्य, खाली वा गलत रुपमा अन्तर भाषा वा अन्तर विकी सम्बन्ध गरिएको थियो।  यसमा शीर्षकमा प्रयोग गर्न नमिल्ने एक वा बढी अक्षरहरू रहेका हुनसक्छन् ।",
-       "perfcached": "तलको डाटाहरु क्याचमा रहेका कुराहरु हुन्। अपटुडेट नहुनपनि सक्छन्।अधिकतम {{PLURAL:$1|नतिजा|$1 नतिजाहरू}} क्यासमा उपलब्ध छ।",
-       "perfcachedts": "निम्न आँकडा क्याच हो र $1 पहिला अद्यतन गरिएको थियो।  यस क्याचमा उपलब्ध {{PLURAL:$4|एउटा कारण हो|$4 कारणहरु हुन्}}।",
+       "title-invalid-empty": "निवेदन गरिएको पृष्ठको शिर्षक कि त खाली छ वा नेमस्पेसको नाम मात्रै छ ।",
+       "title-invalid-utf8": "निवेदन गरिएको पृष्ठको शिर्षकमा अवैध युटिएफ-८ अनुक्रम रहेको छ ।",
+       "title-invalid-interwiki": "अनुरोध गरिएको शिर्षकमा अन्तर विकि लिङ्क छ जसलाई शिर्षकमा प्रयोग गर्न मिल्दैन ।",
+       "title-invalid-talk-namespace": "निवेदन गरिएको पृष्ठको शिर्षकले उपलब्ध नभएको वार्ता पृष्ठलाई सन्दर्भको रूपमा राखेको छ ।",
+       "title-invalid-characters": "निवेदन गरिएको यस पृष्ठको शिर्षकमा अबैध अक्षर रहेको छः \"$1\" ।",
+       "title-invalid-relative": "शीर्षक एउटा सन्दर्भित मार्ग राख्दछ। सन्दर्भित पृष्ठको शीर्षक (./, ../)अमान्य छ, किनकि त्यो प्राय रूपले पहुँच बाहिर हुन्छ जब त्यसलाई प्रायोगकर्ताको ब्राउजरबाट प्रयोगमा ल्याउने प्रयास गर्ने गरिन्छ।",
+       "title-invalid-magic-tilde": "निवेदन गरिएको पृष्ठको शिर्षकमा अवैध म्याजिक टाइड अनुक्रम (<nowiki>~~~</nowiki>) रहेको छ ।",
+       "title-invalid-too-long": "अनुरोध गरिएको पृष्ठको शिर्षक धेरै लामो रहेको छ । यो युटिएफ-८ इनकोडिङ्गमा $1 {{PLURAL:$1|बाइट|बाइटहरू}} भन्दा लामो हुनु हुदैन ।",
+       "title-invalid-leading-colon": "निवेदन गरिएको पृष्ठको शिर्षकको शुरूमा अवैध कोलोन रहेको छ ।",
+       "perfcached": "तलको डाटाहरू क्याचमा रहेका कुराहरू हुन्। अपटुडेट नहुनपनि सक्छन्। अधिकतम {{PLURAL:$1|नतिजा|$1 नतिजाहरू}} क्याचमा उपलब्ध छ।",
+       "perfcachedts": "निम्न आँकडा क्याच हो र $1 पहिला अद्यतन गरिएको थियो। यस क्याचमा उपलब्ध {{PLURAL:$4|एउटा कारण हो|$4 कारणहरू हुन्}}।",
        "querypage-no-updates": "यो पृष्ठको अद्यतन कार्य निस्क्रिय गरिएको छ।\nयहाँको डेटा हालमा ताजा पारिने  छैन।",
        "viewsource": "स्रोत हेर्नुहोस",
        "viewsource-title": " $1 को स्रोत हेर्नुहोस",
        "viewsourcetext": "तपाईँले यस पृष्ठको स्रोत हेर्न र प्रतिलिपी गर्न सक्नुहुन्छ ।",
        "viewyourtext": "यस पृष्ठमा रहेका '''तपाईँका सम्पादनहरु''' हेर्न या प्रतिलिपी गर्न सक्नुहुन्छ :",
        "protectedinterface": "यो पृष्ठले सफ्टवेयरको लागि अन्तरमोहडा पाठ प्रदान गर्दछ , र यसलाई दुरुपयोग हुनबाट बचाउन सुरक्षा प्रादन गरिएको छ।\nसम्पूर्ण विकिहरूका लागि अनुवादमा परिवर्तन गर्नको लागि [//translatewiki.net/ translatewiki.net], प्रयोग गर्नुहोस् ,  मिडियाविकि स्थानियकरण परियोजना ।",
-       "editinginterface": "'''चेतावनी:''' तपाईं यस्तो पृष्ठलाई सम्पादन गर्नुहुँदैछ, जसले सफ्टवेयरको लागि अन्तरमोहोड़ा (interface) पाठ प्रदान गर्दछ।\nयसको परिवर्तनले यस विकिमा अरु प्रयोगकर्ताको अन्तरमोहोड़ाको प्रदर्शनमा प्रभाव पार्छ।\nसबै विकिका निम्ति अनुवाद जोड्न अथवा परिबर्तन गर्न कृपया यहाँ जानुहोस् [//translatewiki.net/ translatewiki.net], मीडियाविकि स्थानीयकरण पारियोजना।",
-       "cascadeprotected": "यो पृष्ठ सम्पादन गर्नबाट सुरक्षित गरिएकोछ किनभनें   {{PLURAL:$1|पृष्ठ |पृष्ठहरु}}मा  सुरक्षित गर्नुका साथै प्रपात (\"cascading\") विकल्प खुल्ला राखिएकोछ:\n$2",
-       "namespaceprotected": " '''$1'''  नेमस्पेसमा रहेका पृष्ठहरु सम्पादन गर्ने अनुमति यहाँलाई छैन ।",
+       "editinginterface": "<strong>चेतावनी:</strong> तपाई यस पृष्ठलाई सम्पादन गर्नुहुँदैछ, जसले सफ्टवेयरको लागि \nइन्टरफेस सामग्रीहरू प्रदान गर्दछ।\nयस पृष्ठमा गरिएकोपरिवर्तनले यस विकिमा अरु प्रयोगकर्ताको इन्टरफेसको प्रदर्शनमा प्रभाव पार्नेछ ।",
+       "translateinterface": "सबै विकिहरूको लागी अनुवाद जोड्न वा परिवर्तन गर्नका लागि मीडियाविकि क्षेत्रीयकरण परियोजना [//translatewiki.net/ ट्रान्सलेटविकि.नेट]को प्रयोग गर्नुहोस।",
+       "cascadeprotected": "यो पृष्ठ सम्पादन गर्नबाट सुरक्षित गरिएकोछ किनभनें {{PLURAL:$1|पृष्ठ |पृष्ठहरू}}मा सुरक्षित गर्नुका साथै प्रपात (\"cascading\") विकल्प खुल्ला राखिएको छ:\n$2",
+       "namespaceprotected": " '''$1'''  नेमस्पेसमा रहेका पृष्ठहरू सम्पादन गर्ने अनुमति यहाँलाई छैन ।",
        "customcssprotected": "तपाईलाई यस  पृष्ठ सम्पादन गर्ने अनुमति छैन, किनकी यसमा कुनै अर्को प्रयोगकर्ताको व्यक्तिगत अभिरुचीहरु संग्रहित छन् ।",
        "customjsprotected": "तपाईलाई यस जाभास्कृप्ट पृष्ठ सम्पादन गर्ने अनुमति छैन, किनकी यसमा कुनै अर्को प्रयोगकर्ताको व्यक्तिगत अभिरुचीहरु संग्रहित छन् ।",
        "mycustomcssprotected": "यस CSSपृष्ठ सम्पादन गर्नको लागि लागि तपाईँलाई अनुमति छैन ।",
        "mycustomjsprotected": "यस JavaScript पृष्ठ सम्पादन गर्नको लागि लागि तपाईँलाई अनुमति छैन ।",
        "myprivateinfoprotected": "तपाईँसँग तपाईँको निजी जानकारीहरू सम्पादन गर्ने अनुमती छैन",
        "mypreferencesprotected": "तपाईँसँग तपाईँको अभिरुचीहरू सम्पादन गर्ने अनुमती छैन",
-       "ns-specialprotected": "विशेष पृष्ठ सम्पादन गर्न सकिदैन ।",
-       "titleprotected": " [[User:$1|$1]]द्वारा यो शीर्षक निर्माणहुनबाट जोगाइएको छ।\nकारण   \"''$2''\" हो ।",
+       "ns-specialprotected": "विशेष पृष्ठहरू सम्पादन गर्न सकिदैन।",
+       "titleprotected": "[[User:$1|$1]]द्वारा यो शीर्षक निर्माणहुनबाट जोगाइएको छ।\nकारण \"<em>$2</em>\" हो ।",
        "filereadonlyerror": "फाइल \"$1\" लाई परिवर्तन गर्न सकिँदैन किन भने फाइल भण्डार  \"$2\" केवल पढ्ने स्थिति (read-only mode)मा छ।\n\nयसलाई सुरक्षित गर्ने प्रवन्धकले  यो कारण दिएकाछन् : ''$3''।",
+       "invalidtitle-knownnamespace": "नेमस्पेस \"$2\" तथा अक्षर \"$3\" सहितको अवैश शिर्षक",
+       "invalidtitle-unknownnamespace": "अज्ञात नेमस्पेस अंक $1 तथा अक्षर \"$2\" भएको अवैध शिर्षक",
        "exception-nologin": "प्रवेश (लग ईन) नगरिएको",
+       "exception-nologin-text": "यस पृष्ठमा प्रवेश गर्न वा कुनै कार्य गर्नको लागी कृपया प्रवेश (लग इन) गर्नु होस् ।",
+       "exception-nologin-text-manual": "यस पृष्ठमा प्रवेश गर्न वा कुनै कार्य गर्नको लागी कृपया $1 गर्नु होस् ।",
        "virus-badscanner": "खराव मिलान: अज्ञात भाइरस स्क्यानर :''$1''",
        "virus-scanfailed": "पढाइ असफल(कोड $1)",
-       "virus-unknownscanner": "नà¤\96à¥\81लà¥\87à¤\95à¥\8b एन्टीभाइरस:",
-       "logouttext": "'''तपाईं अहिले बाहिर निस्कनु भएको छ।'''\n\nयाद राख्नुहोस् तपाईंले ब्राउजरको क्याश खालि नगर्दासम्म कुनै पृष्ठहरूमा तपाईं अझै प्रवेश गरिराखेको देखाउन सक्छ।",
+       "virus-unknownscanner": "à¤\85à¤\9cà¥\8dà¤\9eात एन्टीभाइरस:",
+       "logouttext": "<strong>तपाईं अहिले बाहिर निस्कनु भएको छ।</strong>\n\nयाद राख्नुहोस् तपाईंले ब्राउजरको क्याच खालि नगर्दासम्म कुनै पृष्ठहरूमा तपाईं अझै प्रवेश गरिरखेको देखाउन सक्छ।",
        "welcomeuser": "$1जी स्वागत छ!",
+       "welcomecreation-msg": "तपाईको खाता तयार भयो । \nतपाईले चाहनु भएको खण्डमा {{SITENAME}} [[Special:Preferences|preferences]] परिवर्तन गर्न सक्नु हुनेछ ।",
        "yourname": "प्रयोगकर्ता नाम:",
        "userlogin-yourname": "प्रयोगकर्ता नाम",
        "userlogin-yourname-ph": "तपाईँको प्रयोगकर्तानाम लेख्नुहोस्",
        "yourpasswordagain": "पासवर्ड फेरि टाईप गर्नुहोस्",
        "createacct-yourpasswordagain": "पासवर्ड निश्चित गर्नुहोस्",
        "createacct-yourpasswordagain-ph": "फेरि पासवर्ड लेख्नुहोस्",
-       "remembermypassword": "यà¥\8b à¤\95मà¥\8dपà¥\8dयà¥\81à¤\9fरमा à¤®à¥\87रà¥\8b à¤ªà¥\8dरवà¥\87श à¤¯à¤¾à¤¦ à¤\97र à¥¤ (धà¥\87रà¥\88मा $1 {{PLURAL:$1|दिन|दिनहरà¥\81}})",
+       "remembermypassword": "यà¥\8b à¤\95मà¥\8dपà¥\8dयà¥\81à¤\9fरमा à¤®à¥\87रà¥\8b à¤ªà¥\8dरवà¥\87श à¤¯à¤¾à¤¦ à¤°à¤¾à¤\96à¥\8dनà¥\87 (धà¥\87रà¥\88मा $1 {{PLURAL:$1|दिन|दिनहरà¥\82}})",
        "userlogin-remembermypassword": "मलाई प्रवेश गराइराख्ने",
        "userlogin-signwithsecure": "सुक्षित जडान प्रयोग गर्ने",
-       "yourdomainname": "तपाईंको ज्ञानक्षेत्र(डोमेन)",
-       "password-change-forbidden": "यो विकिमा पासवर्ड परिवर्तन गर्न सक्नुहुन्न ।",
+       "yourdomainname": "तपाईंको ज्ञानक्षेत्र(डोमेन):",
+       "password-change-forbidden": "यो विकिमा पासवर्ड परिवर्तन गर्न सक्नुहुन्न।",
        "externaldberror": "यहाँ प्रमाणिकरण डेटाबेस त्रुटि भयो या त तपाईंलाई आफ्नो बाहिरी खाता अद्यतन गर्ने अनुमति छैन।",
        "login": "प्रवेश",
        "nav-login-createaccount": "प्रवेश गर्ने/नयाँ खाता बनाउने",
        "notloggedin": "प्रवेश (लग ईन) नगरिएको",
        "userlogin-noaccount": "के खाता छैन ?",
        "userlogin-joinproject": "{{SITENAME}} मा खाता खोल्नुहोस् ।",
-       "nologin": "तपाईको खाता छैन? $1 ।",
+       "nologin": "तपाईको खाता छैन? $1।",
        "nologinlink": "नयाँ खाता खोल्नुहोस्",
        "createaccount": "खाता खोल्नुहोस्",
        "gotaccount": "के तपाईँसँग पहिले देखि नै खाता छ ? '''$1''' ।",
        "gotaccountlink": "लग इन",
-       "userlogin-resetlink": "पà¥\8dरवà¥\87श à¤¸à¤®à¥\8dबनà¥\8dधà¥\80 à¤µà¤¿à¤µà¤°à¤£à¤¹à¤°à¥\81 बिर्सनु भयो?",
+       "userlogin-resetlink": "पà¥\8dरवà¥\87श à¤¸à¤®à¥\8dबनà¥\8dधà¥\80 à¤µà¤¿à¤µà¤°à¤£à¤¹à¤°à¥\82 बिर्सनु भयो?",
        "userlogin-resetpassword-link": "पासवर्ड भुल्नुभयो?",
        "userlogin-helplink2": "प्रवेश गर्नको लागि सहयोग",
+       "userlogin-loggedin": "तपाई {{GENDER:$1|$1}}को रूपमा प्रवेश (लग इन) भइ सक्नु भयो ।\nअर्को प्रयोगकर्ताको रूपमा प्रवेश (लग इन) गर्न तलको फारम प्रयोग गर्नुहोस् ।",
        "userlogin-createanother": "अर्को खाता खोल्नुहोस्",
        "createacct-emailrequired": "इमेल ठेगाना",
        "createacct-emailoptional": "इमेल ठेगाना (ऐच्छिक)",
        "createacct-email-ph": "तपाईँको इमेल ठेगाना भर्नुहोस्",
        "createacct-another-email-ph": "इमेल ठेगाना भर्नुहोस्",
        "createaccountmail": "कुनै अस्थाई र श्रिजित पासवर्ड प्रयोग गर्ने र खुलाईएको इमेलमा पठाउने",
-       "createacct-realname": "वास्तविक नाम(ऐच्छिक)",
-       "createaccountreason": "कारण :",
+       "createacct-realname": "वास्तविक नाम (ऐच्छिक)",
+       "createaccountreason": "कारण:",
        "createacct-reason": "कारण",
-       "createacct-reason-ph": "किन नयाँ खाता खोलिरहनु भएको हो ?",
+       "createacct-reason-ph": "à¤\95िन à¤¤à¤ªà¤¾à¤\88à¤\82 à¤¨à¤¯à¤¾à¤\81 à¤\96ाता à¤\96à¥\8bलिरहनà¥\81 à¤­à¤\8fà¤\95à¥\8b à¤¹à¥\8b ?",
        "createacct-captcha": "सुरक्षा जाँच",
        "createacct-imgcaptcha-ph": "माथि देखिए अनुसारको पाठ भर्नुहोस्",
        "createacct-submit": "तपाईँको खाता सिर्जना गर्नुहोस",
        "createaccounterror": "खाता बनाउन सकिएन: $1",
        "nocookiesnew": "तपाईँको खाता बनाइयो, तर तपाईँ प्रवेश गर्नुभएको छैन ।\n{{SITENAME}} ले प्रयोगकर्ता प्रवेश गराउन कुकीहरू प्रयोग गर्छ ।\nतपाईँका कुकीहरू निस्क्रिय छन्।\nकृपया सक्रिय बनाइ , नाम र प्रवेशशव्द राखी प्रवेश गर्नुहोला ।",
        "nocookieslogin": "{{SITENAME}} ले प्रयोगकर्ता प्रवेश गराउन कुकीहरू प्रयोग गर्छ । तपाईँको कुकीहरू निस्क्रिय गरिएको छ। कृपया सक्रिय बनाइ , नाम र प्रवेशशव्द राखी प्रवेश गर्नुहोला ।",
-       "nocookiesfornew": "प्रयोगकर्ताको खाता निर्माण गरिएन, हामीले यसको मूल स्रोत निर्धारण गर्न सकेनौं।\nनिश्चित गर्नुहोस् तपाईंले कुकी सक्रिय गर्नुभएकोछ, पुनः यस पृष्टलाई उठाई प्रयास गर्नुहोस्।",
+       "nocookiesfornew": "प्रयोगकर्ताको खाता निर्माण गरिएन, हामीले यसको मूल स्रोत निर्धारण गर्न सकेनौं।\nनिश्चित गर्नुहोस् तपाईंले कुकी सक्रिय गर्नुभएको छ, पुनः यस पृष्ठलाई खोल्ने प्रयास गर्नुहोस्।",
        "nocookiesforlogin": "{{int:nocookieslogin}}",
        "noname": "तपाईले सही प्रयोगकर्ता नाम दिनु भएन।",
        "loginsuccesstitle": "प्रवेश सफल",
        "nosuchusershort": " \"$1\" नामको कुनै पनि प्रयोगकर्ता भेटिएन।\n तपाईँको हिज्जे जाँच्नुहोस् ।",
        "nouserspecified": "तपाँईले प्रयोगकर्ताको नाम जनाउनुपर्छ।",
        "login-userblocked": "यस प्रयोगकर्तालाई रोक लगाइएको छ। प्रवेश गर्ने अनुमति छैन।",
-       "wrongpassword": "पासवर्ड गलत हालियो । कृपया फेरि प्रयास गर्नुहोला ।",
-       "wrongpasswordempty": "हालिएको पासवर्ड खालि थियो । कृपया फेरी प्रयास गर्नुहोला ।",
-       "passwordtooshort": "पासवर्ड कम्तिमा {{PLURAL:$1|१ अक्षर |$1 अक्षरहरु}}को हुनुपर्छ ।",
+       "wrongpassword": "पासवर्ड गलत हालियो।\nकृपया फेरि प्रयास गर्नुहोला।",
+       "wrongpasswordempty": "हालिएको पासवर्ड खालि थियो।\nकृपया फेरी प्रयास गर्नुहोला।",
+       "passwordtooshort": "पासवर्ड कम्तिमा {{PLURAL:$1|१ अक्षर|$1 अक्षरहरू}}को हुनुपर्छ।",
+       "passwordtoolong": "पासवर्ड {{PLURAL:$1|१ अक्षर|$1 अक्षरहरू}} भन्दा लामो हुनु हुदैन ।",
        "password-name-match": "तपाईँको प्रवेशशव्द प्रयोगकर्ता नाम भन्दा फरक हुनुपर्छ ।",
        "password-login-forbidden": "यो प्रयोगकर्ता नाम र प्रवेश शव्द वर्जित गरिएकोछ ।",
        "mailmypassword": "पासवर्ड पूर्वनिर्धारित गर्नुहोस्",
        "passwordsent": "\"$1\" को लागि दर्ता गरिएको ई-मेल ठेगानामा एक प्रवेशशव्द पठाइएको छ।\nकृपया त्यसलाई प्राप्त गरेपछि प्रवेश गर्नुहोला ।",
        "blocked-mailpassword": "तपाईको IP ठेगानालाई सम्पादनगर्नबाट रोक लगाइएको छ, र त्यसैले दुरुपयोग रोक्नको लागि प्रवेशशव्द पुनर्लाभ प्रक्रिया प्रयोग गर्न अनुमति छैन ।",
        "eauthentsent": "दिइएको इमेल ठेगानामा इमेल पठाइएको छ ।\nतपाईँको खातामा अरु इमेल पठउनु अघि , इमेलमा लेखिएको मार्गदर्शन अनुसार , त्यो खाता तपाईँकै हो भनेर निश्चित गर्नु पर्नेछ ।",
-       "throttled-mailpassword": "बितà¥\87à¤\95à¥\8b {{PLURAL:$1|à¤\98णà¥\8dà¤\9fा|$1 à¤\98णà¥\8dà¤\9fाहरà¥\81}} à¤­à¤¿à¤¤à¥\8dर à¤\8fà¤\89à¤\9fा à¤ªà¥\8dरवà¥\87शशबà¥\8dद à¤\85नà¥\81सà¥\8dमारà¤\95 à¤ªà¤ à¤¾à¤\88 à¤¸à¤\95िà¤\8fà¤\95à¥\8b à¤\9b।\nदà¥\81रà¥\81पयà¥\8bà¤\97बाà¤\9f à¤¬à¤\9aाà¤\89à¤\95à¥\8bलाà¤\97ि à¤ªà¥\8dरतà¥\8dयà¥\87à¤\95 {{PLURAL:$1|à¤\98णà¥\8dà¤\9fा|$1 à¤\98णà¥\8dà¤\9fाहरà¥\81}}मा à¤\95à¥\87वल à¤\8fà¤\89à¤\9fा à¤ªà¥\8dरवà¥\87शशबà¥\8dद अनुस्मारक पठाइन्छ।",
+       "throttled-mailpassword": "बितà¥\87à¤\95à¥\8b {{PLURAL:$1|à¤\98णà¥\8dà¤\9fा|$1 à¤\98णà¥\8dà¤\9fाहरà¥\81}} à¤­à¤¿à¤¤à¥\8dर à¤\8fà¤\89à¤\9fा à¤ªà¤¾à¤¸à¤µà¤°à¥\8dड à¤\85नà¥\81सà¥\8dमारà¤\95 à¤ªà¤ à¤¾à¤\88 à¤¸à¤\95िà¤\8fà¤\95à¥\8b à¤\9b।\nदà¥\81रà¥\81पयà¥\8bà¤\97बाà¤\9f à¤¬à¤\9aाà¤\89à¤\95à¥\8bलाà¤\97ि à¤ªà¥\8dरतà¥\8dयà¥\87à¤\95 {{PLURAL:$1|à¤\98णà¥\8dà¤\9fा|$1 à¤\98णà¥\8dà¤\9fाहरà¥\81}}मा à¤\95à¥\87वल à¤\8fà¤\89à¤\9fा à¤ªà¤¾à¤¸à¤µà¤°à¥\8dड अनुस्मारक पठाइन्छ।",
        "mailerror": " चिठी :$1 पठाउँदा त्रुटी भयो",
        "acct_creation_throttle_hit": "तपाईंको आईपी ठेगानाबाट आएका आगन्तुकद्वारा बितेको चौबिस घण्टामा यस विकिमा {{PLURAL:$1|एउटा खाता बनाइसकिएको छ|$1 खाताहरु बनाइसकिएका छन्}}, यस समयावधिमा यति नैं अधिकतम सीमा हो।\nअतः यस समय यस आईपी ठेगानाको प्रयोग गर्ने आगन्तुकले अरु खाता खोल्न सक्नेछैनन्।",
        "emailauthenticated": "तपाईंको इमेल ठेगाना $2 को $3 मा प्रमाणित गरिएको थियो।",
        "emailconfirmlink": "तपाईंको ई-मेल ठेगाना पक्का गर्नुहोस्",
        "invalidemailaddress": "ई-मेल ठेगाना स्वीकार गर्न सकिएन किन भनें यो सही प्रारूपमा छैन, कृपया सही प्रारूपको  ठेगाना दिनुहोस्।",
        "cannotchangeemail": "यस विकिमा तपाईको खातासँग सम्बन्धित इमेल ठेगाना परिवर्तन गर्न सकिन्न ।",
-       "emaildisabled": "यà¥\8b à¤¸à¤¾à¤\87à¤\9fलà¥\87 à¤\87मà¥\87लहरà¥\81 à¤ªà¤ à¤¾à¤\89न à¤¸à¤\95à¥\8dतैन।",
+       "emaildisabled": "यà¥\8b à¤¸à¤¾à¤\87à¤\9fलà¥\87 à¤\87मà¥\87लहरà¥\82 à¤ªà¤ à¤¾à¤\89न à¤¸à¤\95à¥\8dदैन।",
        "accountcreated": "खाता खोलियो",
        "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|वार्ता]])$1 प्रयोगकर्ताको लागि खाता खोलिएको छ ।",
        "createaccount-title": "{{SITENAME}}कोलागि खाता खोल्ने काम",
        "createaccount-text": "कसैले तपाईको इमेल ठेगानालाई {{SITENAME}} ($4) मा \"$2\" नामको खाता बनाएको छ, जसको पासवर्ड \"$3\" छ।",
        "login-throttled": "तपाईंले भर्खरै धेरै पल्ट प्रवेशको निम्ति प्रयास गर्नुभएको छ ,कृपया $1 पर्खेर मात्र प्रयास गर्नुहोस्।",
        "login-abort-generic": "तपाईंको प्रवेश असफल भयो - छोड़ियो",
+       "login-migrated-generic": "तपाईको खाता स्थानान्तरण भएको छ, र तपाईको प्रयोगकर्ता नाम यस विकिमा छैन ।",
        "loginlanguagelabel": "भाषा: $1",
        "suspicious-userlogout": "तपाईंको निर्गमन अनुरोध अस्विकार गरिन्छ किन कि यो खराब ब्राउजर वा क्यासिङ प्रोक्सिले पठाएको जस्तो देखिन्छ।",
+       "createacct-another-realname-tip": "वास्तविक नाम ऐच्छिक हो ।\nतपाईले यो खुलाउनु भएको खण्डमा तपाईको काममा प्रयोगकर्ता श्रेय दिनको लागि यसको प्रयोग गरिने छ ।",
        "pt-login": "प्रवेश (लग ईन)",
        "pt-login-button": "प्रवेश",
        "pt-createaccount": "खाता खोल्नुहोस्",
        "pt-userlogout": "निर्गमन (लग आउट)",
        "php-mail-error-unknown": "PHP मेल() क्रियामा अज्ञात त्रुटि",
        "user-mail-no-addy": "इमेल ठेगाना बिना नै इमेल पठाउन खोजिएको थियो।",
+       "user-mail-no-body": "खाली वा ज्यादै न्युन सन्देश भएको इमेल पठाउन खोजिएको ।",
        "changepassword": "पासवर्ड परिवर्तन गर्नुहोस्",
-       "resetpass_announce": "प्रवेश पूरा गर्न तपाईँले पासवर्ड परिवर्तन गर्नुपर्छ ।",
+       "resetpass_announce": "प्रवेश पूरा गर्न तपाईँले पासवर्ड परिवर्तन गर्नुपर्छ।",
        "resetpass_text": "<!-- Add text here -->",
-       "resetpass_header": "à¤\96ाताà¤\95à¥\8b à¤ªà¥\8dरवà¥\87शशवà¥\8dद परिवर्तन गर्ने",
+       "resetpass_header": "à¤\96ाताà¤\95à¥\8b à¤ªà¤¾à¤¸à¤µà¤°à¥\8dड परिवर्तन गर्ने",
        "oldpassword": "पुरानो पासवर्ड:",
        "newpassword": "नयाँ पासवर्ड:",
        "retypenew": "प्रवेश शव्द पुन: दिनुहोस् :",
        "resetpass_submit": "पासवर्ड व्यवस्थित गरी र प्रवेशगर्ने",
-       "changepassword-success": "तपाईँको पासवर्ड सफलतापूर्वक परिवर्तन भयो !",
-       "resetpass_forbidden": "प्रवेशशव्द परिवर्तन गर्न मिल्दैन",
+       "changepassword-success": "तपाईँको पासवर्ड सफलतापूर्वक परिवर्तन भयो!",
+       "changepassword-throttled": "तपाईंले भर्खरै धेरै पल्ट प्रवेश (लग इन)को निम्ति प्रयास गर्नुभएको छ। \nकृपया $1 पर्खेर मात्र प्रयास गर्नुहोस्।",
+       "resetpass_forbidden": "पासवर्ड परिवर्तन गर्न मिल्दैन",
        "resetpass-no-info": "यो पृष्ठ सिधै हेर्नको लागि तपाईँले प्रवेश गर्नुपर्छ ।",
        "resetpass-submit-loggedin": "प्रवेशशव्द परिवर्तन गर्ने",
        "resetpass-submit-cancel": "रद्द गर्ने",
        "resetpass-wrong-oldpass": "अस्थायी अथवा हा्लिएको प्रवेश शव्द अमान्य\nतपाईंले अघिबाट नैं प्रवेश शव्द सफलता पूर्वक परिवर्तन गरिसक्नु भएको हो वा नयाँ प्रवेश शव्दको निम्ति निवेदन गर्नुभएकोछ।",
-       "resetpass-temp-password": "अस्थाइ प्रवेशशव्द",
+       "resetpass-recycled": "कृपया वर्तमान पासर्वड भन्दा फरक पासर्वडलाई पुनः मिलाउनुहोस् ।",
+       "resetpass-temp-emailed": "तपाई अस्थाई इमेल कोडले प्रवेश गर्नुभएको छ।\nप्रवेश सफल पार्नका लागि, तपाईंले यहाँ एउटा नयाँ पासवर्ड राख्नु पर्नेछ:",
+       "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}}\"मा क्लिक गरी पछि रिसेट गर्नुहोला।",
        "passwordreset": "प्रवेशशव्द पुनः तय गर्ने",
+       "passwordreset-text-one": "इमेल मार्फल अस्थायी पासवर्ड प्राप्त गर्नको लागी यस फारमलाई पूर्ण रूपमा भर्नुहोस् ।",
+       "passwordreset-text-many": "{{PLURAL:$1|कृपया यहाँ मध्ये एउटा क्षेत्र भरि अस्थाई पासवर्ड इमेल मार्फत प्राप्त गर्नुहोस।}}",
        "passwordreset-legend": "प्रवेशशव्द पुनः तय गर्ने",
        "passwordreset-disabled": "प्रवेश शव्द पुनः निर्धारण गर्ने व्यवस्था यस विकिमा निस्क्रिय पारिएको छ।",
-       "passwordreset-username": "प्रयोगकर्ता-नाम:",
+       "passwordreset-emaildisabled": "इमेल सुविधा यस विकिमा निस्क्रिय बनाइएको छ ।",
+       "passwordreset-username": "प्रयोगकर्ता नाम:",
        "passwordreset-domain": "डोमेन",
        "passwordreset-capture": "निस्कने इमेलको नमुना हेर्ने ?",
        "passwordreset-capture-help": "यदि तपाईंले यो कोठामा दाग दिनुभयो भनें यो इमेल (अस्थायी पासवर्ड सहित) तपाईंलाई देखा पर्नेछ साथै प्रयोगकर्तालाई पनि पठाइनेछ।",
        "passwordreset-email": "इमेल ठेगाना:",
        "passwordreset-emailtitle": "{{SITENAME}}मा खाता विवरण",
-       "passwordreset-emailtext-ip": "कसैले (सायद तपाईंले, $1 आई पी ठेगानाबाट) {{SITENAME}} ($4)मा तपाईंको खाता विवरणको निम्ति एउटा अनुस्मारकको अनुरोध गरेको छ। निम्न प्रयोगकर्ता {{PLURAL:$3|खाता यस इमेल ठेगानासित सम्बन्धित छ|खाताहरु यस इमेल ठेगानासित सम्बन्धित छन्}}:\n\n$2\n\n{{PLURAL:$3|यो अस्थाई पासवर्डको|यी अस्थाई पासवर्डहरुको}} समय {{PLURAL:$5|एक दिन|$5 दिन}}मा सकिनेछ।\nतपाईंले प्रवेश गरेर अहिले नैं नयाँ पासवर्ड चुन्नुहोस्। यदि अरु कसैले अनुरोध गरेको भए अथवा यदि तपाईंलाई मूल पासवर्ड याद भए अनि यसलाई परिवर्तन गर्न चाहनु हुन्न भनें, तपाईंले यस सन्देशलाई अनदेखा गर्नुहोस् र पुरानै पासवर्डलाई चालू राख्नुहोस्।",
-       "passwordreset-emailtext-user": "{{SITENAME}} à¤\95à¥\8b $1 à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dतालà¥\87  {{SITENAME}} ($4)à¤\95à¥\8b à¤²à¤¾à¤\97ि à¤\96ाता à¤µà¤¿à¤µà¤°à¤£à¤\95à¥\8b à¤¨à¤¿à¤®à¥\8dति à¤\8fà¤\89à¤\9fा à¤\85नà¥\81सà¥\8dमारà¤\95à¤\95à¥\8b à¤\85नà¥\81रà¥\8bध à¤\97रà¥\87à¤\95à¥\8b à¤\9b। à¤¨à¤¿à¤®à¥\8dन à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता {{PLURAL:$3|à¤\96ाता à¤¯à¤¸ à¤\87मà¥\87ल à¤ à¥\87à¤\97ानासित à¤¸à¤®à¥\8dबनà¥\8dधित à¤\9b|à¤\96ाताहरà¥\81 à¤¯à¤¸ à¤\87मà¥\87ल à¤ à¥\87à¤\97ानासित à¤¸à¤®à¥\8dबनà¥\8dधित à¤\9bनà¥\8d}}:\n\n$2\n\n{{PLURAL:$3|यà¥\8b à¤\85सà¥\8dथाà¤\88 à¤ªà¤¾à¤¸à¤µà¤°à¥\8dडà¤\95à¥\8b|यà¥\80 à¤\85सà¥\8dथाà¤\88 à¤ªà¤¾à¤¸à¤µà¤°à¥\8dडहरà¥\81à¤\95à¥\8b}} à¤¸à¤®à¤¯ {{PLURAL:$5|à¤\8fà¤\95 à¤¦à¤¿à¤¨|$5 à¤¦à¤¿à¤¨}}मा à¤¸à¤\95िनà¥\87à¤\9b।\nतपाà¤\88à¤\82लà¥\87 à¤ªà¥\8dरवà¥\87श à¤\97रà¥\87र à¤\85हिलà¥\87 à¤¨à¥\88à¤\82 à¤¨à¤¯à¤¾à¤\81 à¤ªà¤¾à¤¸à¤µà¤°à¥\8dड à¤\9aà¥\81नà¥\8dनà¥\81हà¥\8bसà¥\8d। à¤¯à¤¦à¤¿ à¤\85रà¥\81 à¤\95सà¥\88लà¥\87 à¤\85नà¥\81रà¥\8bध à¤\97रà¥\87à¤\95à¥\8b à¤­à¤\8f à¤\85थवा à¤¯à¤¦à¤¿ à¤¤à¤ªà¤¾à¤\88à¤\82लाà¤\88 à¤®à¥\82ल à¤ªà¤¾à¤¸à¤µà¤°à¥\8dड à¤¯à¤¾à¤¦ à¤­à¤\8f à¤\85नि à¤¯à¤¸à¤²à¤¾à¤\88 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤\97रà¥\8dन à¤\9aाहनà¥\81 हुन्न भनें, तपाईंले यस सन्देशलाई अनदेखा गर्नुहोस् र पुरानै पासवर्डलाई चालू राख्नुहोस्।",
+       "passwordreset-emailtext-ip": "कसैले (सायद तपाईंले, $1 आईपि ठेगानाबाट) {{SITENAME}} ($4)मा तपाईंको खाता विवरणको निम्ति एउटा अनुस्मारकको अनुरोध गरेको छ। निम्न प्रयोगकर्ता {{PLURAL:$3|खाता यस इमेल ठेगानासित सम्बन्धित छ|खाताहरू यस इमेल ठेगानासित सम्बन्धित छन्}}:\n\n$2\n\n{{PLURAL:$3|यो अस्थाई पासवर्डको|यी अस्थाई पासवर्डहरुको}} समय {{PLURAL:$5|एक दिन|$5 दिन}}मा सकिनेछ।\nतपाईंले प्रवेश गरेर अहिले नैं नयाँ पासवर्ड छान्नुहोस्। यदि अरु कसैले अनुरोध गरेको भए अथवा यदि तपाईंलाई मूल पासवर्ड याद भए अनि यसलाई परिवर्तन गर्न चाहनुहुन्न भनें, तपाईंले यस सन्देशलाई अनदेखा गर्नुहोस् र पुरानै पासवर्डलाई चालू राख्नुहोस्।",
+       "passwordreset-emailtext-user": "{{SITENAME}} à¤\95à¥\8b $1 à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dतालà¥\87  {{SITENAME}} ($4)à¤\95à¥\8b à¤²à¤¾à¤\97ि à¤\96ाता à¤µà¤¿à¤µà¤°à¤£à¤\95à¥\8b à¤¨à¤¿à¤®à¥\8dति à¤\8fà¤\89à¤\9fा à¤\85नà¥\81सà¥\8dमारà¤\95à¤\95à¥\8b à¤\85नà¥\81रà¥\8bध à¤\97रà¥\87à¤\95à¥\8b à¤\9b। à¤¨à¤¿à¤®à¥\8dन à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता {{PLURAL:$3|à¤\96ाता à¤¯à¤¸ à¤\87मà¥\87ल à¤ à¥\87à¤\97ानासित à¤¸à¤®à¥\8dबनà¥\8dधित à¤\9b|à¤\96ाताहरà¥\82 à¤¯à¤¸ à¤\87मà¥\87ल à¤ à¥\87à¤\97ानासित à¤¸à¤®à¥\8dबनà¥\8dधित à¤\9bनà¥\8d}}:\n\n$2\n\n{{PLURAL:$3|यà¥\8b à¤\85सà¥\8dथाà¤\88 à¤ªà¤¾à¤¸à¤µà¤°à¥\8dडà¤\95à¥\8b|यà¥\80 à¤\85सà¥\8dथाà¤\88 à¤ªà¤¾à¤¸à¤µà¤°à¥\8dडहरà¥\82à¤\95à¥\8b}} à¤¸à¤®à¤¯ {{PLURAL:$5|à¤\8fà¤\95 à¤¦à¤¿à¤¨|$5 à¤¦à¤¿à¤¨}}मा à¤¸à¤\95िनà¥\87à¤\9b।\nतपाà¤\88à¤\82लà¥\87 à¤ªà¥\8dरवà¥\87श à¤\97रà¥\87र à¤\85हिलà¥\87 à¤¨à¥\88à¤\82 à¤¨à¤¯à¤¾à¤\81 à¤ªà¤¾à¤¸à¤µà¤°à¥\8dड à¤\9bानà¥\8dनà¥\81हà¥\8bसà¥\8d। à¤¯à¤¦à¤¿ à¤\85रà¥\81 à¤\95सà¥\88लà¥\87 à¤\85नà¥\81रà¥\8bध à¤\97रà¥\87à¤\95à¥\8b à¤­à¤\8f à¤\85थवा à¤¯à¤¦à¤¿ à¤¤à¤ªà¤¾à¤\88à¤\82लाà¤\88 à¤®à¥\82ल à¤ªà¤¾à¤¸à¤µà¤°à¥\8dड à¤¯à¤¾à¤¦ à¤­à¤\8f à¤\85नि à¤¯à¤¸à¤²à¤¾à¤\88 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤\97रà¥\8dन à¤\9aाहनà¥\81हुन्न भनें, तपाईंले यस सन्देशलाई अनदेखा गर्नुहोस् र पुरानै पासवर्डलाई चालू राख्नुहोस्।",
        "passwordreset-emailelement": "प्रयोगकर्ताको नाम: $1\nअस्थाई पासवर्ड: $2",
        "passwordreset-emailsent": "पासवर्ड परिवर्तनको लागि इमेल पठाइएको छ।",
        "passwordreset-emailsent-capture": "पासवर्ड परिवर्तनको लागि इमेल पठाइयो, जुन तल देखाइएकोछ।",
+       "passwordreset-emailerror-capture": "पासवर्ड रिसेट इमेल जारि गरिएको छ, जुन तल देखाइएको छ, तर यसलाई {{GENDER:$2|प्रयोगकर्ता}}मा पठाउन विफल भयो: $1",
        "changeemail": "इमेल ठेगाना परिवर्तन गर्नुहोस",
        "changeemail-text": "आफ्नो इमेल ठेगाना परिवर्तन गर्न यो फारम भर्नुहोस। यसलाई पुष्टि गर्न तपाईले आफ्नो पासवर्ड हाल्नु पर्नेछ।",
        "changeemail-no-info": "यस पृष्ठमा सिधै जानको लागि प्रवेश गर्नु पर्ने हुन्छ ।",
        "changeemail-submit": "इमेल परिवर्तन गर्ने",
        "changeemail-throttled": "तपाईंले भर्खरै धेरै पल्ट प्रवेशको निम्ति प्रयास गर्नुभएको छ।\nकृपया $1 पर्खेर मात्र प्रयास गर्नुहोस्।",
        "resettokens": "टोकन पूर्वरुपमा फर्काउने",
+       "resettokens-text": "जुन टोकन तपाईंको खातासँग सम्बद्ध केहि विशिष्ट व्यक्तिगत जानकारी प्रदान गर्छन, तपाईं त्यसलाई यहाँ रिसेट गर्न सक्नुहुन्छ।\n\nयदि तपाईं तिनलाई भुलवस कसैलाई देखाईदिनु भएको छ वा तपाईंको खाता ह्याक भइसकेको छ भने तपाईं यसलाई रिसेट गर्नुहोला।",
        "resettokens-no-tokens": "पूर्वरुपमा फर्काउन कुनै पनि टोकन छैन ।",
        "resettokens-legend": "टोकनहरू पूर्वरुपमा फर्काउने",
        "resettokens-tokens": "टोकनहरू:",
+       "resettokens-token-label": "$1 (वर्तमान मूल्यः $2)",
+       "resettokens-watchlist-token": "[[Special:Watchlist|तपाईंको ध्यानसूचीमा रहेका पृष्ठहरूमा भएको परिवर्तनहरू]]को वेब फिड (एटम/आरयसयस) निमित्त टोकन",
        "resettokens-done": "टोकन पूर्वरुपमा फर्काइयो ।",
+       "resettokens-resetbutton": "चयन गरिएको टोकनहरूलाई पुनमिलाउनुहोस्",
        "bold_sample": "गाढा अक्षर",
        "bold_tip": "गाढा अक्षर",
        "italic_sample": "इटालिक पाठ",
        "preview": "पूर्वावलोकन",
        "showpreview": "पूर्वालोकन देखाउनुहोस्",
        "showdiff": "परिवर्तन देखाउनुहोस्",
+       "blankarticle": "<strong>चेतावनी:</strong> तपाईं एउटा खालि पृष्ठको निर्माण गर्दै हुनुहुन्छ।\nयदि तपाईं \"{{int:savearticle}}\" लाई पुनः थिच्नुहुन्छ भने पृष्ठ बिना कुनै सामग्री नै निर्मित गरिनेछ।",
        "anoneditwarning": "<strong>चेतावनी:</strong> तपाईँले प्रवेश गर्नु भएको छैन । तपाईँको आइपि ठेगाना पृष्ठ सम्पादन इतिहासमा दर्ता गरिने छ र यो सबैले हेर्न सक्छन । यदि तपाईं <strong>[$1 लगईन]</strong> वा <strong>[$2 नयाँ खाता बनाउने] गर्नुभयो भने तपाईंद्वारा गरिएको सम्पादन तपाईंको प्रयोगकर्तानाममा जोडिनेछ।",
        "anonpreviewwarning": "''तपाईंले प्रवेश गर्नु भएको छैन। संग्रह (Save) गरेको खण्डमा पृष्ठको इतिहासमा तपाईंको IP ठेगाना अंकित गरिनेछ।''",
        "missingsummary": "'''यादगर्नुहोस् :''' तपाईले सम्पादन सारांश दिनुभएको छैन ।\nयदि तपाईले संग्रहगर्नुहोस्  थिच्नुभयो भने , सारांश बिना नै संग्रहित गरिने छ ।",
+       "selfredirect": "<strong>चेतावनी:</strong> तपाईं यस पृष्ठलाई आफुमा पुनः निर्देशित गर्दै हुनुहुन्छ।\nहुनसक्छ तपाई अनुप्रेषितको लागि गलत लक्ष्य निर्दिष्ट गर्दैहुनुहुन्छ, वा गलत पृष्ठको सम्पादन गर्दैहुनुहुन्छ।\nतपाईं पुन एकपटक \"{{int:savearticle}}\" क्लिक गर्नुहुन्छ, पुन:निर्देशित त्यसै पनि बनाइनेछ।",
        "missingcommenttext": "कृपया टिप्पणी प्रविष्ठ गर्नुहोस् ।",
        "missingcommentheader": "'''याद गर्नुहोस् :''' तपाईँले टिप्पणीमा विषय /शीर्ष पंक्ति  दिनुभएको छैन ।\nतपाईँले फेरि \"{{int:savearticle}}\"  थिच्नु भएमा , तपाईको सम्पादन यसै रुपमा संग्रहित हुनेछ ।",
        "summary-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}}|administrator]] सँग रोकको बारेमा छलफल गर्न सम्पर्क गर्न सक्नुहुन्छ ।\nतपाईँले  'प्रयोगकर्तालाई इ-मेल गर्ने ' सुविधा मान्य इमेल ठेगाना [[Special:Preferences|account 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कृपया कुनै बेला सोधनी गर्नु परे उपर्युक्त विवरण दर्शाउनु होला।",
        "loginreqlink": "प्रवेश (लग ईन)",
        "loginreqpagetext": "अरु पृष्ठहेर्न तपाईले $1 गर्नुपर्छ ।",
        "accmailtitle": "पासवर्ड पठाइयो",
-       "accmailtext": "à¤\9cथाभावà¥\80रà¥\81पमा सृजना गरिएको प्रवेशशब्द प्रयोगकर्ता [[User talk:$1|$1]] को  $2 मा पठाइएको छ।\n\nयो नयाँ खाताको प्रवेशशब्द  ''[[Special:ChangePassword|change password]]'' मा प्रवेश गरेर परिवर्तन गर्न सकिन्छ ।",
+       "accmailtext": "à¤\9cथाभावà¥\80रà¥\82पमा सृजना गरिएको प्रवेशशब्द प्रयोगकर्ता [[User talk:$1|$1]] को  $2 मा पठाइएको छ।\n\nयो नयाँ खाताको प्रवेशशब्द  ''[[Special:ChangePassword|change password]]'' मा प्रवेश गरेर परिवर्तन गर्न सकिन्छ ।",
        "newarticle": "(नयाँ)",
        "newarticletext": "तपाईँले अहिले सम्म नभएको पृष्ठको लिंङ्क पहिल्याउनु भएको छ।\nयो पृष्ठ निर्माण गर्न तलको कोष्ठमा टाइप गर्नुहोस्  ।(थप जानकारीको लागि [$1 help page] हेर्नुहोस् )।\nयहाँ त्यत्तिकै आइपुग्नु भएको हो भने , ब्राउजरको  '''back''' बटन थिच्नुहोस ।",
        "anontalkpagetext": "----''यो वार्तालाप पृष्ठ अज्ञात प्रयोगकर्ताको हो जसले अहिलेसम्म खाता बनाएकै छैन, अथवा जसले यस पृष्ठको उपयोग गर्दैन।\nयस कारण हामीले उसलाई उसको आइ पी (IP) ठेगानाले चिन्न सक्छौं। \nयस्तो आइ पी (IP) ठेगाना धेरै प्रयोगकर्ताहरुको साझा हुनसक्छ।\nयदि तपाईं अज्ञात प्रयोगकर्ता हुनुहुन्छ र तपाईंमथि अचाहिँदो टिप्पणी भएको अनुभव गर्नुहुन्छ भनें भविष्यमा अन्य अज्ञात प्रयोगकर्तासितको भ्रमबाट बाँच्न कृपया [[Special:UserLogin/signup|खाता खोल्नुहोस्]] अथवा [[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}}|पृष्ठ={{FULLPAGENAMEE}}}} सम्बन्धित लगहरु खोज्न सक्नुहुनेछ ]</span> तर तपाईंलाई नयाँ पृष्ठ बनाउने अधिकार छैन।",
+       "noarticletext-nopermission": "यस लेखमा अहिले कुनै पनि पाठ छैन ।\nतपाईंले अन्य पृष्ठमा [[Special:Search/{{PAGENAME}}|यस पृष्ठको शीर्षकको लागि खोज]] गर्न सक्नुहुन्छ,\nअथवा <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|पृष्ठ={{FULLPAGENAMEE}}}} सम्बन्धित लगहरू खोज्न सक्नुहुनेछ ]</span> तर तपाईंलाई नयाँ पृष्ठ बनाउने अधिकार छैन।",
+       "missing-revision": "\"{{FULLPAGENAME}}\" पृष्ठको अवतरण #$1 रहेको छैन।\n\nसामान्य रूपमा यसो एउटा हटाइएको पृष्ठको पुरानो लिङ्कमा क्लिक गर्दा हुन्छ।\nअधिक जानकारीको लागि तपाईं [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} हटाएको लग] हेर्न सक्नुहुन्छ।",
        "userpage-userdoesnotexist": "प्रयोगकर्ताको खाता  \"<nowiki>$1</nowiki>\" दर्ता गरिएको छैन ।\nतपाईँले पृष्ठ निर्माण/सम्पादन गर्न चाहनु भएको भए जाँच गर्नुहोस् ।",
        "userpage-userdoesnotexist-view": "प्रयोगकर्ता खाता \"$1\" दर्ता गरिएको छैन।",
        "blocked-notice-logextract": "यो प्रयोगकर्ता हाल प्रतिबन्धित छ।\nभर्खरैको प्रतिबन्ध लग प्रविष्टि सन्दर्भको निम्ति तल दिइन्छ:",
-       "clearyourcache": "'''टिप्पणी''' संग्रह गरेपछि, परिवर्तन हेर्नको लागि तपाईँले आफ्नो ब्राउजर मा क्याश बाईपास गर्नु पर्ने हुन सक्छ।\n*'''मोजिला / फायरफक्स / सफारी मा:''' ''Shift'' कुञ्जी थिची राखेर ''Reload'' क्लिक गर्नु पर्छ, वा ''Ctrl-F5'' वा ''Ctrl-R'' दबाउनुहोस(Mac मा ''Command-R'');\n*'''कन्क्वेरर:''' मा ''Reload'' क्लिक गर्नुहोस या ''F5'' दबाउनुहोस;\n*'''ओपेरा:''' ''Tools → Preferences'' मा गएर क्याश हटाउनुहोस;\n*''''इन्टरनेट एक्सप्लोरर'''': ''Ctrl'' लाई थिची राखेर ''Refresh'' क्लिक गर्नुहोस वा ''Ctrl-F5'' थिच्नुहोस",
-       "usercssyoucanpreview": "'''सुझाव:''' तपाईंको नयाँ CSS संग्रह गर्न अघि  \"{{int:showpreview}}\" बटन थिचेर जाँच्नुहोस् ।",
-       "userjsyoucanpreview": "'''सुझाव:''' तपाईंको नयाँ जाभा स्क्रिप्ट (JavaScript)  संग्रह गर्न अघि  \"{{int:showpreview}}\" बटन थिचेर जाँच्नुहोस् ।",
-       "usercsspreview": "'''याद राख्नुहोस तपाईँले आफ्नो प्रयोगकर्ता CSSको पूर्वावलोकन मात्र हेरिरहनु भएको छ। '''\n'''यसलाइ अहिले सम्म संग्रह गरिएको छैन!'''",
-       "userjspreview": "'''याद राख्नुहोस तपाईँले आफ्नो प्रयोगकर्ता JavaScript को पूर्वावलोकन मात्र हेरिरहनु भएको छ। '''\n'''यसलाइ अहिले सम्म संग्रह गरिएको छैन!'''",
-       "sitecsspreview": "'''याद राख्नुहोस् तपाईँले केवल विश्वव्यापी CSS. को पूर्वावलोकन मात्र अवलोकन गर्नुभएको छ। '''\n'''यसलाई अहिलेसम्म संग्रह गरिएको छैन!'''",
-       "sitejspreview": "याद राख्नुहोस तपाईँले केवल JavaScript code को पूर्वावलोकन मात्र हेरिरहनु भएको छ। '''\n'''यसलाइ अहिले सम्म संग्रह गरिएको छैन!'''",
-       "userinvalidcssjstitle": "'''चेतावनी:''' यहाँ कुनैपनि \"$1\" नामको स्कीन छैन ।\nप्रचलित .css तथा .js पृष्ठहरुले lowercase शीर्षक प्रयोग गर्छन्, जस्तै {{ns:user}}:Foo/Vector.css को सट्टामा {{ns:user}}:Foo/vector.css",
+       "clearyourcache": "<strong>टिप्पणी</strong> सङ्ग्रह गरेपछि, परिवर्तन हेर्नको लागि तपाईँले आफ्नो ब्राउजरको क्याच बाईपास गर्नु पर्ने हुनसक्छ।\n*<strong>फायरफक्स / सफारीमा:</strong> <em>Shift</em> कुञ्जी थिची राखेर <em>Reload</em> क्लिक गर्नुपर्छ, वा <em>Ctrl-F5</em> वा <em>Ctrl-R</em> दबाउनुहोस (म्याकमा <em>⌘-R</em>)\n*<strong>गुगल क्रोम:</strong> <em>Ctrl-Shift-R</em> कुञ्जी दबाउनुहोस (म्याकमा <em>⌘-R</em>)\n*<strong>ओपेरा:</strong> <em>Tools → Preferences</em> मा गएर क्याश हटाउनुहोस\n*<strong>इन्टरनेट एक्सप्लोरर</strong>: <em>Ctrl</em> लाई थिची राखेर <em>Refresh</em> क्लिक गर्नुहोस वा <em>Ctrl-F5</em> थिच्नुहोस",
+       "usercssyoucanpreview": "<strong>सुझाव:</strong> तपाईंको नयाँ सिययस सङ्ग्रह गर्न अघि  \"{{int:showpreview}}\" बटन थिचेर जाँच्नुहोस्।",
+       "userjsyoucanpreview": "<strong>सुझाव:</strong> तपाईंको नयाँ जाभा स्क्रिप्ट सङ्ग्रह गर्न अघि  \"{{int:showpreview}}\" बटन थिचेर जाँच्नुहोस्।",
+       "usercsspreview": "<strong>याद राख्नुहोस तपाईँले आफ्नो प्रयोगकर्ता सियसयसको पूर्वावलोकन मात्र हेरिरहनु भएको छ।\nयसलाई अहिले सम्म सङ्ग्रह गरिएको छैन!</strong>",
+       "userjspreview": "<strong>याद राख्नुहोस तपाईँले आफ्नो प्रयोगकर्ता जाभास्क्रिप्टको पूर्वावलोकन मात्र हेरिरहनु भएको छ।\nयसलाइ अहिले सम्म सङ्ग्रह गरिएको छैन!</strong>",
+       "sitecsspreview": "<strong>याद राख्नुहोस् तपाईँले केवल विश्वव्यापी सियसयसको पूर्वावलोकन मात्र अवलोकन गर्नुभएको छ।\nयसलाई अहिलेसम्म सङ्ग्रह गरिएको छैन!</strong>",
+       "sitejspreview": "<strong>याद राख्नुहोस तपाईँले केवल जाभास्क्रिप्ट कोडको पूर्वावलोकन मात्र हेरिरहनु भएको छ।\nयसलाई अहिले सम्म सङ्ग्रह गरिएको छैन!</strong>",
+       "userinvalidcssjstitle": "<strong>चेतावनी:</strong> यहाँ कुनैपनि \"$1\" नामको खोल छैन।\nप्रचलित .css तथा .js पृष्ठहरुले निम्नपद शीर्षक प्रयोग गर्छन्, जस्तै {{ns:user}}:Foo/Vector.css को सट्टामा {{ns:user}}:Foo/vector.css",
        "updated": "नवीन",
        "note": "'''सूचना:'''",
        "previewnote": "'''याद राख्नुहोस् यो केवल पूर्वावलोकन मात्र हो; तपाईंका परिवर्तनहरू संग्रहित भएका छैनन्!'''",
        "explainconflict": "तपाईंले सम्पादन कार्य सुरु गरेपछि कसैले यस पृष्टलाई परिवर्तन गरेकोछ।\nमाथिल्लो पाठक्षेत्रमा पृष्ठको वर्तमान पाठ छ।\nतपाईंको परिवर्तन तल्लो भागमा दर्शाइएकोछ। \nतपाईंले गर्नुभएको परिवर्तनलाई वर्तमान पाठसित मिसाउनु पर्नेछ, यदि तपाईंले \"{{int:savearticle}}\" थिच्नु भयो भनें पाठको माथिल्लो भाग '''मात्र''' संग्रह गरिनेछ।",
        "yourtext": "तपाईंका पाठहरु",
        "storedversion": "संग्रहित पुनरावलोकन",
-       "editingold": "''चेतावनी: तपाईं यस पृष्ठको अति पुरनो अप्रचलित संशोधनको सम्पादन गर्नुहुँदैछ।'''\nयदि तपाईंले यस परिवर्तनलाई संग्रह गर्नु भयो भनें यस पछिका संशोधनहरु नष्ट हुनेछन्।",
+       "nonunicodebrowser": "<strong>चेतावनी: तपाईंको ब्राउजर युनिकोडलाई स्वीकार गर्दैन।</strong> \nतपाईंद्वारा सहि रुपले पृष्ठ सम्पादनको लागि: गैर-एयससिआइआइ क्यारेक्टर हेक्जाडेसिमल कोड (hexadecimal) मा देखाइनेछ।",
+       "editingold": "<strong>चेतावनी: तपाईं यस पृष्ठको अति पुरनो अप्रचलित संशोधनलाई सम्पादन गर्नुहुँदैछ।<strong>\nयदि तपाईंले यस परिवर्तनलाई सङ्ग्रह गर्नु भयो भने यस पछिका संशोधनहरू नष्ट हुनेछन्।",
        "yourdiff": "भिन्नताहरु",
        "copyrightwarning": "कृपया ध्यान दिनुहोस् यस {{SITENAME}}मा दिइएका योगदानहरू $2को अनुसार सम्पादन र पुनर्वितरणकोलागि खुला मानिनेछ (विवरणकोलागि $1 हेर्नुहोस्) । यदि तपाईंको लेखलाई सम्पादन अथवा पुनः वितरण गराउन चाहनुहुन्न भने कृपया यहाँ तपाईंको लेख प्रस्तुत नगर्नुहोस् ।<br />       \nयदि तपाईं किटानसाथ भन्नुहुन्छ कि कुनै लेख मैले लेखेको हो अथवा सार्वजनिक ज्ञानक्षेत्र अथवा मुक्त संसाधनबाट लिइएको हो, '''यस्तो लेख कपिराइटबिना यहाँ नराख्नुहोस्!'''",
        "copyrightwarning2": "कृपया ध्यान दिनुहोस् यस {{SITENAME}}मा दिइएका योगदानहरुलाई अन्य योगदाताहरुद्वारा सम्पादन गरिनेछ, परिवर्तन गरिनेछ अथवा हटाइनेछ। यदि  तपाईंको लेखलाई निर्दयता पूर्वक सम्पादन गरेको चाहनुहुन्न भनें त्यो यहाँ नदिनुहोस्।<br />\nयदि तपाईं किटानसाथ भन्नुहुन्छ कि यो लेख तपाईं आफै लेखेको हो अथवा सार्वजनिक ज्ञानक्षेत्र अथवा मुक्त संसाधनबाट लिइएको हो (विवरणकोलागि हेर्नुहोस् $1 ). \n'''कपीराइट भएको रचना अनुमति बिना  यहाँ नदिनुहोस्!'''",
        "longpageerror": "'''त्रुटि: तपाईंले बुझाएको पाठ {{PLURAL:$1|one किलोबाइट|$1 किलोबाइट}} लामो छ, जो अधिकतम {{PLURAL:$2|one किलोबाइट|$2 किलोबाइट}} भन्दा लामो छ।'''\nयो संग्रहित हुन सक्तैन।",
-       "readonlywarning": "'''चेतावनी: आँकड़ा मरम्मतिको निम्ति बन्द गरिएकोछ, यसकारण तपाईं आफ्नो सम्पादन अहिले संग्रह गर्न सक्नुहुन्न।'''\n\nयदि चाहनुहुन्छ भने अहिले कट गरि कतै टेक्स्ट फ़ाइलमा  पेस्ट गरेर भरेको लागि संग्रह गर्न सक्नुहुन्छ।\n\nप्रबन्धक जसले यो बन्द गरेकोछ  विवरण यस्तो दिएकोछ: $1",
-       "protectedpagewarning": "'''सूचना:''' यस पृष्ठलाई सुरक्षित गरिएकोछ यसकारण प्रबन्धनको विशेषाधिकार प्राप्त प्रयोगकर्ताहरुले मात्र यसलाई सम्पादन गर्न सक्छन्। संदर्भको लागि नविनतम लग प्रविष्टि  तल दिइएको छ:",
-       "semiprotectedpagewarning": "'''सूचना:''' यो पृष्ठलाई सुरक्षित गरिएको हुँदा दर्ता भएका प्रयोगकर्ताहरुले मात्र यसलाई सम्पादन गर्न सक्छन्। संदर्भको लागि नविनतम लग प्रविष्टि  तल दिइएको छ:",
-       "cascadeprotectedwarning": "'''चेतावनी:''' यस पृष्ठलाई सुरक्षित गरिएको छ यसकारण संशोधन प्रबन्धनको विशेषाधिकार प्राप्त प्रयोगकर्ताले मात्र सम्पादन गर्न सक्नेछन् किन भनें यो {{PLURAL:$1|पृष्ठ|पृष्ठहरु}}को सुरक्षित निम्न सुचिमा सुरक्षित छ :",
-       "titleprotectedwarning": "'''चेतावनी:''' यो पृष्ठलाई सुरक्षित गरिएकोछ र यसलाई सृजना गर्न  [[Special:ListGroupRights|विशेषाधिकार]] चाहिन्छ । संदर्भको लागि नवीनतम लग प्रविष्टि  तल दिइएको छ:",
-       "templatesused": "यस à¤ªà¥\83षà¥\8dठमा à¤ªà¥\8dरयà¥\8bà¤\97 à¤­à¤\8fà¤\95ा {{PLURAL:$1|Template|à¤\9fà¥\87मà¥\8dपà¥\8dलà¥\87à¤\9f(ढाà¤\81à¤\9aा)हरू}} :",
-       "templatesusedpreview": "यस à¤ªà¥\83षà¥\8dठमा à¤ªà¥\8dरयà¥\8bà¤\97 à¤­à¤\8fà¤\95ा {{PLURAL:$1|Template|à¤\9fà¥\87मà¥\8dपà¥\8dलà¥\87à¤\9f(ढाà¤\81à¤\9aा)हरू}} :",
-       "templatesusedsection": "{{PLURAL:$1|ढाँचा प्रयोग गरिएकोछ|ढाँचाहरु प्रयोग गरिएकाछन्}} यस खण्डमा:",
+       "readonlywarning": "<strong>चेतावनी: तथ्याक मर्मतको निम्ति बन्द गरिएकोछ, यस कारण तपाईं आफ्नो सम्पादन अहिले सङ्ग्रह गर्न सक्नुहुन्न।</strong>\n\nयदि तपाईं चाहनुहुन्छ भने अहिले यहाँ भएका पाठलाई कट गरि कतै टेक्स्ट फाइलमा पेस्ट गरेर सङ्ग्रह गर्न सक्नुहुन्छ।\n\nप्रवन्धक जसले यो बन्द गरेको छ उसले यस्तो विवरण दिएको छ: $1",
+       "protectedpagewarning": "<strong>सूचना: यस पृष्ठलाई सुरक्षित गरिएको छ यसकारण प्रवन्धनको विशेषाधिकार प्राप्त प्रयोगकर्ताहरुले मात्र यसलाई सम्पादन गर्न सक्छन् ।</strong>\nसन्दर्भको लागि नविनतम लग प्रविष्टि तल दिइएको छ:",
+       "semiprotectedpagewarning": "<strong>सूचना:</strong> यो पृष्ठलाई सुरक्षित गरिएको हुँदा दर्ता भएका प्रयोगकर्ताहरूले मात्र यसलाई सम्पादन गर्न सक्छन् ।\nसन्दर्भको लागि नविनतम लग प्रविष्टि तल दिइएको छ:",
+       "cascadeprotectedwarning": "<strong>चेतावनी:</strong> यस पृष्ठलाई सुरक्षित गरिएको छ यसकारण संशोधन प्रवन्धनको विशेषाधिकार प्राप्त प्रयोगकर्ताले मात्र सम्पादन गर्न सक्नेछन् किन भने यो {{PLURAL:$1|पृष्ठ|पृष्ठहरू}}को सुरक्षित निम्न सूचीमा सुरक्षित छ:",
+       "titleprotectedwarning": "<strong>चेतावनी: यो पृष्ठलाई सुरक्षित गरिएको छ र यसलाई सृजना गर्न  [[Special:ListGroupRights|विशेषाधिकार]] चाहिन्छ।</strong>\nसन्दर्भको लागि नवीनतम लग प्रविष्टि तल दिइएको छ:",
+       "templatesused": "यस à¤ªà¥\83षà¥\8dठमा à¤ªà¥\8dरयà¥\8bà¤\97 à¤­à¤\8fà¤\95ा {{PLURAL:$1|Template|ढाà¤\81à¤\9aाहरू}} :",
+       "templatesusedpreview": "यस à¤ªà¥\83षà¥\8dठमा à¤ªà¥\8dरयà¥\8bà¤\97 à¤­à¤\8fà¤\95ा {{PLURAL:$1|Template|ढाà¤\81à¤\9aाहरू}} :",
+       "templatesusedsection": "{{PLURAL:$1|ढाँचा प्रयोग गरिएको छ|ढाँचाहरु प्रयोग गरिएका छन्}} यस खण्डमा:",
        "template-protected": "(सुरक्षित)",
        "template-semiprotected": "(अर्ध-सुरक्षित)",
        "hiddencategories": "यो पृष्ठ निम्न {{PLURAL:$1|1 लुकाइएको श्रेणी|$1 लुकाइएका श्रेणीहरू}}को सदस्य हो :",
        "postedit-confirmation-saved": "तपाईंको सम्पादन संग्रह गरिएको छ ।",
        "edit-already-exists": "नयाँ पृष्ठ बनाउन सकिएन ।\nयो पहिले देखि नै रहेको छ।",
        "defaultmessagetext": "डिफल्ट सन्देश पाठ",
+       "content-failed-to-parse": "$1 को लागि $2 सामग्रीलाई पार्स गर्न विफल, त्रुटि: $3",
        "invalid-content-data": "अमान्य सामग्री डेटा",
        "content-not-allowed-here": "सामग्री \"$1\"  [[$2]] पृष्ठमा राख्न अनुमती छैन ।",
+       "editwarning-warning": "यस पृष्ठबाट बाहिर जाँदा तपाईं द्वारा गरिएको कुनै कोई पनि परिवर्तन हराउनेछ।\nयदि तपाईंले लग इन गर्नुभएको छ भने तपाईं यस सूचनालाई देखाउन आफ्नो अभिरूचीहरूको \"{{int:prefs-editing}}\" भागमा गएर बन्द गर्न सक्नुहुन्छ।",
        "editpage-notsupportedcontentformat-title": "सामग्री प्रकार समर्थित छैन",
+       "editpage-notsupportedcontentformat-text": "$1 सामग्री स्वरूप $2 सामग्री मोडलद्वारा समर्थित छैन।",
        "content-model-wikitext": "विकिपाठ",
        "content-model-text": "साधारण पाठ",
        "content-model-javascript": "जाभास्क्रिप्ट",
+       "content-json-empty-object": "खाली वस्तु",
+       "content-json-empty-array": "खाली एरे",
+       "duplicate-args-category": "ढाँचाको यस खण्डमा पृष्ठहरू दोहो तर्कहरू प्रयोग गरि रहेका छन्",
+       "duplicate-args-category-desc": "पेज जस्तै तर्कहरूको नक्क्लको उपयोग गर्ने ढाँचा कल, जस्तै <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> र <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''चेतावनी:''' यस पृष्टका अति धेरै संख्याका महँगा पार्सर फंक्सन कल्स (expensive parser function calls)  छन्।\nयसमा $2 भन्दा कम {{PLURAL:$2|कल|कल्स}} हुनुपर्छ,  यहाँ {{PLURAL:$1|अहिले $1 कल छ|अहिले $1 कल्स छ्न्}}.",
        "expensive-parserfunction-category": "अति धेरै मेहनत पर्ने '''पार्सर फङ्सन कल'''हरू भएका पृष्ठहरू",
        "post-expand-template-inclusion-warning": "'''चेतावनी:''' समेट्नुपर्ने टेम्प्लेट(नमुना) आकार अति ठूलो छ।\nकेही टेम्प्लेटहरु(नमुनाहरु) समेटिने छैनन् ।",
-       "post-expand-template-inclusion-category": "पà¥\83षà¥\8dठहरà¥\81 à¤\9cहाà¤\81  à¤¸à¤®à¥\87à¤\9fिà¤\8fà¤\95à¥\8b à¤\9fà¥\87मà¥\8dपलà¥\87à¤\9f à¤\86à¤\95ार हुनुपर्ने भन्दा बढि छ ।",
+       "post-expand-template-inclusion-category": "यसà¥\8dता à¤ªà¥\83षà¥\8dठहरà¥\82 à¤\9cहाà¤\81 à¤¢à¤¾à¤\81à¤\9aा (à¤\9fà¥\87मà¥\8dपलà¥\87à¤\9f) à¤°à¤¾à¤\96à¥\8dनà¥\87 à¤¸à¤¿à¤®à¤¾ हुनुपर्ने भन्दा बढि छ ।",
        "post-expand-template-argument-warning": "'''चेतावनी:''' यो पृष्ठकमा कम्तिमा एक टेम्प्लेट मान रहेको छ जसको धेरै ठूलो बढोत्तरी आकार रहेको छ।\nयस्ता मानहरु हटाइएका छन् ।",
        "post-expand-template-argument-category": "मेटिएका ढाँचाहरूसँग सम्बन्ध रहेका पृष्ठहरू",
        "parser-template-loop-warning": "ढाँचागत ग़ाँठो पर्‍यो : [[$1]]",
        "parser-template-recursion-depth-warning": "ढाँचा पुन:चक्र गहिराई सिमा ($1) भन्दा बढि भयो",
        "language-converter-depth-warning": "भाषा परिवर्तनकर्ता गहिराई  ($1) नाघेको छ",
+       "node-count-exceeded-category": "पृष्ठहरू जहाँ नोड संख्या बढी भएको छ",
+       "node-count-exceeded-category-desc": "यस पृष्ठले उच्च नोड संख्या नाघेको छ ।",
+       "node-count-exceeded-warning": "पृष्ठले नोड संख्या नाघ्यो ।",
+       "expansion-depth-exceeded-category": "पृष्ठहरू जहाँ विस्तार सिमा नाघेको छ",
+       "expansion-depth-exceeded-category-desc": "यस पृष्ठले उच्चतम विस्तार सिमा नाघेको छ ।",
+       "expansion-depth-exceeded-warning": "पृष्ठले विस्तार सिमालाई नाधेको छ",
+       "parser-unstrip-loop-warning": "अनस्ट्रिप लुप देखिन्छ",
+       "parser-unstrip-recursion-limit": "अन्स्ट्रिप पुनरावर्तन सिमा पार गरियो ($1)",
+       "converter-manual-rule-error": "म्यानुअल भाषा अनुवाद सिध्दान्तमा समस्या देखियो",
        "undo-success": "सम्पादन उल्टाउन सकिन्छ।\nतपाईंले चाहेको कार्य गर्न कृपया तल दिएको तुलना जाँच गर्नुहोस्, र गरिएको सम्पादनलाई  अघिकै अवस्थामा लैजाने कार्य सम्पन्न गर्न तल गएर संग्रह  गर्नुहोस्।",
        "undo-failure": "सम्पादनमा अन्तर्द्वन्द्वको कारण सम्पादन रद्द गर्न सकिन्न।",
        "undo-norev": "यो मेटिएको या नरहेको कारणले गर्दा सम्पादन खारेज गर्न सकिन्न ।",
+       "undo-nochange": "सम्पादन पहिला नै विफल गरिएको छ ।",
        "undo-summary": "  $1द्वारा पुनरावलोकन [[Special:Contributions/$2|$2]] ([[User talk:$2|वार्तालाप]]) खारेज गर्नुहोस",
+       "undo-summary-username-hidden": "अदृश्य प्रयोगकर्ताको संशोधन $1 लाई पहिला जस्तै बनाउने",
        "cantcreateaccounttitle": "खाता बनाउन सकिएन",
        "cantcreateaccount-text": "IP ठेगाना ('''$1''')बाट खाता खोल्न  [[User:$3|$3]]द्वारा बन्देज लगाइएको छ।\n\n $3ले दिनुभएको कारण  ''$2'' हो",
+       "cantcreateaccount-range-text": "'''$1''' को श्रेणीमा आउने आइपि ठेगानाबाट, जसमा तपाईंको आइपि ठेगाना ('''$4''') सामेल छ, नयाँ खाता सृजना [[User:$3|$3]]द्वारा अवरोधित गरिएको छ। \n\n$3 द्वारा दिइएको कारण: \"$2\"",
        "viewpagelogs": "यस पृष्ठका लगहरू हेर्नुहोस्",
        "nohistory": "यस पृष्ठको लागी कुनै सम्पादन इतिहास छैन।",
        "currentrev": "हालको संस्करण",
        "history-feed-description": "विकीमा यो पृष्ठको पुनरावलोकन इतिहास",
        "history-feed-item-nocomment": "$1  $2मा",
        "history-feed-empty": "अनुरोध गरिएको पृष्ठ छैन।\nविकिबाट यो मेटिएको अथवा यसको नयाँ नाम राखिएको हुनसक्छ।\nप्रासंगिक नयाँ पृष्ठकोलागि  [[Special:Search|विकिमा खोज्नुहोस्]]।",
+       "history-edit-tags": "चयन गरिएको संशोधनको ट्यागहरू सम्पादन",
        "rev-deleted-comment": "(सम्पादन सारांश हटाइयो)",
        "rev-deleted-user": "(प्रयोगकर्ता नाम हटाइयो)",
        "rev-deleted-event": "(लग विवरण हटाइयो)",
        "rev-deleted-user-contribs": "[प्रयोगकर्ताको नाम अथवा IP ठेगाना हटाइयो - योगदानहरुबाट सम्पादन लुकाइयो]",
        "rev-deleted-text-permission": "यस पृष्ठको पुनरावलोकन '''मेटिएकोछ'''।\nयसको पूर्ण विवरण [{{fullurl:{{#Special:Log}}/delete|पृष्ठ={{FULLPAGENAMEE}}}}को मेटिएको लगमा पाउन सकिन्छ]।",
+       "rev-suppressed-text-permission": "यो पृष्ठ संशोधनलाई <strong>दमन</strong> गरिएको छ । \nविस्तृत जानकारी [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} दमन लग]मा पाउन सकिन्छ ।",
        "rev-deleted-text-unhide": "यस पृष्ठको संशोधन '''मेटिएकोछ'''।\nयसको पूर्ण विवरण [{{fullurl:{{#Special:Log}}/delete|पृष्ठ={{FULLPAGENAMEE}}}} को मेटिएको लगमा पाउन सकिन्छ].\nयदि चाहनु भयो भनें [$1 संशोधन हेर्न] सक्नुहुन्छ।",
-       "rev-suppressed-text-unhide": "यस à¤ªà¥\83षà¥\8dठà¤\95à¥\8b à¤ªà¥\81नरावलà¥\8bà¤\95न '''दबाà¤\87à¤\8fà¤\95à¥\8bà¤\9b'''।\nयसà¤\95à¥\8b à¤ªà¥\82रà¥\8dण à¤µà¤¿à¤µà¤°à¤£ [{{fullurl:{{#Special:Log}}/delete|पà¥\83षà¥\8dठ={{FULLPAGENAMEE}}}}à¤\95à¥\8b à¤¦à¤¬à¤¾à¤\87à¤\8fà¤\95à¥\8b à¤²à¤\97मा à¤ªà¤¾à¤\89न à¤¸à¤\95िनà¥\8dà¤\9b]।\nयदि à¤\9aाहनà¥\81 à¤­à¤¯à¥\8b à¤­à¤¨à¥\87à¤\82 à¤ªà¥\8dरबनà¥\8dधà¤\95à¤\95à¥\8b à¤¹à¥\88सियतमा [यà¥\8b à¤ªà¥\81नरावलà¥\8bà¤\95न $1] à¤¹à¥\87रà¥\8dन à¤¸à¤\95à¥\8dनà¥\81हà¥\81नà¥\8dà¤\9b।",
+       "rev-suppressed-text-unhide": "यस à¤ªà¥\83षà¥\8dठà¤\95à¥\8b à¤ªà¥\81नरावलà¥\8bà¤\95न '''दमन''' à¤\97रिà¤\8fà¤\95à¥\8b à¤\9b à¥¤\nविसà¥\8dतà¥\83त à¤\9cानà¤\95ारà¥\80 [{{fullurl:{{#Special:Log}}/delete|पà¥\83षà¥\8dठ={{FULLPAGENAMEE}}}} à¤¦à¤®à¤¨ à¤²à¤\97] à¤ªà¤¾à¤\89न à¤¸à¤\95िनà¥\8dà¤\9b à¥¤\nयदि à¤¤à¤ªà¤¾à¤\88 à¤\85à¤\97ाडि à¤¬à¤¢à¥\8dन à¤\9aाहनà¥\81 à¤¹à¥\81नà¥\8dà¤\9b à¤­à¤¨à¥\87 à¤ªà¤¨à¤¿ à¤¤à¤ªà¤¾à¤\88लà¥\87  [$1 à¤¯à¤¿ à¤¸à¤\82शà¥\8bधनहरà¥\81 à¤¹à¥\87रà¥\8dन] à¤ªà¤¾à¤\89नà¥\81 à¤¹à¥\81नà¥\87à¤\9b ।",
        "rev-deleted-text-view": "यस पृष्ठको संशोधन '''मेटिएकोछ'''।\nतपाईंले हेर्न सक्नुहुन्छ; [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} मेटिएको लगमा विवरण पाउन सकिन्छ]।",
-       "rev-suppressed-text-view": "यस पृष्ठको पुनरावलोकन '''दबिएकोछ'''।\nप्रबन्धकको हैसियतमा हेर्न सक्नुहुन्छ; [{{fullurl:{{#Special:Log}}/delete|पृष्ठ={{FULLPAGENAMEE}}}}को दबिएको लगमा विवरण पाउन सकिन्छ]",
-       "rev-deleted-no-diff": "तपाईंले यसको भिन्नता पाउन सक्नुहुन्न किनभने यस पृष्ठको पुनरावलोकन '''मेटाइएको छ'''।\nयसको विवरण [{{fullurl:{{#Special:Log}}/delete|पृष्ठ={{FULLPAGENAMEE}}}}को मेटाइएको लगमा पाउन सक्नुहुन्छ]।",
-       "rev-suppressed-no-diff": "तपाईं यसको भिन्नता हेर्न सक्नुहुन्न किनभनें यसको एउटा संशोधन '''मेटाइएको'''छ।",
-       "rev-deleted-unhide-diff": "यस पृष्ठको पुनरावलोकनहरु मध्ये एउटा भिन्नता '''मेटाइएकोछ'''।\nयसको पूर्ण विवरण [{{fullurl:{{#Special:Log}}/delete|पृष्ठ={{FULLPAGENAMEE}}}}को मेटाइएको लगमा पाउन सकिन्छ]।\nयदि चाहनु भयो भनें प्रबन्धकको हैसियतमा [यो भिन्नता $1] हेर्न सक्नुहुन्छ।",
-       "rev-suppressed-unhide-diff": "यस पृष्ठको पुनरावलोकनहरु मध्ये एउटा भिन्नता '''दबिएकोछ'''।\nयसको पूर्ण विवरण [{{fullurl:{{#Special:Log}}/suppress|पृष्ठ={{FULLPAGENAMEE}}}}को दबिएको लगमा पाउन सकिन्छ]।\nयदि चाहनु भयो भनें प्रबन्धकको हैसियतमा [यो भिन्नता $1] हेर्न सक्नुहुन्छ।",
-       "rev-deleted-diff-view": "यस भिन्नताका संशोधनहरुमध्येको एउटा चाहिं  '''मेटियो।''' \nतपाईंले यस भिन्नतालाई हेर्न सक्नुहुन्छ; सबै विवरण  [{{fullurl:{{#Special:Log}}/delete|पृष्ठ={{FULLPAGENAMEE}}}} मेटाइएको (deletion) लग]मा पाउन सकिनेछ।",
-       "rev-suppressed-diff-view": "यस भिन्नताका संशोधनहरुमध्येको एउटा चाहिं  '''दबाइयो।''' \nतपाईंले यस भिन्नतालाई हेर्न सक्नुहुन्छ; सबै विवरण  [{{fullurl:{{#Special:Log}}/delete|पृष्ठ={{FULLPAGENAMEE}}}} दबाइएको (suppression) लग]मा पाउन सकिनेछ।",
-       "rev-delundel": "दà¥\87à¤\96ाà¤\89नà¥\87/लà¥\81à¤\95ाà¤\89ने",
+       "rev-suppressed-text-view": "यस पृष्ठको पुनरावलोकन <strong>थिचिएको छ</strong>।\nप्रबन्धकको हैसियतले हेर्न सक्नुहुन्छ; [{{fullurl:{{#Special:Log}}/delete|पृष्ठ={{FULLPAGENAMEE}}}}को थिचिएको लगमा विवरण पाउन सकिन्छ]",
+       "rev-deleted-no-diff": "तपाईंले यसको भिन्नता पाउन सक्नुहुन्न किनभने यस पृष्ठको पुनरावलोकन <strong>मेटाइएको छ</strong>'।\nयसको विवरण [{{fullurl:{{#Special:Log}}/delete|पृष्ठ={{FULLPAGENAMEE}}}}को मेटाइएको लगमा पाउन सक्नुहुन्छ]।",
+       "rev-suppressed-no-diff": "तपाईं यसको भिन्नता हेर्न सक्नुहुन्न किनभने यसको एउटा संशोधन <strong>मेटाइएको</strong>छ।",
+       "rev-deleted-unhide-diff": "यस पृष्ठको पुनरावलोकनहरु मध्ये एउटा भिन्नता <strong>मेटाइएकोछ</strong>।\nयसको पूर्ण विवरण [{{fullurl:{{#Special:Log}}/delete|पृष्ठ={{FULLPAGENAMEE}}}}को मेटाइएको लगमा पाउन सकिन्छ]।\nयदि चाहनु भयो भने प्रवन्धकको हैसियतले [यो भिन्नता $1] हेर्न सक्नुहुन्छ।",
+       "rev-suppressed-unhide-diff": "यस पृष्ठको पुनरावलोकनहरु मध्ये एउटा भिन्नता <strong>थिचिएको छ</strong>।\nयसको पूर्ण विवरण [{{fullurl:{{#Special:Log}}/suppress|पृष्ठ={{FULLPAGENAMEE}}}}को थिचिएको लगमा पाउन सकिन्छ]।\nयदि चाहनु भयो भने प्रबन्धकको हैसियतमा [यो भिन्नता $1] हेर्न सक्नुहुन्छ।",
+       "rev-deleted-diff-view": "यस भिन्नताका संशोधनहरुमध्येको एउटा चाहिं <strong>मेटियो।<strong> \nतपाईंले यस भिन्नतालाई हेर्न सक्नुहुन्छ; सबै विवरण  [{{fullurl:{{#Special:Log}}/delete|पृष्ठ={{FULLPAGENAMEE}}}} मेटाइएको लग]मा पाउन सकिनेछ।",
+       "rev-suppressed-diff-view": "यस भिन्नताका संशोधनहरुमध्येको एउटा चाहिं  <strong>दबाइयो।<strong> \nतपाईंले यस भिन्नतालाई हेर्न सक्नुहुन्छ; सबै विवरण  [{{fullurl:{{#Special:Log}}/delete|पृष्ठ={{FULLPAGENAMEE}}}} दबाइएको लग]मा पाउन सकिनेछ।",
+       "rev-delundel": "दà¥\83शà¥\8dयता à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤\97रà¥\8dने",
        "rev-showdeleted": "देखाउनुहोस्",
        "revisiondelete": "मेटाउने/मेटाएको रद्दगर्ने  पुनरावलोकनहरु",
        "revdelete-nooldid-title": "अमान्य पुनरावलोकन लक्ष",
+       "revdelete-nooldid-text": "यस क्रियालाई गर्नको लागि तपाईंले लक्ष्य अवतरण दिनु भएको छैन, वा तपाईंले दिएको अवतरण अस्तित्वमा छैन वा तपाईं सद्य अवतरणलाई लुकाउने प्रयत्न गर्दै हुनुहुन्छ।",
        "revdelete-no-file": "खुलाइएको पृष्ठ अस्तित्वमा छैन",
        "revdelete-show-file-confirm": "तपाईँ $2 बाट $3 मा मेटिएको फाइल \"<nowiki>$1</nowiki>\" को पुनरावलोकन हेर्न चाहनुहुन्छ भन्ने कुरामा निश्चित हुनुहुन्छ ?",
        "revdelete-show-file-submit": "हो",
+       "revdelete-selected-text": "[[:$2]] को {{PLURAL:$1|छानिएको संशोधन|छानिएका संशोधनहरू}}:",
+       "revdelete-selected-file": "[[:$2]] को {{PLURAL:$1|छानिएको फाइल संस्करण|छानिएका फाइल संस्करणहरू}}:",
        "logdelete-selected": "{{PLURAL:$1|छानिएको लग घटना|छानिएका लग घटनाहरु}}:",
+       "revdelete-text-text": "हटाइएको अवतरण पृष्ठ इतिहासमा देखाइनेछ तर तिनको सामग्री सार्वजनिक रूपले देखाइने छैन।",
+       "revdelete-text-file": "हटाइएको फाइल अवतरण फाइल इतिहासमा देखाइनेछ तर तिनको सामग्री सार्वजनिक रूपले देखाइने छैन।",
+       "logdelete-text": "हटाइएको प्रवेश घटनाहरू अहिले पनि लगमा देखाइनेछ तर तिनको सामग्रीको केहि भागलाई सार्वजनिक रूपले हेर्न सकिने छैन।",
+       "revdelete-text-others": "अन्य प्रवन्धकहरू अहिले पनि लुकाइएको सामग्रीको उपयोग गर्नका लागि अझै अतिरिक्त प्रतिबन्ध सेट गरिरहेका छन्, जब सम्म यो अ-नष्ट गर्न सक्षम हुनेछ।",
+       "revdelete-confirm": "पुष्टि गर्नुस कि तपाईं यो कार्य गर्न चाहनुहुन्छ, तपाईं यसको परिणाम देखि अवगत हुनुहुन्छ, र तपाईं यो [[{{MediaWiki:Policy-url}}|नीति]] अनुसार गर्दै हुनुहुन्छ।",
+       "revdelete-suppress-text": "लुकाउने प्रयोग <strong>मात्रै</strong> यी परिस्थितिमा हुनु पर्नेछ:\n* सम्भावित अपमानजनक जानकारी\n* अनुपयुक्त निजी जानकारी\n*: <em>घरको ठेगाना वा टेलिफोन नम्बर, राष्ट्रिय पहिचान नम्बर आदि।</em>",
        "revdelete-legend": "दृष्टि बन्देज मिलाउने",
        "revdelete-hide-text": "पुनरावलोकन पाठ",
        "revdelete-hide-image": "फाइल कमेन्ट लुकाउने",
        "revdelete-modify-no-access": "  $2समय र $1 मिति भएको वस्तु परिवर्तन गर्न सकिएन यसलाई \"निषेधित\"भनि चिनो लगाइएको छ।\nयसलाई परिवर्तन गर्न तपाईसँग अनुमती छैन ।",
        "revdelete-modify-missing": "आइडी  $1 रहेको वस्तु परिवर्तन गर्दा त्रुटी भएको छ: यस वस्तु डेटावेसबाट हराइरहेको छ !",
        "revdelete-no-change": "'''चेतावनी:''' $2, $1मिति भइको वस्तुको पहिले नै अनुरोध गरे अनुसारको दृश्य सेटिङ्गहरु छन् ।",
-       "revdelete-concurrent-change": " $2, $1 मिति गरिएको वस्तु परिवर्तन गर्न सकिएन: यसको स्थितीले तपाईले परिवर्तन गर्नलाग्नुहुँदा कोहीअरुले न परिवर्तन गरेजस्तो देखाउँछ\nकृपया लगहरु हेर्नुहोला ।",
+       "revdelete-concurrent-change": " $2, $1 मिति गरिएको वस्तु परिवर्तन गर्न सकिएन: यसको स्थितीले तपाईले परिवर्तन गर्नलाग्नुहुँदा कोहीअरुले नै परिवर्तन गरेजस्तो देखाउँछ\nकृपया लगहरू हेर्नुहोला ।",
        "revdelete-only-restricted": "$2, $1 मिति भएको वस्तु लुकाउदा त्रुटी भएको छ:तपाईले वस्तुहरुलाई प्रवन्धकहरुको दृष्टीबाट दमन गर्न सक्नुहुन्न अझ कुनै पनि अरु दृष्टी विकल्पहरु नछानीकन।",
        "revdelete-reason-dropdown": "मेटाउनका सामान्य कारणहरु\n** कपीराइट उल्लंघन\n** अनुचित व्यक्तिगत जानकारी\n** अनुचित प्रयोगकर्ता नाम\n** संभावित अपमानजनक जानकारी",
        "revdelete-otherreason": "अन्य/थप कारण:",
        "suppressionlog": "कमगरेको लग",
        "suppressionlogtext": "मेट्न र रोक्नका निमित्त निम्न सुची रहेको छ जसमा प्रवन्धकबाट लुकाइएका सामग्री समेत रहेका छन।\nकृपया हाल प्रयोगमा रहेका रोक र रोकावटको सुचीका लागि [[Special:BlockList|रोक सुची]] हेर्नुहोला।",
        "mergehistory": "पृष्ठ इतिहासहरु मिसाउने",
+       "mergehistory-header": "यो पृष्ठ एक स्रोत पृष्ठको इतिहास कुनै अन्य पृष्ठमा मिलाउनको लागि हो।\nसुनिश्चित गर्नुस कि यो परिवर्तन पृष्ठ इतिहासमा निरन्तरता प्रदान गर्न सकोस।",
        "mergehistory-box": "दुई पृष्ठहरुको पुनरावलोकन जोड्नुहोस् :",
        "mergehistory-from": "स्रोत पृष्ठ:",
        "mergehistory-into": "गन्तब्य पृष्ठ :",
        "mergehistory-list": "जोड्न मिल्ने इतिहास सम्पादन",
+       "mergehistory-merge": "[[:$1]]को निम्न अवतरण [[:$2]]मा समाविष्ट गर्न सकिनेछ।\nदिइएको समय वा त्यस भन्दा पहिले भएको अवतरणहरूलाई एकत्रित गर्नका लागि  रेडियो बटनको प्रयोग गर्नुहोस।\nन्याभिगेसन लिङ्कहरूको प्रयोग पछी यो कलम आफ्नो पुरानै स्थितिमा आउनेछ।",
        "mergehistory-go": "जोड्न मिल्ने सम्पादनहरु",
        "mergehistory-submit": "पुनरावलोकहरु जोड्नुहोस्",
        "mergehistory-empty": "कुनै पनि पुनरावलोकनहरु जोड्न मिल्दैन ।",
        "mergehistory-success": "$3 {{PLURAL:$3|संस्करण|संस्करणहरु}}  [[:$1]]बाट सफलतापूर्वक [[:$2]]मा थपियो ।",
-       "mergehistory-fail": "इतिहास जोड् सकिएन कृपया पृष्टको नाम र समयमान जाँच गर्नुहोस् ।",
+       "mergehistory-fail": "इतिहास जोड्न सकिएन कृपया पृष्ठको नाम र समयमान जाँच गर्नुहोस्।",
+       "mergehistory-fail-toobig": "इतिहास समाहित गर्न सम्भव छैन किनभने अवतरण सिमा $1 भन्दा बढी {{PLURAL:$1|अवतरण|अवतरणहरू}} लाई स्थानान्तरित गर्नु पर्छ।",
        "mergehistory-no-source": "स्रोत पृष्ठ $1 अस्तित्वमा छैन ।",
        "mergehistory-no-destination": "गन्तव्य पृष्ठ $1 अस्तित्वमा छैन ।",
        "mergehistory-invalid-source": "स्रोत पृष्ठ मान्य शीर्षकको हुनुपर्छ ।",
        "showhideselectedversions": "छानिएका पुनरावलोकनहरु देखाउने/लुकाउने",
        "editundo": "रद्द गर्ने",
        "diff-empty": "(कुनै भिन्नता छैन)",
+       "diff-multi-sameuser": "(यस प्रयोगकर्ताद्वारा {{PLURAL:$1|गरिएको बीचको एउटा अवतरण देखाइएन|गरिएको बीचको $1 अवतरण देखाइएन}})",
+       "diff-multi-otherusers": "({{PLURAL:$2|एक अन्य प्रयोगकर्ता|$2 प्रयोगकर्ताहरू}} द्वारा {{PLURAL:$1|गरिएको बीचको एक अवतरण देखाइएन|गरिएको बीचको $1 अवतरण देखाइएन}})",
        "diff-multi-manyusers": "($2 {{PLURAL:$2|भन्दा अधिक प्रयोगकर्ता|भन्दा अधिक प्रयोगकर्ताहरु}}द्वारा {{PLURAL:$1|एउटा मध्यवर्ती संशोधन|$1 मध्यवर्ती संशोधनहरु}} नदेखाइएको)",
+       "difference-missing-revision": "यस अन्तर {{PLURAL:$2|को एक अवतरण|को $2 अवतरण}} ($1)  {{PLURAL:$2|भेटिएन|खोज्न सकिएन}}।\n\nयो सामान्य रूपमा एउटा हताइएको पृष्ठको अवतरणहरूमा अन्तर खोज्दा हुन्छ । अधिक जानकारी [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} हटाइएको लग]मा हेर्न सकिन्छ।",
        "searchresults": "खोज नतिजाहरू",
        "searchresults-title": " \"$1\"को लागि खोज नतिजाहरु",
        "titlematches": "पृष्ठ शिर्षक मिल्छ",
        "searchprofile-images-tooltip": "फाइलहरु खोज्ने",
        "searchprofile-everything-tooltip": "सबै सामग्री खोज्ने (वार्तालाप समेत )",
        "searchprofile-advanced-tooltip": "अनुकुल नेमस्पेसमा खोज्ने",
-       "search-result-size": "$1 ({{PLURAL:$2|1 à¤¶à¤µà¥\8dद|$2 à¤¶à¤µà¥\8dदहरà¥\81}})",
+       "search-result-size": "$1 ({{PLURAL:$2|1 à¤¶à¤¬à¥\8dद|$2 à¤¶à¤¬à¥\8dदहरà¥\82}})",
        "search-result-category-size": "{{PLURAL:$1|एक सदस्य|$1 सदस्यहरु}} ({{PLURAL:$2|1 उपश्रेणी|$2  उपश्रेणीहरु}}, {{PLURAL:$3|एउटा फाइल|$3 फाइलहरु}})",
        "search-redirect": "(जाने $1)",
        "search-section": "(खण्ड $1)",
        "searchrelated": "सम्बन्धित",
        "searchall": "सबै",
        "showingresults": "देखाउँदै  {{PLURAL:$1|'''१''' नतिजा|'''$1''' नतिजाहरू }} , #'''$2''' बाट सुरुहुने ।",
+       "showingresultsinrange": "देखाई रहेको छ{{PLURAL:$1|<strong>1</strong> result|<strong>$1</strong> परिणाम}} सम्म पहुँच  #<strong>$2</strong> देखि #<strong>$3</strong> मा।",
+       "search-showingresults": "{{PLURAL:$4|<strong>$3</strong> मा बाट <strong>$1</strong> परिणाम|<strong>$3</strong> मा बाट परिणाम <strong>$1 - $2</strong>}}",
        "search-nonefound": "तपाईँको क्वेरीसँग मेल खाने नतिजाहरू भेटिएनन्",
        "powersearch-legend": "उन्नत खोज",
        "powersearch-ns": "नेमस्पेसेजहरुमा खोज्ने :",
        "powersearch-togglelabel": "जाँच्ने :",
        "powersearch-toggleall": "सबै",
        "powersearch-togglenone": "कुनै पनि होइन",
+       "powersearch-remember": "चयन गरिएको लाई भविष्यमा गरिने खोजहरूको लागि सम्झिने",
        "search-external": "बाह्य खोज",
        "searchdisabled": "{{SITENAME}} खोज निस्क्रिय पारिएको छ ।\nहाललाई तपाईले गूगलद्वारा खोज्न सक्नुहुन्छ ।\nयाद गर्नुहोस् उनीहरुको {{SITENAME}}को सूची सामग्री पुरानो भएको हुनसक्छ ।",
+       "search-error": "खोज्ने क्रममा समस्या देखियोः $1",
        "preferences": "रोजाइहरू",
        "mypreferences": "प्राथमिकताहरु",
        "prefs-edits": "सम्पादन संख्या:",
+       "prefsnologintext2": "आफ्नो अभिरूचीहरू परिवर्तन गर्नका लागि प्रवेश गर्नुहोस।",
        "prefs-skin": "काँचुली",
        "skin-preview": "पूर्वावलोकन",
        "datedefault": "कुनै अभिरुचि छैन",
        "prefs-personal": "प्रयोगकर्ताको विवरण",
        "prefs-rc": "नयाँ परिवर्तनहरू",
        "prefs-watchlist": "अवलोकन पृष्ठ",
+       "prefs-editwatchlist": "अवलोकनसूची सम्पादन",
+       "prefs-editwatchlist-label": "आफ्नो अवलोकनसूचीमा रहेको इन्ट्रीलाई सम्पादन गर्नुहोस:",
+       "prefs-editwatchlist-edit": "आफ्नो अवलोकनसूचीमा रहेको शीर्षकलाई देखाउने तथा हटाउने",
+       "prefs-editwatchlist-raw": "कच्चा अवलोकनसूची सम्पादन गर्ने",
        "prefs-editwatchlist-clear": "तपाईंको अवलोकनसूची मेट्नुहोस",
-       "prefs-watchlist-days": "निà¤\97रानà¥\80 à¤¸à¥\82à¤\9aà¥\80मा à¤¦à¥\87à¤\96ाà¤\89न à¤¦à¤¿à¤¨à¤¹à¤°à¥\81:",
+       "prefs-watchlist-days": "निà¤\97रानà¥\80 à¤¸à¥\82à¤\9aà¥\80मा à¤¦à¥\87à¤\96ाà¤\89न à¤¦à¤¿à¤¨à¤¹à¤°à¥\82:",
        "prefs-watchlist-days-max": "धेरैमा $1 {{PLURAL:$1|दिन|दिन}}",
        "prefs-watchlist-edits": "उच्चतम परिवर्तन संख्या बढाइएको निगरानी सूचीमा  देखाउनको लागि :",
        "prefs-watchlist-edits-max": "उच्चतम संख्या : १०००",
        "searchresultshead": "खोज",
        "stub-threshold": "<a href=\"#\" class=\"stub\">ठूटो</a> को लागि थ्रेसहोल्ड स्वरूपण (बाइट):",
        "stub-threshold-disabled": "निष्क्रिय",
-       "recentchangesdays": "हालà¤\95à¥\8b à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनमा à¤¦à¥\87à¤\96ाà¤\89नà¥\87 à¤¦à¤¿à¤¨à¤¹à¤°à¥\81:",
+       "recentchangesdays": "हालà¤\95à¥\8b à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनमा à¤¦à¥\87à¤\96ाà¤\89नà¥\87 à¤¦à¤¿à¤¨à¤¹à¤°à¥\82:",
        "recentchangesdays-max": "अधिकतम $1 {{PLURAL:$1|दिन|दिन}}",
        "recentchangescount": "पूर्व निर्धारितरुपमा देखाउनुपर्ने सम्पादनहरू :",
        "prefs-help-recentchangescount": "यसमा हालका परि्वर्तनहरु , पृष्ठ इतिहासहरु , र लग समाविष्ठ छन् ।",
+       "prefs-help-watchlist-token2": "यो तपाईंको ध्यानसूचीको वेब फिडको गोपनीय साँचो हो।\nयो जोसँग हुन्छ त्यसले तपाईंको ध्यानसूची पढ्न सक्नेछ, यसकारण यसलाई कसैसँग साझा नगर्नुहोला।\n[[Special:ResetTokens|यसलाई रिसेट गर्न यहाँ क्लिक गर्नुस]]।",
        "savedprefs": "तपाईंका अभिरुचिहरू सङ्ग्रहित भयो।",
        "timezonelegend": "समय क्षेत्र :",
        "localtime": "स्थानिय समय:",
        "yourrealname": "वास्तविक नाम:",
        "yourlanguage": "भाषा:",
        "yourvariant": "लेखको भाषा संस्करण:",
-       "yournick": "उपनाम (निकनेम):",
+       "prefs-help-variant": "तपाईंको मनपरेको संस्करण वा हिज्जे यस विकि भित्र सामग्री पृष्ठहरू प्रदर्शित गर्नका निमित्त।",
+       "yournick": "नयाँ हस्ताक्षर:",
        "prefs-help-signature": "वार्तालाप पृष्ठका टिप्पणीहरु \"<nowiki>~~~~</nowiki>\" द्वारा दस्तखत गरिनुपर्छ ,जुन पछि तपाईँको दस्तखत र समयरेखामा रुपान्तरित हुनेछ ।",
        "badsig": "अमान्य कच्चा दस्तखत।\nHTML ट्यागहरु जाँच्नुहोस् ।",
        "badsiglength": "तपाईको दस्तखत धेरै लामो छ।\nयो $1 {{PLURAL:$1|अक्षर|अक्षरहरू}} भन्दा लामो हुनु हुँदैन ।",
        "gender-unknown": "म खुलाउन चाहन्न",
        "gender-male": "उसले विकि पृष्ठहरू सम्पादन गर्छ",
        "gender-female": "उनले विकि पृष्ठ सम्पादन गर्छिन",
-       "prefs-help-gender": "वà¥\88à¤\95लà¥\8dपिà¤\95: à¤¸à¤«à¥\8dà¤\9fवà¥\87यरलà¥\87 à¤²à¤¿à¤\99à¤\97ानà¥\81सार à¤¸à¤®à¥\8dबà¥\8bधन à¤\97रà¥\8dनà¤\95à¥\8b à¤²à¤¾à¤\97ि à¤ªà¥\8dरयà¥\8bà¤\97 à¤\97रिनà¥\8dà¤\9b à¥¤\nयà¥\8b à¤\9cानà¤\95ारà¥\80 à¤¸à¤¾à¤°à¥\8dवà¤\9cनिà¤\95 à¤¹à¥\81नà¥\87à¤\9b ।",
+       "prefs-help-gender": "यà¥\8b à¤\9cानà¤\95ारà¥\80 à¤¦à¤¿à¤¨à¥\81 à¤µà¥\88à¤\95लà¥\8dपिà¤\95 à¤\9b।\nयà¥\8b à¤¸à¤«à¥\8dà¤\9fवà¥\87यरमा à¤²à¤¿à¤\99à¥\8dà¤\97à¤\95à¥\8b à¤\86धारमा à¤¤à¤ªà¤¾à¤\88à¤\82à¤\95à¥\8b à¤²à¤¾à¤\97ि à¤¸à¤¹à¤¿ à¤¸à¤®à¥\8dबà¥\8bधन à¤\97रà¥\8dनà¤\95à¥\8b à¤¨à¤¿à¤®à¤¿à¤¤à¥\8dत à¤¹à¥\81नà¥\8dà¤\9b।\nयà¥\8b à¤\9cानà¤\95ारà¥\80 à¤¸à¤¾à¤°à¥\8dवà¤\9cनिà¤\95 à¤\97रिनà¥\87à¤\9b।",
        "email": "ईमेल",
-       "prefs-help-realname": "वासà¥\8dतविà¤\95 à¤¨à¤¾à¤® à¤\90à¤\9aà¥\8dà¤\9bिà¤\95 à¤¹à¥\8b à¥¤\nतपाà¤\88लà¥\87 à¤¯à¥\8b à¤\96à¥\81लाà¤\89नà¥\81 à¤­à¤\8fà¤\95à¥\8b à¤\96णà¥\8dडमा à¤¤à¤ªà¤¾à¤\88à¤\81à¤\95à¥\8b à¤\95ामà¤\95à¥\8b à¤¶à¥\8dरà¥\87य à¤¦à¤¿à¤¨à¤\95à¥\8b à¤²à¤¾à¤\97ि à¤ªà¥\8dरयà¥\8bà¤\97 à¤\97रिनà¥\87 à¤\9b।",
+       "prefs-help-realname": "वासà¥\8dतविà¤\95 à¤¨à¤¾à¤® à¤\90à¤\9aà¥\8dà¤\9bिà¤\95 à¤¹à¥\8b à¥¤\nतपाà¤\88लà¥\87 à¤\96à¥\81लाà¤\89नà¥\81 à¤­à¤\8fà¤\95à¥\8b à¤\96णà¥\8dडमा à¤¤à¤ªà¤¾à¤\88à¤\95à¥\8b à¤\95ामà¤\95à¥\8b à¤¶à¥\8dरà¥\87य à¤¦à¤¿à¤¨à¤\95à¥\8b à¤²à¤¾à¤\97ि à¤¯à¤¸à¤\95à¥\8b à¤ªà¥\8dरयà¥\8bà¤\97 à¤\97रिनà¥\87 à¤\9b ।",
        "prefs-help-email": "इमेल ठेगाना ऐच्छिक हो, तर  प्रवेश शव्दको पुनर्स्थापनाको लागि आवश्यकता छ, के तपाईंले प्रवेश शव्द भुल्नु हुन्थ्यो।",
        "prefs-help-email-others": "तपाईंले यो पनि चयन गर्न सक्नुहुन्छ कि अरुहरुले तपाईंको परिचय नपाई तपाईंसित तपाईंको प्रयोगकर्ता अथवा वार्तालाप पृष्ठको माध्यमले सम्पर्क राखुन् ।",
        "prefs-help-email-required": "इमेल ठेगामा चाहिन्छ ।",
        "prefs-displaywatchlist": "प्रदर्शन विकल्पहरू",
        "prefs-tokenwatchlist": "टोकन",
        "prefs-diffs": "diffs(भिन्नता)",
-       "email-address-validity-valid": "ई मेल ठेगाना मान्य भएको प्रतीत हुन्छ",
+       "prefs-help-prefershttps": "यो अभिरूची तपाईको अर्को प्रवेश (लग इन) बाट लागु हुनेछ ।",
+       "prefswarning-warning": "तपाईंले आफ्नो अभिरूचीमा गर्नुभएको परिवर्तन अहिले सम्म सङ्ग्रह गरिएको छैन। यदि तपाईं \"$1\" मा क्लिक नगरी यस पृष्ठबाट बाहिर जानुभयो भने तपाईंको अभिरूची अपडेट गर्न सकिदैन।",
+       "prefs-tabs-navigation-hint": "सुझाव: तपाईं ट्याबसहरूमा ट्याबसको बीच आवागमन गर्नका लागि देब्रे वा दाहिने तीर साँचोको प्रयोग गर्न सक्नुहुन्छ।",
+       "email-address-validity-valid": "ईमेल ठेगाना मान्य देखिन्छ",
        "email-address-validity-invalid": "मान्य ईमेल ठेगाना दिनुहोस्",
        "userrights": "प्रयोगकर्ता अधिकार व्यवस्थापन",
        "userrights-lookup-user": "प्रयोगकर्ता समूह व्यवस्थापन गर्नुहोस",
        "userrights-user-editname": "प्रयोगकर्ता नाम दिनुहोस् :",
        "editusergroup": "प्रयोगकर्ता समूह सम्पादन गर्नुहोस्",
-       "editinguser": "'''[[User:$1|$1]]''' $2 प्रयोगकर्ताको अधिकार परिवर्तन गरिंदै",
+       "editinguser": "प्रयोगकर्ता '''[[User:$1|$1]]''' $2 को अधिकार परिवर्तन गर्ने\n{{GENDER:$1|प्रयोगकर्ता}}को प्रयोगकर्ता अधिकार परिवर्तन हुँदैछ <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "प्रयोगकर्ता समूह सम्पादन गर्नुहोस्",
        "saveusergroups": "प्रयोगकर्ता समूहरू संग्रह गर्नुहोस्",
        "userrights-groupsmember": "को सदस्य:",
        "userrights-changeable-col": "परिवर्तन गर्न सकिने समूहहरु",
        "userrights-unchangeable-col": "तपाईले परिवर्तन गर्न सक्नुनहुने समूहहरु",
        "userrights-irreversible-marker": "$1*",
+       "userrights-conflict": "प्रयोगकर्ताको अधिकार परिवर्तनमा मतभेद भयो ! कृपया तपाईको परिवर्तन पुनरावलोकन तथा पुष्टि गर्नु होस् ।",
+       "userrights-removed-self": "तपाईले सफलतापूर्वक आफ्नो अधिकारहरूलाई मेटाउनु भयो । त्यस कारण तपाई अब यो पृष्ठ हेर्न सक्नु हुने छैन् ।",
        "group": "समूह :",
        "group-user": "प्रयोगकर्ताहरु",
        "group-autoconfirmed": "स्वत निश्चित गरिएका प्रयोगकर्ताहरु",
-       "group-bot": "बà¥\8bà¤\9fहरà¥\81",
-       "group-sysop": "पà¥\8dरबन्धकहरू",
-       "group-bureaucrat": "पà¥\8dरशासà¤\95हरà¥\81",
-       "group-suppress": "à¤\85तिदà¥\83षà¥\8dà¤\9fिहरà¥\81",
+       "group-bot": "बà¥\8bà¤\9fहरà¥\82",
+       "group-sysop": "पà¥\8dरवन्धकहरू",
+       "group-bureaucrat": "पà¥\8dरशासà¤\95हरà¥\82",
+       "group-suppress": "à¤\85तिदà¥\83षà¥\8dà¤\9fिहरà¥\82",
        "group-all": "(सबै)",
        "group-user-member": "{{GENDER:$1|प्रयोगकर्ता}}",
        "group-autoconfirmed-member": "{{GENDER:$1|स्वनिर्धारित प्रयोगकर्ता}}",
        "group-sysop-member": "{{GENDER:$1|प्रवन्धक}}",
        "group-bureaucrat-member": "{{GENDER:$1|प्रशासक}}",
        "group-suppress-member": "{{GENDER:$1|अतिदृष्टि}}",
-       "grouppage-user": "{{ns:project}}:पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताहरà¥\81",
-       "grouppage-autoconfirmed": "{{ns:project}}:सà¥\8dवनिरà¥\8dधारित  à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताहरà¥\81",
-       "grouppage-bot": "{{ns:project}}:बà¥\8bà¤\9fहरà¥\81",
-       "grouppage-sysop": "{{ns:project}}: प्रबन्धकहरु",
-       "grouppage-bureaucrat": "{{ns:project}}:पà¥\8dरशासà¤\95हरà¥\81",
+       "grouppage-user": "{{ns:project}}:पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताहरà¥\82",
+       "grouppage-autoconfirmed": "{{ns:project}}:सà¥\8dवनिरà¥\8dधारित  à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताहरà¥\82",
+       "grouppage-bot": "{{ns:project}}:बà¥\8bà¤\9fहरà¥\82",
+       "grouppage-sysop": "{{ns:project}}:प्रवन्धकहरू",
+       "grouppage-bureaucrat": "{{ns:project}}:पà¥\8dरशासà¤\95हरà¥\82",
        "grouppage-suppress": "{{ns:project}}:अतिदृष्टि",
        "right-read": "पृष्ठहरू पढ्नुहोस्",
-       "right-edit": "पà¥\83षà¥\8dठहरà¥\81 सम्पादन गर्नुहोस्",
-       "right-createpage": "पृष्ठ निर्माण गर्नुहोस(छलफल पृष्ठहरु बाहेक)",
+       "right-edit": "पà¥\83षà¥\8dठहरà¥\82 सम्पादन गर्नुहोस्",
+       "right-createpage": "पृष्ठ निर्माण गर्नुहोस (छलफल पृष्ठहरू बाहेक)",
        "right-createtalk": "छलफल पृष्ठ सृजना गर्नुहोस्",
        "right-createaccount": "नयाँ प्रयोगकर्ता खाता सृजना गर्नुहोस्।",
        "right-minoredit": "सम्पादनलाई सामान्य चिनो लगाउने",
        "right-move": "पृष्ठहरू सार्ने",
-       "right-move-subpages": "तिनà¥\80हरà¥\81à¤\95à¥\8b à¤¸à¤¹-पà¥\83षà¥\8dठसहित à¤ªà¥\83षà¥\8dठहरà¥\81 सार्ने",
-       "right-move-rootuserpages": "मà¥\82ल(root) à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताà¤\95à¥\8b à¤ªà¥\83षà¥\8dठहरà¥\81 सार्ने",
+       "right-move-subpages": "तिनà¥\80हरà¥\82à¤\95à¥\8b à¤¸à¤¹-पà¥\83षà¥\8dठसहित à¤ªà¥\83षà¥\8dठहरà¥\82 सार्ने",
+       "right-move-rootuserpages": "मà¥\82ल(root) à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताà¤\95à¥\8b à¤ªà¥\83षà¥\8dठहरà¥\82 सार्ने",
        "right-move-categorypages": "श्रेणी पृष्ठ सार्नुहोस",
        "right-movefile": "फाइलहरु सार्ने",
        "right-suppressredirect": "पृष्ठ सार्दा स्रोत पृष्ठबाट पठाउने लिंक नबनाउने",
        "right-purge": "साइटको क्याश( cache) निश्चित नगरिकनै पर्ज(Purge) गर्ने",
        "right-autoconfirmed": "आइपी दर सीमाले असर नपार्ने",
        "right-bot": "स्वाचालित कार्यको रुपमा व्यवहार गर्ने",
+       "right-nominornewtalk": "वार्ता पृष्ठहरूमा सानो परिवर्तन गर्दा प्रयोगकर्ताहरूलाई \"तपाईंको लागि नयाँ सन्देश छ\" भनी न्देखाउने",
        "right-apihighlimits": "API खोजको लागि उच्च सीमा प्रयोग गर्नुहोस्",
        "right-writeapi": "लेखन API प्रयोग गर्ने",
        "right-delete": "पृष्ठहरू मेट्ने",
-       "right-bigdelete": "लामो इतिहासहरु भएको पृष्ठहरु मेट्ने",
-       "right-deleterevision": "खुलाइएको पृष्ठहरु मेटाउने र मेटाएको रद्द गर्ने",
+       "right-bigdelete": "लामो इतिहास भएको पृष्ठहरू मेट्ने",
+       "right-deletelogentry": "विशेष लग प्रविष्टी मेटाउने तथा पुनःल्याउने",
+       "right-deleterevision": "खुलाइएको पृष्ठहरू मेटाउने र मेटाएको रद्द गर्ने",
        "right-deletedhistory": "मेटाइएको इतिहास प्रविष्टीहरु हेर्ने, तिनीहरुसँग सम्बद्ध पाठ बिना",
        "right-deletedtext": "मेटाइएका संशोधन बीचका मेटाइएका पाठ र परिवर्तनहरु हेर्ने",
        "right-browsearchive": "मेटिएका पृष्ठहरू खोज्ने",
        "right-undelete": "मेटेको पृष्ठ फिर्तागर्ने",
-       "right-suppressrevision": "प्रबन्धकहरुबाट लुकाइएको पुनरावलोकनहरु पूर्वालोकन गर्ने र पुरानो स्थितिमा फर्काउने",
-       "right-suppressionlog": "व्यक्तिगत लगहरु हेर्ने",
+       "right-suppressrevision": "कुनै पनि प्रयोगकर्ताबाट भएको विशेष पृष्ठ संशोधनलाई‍ देखाउने, लुकाउने तथा पुनः देखाउने",
+       "right-viewsuppressed": "कुनै प्रयोगकर्ताबाट लुकाइएका संशोधनलाई देखाउनु होस्",
+       "right-suppressionlog": "व्यक्तिगत लगहरू हेर्ने",
        "right-block": "अरु प्रयोगकर्ताहरुलाई सम्पादन गर्नबाट रोक्नुहोस",
        "right-blockemail": "एक प्रयोगकर्तालाई इमेल पठाउनबाट रोक्ने",
        "right-hideuser": "एक प्रयोगकर्ता नाम रोक्ने, सार्वजनिकहुनबाट लुकाउने",
        "right-ipblock-exempt": "IP रोक,स्वत: रोक तथा स्तर रोक कटेर जाने",
        "right-proxyunbannable": "प्रोक्सिको स्वत: रोक कटेर जाने",
        "right-unblockself": "आफैंलाई खुल्ला गर्नुहोस्",
-       "right-protect": "सुरक्षा स्तर परिवर्तन गर्ने र जोगाइएका पृष्ठहरु सम्पादन गर्ने",
-       "right-editprotected": "\"{{int:protect-level-sysop}}\" को हैसियतले सुरक्षित पृष्ठहरु सम्पादन गर्ने",
+       "right-protect": "सुरक्षास्तरहरू परिवर्तन गर्ने र क्यासकेड-सुरक्षित पृष्ठहरूलाई सम्पादन गर्ने",
+       "right-editprotected": "\"{{int:protect-level-sysop}}\" को हैसियतले सुरक्षित पृष्ठहरू सम्पादन गर्ने",
+       "right-editsemiprotected": "\"{{int:protect-level-autoconfirmed}}\" अनुरूप सुरक्षित गरिएको पृष्ठहरूलाई सम्पादन गर्नुहोस्",
+       "right-editcontentmodel": "पृष्ठको सामग्री नमुना सम्पादन",
        "right-editinterface": "प्रयोगकर्ता अन्तरमोहडा सम्पादन गर्ने",
        "right-editusercssjs": "प्रयोगकर्ताको CSS र JS फाइलहरु सम्पादन गर्ने",
        "right-editusercss": "प्रयोगकर्ताको CSS फाइलहरु सम्पादन गर्ने",
        "right-editmyusercss": "तपाईँको आफ्नो CSS फाइलहरू सम्पादन गर्नुहोस्",
        "right-editmyuserjs": "तपाईँको आफ्नो जाभा स्क्रिप्ट फाइलहरू सम्पादन गर्ने",
        "right-viewmywatchlist": "तपाईँको निगरानी सुची हेर्नुहोस्",
+       "right-editmywatchlist": "आफ्नो अबलोकन सूची सम्पादन गर्नुहोस् । ख्याल राख्नु यस अधिकार विना पनि केहि कार्यबाट पृष्ठहरू थप गर्न सकिन्छ ।",
+       "right-viewmyprivateinfo": "आफ्नो व्यक्तिगत डेटा हेर्नुहोस (उदाहरण इमेल ठेगाना, सहि नाम)",
+       "right-editmyprivateinfo": "आफ्नो निजी जानकारी (जस्तैः इमेल ठेगाना, बास्तविक नाम) सम्पादन गर्नुहोस्",
        "right-editmyoptions": "तपाईँका अभिरुचीहरू सम्पादन गर्नुहोस्",
        "right-rollback": "पछिल्लो प्रयोगकर्ताको सम्पादनहरुको छरितो रुपमा पछाडि पर्काउने",
        "right-markbotedits": "पछाडि फर्काउने सम्पादनहरुलाई बोट सम्पादनकारुपमा चिनो लगाउने",
        "right-noratelimit": "दर सीमाले  असर नपार्ने",
-       "right-import": "à¤\85रà¥\81 à¤µà¤¿à¤\95िबाà¤\9f à¤ªà¥\83षà¥\8dठहरà¥\81 आयात गर्ने",
+       "right-import": "à¤\85रà¥\81 à¤µà¤¿à¤\95िबाà¤\9f à¤ªà¥\83षà¥\8dठहरà¥\82 आयात गर्ने",
        "right-importupload": "फाइल अपलोडबाट पृष्ठ आयात गर्ने",
        "right-patrol": "अरुको सम्पादनहरुलाई पट्रोल(गस्ती) गरिएको रुपमा चिनो लगाउने",
        "right-autopatrol": "आफ्नो सम्पादनहरु पट्रोल(गस्ती) गरिएको रुपमा सम्पादन गर्ने",
        "right-userrights": "प्रयोगकर्ताका अधिकारहरु सम्पादन गर्ने",
        "right-userrights-interwiki": "अरु विकिहरुमा प्रयोगकर्ताहरुको अधिकार सम्पादन गर्ने",
        "right-siteadmin": "डेटाबेसको ताल्चामार्ने र ताल्चाखोल्ने",
-       "right-override-export-depth": "à¤\97हिराà¤\87 à¥« à¤¸à¤®à¥\8dमà¤\95à¥\8b à¤²à¤¿à¤\82à¤\95 à¤\97रिà¤\8fà¤\95ा à¤ªà¥\83षà¥\8dठहरà¥\81 सहित निर्यात गर्ने",
+       "right-override-export-depth": "à¤\97हिराà¤\87 à¥« à¤¸à¤®à¥\8dमà¤\95à¥\8b à¤²à¤¿à¤\82à¤\95 à¤\97रिà¤\8fà¤\95ा à¤ªà¥\83षà¥\8dठहरà¥\82 सहित निर्यात गर्ने",
        "right-sendemail": "अन्य प्रयोगकर्ताहरुलाई इमेल गर्ने",
        "right-passwordreset": "पासवर्ड परिवर्तन गर्ने ईमेलहरु हेर्नुहोस",
+       "right-managechangetags": "डाटाबेसबाट [[Special:Tags|tags]] बनाउने र हटाउने",
+       "right-applychangetags": "एकको परिवर्तन सहित [[Special:Tags|tags]] लागु गर्ने",
+       "right-changetags": "जोड्ने र हटाउने स्वतन्त्र [[Special:Tags|ट्याग]] व्यक्तिगत अवतरणहरू र लग इन्ट्रीहरूमा",
        "newuserlogpage": "प्रयोगकर्ता श्रृजना लग",
        "newuserlogpagetext": "यो प्रयोगकर्ता सिर्जनाको लग हो ।",
        "rightslog": "प्रयोगकर्ता अधिकार लग",
-       "rightslogtext": "यà¥\8b à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता à¤\85धिà¤\95ारहरà¥\81को परिवर्तन लग हो ।",
+       "rightslogtext": "यà¥\8b à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता à¤\85धिà¤\95ारहरà¥\82को परिवर्तन लग हो ।",
        "action-read": "यो पृष्ठ पढ्ने",
        "action-edit": "यो पृष्ठ सम्पादन गर्ने",
        "action-createpage": "यो पृष्ठ सृजना गर्ने",
        "action-createtalk": "छलफल पृष्ठ सृजना गर्ने",
        "action-createaccount": "यो प्रयोगकर्ताखाता बनाउने",
+       "action-history": "यस पृष्ठको इतिहास हेर्ने",
        "action-minoredit": "यस सम्पादनलाई साधारणको रुपमा चिनो लगाउने",
        "action-move": "यो पृष्ठलाई सर्ने",
        "action-move-subpages": "यो पृष्ठ र यसका सह पृष्ठहरुलाई सर्ने",
        "action-move-rootuserpages": "मूल प्रयोगकर्ता पृष्ठहरू सार्ने",
+       "action-move-categorypages": "श्रेणी पृष्ठ सार्ने",
        "action-movefile": "यो फाइल सार्ने",
        "action-upload": "यो फाइल अपलोड गर्ने",
        "action-reupload": "रहिआएको फाइल अधिलेखन गर्ने",
        "action-suppressionlog": "यो व्यक्तिगत लग हेर्ने",
        "action-block": "यो प्रयोगकर्तालाई सम्पादन गर्नबाट रोक्ने",
        "action-protect": "यो पृष्ठको सुरक्षा स्तर परिवर्तन गर्ने",
+       "action-rollback": "कुनै पृष्ठको अन्तिम सम्पादन गर्ने प्रयोगकर्ताको सम्पादन तुरुन्तै पूर्ववत गर्ने",
        "action-import": "पृष्ठहरू अर्को विकिबाट आयात गर्नुहोस्",
        "action-importupload": "पृष्ठहरू फाइल उर्ध्वभरणबाट आयात गर्ने",
        "action-patrol": "अरुको सम्पादनलाई निगरानीको चिन्ह लगाउने",
        "action-viewmywatchlist": "तपाईँको निगरानी सुची हेर्नुहोस",
        "action-viewmyprivateinfo": "तपाईँको व्यक्तिगत जानकारी हेर्नुहोस",
        "action-editmyprivateinfo": "तपाईँको व्यक्तिगत जानकारी सम्पादन गर्नुहोस",
-       "nchanges": "$1 {{PLURAL:$1|परिवर्तन|परिवर्तनहरु}}",
+       "action-editcontentmodel": "पृष्ठको सामग्री नमुना सम्पादन",
+       "action-managechangetags": "डाटाबेसबाट ट्यागहरू बनाउने र मेटाउने",
+       "action-applychangetags": "तपाईको परिवर्तनसँगै ट्यागहरू लागु गर्ने",
+       "action-changetags": "जोड्ने र हटाउने स्वतन्त्र ट्याग व्यक्तिगत अवतरणहरू र लग इन्ट्रीहरूमा",
+       "nchanges": "$1 {{PLURAL:$1|परिवर्तन|परिवर्तनहरू}}",
+       "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|पछिल्लो भ्रमण पछि}}",
        "enhancedrc-history": "इतिहास",
        "recentchanges": "नयाँ परिवर्तनहरू",
-       "recentchanges-legend": "हालैको परिवर्तन विकल्पहरु",
-       "recentchanges-summary": "विकिका भर्खरका परिवर्तनहरुलाई यस पृष्ठमा पहिल्याउने",
+       "recentchanges-legend": "हालैको परिवर्तन विकल्पहरू",
+       "recentchanges-summary": "विकिका भर्खरका परिवर्तनहरूलाई यस पृष्ठमा पहिल्याउने",
+       "recentchanges-noresult": "दिइएको मापदण्ड अवधिमा मिल्दो कुनै परिवर्तन छैन।",
        "recentchanges-feed-description": "यो फिडमा रहेको विकीको सवैभन्दा अन्तिम परिवर्तनहरुको जानकारी राख्नुहोस्",
        "recentchanges-label-newpage": "यो सम्पादनले नयाँ पृष्ठ निर्माण गरेको छ",
        "recentchanges-label-minor": "यो साधारण सम्पादन हो",
        "recentchanges-label-bot": "यो सम्पादन बोटद्वारा गरिएको थियो",
        "recentchanges-label-unpatrolled": "यो सम्पादन अहिले सम्म गस्ती गरिएको छैन",
+       "recentchanges-label-plusminus": "यति बाइटहरू संख्याले पृष्ठको आकार परिवर्तन भएको छ",
        "recentchanges-legend-heading": "'''आदर्श वाक्य:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|list of new pages]] यो पनि हेर्नुहोस्)",
        "recentchanges-legend-plusminus": "(''±१२३'')",
-       "rcnotefrom": "'''$2''' देखिका परिवर्तनहरु तल ('''$1''' सम्मका देखाइन्छ)।",
+       "rcnotefrom": "तल <strong>$2</strong> देखि (<strong>$1</strong> सम्म) {{PLURAL:$5|भएका परिवर्तनहरू देखाइएको छ|भएका परिवर्तनहरू देखाइन्छ}}।",
        "rclistfrom": "$3 $2 देखिका नयाँ परिवर्तनहरू देखाउनु",
        "rcshowhideminor": "$1 सामान्य सम्पादन",
        "rcshowhideminor-show": "देखाउनुहोस्",
        "recentchangeslinked-feed": "सम्बन्धित परिवर्तनहरू",
        "recentchangeslinked-toolbox": "सम्बन्धित परिवर्तनहरू",
        "recentchangeslinked-title": "\"$1\" सँग सम्बन्धित परिवर्तन",
-       "recentchangeslinked-summary": "यà¥\8b à¤¸à¥\82à¤\9aà¥\80 à¤¨à¤¿à¤°à¥\8dदिषà¥\8dà¤\9f à¤ªà¥\83षà¥\8dठ (वा à¤¨à¤¿à¤°à¥\8dदिषà¥\8dà¤\9f à¤¶à¥\8dरà¥\87णà¥\80)सित à¤\9cà¥\8bडिà¤\8fà¤\95ा à¤­à¤°à¥\8dà¤\96रà¥\88 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤­à¤\8fà¤\95ा à¤ªà¥\83षà¥\8dठà¤\95à¥\8b  à¤¹à¥\8b। [[Special:Watchlist|तपाà¤\88à¤\81à¤\95à¥\8b à¤§à¥\8dयानसà¥\82à¤\9aà¥\80]]à¤\95ा à¤ªà¥\83षà¥\8dठहरà¥\81 <strong>गाढा अक्षरमा</strong> छन्।",
+       "recentchangeslinked-summary": "यà¥\8b à¤¸à¥\82à¤\9aà¥\80 à¤¨à¤¿à¤°à¥\8dदिषà¥\8dà¤\9f à¤ªà¥\83षà¥\8dठ (वा à¤¨à¤¿à¤°à¥\8dदिषà¥\8dà¤\9f à¤¶à¥\8dरà¥\87णà¥\80)सित à¤\9cà¥\8bडिà¤\8fà¤\95ा à¤­à¤°à¥\8dà¤\96रà¥\88 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤­à¤\8fà¤\95ा à¤ªà¥\83षà¥\8dठà¤\95à¥\8b  à¤¹à¥\8b। [[Special:Watchlist|तपाà¤\88à¤\81à¤\95à¥\8b à¤¨à¤¿à¤\97रानà¥\80 à¤¸à¥\82à¤\9aà¥\80]]à¤\95ा à¤ªà¥\83षà¥\8dठहरà¥\82 <strong>गाढा अक्षरमा</strong> छन्।",
        "recentchangeslinked-page": "पृष्ठ नाम:",
        "recentchangeslinked-to": "यसको सट्टा यो पृष्ठसँग जोडिएका पृष्ठहरुको परिवर्तन देखाउने",
        "upload": "फाइल उर्ध्वभरण",
        "filetype-mime-mismatch": "\".$1\" फाइल विस्तार  पाइएको फाइल ($2)को MIME प्रकारसित मेल खाँदैन।",
        "filetype-badmime": "MIME \"$1\" प्रकारको फाइल उर्ध्वभरण गर्ने अनुमति छैन।",
        "filetype-bad-ie-mime": "यो फाइल उर्ध्वभरण गर्न सकिएन किनभनें '''इण्टरनेट एक्स्प्लोरर'''ले यस फाइललाई \"$1\" बतायो जसलाई संभावित खतरनाक प्रकारको फाइल मानियो।",
-       "filetype-unwanted-type": "'''\".$1\"''' फाइल नचाहिने प्रकारको फाइल हो।\nमुख्यतया {{PLURAL:$3|फाइलको प्रकार हो|फाइलका प्रकार हुन्}} $2.",
+       "filetype-unwanted-type": "<strong>\".$1\"</strong> फाइल नचाहिने प्रकारको फाइल हो।\nमुख्यतया {{PLURAL:$3|फाइलको प्रकार हो|फाइलका प्रकार हुन्}} $2।",
+       "filetype-banned-type": "<strong>\".$1\"</strong> फाइल {{PLURAL:$4|प्रकार|प्रकारहरू}} को अनुमति छैन।\nफाइल प्रकार {{PLURAL:$3|जसको|जुनको}} अनुमति छ: $2।",
        "filetype-missing": "फाइलको एक्स्टेन्शन छैन (उदा- \".jpg\")।",
        "empty-file": "तपाईंले बुझाएको फाइल खालि छ।",
        "file-too-large": "तपाईंले बुझाएको फाइल अति ठूलो छ।",
        "emptyfile": "तपाईले उर्ध्वभरण गर्नुभएको फाइल रित्तो छ।\nयो फाइलनाम गलत राखिएको कारणले भएको हुनसक्छ\nयो फाइल साच्चै उर्ध्वभरण गर्नेकुरामा निश्चित हुनुहोस् ।",
        "windows-nonascii-filename": "विशेष वर्ण सहितका फाइलनामहरु यस विकिद्वारा समर्थित छैनन् ।",
        "fileexists": "यो नामको फाइल पहिले नैं छ, यदि तपाईं परिवर्तन गर्ने कुरामा सुनिश्चित हुनुहुन्न भनें कृपया <strong>[[:$1]]</strong> जाँच गर्नुहोस्।\n[[$1|thumb]]",
-       "fileexists-extension": "यहि नामको एउटा फाइल पहिलेदेखि नैं छ: [[$2|thumb]]\n* उर्ध्वभरण हुँदै गरेको पाइलको नाम: <strong>[[:$1]]</strong>\n* पहिलेदेखि नैं भएको पाइअलको नाम: <strong>[[:$2]]</strong>\nकृपया अर्कै नाम रोज्नुहोस्।",
-       "file-exists-duplicate": "यस फाइल निम्न{{PLURAL:$1|फाइल|फाइलहरुको}}दुरुस्त नक्कल हो:",
+       "filepageexists": "यस फाइलको लागि विवरण पृष्ठ पहिले नै <strong>[[:$1]]</strong> बनाइ सकिएको छ, तर यस नामको कुनै फाइल अहिले उपस्थित छैन। \nतपाईं जुन विवरण दिनुहुन्छ त्यो विवरण पृष्ठमा देखिंदैन। \nतपाईंको आफ्नो विवरणलाई त्यहाँ राख्न म्यानुअली सम्पादन गर्नु पर्नेछ।\n[[$1|thumb]]",
+       "fileexists-extension": "यहि नामको एउटा फाइल पहिलेदेखि नैं छ: [[$2|thumb]]\n* उर्ध्वभरण हुँदै गरेको फाइलको नाम: <strong>[[:$1]]</strong>\n* पहिलेदेखि नैं भएको फाइलको नाम: <strong>[[:$2]]</strong>\nकृपया अर्कै नाम रोज्नुहोस्।",
+       "fileexists-thumbnail-yes": "यो फाइल ठुलो चित्रको सानो आकार ''(थम्बनेल)'' जस्तो देखिन्छ। [[$1|thumb]]\n<strong>[[:$1]]</strong> फाइललाई हेर्ने।\nयदि जाँच गरिएको फाइल यसै आकारको छ भने सानो आकारको फाइल अपलोड गर्ने आवश्यकता छैन।",
+       "file-thumbnail-no": "यस फाइलको नाम <strong>$1</strong> देखि शुरू भइरहेको छ।\nयो आकार घटाइएको ''(थम्बनेल)'' हुन सक्छ।\nयदि यो चित्र आफ्नो मूल आकारमा छ भने यसलाई अपलोड गर्नुहोस, छैन भने कृपया फाइल परिवर्तन गर्नुहोस।",
+       "fileexists-forbidden": "यस नामको फाइल पहिले नै छ, र यसको स्थानमा अझै अपलोड गर्न सकिंदैन।\nयदि तपाईं यस फाइललाई फेरी पनि अपलोड गर्न चाहनुहुन्छ, भने कृपया पछाडी गएर यसको लागि कुनै अन्य नाम छान्नुहोस्।\n[[File:$1|thumb|center|$1]]",
+       "fileexists-shared-forbidden": "यस नामको फाइल साझा फाइल भण्डारमा पहिले नै छ।\nयदि तपाईं यस फाइललाई फेरी पनि अपलोड गर्न चाहनुहुन्छ, भने कृपया पछाडी गएर यसको लागि कुनै अन्य नाम छान्नुहोस्।\n[[File:$1|thumb|center|$1]]",
+       "file-exists-duplicate": "यस फाइल निम्न{{PLURAL:$1|फाइल|फाइलहरूको}}दुरुस्त नक्कल हो:",
+       "file-deleted-duplicate": "यसै फाइल ([[:$1]]) देखि मिल्ने एक फाइल हटाइ सकिएको छ।\nयसलाई फेरी देखि अपलोड गर्नुभन्दा पहिले तपाईंले पुरानो फाइलको हटाइएको इतिहास हेर्दा राम्रो हुन्छ।",
+       "file-deleted-duplicate-notitle": "यसभन्दा पहिले यस फाइलको समान एक फाइल हटाइ सकिएको छ, र शीर्षक लुकाइएको छ।\nयसलाई फेरी देखि अपलोड गर्नु भन्दा पहिले तपाईं कुनै यस्तो व्यक्तिसँग स्थितिको समीक्षा गर्न भन्नुहोस जोसँग लुकाइएको फाइलको डेटा हेर्ने क्षमता छ।",
        "uploadwarning": "उर्ध्वभरण चेतावनी",
        "uploadwarning-text": "कृपया तल फाइलको वर्णन परिवर्तन गर्नुहोस र पुन: प्रयास गर्नुहोस् ।",
        "savefile": "फाइल बचत गर्नुहोस्",
        "copyuploaddisabled": " URL प्रयोग गरी उर्ध्वभरण निश्कृय पारिएको छ।",
        "uploaddisabledtext": "फाइल उर्ध्वभरण अक्षम पारिएकोछ",
        "php-uploaddisabledtext": "PHP मा फाइल उर्ध्वभरण अक्षम गरिएकोछ।\nकृपया फाइल उर्ध्वभरण व्यवस्था(setting) जाँच्नुहोस्।",
+       "uploadscripted": "यस फाइलमा एचटीएमयल वा स्क्रिप्ट कोड छ, जुन वेब ब्राउजरद्वारा गलत पढ्न सकिनेछ।",
+       "uploadscriptednamespace": "यो एसभिजी फाइलमा गैह्रकानुनी नेमस्पेस \"$1\" रहेको छ ।",
+       "uploadinvalidxml": "अपलोड गरिएको फाइलमा रहेको एक्सयमयल पार्स गर्न सकिंदैन।",
        "uploadvirus": "फाइलमा भाइरस छ!\nविवरण:$1",
+       "uploadjava": "यो फाइल एक जिप फाइल हो जसमा एउटा जाभा .class फाइल छ।\nजाभा फाइलहरू अपलोड गर्नु बन्देज छ, किनकि यसको कारण सुरक्षा बाधाहरू पार गर्न सकिन्छ।",
        "upload-source": "स्रोत फाइल",
        "sourcefilename": "स्रोत फाइलनाम :",
        "sourceurl": "स्रोत URL:",
        "upload-description": "फाइल वर्णन",
        "upload-options": "उर्ध्वभरण विकल्पहरु",
        "watchthisupload": "यो पृष्ठ निगरानी गर्नुहोस्",
+       "filewasdeleted": "यस नामको एक फाइल पहिले पनि अपलोड गरे पछि हटाई सकिएको छ।\nपुन अपलोड गर्नु पूर्व तपाईं $1 लाई राम्रो सँग जाँच गर्नुहोला।",
+       "filename-bad-prefix": "तपाईं जुन फाइल अपलोड गर्दै हुनुहुन्छ त्यसको नाम <strong>\"$1\"</strong>बाट शुरू हुन्छ, जुन डिजिटल क्यामराद्वारा दिइएको नाम हो।\nकृपया यस फाइलको लागि कुनै दोश्रो अधिक जानकारीयुक्त नाम छान्नुहोस्।",
        "upload-success-subj": "उर्ध्वभरण सफल",
        "upload-success-msg": "[$2]बाट त्पाईंको उर्ध्वभरण सफल भयो। त्यो यहाँ पाउन सकिनेछ: [[:{{ns:file}}:$1]]",
        "upload-failure-subj": "उर्ध्वभरण समस्या",
        "upload-failure-msg": "तपाईंको उर्ध्वभरण [$2]बाट समस्या आएकोछ:\n\n$1",
        "upload-warning-subj": "उर्ध्वभरण चेतावनी",
+       "upload-warning-msg": "तपाईंको [$2] अपलोड सँग एक समस्या थियो। तपाईं यस समस्यालाई ठिक गर्नका लागि [[Special:Upload/stash/$1|अपलोड फ़र्म]]मा फर्किन सक्नुहुन्छ।",
        "upload-proto-error": "दूषित प्रोटोकल",
        "upload-proto-error-text": "दुर उर्ध्वभरण ठेगाना URLs  <code>http://</code> or <code>ftp://</code> बाट सुरु भएको हुनु पर्छ ।",
        "upload-file-error": "आन्तरिक त्रुटि",
+       "upload-file-error-text": "सर्भरमा अस्थायी फाइल बनाउदा समय आन्तरिक त्रुटि आयो।\nकृपया कुनै [[Special:ListUsers/sysop|प्रवन्धक]]सँग सम्पर्क गर्नुहोस।",
        "upload-misc-error": "अज्ञात अपलोड त्रुटि",
-       "upload-too-many-redirects": "यस URL मा धेरै पुननिर्देशनहरु छन् ।",
+       "upload-misc-error-text": "अपलोडको समयमा कुनै अज्ञात त्रुटि आयो।\nकृपया यो पुष्टि गर्नुस कि युआरयल मान्य छ र त्यस सम्म पुग्न सकिन्छ, त्यस पछि पुन प्रयास गर्नुहोला।\nयदि फेरी पनि समस्या आयो भने कुनै [[Special:ListUsers/sysop|प्रवन्धक]]सँग सम्पर्क गर्नुहोस।",
+       "upload-too-many-redirects": "यस युआरयलमा धेरै पुननिर्देशनहरू छन्",
        "upload-http-error": "HTTP त्रुटि भयो: $1",
+       "upload-copy-upload-invalid-domain": "यस डोमेनबाट अपलोडहरूको प्रतिलिपि गर्न सकिदैन् ।",
+       "backend-fail-stream": "फाइल ''$1'' प्रवाह गर्न सकिएन ।",
+       "backend-fail-backup": "फाइल ''$1'' जगेडा संग्रह गर्न सकिएन ।",
+       "backend-fail-notexists": "फाइल $1 पृष्ठ अस्तित्वमा छैन ।",
+       "backend-fail-hashes": "तुलनाको लागी फाइल ह्यासेस्हरू भेटाउन सकिएन ।",
+       "backend-fail-notsame": "अमिल्दो फाइल पहिला देखिनै \"$1\" मा अवस्थित रहेको छ ।",
+       "backend-fail-invalidpath": "\"$1\" वैध भण्डारण पथ होइन।",
        "backend-fail-delete": " $1 फाइल मेट्न सकिएन ।",
+       "backend-fail-describe": "फाइल \"$1\" को लागि मेटाडेटा परिवर्तन गर्न सकिएन।",
        "backend-fail-alreadyexists": " $1 पहिके देखि नै रहेको छ ।",
        "backend-fail-store": "फाइल $1 लाई  $2 मा संग्रह गर्न सकिएन ।",
        "backend-fail-copy": "फाइल $1 लाई  $2 मा प्रतिलिपी गर्न सकिएन ।",
        "backend-fail-closetemp": "अस्थाइ फाइल बन्द गर्न सकिएन",
        "backend-fail-read": "फाइल $1 खोल्न सकिएन ।",
        "backend-fail-create": "फाइल $1 लेख्न गर्न सकिएन",
+       "backend-fail-maxsize": "फाइल \"$1\" {{PLURAL:$2|one byte|$2 bytes}} भन्दा ठूलो भएकोले फाइलमा लेख्न सकिएन ।",
+       "backend-fail-readonly": "भण्डारण ब्याकएन्ड \"$1\" यस समय मात्रै पढ्न सकिन्छ। दिइएको कारण थियो: \"<em>$2</em>\"",
+       "backend-fail-synced": "फाइल \"$1\" आन्तरिक भण्डारण ब्याकएन्डमा असङ्गत स्थितिमा छ",
+       "backend-fail-connect": "भण्डारण ब्याकइन्ड \"$1\"मा जुड्न सकिएन ।",
+       "backend-fail-internal": "भण्डारण ब्याकइन्ड \"$1\"मा अज्ञात समस्या आएको छ ।",
+       "backend-fail-contenttype": "\"$1\" भण्डारण गर्ने सामग्रीको प्रकार निर्कौल गर्न सकिएन ।",
+       "backend-fail-batchsize": "भण्डारण ब्याकएन्डलाई $1 फाइल {{PLURAL:$1|कार्य|कार्यहरू}} दिइएको थियो; {{PLURAL:$2|कार्य|कार्यहरू}} सीमा $2 कार्य गरिएको छ।",
+       "backend-fail-usable": "फाइल \"$1\" लाई पर्याप्त अनुमति वा अनुपस्थित डाइरेक्ट्रीज/कन्टेनर्सको कारण पढ्न वा लेखन सकिंदैन।",
+       "filejournal-fail-dbconnect": "भण्डारण ब्याकएन्ड \"$1\" लाई जर्नल डेटाबेससँग सम्पर्क हुन सकेन।",
+       "filejournal-fail-dbquery": "भण्डारण ब्याकएन्ड \"$1\" लाई जर्नल डेटाबेससँग अपडेट गर्न सकिएन।",
+       "lockmanager-notlocked": "\"$1\" लाई खुला गर्न सकिएन; यो बन्द छैन् ।",
+       "lockmanager-fail-closelock": "\"$1\" को लागि फाइललाई बन्द गर्न सकिएन।",
+       "lockmanager-fail-deletelock": "\"$1\" को लागी बन्द फाइललाई मेटाउन सकिएन ।",
+       "lockmanager-fail-acquirelock": "\"$1\" को लागी बन्द फाइललाई प्राप्त गर्न सकिएन ।",
+       "lockmanager-fail-openlock": "\"$1\" को लागी बन्द फाइललाई खोल्न सकिएन ।",
+       "lockmanager-fail-releaselock": "\"$1\" को लागी बन्द खुल्ला गर्न सकिएन ।",
+       "lockmanager-fail-db-bucket": "बकेट $1 मा आवश्यक संख्यामा बन्द डेटाबेससँग सम्पर्क हुन सकेन।",
+       "lockmanager-fail-db-release": "डाटाबेस \"$1\" मा बन्दहरू खुल्ला गर्न सकिएन ।",
+       "lockmanager-fail-svr-acquire": "सर्भर \"$1\" मा बन्दहरू प्राप्त गर्न सकिएन ।",
+       "lockmanager-fail-svr-release": "सर्भर \"$1\" मा बन्दहरू खुल्ला गर्न सकिएन ।",
        "zip-file-open-error": "ZIP परीक्षणको लागि फाइल खोल्दा एक त्रुटी भेटीयो ।",
        "zip-wrong-format": "खुलाइएको फाइल ZIP फाइल हैन ।",
        "zip-bad": "यो फाइल बिग्रीएको अवस्थामा छ या खोल्न नसकिने ZIP फाइल हो\nसुरक्षाको कारणले गर्दा राम्ररी जाँच गर्न सकिएन ।",
        "zip-unsupported": "यो फाइल एक ZIP फाइल हो र यसले प्रयोग गर्ने गुणहरु ,मेडियाविकिद्वारा समर्थित छैन ।\nसुरक्षाको कारणले राम्ररी जाँच गर्न सकिएन ।",
        "uploadstash": "उर्ध्वभरण स्टाश",
+       "uploadstash-summary": "यो पृष्ठ ती फाइलहरूलाई पहुँच प्रदान गर्छ जुन अपलोड गरिएको छ ‍‌‍‌(वा अपलोड प्रक्रियामा रहेको छ) तर विकिमा अहिले पनि प्रकासित गरिएको छैन। यो फाइलहरू अपलोड गरेको प्रयोगकर्ता वाहेक कसैको लागि पनि उपलब्ध छैन।",
        "uploadstash-clear": "स्टाश गरिएका फाइल हटाउने",
        "uploadstash-nofiles": "तपाईका कुनै पनि स्टाश गरिएका फाइलहरु छैनन् ।",
        "uploadstash-badtoken": "दिइएको कार्य असफलभयो , तपाईको सम्पादन अधिकार समाप्त भयो । पुन: प्रयास गर्नुहोस् ।",
        "uploadstash-errclear": "फाइल हटाउने कार्य असफल भयो ।",
        "uploadstash-refresh": "फाइलहरुको सुची ताजा पर्ने",
+       "invalid-chunk-offset": "अमान्य चंक अफसेट",
        "img-auth-accessdenied": "पहुँच अस्वीकार",
+       "img-auth-nopathinfo": "PATH_INFO छैन। तपाईंको सर्भरले यो जानकारी पठाउन सेट गरिएको छैन। यो सिजिआइ-आधारित हुन् सक्छ र img_auth लाई स्वीकार गर्दैन। https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization हेर्नुहोस।",
        "img-auth-notindir": "अनुरोध गरिएको बाटो(पाथ) उर्ध्वभरण भनि तोकिएको बाटोमा पर्दैन ।",
        "img-auth-badtitle": "\"$1\" बाट मान्य शीर्षक निर्माण गर्न सकिएन ।",
+       "img-auth-nologinnWL": "तपाईंले लग इन गर्नुभएको छैन र \"$1\" श्वेतसूचीमा छैन।",
        "img-auth-nofile": "\"$1\" फाइल छैन।",
+       "img-auth-isdir": "तपाईं डायरेक्टरी \"$1\" खोल्ने प्रयास गर्दैहुनुहुन्छ। मात्रै फाइल खोल्न सकिनेछ।",
        "img-auth-streaming": "\"$1\" बग्दै",
+       "img-auth-public": "img_auth.php निजी विकिबाट फाइलहरू प्रदान गर्ने कार्य गर्दछ। यो विकि सार्वजनिक रुपले तयार गरिएको विकि हो। उचित सुरक्षाको लागि img_auth.php अक्षम छ।",
+       "img-auth-noread": "\"$1\" पढ्नको लागी प्रयोगकर्तालाई अनुमति छैन् ।",
        "http-invalid-url": "अवैध URL: $1",
+       "http-invalid-scheme": "\"$1\" देखि सुरू हुने युआरयल स्वीकार्य छैन।",
+       "http-request-error": "एचटिटिपि अनुरोध अज्ञात त्रुटिको कारणले असफल रह्यो।",
        "http-read-error": "HTTP बुझाइमा त्रुटि।",
        "http-timed-out": "HTTP माँगिएको समय सकियो।",
        "http-curl-error": "URL $1 लिनमा त्रुटि",
+       "http-bad-status": "एचटिटिपि अनुरोधको समयमा समस्या थियो: $1 $2",
        "upload-curl-error6": "URLमा पुग्न सकिएन",
+       "upload-curl-error6-text": "दिइएको युआरयल सम्म पुग्न सकिएन। कृपया एक पटक पुन जाँच गर्नुहोस कि युआरयल सही छ र त्यो साइट चलिरहेको छ।",
        "upload-curl-error28": "अपलोड  समय समाप्त",
+       "upload-curl-error28-text": "साइटले उत्तर दिन धेरै बेर लगायो।\nकॄपया जाँच गर्नुहोस कतै साइट चल्दैछ वा चलेको छैन, केहि बेर प्रतीक्षा गरेर पुनः प्रयास गर्नुहोस।\nतपाईं शायद कम व्यस्त समयमा कोशिश गर्न चाहनुहुन्छ।",
        "license": "अनुज्ञा प्राप्त गर्दै",
        "license-header": "अनुज्ञा प्राप्त गर्दै",
        "nolicense": "केहिपनि छानिएन",
+       "licenses-edit": "लाइसेन्स सम्पादन विकल्पहरू",
        "license-nopreview": "(पूर्वरुप उपलब्ध छैन)",
+       "upload_source_url": "(तपाईंद्वारा छानिएको फाइल एक मान्य, सार्वजनिक रूपले उपलब्ध युआरयलबाट)",
        "upload_source_file": "(तपाईँले आफ्नो कम्प्युटरबाट छानेको फाइल)",
        "listfiles-delete": "मेट्ने",
        "listfiles-summary": "यस विशेष पृष्ठले उर्ध्वभरण गरिका सबै फाइलहरु देखाउँछ।",
        "listfiles_search_for": "मिडिया नामको लागि खोज्नुहोस:",
+       "listfiles-userdoesnotexist": "प्रयोगकर्ता खाता \"$1\" दर्ता गरिएको छैन।",
        "imgfile": "फाइल",
        "listfiles": "फाइल सूची",
        "listfiles_thumb": "थम्बनेल",
        "listfiles_size": "आकार",
        "listfiles_description": "वर्णन",
        "listfiles_count": "संस्करणहरु",
+       "listfiles-show-all": "चित्रहरूको पुरानो संस्करण समावेश गर्ने",
        "listfiles-latestversion": "हालको संस्करण",
        "listfiles-latestversion-yes": "हो",
        "listfiles-latestversion-no": "हैन",
        "filehist-filesize": "फाइल आकार",
        "filehist-comment": "टिप्पणी",
        "imagelinks": "फाइलको प्रयोगहरु",
-       "linkstoimage": "यस फाइलमा निम्न{{PLURAL:$1|पृष्ठ जोडिन्छ|$1 पृष्ठहरु जोडिन्छन}}:",
+       "linkstoimage": "यस फाइलमा निम्न{{PLURAL:$1|पृष्ठ जोडिन्छ|$1 पृष्ठहरू जोडिन्छन्}}:",
+       "linkstoimage-more": "$1 भन्दा अधिक {{PLURAL:$1|पृष्ठ लिङ्क|पृष्ठ लिङ्कहरू}} यस फाइलसँग जोडिएको छ। \nनिम्नलिखित सूची फाइलसँग {{PLURAL:$1|पहिलो पृष्ठ लिङ्क|पहिलो $1 पृष्ठ लिङ्कहरू}} जोडिने देखाउँछ।\n[[Special:WhatLinksHere/$2|पूर्ण सूची]] पनि उपलब्ध छ।",
        "nolinkstoimage": "यो फाईलसंग लिंकभएको कुनै पृष्ठ छैन.",
        "morelinkstoimage": "हेर्नुहोस् [[Special:WhatLinksHere/$1|थप लिंकहरु]] यो फाइलको।",
        "linkstoimage-redirect": "$1 (फाइल अनुप्रेषण) $2",
+       "duplicatesoffile": "निम्नलिखित {{PLURAL:$1|फाइलको प्रतिलिपि हो|$1 फाइलहरूको प्रतिलिपि हो}} ([[Special:FileDuplicateSearch/$2|अधिक जानकारीहरू]]):",
        "sharedupload": "यो फाइल $1 को हो र अन्य परियोजनामा प्रयोग गरिएको हुनसक्छ।",
+       "sharedupload-desc-there": "यो फाइल $1 बाट हो र अन्य परियोजनाहरू द्वारा पनि प्रयोग गर्न सकिनेछ। अधिक जानकारीको लागि कृपया [$2 फाइल विवरण पृष्ठ] हेर्नुहोस।",
+       "sharedupload-desc-here": "यो फाइल $1 बाट हो र अन्य परियोजनाहरू द्वारा पनि प्रयोग गर्न सकिन्छ। \nत्यहाँ नेर यसको [$2 फ़ाइल विवरण पृष्ठ]मा रहेको विवरण तल दिइएको छ।",
+       "sharedupload-desc-edit": "यो फाइल $1 बाट हो र अन्य परियोजनाहरू द्वारा पनि प्रयोग गर्न सकिन्छ। \nशायद तपाईं [$2 त्यहाँ यसको फाइल विवरण पृष्ठ]लाई सम्पादित गर्न चाहनुहुन्छ।",
+       "sharedupload-desc-create": "यो फाइल $1 बाट हो र अन्य परियोजनाहरू द्वारा पनि प्रयोग गर्न सकिन्छ। \nशायद तपाईं [$2 त्यहाँ यसको फाइल विवरण पृष्ठ]लाई सम्पादित गर्न चाहनुहुन्छ।",
        "filepage-nofile": "यस नामको फाइल छैन।",
        "filepage-nofile-link": "यस नामको फाइल छैन तर तपाईं [$1 यो उर्ध्वभरण गर्न सक्नुहुन्छ].",
        "uploadnewversion-linktext": "यो फाइलको नयाँ संस्करण उर्ध्वभरण गर्नुहोस् ।",
        "upload-disallowed-here": "तपाईँले यो फाइल अधिलेखन गर्न सक्नुहुन्न ।",
        "filerevert": "पूर्वस्थिति $1 मा फर्काउने",
        "filerevert-legend": " फाइल पूर्वस्थितीमा फर्काउने",
+       "filerevert-intro": "तपाईं <strong>[[Media:$1|$1]]</strong>लाई [$4 $2 मा $3 बजेको अवतरण] लाई पूर्ववत गर्दै हुनुहुन्छ।",
        "filerevert-comment": "कारण :",
        "filerevert-defaultcomment": "$2 को  $1 संस्करणमा फर्काइयो",
        "filerevert-submit": "पूर्वास्थितिमा फर्काउने",
+       "filerevert-success": "<strong>[[Media:$1|$1]]</strong> ले [$4 version as of $3, $2] मा परिवर्तनलाई उल्टाएको छ ।",
+       "filerevert-badversion": "दिइएको समयछापसँग मेल खाने यस फाइलको पुरानो अवतरण छैन।",
        "filedelete": " $1 मेट्नुहोस्",
        "filedelete-legend": "फाइल मेट्ने",
+       "filedelete-intro": "तपाईं फाइल <strong>[[Media:$1|$1]]</strong> लाई इतिहास समेत हटाउन जाँदै हुनुहुन्छ।",
+       "filedelete-intro-old": "तपाईले <strong>[[Media:$1|$1]]</strong> को संस्करणलाई [$4 $3, $2] हुने गरि मेटाउदै हुनु हुन्छ ।",
        "filedelete-comment": "कारण :",
        "filedelete-submit": "मेट्ने",
        "filedelete-success": "'''$1''' मेटियो ।",
+       "filedelete-success-old": "<strong>[[Media:$1|$1]]</strong> को संस्करणलाघ $3, $2 हुने गरि मेटाइएको छ ।",
        "filedelete-nofile": "'''$1''' अस्तित्वमा छैन ।",
+       "filedelete-nofile-old": "<strong>$1</strong> को तपाईंद्वारा दिइएको विशेषताहरू सहितको सङ्ग्रहित अवतरण छैन।",
        "filedelete-otherreason": "अन्य/थप कारणहरु:",
        "filedelete-reason-otherlist": "अरु कारण",
        "filedelete-reason-dropdown": "*मेट्नुका सामान्य कारणहरु\n** कपी राइट उल्लघन\n** सारिएको फाइल",
        "filedelete-maintenance": "रखरखाव चलिरहेको हुँदा अस्थायी रुपमा फाइलहरु मेटाउने र मेटाइएकोलाई पुनर्बहाली गर्न निष्क्रिय गरिएकोछ।",
        "filedelete-maintenance-title": "फाइल मेट्न सकिएन",
        "mimesearch": "MIME खोज",
-       "mimesearch-summary": "MIME-पà¥\8dरà¤\95ार à¤\85नà¥\81सार à¤«à¤¼à¤¾à¤\87लहरà¥\81 à¤\96à¥\8bà¤\9cà¥\8dन à¤¯à¤¸ à¤ªà¥\83षà¥\8dठà¤\95à¥\8b à¤ªà¥\8dरयà¥\8bà¤\97 à¤\97रà¥\8dन à¤¸à¤\95िनà¥\8dà¤\9b।\nà¤\87नपà¥\81à¤\9f: à¤«à¤¼ाइलको प्रकार/उपप्रकार, उदा. <code>image/jpeg</code>।",
+       "mimesearch-summary": "MIME-पà¥\8dरà¤\95ार à¤\85नà¥\81सार à¤«à¤¾à¤\87लहरà¥\81 à¤\96à¥\8bà¤\9cà¥\8dन à¤¯à¤¸ à¤ªà¥\83षà¥\8dठà¤\95à¥\8b à¤ªà¥\8dरयà¥\8bà¤\97 à¤\97रà¥\8dन à¤¸à¤\95िनà¥\8dà¤\9b।\nà¤\87नपà¥\81à¤\9f: à¤«ाइलको प्रकार/उपप्रकार, उदा. <code>image/jpeg</code>।",
        "mimetype": "MIME प्रकार:",
        "download": "डाउनलोड",
        "unwatchedpages": "ध्यान नदिइएका पृष्ठहरू",
        "listredirects": "अनुप्रेषित सूची",
+       "listduplicatedfiles": "दोरोएको फाइलहरूको सूची",
+       "listduplicatedfiles-summary": "यो एउटा यस्तो फाइलहरूको सूची हो जसको नवीनतम संस्करण दोश्रो फाइलहरूको नवीनतम संस्करणको प्रतिलिपि हो । मात्रै स्थानीय फाइलहरूलाई विचार गरिएको छ।",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]] को [[$3|{{PLURAL:$2|दोहोरो फाइल|$2 दोहोरो फाइलहरू}}]] छ ।",
        "unusedtemplates": "प्रयोग नगरिएको टेम्प्लेट",
+       "unusedtemplatestext": "यस पृष्ठमा {{ns:template}} नामस्थान भएको ती सबै पृष्ठ समावेश छन् जुन कुनै अन्य पृष्ठमा सामेल छैनन्। यसलाई हटाउनभन्दा पहिले यी ढाँचाहरूको र लिङ्कहरूलाई जाँच गर्नुहोला।",
        "unusedtemplateswlh": "अन्य कड़ीहरु",
        "randompage": "कुनै एक लेख",
        "randompage-nopages": "{{PLURAL:$2| $1 नाम भएको कुनै पृष्ट छैन|$1 नाम भएका कुनै पृष्टहरु छैनन्}}",
+       "randomincategory": "श्रेणीमा रहेको अनियमित पृष्ठ",
+       "randomincategory-invalidcategory": "''$1'' वैध श्रेणी नाम होइन ।",
+       "randomincategory-nopages": "यस [[:Category:$1|$1]] श्रेणीमा कुनै पनि पृष्ठ छैन् ।",
        "randomincategory-category": "श्रेणी:",
+       "randomincategory-legend": "श्रेणीमा अनियमित पृष्ठ",
        "randomredirect": "कुनै एउटा अनुप्रेषितमा जाने",
        "randomredirect-nopages": "\"$1\" नामस्थानमा अनुप्रेषित छैन।",
        "statistics": "तथ्यांक",
        "statistics-users": "दर्तागरिएको [[Special:ListUsers|प्रयोगकर्ताहरु]]",
        "statistics-users-active": "सकृय प्रयोगकर्ताहरु",
        "statistics-users-active-desc": "प्रयोगकर्ताहरु जो{{PLURAL:$1|बितेको एक दिन|बितेका $1 दिनहरु}}देखि  जो सक्रिय छन्",
+       "pageswithprop": "पृष्ठ विवरण सहितको पृष्ठहरू",
+       "pageswithprop-legend": "पृष्ठ विवरण सहितको पृष्ठहरू",
+       "pageswithprop-text": "यस पृष्ठ पृष्ठ गुणको उपयोग गरिरहेको पृष्ठहरूलाई सूचीबद्ध गर्दछ।",
+       "pageswithprop-prop": "विशेषता नामः",
        "pageswithprop-submit": "जाने",
+       "pageswithprop-prophidden-long": "लोमो शब्द मान मूल्य लुकाइएको ($1)",
+       "pageswithprop-prophidden-binary": "बाइनेरि मान मूल्य लुकाइएको ($1)",
        "doubleredirects": "दोहोरो अनुप्रेषण",
-       "double-redirect-fixed-move": "[[$1]] सारिएको छ।\nयसले [[$2]] तिर अनुप्रेषित गर्दछ।",
-       "double-redirect-fixed-maintenance": "[[$1]]बाट [[$2]]मा दोहोरो अनुप्रेषण तय गरिंदै।",
+       "doubleredirectstext": "यो पृष्ठ ती पृष्ठहरूको सूची दिन्छ जुन अन्य पुनर्निर्देशित पृष्ठहरू तिर पुनर्निर्देशित छ। प्रत्येक पङ्क्तिमा पहिलो र दोश्रो पुनर्निर्देशनको लिङ्कहरू, तथा दोश्रो पुनर्निर्देशनको लक्ष्य पनि छ, सामान्यत यहि \"वास्तविक\" लक्ष्यित पृष्ठ हुनेछ, र पहिलो पुनर्देशन वास्तवमा यसैको लक्षित हुनु पर्नेछ। <del>काटिएको</del> प्रविष्टिहरू समाधान गरिएको छ।",
+       "double-redirect-fixed-move": "[[$1]] सारिएको छ।\nयसले स्वत [[$2]] तिर अनुप्रेषित गर्दछ।",
+       "double-redirect-fixed-maintenance": "[[$1]]बाट [[$2]]मा दोहोरो अनुप्रेषण स्वत तय गरिंदै।",
        "double-redirect-fixer": "अनुप्रेषण तय गर्ने",
        "brokenredirects": "टुटेका रिडाइरेक्टहरू",
        "brokenredirectstext": "तलका लिङ्कहरु ले हुदै नभएका पृष्ठहररसँग जोडिन्छन्:",
        "fewestrevisions": "थोरै पुनरावलोकन भएका पृष्ठहरू",
        "nbytes": "$1 {{PLURAL:$1|बाइट|बाइटहरू}}",
        "ncategories": "$1 {{PLURAL:$1|श्रेणी|श्रेणीहरू}}",
+       "ninterwikis": "$1 {{PLURAL:$1|अन्तरविकि|अन्तरविकिहरू}}",
        "nlinks": "$1 {{PLURAL:$1|लिंक|लिंकहरु}}",
        "nmembers": "$1 {{PLURAL:$1|सदस्य|सदस्यहरू}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|सदस्य|सदस्यहरू}}",
        "nrevisions": "$1 {{PLURAL:$1|पुनरावलोकन|पुनरावलोकनहरु}}",
        "nviews": "$1 {{PLURAL:$1|अवलोकन|अवलोकनहरु}}",
        "nimagelinks": "$1 {{PLURAL:$1|पृष्ठ|पृष्ठहरु}}माथि प्रयोग गरिएको",
        "ntransclusions": "$1 {{PLURAL:$1पृष्ठमा प्रयोग गरिएको|पृष्ठहरुमा प्रयोग गरिएका}}",
        "specialpage-empty": "यो पृष्ठ खाली छ।",
        "lonelypages": "अनाथ पृष्ठहरू",
+       "lonelypagestext": "निम्नलिखित पृष्ठ देखि न त कुनै {{SITENAME}}को अन्य पृष्ठ जोडिएको छ र न त कुनै अन्य पृष्ठ ट्रान्सक्ल्युडेड नै छ।",
        "uncategorizedpages": "श्रेणीकरण नभएका पृष्ठहरू",
        "uncategorizedcategories": "श्रेणीकरण नभएका श्रेणीहरू",
        "uncategorizedimages": "श्रेणीकरण नभएका फाइलहरु",
        "unusedimages": "प्रयोग नभएका फाइलहरु",
        "wantedcategories": "माग भएका श्रेणीहरू",
        "wantedpages": "खोजिएका पृष्ठहरू",
+       "wantedpages-summary": "जुन अनुपस्थित पृष्ठहरूको सूचीमा त्यससँग जोडिएको धेरै लिङ्कहरू छन् वाहेक त्यस पृष्ठहरू जसमा मात्रै अनुप्रेषित लिङ्कहरू जोडिन्छ। अनुपस्थित पृष्ठहरूको सूचीको लागि जसमा मात्रै अनुप्रेषित लिङ्कहरू जोडिन्छ, हेर्नुहोस [[{{#special:BrokenRedirects}}|टुटेको अनुप्रेषणहरूको सूची]]।",
        "wantedpages-badtitle": "नतिजा सूचीमा अमान्य शीर्षक:$1",
        "wantedfiles": "माग भएका फाइलहरु",
+       "wantedfiletext-cat": "निम्न फाइलहरू प्रयोगमा छन् तर यहाँ छैन । वाह्य भन्डारहरूको फाइलहरू उपस्थित भए पनि सूचीमा हुन सक्छ। यस्तो कुनै पनि गलत प्रविष्टिहरू <del>काटिएको हुनेछ</del>। साथै, जुन पृष्ठ यस फाइलको प्रयोग गरिरहेको छ तर यहाँ छैन, त्यसको सूची [[:$1]]मा छ।",
+       "wantedfiletext-cat-noforeign": "निम्नलिखित फाइल प्रयोगमा छ तर यहाँ छैन। यस अतिरिक्त, पृष्ठ जुन यस गैर-अवस्थित फाइलहरूलाई सङ्ग्रह गरेका छन् त्यसको सूची [[:$1]]मा छ।",
+       "wantedfiletext-nocat": "निम्न फाइलहरू प्रयोगमा छन् तर यहाँ छैन । वाह्य भण्डारहरूको फाइलहरू उपस्थित भए पनि सूचीमा हुन सक्छ। यस्तो कुनै पनि गलत प्रविष्टिहरू <del>काटिएको हुनेछ</del>।",
+       "wantedfiletext-nocat-noforeign": "तलका फाइलहरू प्रयोगमा भए पनि उपलब्ध छैन् ।",
        "wantedtemplates": "माग भएका टेम्प्लेटहरु",
        "mostlinked": "सबैभन्दा बढि लिंक भएको पृष्ठ",
        "mostlinkedcategories": "सबैभन्दा बढी लिंक भएका श्रेणीहरू",
        "mostimages": "सबैभन्दा बढि लिंक भएको चित्र",
        "mostinterwikis": "सबैभन्दा धेरै इन्टरविकि भएका पृष्ठहरू",
        "mostrevisions": "सबैभन्दा बढी संशोधित लेखहरू",
-       "prefixindex": "प्रिफिक्स सहितका पृष्ठहरु",
+       "prefixindex": "प्रिफिक्स सहितका पृष्ठहरू",
+       "prefixindex-namespace": "उपसर्ग सहितका सम्पूर्ण पृष्ठहरू ($1 नेमस्पेस)",
+       "prefixindex-strip": "सूचीमा स्ट्रिप उपसर्ग",
        "shortpages": "छोटा पृष्ठहरू",
        "longpages": "लामा पृष्ठहरू",
        "deadendpages": "म्याद सकिेएका पृष्ठहरू",
-       "deadendpagestext": "निमà¥\8dन à¤ªà¥\83षà¥\8dठहरà¥\81 {{SITENAME}}मा à¤°à¤¹à¥\87à¤\95ा à¤\85रà¥\81 à¤ªà¥\83षà¥\8dठहरà¥\81सँग जोडिदैनन् ।",
+       "deadendpagestext": "निमà¥\8dन à¤ªà¥\83षà¥\8dठहरà¥\82 {{SITENAME}}मा à¤°à¤¹à¥\87à¤\95ा à¤\85रà¥\81 à¤ªà¥\83षà¥\8dठहरà¥\82सँग जोडिदैनन् ।",
        "protectedpages": "संरक्षित पृष्ठहरू",
        "protectedpages-indef": "नखुलेको सुरक्षा मात्र",
+       "protectedpages-summary": "यो पृष्ठ ती सबै पृष्ठहरूको सूची दिन्छ जुन अब सुरक्षित छन्। ती सबै शीर्षकहरूको सूची जान्नका लागि जुन बनाउनबाट सुरक्षित गरिएका छन्, हेर्नुहोस [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]]।",
        "protectedpages-cascade": "लामबद्ध सुरक्षाहरु मात्रा",
        "protectedpages-noredirect": "अनुप्रेषण लुकाउने",
-       "protectedpagesempty": "दिà¤\87à¤\8fà¤\95à¥\8b à¤ªà¥\8dयारामिà¤\9fर à¤ªà¥\8dरयà¥\8bà¤\97 à¤\97रि à¤¸à¥\81रà¤\95à¥\8dषा à¤\97रिà¤\8fà¤\95ा à¤ªà¥\83षà¥\8dठहरà¥\81 छैनन् ।",
+       "protectedpagesempty": "दिà¤\87à¤\8fà¤\95à¥\8b à¤ªà¥\8dयारामिà¤\9fर à¤ªà¥\8dरयà¥\8bà¤\97 à¤\97रि à¤¸à¥\81रà¤\95à¥\8dषा à¤\97रिà¤\8fà¤\95ा à¤ªà¥\83षà¥\8dठहरà¥\82 छैनन् ।",
        "protectedpages-timestamp": "समय चिन्ह",
        "protectedpages-page": "पृष्ठ",
        "protectedpages-expiry": "सकिनेछ",
        "protectedpages-unknown-timestamp": "अज्ञात",
        "protectedpages-unknown-performer": "अज्ञात प्रयोगकर्ता",
        "protectedtitles": "सुरक्षा गरिएका शिर्षकहरु",
+       "protectedtitles-summary": "यो पृष्ठ ती सबै पृष्ठहरूको सूची दिन्छ जुन अब सुरक्षित छन्। ती सबै पृष्ठहरूको सूची जान्नका लागि जुन बनाउनबाट सुरक्षित गरिएका छन्, हेर्नुहोस [[{{#special:ProtectedPages}}|{{int:protectedpages}}]]",
        "protectedtitlesempty": "दिइएको प्यारामिटर प्रयोग गरि सुरक्षा गरिएका शीर्षकहरु छैनन् ।",
        "listusers": "प्रयोगकर्ता सूची",
        "listusers-editsonly": "सम्पादन गरेका प्रयोगकर्तामात्र देखाउने",
        "listusers-creationsort": "सृजना मिति अनुसार क्रमवद्ध गर्ने",
+       "listusers-desc": "घट्दो क्रमबध्द अनुसार मिलाउने",
        "usereditcount": "$1 {{PLURAL:$1|सम्पादन|सम्पादनहरु}}",
        "usercreated": " $1को $2 मा {{GENDER:$3|सृजना}} गरिएको",
        "newpages": "नयाँ पृष्ठहरू",
        "ancientpages": "सबैभन्दा पुराना पृष्ठहरू",
        "move": "सार्ने",
        "movethispage": "यो पृष्ठ सार्नुहोस्",
+       "unusedimagestext": "निम्न फाइलहरू छन्, तर कुनै पनि पृष्ठमा प्रयोग गरिएको छैन। कृपया ध्यान दें कि अन्य वेबसाइट एउटा सिधै लिङ्कको फाइलसँग जोड्न सकिन्छ, र सक्रिय उपयोगमा हुँदा पनि यहाँ देखाउन सकिन्छ।",
+       "unusedcategoriestext": "तल श्रेणीका पृष्ठहरू उपलब्ध भएता पनि उक्त पृष्ठहरूलाई अन्य पृष्ठहरू तथा श्रेणीले प्रयोग गर्न सक्दैनन् ।",
        "notargettitle": "कुनैपनि निसाना(टारगेट) छैन",
+       "notargettext": "यो कार्यको लागी तपाईले कुनै लक्ष्यित पृष्ठ वा प्रयोगकर्ता निर्दिष्ट गर्नु भएको छैन् ।",
        "nopagetitle": "त्यस्तो गन्तव्या पृष्ठ भेटिएन",
        "nopagetext": "तपाईले खुलाउनु भएको गन्तव्य पृष्ठ अस्तित्वमा  छैन।",
        "pager-newer-n": "{{PLURAL:$1|नयाँ १|नयाँ $1}}",
        "pager-older-n": "{{PLURAL:$1|पुरानो १|पुरानो $1}}",
        "suppress": "अतिदृष्टि",
+       "querypage-disabled": "यो विशेष पृष्ठलाई कार्यसम्पादनको कारणहरूले गर्दा निस्क्रिय गरिएको छ ।",
+       "apihelp": "एपिआइ सहायता",
+       "apihelp-no-such-module": "मोड्युल \"$1\" भेटिएन ।",
        "booksources": "किताबका श्रोतहरु",
        "booksources-search-legend": "किताबका श्रोतहरु खोज्ने",
        "booksources-search": "खोज",
+       "booksources-text": "तल दिइएको सूची नयाँ तथा पूराना किताब बेच्ने लगायत तपाईले खोज्नु भएको किताबका बारेमा थप जानकारी भएको अन्य साइटका कडिहरू हुन् ।",
+       "booksources-invalid-isbn": "यो आइएसबीएन सहि छैन; मूल स्रोतबाट नक्कल गर्दा भएको त्रुटिको जाँच गर्नुहोस।",
        "specialloguserlabel": "निष्पादक:",
        "speciallogtitlelabel": "लक्ष्य (शीर्षक वा प्रयोगकर्ता)",
-       "log": "लगहरु",
-       "all-logs-page": "सबै सार्वजनिक लगहरु",
+       "log": "लगहरू",
+       "all-logs-page": "सबै सार्वजनिक लगहरू",
+       "alllogstext": "{{SITENAME}}को सबै उपलब्ध लगहरूको प्रविष्टिहरूको मिल्दो जुल्दो प्रदर्शन। \nतपाईं अझै विस्तारको लागि लगको प्रकार, प्रयोगकर्ता नाम (अक्षर संवेदनशील), वा प्रभावित पृष्ठ (अक्षर संवेदनशील) छान्न सक्नुहुन्छ।",
        "logempty": "लगमा मिल्ने वस्तु भेटिएन ।",
        "log-title-wildcard": "पाठबाट सुरुहुने शीर्षकहरु खोज्नुहोस्",
+       "showhideselectedlogentries": "चयन गरिएका लग प्रविष्टिहरूको दृश्यता परिवर्तन गर्ने",
+       "log-edit-tags": "चयन गरिएको लग प्रविष्टिहरूको ट्यागहरू सम्पादन",
        "allpages": "सबै पृष्ठहरू",
        "nextpage": "अर्को पृष्ठ ($1)",
        "prevpage": "पहिलो पृष्ठ ($1)",
        "allarticles": "सबै लेखहरू",
        "allinnamespace": "सबै पृष्ठहरू ($1 नेमस्पेस)",
        "allpagessubmit": "जाने",
-       "allpagesprefix": "यà¥\80 à¤¸à¥\81रà¥\81à¤\95ा à¤\85à¤\95à¥\8dषरसहितà¤\95ा à¤ªà¥\83षà¥\8dठहरà¥\81 हेर्ने:",
+       "allpagesprefix": "यà¥\80 à¤¸à¥\81रà¥\81à¤\95ा à¤\85à¤\95à¥\8dषरसहितà¤\95ा à¤ªà¥\83षà¥\8dठहरà¥\82 हेर्ने:",
        "allpagesbadtitle": "दिएको पृष्ठ शीर्षक अमान्य, खाली वा गलत रुपमा अन्तर भाषा वा अन्तर विकी सम्बन्ध गरिएको थियो।  \nयसमा शीर्षकमा प्रयोग गर्न नमिल्ने एक वा बढी अक्षरहरू रहेका हुनसक्छन् ।",
        "allpages-bad-ns": "{{SITENAME}} को नामस्थान छैन \"$1\" ।",
        "allpages-hide-redirects": "अनुप्रेषण लुकाउने",
+       "cachedspecial-viewing-cached-ttl": "तपाईं यस पृष्ठको क्याच गरिएको अवतरण हेर्दै हुनुहुन्छ, जुन $1 पुरानो हुनसक्छ।",
+       "cachedspecial-viewing-cached-ts": "तपाईं यस पृष्ठको क्याच गरिएको अवतरण हेर्दै हुनुहुन्छ, जुन सम्भवत वर्तमान अवस्था देखि भिन्न हुनसक्छ।",
+       "cachedspecial-refresh-now": "नवीनतम देखाउनुहोस् ।",
        "categories": "श्रेणीहरू",
+       "categoriespagetext": "निम्नलिखित {{PLURAL:$1|श्रेणी|श्रेणीहरू}}मा पृष्ठ वा मीडिया छन् । जुन [[Special:UnusedCategories|प्रयोग नगरिएका श्रेणीहरू]] यहाँ देखाइएको छैन।  [[Special:WantedCategories|चाहिएको श्रेणीहरू]] पनि हेर्नुहोस।",
        "categoriesfrom": "श्रेणीहरू देखाउन शुरु हुने यहाँ:",
        "special-categories-sort-count": "गणना क्रममा राख्नुहोस्",
        "special-categories-sort-abc": "वर्णानुक्रम अनुसार मिलाउने",
        "linksearch-pat": "खोज्ने नमूना:",
        "linksearch-ns": "नेमस्पेस:",
        "linksearch-ok": "खोज्नुहोस्",
-       "linksearch-text": "\"*.wikipedia.org\" वाइल्डकार्डको रुपमा प्रयोग गर्न सकिने। <br />\nसमर्थित प्रोटोकल:<code>$1</code>",
+       "linksearch-text": "\"*.wikipedia.org\" वाइल्डकार्डको रुपमा प्रयोग गर्न सकिने।\nकम्तिमा \".org\" जस्तो कुनै उच्च-स्तरीय डोमेनको आवश्यकता छ।<br />\nसमर्थित प्रोटोकल:<code>$1</code> (यदि कुनै {{PLURAL:$2|प्रोटोकल|प्रोटोकलहरू}} दिइएको छैन भने http:// को प्रयोग गर्न सकिन्छ)",
        "linksearch-line": "$1 $2सित जोड़िएको छ।",
        "linksearch-error": "मूलनामको सुरुमा मात्र वाइल्डकार्ड देखापर्न सक्छ।",
        "listusersfrom": "प्रयोगहरु देखाउन शुरु हुने यहाँ:",
        "listusers-blocked": "(प्रतिबन्धित)",
        "activeusers": "सक्रिय प्रयोगकर्ताहरुको सूची",
        "activeusers-intro": "यो सूची ती प्रयोगकर्ताहरुको हो जसले विगत $1 {{PLURAL:$1|दिन| दिन}}मा  गतिविधि देखाएकाछन्।",
-       "activeusers-count": "विगत {{PLURAL:$3|दिनमा| $3 दिनहरुमा}}  $1 {{PLURAL:$1| सम्पादन गरियो|सम्पादनहरु गरिए}}",
+       "activeusers-count": "विगत {{PLURAL:$3|दिनमा|$3 दिनहरूमा}}  $1 {{PLURAL:$1|सम्पादन गरियो|सम्पादनहरु गरिए}}",
        "activeusers-from": "यहाँबाट सुरु हुने प्रयोगकर्ताहरु देखाउनुहोस्:",
        "activeusers-hidebots": "बोटहरु लुकाउने",
        "activeusers-hidesysops": "प्रबन्धकहरु लुकाउने",
        "listgrouprights-addgroup-self": "{{PLURAL:$2|समूह|समूहहरु}} निजी  $1 खातामा थप्ने",
        "listgrouprights-removegroup-self": "{{PLURAL:$2|समूह|समूहहरु}} यस  $1 खाताबाट हटाउने",
        "listgrouprights-addgroup-self-all": "सबै समूहहरु निजी खातामा थप्ने",
+       "listgrouprights-removegroup-self-all": "आफ्नो खाताबाट सम्पूर्ण समुहहरू हटाउनु होस्",
+       "listgrouprights-namespaceprotection-header": "नामपद रोक",
+       "listgrouprights-namespaceprotection-namespace": "नामपद",
+       "listgrouprights-namespaceprotection-restrictedto": "प्रयोगकर्तालाई सम्पादन गर्ने अधिकार(हरू) दिने",
+       "trackingcategories": "श्रेणीहरू पछ्याउने",
+       "trackingcategories-summary": "यस पृष्ठमा ती जोडिने श्रेणिहरूको सूची भेट्दछ जुन स्वतः रूपले मीडियाविकि सफ्टवेयरद्वारा बनाइने गरिन्छ। उनीहरूको नाम सम्बन्धित प्रणाली सन्देशलाई परीवर्तनले {{ns:8}} नामस्थानमा परिवर्तन गर्न सकिन्छ।",
+       "trackingcategories-msg": "श्रेणी पछ्याउने",
+       "trackingcategories-name": "सन्देश नाम",
+       "trackingcategories-desc": "श्रेणी समावेशी आधारहरू",
+       "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>$wgMaxArticleSize</code> भन्दा ठुलो छ जबकि ढाँचाहरूको आन्तरिक पाठलाई बढाइएको छ (तीनगुना ब्रेसको रूपमा जस्तै <code>{{{Foo}}}</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> मा पृष्ठ पाठ हो, जुन पूर्व निर्धारित रूपले पृष्ठहरूमा श्रेणी लिङ्कहरूको बाकसमा हेरिनबाट रोक्ने गर्दछ।",
+       "trackingcategories-nodesc": "कुनै विवरण उपलब्ध छैन।",
+       "trackingcategories-disabled": "श्रेणी अक्षम गरियो",
        "mailnologin": "ईमेल पठाउने ठेगाना नै भएन ।",
        "mailnologintext": "तपाईले अरु प्रयोगकर्ताहरुलाई ईमेल पठाउनको लागि आफु पहिले [[Special:UserLogin|प्रवेश(लगइन)गरेको]] हुनुपर्छ र [[Special:Preferences|आफ्नो रोजाइहरुमा]] एउटा वैध ईमेल ठेगाना भएको हुनुपर्छ।",
        "emailuser": "यो प्रयोगकर्तालाई ई-मेल पठाउनुहोस्",
+       "emailuser-title-target": "{{GENDER:$1|प्रयोगकर्ता}}लाई इमेल गर्ने",
        "emailuser-title-notarget": "प्रयोगकर्तालाई इमेल गर्नुहोस्",
        "emailpage": "प्रयोगकर्तालाई इमेल गर्नुहोस्",
+       "emailpagetext": "तल दिइएको फर्मले तपाईं यस {{GENDER:$1|प्रयोगकर्ता}}लाई इमेल पठाउन सक्नुहुन्छ। तपाईं जुन ठेगाना [[Special:Preferences|आफ्नो प्रयोगकर्ता अभिरूचीहरू]]मा दिनुभएको थियो त्यो यस इमेललाई \"पठाउने\" को रूपमा आउनेछ, अतः प्राप्तकर्ता तपाईंलाई सिधै जवाफ दिनसक्छ।",
        "defemailsubject": "{{SITENAME}} प्रयपोगकर्ता \"$1\" बाट इमेल",
        "usermaildisabled": "प्रयोगकर्ता इमेल निरस्त गरिएको",
        "usermaildisabledtext": "यस विकिमा तपाईं अरु प्रयोगकर्तालाई ई-मेल पठाउन सक्नुहुन्न",
        "emailccsubject": "तपाईँको सन्देशको प्रतिलिपि  $1: $2लाई",
        "emailsent": "इमेल पठाईयो",
        "emailsenttext": "तपाईंको ई-मेल सन्देश पठाइयो।",
-       "emailuserfooter": "यो ई-मेल $1 ले $2 लाई \"ई-मेल प्रयोगकर्ता\" कार्यानुरुप {{SITENAME}}मा पठाएको थियो।",
+       "emailuserfooter": "यो ईमेल $1 ले $2 लाई \"ई-मेल प्रयोगकर्ता\" कार्यानुरुप {{SITENAME}}मा पठाएको थियो।",
        "usermessage-summary": "प्रणाली सन्देश छोड़दै ।",
        "usermessage-editor": "प्रणाली सन्देशवाहक",
        "usermessage-template": "MediaWiki:UserMessage",
        "mywatchlist": "अवलोकनसूची",
        "watchlistfor2": "$1को $2",
        "nowatchlist": "तपाईको अवलोकन सूचीमा कुनै पनि सामाग्री छैन।",
-       "watchlistanontext": "कृपया तपाईको निगरानी सुची हेर्न या सम्पादनगर्न $1 गर्नुहोस् ।",
+       "watchlistanontext": "कृपया तपाईको निगरानी सुची हेर्न या सम्पादन गर्न लगइन गर्नुहोस्।",
        "watchnologin": "प्रवेश (लग ईन) नगरिएको",
        "addwatch": "निगरानी सुचीमा थप्ने",
-       "addedwatchtext": "\"[[:$1]]\" पृष्ठ [[Special:Watchlist|अवलोकनसूची]]मा थपियो\nयो पृष्ठ र यससित सम्बद्ध वार्तालाप पृष्ठमा भविष्यमा हुने परिवर्तन सूचिबद्ध गरिनेछ र यो पृष्ठ [[Special:RecentChanges|नयाँ परिवर्तनहरू]]मा छान्न सजिलोकोलागि गाढा अक्षरमा देखा पर्नेछ।",
+       "addedwatchtext": "\"[[:$1]]\" पृष्ठ [[Special:Watchlist|अवलोकनसूची]]मा थपियो\nयो पृष्ठ र यससित सम्बद्ध वार्तालाप पृष्ठमा भविष्यमा हुने परिवर्तन सूचिबद्ध गरिनेछ।",
+       "addedwatchtext-short": "\"$1\" पृष्ठ तपाईको अबलोकन सूचीमा थप भएको छ ।",
        "removewatch": "निगरानी सुचीबाट हटाउने",
        "removedwatchtext": "पृष्ठ \"[[:$1]]\" [[Special:Watchlist|तपाईको निगरानी सूची]]बाट हटाइएको छ।",
        "removedwatchtext-short": "पृष्ठ \"$1\" तपाईंको अवलोकनसूची बाट हटाइयो",
        "unwatchthispage": "निगरानीबाट हटाउने",
        "notanarticle": "सामाग्री सहितको पेज हैन",
        "notvisiblerev": "पूर्वावलोकन हटाइयो",
-       "watchlist-details": "तपाईको निगरानी सूचीमा रहेका{{PLURAL:$1|$1 पृष्ठ|$1 पृष्ठहरु}}वार्तालापमा पृष्ठमा गनिएका छैनन् ।",
+       "watchlist-details": "तपाईको निगरानी सूचीमा रहेका {{PLURAL:$1|$1 पृष्ठ|$1 पृष्ठहरु}}वार्तालापमा पृष्ठमा गनिएका छैनन्।",
        "wlheader-enotif": "ईमेल जानकारी सक्रिय गरियो ।",
        "wlheader-showupdated": "तपाईँले पछिल्लो पल्ट भ्रमण गरेपछि परिवर्तन भएका पृष्ठहरूलाई <strong>गाढा<strong> गरेर देखाइएको छ ।",
-       "wlnote": "$3 à¤° $4 à¤\85नà¥\81सार à¤µà¤¿à¤\97त {{PLURAL:$2|à¤\98णà¥\8dà¤\9fामा|'''$2''' à¤\98णà¥\8dà¤\9fाहरà¥\81मा}} {{PLURAL:$1|à¤\97रिà¤\8fà¤\95à¥\8b à¤\85नà¥\8dतिम à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¤à¤² à¤¦à¤¿à¤\87à¤\8fà¤\95à¥\8bà¤\9b|à¤\97रिà¤\8fà¤\95ा à¤\85नà¥\8dतिम  '''$1''' à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनहरà¥\81 तल दिइएका छन्}}।",
-       "wlshowlast": "पछिल्ला $2 दिनहरूका  $1 घण्टाहरूका देखाउनुहोस्",
+       "wlnote": "$3 à¤° $4 à¤\85नà¥\81सार à¤µà¤¿à¤\97त {{PLURAL:$2|à¤\98णà¥\8dà¤\9fामा|'''$2''' à¤\98णà¥\8dà¤\9fाहरà¥\82मा}} {{PLURAL:$1|à¤\97रिà¤\8fà¤\95à¥\8b à¤\85नà¥\8dतिम à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¤à¤² à¤¦à¤¿à¤\87à¤\8fà¤\95à¥\8bà¤\9b|à¤\97रिà¤\8fà¤\95ा à¤\85नà¥\8dतिम  '''$1''' à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनहरà¥\82 तल दिइएका छन्}}।",
+       "wlshowlast": "पछिल्ला $2 दिनहरू $1 घण्टाहरू देखाउनुहोस्",
        "watchlist-options": "निगरानि सूची विकल्प",
        "watching": "निगरानी गर्दै...",
        "unwatching": "निगरानीबाट हटाउँदै...",
        "watcherrortext": "\"$1\"को लागि तपाइँको निगरानी सुची परिवर्तन गर्ने क्रममा यौटा त्रुटी भएको छ।",
-       "enotif_reset": "सबà¥\88 à¤ªà¥\83षà¥\8dठहरà¥\81 भनी दाग दिने",
+       "enotif_reset": "सबà¥\88 à¤ªà¥\83षà¥\8dठहरà¥\82 भनी दाग दिने",
        "enotif_impersonal_salutation": "{{SITENAME}} प्रयोगकर्ता",
+       "enotif_subject_deleted": "{{SITENAME}} पृष्ठ $1 $2 ले {{GENDER:$2|मेटाउनु}} भयो ।",
+       "enotif_subject_created": "{{SITENAME}} पृष्ठ $1 $2 ले {{GENDER:$2|बनाउनु}} भयो ।",
+       "enotif_subject_moved": "{{SITENAME}} पृष्ठ $1 $2 ले {{GENDER:$2|सार्नु}} भयो ।",
+       "enotif_subject_restored": "{{SITENAME}} पृष्ठ $1 $2 ले {{GENDER:$2|पुनर्स्थापन गर्नु}} भयो ।",
+       "enotif_subject_changed": "{{SITENAME}} पृष्ठ $1 $2 ले {{GENDER:$2|परिवर्तन गर्नु}} भयो ।",
+       "enotif_body_intro_deleted": "{{SITENAME}} पृष्ठ $1 $2 ले $PAGEEDITDATE मा {{GENDER:$2|परिवर्तन गर्नु}} भयो, $3 हेर्नुहोस् ।",
+       "enotif_body_intro_created": "{{SITENAME}} पृष्ठ $1 लाई {{gender:$2|$2}} ले $PAGEEDITDATE मा बनाएको हो, वर्तमान अवतरण को लागि $3 हेर्नुहोस।",
+       "enotif_body_intro_moved": "{{SITENAME}} पृष्ठ $1 लाई {{gender:$2|$2}} ले $PAGEEDITDATE मा सारेको हो, वर्तमान अवतरण को लागि $3 हेर्नुहोस।",
+       "enotif_body_intro_restored": "{{SITENAME}} पृष्ठ $1 लाई {{gender:$2|$2}} ले $PAGEEDITDATE मा पुनर्स्थापित गरेको हो, वर्तमान अवतरण को लागि $3 हेर्नुहोस।",
+       "enotif_body_intro_changed": "{{SITENAME}} पृष्ठ $1 लाई {{gender:$2|$2}} ले $PAGEEDITDATE मा परिवर्तन गरेको हो, वर्तमान अवतरण को लागि $3 हेर्नुहोस।",
        "enotif_lastvisited": "अघिल्लो हेराइपछिका सबै परिवर्तनहरुको निम्ति हेर्नुहोस्: $1",
        "enotif_lastdiff": "यस परिवर्तनको निम्ति यो $1 हेर्नुहोस्",
        "enotif_anon_editor": "अज्ञात  प्रयोगकर्ता  $1",
-       "enotif_body": "प्रिय $WATCHINGUSERNAME,\n\n\n{{SITENAME}}को पृष्ठ $PAGETITLE  $PAGEEDITDATE को दिन $PAGEEDITORद्वारा $CHANGEDORCREATED, \nहालको संशोधनको निम्ति  हेर्नुहोस्  $PAGETITLE_URL ।\n\n$NEWPAGE\n\nसम्पादकको सारांश: $PAGESUMMARY $PAGEMINOREDIT\n\nसम्पादकसित सम्पर्क राख्नुहोस्:\nमेल: $PAGEEDITOR_EMAIL\nविकि: $PAGEEDITOR_WIKI\n\nतपाईं यस पृष्ठमा नगएसम्म अब उसो कुनै परिवर्तन भएका खण्डमा कुनै सूचना दिनेछैन।\nतपाईंका सम्पूर्ण निगरानी पृष्ठहरुको लागि तपाईंले सूचना पताकालाई निगरानी सूचीमा पुनर्बहाली गर्न सक्नुहुन्छ। \n\n             तपाईंको मित्र {{SITENAME}} सूचना प्रणाली\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\n{{SITENAME}}को पृष्ठ $PAGETITLE  $PAGEEDITDATE को दिन $PAGEEDITORद्वारा $CHANGEDORCREATED, \nहालको संशोधनको निम्ति हेर्नुहोस्  $PAGETITLE_URL ।\n\n$NEWPAGE\n\nसम्पादकको सारांश: $PAGESUMMARY $PAGEMINOREDIT\n\nसम्पादकसित सम्पर्क राख्नुहोस्:\nमेल: $PAGEEDITOR_EMAIL\nविकि: $PAGEEDITOR_WIKI\n\nतपाईं यस पृष्ठमा नगएसम्म अब उसो कुनै परिवर्तन भएका खण्डमा कुनै सूचना दिनेछैन।\nतपाईंका सम्पूर्ण निगरानी पृष्ठहरुको लागि तपाईंले सूचना पताकालाई निगरानी सूचीमा पुनर्बहाली गर्न सक्नुहुन्छ। \n\n             तपाईंको मित्र {{SITENAME}} सूचना प्रणाली\n--\nइमेल सूचना व्यवस्था परिवर्तन गर्न, जानुहोस्\n{{canonicalurl:{{#special:Preferences}}}}\n\nनिगरानी सूची व्यवस्थित गर्न, जानुहोस्\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nनिगरानी सूची मेट्न, जानुहोस्\n$UNWATCHURL\n\nप्रतिक्रिया र अन्य सहयोगको निम्ति:\n$HELPPAGE",
        "created": "बनाइएको",
        "changed": "परिवर्तन भइसकेको",
        "deletepage": "पृष्ठ मेट्नुहोस्",
        "exbeforeblank": "खालि गर्नु भन्दा अघिको सामग्री थियो: \"$1\"",
        "delete-confirm": "मेट्नुहोस् \"$1\"",
        "delete-legend": "मेट्नुहोस्",
-       "historywarning": " चेतावनी: तपाईंले मेटाउन लाग्नुभएको पृष्ठको इतिहासको लगभग $1 {{PLURAL:$1|पुनरावृत्ति छ|पुनरावृत्तिहरु छन्}}:",
+       "historywarning": "<strong>चेतावनी:</strong> तपाईंले मेटाउन लाग्नुभएको पृष्ठको इतिहासको लगभग $1 {{PLURAL:$1|पुनरावृत्ति छ|पुनरावृत्तिहरू छन्}}:",
        "confirmdeletetext": "तपाई यो पृष्ठ र यसको इतिहास मेट्न गइरहनु भएकोछ। कृपया पुष्टि गर्नुहोस् कि [[{{MediaWiki:Policy-url}}|नियम]] मुताबिक तपाईं मेट्न गइरहनु भएकोछ।",
        "actioncomplete": "काम सकियो",
        "actionfailed": "कार्य असफल",
        "delete-edit-reasonlist": "मेट्नुको कारण सम्पादन गर्नुहोस्",
        "delete-toobig": "यो पृष्ठको सम्पादन इतिहास धेरै र  $1 {{PLURAL:$1|पुनरावलोक|पुनरावलोकहरु}}भन्दा बढी रहेको छ।\n {{SITENAME}}मा दुर्घटनाको कारणले गडबडी आउनसक्ने कुरालाई रोक्न यस्ता पृष्ठहरुलाई मेट्नबाट निषेध गरिएको छ ।",
        "delete-warning-toobig": "This page has a large edit history, over $1 {{PLURAL:$1|revision|revisions}}.\nDeleting it may disrupt database operations of {{SITENAME}};\nproceed with caution.",
+       "deleteprotected": "यो पृष्ठलाई सुरक्षित गरिएकोले तपाईले यसलाई मेटाउन सक्नु हुन्न ।",
+       "deleting-backlinks-warning": "'''चेतावनी:''' जुन पृष्ठ तपाईं हटाउन गइरहनु भएको छ त्यससँग [[Special:WhatLinksHere/{{FULLPAGENAME}}|अन्य पृष्ठहरू]] जोडिन्छ अथवा त्यसलाई ट्रान्सक्लयुड गर्छ।",
        "rollback": "सम्पादनहरु  पछाडि लाने",
        "rollbacklink": "पहिलेको रुपमा फर्काउने",
        "rollbacklinkcount": "रोल्ब्याक $1 {{PLURAL:$1|सम्पादन|सम्पादनहरू}}",
+       "rollbacklinkcount-morethan": "$1 भन्दा बढी {{PLURAL:$1|सम्पादन|सम्पादनहरू}} रोलब्याक गर्ने",
        "rollbackfailed": "रोलब्याक असफल",
        "cantrollback": "फर्काउन सकिंदैन;\nअन्तिम योगदान कर्ता मात्र यस पृष्ठका लेखक थिए।",
+       "alreadyrolled": "[[User:$2|$2]] ([[User talk:$2|वार्ता]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) द्वारा गरिएको [[:$1]] पछिल्लो सम्पादनलाई फेरी पुरानै स्थितिमा ल्याउन सकिंदैन;\nकसैले यस बीचमै वा यस पृष्ठलाई फेरी सम्पादित गरिसकेको छ वा पहिले नै यस पृष्ठलाई पुरानो स्थितिमा ल्याई सकिएको छ।\n\nयस पृष्ठको अन्तिम सम्पादन [[User:$3|$3]] ([[User talk:$3|वार्ता]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) ले गरेओ हो।",
        "editcomment": "सम्पादन सारांश : \"''$1''\" ।",
        "revertpage": "[[Special:Contributions/$2|$2]] ([[User talk:$2|वार्तालाप]])द्वारा [[User:$1|$1]]द्वारा गरिएको पछिल्लो संशोधनतर्फ उल्टाइएका सम्पादनहरु",
+       "revertpage-nouser": "(सदस्य नाम हटाइएको छ) को सम्पादनहरूलाई हटाएर {{GENDER:$1|[[User:$1|$1]]}} ले अन्तिम अवतरणमा पूर्ववत गर्यो।",
        "rollback-success": "$1द्वारा उल्टाइएका सम्पादनहरु;\nपछिल्लो संशोधनमा $2द्वारा परिवर्तन गरि पुनः फर्काइएको।",
        "sessionfailure-title": "सत्र त्रुटी",
+       "sessionfailure": "यस्तो लागदैछ कि तपाईंको लगइन सत्रसँग कुनै समस्या छ। सत्र अपहरणबाट बचाउन को लागि सावधानीको रूपमा तपाईंको यो क्रियाकलाप रद्द गरिएको छ। कृपया पछाडी जानुहोस र पृष्ठलाई पुनः लोड गर्नुहोस, अनि फेरी प्रयास गर्नुहोला।",
        "protectlogpage": "सुरक्षण लग",
+       "protectlogtext": "तल पृष्ठ सुरक्षामा भएको परिवर्तनहरूको सूची हो ।\nवर्तमान सुरक्षित पृष्ठहरूको लागि सुरक्षित [[Special:ProtectedPages|पृष्ठहरूको सूची]] हेर्नुहोस।",
        "protectedarticle": "\"[[$1]]\" लाई सुरक्षित गरियो",
        "modifiedarticleprotection": " \"[[$1]]\"को सुरक्षा स्तर परिवर्तन गरियो",
        "unprotectedarticle": "\"[[$1]]\" बाट सुरक्षा हटाइएको छ",
        "movedarticleprotection": "\"[[$2]]\" बाट \"[[$1]]\"मा सुरक्षा व्यवस्था सारियो",
        "protect-title": " \"$1\" सुरक्षा स्तर परिवर्तन गर्नुहोस",
+       "protect-title-notallowed": "\"$1\" को सुरक्षा स्तर देखाउनु होस्",
        "prot_1movedto2": "[[$1]] लाई [[$2]]मा सारियो",
+       "protect-badnamespace-title": "सुरक्षित गर्न नमिल्ने नेमस्पेस",
+       "protect-badnamespace-text": "यस नेमस्पेसमा भएको पृष्ठहरूलाई सुरक्षित गर्न सकिदैन ।",
+       "protect-norestrictiontypes-text": "यो पृष्ठ सुरक्षित गर्न सकिदै किनकी त्यसमा कुनै प्रकारको प्रतिबन्ध रहेको छैन् ।",
+       "protect-norestrictiontypes-title": "सुरक्षित नभएको पृष्ठ",
        "protect-legend": "सुरक्षा सुनिश्चित गर्ने",
        "protectcomment": "कारण :",
        "protectexpiry": "सकिने:",
        "protect_expiry_old": "समाप्ती समय बितिसक्यो ।",
        "protect-unchain-permissions": "आगामी सुरक्षा विकल्पहरु खोल्ने",
        "protect-text": "तपाईँ  यहाँ '''$1''' पृष्ठको सुरक्षा स्तर हेर्न र परिवर्तन गर्न सक्नुहुन्छ ।",
+       "protect-locked-blocked": "तपाईं प्रतिबन्धित भएको अवस्थामा सुरक्षा स्तरमा परिवर्तन गर्न सक्नुहुन्न।\nपृष्ठ <strong>$1</strong> को वर्तमान स्थिति यो छ:",
+       "protect-locked-dblock": "डेटाबेसमा सक्रिय बन्देज भएको कारणले सुरक्षा स्तरमा कुनै परिवर्तन गर्न सकिंदैन।\nपृष्ठ <strong>$1</strong> को वर्तमान स्थिति यो छ:",
        "protect-locked-access": "तपाईँको खातालाई पृष्ठको सुरक्षा स्तरहरू परिवर्तन गर्ने अनुमति छैन ।\n'''$1''पृष्ठको हालको स्थिति  निम्न छ :",
-       "protect-cascadeon": "हालमा यो पृष्ठ सुरक्षित गरिएकोछ किन कि यसमा निम्न {{PLURAL:$1|पृष्ठ, जसको|पृष्ठहरु, जसको}} सुरक्षामा व्यापकता  कायम गरिएकोछ। \nतपाईंले पृष्ठको सुरक्षा स्तर परिवर्तन गर्न सक्नुहुनेछ तर यसले व्यापक सुरक्षालाई केहि असर पार्नेछैन।",
+       "protect-cascadeon": "हालमा यो पृष्ठ सुरक्षित गरिएको छ किन कि यसमा निम्न {{PLURAL:$1|पृष्ठ, जसको|पृष्ठहरू, जसको}} सुरक्षामा व्यापकता कायम गरिएको छ। \nतपाईंले पृष्ठको सुरक्षा स्तर परिवर्तन गर्न सक्नुहुनेछ तर यसले व्यापक सुरक्षालाई केहि असर पार्ने छैन।",
        "protect-default": "सबै प्रयोगकर्ताहरुलाई अनुमति दिने",
        "protect-fallback": "\"$1\" वर्गमा भएका प्रयोगकर्ताहरूलाई अनुमति दिने",
        "protect-level-autoconfirmed": "नयाँ तथा दर्ता भएका प्रयोगकर्ताहरुलाई अनुमति दिने",
        "protect-expiring": "$1 (UTC) मा सकिने छ ।",
        "protect-expiring-local": "समाप्ति समय $1",
        "protect-expiry-indefinite": "अनिश्चित काल",
-       "protect-cascade": "यà¥\8b à¤ªà¥\83षà¥\8dठमा à¤¸à¤\82लà¤\97à¥\8dन à¤¸à¥\81रà¤\95à¥\8dषित à¤ªà¥\83षà¥\8dठहरà¥\81(लामबद्द सुरक्षा)",
+       "protect-cascade": "यà¥\8b à¤ªà¥\83षà¥\8dठमा à¤¸à¤\82लà¤\97à¥\8dन à¤¸à¥\81रà¤\95à¥\8dषित à¤ªà¥\83षà¥\8dठहरà¥\82(लामबद्द सुरक्षा)",
        "protect-cantedit": "तपाईँ यस पृष्ठको सुरक्षा स्तर परिवर्तन गर्न सक्नुहुन्न , किन कि तपाईँलाई यसको सम्पादनको अनुमति छैन ।",
        "protect-othertime": "अरु समय :",
        "protect-othertime-op": "अरु समय",
        "protect-existing-expiry": "वर्तमान समय सीमा :$3, $2",
+       "protect-existing-expiry-infinity": "वर्तमान समाप्त समयः अनन्त",
        "protect-otherreason": "अरु/थप कारणहरु :",
        "protect-otherreason-op": "अरु कारण",
        "protect-dropdown": "*सामान्य सुरक्षाका कारणहरु\n** अत्यधिक बर्बरता\n** अत्यधिक अचाहिंदा सन्देश\n** जवाबी सम्पादन-झगडा\n** अधिकतम खोलिने पृष्ठ",
        "restriction-level-autoconfirmed": "अल्पसुरक्षित",
        "restriction-level-all": "कुनै स्तर",
        "undelete": "मेटिएका पृष्ठहरू हेर्नुहोस्",
-       "undeletepage": "मà¥\87à¤\9fाà¤\87à¤\8fà¤\95ा à¤ªà¥\83षà¥\8dठहरà¥\81 हेर्ने अनि पुनर्स्थापित गर्ने",
+       "undeletepage": "मà¥\87à¤\9fाà¤\87à¤\8fà¤\95ा à¤ªà¥\83षà¥\8dठहरà¥\82 हेर्ने अनि पुनर्स्थापित गर्ने",
        "undeletepagetitle": "'''[[:$1|$1]]का मेटाइएका पुनरावलोकनहरु यसभित्र  छन् '''।",
        "viewdeletedpage": "मेटिएका पृष्ठहरू हेर्नुहोस्",
        "undeletepagetext": "निम्नलिखित {{PLURAL:$1|पृष्ठ मेटिएकोछ तर पूरालेखभित्रै छ|$1 पृष्ठ मेटिएकाछन् तर पूरालेखभित्रै छन्}} र पुनर्स्थापित गर्न सकिन्छ।\nपूरालेखको समय-समयमा सफाई गर्न सकिन्छ।",
        "undeletedfiles": "{{PLURAL:$1|१ फाइल|$1 फाइलहरु }} पूर्वस्थितिमा ल्याइयो",
        "cannotundelete": "मेटाएको रद्द गर्ने काम असफल भयो:\n$1",
        "undeletedpage": "'''$1लाई पूर्वावस्थामा ल्याइयो'''\nभर्खरै मेटाइएको रिकर्डहरु र पुनर्स्थापनाहरु हेर्न [[Special:Log/delete|मेटाइएको लग]]मा जानुहोस्।",
-       "undelete-header": "भरà¥\8dà¤\96र à¤®à¥\87à¤\9fिà¤\8fà¤\95ा à¤ªà¥\83षà¥\8dठहरà¥\81 हेर्न [[Special:Log/delete|मेटाइएका लग]]मा जानुहोस्।",
+       "undelete-header": "भरà¥\8dà¤\96र à¤®à¥\87à¤\9fिà¤\8fà¤\95ा à¤ªà¥\83षà¥\8dठहरà¥\82 हेर्न [[Special:Log/delete|मेटाइएका लग]]मा जानुहोस्।",
        "undelete-search-title": "मेटिएका पृष्ठहरू खोज्नुहोस्",
        "undelete-search-box": "मेटिएका पृष्ठहरू खोज्नुहोस्",
-       "undelete-search-prefix": "बाà¤\9f à¤¸à¥\81रà¥\81 à¤¹à¥\81नà¥\87  à¤ªà¥\83षà¥\8dठहरà¥\81 देखाउनुहोस :",
+       "undelete-search-prefix": "बाà¤\9f à¤¸à¥\81रà¥\81 à¤¹à¥\81नà¥\87  à¤ªà¥\83षà¥\8dठहरà¥\82 देखाउनुहोस :",
        "undelete-search-submit": "खोजी गर्नुहोस्",
-       "undelete-no-results": "मà¥\87à¤\9fिà¤\8fà¤\95ा à¤ªà¥\83षà¥\8dठहरà¥\81à¤\95à¥\8b à¤\85भिलà¥\87à¤\96मा à¤\95à¥\81नà¥\88 à¤ªà¤¨à¤¿ à¤®à¤¿à¤²à¥\8dदà¥\8b à¤ªà¥\83षà¥\8dठहरà¥\81 भेटिएन ।",
+       "undelete-no-results": "मà¥\87à¤\9fिà¤\8fà¤\95ा à¤ªà¥\83षà¥\8dठहरà¥\82à¤\95à¥\8b à¤\85भिलà¥\87à¤\96मा à¤\95à¥\81नà¥\88 à¤ªà¤¨à¤¿ à¤®à¤¿à¤²à¥\8dदà¥\8b à¤ªà¥\83षà¥\8dठहरà¥\82 भेटिएन ।",
        "undelete-filename-mismatch": " $1 समय छाप भएको मेटिएको संस्करण पुन: स्थापना गर्न सकिएन : फाइलनाम अमिल्दो",
        "undelete-bad-store-key": " $1 समय छाप भएको मेटिएको संस्करण पुन: स्थापना गर्न सकिएन : फाइल मेट्नु अगि नै हराएको थियो",
        "undelete-cleanup-error": "प्रोगमा नआएको \"$1\" अभिलेख फाइल मेट्दा त्रुटी",
        "namespace": "नामस्थान:",
        "invert": "रोजाइ उल्टाउने",
        "tooltip-invert": "छानिएका नेमस्पेसहरुमा रहेका पृष्ठहरुमा गरिएका परिवर्तनहरु लुकाउन यसमा चिनो लगाउनुहोस्  (र सम्वन्धित नेमस्पेस यदि छानिएका भए)",
+       "tooltip-whatlinkshere-invert": "छानिएको नामस्थानको पृष्ठहरूसँग लिङ्कहरूलाई लुकाउनका लागि यस बाकसलाई चिन्हित गर्नुहोस",
        "namespace_association": "सम्बन्धित नेमस्पेस",
        "tooltip-namespace_association": "वार्तालाप या विषय नेमस्पेसहरुलाई सम्वन्धित नेमस्पेसको रुपमा लिनको लागि सन्दुकमा चिनो लगाउनुहोस।",
        "blanknamespace": "(मुख्य)",
        "contributions-title": "$1को प्रयोगकर्ता योगदानहरू",
        "mycontris": "योगदानहरू",
        "contribsub2": " {{GENDER:$3|$1}} ($2)को लागि",
+       "contributions-userdoesnotexist": "प्रयोगकर्ता \"$1\" दर्ता गरिएको छैन् ।",
        "nocontribs": "यस मापदण्ड अनुसार परिवर्त पाइएन।",
        "uctop": "(वर्तमान)",
        "month": "महिना देखि (र पहिले):",
        "sp-contributions-newbies-sub": "नयाँ खाताहरुको लागि",
        "sp-contributions-newbies-title": "नयाँ खाताहरूको लागि प्रयोगकर्ताका योगदानहरू",
        "sp-contributions-blocklog": "रोकावट लग",
+       "sp-contributions-suppresslog": "प्रयोगकर्ताको योगदानहरू दबाइएको छ ।",
        "sp-contributions-deleted": "प्रयोगकर्ताका योगदानहरू मेटाइयो",
        "sp-contributions-uploads": "उर्ध्वभरणहरु",
-       "sp-contributions-logs": "लà¤\97हरà¥\81",
+       "sp-contributions-logs": "लà¤\97हरà¥\82",
        "sp-contributions-talk": "वार्ता",
        "sp-contributions-userrights": "प्रयोगकर्ता अधिकार व्यवस्थापन",
        "sp-contributions-blocked-notice": "यो प्रयोगकर्तालाई अहिले रोक लगाइएको छ।\nनवीनतम रोकाइ गरेको लग प्रविष्टि सन्दर्भको निम्ति तल दिएकोछ:",
        "sp-contributions-search": "योगदानहरू खोज्नुहोस्",
        "sp-contributions-username": "IP ठेगाना वा प्रयोगकर्ता नाम :",
        "sp-contributions-toponly": "नवीनतम संशोधनका सम्पादनहरु देखाउनुहोस्",
+       "sp-contributions-newonly": "पृष्ठ निर्माण सम्बन्धि सम्पादनहरू मात्रै देखाउनुहोस्",
        "sp-contributions-submit": "खोज",
        "whatlinkshere": "यहाँ के जोडिन्छ",
        "whatlinkshere-title": "$1 सँग जोडिएका पानाहरू",
        "whatlinkshere-page": "पृष्ठ:",
-       "linkshere": "निमà¥\8dन à¤ªà¥\83षà¥\8dठहरà¥\81 '''[[:$1]]''' मा जोडिन्छ :",
+       "linkshere": "निमà¥\8dन à¤ªà¥\83षà¥\8dठहरà¥\82 '''[[:$1]]''' मा जोडिन्छ :",
        "nolinkshere": " '''[[:$1]]'''मा लिंक भएका प्याकेजेजहरु छैनन्",
-       "nolinkshere-ns": "à¤\9aà¥\81निà¤\8fà¤\95à¥\8b à¤¨à¤¾à¤®à¤¸à¥\8dथानमा '''[[:$1]]''' à¤¸à¤¿à¤¤ à¤\9cà¥\8bड़िनà¥\87 à¤ªà¥\83षà¥\8dठहरà¥\81 छैनन्।",
+       "nolinkshere-ns": "à¤\9aà¥\81निà¤\8fà¤\95à¥\8b à¤¨à¤¾à¤®à¤¸à¥\8dथानमा '''[[:$1]]''' à¤¸à¤¿à¤¤ à¤\9cà¥\8bडिनà¥\87 à¤ªà¥\83षà¥\8dठहरà¥\82 छैनन्।",
        "isredirect": "अनुप्रेषित पृष्ठ",
        "istemplate": "पारदर्शिता",
        "isimage": "फाइल लिङ्क",
        "ipbenableautoblock": "यस प्रयोगकर्ताले प्रयोग गरेको अन्तिम IP ठेगानालाई स्वतः रोक्ने, र पछाड़िका अरु पनि IP ठेगानालाई जहाँबाट तिनीहरुले सम्पादन गर्ने प्रयास गर्छन्।",
        "ipbsubmit": "यो प्रयोगकर्तालाई रोक्नुहोस",
        "ipbother": "अरु समय:",
-       "ipboptions": "२ à¤\98णà¥\8dà¤\9fाहरà¥\81:2 hours,१ à¤¦à¤¿à¤¨ :1 day,३ à¤¦à¤¿à¤¨à¤¹à¤°à¥\81:3 days,१ à¤¹à¤ªà¥\8dता:1 week,२ à¤¹à¤ªà¥\8dताहरà¥\81:2 weeks,१ à¤®à¤¹à¤¿à¤¨à¤¾:1 month,३ à¤®à¤¹à¤¿à¤¨à¤¾à¤¹à¤°à¥\81:3 months,६ à¤®à¤¹à¤¿à¤¨à¤¾à¤¹à¤°à¥\81:6 months,१ वर्ष:1 year,अनगिन्ती:infinite",
+       "ipboptions": "२ à¤\98णà¥\8dà¤\9fाहरà¥\82:2 hours,१ à¤¦à¤¿à¤¨ :1 day,३ à¤¦à¤¿à¤¨à¤¹à¤°à¥\82:3 days,१ à¤¹à¤ªà¥\8dता:1 week,२ à¤¹à¤ªà¥\8dताहरà¥\82:2 weeks,१ à¤®à¤¹à¤¿à¤¨à¤¾:1 month,३ à¤®à¤¹à¤¿à¤¨à¤¾à¤¹à¤°à¥\82:3 months,६ à¤®à¤¹à¤¿à¤¨à¤¾à¤¹à¤°à¥\82:6 months,१ वर्ष:1 year,अनगिन्ती:infinite",
        "ipbhidename": "प्रयोगकर्ताको नाम सम्पादनबाट र सूचीबाट हटाउने",
        "ipbwatchuser": "यो प्रयोगकर्ताको  प्रयपोगकर्ता र वार्तलाप पृष्ठ हेर्नुहोस्",
        "ipb-disableusertalk": "यस प्रयोगकर्तालाई निषेधित समयमा आफ्नै वार्तालाप पृष्ठ सम्पादन गर्न नदिने",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] निषेध गरिएको छ।<br />\nपुनरावलकोनको लागि [[Special:BlockList|आइपी निषेध सूची]] हेर्नहोस्।",
        "ipb-blockingself": "तपाईंले आफैंलाई रोक लगाउन गइरहनु भएको छ! के तपाईं पक्का यसो गर्न चाहनुहुन्छ?",
        "ipb-confirmhideuser": "तपाईंले त्यस्तो प्रयोगकर्तालाई रोक लगाउन गइरहनु भएको छ जसको  \"प्रयोगकर्ता लुकाउने\" सक्रिय बनाइएको छ। यसो गर्दा सबै लग सूचीहरुबाट प्रयोगकर्ताको नाम गायब हुनेछ। के तपाईं पक्का यसो गर्न चाहनुहुन्छ?",
+       "ipb-confirmaction": "यदि तपाईं विश्वासपूर्ण रूपले यहि गर्न चाहनुहुन्छ, भने कृपया \"{{int:ipb-confirm}}\" लाई क्षेत्रबाट छान्नुहोस्।",
        "ipb-edit-dropdown": "निषेध कारण सम्पादन गर्नुहोस्",
        "ipb-unblock-addr": "$1 निषेध खारेज गर्ने",
        "ipb-unblock": "प्रयोगकर्ता वा IP माथिको निषेध खारेज गर्ने",
        "unblocked": "[[User:$1|$1]] लाई रोक लगाउने",
        "unblocked-range": "$1 लाई अनिषेधित गरियो",
        "unblocked-id": "$1 रोक हटाइएको छ",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] खुला भएको छ ।",
        "blocklist": "निषेधित प्रयोगकर्ताहरु",
        "ipblocklist": "निषेधित प्रयोगकर्ताहरु",
        "ipblocklist-legend": "रोकलगाइएका प्रयोगकर्ताहरु खोज्नुहोस",
        "blocklog-showsuppresslog": "यो प्रयोगकर्तालाई पहिला रोक लगाइएको र लुकेको थियो ।\nलु्काइएको लग सन्दर्भको निम्ति तल दिइन्छ:",
        "blocklogentry": " [[$1]]लाई $2 $3 समयसम्म को लागि निषेध गरिएको छ",
        "reblock-logentry": "$2 $3 मा सकिने गरि  [[$1]] को निषेध स्थिति परिवर्तन गरिएको छ ।",
-       "blocklogtext": "यो लग प्रयोगकर्ताको रोकावट र फुकुवा कार्यहरुको  हो।\nस्वतः रोकिएका आई पी ठेगानाहरु सूचीमा छैनन्।\nवर्तमानका चालू रोक र प्रतिबन्धहरुको सूचीकोलागि हेर्नुहोस् [[Special:BlockList|आई पी निषेध सूची]]।",
+       "blocklogtext": "यो लग प्रयोगकर्ताको रोकावट र फुकुवा कार्यहरुको हो।\nस्वतः रोकिएका आईपी ठेगानाहरू सूचीमा छैनन्।\nवर्तमानका चालू रोक र प्रतिबन्धहरूको सूचीकोलागि हेर्नुहोस् [[Special:BlockList|आईपी निषेध सूची]]।",
        "unblocklogentry": "$1 लाई अनिषेधित गरियो",
        "block-log-flags-anononly": "अज्ञात प्रयोगकर्ताहरु मात्र",
        "block-log-flags-nocreate": "खाता खोल्न निस्क्रिय पारिएको",
        "range_block_disabled": "प्रवन्धकको रेन्ज रोक सिर्जना गर्ने क्षमतालाई निश्कृय पारिएको छ।",
        "ipb_expiry_invalid": "समय सिमा अमान्य",
        "ipb_expiry_temp": "लुकाइएका प्रयोगकर्ता नामको रोक स्थाई हुन अनिवार्य छ।",
-       "ipb_hide_invalid": "यो खातालाई दबाउन सकिने छैन; किन कि यसका धेरै सम्पादनहरु छन्।",
+       "ipb_hide_invalid": "यो खातालाई दबाउन सकिने छैन; किन कि यसका धेरै {{PLURAL:$1|एक सम्पादन|$1 सम्पादनहरू}} छन्।",
        "ipb_already_blocked": "\"$1\"लाई पहिले नै रोक लगाइएको छ",
        "ipb-needreblock": "$1लाई अघिबाट नैं प्रतिबन्ध लगाइएकोछ।\nके तपाईं यसको व्यवस्थालाई परिवर्तन गर्न चाहनुहुन्छ?",
        "ipb-otherblocks-header": "अरु {{PLURAL:$1|रोक|रोकहरु}}",
        "sorbs": "DNSBL",
        "sorbsreason": "तपाईको IP ठेगाना खुल्ला प्रोक्सीको रुपमा  DNSBL मा सुचीकरण गरिएको छ यसलाई{{SITENAME}}ले प्रयोगमा ल्याएको छ।",
        "sorbs_create_account_reason": "तपाईको IP ठेगाना खुल्ला प्रोक्सीको रुपमा  DNSBL मा सुचीकरण गरिएको छ यसलाई{{SITENAME}}ले प्रयोगमा ल्याएको छ।\nतपाईले खाता खोल्न सक्नुहुन्न ।",
+       "xffblockreason": "एउटा आइपि ठेगाना जुन X-Forwarded-For हेडरमा रहेको छ, या त तपाईंको हो वा त्यस प्रक्सी सर्भरको हो जसको प्रयोग तपाईं गर्दै हुनुहुन्छ र यस माथि प्रतिबन्ध लगाइएको छ। वास्तविक कारण थियो:$1",
        "cant-see-hidden-user": "तपाईले रोक लगाउन खोज्नु भएको प्रयोगकर्ता पहिले नै रोकलगाइ लुकाइ सकिएको छ ।\nतपाईसँग hideuser अधिकार नभएकोले यसलाई हेर्ना या सम्पादन गर्न सक्नुहुन्न ।",
        "ipbblocked": "तपाईंले अरु प्रयोगकर्ताहरुलाई प्रतिबन्धित गर्न वा उनीहरुको प्रतिबन्ध खोल्न सक्नुहुन्न किनभनें तपाईं आफैं प्रतिबन्धित हुनुहुन्छ।",
        "ipbnounblockself": "तपाई आफैले आफैलाई रोक खुलाउन सक्नुहुन्न ।",
        "lockdb": "डेटाबेस ताल्चामार्ने",
        "unlockdb": "डेटाबेसको ताल्चा खोल्ने",
+       "lockdbtext": "डेटाबेसमा ताला लगाउनाले सबै प्रयोगकर्ता पृष्ठ सम्पादन, आफ्नो अभिरूचीमा परिवर्तन, आफ्नो ध्यानसूचीमा सम्पादन, र अन्य वस्तु जसको लागि डेटाबेसमा परिवर्तन गरें हुन्छ, त्यसबाट वन्चित हुनेछ। कृपया यो सुनिश्चित गर्नुहोस कि तपाईं यो गर्न चाहनुहुन्छ, र तपाईं रक्षण पश्चात ताला खोल्नुहुन्छ।",
+       "unlockdbtext": "डेटाबेसको ताला खोल्नका लागि सबै प्रयोगकर्ता पृष्ठ सम्पादन, आफ्नो अभिरूचीहरूमा परिवर्तन, आफ्नो ध्यानसूचीमा सम्पादन, र अन्य वस्तु जसको लागि डेटाबेसमा परिवर्तन गर्नु पर्छ, को सक्षमतालाई पुनर्स्थापित गर्नछ। कृपया यो सुनिश्चित गर्नुस कि तपाईं यो गर्न चाहनुहुन्छ।",
        "lockconfirm": "हो, म साँच्चिकै डेटाबेस थुन्न चाहन्छु।",
        "unlockconfirm": "हो , म साँच्चै  डेटाबेसको ताल्चा खोल्न चाहन्छु ।",
        "lockbtn": "डेटाबेस थुनिदिनुस्",
        "locknoconfirm": "मैले ठोकुवा गर्ने सन्दुकमा चिनो लगाएको छैन ।",
        "lockdbsuccesssub": "डेटाबेस ताल्चा मार्नेकाम सफल भयो",
        "unlockdbsuccesssub": "डेटाबेस ताल्चा हटाइयो",
+       "lockdbsuccesstext": "डेटाबेसमा ताला लगाइएको छ।\nतपाईंद्वारा मेन्टेनेन्स पूरा भइसके पछी [[Special:UnlockDB|ताला खोल्न]] याद राख्नुहोला।",
        "unlockdbsuccesstext": "डेटाबेसको ताल्चा खोलियो ।",
+       "lockfilenotwritable": "डेटाबेसमा लक फ़ाईल लेख्नयोग्य छैन।\nडेटाबेसमा ताला लगाउन वा खोल्नको लागि, यस फाइलमा लेखना योग्य बनाउनु जरूरी छ।",
        "databasenotlocked": "डेटाबेस ताल्चा मारिइएको छैन",
        "lockedbyandtime": "( {{GENDER:$1|$1}} आधारमा  $2 at $3 मा )",
        "move-page": " $1 लाई सार्ने",
        "move-page-legend": "पृष्ठ सार्नुहोस्",
-       "movepagetext": "तल दिएको फार्मको उपयोगले पृष्ठ नाम परिवर्तन हुनेछ र पृष्ठको सम्पूर्ण इतिहास नयाँ नामको साथमा जानेछ।\nपुरानो शीर्षक नयाँ शीर्षककोलागि अनुप्रेषित(redirect) पृष्ठ बनिनेछ।\nतपाईंले यो स्वचालित रूपले अनुप्रेषित पृष्ठलाई अद्यतन गर्न सक्नुहुनेछ।\nयदि तपाईं हुँदैन चुन्नुहुन्छ भनें जाँचेर सुनिश्चित गर्नुहोस् कि [[Special:DoubleRedirects|double]] अथवा [[Special:BrokenRedirects|broken redirects]].\nतपाईंमाथि यो सुनिश्चित गर्ने  उत्तरदायित्व रहन्छ कि लिंक कुन बिंदुमा जानु पर्ने हो ।\n\nध्यान दिनुहोस् नयाँ नामको पृष्ठ पहिलेबाट नैं छ भनें पृष्ठ सारिने छैन। नयाँ नामको पृष्ठ पहिलेबाट भएर पनि यदि यो खालि छ अथवा अनुप्रेषित छ र सम्पादित इतिहास छैन भनें सारिनेछ।\nयसको अर्थ हुन्छ यदि कुनै गल्ती गरेमा तपाईंले पुनः पुरानै नाम दिनु पर्ने हुन्छ यसलाई अधिलेखन(overwrite) गर्नसक्नु हुनेछैन। \n\n'''चेतावनी!'''\nयो एक लोकप्रिय पृष्ठको लागि एउटा कठोर र अप्रत्याशित परिवर्तन हुनसक्नेछ;\nकृपया सुनिश्चित गर्नुहोस् कि तपाईंले यसको सही परिणाम बुझ्नु भएकोछ अनि मात्र नयाँ नाम दिन अघि बढ्नुहोस्।",
+       "movepagetext": "तल दिएको फारमको उपयोगले पृष्ठ नाम परिवर्तन हुनेछ र पृष्ठको सम्पूर्ण इतिहास नयाँ नामको साथमा जानेछ।\nपुरानो शीर्षक नयाँ शीर्षककोलागि अनुप्रेषित पृष्ठ बनिनेछ।\nतपाईंले यो स्वचालित रूपले अनुप्रेषित पृष्ठलाई अपडेट गर्न सक्नुहुनेछ।\nयदि तपाईं हुँदैन चुन्नुहुन्छ भनें जाँचेर सुनिश्चित गर्नुहोस् कि [[Special:DoubleRedirects|दोहोरो]] अथवा [[Special:BrokenRedirects|टुटेको अनुप्रेषण]]।\nतपाईंमाथि यो सुनिश्चित गर्ने उत्तरदायित्व रहन्छ कि लिङ्क कुन विन्दुमा जानु पर्ने हो ।\n\nध्यान दिनुहोस् नयाँ नामको पृष्ठ पहिलेबाट नैं छ भनें पृष्ठ सारिने <strong>छैन</strong>। नयाँ नामको पृष्ठ पहिलेबाट भएर पनि यदि यो खालि छ अथवा अनुप्रेषित छ र सम्पादित इतिहास छैन भनें सारिनेछ।\nयसको अर्थ हुन्छ यदि कुनै गल्ती गरेमा तपाईंले पुनः पुरानै नाम दिनु पर्ने हुन्छ यसलाई अधिलेखन गर्नसक्नु हुनेछैन। \n\n<strong>चेतावनी!</strong>\nयो एक लोकप्रिय पृष्ठको लागि एउटा कठोर र अप्रत्याशित परिवर्तन हुनसक्नेछ;\nकृपया सुनिश्चित गर्नुहोस् कि तपाईंले यसको सही परिणाम बुझ्नु भएको छ अनि मात्र नयाँ नाम दिन अघि बढ्नुहोस्।",
+       "movepagetext-noredirectfixer": "तल दिइएको फारम पृष्ठको नाम परिवर्तन गर्नेछ, उसको सबै इतिहास पनि नयाँ नामले देखिनेछ।\nपुरानो शीर्षक नयाँ नाममा अनुप्रेषण गर्नेछ।\nमूल शीर्षक तर्फ लिएर जाने सबै अनुप्रेषणहरूलाई तपाईं स्वचालित रूपले परिवर्तन गर्न सक्नुहुन्छ।\nयदि तपाईं यसो गर्नुहुन्न भने कृपया [[Special:DoubleRedirects|दोहोरो]] पुनर्निर्देशन वा [[Special:BrokenRedirects|टुटेको पुनर्निर्देशन]]को लागि पक्कै जाँच गर्नुहोस।\nलिङ्क आफ्नो स्थानमै रहोस, यो सुनिश्चित गर्ने जिम्मेवारी तपाईंको हो।\n\nयदि नयाँ शीर्षकको लेख पहिले देखि छ भने स्थानान्तरण '''हुन''' सक्दैन। तर यदि नयाँ शीर्षक भएको लेख खाली छ अथवा कतै अन्य स्थानमा अनुप्रेषित गर्दैछ र साथै उसको पुरानो संस्करण छैन भने त्यो स्थानान्तरण हुनेछ।\nयसको अभिप्राय यो हो कि यदि तपाईंद्वारा गलती भएको छ भने तपाईं फेरी पुरानो नाममा यस पृष्ठलाई स्थानान्तरण गर्न सक्नुहुन्छ, र साथै तपाईं कुनै पहिले देखि रहेको पृष्ठको सट्टा यो स्थानान्तरण गर्न सक्नुहुन्न।\n\n<strong>चेतावनी!<strong>\nयदि पृष्ठ खासै लोकप्रिय छ भने त्यसको लागि यो एउटा ठुलो र अकस्मात परिवर्तन हुन सक्छ;\nअगाडी बढ्नु भन्दा पहिले तपाईं यसको नतिजासँग परिचित हुनुहुन्छ।",
        "movepagetalktext": "संबद्ध वार्तालाप पृष्ठ स्वतः योसित जानेछ '''यदि'''\n* नयाँ नामको पृष्ठको वार्तालाप पृष्ठ रिक्त छैन अथवा\n* तपाईंले यसको सन्दूकमा अनचेक गर्नुहुन्छ भनें '''वार्तालाप पृष्ठ जानेछैन'''। \n\nयस्तो भएमा, तपाईंको इच्छाले आफैंले (manually) पृष्ठ सार्नु अथवा मिलाउनु पर्ने हुन्छ।",
        "movearticle": "पृष्ठ सार्नुहोस्",
        "moveuserpage-warning": "'''चेतावनी:''' तपाईंले प्रयोगकर्ता पृष्ठ सार्न आँट्नु भएकोछ। कृपया याद राख्नुहोस् पृष्ठ मात्र सारिने छ र प्रयोगकर्ताको अर्को नाम राख्न '''सकिंदैन'''।",
+       "movecategorypage-warning": "<strong>चेतावनी:</strong> तपाईं एउटा श्रेणी पृष्ठलाई स्थानान्तरित गर्न जादै हुनुहुन्छ। याद राख्नुहोस् कि मात्रै यो पृष्ठ स्थानान्तरित हुनेछ र पुरानो श्रेणीमा सामेल पृष्ठ नयाँ श्रेणी अन्तर्गत <em>जाने</em> छैन।",
        "movenologintext": "पृष्ठ सार्नको लागि तपाई दर्ता गरिएको र [[Special:UserLogin|प्रवेश गरेको]] प्रयोगकर्ता हुनुपर्छ ।",
        "movenotallowed": "तपाईँलाई पृष्ठ सार्ने अनुमति छैन",
        "movenotallowedfile": "फाइल हटाउने अनुमति तपाईँलाई  छैन।",
-       "cant-move-user-page": "तपाईसँग प्रयोगकर्ता पृष्ठहरु सार्न अनुमती छैन (सहपृष्ठहरु बाहेक)",
-       "cant-move-to-user-page": "तपाईसँग पृष्ठहरु प्रयोगकर्ता पृष्ठमा सार्न अनुमती छैन (प्रयोगकर्ता सहपृष्ठहरमा बाहेक)",
+       "cant-move-user-page": "तपाईसँग प्रयोगकर्ता पृष्ठहरू सार्न अनुमती छैन (सहपृष्ठहरू बाहेक)",
+       "cant-move-to-user-page": "तपाईंलाई पृष्ठहरू प्रयोगकर्ता पृष्ठमा सार्न अनुमती छैन (प्रयोगकर्ता सहपृष्ठहरूमा बाहेक)",
+       "cant-move-category-page": "तपाईलाई श्रेणीको पृष्ठहरू सार्ने अनुमति छैन ।",
+       "cant-move-to-category-page": "कुनै श्रेणी पृष्ठमा सार्नको लागी तपाईलाई अनुमति छैन ।",
        "newtitle": "नयाँ शीर्षकमा :",
        "move-watch": "यो पृष्ठ निगरानीमा राख्नुहोस्",
        "movepagebtn": "पृष्ठ सार्नुहोस्",
        "articleexists": "यस नामको पृष्ठ पहिले देखि नै रहेको ,या तपाईँले छान्नु भएको नाम अमान्य छ।\nकृपया अर्कै नाम छान्नुहोस् ।",
        "cantmove-titleprotected": "तपाईले यो स्थानमा पृष्ठ सार्न सक्नुहुन्न, किनकी यो नयाँ शिर्षकलाई सिर्जना हुनबाट जोगाइएको छ",
        "movetalk": "सम्बन्धित वार्ता पृष्ठ",
-       "move-subpages": "सहायà¤\95 à¤ªà¥\83षà¥\8dठहरà¥\81 सार्ने($1 सम्मको)",
-       "move-talk-subpages": "वारà¥\8dतालाप à¤ªà¥\83षà¥\8dठà¤\95à¥\8b à¤¸à¤¹-पà¥\83षà¥\8dठहरà¥\81 सार्ने($1 सम्मको )",
+       "move-subpages": "सहायà¤\95 à¤ªà¥\83षà¥\8dठहरà¥\82 सार्ने($1 सम्मको)",
+       "move-talk-subpages": "वारà¥\8dतालाप à¤ªà¥\83षà¥\8dठà¤\95à¥\8b à¤¸à¤¹-पà¥\83षà¥\8dठहरà¥\82 सार्ने($1 सम्मको )",
        "movepage-page-exists": "$1 पृष्ठ पहिले देखि नै रहेको छ र स्वत: अधिलेखन गर्न सकिएन ।",
        "movepage-page-moved": " $1 पृष्ठलाई $2 मा सारियो ।",
        "movepage-page-unmoved": "$1 पृष्ठलाई $2 मा सार्न सकिएन ।",
-       "movepage-max-pages": "à¤\85धिà¤\95तम $1 {{PLURAL:$1|पà¥\83षà¥\8dठ|पà¥\83षà¥\8dठहरà¥\81}} सारिसकिएको छ र अरु स्वत: सारिने छैन ।",
+       "movepage-max-pages": "à¤\85धिà¤\95तम $1 {{PLURAL:$1|पà¥\83षà¥\8dठ|पà¥\83षà¥\8dठहरà¥\82}} सारिसकिएको छ र अरु स्वत: सारिने छैन ।",
        "movelogpage": "लग सार्ने",
        "movelogpagetext": "सबै सारिएका पृष्ठहरुको सूची तल दिइएकोछ।",
        "movesubpage": "{{PLURAL:$1|उपपृष्ठ|उपपृष्ठहरू}}",
-       "movesubpagetext": "यस à¤ªà¥\83षà¥\8dठà¤\95à¥\8b $1 {{PLURAL:$1|सह-पà¥\83षà¥\8dठ|सह-पà¥\83षà¥\8dठहरà¥\81}} तल देखाइएको :",
-       "movenosubpage": "यस à¤ªà¥\83षà¥\8dठà¤\95ा à¤\89प à¤ªà¥\83षà¥\8dठहरà¥\81 छैनन्।",
+       "movesubpagetext": "यस à¤ªà¥\83षà¥\8dठà¤\95à¥\8b $1 {{PLURAL:$1|सह-पà¥\83षà¥\8dठ|सह-पà¥\83षà¥\8dठहरà¥\82}} तल देखाइएको :",
+       "movenosubpage": "यस à¤ªà¥\83षà¥\8dठà¤\95ा à¤\89प à¤ªà¥\83षà¥\8dठहरà¥\82 छैनन्।",
        "movereason": "कारण :",
        "revertmove": "पहिलेको रुपमा फर्काउने",
        "delete_and_move": "मेट्ने अनि हटाउने",
        "immobile-target-namespace-iw": "अन्तरविकी लिङ्क पृष्ठ सार्नको लागि मान्य गन्तव्य हुनसक्दैन।",
        "immobile-source-page": "यो पृष्ठ सार्न योग्यको छैन।",
        "immobile-target-page": "त्यस गन्तव्य शिर्षकमा सार्न सकिन्न।",
+       "bad-target-model": "चाहेको स्थान भिन्न सामग्री नमूनाको प्रयोग गर्दछ। $1 लाई परिवर्तन $2 गर्न सकिंदैन।",
        "imagenocrossnamespace": "फाइललाई बिना-फाइल नेमस्पेसमा सार्न सकिंदैन।",
        "nonfile-cannot-move-to-file": "गैह्र फाइललाई फाइल नेमस्पेसमा सार्न सकिन्न।",
        "imagetypemismatch": "नयाँ फाइल एक्सटेन्सन फाइलको प्रकारसँग मेल खादैन।",
        "imageinvalidfilename": "गन्तव्य फाइल नाम अमान्य छ।",
+       "fix-double-redirects": "मुल शिर्षकमा केन्द्रित रिडाइरेक्टलाई अद्यावधिक गर्ने",
        "move-leave-redirect": "पछाडी एक अनुप्रेषण छोडिराख्ने",
+       "protectedpagemovewarning": "<strong>सूचना:</strong> यस पृष्ठलाई सुरक्षित गरिएको छ यसकारण प्रवन्धनको विशेषाधिकार प्राप्त प्रयोगकर्ताहरुले मात्र यसलाई सम्पादन गर्न सक्छन् ।\nसन्दर्भको लागि नविनतम लग प्रविष्टि तल दिइएको छ:",
+       "semiprotectedpagemovewarning": "<strong>सूचना:</strong> यो पृष्ठलाई सुरक्षित गरिएको हुँदा दर्ता भएका प्रयोगकर्ताहरूले मात्र यसलाई सम्पादन गर्न सक्छन् ।\nसन्दर्भको लागि नविनतम लग प्रविष्टि तल दिइएको छ:",
+       "move-over-sharedrepo": "==फाइल पहिले देखि छ==\n[[$1]] एक साझा भण्डारमा पहिले देखि नै छ। यस नामको स्थानान्तरणले नयाँ फाइल साझा फाइललाई ओभरराइड गर्नेछ।",
+       "file-exists-sharedrepo": "छानिएको फाइल नाम पहिले देखि नै साझा भण्डारमा प्रयोगमा छ। कृपया अन्य नाम छान्नुहोस्।",
        "export": "पृष्ठहरू निर्यात गर्ने",
+       "exporttext": "तपाईं विशिष्ठ पृष्ठको विषय वस्तु र सम्पादन इतिहासलाई निर्यात गर्न सक्नुहुन्छ अथवा पृष्ठहरूको समूहका केहि XML मा बेर्न सक्नुहुन्छ।\nयो [[Special:Import|आयात पृष्ठ]]को सहायताले मीडियाविकीको प्रयोग गरेर दोश्रो विकीबाट आयात गर्न सकिनेछ।\n\nपृष्ठहरूको निर्यात गर्नका लागि, तल विषय वस्तु बाकसमा शीर्षक दिनुहोस, एक शीर्षक प्रति पङ्क्ति, र छान्नुहोस् कि तपाईं वर्तमान अवतरणसँग पुरानै अवतरण पनि चाहनुहुन्छ वा चाहनुहुन्न, वा पछिल्लो सम्पादनको बारेमा जानकारीसँग मात्रै वर्तमान अवतरण चाहनुहुन्छ।\n\nपछीको स्थितिको लागि तपाईं लिङ्कको पनि प्रयोग गर्न सक्नुहुन्छ, उदाहरणको लागि, \"[[{{MediaWiki:Mainpage}}]]\" पृष्ठको लागि [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]।",
        "exportall": "सबै पृष्ठहरू निर्यात गर्ने",
        "exportcuronly": "हालको संस्करण मात्र थप्ने ,पूरा इतिहास हैन",
+       "exportnohistory": "----\n<strong>सूचना:</strong> यस फारमको प्रयोग गरेर पृष्ठको पुरै इतिहास निर्यात गर्दा प्रदर्शन कारणले अक्षम गरिएको छ।",
+       "exportlistauthors": "योगदानकर्ताहरूको पूर्ण सूची प्रत्येक पृष्ठमा समाबेश गर्ने",
        "export-submit": "निर्यात",
        "export-addcattext": "श्रेणीबाट पृष्ठ थप्ने :",
        "export-addcat": "थप्ने",
        "export-addns": "थप्ने",
        "export-download": "सङ्ग्रह गर्ने",
        "export-templates": "ढाँचाहरु संलग्न गर्नुहोस्",
+       "export-pagelinks": "जोडिएको पृष्ठलाई यस गहराईसम्म समाबेश गर्नेः",
        "allmessages": "सिस्टम सन्देशहरू",
        "allmessagesname": "नाम",
        "allmessagesdefault": "डिफल्ट सन्देश पाठ",
        "allmessagescurrent": "वर्तमान सन्देश पाठ",
        "allmessagestext": "यो मीडियाविकि नेमस्पेसमा पाइने सिस्टम सन्देशहरूको सूची हो।\nयदि तपाईं व्यापक मीडिया विकि स्थानीयकरणमा योगदान गर्न चाहनुहुन्छ भनें कृपया [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation]मा र [//translatewiki.net translatewiki.net]मा जानुहोस्।",
+       "allmessagesnotsupportedDB": "<strong>$wgUseDatabaseMessages</strong> लाई निस्क्रिय गरिएकोले यो पृष्ठ प्रयोग गर्न सकिदैन ।",
        "allmessages-filter-legend": "फिल्टर",
+       "allmessages-filter": "अनुकूल स्थितिको आधारमा छान्नुहोस्:",
        "allmessages-filter-unmodified": "असंशोधित",
        "allmessages-filter-all": "सबै",
        "allmessages-filter-modified": "परिवर्तन गरिएको",
        "thumbnail-more": "ठूलो बनाउने",
        "filemissing": "फाइल हराएकोछ",
        "thumbnail_error": "थम्बनेल(thumbnail) निर्माणमा त्रुटि: $1",
+       "thumbnail_error_remote": "$1 बाट समस्या सन्देशः $2",
+       "djvu_page_error": "डिजेभियु पृष्ठ सिमा भन्दा बाहिर",
+       "djvu_no_xml": "डिजेभियु फाइलबाट एक्सएमएल तान्न सकिएन",
+       "thumbnail-temp-create": "अस्थायी थम्बनेल तयार गर्न असमर्थ",
+       "thumbnail-dest-create": "तोकिएको ठाँउमा थम्बनेललाई संग्रह गर्न सकिएन",
        "thumbnail_invalid_params": "अमान्य थम्बनेल पैरामीटर",
+       "thumbnail_toobigimagearea": "$1 भन्दा बढी नाप भएको फाइल",
        "thumbnail_dest_directory": "गन्तव्य निर्देशिका बनाउन असमर्थ",
        "thumbnail_image-type": "चित्रको प्रकार समर्थित छैन",
+       "thumbnail_gd-library": "अपूर्ण GD पुस्तकालय कन्फिगरेसनः $1 कार्य छुटेको",
        "thumbnail_image-missing": "फाइल हराएको भान भइरहेछ: $1",
+       "thumbnail_image-failure-limit": "हालैको समयमा यस थम्बनेलको दोश्रो रूप दिने कयौं असफल प्रयास भएको छ ($1 या त्यसभन्दा बढी) । कृपया पुन प्रयास केहि समय पछी गर्नुहोला।",
        "import": "पृष्ठहरू आयात गर्नुहोस्",
        "importinterwiki": "अन्य विकिबाट आयात गर्ने",
+       "import-interwiki-text": "आयात गर्नका लागि एक विकि वा एक पृष्ठ छान्नुहोस्।\nअवतरण मिति र सम्पादकहरूको नाम उस्तै राखिनेछ। अन्य विकिबाट सबै आयात [[Special:Log/import|आयात लग]]मा राखिन्छ।",
+       "import-interwiki-sourcewiki": "श्रोत विकिः",
+       "import-interwiki-sourcepage": "श्रोत पृष्ठः",
        "import-interwiki-history": "यो पृष्ठकोलागि सबै इतिहास संशोधनहरु प्रतिलिपि गर्ने",
        "import-interwiki-templates": "सबै टेम्प्लेटहरु(नमुना) समेट्ने",
        "import-interwiki-submit": "आयात",
+       "import-mapping-default": "पूर्वनिर्धारित स्थानहरूमा आयात",
+       "import-mapping-namespace": "नेमस्पेसमा आयातः",
+       "import-mapping-subpage": "निम्नानुसारको पृष्ठको सहपृष्ठको रूपमा आयातः",
        "import-upload-filename": "फाइल नाम:",
        "import-comment": "टिप्पणी :",
+       "importtext": "कृपया स्रोत विकिबाट फाइल निर्यात गर्नका लागि [[Special:Export|निर्यात सुविधा]]को प्रयोग गर्नुहोस। यसलाई आफ्नो कम्प्युटरमा सङ्ग्रह गरे यहाँ अपलोड गर्नुहोस।",
        "importstart": "पृष्ठ आयात गरिँदै...",
        "import-revision-count": "$1 {{PLURAL:$1|पुनरावलोकन|पुनरावलोकनहरु}}",
        "importnopages": "आयातगर्नको लागि कुनै पृष्ठ छैन।",
+       "imported-log-entries": "आयातित $1 {{PLURAL:$1|लग प्रविष्टी|लग प्रविष्टीहरू}}",
        "importfailed": "आयात असफल भयो :<nowiki>$1</nowiki>",
        "importunknownsource": "अज्ञात आयात स्रोत प्रकार ।",
        "importcantopen": "आयात गर्ने स्रोत फाइल खोल्न सकिएन ।",
        "importbadinterwiki": "खराव अन्तर विकि लिंक",
        "importsuccess": "आयात सम्पन्न भयो!",
+       "importnosources": "कुनै पनि विकी यस्तो छैन जसको आयातको विवरण गरिएको छ र सिधै इतिहासको अपलोडमा प्रतिबन्ध गरिएको छ।",
        "importnofile": "कुनै पनि आयात फाइल अपलोड गरिएन ।",
        "importuploaderrorsize": "आयात फाइलको अपलोड असफल भयो।\nफाइल अनुमति दिइए भन्दा ठूलो छ।",
        "importuploaderrorpartial": "आयात फाइलको अपलोड असफल भयो।\nफाइल आंशिकरुपमा अपलोड भयो।",
        "importuploaderrortemp": "आयात फाइलको अपलोड असफल भयो।\nअस्थाइ फोल्डर हराइरहेको छ।",
        "import-parse-failure": "XML आयात अध्यन असफल",
-       "import-noarticle": "à¤\86यात à¤\97रà¥\8dनà¤\95à¥\8b à¤²à¤¾à¤\97ि à¤ªà¥\83षà¥\8dठहरà¥\81 छैनन्",
-       "import-nonewrevisions": "सबà¥\88 à¤ªà¥\81नरावलà¥\8bà¤\95नहरà¥\81 à¤ªà¤¹à¤¿à¤²à¥\87 à¤¨à¥\88 à¤\86यात à¤\97रिà¤\8fà¤\95à¥\8b à¤¹à¥\8b ।",
+       "import-noarticle": "à¤\86यात à¤\97रà¥\8dनà¤\95à¥\8b à¤²à¤¾à¤\97ि à¤ªà¥\83षà¥\8dठहरà¥\82 छैनन्",
+       "import-nonewrevisions": "सबà¥\88 à¤ªà¥\81नरावलà¥\8bà¤\95नहरà¥\82 à¤ªà¤¹à¤¿à¤²à¥\87 à¤¨à¥\88 à¤\86यात à¤\97रिà¤\8fà¤\95à¥\8b à¤¹à¥\8b।",
        "xml-error-string": "$1  पंक्ति $2 , हरफ $3 (बाइट $4): $5",
        "import-upload": "XML डेटा अपलोड गर्ने",
        "import-token-mismatch": "सत्र जानकारी नष्ट भयो\nकृपया पुन: प्रयास गर्नुहोस्।",
        "import-invalid-interwiki": "खुलाइएको विकिबाट आयात गर्न सकिएन",
+       "import-error-edit": "तपाईलाई सम्पादन गर्ने अनुमति नभएको पृष्ठ \"$1\" आयात गरिएन ।",
+       "import-error-create": "तपाईलाई नयाँ बनाउने गर्ने अनुमति नभएको पृष्ठ \"$1\" आयात गरिएन ।",
+       "import-error-interwiki": "यसको नाम बाह्य लिङ्क (अन्तरविकि) को लागी जगेडा राखिएको हुँदा  पृष्ठ \"$1\" आयात गरिएन ।",
+       "import-error-special": "पृष्ठ \"$1\" आयात गर्न सकिएन किनभने यो एउटा यस्तो विशेष नामस्थान अन्तर्गत आउँछ जसमा पृष्ठ बनाउन सकिंदैन।",
+       "import-error-invalid": "पृष्ठ \"$1\" आयात गर्न सकिएन किनभने यसको आयात पश्चात जुन नाम हुन्थ्यो त्यो यस विकिमा मान्य छैन।",
+       "import-error-unserialize": "पृष्ठ \"$1\" को संशोधन $2 लाई क्रमबाट हटाउन सकिएन। संशोधनको बारेमा भनिएको छ कि सामग्री नमूना $3 लाई क्रम $4 को रूप प्रयोगमा ल्याइएको थियो।",
+       "import-error-bad-location": "संशोधन $2 जसमा सामग्री नमूनाहरू $3 मा प्रयोग गरिएको छ, लाई यस विकिमा \"$1\" मा सङ्ग्रह गर्न सकिंदैन, किनकि त्यो नमूना यस पृष्ठको नमूनहरू भन्दा भिन्न छ।",
+       "import-options-wrong": "गलत {{PLURAL:$2|विकल्प|विकल्पहरू}}: <nowiki>$1</nowiki>",
+       "import-rootpage-invalid": "दिइएको उपसर्ग पृष्ठ शीर्षक अमान्य छ।",
+       "import-rootpage-nosubpage": "दिइएको उपसर्ग पृष्ठ \"$1\" को नामस्थानमा उप-पृष्ठ बनाउन सकिंदैन।",
        "importlogpage": "आयात सूची",
+       "importlogpagetext": "अन्य विकिहरूबाट प्रवन्धकहरूद्वारा गरिएको सम्पादन इतिहाससँग हुने पृष्ठहरूको आयात।",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|संशोधन|संशोधनहरु}} आयात भयो",
        "import-logentry-interwiki-detail": "$2 देखि $1 {{PLURAL:$1|पुनरावलोकन|पुनरावलोकनहरु}} आयात भयो",
+       "javascripttest": "JavaScript जाँच गरिदै",
+       "javascripttest-pagetext-noframework": "यो पृष्ठ जाभास्क्रिपट जाँचहरूको लागी जगेडामा राखिएको छ ।",
+       "javascripttest-pagetext-unknownframework": "अज्ञात जाँच खाँका \"$1\" ।",
+       "javascripttest-pagetext-unknownaction": "अज्ञात कारवाही \"$1\" ।",
+       "javascripttest-pagetext-frameworks": "कृपया निम्न परीक्षण ढाँचाहरू मध्ये एउटा छान्नुहोस्: $1",
+       "javascripttest-pagetext-skins": "परीक्षणको लागि खोल छान्नुहोस्:",
+       "javascripttest-qunit-intro": "mediawiki.org मा [$1 जाँचको कागजात] हेर्नुहोस् ।",
        "tooltip-pt-userpage": "तपाईको प्रयोगकर्ता पृष्ठ",
        "tooltip-pt-anonuserpage": "तपाईले जुन IP ठेगानाको रुपमा सम्पादन गर्दै हुनुहुन्छ , त्यसको प्रयोगकर्ता पृष्ठ निम्न छ :",
        "tooltip-pt-mytalk": "तपाईको वार्ता पृष्ठ",
        "tooltip-feed-atom": "यो पृष्ठको लागि एटम फिड",
        "tooltip-t-contributions": "यस प्रयोगकर्ताका योगदानहरूको सूची हेर्नुहोस्",
        "tooltip-t-emailuser": "यो प्रयोगकर्तालाई इमेल पठाउनुहोस्",
+       "tooltip-t-info": "यस पृष्ठको बारेमा थप जानकारी",
        "tooltip-t-upload": "फाइल अपलोड गर्ने",
        "tooltip-t-specialpages": "सबै विशेष पृष्ठहरूको सूची",
        "tooltip-t-print": "यो पृष्ठको मुद्रण योग्य संस्करण",
        "spambot_username": "MediaWiki स्पाम सर-सफाइ",
        "spam_reverting": "$1 मा कडीहरू  नभएका पुरानो अवतरणमा पुनर्स्थापित गर्दै",
        "spam_blanking": "$1 का सबै अवतरणहरूमा कडीहरू  भेटिए, मेटाएर खालि गर्दै",
+       "spam_deleting": "$1 भएको सम्पूर्ण संशोधन कडीहरू मेटाइदै",
        "simpleantispam-label": "ऐन्टी-स्प्याम जाँच।\nयसलाई <strong>नहीं</strong> भर्ने!",
        "pageinfo-title": " \"$1\"को लागि जाकारी",
+       "pageinfo-not-current": "माफ गर्नुहोस्, यो जानकारी पूरानो संस्करणमा उपलब्ध गराउन असम्भव छ ।",
        "pageinfo-header-basic": "साधारण जानकारी",
        "pageinfo-header-edits": "सम्पादन इतिहास",
        "pageinfo-header-restrictions": "पृष्ठ सुरक्षा",
        "pageinfo-header-properties": "पृष्ठ गुणहरू",
        "pageinfo-display-title": "प्रदर्शन शिर्षक",
+       "pageinfo-default-sort": "पूर्वनिर्धारित सर्ट साँचो",
+       "pageinfo-length": "पृष्ठ लम्बाई (बाईटमा)",
+       "pageinfo-article-id": "पृष्ठ परिचय",
+       "pageinfo-language": "पृष्ठ सामग्रीको भाषा",
+       "pageinfo-content-model": "पृष्ठ सामाग्री नमुना",
+       "pageinfo-robot-policy": "रोबोटहरूद्वारा अनुक्रमणिका",
+       "pageinfo-robot-index": "अनुमति भएको",
+       "pageinfo-robot-noindex": "अनुमति नभएको",
        "pageinfo-watchers": "पृष्ठ निगरानी कर्ताहरुको संख्या",
+       "pageinfo-few-watchers": "$1 {{PLURAL:$1|अबलोकनकर्ता|अबलोकनकर्ताहरू}} भन्दा कम",
+       "pageinfo-redirects-name": "यस पृष्ठमा रिडाइरेक्टसको संख्या",
+       "pageinfo-subpages-name": "यस पृष्ठको सहपृष्ठको संख्या",
+       "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|अनुप्रेषित|अनुप्रेषणहरू}}; $3  {{PLURAL:$3|गैर-अनुप्रेषण|गैर-अनुप्रेषणहरू}})",
+       "pageinfo-firstuser": "पृष्ठ निर्माता",
+       "pageinfo-firsttime": "पृष्ठ निर्माण गरिएको मिति",
+       "pageinfo-lastuser": "नविनतम सम्पादक",
+       "pageinfo-lasttime": "नविनतम सम्पादन मिति",
        "pageinfo-edits": "कुल सम्पादन संख्या",
        "pageinfo-authors": "कुल फरक सम्पादकरूको संख्या",
+       "pageinfo-recent-edits": "भर्खरैका सम्पादन संख्याहरू ($1 भित्र)",
+       "pageinfo-recent-authors": "भर्खरैका फरक लेखकहरूको संख्या",
+       "pageinfo-magic-words": "जादु {{PLURAL:$1|शब्द|शब्दहरू}} ($1)",
+       "pageinfo-hidden-categories": "लुकाइएको {{PLURAL:$1|श्रेणी|श्रेणीहरू}} ($1)",
+       "pageinfo-templates": "प्रयुक्त {{PLURAL:$1|ढाँचा|ढाँचाहरू}} ($1)",
+       "pageinfo-transclusions": "$1 {{PLURAL:$1|पृष्ठ|पृष्ठहरू}}मा ट्रान्सक्ल्युडेड",
        "pageinfo-toolboxlink": "पृष्ठ जानकारी",
        "pageinfo-redirectsto": "अनुप्रेषित",
        "pageinfo-redirectsto-info": "जानकारी",
        "pageinfo-contentpage": "सामग्री पृष्ठको रुपमा गणना गरिएको",
        "pageinfo-contentpage-yes": "हो",
+       "pageinfo-protect-cascading": "सुरक्षाहरू यहाँबाट क्यासकेडिङ्ग गरिएकोछ",
        "pageinfo-protect-cascading-yes": "हो",
+       "pageinfo-protect-cascading-from": "सुरक्षाहरू क्यासकेडिङ्ग भएको",
+       "pageinfo-category-info": "श्रेणी जानकारी",
+       "pageinfo-category-total": "कुल सदस्यहरूको संख्या",
        "pageinfo-category-pages": "पृष्ठहरूको संख्या",
        "pageinfo-category-subcats": "उपश्रेणीहरूको संख्या",
        "pageinfo-category-files": "फाइलहरूको संख्या",
        "markedaspatrollederror": "गस्ती गरिएको भनी चिनो लगाउन सकिएन ।",
        "markedaspatrollederrortext": "गस्ती गरिएको भनि चिनो लगाउनको निम्ती संस्करण खुलाउनु पर्छ ।",
        "markedaspatrollederror-noautopatrol": "तपाईको आफ्नै सम्पादनलाई गस्ती गरिएको भनि चिनो लउन पाइदैन ।",
+       "markedaspatrollednotify": "$1 मा गरिएको यो परिवर्तनलाई गस्ति गरिएको चिन्ह लगाइएको छ ।",
+       "markedaspatrollederrornotify": "गस्ती अङ्कित गर्न विफल।",
        "patrol-log-page": "निगरानीको लग",
        "patrol-log-header": "गस्ती गरिएका संस्करणहरुको लग यस प्रकार रहेका छन् ।",
        "log-show-hide-patrol": "$1 निगरानी लग",
+       "log-show-hide-tag": "$1 ट्याग लग",
        "deletedrevision": "पुराना पुनरावलोकनहरु $1 मेटिए",
        "filedeleteerror-short": "$1 फाइल मेटाइमा भूल",
        "filedeleteerror-long": "निम्न फाइल मेट्ने क्रममा त्रुटी भयो:\n\n$1",
        "imagemaxsize": "तस्विर आकार सिमा:<br />''(फाइल जानकारी पृष्ठको लागि )''",
        "thumbsize": "थम्बनेल आकार:",
        "widthheight": "$1 × $2",
-       "widthheightpage": "$1 Ã\97 $2, $3 {{PLURAL:$3|पà¥\83षà¥\8dठ|पà¥\83षà¥\8dठहरà¥\81}}",
+       "widthheightpage": "$1 Ã\97 $2, $3 {{PLURAL:$3|पà¥\83षà¥\8dठ|पà¥\83षà¥\8dठहरà¥\82}}",
        "file-info": "फाइल आकार: $1, MIME प्रकार: $2",
        "file-info-size": "$1 × $2 पिक्सेलहरु, फाइल आकार: $3, MIME प्रकार: $4",
-       "file-info-size-pages": "$1 Ã\97 $2 à¤ªà¤¿à¤\95à¥\8dसà¥\87लहरà¥\81, à¤«à¤¾à¤\87ल à¤\86à¤\95ार: $3, MIME à¤ªà¥\8dरà¤\95ार: $4, $5 {{PLURAL:$5|पà¥\83षà¥\8dठ|पà¥\83षà¥\8dठहरà¥\81}}",
+       "file-info-size-pages": "$1 Ã\97 $2 à¤ªà¤¿à¤\95à¥\8dसà¥\87लहरà¥\82, à¤«à¤¾à¤\87ल à¤\86à¤\95ार: $3, MIME à¤ªà¥\8dरà¤\95ार: $4, $5 {{PLURAL:$5|पà¥\83षà¥\8dठ|पà¥\83षà¥\8dठहरà¥\82}}",
        "file-nohires": "उच्च रिजोल्युशन अनुपलब्ध",
        "svg-long-desc": "SVG फाइल,साधारण $1 × $2 पिक्सेलहरु, फाइल आकार: $3",
+       "svg-long-desc-animated": "एनिमेटेड एसभिजी फाइल, नाममात्र $1 × $2 पिक्सेल, फाइल आकार: $3",
+       "svg-long-error": "अमान्य एसभिजी फाइल: $1",
        "show-big-image": "मूल फाइल",
        "show-big-image-preview": "यस पूर्व रुपको आकार: $1।",
        "show-big-image-other": "अरु {{PLURAL:$2|resolution|रिजोल्युशनहरु}}: $1।",
        "file-info-png-looped": "ग़ाँठो परेको",
        "file-info-png-repeat": "$1 {{PLURAL:$1|पल्ट|पल्ट}} खेलियो",
        "file-info-png-frames": "$1 {{PLURAL:$1|फ्रेम|फ्रेमहरु}}",
+       "file-no-thumb-animation": "<strong>टिप्पणी: प्राविधिक सीमाको कारण, यस फाइलको थम्बनेल एनिमेटेड गर्न सकिदैन।</strong>",
+       "file-no-thumb-animation-gif": "<strong>सूचना:प्राविधिक समस्याहरूको कारण यस फाइल जस्तै अधिक रिजोल्युसन जीआइयफ चित्रहरूको थम्बनेल ऐनिमेटेड हुँदैन।</strong>",
        "newimages": "नयाँ फाइलहरुको ग्यालरी",
        "imagelisttext": " '''$1''' {{PLURAL:$1|फाइल|फाइलहरु}} को निम्न सुची ,क्रमवद्ध $2.",
        "newimages-summary": "यस विशेष पृष्ठले अन्तिम उर्ध्वभरण गरिका फाइलहरु देखाउँछ ।",
        "newimages-legend": "फिल्टर",
        "newimages-label": "फाइल अथवा (यसको एउटा अंश)को नाम:",
+       "newimages-showbots": "बोटहरूद्वारा गरिएको अपलोड देखाउने",
        "noimages": "हेर्नको लागि केही छैन.",
        "ilsubmit": "खोज्नुहोस्",
        "bydate": "मिति अनुसार",
        "seconds": "{{PLURAL:$1|$1 सेकेन्ड|$1 सेकेन्डहरु}}",
        "minutes": "{{PLURAL:$1|$1 मिनेट|$1 मिनेटहरु}}",
        "hours": "{{PLURAL:$1|$1 घण्टा|$1 घण्टाहरु}}",
-       "days": "{{PLURAL:$1|$1 à¤¦à¤¿à¤¨|$1 à¤¦à¤¿à¤¨à¤¹à¤°à¥\81}}",
+       "days": "{{PLURAL:$1|$1 à¤¦à¤¿à¤¨|$1 à¤¦à¤¿à¤¨à¤¹à¤°à¥\82}}",
        "weeks": "{{PLURAL:$1|$1 हप्ता|$1 हप्ताहरू}}",
        "months": "{{PLURAL:$1|$1 महिना|$1 महिनाहरू}}",
        "years": "{{PLURAL:$1|$1 वर्ष|$1 वर्षहरू}}",
        "ago": "$1 पहिले",
        "just-now": "भर्खरै",
-       "hours-ago": "$1 {{PLURAL:$1|à¤\98नà¥\8dà¤\9fा|à¤\98नà¥\8dà¤\9fा}} à¤ªà¤¹à¤¿à¤²à¥\87",
-       "minutes-ago": "$1 {{PLURAL:$1|मिनेट|मिनेट}} पहिले",
-       "seconds-ago": "$1 {{PLURAL:$1|सà¥\87à¤\95à¥\87नà¥\8dड|सà¥\87à¤\95à¥\87नà¥\8dड}} à¤ªà¤¹à¤¿à¤²à¥\87",
+       "hours-ago": "$1 {{PLURAL:$1|à¤\98णà¥\8dà¤\9fा|à¤\98णà¥\8dà¤\9fाहरà¥\82}} à¤\85à¤\98ि",
+       "minutes-ago": "$1 {{PLURAL:$1|मिनेट|मिनेटहरू}} अघि",
+       "seconds-ago": "$1 {{PLURAL:$1|सà¥\87à¤\95à¥\87णà¥\8dड|सà¥\87à¤\95à¥\87णà¥\8dडहरà¥\82}} à¤\85à¤\98ि",
        "monday-at": "सोमबार $1 मा",
        "tuesday-at": "मङ्गलबार $1मा",
        "wednesday-at": "बुधबार $1मा",
        "exif-stripoffsets": "चित्र आँकड़ाको अवस्थिति",
        "exif-rowsperstrip": "प्रतिपंक्ति पट्टीहरुको संख्या",
        "exif-stripbytecounts": "प्रति कम्प्रेश्ड स्ट्रिप मा हुने बाइटहरू",
+       "exif-jpeginterchangeformat": "JPEG SOI को लागि अफसेट",
        "exif-jpeginterchangeformatlength": "JPEG आँकड़ाको बाइट",
        "exif-whitepoint": "सेतो बिंदु क्रोम्यासिटी(chromaticity)",
+       "exif-primarychromaticities": "क्रोमेटिसिटीज अफ प्राईमरिटीज",
+       "exif-ycbcrcoefficients": "रङ स्पेस परिवर्तन म्याट्रिक्स गुणाङ्क",
+       "exif-referenceblackwhite": "कालो र सेतो सन्दर्भ मानहरूको जोडी",
        "exif-datetime": "फाइल परिवर्तन मिति तथा समय",
        "exif-imagedescription": "चित्र नाम",
        "exif-make": "क्यामेरा निर्माता",
        "exif-relatedsoundfile": "सम्बन्धित अडियो फाइल",
        "exif-datetimeoriginal": "डेटा सञ्चालनको मिति र समय",
        "exif-datetimedigitized": "मिति र समय अंकीयकरण",
+       "exif-subsectime": "मितिसमय सबसेकेण्डहरू",
+       "exif-subsectimeoriginal": "मितिसमयमूल सबसेकेण्डहरू",
+       "exif-subsectimedigitized": "मितिसमयडिजिटाइज्ड सबसेकेण्डहरू",
        "exif-exposuretime": "एक्स्पोज़र समय",
        "exif-exposuretime-format": "$1 सेकेण्ड ($2)",
        "exif-fnumber": "F संख्या",
        "exif-flashenergy": "फ्ल्यास ऊर्जा",
        "exif-focalplanexresolution": "फोकल विमान एक्स संकल्प",
        "exif-focalplaneyresolution": "फोकल प्लेन वाई रिजोलुसन",
+       "exif-focalplaneresolutionunit": "फोकल प्लेन रिजोल्युसन एकाई",
        "exif-subjectlocation": "विषयको अवस्थिति",
        "exif-exposureindex": "एक्सपोजर सूचकांक",
        "exif-sensingmethod": "संवेदन विधि",
        "exif-exposuremode": "एक्स्पोज़र मोड",
        "exif-whitebalance": "श्वेत सन्तुलन",
        "exif-digitalzoomratio": "डिजिटल जूम अनुपात (4:3, 16:9)",
+       "exif-focallengthin35mmfilm": "३५ मीमी फिल्ममा फोकल लम्बाई",
        "exif-scenecapturetype": "दृश्य पकड़ प्रकार",
        "exif-gaincontrol": "दृश्य नियन्त्रण",
        "exif-contrast": "विषमता",
        "exif-gpssatellites": "नाप्नकोलागि प्रयोग गरिएका उपग्रहहरु",
        "exif-gpsstatus": "रिसिभर अवस्था",
        "exif-gpsmeasuremode": "माप मोड",
+       "exif-gpsdop": "मापन सटिकता",
        "exif-gpsspeedref": "गति इकाई",
        "exif-gpsspeed": "जीपीएस रिसीवरको गति",
+       "exif-gpstrackref": "चालको दिशाको लागि सन्दर्भ",
        "exif-gpstrack": "चलेको दिशा",
        "exif-gpsimgdirectionref": "चित्रको दिशाकोलागि सन्दर्भ",
        "exif-gpsimgdirection": "चित्रको दिशा",
+       "exif-gpsmapdatum": "जियोडेटिक सर्वेक्षण डेटा प्रयोग गरियो",
+       "exif-gpsdestlatituderef": "गन्तव्यको अक्षांशको लागी सन्दर्भ",
        "exif-gpsdestlatitude": "अक्षांश गंतव्य",
+       "exif-gpsdestlongituderef": "गन्तव्यको देशान्तरको लागी सन्दर्भ",
        "exif-gpsdestlongitude": "गंतव्यको देशान्तर",
+       "exif-gpsdestbearingref": "गन्तव्यको असरको लागी सन्दर्भ",
        "exif-gpsdestbearing": "गंतव्यको असर",
+       "exif-gpsdestdistanceref": "गन्तव्यसम्मको दुरीको लागी सन्दर्भ",
        "exif-gpsdestdistance": "गंतव्यसम्मको दूरी",
+       "exif-gpsprocessingmethod": "GPS प्रक्रिया पद्दतिको नाम",
        "exif-gpsareainformation": "जीपीएस क्षेत्रको नाम",
        "exif-gpsdatestamp": "जी पी एस मिति",
        "exif-gpsdifferential": "जीपीएस अंतर सुधार",
        "exif-exposureprogram-4": "सटर प्राथमिकता",
        "exif-exposureprogram-5": "शृजनात्मक कार्यक्रम(गहिराइसँग बाझिएको)",
        "exif-exposureprogram-6": "क्रिया कार्यक्रम (तेज शटर गतितर्फ झु्केको)",
+       "exif-exposureprogram-7": "पोर्ट्रेट मोड (क्लोजअप फोटोको लागि)",
+       "exif-exposureprogram-8": "ल्याण्डसकेप मोड (ब्याकग्राउन्ड सहित ल्याण्डसकेप फोटो)",
        "exif-subjectdistance-value": "$1 मिटर",
        "exif-meteringmode-0": "अज्ञात",
        "exif-meteringmode-1": "औसत",
+       "exif-meteringmode-2": "केन्द्र भारित औषत",
        "exif-meteringmode-3": "स्थान",
        "exif-meteringmode-4": "बहुस्थान",
        "exif-meteringmode-5": "ढाँचा",
        "exif-lightsource-12": "दिवा फ्लोरोसेन्ट  (D 5700 – 7100K)",
        "exif-lightsource-13": "दिवा फ्लोरोसेन्ट (N 4600 – 5400K)",
        "exif-lightsource-14": "शितल सेतो फ्लोरेसेन्ट (W 3900 – 4500K)",
+       "exif-lightsource-15": "सेतो फ्लोरोसेन्ट (डब्लुडब्लु ३२०० - ३७०० के)",
        "exif-lightsource-17": "मानक प्रकाश A",
        "exif-lightsource-18": "मानक प्रकाश B",
        "exif-lightsource-19": "मानक प्रकाश C",
        "exif-flash-redeye-1": "टल्किने-रातो-आँखा हटाउने तरिका",
        "exif-focalplaneresolutionunit-2": "इञ्च",
        "exif-sensingmethod-1": "अपरिभाषित",
+       "exif-sensingmethod-2": "वन-चीप कलर क्षेत्र सेन्सर",
+       "exif-sensingmethod-3": "दोहोरो-चीप कलर क्षेत्र सेन्सर",
+       "exif-sensingmethod-4": "तिन-चीप कलर क्षेत्र सेन्सर",
        "exif-sensingmethod-5": "Color sequential area sensor",
+       "exif-sensingmethod-7": "त्रिरेखिय सेन्सर",
+       "exif-sensingmethod-8": "रङ्ग अनुक्रमिक रेखिय सेन्सर",
+       "exif-filesource-3": "डिजिटल स्टिल क्यामेरा",
        "exif-scenetype-1": "प्रत्यक्ष खिचिएको छवि",
        "exif-customrendered-0": "सामान्य प्रक्रिया",
        "exif-customrendered-1": "व्यक्तिगत प्रक्रिया...",
        "exif-ycbcrpositioning-2": "सह-कुर्सीरहेको",
        "exif-dc-contributor": "योगदानकर्ताहरु",
        "exif-dc-coverage": "मेडियाको स्पाटिएल(आयाम) वा टेम्पोरल(काल) सान्दर्भिकता",
-       "exif-dc-date": "मिति(हरà¥\81)",
+       "exif-dc-date": "मिति(हरà¥\82)",
        "exif-dc-publisher": "प्रकाशक",
        "exif-dc-relation": "सम्वन्धित मेडिया",
        "exif-dc-rights": "अधिकारहरु",
        "monthsall": "सबै",
        "confirmemail": "इमेल ठेगाना पक्का गर्नुहोस्",
        "confirmemail_noemail": "तपाईको प्रयोगकर्ता [[Special:Preferences|अभिरुचीमा]] मान्य इमेल ठेगाना राखीएको छैन ।",
+       "confirmemail_text": "{{SITENAME}} मा उपलब्ध इमेल सुविधाहरूको लाभ उठाउनका लागि प्रमाणित ठेगाना हुनु जरूरी छ।\nतपाईंको इमेल ठेगानामा एउटा निश्चित कोड पठाउनका लागि तल दिइएको बटनमा क्लिक गर्नुहोस।\nत्यस मेलमा एउटा कोडले भरिएको एउटा लिङ्क हुनेछ;\nतपाईंको इमेललाई प्रमाणिकरणका लागि यसलाई आफ्नो ब्राउजरआ खोल्नुहोला।",
        "confirmemail_pending": "तपाईको इमेलमा प्रपाणिकरण कोड पहिले नै पठाइ सकिएको छ;\nयदि तपाईले अहिले नै खाता खोल्नु भएको हो कोडको निम्ती पुन: अनुरोध गर्नु अगि कोड नआइपुगुन्जेल कृपया केही समय प्रतिक्षा गर्नुहोस ।",
        "confirmemail_send": "एक यकिन कोड मेल गर्नुहोस",
        "confirmemail_sent": "यकिन इमेल पठाइयो ।",
        "confirmemail_subject": "{{SITENAME}} ई मेलl ठेगानाको पुष्टि",
        "confirmemail_body": "कसैले, सायद तपाईंले, आई पी ठेगाना $1बाट,\n{{SITENAME}}मा एउटा  खाता  \"$2\"को नाममा यस ई मेल ठेगानामा  पञ्जीकरण गरेकोछ।\n\nयो खाता साँच्ची नैं तपाईंको हो भनेर पुष्टि गर्न र {{SITENAME}}मा यो ई मेलका सुविधाहरु  सक्रिय गर्न तपाईंको ब्राउजरमा यो लिंक खोल्नुहोस्:\n\n$3 \n\nयदि त्यो खाता तपाईंले पञ्जीकरण गर्नु भएको *होइन* भनें, ई मेलको पुष्टिकरण रद्द गर्न यो लिंक पहिल्याउनुहोस्:\n\n$5\n\nयो पुष्टिकरणको समय  $4 मा सकिनेछ।",
        "confirmemail_body_changed": "कसैले, सायद तपाईंले, आई पी ठेगाना $1बाट,\n{{SITENAME}}मा \"$2\" नामको खाताको  ई मेल ठेगाना यस ठेगानामा  परिवर्तन गरेकोछ।\n\nयो खाता साँच्ची नैं तपाईंको हो भनेर पुष्टि गर्न र {{SITENAME}}मा यो ई मेलका सुविधाहरु  पुनः सक्रिय गर्न तपाईंको ब्राउजरमा यो लिंक खोल्नुहोस्:\n\n$3 \n\nयदि त्यो खाता तपाईंको *होइन* भनें, ई मेल ठेगानाको पुष्टिकरण रद्द गर्न यो लिंक पहिल्याउनुहोस्:\n\n$5\n\nयो पुष्टिकरणको समय  $4 मा सकिनेछ।",
-       "confirmemail_body_set": "कसैले, सायद तपाईंले, आई पी ठेगाना $1बाट,\n{{SITENAME}}मा \"$2\" नामको खाताको  ई मेल ठेगाना यस ठेगानासित  जोड़ेकोछ।\n\nयो खाता साँच्ची नैं तपाईंको हो भनेर पुष्टि गर्न र {{SITENAME}}मा यो ई मेलका सुविधाहरु  पुनः सक्रिय गर्न तपाईंको ब्राउजरमा यो लिंक खोल्नुहोस्:\n\n$3 \n\nयदि त्यो खाता तपाईंको *होइन* भनें, ई मेल ठेगानाको पुष्टिकरण रद्द गर्न यो लिंक पहिल्याउनुहोस्:\n\n$5\n\nयो पुष्टिकरणको समय  $4 मा सकिनेछ।",
+       "confirmemail_body_set": "कसैले, सायद तपाईंले, आईपी ठेगाना $1बाट,\n{{SITENAME}}मा \"$2\" नामको खाताको ईमेल ठेगाना यस ठेगानासित जोडेको छ।\n\nयो खाता साँच्ची नैं तपाईंको हो भनेर पुष्टि गर्न र {{SITENAME}}मा यो ईमेलका सुविधाहरु पुनः सक्रिय गर्न तपाईंको ब्राउजरमा यो लिङ्क खोल्नुहोस्:\n\n$3 \n\nयदि त्यो खाता तपाईंको *होइन* भनें, ईमेल ठेगानाको पुष्टिकरण रद्द गर्न यो लिङ्क पहिल्याउनुहोस्:\n\n$5\n\nयो पुष्टिकरणको समय  $4 मा सकिनेछ।",
        "confirmemail_invalidated": "ई मेल ठेगाना रद्द भएको पुष्टिकरण",
        "invalidateemail": "इमेल यकिन कार्य रद्द गर्नुहोस्",
        "scarytranscludedisabled": "[अन्तरविकि दस्तावेज अन्तरकरण निस्क्रिय]",
        "scarytranscludefailed": "[ $1को लागि टेम्प्लेट ल्याउन असफल]",
+       "scarytranscludefailed-httpstatus": "[$1 को लागि ढाँचा पाउन सकिएन, त्रुटि: HTTP $2]",
        "scarytranscludetoolong": "[URL अति लामो छ ]",
        "deletedwhileediting": "'''चेतावनी''': तपाईंले सम्पादन सुरु गरेपछि यो पृष्ठ मेटिएकोछ!",
        "confirmrecreate": "प्रयोगकर्ता [[User:$1|$1]] ([[User talk:$1|वार्तालाप]])ले  तपाईंले  सम्पादन सुरु गरेपछि यो पृष्ठ मेटेकाछन् । कारण थियो:\n: ''$2''\nकृपया सुनिश्चित गर्नुहोस् कि तपाईं यो पृष्ठ साँच्चै निर्माण गर्न चाहनुहुन्छ।",
        "ellipsis": "...",
        "percent": "$1%",
        "parentheses": "($1)",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← अघिल्लो पृष्ठ",
        "imgmultipagenext": "पछिल्लो पृष्ठ →",
        "imgmultigo": "जाउ!",
        "imgmultigoto": "पृष्ठ $1 मा जाने",
+       "img-lang-default": "(पूर्वनिर्धारित भाषा)",
+       "img-lang-info": "यस चित्रलाई $1 मा प्रस्तुत गर्ने । $2",
+       "img-lang-go": "जाउ",
        "ascending_abbrev": "वर्णानुक्रम",
        "descending_abbrev": "धट्दोक्रम",
        "table_pager_next": "पछिको पृष्ठ",
        "autosumm-replace": "पृष्ठलाई '$1' संग हटाइदै",
        "autoredircomment": "पृष्ठ[[$1]]मा पठाइएको",
        "autosumm-new": " $1 को साथमा पृष्ठ शृजना भयो",
+       "autosumm-newblank": "खाली पृष्ठ तयार गर्ने",
        "size-bytes": "$1 बाइटहरु",
        "size-kilobytes": "$1 किलोबाइटहरु",
        "size-megabytes": "$1 मेगाबाइटहरु",
        "lag-warn-high": "डेटावेस सर्भरको धेरै ढिलाइको कारणले  $1 {{PLURAL:$1|सेकेन्ड|सेकेन्डहरु}} पछिका परिवर्तनहरु नदेखिन सक्छ ।",
        "watchlistedit-normal-title": " निगरानी सूची सम्पादन गर्ने",
        "watchlistedit-normal-legend": "शीर्षकहरु निगरानी सूचीबाट हटाउने",
+       "watchlistedit-normal-explain": "तपाईंको ध्यानसूचीमा सूचीबद्ध पृष्ठ तल दिइएको छ। पृष्ठ सूचीबाट हटाउनका लागि त्यस अगाडी दिइएको बाकस \"{{int:Watchlistedit-normal-submit}}\" मा क्लिक गर्नुहोस, र शीर्षकहरू हटाउनेमा क्लिक गर्नुहोस। तपाईं [[Special:EditWatchlist/raw|कच्चा ध्यानसूची]]लाई पनि सम्पादन गर्न सक्नुहुन्छ।",
        "watchlistedit-normal-submit": "शीर्षकहरू हटाउने:",
        "watchlistedit-normal-done": "तपाईंको निगरानी सूचीबाट {{PLURAL:$1|१ शीर्षक हटाइयो|$1 शीर्षकहरु हटाइए}} :",
        "watchlistedit-raw-title": "कच्चा निगरानी सूची सम्पादन गर्ने",
        "watchlistedit-raw-legend": "कच्चा निगरानी सूची सम्पादन गर्ने",
+       "watchlistedit-raw-explain": "तपाईंको ध्यानसूचीमा सूचीबद्ध पृष्ठ तल दिइएको छ, र त्यसलाई सूचीबाट निकालेर वा बढाएर परिवर्तन गर्न सकिन्छ;\nप्रत्येक लाइनमा एक शीर्षक दिएर।\nजब पूर्ण भइसक्छ, अनि \"{{int:Watchlistedit-raw-submit}}\" मा क्लिक गर्नुहोस।\nतपाईं [[Special:EditWatchlist|स्तरीय सम्पादकको प्रयोग]] पनि गर्न सक्नुहुन्छ।",
        "watchlistedit-raw-titles": "शीर्षकहरू :",
        "watchlistedit-raw-submit": "निगरानी सूची अध्यावधि गर्ने",
        "watchlistedit-raw-done": "तपाईको निगरानी सुची अद्यावधिक गरिएको छ।",
        "watchlistedit-raw-removed": "{{PLURAL:$1|१ शिर्षक|$1 शिर्षकरु}} हटाइयो:",
        "watchlistedit-clear-title": "अवलोकन सूची खाली गरियो",
        "watchlistedit-clear-legend": "अवलोकन सूची खाली गर्ने",
+       "watchlistedit-clear-explain": "तपाईको अबलोकन सूचीबाट सम्पूर्ण शिर्षकहरू मेटाइदै",
        "watchlistedit-clear-titles": "शीर्षकहरू :",
        "watchlistedit-clear-submit": "अवलोकनबाट हटाउने (यो स्थायी हुन्छ!)",
        "watchlistedit-clear-done": "तपाईको निगरानी सुची हटाइएको छ।",
        "signature": "[[{{ns:user}}:$1|$2]]",
        "timezone-utc": "युटिसी(UTC)",
        "duplicate-defaultsort": "'''चेतावनी:''' पूर्व निर्धारित छोटकरी \"$2\" ले पुरानो पूर्वनिर्धारित छोटकरी\"$1\"लाई विस्थापन गरेको छ ।",
+       "duplicate-displaytitle": "<strong>चेतावनी:</strong> शीर्षक देखाउने \"$2\" पूर्व देखाइएको शीर्षक \"$1\" मा ओभररेड गरिंदै छ।",
+       "invalid-indicator-name": "<strong>त्रुटि:</strong> पृष्ठ स्थिति सङ्केतक नाम गुण रित्तो हुनुहुँदैन।",
        "version": "संस्करण",
        "version-extensions": "स्थापना गरिएका एक्सटेन्सनहरु",
        "version-skins": "स्थापित खोलहरू",
        "version-hook-name": "हुक नाम",
        "version-hook-subscribedby": "ग्राह्यता गर्ने",
        "version-version": "($1)",
+       "version-no-ext-name": "[नाम नभएको]",
        "version-svn-revision": "(r$2)",
        "version-license": "मिडीयाविकि इजाजतपत्र",
+       "version-ext-license": "इजाजतपत्र",
+       "version-ext-colheader-name": "एक्सटेन्सन",
+       "version-skin-colheader-name": "काँचुली",
+       "version-ext-colheader-version": "संस्करण",
+       "version-ext-colheader-license": "इजाजतपत्र",
+       "version-ext-colheader-description": "विवरण",
+       "version-ext-colheader-credits": "लेखकहरु",
+       "version-license-title": "$1 को लागी इजाजतपत्र",
+       "version-license-not-found": "यस एक्सटेन्समा अनुमतीपत्रको विस्तृत जानकारी छैन् ।",
+       "version-credits-title": "$1 को लागी श्रेयहरू",
+       "version-credits-not-found": "यस एक्सटेन्समा श्रेयहरूको विस्तृत जानकारी छैन् ।",
        "version-poweredby-credits": "यो विकी '''[https://www.mediawiki.org/ मिडियाविकि]''' द्वारा सशक्तिकरण गरिएको छ, copyright © सन् २००१-$1 $2.",
        "version-poweredby-others": "अन्य",
+       "version-poweredby-translators": "translatewiki.net अनुवादकर्ताहरू",
+       "version-credits-summary": "हामी निम्न व्यक्तिहरूद्वारा [[Special:Version|मीडियाविकि]]मा गरिएको योगदानहरूलाई सराहना गर्दछौं।",
+       "version-license-info": "मीडियाविकि मुक्त सफ्टवेयर हो; तपाईं यसलाई पुनः वितरण गर्न सक्नुहुन्छ र/वा यसलाई संशोधित गर्न सक्नुहुन्छ जस्तै कि जेएनयु साधारण सार्वजनिक लाइसेन्स अन्तर्गत मुक्त लाइसेन्स फाउन्डेशनद्वारा प्रकाशित गरिएको थियो; वा लाइसेन्सको अवतरण २, वा (तपाईंको विकल्प अनुसार) कुनै अन्य अवतरण।\n\nबिना कुनै वारन्टि मीडियाविकि यस आशाका साथ वितरित गरिन्छ कि यो उपयुक्त छ; जसमा व्यापारिक मापदण्ड भएको वारन्टी पनि छैन र न त कुनै लक्ष्यको लागि पर्याप्त हुने प्रावधान नै छ । अरू जानकारीका लागि हेर्नुहोस जेएनयु साधारण सार्वजनिक लाइसेन्स।\n\nतपाईंलाई यस प्रोग्राम संगै [{{SERVER}}{{SCRIPTPATH}}/COPYING जेएनयु साधारण सार्वजनिक लाइसेन्सको एक प्रति] भेटिसकेको छ; यदि छैन भने तपाईं सम्पर्क गर्नुहोस फ्री लाइसेन्स फाउन्डेशन, इन्क., 51 फ्र्याङ्कलिन स्ट्रीट, पाँचौ तल्ला, बोस्टन, एमए 02110-1301, संयुक्त राज्य वा [//www.gnu.org/licenses/old-licenses/gpl-2.0.html अनलाइन पढ्नका निमित्त]।",
        "version-software": "स्थापना गरिएको सफ्टवेयर",
        "version-software-product": "उत्पादन",
        "version-software-version": "संस्करण",
+       "version-entrypoints": "प्रवेश विन्दु युआरयलहरू",
+       "version-entrypoints-header-entrypoint": "प्रवेश विन्दु",
+       "version-entrypoints-header-url": "यूआरएल",
+       "version-libraries": "स्थापित पुस्तकालयहरू",
+       "version-libraries-library": "पुस्तकालय",
+       "version-libraries-version": "संस्करण",
+       "redirect": "फाइल, प्रयोगकर्ता, वा संशोधन आइडीको आधारमा अनुप्रेषित गर्ने",
+       "redirect-legend": "फाइल वा पृष्ठमा रिडाइरेक्ट",
+       "redirect-summary": "यस विशेष पृष्ठ (प्रदान गरिएको फाइलनाम), पृष्ठको (पृष्ठ आइडी अथवा अवतरण आइडी), वा (प्रयोगकर्ता आइडी) राख्दा प्रयोगकर्तापृष्ठमा मा सारिनेछ। उदाहरण: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], वा [[{{#Special:Redirect}}/user/101]]।",
        "redirect-submit": "जाने",
+       "redirect-lookup": "खोजी:",
+       "redirect-value": "मानः",
+       "redirect-user": "प्रयोगकर्ता परिचय",
+       "redirect-page": "पृष्ठ परिचय",
+       "redirect-revision": "पृष्ठ संशोधन",
        "redirect-file": "फाइल नाम",
+       "redirect-not-exists": "मान पत्ता लागेन",
        "fileduplicatesearch": "नक्कल फाइल खोज्ने",
        "fileduplicatesearch-summary": "ह्यास मानको आधारमा दुरुस्त नक्कल फाइहरु खोज्ने ।",
        "fileduplicatesearch-legend": " नक्कल खोज्नुहोस्",
        "fileduplicatesearch-result-n": "फाइल\"$1\" को {{PLURAL:$2|1 दुरुस्त नक्कल|$2 दुरुस्त नक्कलहरु}} छन् ।",
        "fileduplicatesearch-noresults": "\"$1\" नामको फाइल पाइएन।",
        "specialpages": "विशेष पृष्ठ",
-       "specialpages-note": "* साधारण विशेष पृष्ठहरु।\n* <span class=\"mw-specialpagerestricted\">निषेधित विशेष पृष्ठहरु।</span>",
+       "specialpages-note-top": "आदर्श वाक्य",
+       "specialpages-note": "* साधारण विशेष पृष्ठहरू।\n* <span class=\"mw-specialpagerestricted\">निषेधित विशेष पृष्ठहरू।</span>",
        "specialpages-group-maintenance": "मर्मत प्रतिवेदनहरु",
        "specialpages-group-other": "अरू विशेष पृष्ठहरू",
        "specialpages-group-login": "प्रवेश गर्ने / नयाँ खाता बनाउने",
-       "specialpages-group-changes": "भरà¥\8dà¤\96रà¥\88à¤\95ा à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤° à¤²à¤\97हरà¥\81",
+       "specialpages-group-changes": "भरà¥\8dà¤\96रà¥\88à¤\95ा à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤° à¤²à¤\97हरà¥\82",
        "specialpages-group-media": "मेडिया प्रतिवेदन र उर्ध्वभरणहरु",
        "specialpages-group-users": "प्रयोगकर्ता र अधिकारहरु",
        "specialpages-group-highuse": "उच्च प्रयोग भएका पृष्ठहरू",
        "tags-active-yes": "हो",
        "tags-active-no": "हैन",
        "tags-source-extension": "एक्सटेन्सनद्वारा परिभाषित गर्ने",
+       "tags-source-manual": "प्रयोगकर्ताहरू तथा बोटहरूबाट म्यानुअल्ली लागु गरिएको",
+       "tags-source-none": "प्रयोगमा नरहेको",
        "tags-edit": "सम्पादन गर्नुहोस्",
        "tags-delete": "मेट्ने",
        "tags-activate": "सक्रिय गर्ने",
        "tags-hitcount": "$1 {{PLURAL:$1|परिवर्तन|परिवर्तनहरु}}",
        "tags-manage-no-permission": "ट्याग मिलान गर्नको लागि तपाईँलाई अनुमति छैन।",
        "tags-create-heading": "नयाँ ट्याग बनाउने",
+       "tags-create-explanation": "पुनः निर्धारित रूपले, नवनिर्मित ट्याग प्रयोगकर्ताहरू र बोटहरूको लागी रहनेछ।",
        "tags-create-tag-name": "ट्याग नाम:",
        "tags-create-reason": "कारण:",
        "tags-create-submit": "सृजना गर्ने",
+       "tags-create-no-name": "तपाईले ट्याग नाम निर्दिष्ट गर्नु पर्ने हुन्छ ।",
+       "tags-create-invalid-chars": "ट्याग नामहरूमा कमा(<code>,</code>) वा अगाडी स्ल्यास हुनु हुँदैन। (<code>/</code>)",
+       "tags-create-invalid-title-chars": "ट्याग नामहरूमा यस्तो क्यारेक्टर हुनुहुँदैन जुन पृष्ठको शीर्षकमा प्रयोग नहोस्।",
+       "tags-create-already-exists": "ट्याग $1 पहिला देखि नै उपलब्ध ।",
+       "tags-create-warnings-above": "निम्नलिखित {{PLURAL:$2|चेतावनी देखाइयो|चेतावनीहरू देखाइयो}} जब ट्याग \"$1\" बनाउने प्रयास गरिएको थियो:",
+       "tags-create-warnings-below": "ट्याग बनाउदै, के तपाई जारी राख्न चाहनु हुन्छ ?",
+       "tags-delete-title": "ट्याग मेट्नुहोस्",
+       "tags-delete-explanation-initial": "तपाईले ट्याग \"$1\" लाई डाटावेसबाट हटाउन खोज्दै हुनु हुन्छ ।",
+       "tags-delete-explanation-in-use": "ट्यागलाई {{PLURAL:$2|$2 संशोधन वा लग प्रविष्टि|सबै $2 संशोधन र/वा लग प्रविष्टिहरू}}बाट हटाइनेछ जहाँ अहिले त्यसको प्रयोग गरिंदै छ।",
+       "tags-delete-explanation-warning": "यो क्रिया <strong>अपरिवर्तनीय</strong> हो र <strong>त्यसलाई परिवर्तन गर्न सकिंदैन</strong>, डेटाटाबेस प्रवन्धक पनि यसलाई केहि गर्न सक्दैनन्। विश्वासपूर्ण रूपले तपाईं तय गर्नुस कि तपाईं यस ट्यागलाई हटाउन चाहनुहुन्छ।",
+       "tags-delete-explanation-active": "<strong>ट्याग \"$1\" अहिले पनि सक्रिय छ, र यसको प्रयोग भविष्यमा पनि जारी रहनेछ।</strong> यसलाई रोकनका लागि, ती स्थानहरूमा जानुहोस जहाँ यस ट्यागको प्रयोग भइरहेको छ र त्यहाँ देखि यसलाई अक्षम गर्नुहोस।",
        "tags-delete-reason": "कारण:",
+       "tags-delete-submit": "उल्टाउन नसकिने गरि यो ट्यागलाई मेटाउने",
+       "tags-delete-not-allowed": "एक्सटेन्सनद्वारा विवरण गरिएको ट्याग हटाउन सकिंदैन जबसम्म कि विस्तारमै यसको लागि प्रावधान न हो।",
+       "tags-delete-not-found": "ट्याग \"$1\" उपलब्ध छैन् ।",
+       "tags-delete-too-many-uses": "ट्याग \"$1\" को प्रयोग $2 सँग {{PLURAL:$2|संशोधन|संशोधनहरू}}भन्दा अधिक छ, जसको अर्थ यो छ कि त्यसलाई हटाउन सकिंदैन।",
+       "tags-delete-warnings-after-delete": "ट्याग \"$1\" लाई सफलतापूर्वक हटाइयो, तर निम्नलिखित {{PLURAL:$2|चेतावनी|चेतावनीहरू}} देखियो:",
+       "tags-activate-title": "ट्याग सक्रिय गर्नुहोस्",
+       "tags-activate-question": "तपाईले ट्याग \"$1\" सक्रिय गर्न लाग्नु भएको छ ।",
+       "tags-activate-reason": "कारणः",
+       "tags-activate-not-allowed": "ट्याग \"$1\" सक्रिय गर्न सम्भव छैन ।",
+       "tags-activate-not-found": "ट्याग \"$1\" उपलब्ध छैन् ।",
+       "tags-activate-submit": "सक्रिय",
+       "tags-deactivate-title": "ट्याग निष्क्रिय गर्नुहोस्",
+       "tags-deactivate-question": "तपाईले ट्याग \"$1\" निस्क्रिय गर्न लाग्नु भएको छ ।",
+       "tags-deactivate-reason": "कारण:",
+       "tags-deactivate-not-allowed": "ट्याग \"$1\" निस्क्रिय गर्न सम्भव छैन ।",
+       "tags-deactivate-submit": "निष्क्रिय",
+       "tags-apply-no-permission": "परिवर्तन ट्यागहरूलाई आफ्नो ट्यागसँग जोड्न तपाईंलाई अनुमति छैन।",
+       "tags-apply-not-allowed-one": "ट्याग \"$1\" मानवीय रूपले जोड्न सक्ने अनुमति छैन।",
+       "tags-apply-not-allowed-multi": "निम्नलिखित {{PLURAL:$2|ट्यागलाई अनुमति छैन|ट्यागहरूलाई अनुमति छैन}} कि त्यसलाई मानवीय रूपले प्रयोगमा ल्याउन सकियोस: $1",
+       "tags-update-no-permission": "तपाईंलाई व्यक्तिगत संशोधनहरू वा लग प्रविष्टिहरूसँग परिवर्तन जोड़ने वा हटाउने अनुमति छैन।",
+       "tags-update-add-not-allowed-one": "ट्याग \"\"$1\" लाई मानवीय रूपले जोड्न सकिंदैन।",
+       "tags-update-add-not-allowed-multi": "निम्नलिखित {{PLURAL:$2|ट्याग|वा ट्यागहरू}} मानवीय रूपले जोड्न सकिंदैन: $1",
+       "tags-update-remove-not-allowed-one": "ट्याग \"$1\" मेटाउने अनुमति छैन ।",
+       "tags-update-remove-not-allowed-multi": "निम्नलिखित {{PLURAL:$2|ट्याग|वा ट्यागहरू}} मानवीय रूपले हटाउन सकिंदैन: $1",
+       "tags-edit-title": "ट्यागहरू सम्पादन",
+       "tags-edit-manage-link": "ट्यागहरू व्यवस्थापन",
+       "tags-edit-revision-selected": "[[:$2]]: {{PLURAL:$1|को छानिएको संशोधन|को छानिएको संशोधनहरू}}",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|चयनित लग घटना|चयनित लग घटनाहरू}}:",
+       "tags-edit-revision-legend": "ट्यागहरू {{PLURAL:$1|यस संशोधन|सबै $1 संशोधनहरू}}सँग जोड्ने वा हटाउने।",
+       "tags-edit-logentry-legend": "ट्यागहरू {{PLURAL:$1|यस लग प्रविष्टि|सबै $1 लग प्रविष्टिहरू}}सँग जोड्ने वा हटाउने।",
+       "tags-edit-existing-tags": "हाल भएको ट्यागहरूः",
+       "tags-edit-existing-tags-none": "''कुनै पनि होइन''",
+       "tags-edit-new-tags": "नयाँ ट्यागहरूः",
+       "tags-edit-add": "यी ट्यागहरू थप्नेः",
+       "tags-edit-remove": "यी ट्यागहरू हटाउनेः",
+       "tags-edit-remove-all-tags": "(सम्पूर्ण ट्यागहरू हटाउने)",
+       "tags-edit-chosen-placeholder": "केही ट्यागहरू छान्ने",
+       "tags-edit-chosen-no-results": "कुनै मिल्ने ट्यागहरू पत्ता लागेन",
+       "tags-edit-reason": "कारण:",
+       "tags-edit-revision-submit": "{{PLURAL:$1|यस संस्करण|$1 संस्करणहरू}} मा परिवर्तनहरूलाई लागु गर्ने",
+       "tags-edit-logentry-submit": "{{PLURAL:$1|यस लग प्रविष्टी|$1 लग प्रविष्टीहरू}} मा परिवर्तनहरूलाई लागु गर्ने",
+       "tags-edit-success": "परिवर्तनहरू सफलता पूर्वक लागु भैसक्यो",
+       "tags-edit-failure": "यी परिवर्तनहरू लागु गर्न सकिएनः\n$1",
+       "tags-edit-nooldid-title": "अवैध संशोधन लक्ष्य",
+       "tags-edit-nooldid-text": "या त तपाईंले कुनै लक्षित संशोधनको विवरण दिनुभएको छैन जहाँ यस कार्यलाई सम्पन्न गर्नु पर्नेछ, या विवरण गरिएको संशोधन छंदै छैन।",
+       "tags-edit-none-selected": "थप्न वा हटाउनको लागी कृपया कम्तिमा एउटा ट्याग छान्नुहोस् ।",
        "comparepages": "पृष्ठहरू दाँज्ने",
        "compare-page1": "पृष्ठ 1",
        "compare-page2": "पृष्ठ 2",
        "htmlform-chosen-placeholder": "एक विकल्प छान्नुहोस्",
        "htmlform-cloner-create": "अरू जोड्ने",
        "htmlform-cloner-delete": "हटाउने",
+       "htmlform-cloner-required": "कम्तिमा एउटामा आवश्यक छ ।",
        "sqlite-has-fts": "$1 पूरा पाठ खोज समर्थन सहित",
        "sqlite-no-fts": "$1 पूरा पाठ खोज समर्थन बिना",
+       "logentry-delete-delete": "$1 द्वारा पृष्ठ $3 {{GENDER:$2|मेटाइयो}}",
        "logentry-delete-restore": "$3 पृष्ठ $1ले {{GENDER:$2|पुनर्स्थापित}} गरेको हो",
+       "logentry-delete-event": "$1 ले $3 पृष्ठको लग {{PLURAL:$5|प्रविष्टि|प्रविष्टिहरू}}को दृश्यता {{GENDER:$2|परिवर्तन गर्यो}}: $4",
+       "logentry-delete-revision": "$1 ले $3 पृष्ठको {{PLURAL:$5|एक अवतरण|$5 अवतरणहरू}}को दृश्यता {{GENDER:$2|परिवर्तन गर्यो}}: $4",
+       "logentry-delete-event-legacy": "$1 ले $3 पृष्ठमा लग क्रियाहरूको दृश्यता {{GENDER:$2|परिवर्तन गर्यो}}",
+       "logentry-delete-revision-legacy": "$1 ले $3 पृष्ठमा लग अवतरणहरूको दृश्यता {{GENDER:$2|परिवर्तन गर्यो}}",
+       "logentry-suppress-delete": "$1 द्वारा पृष्ठ $3 {{GENDER:$2|दबाइएको}}",
+       "logentry-suppress-event": "$1 ले गोप्य रूपले $3 पृष्ठमा निम्न {{PLURAL:$5|एक लग क्रिया|$5 लग क्रियाहरूको}} दृश्यता {{GENDER:$2|परिवर्तन गर्यो}}: $4",
+       "logentry-suppress-revision": "$1 ले गोप्य रूपले $3 पृष्ठलाई {{PLURAL:$5|एक अवतरण|$5 अवतरणहरू}}को  दृश्यता {{GENDER:$2|परिवार्तान गर्यो}}: $4",
+       "logentry-suppress-event-legacy": "$1 ले गोप्य रूपले $3 पृष्ठ मा लग क्रियाहरूको दृश्यता {{GENDER:$2|परिवर्तन गर्यो}}",
+       "logentry-suppress-revision-legacy": "$1 ले गोप्य रूपले $3 पृष्ठको अवतरणहरूको दृश्यता {{GENDER:$2|परिवर्तन गर्यो}}",
        "revdelete-content-hid": "सामग्री लुकाइएको",
-       "revdelete-summary-hid": "समà¥\8dपादन à¤¸à¤¾à¤°à¤¾à¤\82स लुकाइएको",
+       "revdelete-summary-hid": "समà¥\8dपादन à¤¸à¤¾à¤°à¤¾à¤\82ठलुकाइएको",
        "revdelete-uname-hid": "प्रयोगकर्ताको नाम लुकाइयो",
        "revdelete-content-unhid": "सामग्री देखाइएको",
        "revdelete-summary-unhid": "सम्पादन सारांस देखाइएको",
        "revdelete-uname-unhid": "प्रयोगकर्ता देखाइएको",
        "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-block": "$1 {{GENDER:$2|प्रतिबन्धित}} {{GENDER:$4|$3}} जसमा समय समाप्तिको अवधि छ $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|परिवर्तन गर्यो}} प्रतिबन्ध सेटिङ्ग {{GENDER:$4|$3}}को लागि जसमा समय समाप्तिको अवधि छ $5 $6",
+       "logentry-import-upload": "फाइल अपलोडद्वारा $1 ले $3 {{GENDER:$2|आयात गर्यो}}",
+       "logentry-import-interwiki": "$3 अन्य विकिबाट $1 द्वारा {{GENDER:$2|आयातित}}",
+       "logentry-merge-merge": "$1 {{GENDER:$2|गाभिएको हो}} $3 लाई $4 मा (संशोधन $5 सम्म)",
        "logentry-move-move": "$1 {{GENDER:$2|द्वारा}} $3 पृष्ठलाई $4 मा सारियो",
+       "logentry-move-move-noredirect": "$1 ले $3 मा पुनर्निर्देश नछोडि त्यसलाई $4 मा {{GENDER:$2|सारेको}} हो",
+       "logentry-move-move_redir": "$1 ले $4 बाट पुनर्निर्देश हटाएर $3 लाई त्यसमाथि {{GENDER:$2|सारेको}} हो",
+       "logentry-move-move_redir-noredirect": "$1 ले $4 बाट पुनार्निर्देश हटाएर $3 मा पुनर्निर्देश न्नाछोडि $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-create": "प्रयोगकर्ता खाता $1 {{GENDER:$2|खोलियो}}",
+       "logentry-newusers-create2": "$1 बाट प्रयोगकर्ता खाता $३ {{GENDER:$2|खोलियो}}",
+       "logentry-newusers-byemail": "$1 बाट प्रयोगकर्ता खाता $३ {{GENDER:$2|खोलियो}} र इमेल मार्फत पासबर्ड पठाइएको छ",
+       "logentry-newusers-autocreate": "प्रयोगकर्ता खाता $1 स्वतः {{GENDER:$2|खोलियो}}",
+       "logentry-rights-rights": "$1 ले $3 को प्रयोगकर्ता समूह $4 बाट परिवर्तन गरेर $5 {{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|अपलोड गरेका छन्}}",
+       "logentry-upload-overwrite": "$1 ले $3 को नयाँ संस्करण {{GENDER:$2|अपलोड गरेका छन्}}",
+       "logentry-upload-revert": "$1 ले $3 {{GENDER:$2|अपलोड गरेका छन्}}",
+       "log-name-managetags": "ट्याग व्यवस्थापन लग",
+       "log-description-managetags": "यस पृष्ठमा ती प्रवन्धन कार्यहरूको सूची छ जुन [[Special:Tags|ट्यागहरू]]सँग सम्बन्धित छ। लगमा मात्रै ती क्रियाहरूको बयान गरिएको छ जुन मानवीय रूपले कुनै प्रवन्धकद्वारा पुरा गरिएको छ। ट्यागहरूलाई विकि सफ्टवेयरद्वारा बनउनु वा हटाउन सकिनेछ जसको प्रविष्टि लगमा हुनु आवश्यक छैन।",
+       "logentry-managetags-create": "$1 ले ट्याग $4 {{GENDER:$2|तयार गरेको छ}}",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|हटाइयो}} ट्याग \"$4\" ($5 बाट हटाइयो {{PLURAL:$5|संशोधन वा लग प्रविष्टि|संशोधन वा लग प्रविष्टिहरू}})",
+       "logentry-managetags-activate": "ट्याग \"$4\" उपयोगकर्ताहरू र बोटहरूको प्रयोगको लागि $1 {{GENDER:$2|सक्रिय गरियो}}",
+       "logentry-managetags-deactivate": "ट्याग \"$4\" उपयोगकर्ताहरू र बोटहरूको प्रयोगको लागि $1 {{GENDER:$2|निष्क्रिय गरियो}}",
+       "log-name-tag": "ट्याग प्रबिष्टी",
+       "log-description-tag": "यो पृष्ठमा हेर्न सकिन्छ कि उपयोगकर्ता कहिले व्यक्तिगत संशोधनहरू र लग प्रविष्टिहरूसँग [[Special:Tags|ट्याग]] जोडेको वा हटाइ सकेको छ। लगबाट ट्यागिङ्ग कार्यहरूको सूची भेट्दैन की उसले कहिले सम्पादन, हटाएको यस्तो कुनै  कामको हिस्सा बन्यो।",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|जोडियो}} {{PLURAL:$7|ट्याग|ट्यागहरू}} $6 को संशोधन $4  $3 पृष्ठमा",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|जोडियो}} {{PLURAL:$7|ट्याग|ट्यागहरू}} $6 लग प्रविष्टि $5 $3 पृष्ठमा",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|हटाइयो}} {{PLURAL:$9|ट्याग|ट्यागहरू}} $8 $4 संशोधनबाट $3 पृष्ठमा",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|हटाइयो}} {{PLURAL:$9|ट्याग|ट्यागहरू}} $8 $5 संशोधनबाट  $3 पृष्ठमा",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|अपडेट गरियो}} ट्याग संशोधन $4 मा पृष्ठ $3 सँग ({{PLURAL:$7|जोडियो}} $6; {{PLURAL:$9|हटाइयो}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|अपडेट गरियो}} ट्याग संशोधन $5 मा पृष्ठ $3 सँग ({{PLURAL:$7|जोडियो}} $6; {{PLURAL:$9|हटाइयो}} $8)",
        "rightsnone": "(कुनैपनि होइन)",
        "revdelete-summary": "सम्पादन सारांश",
+       "feedback-adding": "पृष्ठमा प्रतिक्रिया थप गर्दै...",
+       "feedback-back": "अघिल्लो",
+       "feedback-bugcheck": "राम्रो! जाँच्नुस की कतै [ $1 ज्ञात बगहरू] पहिले देखि नै नहोस्।",
+       "feedback-bugnew": "मैले जाँच गरिसके। नयाँ बगको खबर दिनुहोस्",
+       "feedback-bugornote": "यदि तपाईं कुनै प्राविधिक समस्यालाई विस्तारले समझाउन तयार हुनुहुन्छ भने कृपया [$1 बग राख्नुहोस]।\nयदि हैन, भने तपाईं तल दिइएको सरल फारमको प्रयोग गर्नसक्नुहुन्छ। तपाईंको टिप्पणी तपाईंको प्रयोगकर्ता नाम र तपाईंको ब्राउजरको नाम सहित \"[$3 $2]\" पृष्ठ मा जोडिनेछ।",
        "feedback-cancel": "रद्द गर्ने",
        "feedback-close": "गरियो",
+       "feedback-external-bug-report-button": "प्राविधिक कार्य पेश गर्नुहोस्",
+       "feedback-dialog-title": "प्रतिक्रिया दिनुहोस्",
+       "feedback-dialog-intro": "तपाईं तल दिइएको सरल फारमको प्रयोग गरेर आफ्नो प्रतिपुष्टि पठाउन सक्नुहुन्छ। तपाईंको टिप्पणी पृष्ठ \"$1\" स तपाईंको प्रयोगकर्तानामको अगाडी जोडिनेछ ।",
        "feedback-error-title": "त्रुटि",
+       "feedback-error1": "त्रुटीः एपिआईबाट अज्ञात परिणाम",
        "feedback-error2": "त्रुटि: सम्पादन असफल",
+       "feedback-error3": "त्रुटीः एपिआईबाट कुनै प्रतिक्रिया नआएको",
+       "feedback-error4": "त्रुटीः दिइएको प्रतिक्रिया शिर्षकमा पोस्ट गर्न असर्मथ",
        "feedback-message": "सन्देश:",
        "feedback-subject": "विषय:",
        "feedback-submit": "बुझाउने",
+       "feedback-terms": "म जान्दछु कि मेरो एजेन्ट जानकारीमा मेरो सटीक ब्राउजर र अपरेटिङ प्रणालीको अवतरणको पनि जानकारी छ र यो सार्वजनिक रूपले मद्वारा दिइएको प्रतिपुष्टिसँग देखाइनेछ।",
+       "feedback-termsofuse": "म प्रयोगको शर्तहरूको अनुरूप प्रतिपुष्टि दिनका लागि सहमत छु।",
+       "feedback-thanks": "धन्यवाद! तपाईंको प्रतिक्रिया पृष्ठमा नियुक्त गरिएको छ \"[ $2  $1 ]\"।",
        "feedback-thanks-title": "धन्यवाद!",
        "feedback-useragent": "प्रयोगकर्ता एजेन्ट:",
        "searchsuggest-search": "खोज",
+       "searchsuggest-containing": "समावेश भएको...",
        "api-error-badaccess-groups": "यस विकिमा तपाईंलाई फाइल अपलोड गर्ने अनुमति छैन।",
+       "api-error-badtoken": "आन्तरिक समस्याः खराब टोकन ।",
        "api-error-copyuploaddisabled": "यस सर्वरमा URL द्वारा अपलोड गर्ने व्यवस्था निस्क्रिय गरिएकोछ।",
        "api-error-duplicate": "यस साइटमा पहिलेबाट यस्तै सामग्री {{PLURAL:$1|भएको [$2 अर्को फाइल छ]|भएका  [$2 केहि अरु फाइलहरु छन्]}} ।",
        "api-error-duplicate-archive": "यस साइटमा पहिलेबाट यस्तै सामग्री {{PLURAL:$1|भएको [$2 अर्को फाइल थियो]|भएका  [$2 केहि अरु फाइलहरु थिए]}} ।\nतर {{PLURAL:$1|यो मेटाइएको थियो|यी मेटाइएका थिए}} ।",
        "api-error-duplicate-archive-popup-title": "पहिले  {{PLURAL:$1|मेटाइएको फाइलको|मेटाइएका फाइलहरुको}} नकल प्रति बनाउने।",
        "api-error-duplicate-popup-title": "{{PLURAL:$1|फाइल|फाइलहरु}} नकल प्रति बनाउने",
        "api-error-empty-file": "तपाईंले बुझाएको फाइल खालि छ।",
+       "api-error-emptypage": "नयाँ तयार गर्दै, खाली पृष्ठ तयार गर्न अनुमति छैन ।",
+       "api-error-fetchfileerror": "आन्तरिक समस्याः फाइल तान्दा केही कुरा गलत भएछ ।",
+       "api-error-fileexists-forbidden": "\"$1\" नामको फाइल पहिले नै छ र अधिलेखित गर्न सकिंदैन।",
+       "api-error-fileexists-shared-forbidden": "\"$1\" नामको फाइल पहिले नै साझा फाइल भण्डारमा छ, र अधिलेखित गर्न सकिंदैन।",
        "api-error-file-too-large": "तपाईंले बुझाएको फाइल अति ठूलो छ।",
        "api-error-filename-tooshort": "फाइलको नाम अति छोटो भयो।",
        "api-error-filetype-banned": "यस प्रकारको फाइलमाथि प्रतिबन्ध छ।",
+       "api-error-filetype-banned-type": "$1 फाइल {{PLURAL:$4|प्रकार|प्रकारहरू}} को अनुमति छैन। फाइल प्रकार {{PLURAL:$3|जसको|जुनको}} अनुमति छ: $2।",
        "api-error-filetype-missing": "फाइलमा एक्स्टेन्शनको अभाव छ।",
        "api-error-hookaborted": "एक्सटेन्शन हुकले गर्दा यस फाइललाई नयाँ रुप दिने क्रिया रद्द भयो।",
        "api-error-http": "आन्तरिक त्रुटि: सर्वरसित जोड़न असमर्थ",
        "api-error-illegal-filename": "यस्तो फाइल नामको अनुमति छैन।",
+       "api-error-internal-error": "आन्तरिक त्रुटि: विकिमा आफ्नो अपलोड प्रसंस्करणसँग केहि त्रुटि देखिएको छ।",
        "api-error-invalid-file-key": "आन्तरिक त्रुटि: अस्थाई भण्डारमा फाइल पाइएन।",
        "api-error-missingparam": "आन्तरिक त्रुटि: अनुरोधमा पैरामीटरहरुको कमी",
        "api-error-missingresult": "आन्तरिक त्रुटि: कपी सफल भयो भएन भनेर निश्चय गर्ने सकिएन।",
        "api-error-ok-but-empty": "आन्तरिक त्रुटि: सर्वरबाट कुनै उत्तर आएन।",
        "api-error-overwrite": "वर्तमान फाइलमाथि अधिलेखन(Overwriting)को अनुमति छैन।",
        "api-error-stashfailed": "आन्तरिक त्रुटि: अस्थाई फाइल राख्न सर्वर असफल भयो।",
+       "api-error-publishfailed": "आन्तरिक समस्याः अस्थायी फाइल प्रकाशन गर्न सर्भर असफर भयो ।",
+       "api-error-stasherror": "स्टासमा फाइल अपलोड गर्दा समस्या आएको छ ।",
+       "api-error-stashedfilenotfound": "स्ट्यासमा राखिएको फाइल त्यहाँ अपलोड गरिने प्रयासको समयमा भेटिएन।",
+       "api-error-stashpathinvalid": "त्यो स्थान जहाँ स्ट्यास भएको फाइल भेट्नु पर्ने थियो त्यो अमान्य छ।",
+       "api-error-stashfilestorage": "फाइललाई स्ट्यासमा अपलोड गर्दा समय एक त्रुटि देखिएको छ।",
+       "api-error-stashzerolength": "सर्भर त्यस फाइललाई स्ट्यास गर्न सकेन, किनभने त्यसको लम्बाई शून्य छ।",
+       "api-error-stashnotloggedin": "तपाईंलाई लग इन हुनु आवश्यक छ ताकि फाइललाई अपलोड स्ट्यासमा सुरक्षित गर्न सकियोस।",
+       "api-error-stashwrongowner": "स्ट्यासको जुन फाइल सम्म तपाईं पुग्न चाहनुहुन्छ त्यो तपाईंसँग सम्बन्धित छैन।",
+       "api-error-stashnosuchfilekey": "फाइलको साँचो जसलाई तपाईं स्ट्यासमा प्रयोगमा ल्याउन प्रयास गर्दै हुनुहुन्छ, त्यो अस्तित्वमा छैन।",
        "api-error-timeout": "अपेक्षित समय भित्रमा सर्वरले प्रतिक्रिया देखाएन।",
+       "api-error-unclassified": "अज्ञात समस्या आइ पर्यो",
        "api-error-unknown-code": "अज्ञात त्रुटि: \"$1\"",
-       "api-error-unknown-warning": "अज्ञात चेतावनी: $1",
+       "api-error-unknown-error": "आन्तरिक त्रुटि: तपाईंद्वारा फाइल अपलोड गरिने प्रयास गर्दा समय केहि गलत भएको थियो।",
+       "api-error-unknown-warning": "अज्ञात चेतावनी: \"$1\"",
        "api-error-unknownerror": "अज्ञात त्रुटि: \"$1\".",
        "api-error-uploaddisabled": "यस विकिमा अपलोड निस्क्रिय गरिएकोछ।",
+       "api-error-verification-error": "यह फाइल खराब भइसकेको छ, वा गलत एक्सटेन्सन हो।",
+       "duration-seconds": "$1 {{PLURAL:$1|सेकेण्ड|सेकेण्डहरू}}",
+       "duration-minutes": "$1 {{PLURAL:$1|मिनेट|मिनेटहरू}}",
+       "duration-hours": "$1 {{PLURAL:$1|घण्टा|घण्टाहरू}}",
+       "duration-days": "$1 {{PLURAL:$1|दिन|दिनहरू}}",
+       "duration-weeks": "$1 {{PLURAL:$1|हप्ता|हप्ताहरू}}",
+       "duration-years": "$1 {{PLURAL:$1|वर्ष|वर्षहरू}}",
+       "duration-decades": "$1 {{PLURAL:$1|दशक|दशकहरू}}",
+       "duration-centuries": "$1 {{PLURAL:$1|शताब्दि|शताब्दिहरू}}",
+       "duration-millennia": "$1 {{PLURAL:$1|सहस्राब्दी|सहस्राब्दीहरू}}",
+       "rotate-comment": "चित्रलाई $1 {{PLURAL:$1|डिग्री|डिग्रिहरू}} देखि विपरित दिशामा घुमाइएको थियो",
+       "limitreport-title": "पार्सरको विवरण डेटा:",
+       "limitreport-cputime": "सिपियु प्रयोग अवधि",
+       "limitreport-cputime-value": "$1 {{PLURAL:$1|सेकेण्ड|सेकेण्डहरू}}",
+       "limitreport-walltime": "वर्तमानको उपयोग",
+       "limitreport-walltime-value": "$1 {{PLURAL:$1|सेकेण्ड|सेकेण्डहरू}}",
+       "limitreport-ppvisitednodes": "प्रिप्रोसेसर भ्रमण गरिसकेको नोडको गणना",
+       "limitreport-ppgeneratednodes": "प्रिप्रोसेसरद्वारा जारी नोडको गणना",
+       "limitreport-postexpandincludesize": "विस्तार पश्चात विकिपाठ आकार",
+       "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|बाइट|बाइटहरू}}",
+       "limitreport-templateargumentsize": "ढाँचा तर्क आकार",
+       "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|बाइट|बाइटहरू}}",
+       "limitreport-expansiondepth": "उच्चतम विस्तार गहिराई",
+       "limitreport-expensivefunctioncount": "महङ्गो पार्सर फङ्कसनहरूको गणना",
+       "expandtemplates": "ढाँचाहरूलाई बढाउनुहोस्",
+       "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": "परिणाम",
+       "expand_templates_xml_output": "एक्सएमएल आउटपुट",
+       "expand_templates_html_output": "र एचटिएमएल आउटपुट",
        "expand_templates_ok": "ठीक",
+       "expand_templates_remove_comments": "टिप्पणीहरू हटाउने",
+       "expand_templates_remove_nowiki": "परिणाममा ट्यागहरूलाई दबाइएको <nowiki>",
+       "expand_templates_generate_xml": "एक्सएमएल पार्स रूख देखाउने",
        "expand_templates_generate_rawhtml": "सुद्ध HTML देखाउने",
-       "expand_templates_preview": "पूर्वावलोकन"
+       "expand_templates_preview": "पूर्वावलोकन",
+       "expand_templates_preview_fail_html": "<em>किनकि {{SITENAME}} सिधै एचटिएमयल सक्षम छ र तपाई लग इन गर्नुभएको छैन, पूर्वावलोकन लुकाइएको छ ताकि सम्भावित जाभास्क्रिप्ट आक्रमणलाई रोक्न सकियोस।</em>\n\n<strong>यदि यो मान्य पूर्ववावलोकन प्रयास हो, भने पुन प्रयास गर्नुहोस।</strong>\nयदि यसले कार्य पूर्ण भएन भने [[Special:UserLogout|लग आउट गरेर]] फेरी लग इन गर्नुहोला।",
+       "expand_templates_preview_fail_html_anon": "<em>किनकि {{SITENAME}} सिधै एचटिएमयल सक्षम छ र तपाई लग इन गर्नुभएको छैन, पूर्वावलोकन लुकाइएको छ ताकि सम्भावित जाभास्क्रिप्ट आक्रमणलाई रोक्न सकियोस।</em>\n\n<strong>यदि यो मान्य पूर्वावलोकन प्रयास हो भने कृपया [[Special:UserLogin|लग इन गरेर]] पुन प्रयास गर्नुहोला।</strong>",
+       "pagelanguage": "पृष्ठ भाषा छान्ने",
+       "pagelang-name": "पृष्ठ",
+       "pagelang-language": "भाषा",
+       "pagelang-use-default": "पूर्वनिर्धारित भाषा प्रयोग गर्ने",
+       "pagelang-select-lang": "भाषा छान्ने",
+       "right-pagelang": "पृष्ठको भाषा परिवर्तन गर्ने",
+       "action-pagelang": "यस पृष्ठको भाषा परिवर्तन गर्ने",
+       "log-name-pagelang": "लगको भाषा परिवर्तन गर्ने",
+       "log-description-pagelang": "यो पृष्ठको भाषाहरूमा भएका परिवर्तनहरूको लग हो ।",
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|परिवर्तन गरियो}} पृष्ठ भाषालाई $3 को लागि $4 बाट $5 ।",
+       "default-skin-not-found": "ओह! तपाईंको विकिको पूर्व निर्धारित खोल जस्तो कि <code dir=\"ltr\">$wgDefaultSkin</code> मा बताइएको<code>$1</code>, उपलब्ध छैन।\n\nतपाईंको इन्स्टलेसन यी खोलहरूलाई सम्मिलित गर्दछ {{PLURAL:$4|खोल|खोलहरू}}। हेर्नुस [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: खोललाई सम्मित गर्नु] ताकि तपाईंलाई जानकारी होस कि कसरि {{PLURAL:$4|उसलाई|उसलाई सम्मिलित गर्न सकियोस र निर्धारितलाई तय गर्ने}}।\n\n$2\n\n; यदि तपाईंले अहिले मीडियाविकि इन्स्टाल गर्नुभएको छ:\n: तपाईंले सम्भवत गिटबाट इन्स्टल गर्नुभएको छ, वा सिधै स्रोत कोडबाट गर्नुभएको छ जसको लागि कुनै अर्कै तारिका प्रयोग गरिएको छ। यो आशा अनुरूप छ। कोशिश गर्नुस केहि खोलहरू\n[https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's मीडियाविकिको खोल डाइरेक्ट्रीबाट डाउनलोड गर्ने], जसको लागि तपाईं:\n:* डाउनलोड गर्नुस [https://www.mediawiki.org/wiki/Download टरबल इन्स्टलर], जुन कयौं खोलहरू र विस्तारमा उपलब्ध छन्। तपाईं खोलहरूको कोड <code>skins/</code> त्यसको डाइरेक्ट्रीबाट कपी-पेस्ट गर्न सक्नुहुन्छ। \n:* व्यक्तिगत खोलहरू टरबलबाट डाउनलोड गर्नुस [https://www.mediawiki.org/wiki/Special:SkinDistributor मीडिया विकि] बाट।\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins गिटको प्रयोग गरेर डाउनलोड गर्न सक्नुहुन्छ]।\n: यदि तपाईं विकासकर्ता हो भने यसो गर्दा समय तपाईंको गिट-रिपजिटरीमा केहि हुनुहुँदैन । \n; यदि तपाईंले अहिले मीडियाविकिलाई अपग्रेड गर्नुभएको छ:\n: मीडियाविकि १.२४ र यसको नवीन रूप स्वतः रूपले खोलहरूलाई सक्षम गर्दैनन् (हेर्नुस [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual:खोलहरूको स्वतः खोज])। तपाईं निम्नलिखितलाई पेस्ट गर्न सक्नुहुन्छ: {{PLURAL:$5|लाइन|लाइनहरू}}  <code>LocalSettings.php</code> मा ताकि {{PLURAL:$5|उसले|सबै}} सक्षम होस् जस्तो कि तपाईंले इन्स्टल गरिएको {{PLURAL:$5|खोल|खोलहरू}}को मामिलामा:\n\n<pre dir=\"ltr\">$3</pre>\n\n; यदि तपाईंले अहिले परिवर्तन गर्नुभएको छ<code>LocalSettings.php</code>:\n: खोल नामहरूको अगाडी डबल-क्लिक गर्नुहोस जसले तपाईंलाई विभिन्न प्रकारहरूको विकल्प दिन्छ।",
+       "default-skin-not-found-no-skins": "ओह! तपाईंको विकिको पूर्व निर्धारित खोल जस्तो कि <code>$wgDefaultSkin</code> मा बताइएको <code>$1</code>, उपलब्ध छैन।\nतपाईंसँग कुनै इन्स्टल गरिएको खोल छैन।\n; यदि तपाईंले अहिले मीडियाविकि इन्स्टल गर्नुभएको छ वा यसलाई अपडेट गर्नुभएको छ:\nतपाईंले सम्भवत गिटबाट इन्स्टल गर्नुभएको छ, वा सिधै स्रोत कोडबाट गर्नुभएको छ जसको लागि कुनै अर्कै तारिका प्रयोग गरिएको छ। यो आशा अनुरूप छ। कोशिश गर्नुस केहि खोलहरू\n[https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's मीडियाविकिको खोल डाइरेक्ट्रीबाट डाउनलोड गर्ने], जसको लागि तपाईं:\n:* डाउनलोड गर्नुस [https://www.mediawiki.org/wiki/Download टरबल इन्स्टलर], जुन कयौं खोलहरू र विस्तारमा उपलब्ध छन्। तपाईं खोलहरूको कोड <code>skins/</code> त्यसको डाइरेक्ट्रीबाट कपी-पेस्ट गर्न सक्नुहुन्छ। \n:* व्यक्तिगत खोलहरू टरबलबाट डाउनलोड गर्नुस [https://www.mediawiki.org/wiki/Special:SkinDistributor मीडिया विकि] बाट।\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins गिटको प्रयोग गरेर डाउनलोड गर्न सक्नुहुन्छ]।\n:यदि तपाईं विकासकर्ता हो भने यसो गर्दा समय तपाईंको गिट-रिपजिटरीमा केहि हुनुहुँदैन।",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (सक्रिय)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''निष्क्रिय''')",
+       "mediastatistics": "मिडिया तथ्याङ्कहरू",
+       "mediastatistics-summary": "अपलोड गरिएको फाइल प्रकारहरूको तथ्याङ्कहरू। यसमा मात्रै नवीनतम फाइलको अवतरण समेटिएको छ। पुरानो वा हटाइएको फाइलहरूको अवतरणहरूलाई बेग्लै राखिएको छ।",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 बाइट|$1 बाइटहरू}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "माइम प्रकार",
+       "mediastatistics-table-extensions": "सम्भावित एक्सटेन्सनहरू",
+       "mediastatistics-table-count": "फाइलहरूको संख्या",
+       "mediastatistics-table-totalbytes": "संयोजित आकार",
+       "mediastatistics-header-unknown": "अज्ञात",
+       "mediastatistics-header-bitmap": "विटम्याप चित्रहरू",
+       "mediastatistics-header-drawing": "चित्रहरू (भेक्टर चित्रहरू)",
+       "mediastatistics-header-audio": "अडियो",
+       "mediastatistics-header-video": "भिडियो",
+       "mediastatistics-header-multimedia": "रिच मिडिया",
+       "mediastatistics-header-office": "कार्यालय",
+       "mediastatistics-header-text": "पाठ",
+       "mediastatistics-header-executable": "कार्यान्वयन गर्न मिल्नेहरू",
+       "mediastatistics-header-archive": "संकुचित ढाँचाहरू",
+       "json-warn-trailing-comma": "$1 पछाडी रहेको छ {{PLURAL:$1|कोमा को|कोमाहरूको}} जेएसओएनबाट हटाइयो",
+       "json-error-unknown": "जेएसओएन मा समस्या छ । समस्याः $1",
+       "json-error-depth": "स्ट्याकको अधिकतम गहिराई बढी सकेको छ",
+       "json-error-state-mismatch": "अवैध वा मालफर्म्ड जेएसओएन",
+       "json-error-ctrl-char": "नियन्त्रित क्यारेक्टर त्रुटि, सम्भवतः अशुद्ध रूपले इन्कोड गरिएको हो",
+       "json-error-syntax": "साईनट्यास समस्या",
+       "json-error-utf8": "मालफर्म्ड युटियफ-८ क्यारेक्टर, जसलाई सम्भवतः अशुद्ध रूपले इनकोड गरिएको छ",
+       "json-error-recursion": "इनकोड गरिएको मानमा एक वा त्यसभन्दा अधिक पुनरावर्ती भएको सन्दर्भ सामेल छ",
+       "json-error-inf-or-nan": "एक वा त्यसभन्दा अधिक एनएएन वा आइएनयफ मान् इनकोडेड गरिने मान सामेल छ।",
+       "json-error-unsupported-type": "एक यस्तो प्रकारको मान दिइएको थियो जसलाई इनकोड गर्न सकिंदैन",
+       "headline-anchor-title": "यस खण्डमा जोड्नुहोस्",
+       "special-characters-group-latin": "ल्याटिन",
+       "special-characters-group-latinextended": "ल्याटिन विस्तारित",
+       "special-characters-group-ipa": "आइपिए",
+       "special-characters-group-symbols": "चिन्हहरू",
+       "special-characters-group-greek": "ग्रिक",
+       "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": "खेमर",
+       "special-characters-title-endash": "इएन ड्यास",
+       "special-characters-title-emdash": "इएम ड्यास",
+       "special-characters-title-minus": "घटाउने चिन्ह"
 }
index 3020f99..ae9d063 100644 (file)
@@ -67,7 +67,8 @@
                        "Sikjes",
                        "Robin0van0der0vliet",
                        "Kthoelen",
-                       "Mbch331"
+                       "Mbch331",
+                       "Esketti"
                ]
        },
        "tog-underline": "Koppelingen onderstrepen:",
@@ -95,7 +96,7 @@
        "tog-shownumberswatching": "Het aantal gebruikers weergeven dat deze pagina volgt",
        "tog-oldsig": "Bestaande ondertekening:",
        "tog-fancysig": "Als wikitekst behandelen (zonder automatische koppeling)",
-       "tog-uselivepreview": "\"Live voorvertoning\" gebruiken",
+       "tog-uselivepreview": "Livevoorvertoning gebruiken",
        "tog-forceeditsummary": "Een melding geven bij een lege bewerkingssamenvatting",
        "tog-watchlisthideown": "Eigen bewerkingen op mijn volglijst verbergen",
        "tog-watchlisthidebots": "Botbewerkingen op mijn volglijst verbergen",
        "no-null-revision": "Het was niet mogelijk een lege nieuwe versie te maken voor de pagina \"$1\"",
        "badtitle": "Ongeldige paginanaam",
        "badtitletext": "De naam van de opgegeven pagina was ongeldig, leeg of bevatte een verkeerde intertaal- of interwikikoppeling.\nWellicht bevat de paginanaam niet toegestane tekens.",
+       "title-invalid-empty": "De opgevraagde paginanaam is leeg of bevat de naam van een naamruimte.",
+       "title-invalid-utf8": "De opgevraagde paginanaam bevat een ongeldige UFT-8-reeks.",
+       "title-invalid-interwiki": "De aangevraagde paginatitel bevat een interwikikoppeling die niet gebruikt kan worden in titels.",
+       "title-invalid-talk-namespace": "De opgevraagde paginanaam verwijst naar een overlegpagina die niet kan bestaan.",
+       "title-invalid-characters": "De opgevraagde paginanaam bevat ongeldige tekens: \"$1\".",
+       "title-invalid-relative": "De paginanaam bevat een relatief pad. Relatieve paginanamen (\"./\", \"../\") zijn ongeldig omdat ze vaak onbereikbaar zijn als de browser van een gebruiker ze toepast.",
+       "title-invalid-magic-tilde": "De opgevraagde paginanaam bevat een ongeldige volgorde van magische tildes (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "De opgevraagde paginanaam is te lang. Deze mag niet langer zijn dan {{PLURAL:$1|$1 bytes}} in UTF-8-codering.",
+       "title-invalid-leading-colon": "De opgevraagde paginanaam bevat een ongeldige dubbele punt aan het begin.",
        "perfcached": "Deze gegevens komen uit een cache en zijn mogelijk niet actueel. Er {{PLURAL:$1|is maximaal één resultaat|zijn maximaal $1 resultaten}} beschikbaar in de cache.",
        "perfcachedts": "Deze gegevens komen uit een cache die voor het laatst is bijgewerkt op $2 om $3. Er {{PLURAL:$4|is maximaal één resultaat|zijn maximaal $4 resultaten}} beschikbaar in de cache.",
        "querypage-no-updates": "Deze pagina wordt niet bijgewerkt.\nGegevens op deze pagina worden niet ververst.",
        "permissionserrorstext": "U hebt geen rechten om dit te doen om de volgende {{PLURAL:$1|reden|redenen}}:",
        "permissionserrorstext-withaction": "U hebt geen rechten om $2, {{PLURAL:$1|want}}:",
        "recreate-moveddeleted-warn": "'''Waarschuwing: u bent bezig met het aanmaken van een pagina die in het verleden verwijderd is.'''\n\nOverweeg of het terecht is dat u verder werkt aan deze pagina.\nVoor uw gemak staan hieronder het verwijderingslogboek en het hernoemingslogboek voor deze pagina:",
-       "moveddeleted-notice": "Deze pagina is verwijderd.\nTer informatie worden het verwijderingslogboek en het hernoemingslogboek van deze pagina hieronder weergegeven.",
+       "moveddeleted-notice": "Deze pagina is verwijderd.\nTer informatie wordt het verwijderingslogboek en het hernoemingslogboek van deze pagina hieronder weergegeven.",
        "log-fulllog": "Het volledige logboek bekijken",
        "edit-hook-aborted": "De bewerking is afgebroken door een hook.\nEr is geen toelichting beschikbaar.",
        "edit-gone-missing": "De pagina is niet bijgewerkt.\nDeze lijkt verwijderd te zijn.",
        "content-model-css": "CSS",
        "content-json-empty-object": "Leeg object",
        "content-json-empty-array": "Lege reeks",
+       "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>.",
        "expensive-parserfunction-warning": "'''Waarschuwing:''' deze pagina gebruikt te veel kostbare parserfuncties.\n\nNu {{PLURAL:$1|is|zijn}} het er $1, terwijl het er minder dan $2 {{PLURAL:$2|moet|moeten}} zijn.",
        "rev-showdeleted": "weergeven",
        "revisiondelete": "Versies verwijderen of terugplaatsen",
        "revdelete-nooldid-title": "Ongeldige doelversie",
-       "revdelete-nooldid-text": "U hebt geen doelversie(s) voor deze handeling opgegeven. De opgegeven versie bestaat niet of u probeert de laatste versie te verbergen.",
+       "revdelete-nooldid-text": "U hebt geen doelversie voor deze handeling opgegeven of de opgegeven versie bestaat niet, of u probeert de huidige versie te verbergen.",
        "revdelete-no-file": "Het opgegeven bestand bestaat niet.",
        "revdelete-show-file-confirm": "Weet u zeker dat u de verwijderde versie van het bestand \"<nowiki>$1</nowiki>\" van $2 om $3 wilt bekijken?",
        "revdelete-show-file-submit": "Ja",
        "right-passwordreset": "E-mails voor wachtwoord opnieuw instellen bekijken",
        "right-managechangetags": "[[Special:Tags|Labels]] aan de database toevoegen of eruit verwijderen",
        "right-applychangetags": "[[Special:Tags|Labels]] aan bewerkingen toewijzen",
+       "right-changetags": "Willekeurige [[Special:Tags|labels]] toevoegen aan en verwijderen van versies en logboekregels",
        "newuserlogpage": "Logboek nieuwe gebruikers",
        "newuserlogpagetext": "Hieronder staan de nieuw ingeschreven gebruikers",
        "rightslog": "Gebruikersrechtenlogboek",
        "action-editcontentmodel": "de paginainhoudmodel te bewerken",
        "action-managechangetags": "labels aanmaken en verwijderen",
        "action-applychangetags": "labels aan je bewerkingen toe te voegen",
+       "action-changetags": "willekeurige labels toe te voegen aan en te verwijderen van versies en logboekregels",
        "nchanges": "$1 {{PLURAL:$1|bewerking|bewerkingen}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|sinds uw laatste bezoek}}",
        "enhancedrc-history": "geschiedenis",
        "uploaddisabledtext": "Het uploaden van bestanden is uitgeschakeld.",
        "php-uploaddisabledtext": "Het uploaden van bestanden is uitgeschakeld in PHP.\nControleer de instelling \"file_uploads\".",
        "uploadscripted": "Dit bestand bevat HTML- of scriptcode die foutief door uw browser kan worden weergegeven.",
+       "upload-scripted-pi-callback": "Kan niet een bestand met de xml-stylesheet uploaden.",
+       "uploaded-script-svg": "Gevonden scriptable element \"$1\" in het geüploade SVG-bestand.",
+       "uploaded-hostile-svg": "Gevonden onveilige CSS in de stijl element van het geüploade SVG-bestand .",
+       "uploaded-event-handler-on-svg": "Het instellen van de event-handler attributen <code>$1=\"$2\"</code> is niet toegestaan in SVG-bestanden.",
+       "uploaded-href-attribute-svg": "Href kenmerken <code><$1 $2=\"$3\"></code> met niet-lokale doel (bijv. http:// javascript:, enz.) zijn niet toegestaan in SVG-bestanden.",
+       "uploaded-href-unsafe-target-svg": "Gevonden href tot onveilige doel <code><$1 $2=\"$3\"></code> in het geüploade SVG-bestand .",
+       "uploaded-animate-svg": "Gevonden \"animeren\" tag die kan veranderen href behulp van de \"uit\" - attribuut <code><$1 $2=\"$3\"></code> in het geüploade svg-bestand.",
+       "uploaded-setting-event-handler-svg": "Het instellen van de event-handler attributen is geblokkeerd, gevonden <code><$1 $2=\"$3\"></code> in het geüploade SVG-bestand.",
+       "uploaded-setting-href-svg": "Met behulp van de \"set\" tag toevoegen \"href\" attribuut te bovenliggende element is geblokkeerd.",
+       "uploaded-wrong-setting-svg": "Met behulp van de \"set\" tag toevoegen van een afstandsbediening/data/script doel aan een kenmerk is geblokkeerd. Gevonden <code><set=\"$1\"></code> in het geüploade SVG-bestand.",
+       "uploaded-setting-handler-svg": "SVG-dat stelt de \"handler\" attribuut met afstandsbediening/data/script geblokkeerd. Gevonden <code>$1=\"$2\"</code> in de SVG-bestand geüpload.",
+       "uploaded-remote-url-svg": "SVG-dat wordt voorzien van een style attribuut met externe URL wordt geblokkeerd. Gevonden <code>$1=\"$2\"</code> in de SVG-bestand geüpload.",
+       "uploaded-image-filter-svg": "Gevonden href tot onveilige doel <code><$1 $2=\"$3\"></code> in het geüploade SVG-bestand .",
        "uploadscriptednamespace": "Dit SVG-bestand bevat een ongeldige naamruimte \"$1\".",
        "uploadinvalidxml": "De XML in het geüploade bestand kon niet worden verwerkt.",
        "uploadvirus": "Het bestand bevat een virus! Details: $1",
        "unusedimages": "Ongebruikte bestanden",
        "wantedcategories": "Niet-bestaande categorieën met de meeste koppelingen",
        "wantedpages": "Niet-bestaande pagina's met koppelingen",
+       "wantedpages-summary": "Lijst van niet-bestaande pagina 's met de meeste schakels naar hen, met uitsluiting van pagina' s die slechts omleidingen linken naar hen. Voor een lijst van niet-bestaande pagina ' s die omleidingen linken naar hen, zie [[{{#special:BrokenRedirects}}|de lijst van gebroken redirects]].",
        "wantedpages-badtitle": "Ongeldige paginanaam in resultaat: $1",
        "wantedfiles": "Niet-bestaande bestanden met koppelingen",
        "wantedfiletext-cat": "De volgende bestanden worden gebruikt maar bestaan niet. Bestanden van externe repositories kunnen zijn opgenomen in de lijst, ondanks dat ze bestaan. Dergelijke vals positieven worden <del>doorgehaald weergegeven</del>. Pagina's die niet-bestaande bestanden insluiten staan op de pagina [[:$1]].",
        "namespace": "Naamruimte:",
        "invert": "Selectie omkeren",
        "tooltip-invert": "Vink dit aan om wijzigingen te verbergen in de geselecteerde naamruimte (en de gekoppelde naamruimte indien aangevinkt)",
+       "tooltip-whatlinkshere-invert": "Vink dit vakje aan om koppelingen van pagina's in de geselecteerde naamruimte te verbergen.",
        "namespace_association": "Gekoppelde naamruimte",
        "tooltip-namespace_association": "Vink dit aan om ook wijzigingen weer te geven in de overleg- of onderwerpnaamruimte die bij de geselecteerde naamruimte hoort",
        "blanknamespace": "(Hoofdnaamruimte)",
        "thumbnail-temp-create": "Het was niet mogelijk een tijdelijk miniatuurbestand aan te maken.",
        "thumbnail-dest-create": "Het was niet mogelijk het miniatuurbestand op de doellocatie op te slaan.",
        "thumbnail_invalid_params": "Onjuiste parameters voor miniatuurafbeelding",
+       "thumbnail_toobigimagearea": "Bestand met afmetingen groter dan $1",
        "thumbnail_dest_directory": "Niet in staat doelmap aan te maken",
        "thumbnail_image-type": "Dit bestandstype wordt niet ondersteund",
        "thumbnail_gd-library": "De instellingen voor de GD-bibliotheek zijn incompleet. De functie $1 ontbreekt",
        "import-interwiki-history": "Volledige geschiedenis van deze pagina ook kopiëren",
        "import-interwiki-templates": "Alle sjablonen opnemen",
        "import-interwiki-submit": "Importeren",
+       "import-mapping-default": "Importeren naar standaardplaatsen",
+       "import-mapping-namespace": "Importeren naar een naamruimte:",
        "import-mapping-subpage": "Importeren als subpagina's van de volgende pagina:",
        "import-upload-filename": "Bestandsnaam:",
        "import-comment": "Opmerking:",
        "tags-create-reason": "Reden:",
        "tags-create-submit": "Aanmaken",
        "tags-create-no-name": "U moet een labelnaam opgeven.",
+       "tags-create-invalid-chars": "Labelnamen mogen geen komma's (<code>,</code>) of slashes (<code>/</code>) bevatten.",
+       "tags-create-invalid-title-chars": "Labelnamen mogen geen tekens bevatten die niet gebruikt kunnen worden in paginanamen.",
        "tags-create-already-exists": "Het label \"$1\" bestaat al.",
+       "tags-create-warnings-above": "De volgende {{PLURAL:$2|waarschuwing is|waarschuwningen zijn}} opgetreden tijdens het aanmaken van het label \"$1\":",
+       "tags-create-warnings-below": "Wilt u doorgaan met het aanmaken van het label?",
        "tags-delete-title": "Label verwijderen",
+       "tags-delete-explanation-initial": "U bent het label \"$1\" aan het verwijderen uit de database.",
+       "tags-delete-explanation-in-use": "Het wordt verwijderd van {{PLURAL:$2|één versie of logboekregel|alle $2 versies en/of logboekregels}} waarin het is gebruikt.",
+       "tags-delete-explanation-warning": "Deze handeling is <strong>onomkeerbaar</strong> en <strong>kan niet ongedaan gemaakt worden</strong>, zelfs niet door databasebeheerders. Weet zeker dat u dit label wilt verwijderen.",
+       "tags-delete-explanation-active": "<strong>Het label \"$1\" is nog steeds actief, en wordt in de toekomst gebruikt.</strong> Om te verhinderen dat dit gebeurt, gaat u naar de plaats(en) waar is ingesteld dat het label wordt toegevoegd, en past daar de instellingen aan.",
        "tags-delete-reason": "Reden:",
        "tags-delete-submit": "Deze tag onomkeerbaar verwijderen",
+       "tags-delete-not-allowed": "Labels die worden gedefinieerd door een uitbreiding kunnen niet worden verwijderd, tenzij de uitbreiding dit specifiek toestaat.",
        "tags-delete-not-found": "Het label \"$1\" bestaat niet.",
+       "tags-delete-too-many-uses": "Het label \"$1\" is toegepast op meer dan $2 {{PLURAL:$2|versies}}. Daardoor kan het niet verwijderd worden.",
+       "tags-delete-warnings-after-delete": "Het label \"$1\" is verwijderd, maar de volgende {{PLURAL:$2|waarschuwing is|waarschuwingen zijn}} opgetreden:",
        "tags-activate-title": "Label activeren",
+       "tags-activate-question": "U activeert het label \"$1\".",
        "tags-activate-reason": "Reden:",
+       "tags-activate-not-allowed": "Het is niet mogelijk het label \"$1\" te activeren.",
        "tags-activate-not-found": "Het label \"$1\" bestaat nog niet.",
        "tags-activate-submit": "Activeren",
        "tags-deactivate-title": "Label deactiveren",
        "tags-deactivate-question": "U staat op het punt om het label \"$1\" te deactiveren.",
        "tags-deactivate-reason": "Reden:",
+       "tags-deactivate-not-allowed": "Het is niet mogelijk het label \"$1\" te deactiveren.",
        "tags-deactivate-submit": "Deactiveren",
+       "tags-apply-no-permission": "U hebt geen rechten om wijzigingslabels toe te voegen aan uw wijzigingen.",
+       "tags-apply-not-allowed-one": "Het label \"$1\" mag niet handmatig toegevoegd worden.",
+       "tags-apply-not-allowed-multi": "{{PLURAL:$2|Het volgende label mag|De volgende labels mogen}} niet handmatig toegevoegd worden: $1",
+       "tags-update-no-permission": "U hebt geen rechten om wijzigingslabels toe te voegen aan of te verwijderen van versies of logboekregels.",
+       "tags-update-add-not-allowed-one": "Het label \"$1\" mag niet handmatig toegevoegd worden.",
+       "tags-update-add-not-allowed-multi": " {{PLURAL:$2|Het label kan|De labels kunnen}} niet handmatig toegevoegd worden: $1",
+       "tags-update-remove-not-allowed-one": "Het label \"$1\" mag niet verwijderd worden.",
+       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|Het volgende label kan|De volgende labels kunnen}} niet handmatig verwijderd worden: $1",
        "tags-edit-title": "Labels bewerken",
        "tags-edit-manage-link": "Labels beheren",
+       "tags-edit-revision-selected": "Geselecteerde {{PLURAL:$1|versie|versies}} van [[:$2]]:",
+       "tags-edit-logentry-selected": "Geselecteerde {{PLURAL:$1|logboekregel|logboekregels}}:",
+       "tags-edit-revision-legend": "Labels van {{PLURAL:$1|deze versie|alle $1 versies}} toevoegen of verwijderen",
+       "tags-edit-logentry-legend": "Labels van {{PLURAL:$1|deze logboekregel|alle $1 logboekregels}} toevoegen of verwijderen",
        "tags-edit-existing-tags": "Bestaande labels:",
        "tags-edit-existing-tags-none": "''Geen''",
        "tags-edit-new-tags": "Nieuwe labels:",
        "tags-edit-remove": "Deze labels verwijderen:",
        "tags-edit-remove-all-tags": "(alle labels verwijderen)",
        "tags-edit-chosen-placeholder": "Selecteer een paar labels",
+       "tags-edit-chosen-no-results": "Er zijn geen overeenkomende labels",
        "tags-edit-reason": "Reden:",
+       "tags-edit-revision-submit": "Wijzigingen op {{PLURAL:$1|deze versie|$1 versies}} toepassen",
+       "tags-edit-logentry-submit": "Wijzigingen op {{PLURAL:$1|deze logboekregel|$1 logboekregels}} toepassen",
+       "tags-edit-success": "De wijzigingen zijn toegepast.",
+       "tags-edit-failure": "De wijzigingen konden niet toegepast worden:\n$1",
+       "tags-edit-nooldid-title": "Ongeldige doelversie",
+       "tags-edit-nooldid-text": "U hebt geen doelversie aangegeven waarop deze handeling uitgevoerd moet worden, of de aangegeven versie bestaat niet.",
+       "tags-edit-none-selected": "Selecteer tenminste één label om toe te voegen of te verwijderen.",
        "comparepages": "Pagina's vergelijken",
        "compare-page1": "Pagina 1",
        "compare-page2": "Pagina 2",
        "logentry-block-reblock": "$1 {{GENDER:$2|heeft}} de blokkade voor {{GENDER:$4|$3}} aangepast. Deze vervalt nu op $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2|heeft}} {{GENDER:$4|$3}} geblokkeerd voor de duur van $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|heeft}} de blokkade voor {{GENDER:$4|$3}} aangepast. Deze vervalt nu op $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|heeft}} $3 geïmporteerd via een bestandsupload",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|heeft}} $3 geïmporteerd vanuit een andere wiki",
        "logentry-merge-merge": "$1 {{GENDER:$2|heeft}} $3 samengevoegd naar $4 (versies tot en met $5)",
        "logentry-move-move": "$1 {{GENDER:$2|heeft}} pagina $3 hernoemd naar $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|heeft}} de pagina $3 hernoemd naar $4 zonder een doorverwijzing achter te laten",
        "logentry-upload-upload": "$1 heeft $3 {{GENDER:$2|geüpload}}",
        "logentry-upload-overwrite": "$1 {{GENDER:$2|heeft}} een nieuwe versie van $3 geüpload",
        "logentry-upload-revert": "$1 heeft $3 {{GENDER:$2|geupload}}",
+       "log-name-managetags": "Labelbeheerlogboek",
+       "log-description-managetags": "Deze pagina geeft een overzicht van managementtaken met betrekking tot [[Special:Tags|labels]]. Het logboek bevat alleen activiteiten die handmatig zijn uitgevoerd door een beheerder. Labels kunnen door de wikisoftware worden gemaakt of verwijderd zonder dat er een vermelding is opgenomen in dit logboek.",
        "logentry-managetags-create": "$1 heeft het label \"$4\" {{GENDER:$2|aangemaakt}}",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|heeft}} het label \"$4\" verwijderd (verwijderd uit $5 {{PLURAL:$5|versie of logboekregel|versies en/of logboekregels}})",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|heeft}} het label \"$4\" geactiveerd voor gebruik door gebruikers in robots",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|heeft}} het label \"$4\" gedeactiveerd voor gebruik door gebruikers in robots",
        "log-name-tag": "Labellogboek",
+       "log-description-tag": "Op deze pagina wordt weergegeven wanneer gebruikers [[Special:Tags|labels]] hebben toegevoegd of verwijderd van versies of logboekregels. In het logboek is niet opgenomen dat labels zijn toegevoegd als onderdeel van een bewerking, verwijdering of soortgelijke handeling.",
        "logentry-tag-update-add-revision": "$1 heeft {{PLURAL:$7|het label|de labels}} $6 aan versie $4 van pagina $3 {{GENDER:$2|toegevoegd}}",
        "logentry-tag-update-add-logentry": "$1 heeft {{PLURAL:$7|het label|de labels}} $6 aan logboekregel $5 van pagina $3 {{GENDER:$2|toegevoegd}}",
        "logentry-tag-update-remove-revision": "$1 heeft {{PLURAL:$9|het label|de labels}} $8 van versie $4 van pagina $3 {{GENDER:$2|verwijderd}}",
        "feedback-close": "Afgerond",
        "feedback-external-bug-report-button": "Een technische taak indienen",
        "feedback-dialog-title": "Terugkoppeling verzenden",
+       "feedback-dialog-intro": "U kunt het eenvoudige formulier gebruiken om uw terugkoppeling in te sturen. Uw reactie wordt toegevoegd aan de pagina \"$1\" samen met uw gebruikersnaam.",
        "feedback-error-title": "Fout",
        "feedback-error1": "Fout: onbekend resultaat uit de API",
        "feedback-error2": "Fout: de bewerking is mislukt",
        "feedback-error3": "Fout: geen reactie van de API",
+       "feedback-error4": "Fout: het was niet mogelijk het bericht te plaatsen op de pagina",
        "feedback-message": "Bericht:",
        "feedback-subject": "Onderwerp:",
        "feedback-submit": "Opslaan",
+       "feedback-terms": "Ik begrijp dat mijn useragentgegevens informatie bevatten over de browser en het besturingssysteem dat ik gebruik, en dat deze gegevens samen met mijn terugkoppeling openbaar worden gemaakt.",
+       "feedback-termsofuse": "Ik ga akkoord met het geven van terugkoppeling in overeenstemming met de Gebruiksvoorwaarden.",
        "feedback-thanks": "Bedankt! Uw terugkoppeling is op de pagina \"[$2 $1]\" geplaatst.",
        "feedback-thanks-title": "Bedankt!",
+       "feedback-useragent": "Useragent:",
        "searchsuggest-search": "Zoeken",
        "searchsuggest-containing": "bevat...",
        "api-error-badaccess-groups": "U mag geen bestanden uploaden in deze wiki.",
        "expand_templates_generate_xml": "XML-parserboom bekijken",
        "expand_templates_generate_rawhtml": "Ruwe HTML weergeven",
        "expand_templates_preview": "Voorvertoning",
+       "expand_templates_preview_fail_html": "<em>Omdat voor {{SITENAME}} ruwe HTML is ingeschakeld, en er sessiegegevens verloren zijn gegaan, is de voorvertoning verborgen als voorzorgmaatregel tegen JavaScriptaanvallen.</em>\n\n<strong>Als dit een legitieme poging is voor het weergeven van een voorvertoning, probeer het dan opnieuw.</strong>\nAls het dan nog steeds niet werkt, probeer dan [[Special:UserLogout|af te melden]] en opnieuw aan te melden.",
+       "expand_templates_preview_fail_html_anon": "<em>Omdat in {{SITENAME}} ruwe HTML is ingeschakeld en u niet bent aangemeld, is de voorvertoning verborgen als voorzorgsmaatregel tegen de JavaScriptaanvallen.</em>\n\n<strong>Als dit een legitieme poging is voor het maken van een voorvertoning, [[Special:UserLogin|meld u dan aan]] en probeer het opnieuw.</strong>",
        "pagelanguage": "Paginataal kiezen",
        "pagelang-name": "Pagina",
        "pagelang-language": "Taal",
        "log-name-pagelang": "Logboek taalwijzigingen",
        "log-description-pagelang": "Dit is een logboek van wijzigingen van de taal van pagina's.",
        "logentry-pagelang-pagelang": "$1 heeft de taal van de pagina \"$3\" gewijzigd van $4 naar $5.",
-       "default-skin-not-found": "Het standaard uiterlijk voor de wiki, dat is ingesteld in <code dir=\"ltr\">$wgDefaultSkin</code> as <code>$1</code>, is niet beschikbaar.\n\nUw installatie heeft de volgende uiterlijken. Zie See [https://www.mediawiki.org/wiki/Manual:Skin_configuration Handboek: uiterlijk instellen] voor meer informatie over hoe u het uiterlijk instelt en een standaard uiterlijk aangeeft.\n\n$2\n\n; Als u MediaWiki zojuist hebt geïnstalleerd:\n: U hebt waarschijnlijk geïnstalleerd via git, or direct vanuit de broncode via een andere methode. Deze melding is verwacht. Installeer één of meer van de [https://www.mediawiki.org/wiki/Category:All_skins beschikbare uiterlijken op mediawiki.org], door:\n:* De [https://www.mediawiki.org/wiki/Download tarball te downloaden], die meerdere uiterlijken en uitbreidingen bevat. U kunt de map <code>skins/</code> daar uit kopiëren;\n:* Een van de repositories <code>mediawiki/skins/*</code> te klonen via git in de map <code dir=\"ltr\">skins/</code> van uw installatie van MediaWiki.\n: Als u dit doet en u bent MediaWikiontwikkelaar, heeft dit geen invloed op uw gitrepository.\n\n; Als u MediaWiki net hebt bijgewerkt:\n: In MediaWiki 1.24 en nieuwere versies worden geïnstalleerde uiterlijken niet langer automatisch ingeschakeld (zie [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Handboek: uiterlijken automatisch vinden]). U kunt de volgende regels kopieren naar <code>LocalSettings.php</code> om alle op dit moment geïnstalleerde uiterlijken in te schakelen:\n\n<pre dir=\"ltr\">$3</pre>\n\n; In het geval u zojuist <code>LocalSettings.php</code> hebt aangepast:\n: Controleer de namen van de uiterlijken op spelfouten.",
-       "default-skin-not-found-no-skins": "Het standaard uiterlijk voor uw wiki, als aangegeven in <code>$wgDefaultSkin</code> als <code>$1</code>, is niet beschikbaar.\n\nU hebt geen geïnstalleerde uiterlijken.\n\n; Als u MediaWiki zojuist hebt geïnstalleerd:\n: U hebt waarschijnlijk geïnstalleerd via git, or direct vanuit de broncode via een andere methode. Deze melding is verwacht. Installeer één of meer van de [https://www.mediawiki.org/wiki/Category:All_skins beschikbare uiterlijken op mediawiki.org], door:\n:* De [https://www.mediawiki.org/wiki/Download tarball te downloaden], die meerdere uiterlijken en uitbreidingen bevat. U kunt de map <code>skins/</code> daar uit kopiëren;\n:* Een van de repositories <code>mediawiki/skins/*</code> te klonen via git in de map <code dir=\"ltr\">skins/</code> van uw installatie van MediaWiki.\n: Als u dit doet en u bent MediaWikiontwikkelaar, heeft dit geen invloed op uw gitrepository.",
+       "default-skin-not-found": "Het standaard uiterlijk voor de wiki, dat is ingesteld in <code dir=\"ltr\">$wgDefaultSkin</code> as <code>$1</code>, is niet beschikbaar.\n\nUw installatie heeft {{PLURAL:$4|het volgende uiterlijk|de volgende uiterlijken}}. Zie [https://www.mediawiki.org/wiki/Manual:Skin_configuration Handboek: uiterlijk instellen] voor meer informatie over hoe u het uiterlijk instelt en een standaard uiterlijk aangeeft.\n\n$2\n\n; Als u MediaWiki zojuist hebt geïnstalleerd:\n: U hebt waarschijnlijk geïnstalleerd via git, or direct vanuit de broncode via een andere methode. Deze melding is verwacht. Installeer één of meer van de [https://www.mediawiki.org/wiki/Category:All_skins beschikbare uiterlijken op mediawiki.org], door:\n:* De [https://www.mediawiki.org/wiki/Download tarball te downloaden], die meerdere uiterlijken en uitbreidingen bevat. U kunt de map <code>skins/</code> daar uit kopiëren;\n:* Het downloaden van tarballs voor uiterlijken van [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org];\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Git gebruiken voor het downloaden van uiterlijken].\n: Als u dit doet en u bent MediaWikiontwikkelaar, heeft dit geen invloed op uw gitrepository.\n\n; Als u MediaWiki net hebt bijgewerkt:\n: In MediaWiki 1.24 en nieuwere versies worden geïnstalleerde uiterlijken niet langer automatisch ingeschakeld (zie [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Handboek: uiterlijken automatisch vinden]). U kunt de volgende {{PLURAL:$5|regel|regels}} kopieren naar <code>LocalSettings.php</code> om alle op dit moment geïnstalleerde uiterlijken in te schakelen:\n\n<pre dir=\"ltr\">$3</pre>\n\n; In het geval u zojuist <code>LocalSettings.php</code> hebt aangepast:\n: Controleer de namen van de uiterlijken op spelfouten.",
+       "default-skin-not-found-no-skins": "Het standaard uiterlijk voor uw wiki, als aangegeven in <code>$wgDefaultSkin</code> als <code>$1</code>, is niet beschikbaar.\n\nU hebt geen geïnstalleerde uiterlijken.\n\n; Als u MediaWiki zojuist hebt geïnstalleerd:\n: U hebt waarschijnlijk geïnstalleerd via git, or direct vanuit de broncode via een andere methode. Deze melding is verwacht. Installeer één of meer van de [https://www.mediawiki.org/wiki/Category:All_skins beschikbare uiterlijken op mediawiki.org], door:\n:* De [https://www.mediawiki.org/wiki/Download tarball te downloaden], die meerdere uiterlijken en uitbreidingen bevat. U kunt de map <code>skins/</code> daar uit kopiëren;\n:* Het downloaden van tarballs voor uiterlijken van [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org];\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Git gebruiken voor het downloaden van uiterlijken].\n: Als u dit doet en u bent MediaWikiontwikkelaar, heeft dit geen invloed op uw gitrepository.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (ingeschakeld)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 (<strong>uitgeschakeld</strong>)",
        "mediastatistics": "Mediastatistieken",
        "special-characters-group-greek": "Grieks",
        "special-characters-group-cyrillic": "Cyrillisch",
        "special-characters-group-arabic": "Arabisch",
-       "special-characters-group-arabicextended": "Uitgebreid Arabisch",
-       "special-characters-group-persian": "Farsi",
+       "special-characters-group-arabicextended": "Arabisch uitgebreid",
+       "special-characters-group-persian": "Perzisch",
        "special-characters-group-hebrew": "Hebreeuws",
        "special-characters-group-bangla": "Bengaals",
        "special-characters-group-tamil": "Tamil",
index 66f7f1e..f38011d 100644 (file)
@@ -22,7 +22,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "Gaute",
-                       "Macofe"
+                       "Macofe",
+                       "Chameleon222"
                ]
        },
        "tog-underline": "Strek under lenkjer:",
        "disclaimers": "Atterhald",
        "disclaimerpage": "Project:Atterhald",
        "edithelp": "Endringshjelp",
+       "helppage-top-gethelp": "Hjelp",
        "mainpage": "Hovudside",
        "mainpage-description": "Hovudside",
        "policy-url": "Project:Retningsliner",
        "currentrev": "Versjonen no",
        "currentrev-asof": "Versjonen no frå $1",
        "revisionasof": "Versjonen frå $1",
-       "revision-info": "Versjonen frå $1 av $2",
+       "revision-info": "Versjonen frå $1 av {{GENDER:$6|$2}}$7",
        "previousrevision": "← Eldre versjon",
        "nextrevision": "Nyare versjon →",
        "currentrevisionlink": "Versjonen no",
        "listfiles_size": "Storleik",
        "listfiles_description": "Skildring",
        "listfiles_count": "Versjonar",
+       "listfiles-show-all": "Ta med gamle versjonar av bilete",
        "listfiles-latestversion": "Gjeldande versjon",
        "listfiles-latestversion-yes": "Ja",
        "listfiles-latestversion-no": "Nei",
        "unwatchthispage": "Fjern overvaking",
        "notanarticle": "Ikkje innhaldsside",
        "notvisiblerev": "Sideversjonen er sletta",
-       "watchlist-details": "{{PLURAL:$1|Éi side|$1 sider}} på overvakingslista di, utan separat teljing av diskusjonssider.",
+       "watchlist-details": "Du har {{PLURAL:$1|éi side|$1 sider}} på overvakingslista di (med tilhøyrande diskusjonssider).",
        "wlheader-enotif": "Funksjonen for endringsmeldingar per e-post er på.",
        "wlheader-showupdated": "Sider som har vorte endra sidan du sist såg på dei er '''utheva'''",
        "wlnote": "Nedanfor er {{PLURAL:$1|den siste endringa|dei siste '''$1''' endringane}} {{PLURAL:$2|den siste timen|dei siste '''$2''' timane}}, for $3, kl. $4.",
        "tooltip-feed-atom": "Atom-mating for denne sida",
        "tooltip-t-contributions": "Sjå liste over bidrag frå denne brukaren",
        "tooltip-t-emailuser": "Send ein e-post til denne brukaren",
+       "tooltip-t-info": "Meir informasjon om sida",
        "tooltip-t-upload": "Last opp filer",
        "tooltip-t-specialpages": "Liste over spesialsider",
        "tooltip-t-print": "Utskriftsversjon av sida",
        "logentry-rights-rights": "$1 {{GENDER:$2|endra}} gruppemedlemskap for $3 frå $4 til $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|endra}} gruppemedlemskap for $3",
        "logentry-rights-autopromote": "$1 vart automatisk {{GENDER:$2|forfremja}} frå $4 til $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|lasta opp}} $3",
+       "log-name-tag": "Merkelogg",
        "rightsnone": "(ingen)",
        "revdelete-summary": "Samandrag",
        "feedback-adding": "Legg til attendemeldinga til sida...",
index fd53485..ba56063 100644 (file)
        "no-null-revision": "\"$1\" ପୃଷ୍ଠାଟି ପାଇଁ ଫାଙ୍କା ସଂସ୍କରଣଟିଏ ତିଆରି କରିପାରିଲୁ ନାହିଁ",
        "badtitle": "ଖରାପ ନାଆଁ",
        "badtitletext": "ଆପଣ ଅନୁରୋଧ କରିଥିବା ପୃଷ୍ଠାଟି ଭୁଲ, ଖାଲି ଅଛି ବା ବାକି ଭାଷା ସାଙ୍ଗରେ ଭୁଲରେ ଯୋଡ଼ା ଯାଇଛି ବା ଭୁଲ ଇଣ୍ଟର ଉଇକି ନାମ ଦିଆଯାଇଛି ।\nଏଥିରେ ଥିବା ଗୋଟିଏ ବା ଦୁଇଟି ଅକ୍ଷର ଶିରୋନାମା ଭାବରେ ବ୍ୟବହାର କରାଯାଇ ପାରିବ ନାହିଁ ।",
+       "title-invalid-empty": "ଅନୁରୋଧ କରାଯାଇଥିବା ପୃଷ୍ଠାର ଶର୍ଷକଟି ଖାଲି ଅଛି କିମ୍ବା ନେମସ୍ପସର ନାମ ଅଛି ।",
+       "title-invalid-utf8": "ଅନୁରୋଧ କରାଯାଇଥିବା ପୃଷ୍ଠାର ଶର୍ଷକରେ ଅବୈଧ UTF-8 ଧାରା ଅଛି ।",
        "perfcached": "ତଳଲିଖିତ ତଥ୍ୟଗୁଡିକୁ ଅସ୍ଥାୟୀ ଭାବେ ରଖାଗଲା ଏବଂ ଏହା ଅପଡେଟ ନ ହୋଇପାରେ । ଅତିବେଶିରେ {{PLURAL:$1|ଫଳ|$1ଫଳଗୁଡିକ }} ଅସ୍ଥାୟୀ ରୂପେ ରହି ପାରିବ ।",
        "perfcachedts": "ତଳଲିଖିତ ତଥ୍ୟଗୁଡିକୁ ଅସ୍ଥାୟୀ ଭାବେ ରଖାଗଲା ଏବଂ  $1ରେ ଶେଷଥର ଅପଡେଟ ହୋଇଥିଲା । ଅତିବେଶିରେ {{PLURAL:$1|ଫଳ|$1ଫଳଗୁଡିକ }} ଅସ୍ଥାୟୀ ରୂପେ ରହି ପାରିବ ।",
        "querypage-no-updates": "ଏହି ପୃଷ୍ଠାଟି ପାଇଁ ଅପଡେଟସବୁ ଏବେ ଅଚଳ କରାଯାଇଅଛି ।\nଏଠାରେ ଥିବା ତଥ୍ୟ ସବୁ ଏବେ ସତେଜ ହୋଇପାରିବ ନାହିଁ ।",
        "createacct-emailoptional": "ଇମେଲ ଠିକଣା (ଇଚ୍ଛାଧୀନ)",
        "createacct-email-ph": "ଆପଣଙ୍କ ଇମେଲ ଠିକଣା ଦିଅନ୍ତୁ",
        "createacct-another-email-ph": "ଆପଣଙ୍କ ଇ-ମେଲ ଠିକଣା ଦିଅନ୍ତୁ",
-       "createaccountmail": "à¬\8fà¬\95 à¬\85ସà­\8dଥାà­\9fà­\80 à¬ªà¬¾à¬¸à­±à¬¾à¬°à­\8dଡ଼ à¬¬à­\8dà­\9fବହାର à¬\95ରନà­\8dତà­\81 à¬\8fବà¬\82 à¬\8fହାà¬\95à­\81 à¬¤à¬³à­\87 à¬¦à¬¿à¬\86ଯାà¬\87ଥିବା à¬\87-ମà­\87ଲ à¬ à¬¿à¬\95ଣାà¬\95à­\81 à¬ªà¬ à­\87à¬\87 ଦିଅନ୍ତୁ",
+       "createaccountmail": "à¬\8fà¬\95 à¬\85ସà­\8dଥାà­\9fà­\80 à¬ªà¬¾à¬¸à­±à¬¾à¬°à­\8dଡ଼ à¬¬à­\8dà­\9fବହାର à¬\95ରନà­\8dତà­\81 à¬\8fବà¬\82 à¬\8fହାà¬\95à­\81 à¬¤à¬³à­\87 à¬¦à¬¿à¬\86ଯାà¬\87ଥିବା à¬\87-ମà­\87ଲ à¬ à¬¿à¬\95ଣାà¬\95à­\81 à¬ªà¬ à¬¾à¬\87ଦିଅନ୍ତୁ",
        "createacct-realname": "ପ୍ରକୃତ ନାମ (ଇଚ୍ଛାଧୀନ)",
        "createaccountreason": "କାରଣ:",
        "createacct-reason": "କାରଣ",
        "changeemail": "ଇ-ମେଲ ଠିକଣା ବଦଳାଇବେ",
        "changeemail-text": "ଆପଣା ଇ-ମେଲ ଠିକଣା ବଦଳାଇବା ନିମନ୍ତେ ଏହି ଆବେଦନ ପତ୍ରଟି ପୂରଣ କରନ୍ତୁ । ଆପଣଙ୍କୁ ଏହି ବଦଳ ଥୟ କରିବା ପାଇଁ ନିଜର ପାସୱାର୍ଡ଼ ଦେବାକୁ ପଡ଼ିବ ।",
        "changeemail-no-info": "ଏହି ପୃଷ୍ଠାଟିକୁ ସିଧା ଖୋଲିବା ନିମନ୍ତେ ଆପଣଙ୍କୁ ଲଗ ଇନ କରିବାକୁ ପଡ଼ିବ ।",
-       "changeemail-oldemail": "à¬\8fବà­\87à¬\95ାର à¬\87-ମà­\87ଲ à¬ à¬¿à¬\95ଣା:",
+       "changeemail-oldemail": "ଏବେର ଇ-ମେଲ ଠିକଣା:",
        "changeemail-newemail": "ନୂଆ ଇ-ମେଲ ଠିକଣା:",
        "changeemail-none": "(କିଛି ନାହିଁ)",
        "changeemail-password": "ଆପଣଙ୍କ {{SITENAME}} ପାସୱାର୍ଡ",
        "autoblockedtext": "ଆପଣଙ୍କ IP ଠିକଣାଟି ଆପେଆପେ ପ୍ରତିରୋଧ କରାଯାଇଛି କାରଣ ଏହା ଆଉ ଜଣେ ବ୍ୟବହାରକାରୀଙ୍କ ଦେଇ ବ୍ୟବହାର କରାଯାଇଛି, ଯେ $1ଙ୍କ ଦେଇ ଅଟକାଯାଇଛନ୍ତି ।\nଦିଆଯାଇଥିବା କାରଣ:\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 କରିବାକୁ ପଡ଼ିବ ।",
-       "confirmedittext": "ସମ୍ପାଦନା କରିବା ଆଗରୁ ଆପଣଙ୍କୁ ନିଜ ଇ-ମେଲ ଠିକଣାଟିକୁ ଥୟ କରିବାକୁ ପଡ଼ିବ ।\nଆପଣା [[Special:Preferences|ସଭ୍ୟ ପସନ୍ଦ]] ଭିତରୁ ବାଛି ନିଜ ଇ-ମେଲ ଠିକଣାଟିକୁ ଥୟ କରନ୍ତୁ ।",
+       "confirmedittext": "ସମ୍ପାଦନା କରିବା ଆଗରୁ ଆପଣଙ୍କୁ ନିଜ ଇ-ମେଲ ଠିକଣାଟିକୁ ଥୟ କରିବାକୁ ପଡ଼ିବ ।\nଆପଣା [[Special:Preferences|ସଭ୍ୟ ପସନ୍ଦ]] ଭିତରୁ ବାଛି ନିଜ ଇ-ମେଲ ଠିକଣାଟିକୁ ଥୟ କରନ୍ତୁ ।",
        "nosuchsectiontitle": "ବିଭାଗ ମିଳିଲା ନାହିଁ",
        "nosuchsectiontext": "ଆପଣ ସମ୍ପାଦନା କରିବାକୁ ଚେଷ୍ଟା କରୁଥିବା ବିଭାଗଟି ଏଯାଏଁ ତିଆରି କରାଯାଇ ନାହିଁ ।\nଆପଣ ଏହି ପୃଷ୍ଠାଟି ଦେଖିବା ବେଳେ ତାହାକୁ ଘୁଞ୍ଚାଇ ବା ଲିଭାଇ ଦିଆଯାଇ ଥାଇପାରେ ।",
        "loginreqtitle": "ଲଗ ଇନ ଲୋଡ଼ା",
        "prefs-watchlist-token": "ଦେଖଣା ତାଲିକା ଟୋକନ:",
        "prefs-misc": "ବିଭିନ୍ନ",
        "prefs-resetpass": "ପାସୱାର୍ଡ଼ ବଦଳାନ୍ତୁ",
-       "prefs-changeemail": "à¬\87-ମà­\87ଲ à¬ªà¬°à¬¿à¬°à­\8dବତà­\8dତନ à¬\95ରନ୍ତୁ",
+       "prefs-changeemail": "à¬\87-ମà­\87ଲ à¬¬à¬¦à¬³à¬¾ନ୍ତୁ",
        "prefs-setemail": "ଇ-ମେଲ ଠିକଣାଟିଏ  ଥୟ କରିବେ",
        "prefs-email": "ଇ-ମେଲ ବିକଳ୍ପମାନ",
        "prefs-rendering": "ଦେଖଣା",
        "rcshowhideminor": "ଛୋଟମୋଟ ବଦଳ $1",
        "rcshowhideminor-show": "ଦେଖାଇବେ",
        "rcshowhideminor-hide": "ଲୁଚାଇବେ",
-       "rcshowhidebots": "$1 ବଟଗୁଡିକ",
+       "rcshowhidebots": "ବଟଗୁଡ଼ିକ $1",
        "rcshowhidebots-show": "ଦେଖାଇବେ",
        "rcshowhidebots-hide": "ଲୁଚାଇବେ",
        "rcshowhideliu": "ପଞ୍ଜୀକୃତ ସଭ୍ୟ $1",
        "mailnologin": "ଗୋଟିଏ ବି ପଠାଇବା ଠିକଣା ନାହିଁ",
        "mailnologintext": "ଆପଣ ନିଜ [[Special:Preferences|ପସନ୍ଦସବୁ]]ରେ [[Special:UserLogin|ଲଗ ଇନ]] କରିଥିଲେ ଓ ନିଜର ଏକ ସଚଳ ଇ-ମେଲ ଠିକଣା ଥିଲେ ଯାଇ ବାକି ସବୁ ସଭ୍ୟଙ୍କୁ ଇ-ମେଲ ପଠାଇପାରିବେ ।",
        "emailuser": "ଏହି ସଭ୍ୟଙ୍କୁ ଇମେଲ କରିବେ",
-       "emailuser-title-target": "{{GENDER:$1|user}}କୁ ଇ-ମେଲ କରନ୍ତୁ",
-       "emailuser-title-notarget": "ବ୍ୟବହାରକାରୀ କୁ ଇ-ମେଲ",
-       "emailpage": "à¬\87-ମà­\87ଲ à¬¬à­\8dà­\9fବହାରà¬\95ାରà­\80",
+       "emailuser-title-target": "{{GENDER:$1|user}}à¬\99à­\8dà¬\95à­\81 à¬\87-ମà­\87ଲ à¬\95ରନà­\8dତà­\81",
+       "emailuser-title-notarget": "ବ୍ୟବହାରକାରୀଙ୍କୁ ଇ-ମେଲ କରନ୍ତୁ",
+       "emailpage": "ବà­\8dà­\9fବହାରà¬\95ାରà­\80à¬\99à­\8dà¬\95à­\81 à¬\87-ମà­\87ଲ à¬\95ରନà­\8dତà­\81",
        "emailpagetext": "ଆପଣ ତଳେ ଥିବା ଫର୍ମ ବ୍ୟବହାର କରି ଏହି {{GENDER:$1|ସଭ୍ୟ}}ଙ୍କୁ ଇମେଲ କରିପାରିବେ । [[Special:Preferences|ଆପଣଙ୍କ ପସନ୍ଦ]]ରେ ଥିବା ଇମେଲ ଠିକଣା \"ପ୍ରେରକ\" ଭାବରେ ଦେଖାଯିବ, ତେଣୁ ଇମେଲ ପାଇଥିବା ସଭ୍ୟ ଆପଣଙ୍କୁ ସିଧା ସଳଖ ଉତ୍ତର ଦେଇପାରିବେ ।",
        "defemailsubject": "{{SITENAME}} \"$1\" ସଭ୍ୟଙ୍କ ଠାରୁ ଇ-ମେଲ କରିବେ",
        "usermaildisabled": "ବ୍ୟବହାରକାରୀଙ୍କ ଈ-ମେଲ ଅଚଳ କରାଗଲା",
index 281f27f..37b8e59 100644 (file)
        "tog-numberheadings": "Сæртæн хæдæвзæргæ номыр æвæрын",
        "tog-showtoolbar": "Æвдисын ивыны панел (домы JavaScript)",
        "tog-editondblclick": "Фæрстæ дыкъæппæй ив (домы JavaScript)",
-       "tog-editsectiononrightclick": "Хайы сæрыл рахис æркъæппæй ивыны фадат баиу кæнын (домы JavaScript)",
-       "tog-watchcreations": "Æз цы фæрстæ аразын æмæ цы файлтæ бавгæнын, уыдон мæ цæстдард уæт.",
-       "tog-watchdefault": "Æз цы фæрстæ æмæ цы файлтæ ивын, уыдон мæ цæстдард уæт",
+       "tog-editsectiononrightclick": "Хайы сæргондыл рахиз æркъæппæй ивыны фадат баиу кæнын",
+       "tog-watchcreations": "Æз цы фæрстæ аразын æмæ цы файлтæ бавгæнын, уыдон мæ цæстдард уæнт.",
+       "tog-watchdefault": "Æз цы фæрстæ æмæ цы файлтæ ивын, уыдон мæ цæстдард уæнт",
        "tog-watchmoves": "Æз цы фæрсты нæмттæ æмæ цы файлтæ ивын, уыдон мæ цæстдард уæт",
        "tog-watchdeletion": "Æз цы фæрстæ æмæ цы файлтæ хафын, уыдон мæ цæстдард уæт",
+       "tog-watchrollback": "Æз цы фæрсты ивдтытæ раздæхын, уыдон мæ цæстдард уæнт",
        "tog-minordefault": "Æппæт ивддзинæдтæ банысан кæн куыд чысылтæ",
        "tog-previewontop": "Разæркасты рудзынг ивыны рудзынджы уæлдæр",
        "tog-previewonfirst": "Æвдисын иу разæркаст фыццаг ивды рæстæджы",
@@ -33,7 +34,7 @@
        "tog-shownumberswatching": "Цал архайæджы фарсмæ сæ цæст дарынц, уый равдис",
        "tog-oldsig": "Ныры къухæрфыст:",
        "tog-fancysig": "Сæвæрын къухæрфыст викитекстæй (æнæ хæдæвзæргæ æрвитæнæй)",
-       "tog-uselivepreview": "Архайын тагъд разбакастæй (домы JavaScript) (эксперименталон)",
+       "tog-uselivepreview": "Архайын тагъд разбакастæй",
        "tog-forceeditsummary": "Фæдзæхсæд иу мæ, кæд ивды афыст афтид уа",
        "tog-watchlisthideown": "Айсын мæ ивдтытæ цæстдардæй",
        "tog-watchlisthidebots": "Мæ цæстдарды номхыгъды роботты куыст бамбæхс",
@@ -46,6 +47,7 @@
        "tog-showhiddencats": "Æмбæхст категоритæ æвдис",
        "tog-norollbackdiff": "Рауадзын иртасæн раздæхты фæстæ",
        "tog-useeditwarning": "Зæгъæт-иу мын системæ, æнæ æвæрд архайдимæ ивыны фарс-иу куы æхкæнон",
+       "tog-prefershttps": "Алыхатт пайда кæн æдас бастдзинадæй аккаунтмæ бахизыны фæстæ.",
        "underline-always": "Алкуыдæр",
        "underline-never": "Никуы",
        "underline-default": "Цъар æви сгарæнмæ гæсгæ",
        "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 декабры",
        "pagecategories": "{{PLURAL:$1|Категори|Категоритæ}}",
        "category_header": "Категори \"{{grammar:genitive|$1}}\" фæрстæ",
        "subcategories": "Дæлкатегоритæ",
        "newwindow": "(кæны ног рудзынджы)",
        "cancel": "Ныууадзын",
        "moredotdotdot": "Фылдæр…",
-       "morenotlisted": "ФÑ\8bлдæÑ\80 Ã¦Ð½Ã¦Ã¦Ð²Ð´Ñ\8bÑ\81Ñ\82...",
+       "morenotlisted": "Ð\90Ñ\86Ñ\8b Ð½Ð¾Ð¼Ñ\85Ñ\8bгÑ\8aд Ã¦Ñ\85Ñ\85æÑ\81Ñ\82 Ð½Ã¦Ñ\83.",
        "mypage": "Фарс",
        "mytalk": "Ныхас",
        "anontalk": "Ацы IP адрисы тæрхон",
        "permalink": "Иугæндзон æрвитæн",
        "print": "Мыхуыр",
        "view": "Кæсын",
+       "view-foreign": "Ацы сайтыл дæр æй фен $1",
        "edit": "Ивын",
+       "edit-local": "Бынæттон афыст ивын",
        "create": "Скæнын",
+       "create-local": "Бынæттон афыст бафтауын",
        "editthispage": "Ивын ацы фарс",
        "create-this-page": "Ацы фарс скæнын",
        "delete": "Схафын",
        "deletethispage": "Ацы фарс схафын",
+       "undeletethispage": "Рацаразын хафт фарс",
        "undelete_short": "Рацаразын {{PLURAL:$1|иу ивд|$1 ивды}}",
        "viewdeleted_short": "Кæсын {{PLURAL:$1|иу хафт ивд|$1 хафт ивдтытæ}}",
        "protect": "Сæхгæнын",
        "otherlanguages": "Æндæр æвзæгтыл",
        "redirectedfrom": "({{grammar:ablative|$1}} æрвыст)",
        "redirectpagesub": "Æрвитæн фарс",
+       "redirectto": "Рарвит ардæм:",
        "lastmodifiedat": "Ацы фарс фæстаг хатт ивд æрцыд: $1, $2.",
        "viewcount": "Ацы фарс домд æрцыд {{PLURAL:$1|иу хатт|$1 хатты}}.",
        "protectedpage": "Æхгæд фарс",
        "jumptonavigation": "навигаци",
        "jumptosearch": "агуырд",
        "view-pool-error": "Хатыр, сервертæ тынг æнæвдæлон сты ацы тæккæ.\nÆгæр бирæ архайæджы фæлварынц ацы фарс фенын.\nДæ хорзæхæй, гыццыл фæлæуу æмæ та нæуæгæй бафæлвар.\n\n$1",
+       "generic-pool-error": "Хатыр, сервертæ тынг æнæвдæлон сты ацы тæккæ.\nÆгæр бирæ архайæджы фæлварынц ацы фарс фенын.\nДæ хорзæхæй, гыццыл фæлæуу æмæ та ногæй бафæлвар.",
        "pool-timeout": "Скусыны афон у",
        "pool-queuefull": "Процессты рад йедзаг у",
        "pool-errorunknown": "Æнæбæрæг рæдыд",
+       "poolcounter-usage-error": "Кусыны рæдыд: $1",
        "aboutsite": "{{grammar:genitive|{{SITENAME}}}} тыххæй",
        "aboutpage": "Project:Афыст",
-       "copyright": "Мидис у гом {{grammar:allative|$1}} гæсгæ.",
+       "copyright": "Мидис у гом {{grammar:allative|$1}} гæсгæ, кæд æндæр исты амынд нæу, уæд.",
        "copyrightpage": "{{ns:project}}:Авторы бартæ",
        "currentevents": "Ног хабæрттæ",
        "currentevents-url": "Project:Ног хабæрттæ",
        "disclaimers": "Бæрн",
        "disclaimerpage": "Project:Бæрн",
        "edithelp": "Ивынæн æххуыс",
+       "helppage-top-gethelp": "Æххуыс",
        "mainpage": "Сæйраг фарс",
        "mainpage-description": "Сæйраг фарс",
        "policy-url": "Project:Фæтк",
        "youhavenewmessages": "Райстай $1 ($2).",
        "youhavenewmessagesfromusers": "{{PLURAL:$3|Æндæр архайæгæй|$3 архайæгæй}} дæм $1 æрцыд ($2).",
        "youhavenewmessagesmanyusers": "Бирæ архайæгæй дæм $1 æрцыдис ($2).",
-       "newmessageslinkplural": "{{PLURAL:$1|ног фыстæг|ног фыстæджытæ}}",
-       "newmessagesdifflinkplural": "фæстаг {{PLURAL:$1|ивд|ивдтытæ}}",
+       "newmessageslinkplural": "{{PLURAL:$1|ног фыстæг|999=ног фыстæджытæ}}",
+       "newmessagesdifflinkplural": "фæстаг {{PLURAL:$1|ивд|999=ивдтытæ}}",
        "youhavenewmessagesmulti": "Дæумæ æрцыдис ног фыстæджытæ {{grammar:genitive|$1}}",
        "editsection": "ивын",
        "editold": "ивын",
        "hidetoc": "бамбæхсын",
        "collapsible-collapse": "Стухын",
        "collapsible-expand": "Райтынг кæнын",
+       "confirmable-confirm": "Фидарæй сфæнд кодтай?",
+       "confirmable-yes": "Гъо",
+       "confirmable-no": "Нæ",
        "thisisdeleted": "$1 фенын хъæуы, æви рацаразын ?",
        "viewdeleted": "$1 фенын дæ фæнды?",
        "restorelink": "{{PLURAL:$1|иу хафт ивд|$1 хафт ивды}}",
        "nospecialpagetext": "<strong>Нæй ахæм сæрмагонд фарс.</strong>\n\nКæс [[Special:SpecialPages|æппæт сæрмагонд фæрсты номхыгъд]].",
        "error": "Рæдыд",
        "databaseerror": "Рарддоны рæдыд",
+       "databaseerror-text": "Рарддонмæ бафарсты рæдыд æрцыдис.\nЧи зоны æмæ софты проблемæ у.",
+       "databaseerror-textcl": "Рардты базæмæ бафарсты рæдыд æрцыдис.",
+       "databaseerror-query": "Бафарст: $1",
+       "databaseerror-function": "Функци: $1",
+       "databaseerror-error": "Рæдыд: $1",
        "laggedslavemode": "'''Сындæг:''' Фарсы гæнæн ис нæй фæстаг нæуæггæндтæ.",
        "readonly": "Рарддон æхгæд у",
        "enterlockreason": "Ныффысс æхгæныны бындур æмæ йæ æмгъуыд",
        "readonlytext": "Рарддон ныртæккæ у æхгæд, цæмæй нæуæг иуæгтæ æмæ модификацитæ хаст æрцæуой æмæ уый фæстæ байгом уыдзæн.\n\nЦы радгæс æй сæхгæдта, уый ныууагъта ахæм амонæн: $1",
        "missing-article": "Рарддон не ссардта уыцы фарсы текст, кæцы агуырдта. Йæ ном у \"$1\" $2.\n\nАцы рæдыд фылдæр рацæуы зæронд иртасæн кæнæ хафт файлы историмæ æрвитæны фæдыл ацæугæйæ.\n\nКæд уый аххос нæу, уæд гæнæн ис цыдæр раст нæу софты.\nДæ хорзæхæй, сардау ацы рæдыд [[Special:ListUsers/sysop|радгæсыл]] æмæ иу ын ацы фарсы URL дæр зæгъ.",
        "missingarticle-rev": "(фæлтæр № $1)",
-       "missingarticle-diff": "(хъауджы: $1, $2)",
+       "missingarticle-diff": "(хицæндзинад: $1, $2)",
        "readonly_lag": "Рарддон йæхæдæг сæхгæд ис, цалынмæ дыггагон севертæ нæ ссинхронизаци кæной фыццагонтимæ",
        "internalerror": "Мидæггаг рæдыд",
        "internalerror_info": "Мидæггаг рæдыд: $1",
+       "internalerror-fatal-exception": "Нæиуварсгæнгæ уæлвæтк, хуыз «$1»",
        "filecopyerror": "Файл «$1» файл {{grammar:allative|«$2»}} къопи кæнын нæ рауад.",
        "filerenameerror": "Нæ рауадис фæивын \"$1\" файлы ном \"$2\"-мæ.",
        "filedeleteerror": "Нæ уайы файл «$1» схафын.",
        "directorycreateerror": "Директори «$1» саразын нæ рауадис.",
+       "directoryreadonlyerror": "Каталог «$1» æрмæст фенынмæ у",
+       "directorynotreadableerror": "Каталог «$1» равдисæн нæй.",
        "filenotfound": "Файл «$1» ссарын нæ рауадис.",
        "unexpected": "Æнæмбæлон нысаниуæг: «$1»=«$2».",
        "formerror": "Рæдыд: формæ арвитын нæ рауадис.",
        "delete-hook-aborted": "Хук æй хафын нæ бауагъта.\nУæлæмхасæн æмбарынгæнæн нæ радта.",
        "badtitle": "Æвзæр ном",
        "badtitletext": "Æрдомд фарсы ном уыд рæдыдимæ кæнæ афтид кæнæ та йæ æхсæн-æвзаг æви йæ интервики æрвитæн раст нæ уыд.\nГæнæн ис Номы ис ахæм дамгъæтæ, кæдон уым æвæрын нæй гæнæн.",
+       "title-invalid-interwiki": "Сæргонды мидæг ис интервики æрвитæн.",
+       "title-invalid-talk-namespace": "Бафарст фарсы сæргонд æрвиты тæрхоны фарсмæ, уæвæн кæмæн нæй, ахæммæ.",
+       "title-invalid-characters": "Бафарст фарсы сæргонды мидæг ис æнæруадзгæ дамгъæтæ: «$1».",
+       "title-invalid-too-long": "Бафарст фарсы сæргонд æгар даргъ у. Йæ даргъ $1 байты фылдæр (utf-8) ма уæд.",
+       "title-invalid-leading-colon": "Бафарст фарсы сæргонды ис æнæруадзгæ дыстъæлф йæ райдианы.",
        "perfcached": "Бындæр цы рардтæ ис, уыдон сты кешгонд æмæ гæнæн ис базæронд сты. Кешы гæнæн ис уа æппæты фылдæр {{PLURAL:$1|иу фæстиуæг|$1 фæстиуæджы}}.",
        "perfcachedts": "Бындæр цы рардтæ ис, уыдон сты кешгонд æмæ фæстаг хатт нæуæггонд æрцыдысты $1. Кешы гæнæн ис уа æппæты фылдæр {{PLURAL:$4|иу фæстиуæг|$4 фæстиуæджы}}.",
        "querypage-no-updates": "Ацы фарсы нæуæгкæнын ныртæккæ хицæн у.\nЦы рардтæ дзы ис, уыдон нæуæг нæ кæндзысты.",
        "viewsourcetext": "Ацы фарсы код фенæн æмæ халдих кæнæн ис:",
        "viewyourtext": "Дæ бон у фенын æмæ скопи кæнын ацы фарсмæ '''цы ивдтытæ сарæзтай''', уыдон бындур текст :",
        "protectedinterface": "Ацы фарсы ис ацы викийы софты интерфейсæн текст æмæ у æхгæд, цæмæй йæ фехалæн ма уа.\nАлы викийы тæлмæцтæ ивынæн, дæ хорзæхæй, архай [//translatewiki.net/ translatewiki.net-æй], кæцы у MediaWiki-йы локализацигæнæн проект.",
-       "editinginterface": "'''Сындæг:''' Ды ивыс ахæм фарс, кæм ис софты интерфейсы текст.\nАцы фарсы фæивд фæзындзæн ацы викийы алы архайæджы интерфейсыл дæр.\nАлы викийы тæлмæцтæ ивынæн, дæ хорзæхæй, архай [//translatewiki.net/ translatewiki.net-æй], кæцы у MediaWiki-йы локализацигæнæн проект.",
+       "editinginterface": "'''Сындæг:''' Ды ивыс ахæм фарс, кæм ис софты интерфейсы текст.\nАцы фарсы фæивд фæзындзæн ацы викийы алы архайæджы интерфейсыл дæр.",
+       "translateinterface": "Алы викийы тæлмæцтæ ивынæн, дæ хорзæхæй, архай [//translatewiki.net/ translatewiki.net-æй], кæцы у MediaWiki-йы локализацигæнæн проект.",
        "cascadeprotected": "Ацы фарс ивынæй æхгæд у уымæн æмæ у æфтыд бындæр цы \"каскадон\" хъахъхъонд {{PLURAL:$1|фарс ис, уырдæм|фæрстæ сты, уыдонмæ}}:\n$2",
        "namespaceprotected": "Дæуæн нæй бар ивын фæрстæ '''$1''' номдоны.",
        "customcssprotected": "Дæуæн нæй бар ивын ацы CSS фарс, уымæн æмæ уым ис æндæр архайæджы персоналон æвæрдтытæ.",
        "customjsprotected": "Дæуæн нæй бар ивын ацы JavaScript фарс, уымæн æмæ уым ис æндæр архайæджы персоналон æвæрдтытæ.",
+       "mycustomcssprotected": "Ацы CSS фарс ивыны бар дæм нæй.",
+       "mycustomjsprotected": "Ацы JavaScript фарс ивыны бар дæм нæй.",
+       "myprivateinfoprotected": "Дæ приватон информаци ивыны бар дæм нæй.",
+       "mypreferencesprotected": "Дæ уагæвæрдтæ ивыны бар дæм нæй.",
        "ns-specialprotected": "Сæрмагонд фæрстæн ивæн нæй.",
        "titleprotected": "Ацы ном уыд æхгæд саразынæй. Сæхгæдта йæ [[User:$1|$1]].\nÆхгæныны бындур уыд \"''$2''\".",
        "filereadonlyerror": "Нæ уайы фæивын файл \"$1\" уый тыххæй æмæ репозиторий \"$2\" кусы æрмæст фæрсыны уавæры.\n\nРадгæс, кæцы сæвæрдта ацы уавæр, ныууагъта ахæм амонæн: \"''$3''\".",
        "invalidtitle-knownnamespace": "\"$2\" номдон æмæ \"$3\" тексты рæдыд сæр",
        "invalidtitle-unknownnamespace": "Æнæзонгæ номдоны нымæц, \"$1\" æмæ \"$2\" тексты рæдыд сæр",
        "exception-nologin": "Системæмæ æнæхызт",
-       "exception-nologin-text": "Ацы фарс кæнæ ми домынц дæуæй, цæмæй системæмæ хызт уай.",
+       "exception-nologin-text": "Ацы фарс кæнæ ми домынц дæуæй, цæмæй системæмæ бахизай.",
+       "exception-nologin-text-manual": "Ацы фарс кæнæ архайдмæ бацæуынæн хъæуы $1.",
        "virus-badscanner": "Æвзæр æвæрд: Нæзонгæ вирусты скане: ''$1''",
        "virus-scanfailed": "Скан нæ рауадис (код $1)",
        "virus-unknownscanner": "æнæзонгæ антивирус:",
-       "logouttext": "'''Ð\9dÑ\8bÑ\80 Ð´Ã¦ Ã¦Ð´Ð´Ã¦Ð¼Ã¦ Ñ\85Ñ\8bзÑ\82.'''\n\nÐ\94æ Ð±Ð¾Ð½ Ñ\83 Ð´Ð°Ñ\80ддæÑ\80 Ð°Ñ\80Ñ\85айай {{grammar:genitive|{{SITENAME}}}} Ã¦Ð½Ã¦Ð½Ð¾Ð¼Ã¦Ð¹, Ã¦Ð²Ð¸ Ñ\82а <span class='plainlinks'>[$1 Ñ\84æÑ\81Ñ\82æмæ Ð±Ð°Ñ\85изÑ\8bн]</span> Ñ\80аздæÑ\80Ñ\8b Ð½Ð¾Ð¼Ã¦Ð¹ ÐºÃ¦Ð½Ã¦ Ñ\82а Ã¦Ð½Ð´Ã¦Ñ\80 Ð½Ð¾Ð¼Ã¦Ð¹.\nÐ\94æ Ñ\81æÑ\80Ñ\8b Ð´Ð°Ñ\80 Ã¦Ð¼Ã¦ Ð¸Ñ\83æй Ð¸Ñ\83 Ñ\84æÑ\80Ñ\81Ñ\82æ Ð³Ã¦Ð½Ã¦Ð½ Ð¸Ñ\81 æвдыст цæуой афтæ, цымæ нырмæ дæр нæ рахызтæ. Уый тыххæй дæ браузеры кеш сафтид кæн.",
+       "logouttext": "'''Ð\9dÑ\8bÑ\80 Ð´Ã¦ Ã¦Ð´Ð´Ã¦Ð¼Ã¦ Ñ\85Ñ\8bзÑ\82.'''\n\nÐ\98Ñ\83æй-иÑ\83 Ñ\84æÑ\80Ñ\81Ñ\82æ Ð³Ã¦Ð½Ã¦Ð½ Ð¸Ñ\81 Ã¦Ð¼Ã¦ æвдыст цæуой афтæ, цымæ нырмæ дæр нæ рахызтæ. Уый тыххæй дæ браузеры кеш сафтид кæн.",
        "welcomeuser": "Æгас цу, $1!",
        "welcomecreation-msg": "Дæ аккаунт арæзт æрцыдис.\nМа дæ ферох уæт æркæсын дæ [[Special:Preferences|{{grammar:genitive|{{SITENAME}}}} уагæвæрдтæм]].",
        "yourname": "Фæсномыг:",
        "userlogin-yourname": "Фæсномыг",
        "userlogin-yourname-ph": "Бафысс дæ фæсномыг",
+       "createacct-another-username-ph": "Фæсномыг бацамон",
        "yourpassword": "Пароль:",
        "userlogin-yourpassword": "Пароль",
        "userlogin-yourpassword-ph": "Бафысс дæ пароль",
        "gotaccountlink": "Бахизын",
        "userlogin-resetlink": "Ферох дæ сты дæ бахизæнтæ?",
        "userlogin-resetpassword-link": "Ферох и дæ пароль?",
+       "userlogin-helplink2": "Бахизынæн æххуыс",
+       "userlogin-loggedin": "Ды бахызтæ куыд $1.\nДæлæ цы формæ уыныс, уый æххуысæй дæ бон у æндæр фæсномыгæй бахизын.",
+       "userlogin-createanother": "Æндæр аккаунт сараз",
        "createacct-emailrequired": "Электрон посты адрис",
        "createacct-emailoptional": "Электрон посты адрис (фæндон)",
        "createacct-email-ph": "Бафысс дæ электрон посты адрис",
+       "createacct-another-email-ph": "Бафысс дæ эл. посты адрис",
        "createaccountmail": "Рæстæгмæ пароль халæй ист æрцæуæд æмæ амынд электрон посты адрисмæ æрвыст æрцæуæд",
        "createacct-realname": "Æцæг ном (фæндон)",
        "createaccountreason": "Бындур:",
        "createacct-captcha": "Æдасдзинад бæлвырдгæнæн",
        "createacct-imgcaptcha-ph": "Уæлдæр цы текст уыныс, уый бафысс",
        "createacct-submit": "Сараз дæ аккаунт",
+       "createacct-another-submit": "Æндæр аккаунт сараз",
        "createacct-benefit-heading": "{{SITENAME}} сарæзтой дæ хуызæн адæм.",
        "createacct-benefit-body1": "{{PLURAL:$1|ивд|ивды}}",
        "createacct-benefit-body2": "{{PLURAL:$1|фарс|фарсы}}",
        "wrongpassword": "Цы пароль ныффыстай, уый раст нæу.\nДæ хорзæхæй, ногæй бафæлвар.",
        "wrongpasswordempty": "Пароль афтид у.\nБафæлвар ногæй.",
        "passwordtooshort": "Паролтæ хъуамæ уой уæддæр {{PLURAL:$1|1 дамгъæйы|$1 дамгъæйы}} дæргъæн.",
+       "passwordtoolong": "Паролтæ хъуамæ ма уой {{PLURAL:$1|1 дамгъæйы|$1 дамгъæйы}} дæргъæн.",
        "password-name-match": "Дæ парол ма хъуамæ уа дæ фæсномыгы хуызæн.",
        "password-login-forbidden": "Ацы фæсномыг æмæ паролæй нæй гæнæн архайын.",
        "mailmypassword": "Баив пароль",
        "noemailcreate": "Дæуæн хъæуы раст e-mail адрис",
        "passwordsent": "Ног парол æрвыст æрцыд e-mail адрисмæ, кæцы уыд регистацигонд {{grammar:dative|$1}}.",
        "blocked-mailpassword": "Дæ IP адрис уыд хъодыгонд ивынæй æмæ цæмæй мачи разнаггад кæна, уы тыххæй дзы нæй гæнæн парол раивын дæр.",
-       "eauthentsent": "Бæлвырдгæнæн фыстæг æрвыст æрцыд амынд e-mail адрисмæ.\nЦæмæй дæм æндæр фыстæджытæ дæр цæуой, уый тыххæй дын хъæудзæн сæххæст кæнын фыстæджы фыст амындтытæ. Уый фæстæ сбæлвыд уыдзæн аккаунт æцæгдæр дæу кæй у, уый.",
+       "eauthentsent": "Бæлвырдгæнæн фыстæг æрвыст æрцыд амынд эл. посты адрисмæ.\nЦæмæй дæм æндæр фыстæджытæ дæр цæуой, уый тыххæй дын хъæудзæн сæххæст кæнын фыстæджы фыст амындтытæ. Уый фæстæ сбæлвырд уыдзæн адрис æцæгдæр дæу кæй у, уый.",
        "throttled-mailpassword": "Ног пароль сæвæрæн фыстæг нырид æрвыст æрцыд фæстаг {{PLURAL:$1|сахаты|$1 сахаты}} мидæг.\nЦæмæй мачи разнагкад кæна, уый тыххæй æрмæст иу хатт ис гæнæн райсын ног пароль сæвæрæн фыстæг {{PLURAL:$1|сахаты|$1 сахаты}} мидæг.",
        "mailerror": "Фыстæг арвитыны рæдыд: $1",
        "acct_creation_throttle_hit": "Ацы викимæ дæ IP адрисæй чи æрбацыдис, уыдон фæстаг боны мидæг бакодтой {{PLURAL:$1|1 аккаунт|$1 аккаунты}}. Уымæй фылдæр нæй гæнæн ахæм рæстæгмæ.\nУый тыххæй, ацы тæккæ, ацы IP адрисæй уазджытæн сæ бон нæу бакæнын аккаунттæ.",
-       "emailauthenticated": "Дæ e-mail уыд бæлвырдгонд $2 $3 сахатыл.",
-       "emailnotauthenticated": "Дæ e-mail адрис нырмæ нæу бæлвырдгонд.\nИу e-mail дæр дæм нæ уыдзæн æрвыст ацы функцитæй.",
+       "emailauthenticated": "Дæ эл. посты адрис уыд бæлвырдгонд $2 $3 сахатыл.",
+       "emailnotauthenticated": "Дæ эл. посты адрис нырмæ нæу бæлвырдгонд.\nИу фыстæг дæр дæм нæ уыдзæн æрвыст ацы функцитæй.",
        "noemailprefs": "Бафысс e-mail адрис дæ уагæвæрдты, цæмæй ацы функцитæ кусой.",
        "emailconfirmlink": "Дæ электронон посты адрис сфидар кæн",
        "invalidemailaddress": "E-mail нæй гæнæн райсын, уымæн æмæ йæ формат раст нæу.\nБафысс раст форматы адрис кæнæ та йæ сафтид кæн.",
        "cannotchangeemail": "Аккаунты e-mail нæй гæнæн ивын ацы викийы.",
        "emaildisabled": "Ацы сайтæн йæ бон нæу æрвитын e-mail.",
        "accountcreated": "Аккаунт конд æрцыд",
-       "accountcreatedtext": "$1 архайæджы аккаунт конд æрцыд.",
+       "accountcreatedtext": "$1 архайæджы аккаунт ([[{{ns:User talk}}:$1|тæрхоны фарс]]) конд æрцыдис.",
        "createaccount-title": "{{grammar:genitive|{{SITENAME}}}} аккаунт бакæнын",
        "createaccount-text": "{{grammar:genitive|{{SITENAME}}}} ($4) чидæр бакодта аккаунт дæ e-mail адрисæн æмæ йæ схуыдта \"$2\", \"$3\" паролимæ.\nНыр ды хъуамæ бахизай системæмæ æмæ фæивай дæ парол.\n\nДæ бон у мацæмæ дарай ацы фыстæг, кæд уыцы аккаунт рæдыдæй сарæзтис.",
-       "login-throttled": "Фæстаг рæстæджы ды бахизын æгæр бирæ фæлвардтай.\nДæ хорзæхæй, фæлæуу-иу иннæ фæлварæны размæ.",
+       "login-throttled": "Фæстаг рæстæджы ды бахизын æгæр бирæ фæлвардтай.\nДæ хорзæхæй, фæлæуу-иу $1 иннæ фæлварæны размæ.",
        "login-abort-generic": "Нæ дын бантыст бахизын. Урæд.",
        "loginlanguagelabel": "Æвзаг: $1",
        "suspicious-userlogout": "Дæ рахизыны домæн нæ сæххæст ис, уымæн æмæ хæлд браузерæй кæнæ кешгæнæг проксийæ æрвысты хуызæн у.",
+       "createacct-another-realname-tip": "Дæ бон у дæ æцæг ном не схъæр кæнын.\nДæ ном куы бацамонай, уымæй пайда уыдзæнис авторты номхыгъдтæ аразынæн.",
+       "pt-login": "Бахизын",
+       "pt-login-button": "Бахизын",
+       "pt-createaccount": "Аккаунт саразын",
        "pt-userlogout": "Рахизын",
        "php-mail-error-unknown": "Нæбæрæг рæдыд PHP-йы mail() функцийы.",
        "user-mail-no-addy": "Е-mail æрвыста æнæ e-mail адрисæй.",
        "user-mail-no-body": "Фæлварста афтид кæнæ æнæбары мидисимæ фыстæг арвитын.",
        "changepassword": "Пароль ивæн",
-       "resetpass_announce": "Ð\94Ñ\8b Ð±Ð°Ñ\85Ñ\8bзÑ\82æ e-mail-æй Ã¦Ñ\80вÑ\8bÑ\81Ñ\82 Ñ\80æÑ\81Ñ\82æгмæ Ð¿Ð°Ñ\80олæй.\nЦæмæй ÐºÃ¦Ñ\80онмæ Ð±Ð°Ñ\85изай Ñ\81иÑ\81Ñ\82емæмæ, Ñ\83Ñ\8bй Ñ\82Ñ\8bÑ\85Ñ\85æй Ð°Ð¼ Ñ\85Ñ\8aÑ\83амæ Ñ\81æвæÑ\80ай Ð½Ð¾Ð³ Ð¿Ð°Ñ\80олÑ\8c.",
+       "resetpass_announce": "Цæмæй кæронмæ бахизай системæмæ, уый тыххæй ам хъуамæ сæвæрай ног пароль.",
        "resetpass_text": "<!-- Бахæсс дæ текст ам -->",
        "resetpass_header": "Аккаунты пароль ивын",
        "oldpassword": "Зæронд пароль:",
        "newpassword": "Нæуæг пароль:",
        "retypenew": "Ног пароль ногæй бафысс:",
        "resetpass_submit": "Пароль сæвæрын æмæ системæмæ бахизын",
-       "changepassword-success": "Дæ пароль ивд æрцыд!\nНыр ды хизыс системæмæ...",
+       "changepassword-success": "Дæ пароль ивд æрцыд!",
        "resetpass_forbidden": "Паролæн баивæн нæй",
        "resetpass-no-info": "Ды хъуамæ системæмæ хызт уай, цæмæй ацы фарсмæ комкоммæ бавналай.",
        "resetpass-submit-loggedin": "Пароль фæивын",
        "resetpass-submit-cancel": "Ныууадзын",
        "resetpass-wrong-oldpass": "Рæстæгмæ кæнæ нырыккон пароль нæ бæззы.\nГæнæн ис ды нырид фæивтай дæ пароль кæнæ та ног рæстæгмæ пароль æрдомдтай.",
+       "resetpass-recycled": "Дæ пароль хъуамæ баивай æндæрыл, ды ныры пароль нæ бæззы.",
        "resetpass-temp-password": "Рæстæгмæ пароль:",
        "resetpass-abort-generic": "Уæрæхгæнæн паролы ивд æрлæууын кодта.",
+       "resetpass-expired": "Дæ паролы æмгъуыд фæци. Ног пароль сæвæр, дæ хорзæхæй.",
        "passwordreset": "Пароль раппарæн",
+       "passwordreset-text-one": "Ацы формæ байдзаг кæн цæмæй дæм барвитæм рæстæгмæ пароль дæ эл. посты адрисмæ.",
        "passwordreset-legend": "Пароль раппарын",
        "passwordreset-disabled": "Парол фæлварын ацы викийы хицæн у.",
        "passwordreset-emaildisabled": "Электрон пост ацы викийы хицæн у.",
        "changeemail-none": "(нæй)",
        "changeemail-password": "Дæ {{grammar:genitive|{{SITENAME}}}} пароль:",
        "changeemail-submit": "E-mail фæивын",
+       "changeemail-throttled": "Æгæр бирæ фæлварыс бахизынмæ.\nДæ хорзæхæй, $1 фæлæуу ног фæлвæрды онг.",
+       "resettokens": "Токентæ æппарын",
+       "resettokens-no-tokens": "Æппаринаг токентæ нæй.",
+       "resettokens-legend": "Токентæ æппарын",
+       "resettokens-tokens": "Токентæ:",
+       "resettokens-token-label": "$1 (ныры мидис: $2)",
+       "resettokens-done": "Токентæ æппæрст æрцыдысты.",
+       "resettokens-resetbutton": "Амынд токентæ æппар",
        "bold_sample": "Бæзджын текст",
        "bold_tip": "Бæзджын текст",
        "italic_sample": "Курсив",
        "loginreqlink": "бахизын",
        "loginreqpagetext": "Дæуæн хъæуы $1 цæмæй æндæр фæрстæ кæсай.",
        "accmailtitle": "Пароль æрвыст æрцыд.",
-       "accmailtext": "[[User talk:$1|{{grammar:dative|$1}}]] халæй ист пароль æрвыст æрцыд $2-мæ.\n\nАцы ног аккаунты пароль гæнæн ис фæивын ''[[Special:ChangePassword|пароль ивæн варсыл]]'' бахизыны фæстæ.",
+       "accmailtext": "[[User talk:$1|{{grammar:dative|$1}}]] халæй ист пароль æрвыст æрцыд ацы адрисмæ: $2. Ацы ног аккаунты пароль гæнæн ис фæивын <em>[[Special:ChangePassword|пароль ивæн фарсыл]]</em> бахизыны фæстæ.",
        "newarticle": "(Ног)",
        "newarticletext": "Ды ныххæцыдтæ ахæм æрвитæныл, кæй фарс нырмæ нæй.\nФарс бакæнынæн байдай фыссын дæлдæр цы къæртт ис, уым (кæс [$1 æххуысы фарс] фылдæр базонынæн).",
        "anontalkpagetext": "----''Ай у æнæном архайæджы ныхасы фарс. Ацы архайæг нырмæ нæ срегистраци кодта, кæнæ та йæ аккаунтæй нæ архайы.\nУый тыххæй мах пайда кæнæм йæ IP адрисæй, цæмæй-иу æй бæрæг кæнæм.\nАхæм IP адристæй гæнæн ис архайой цалдæр архайæджы.\nКæд ды æнæном архайæг дæ æмæ дæм цыдæр зæгъæлы фыстæджытæ цæуы, уæд, дæ хорзæхæй, [[Special:UserLogin/signup|бакæн аккаунт]] кæнæ [[Special:UserLogin|бахиз системæмæ]], цæмæй дæ мауал хæццæ кæной æндæр æнæном архайджытимæ.''",
        "template-protected": "(æхгæд)",
        "template-semiprotected": "(æрдæг-æхгæд)",
        "hiddencategories": "Ацы фарс у {{PLURAL:$1|1 æмбæхст категорийы|$1 æмбæхст категориты}} уæнг:",
-       "permissionserrors": "Бавналыны рæдыдтытæ",
+       "nocreate-loggedin": "Ног фæрстæ скæныны бар дæм нæй.",
+       "permissionserrors": "Барлæвæрды рæдыд",
        "permissionserrorstext-withaction": "Нæй дын бар $2 {{PLURAL:$1|ай|адон}} тыххæй:",
        "recreate-moveddeleted-warn": "'''Сындæг: Ды нæуæгæй кæныс фарс, кæцы раздæр уыдис хафт.'''\n\nДзæбæх ахъуыды кæн, æцæг нæуæгæй кæнинаг у, æви нæ.\nХафын æмæ номивыны логтæ бындæр сты фыст.",
        "moveddeleted-notice": "Ацы фарс хафт уыдис.\nУый тыххæй бындæр ис хафын æмæ номивыны логтæй фыст.",
+       "log-fulllog": "Лог æнæхъæнæй",
+       "edit-gone-missing": "Ацы фарс сног кæнæн нæй. Куыд рабæрæг, фарс хафт æрцыдис.",
        "edit-conflict": "Ивдтыты конфликт.",
+       "postedit-confirmation-created": "Фарс арæзт æрцыдис.",
+       "postedit-confirmation-restored": "Фарс рацарæзт æрцыдис.",
+       "postedit-confirmation-saved": "Дæ ивд хаст æрцыдис.",
        "edit-already-exists": "Ног фарс скæнæн нæй. Ахæм фарс нырид ис.",
+       "defaultmessagetext": "Разæвæрд текст",
        "content-model-wikitext": "викитекст",
        "content-model-text": "хуымæтæг текст",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "content-json-empty-object": "Афтид объект",
+       "content-json-empty-array": "Афтид массив",
        "post-expand-template-inclusion-warning": "'''Сындæг: ''' Хуызæджы бавæрд бæрц æгæр стыр у.\nКæцыдæр хуызæгтæ нæ бавæд уыдзысты.",
        "post-expand-template-inclusion-category": "Фæрстæ, кæм хуызæджы бавæрд бæрц æгæр бирæ у",
        "post-expand-template-argument-warning": "'''Сындæг:''' Ацы фарсы ис уæддæр иу хуызæджы аргумент, кæй райтынг у æгæр стыр.\nУыцы аргументтæ уагъд æрцыдысты.",
        "post-expand-template-argument-category": "Фæрстæ, кæдоны ис хуызæджы уагъд аргумент",
+       "parser-template-loop-warning": "Хуызæгты цасм ссардæуыд: [[$1]]",
+       "cantcreateaccounttitle": "Аккаунт саразæн нæй",
        "viewpagelogs": "Ацы фарсæн йæ логтæ равдисын",
        "nohistory": "Ацы фарсæн ивдтыты истори нæй.",
        "currentrev": "Фæстаг фæлтæр",
        "rev-delundel": "равдисын/айсын",
        "rev-showdeleted": "равдисын",
        "revisiondelete": "Фæлтæртæ схафын/рацаразын",
+       "revdelete-no-file": "Амынд файл нæй.",
        "revdelete-show-file-submit": "О",
+       "revdelete-hide-text": "Ивды текст",
+       "revdelete-hide-image": "Файлы мидис ма ’вдис",
+       "revdelete-hide-comment": "Ивды афыст",
+       "revdelete-hide-user": "Архайæджы фæсномыг/IP-адрис",
        "revdelete-radio-same": "(ма баив)",
-       "revdelete-radio-set": "О",
-       "revdelete-radio-unset": "Нæ",
+       "revdelete-radio-set": "Æмбæхст",
+       "revdelete-radio-unset": "Зынгæ",
+       "revdelete-log": "Аххос:",
        "revdel-restore": "ивын зынæн",
        "pagehist": "Фарсы истори",
+       "deletedhist": "Хафт истори",
        "revdelete-reason-dropdown": "*Хафыны арæхдæр бындуртæ\n** Сфæлдисæгы барты æфхæрд\n** Кæйдæр тыххæй æнæмбæлгæ информаци кæнæ хъуыды\n** Æнæмбæлгæ фæсномыг\n** Гæнæн ис цъыфкалд у",
+       "revdelete-otherreason": "Æндæр/уæлæмхасæн аххос:",
        "revdelete-reasonotherlist": "Æндæр аххос",
+       "revdelete-edit-reasonlist": "Хафыны аххостæ ивын",
        "revdelete-offender": "Фæлтæры автор:",
+       "suppressionlog": "Æмбахсыны лог",
+       "mergehistory": "Фæрсты историтæ баиу кæнын",
+       "mergehistory-box": "Дыууæ фарсы ивдтытæ баиу кæнын:",
+       "mergehistory-from": "Ратæдзæны фарс:",
+       "mergehistory-into": "Нысаны фарс:",
+       "mergehistory-list": "Иугæнинаг ивдтыты истори",
+       "mergehistory-go": "Иугæнинаг ивдтытæ равдис",
+       "mergehistory-submit": "Баиу кæнын ивдтытæ",
+       "mergehistory-empty": "Иугæнинаг ивдтытæ нæй.",
+       "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": "Райдайæн æмæ нысаны фæрстæ иу ма уой.",
        "mergehistory-reason": "Аххос:",
+       "mergelog": "Иугæндты лог",
        "revertmerge": "Ахицæн кæнын",
        "history-title": "\"$1\", йæ фæлтæрты истори",
+       "difference-multipage": "(Дыууæ фарсы ’хсæн хицæндзинад)",
        "lineno": "Рæнхъ $1:",
        "compareselectedversions": "Абарын æвзæрст фæлтæртæ",
        "editundo": "раивын",
+       "diff-empty": "(хицæндзинæдтæ нæй)",
        "searchresults": "Агуырды фæстиуджытæ",
        "searchresults-title": "Агуырды фæстиуæг: «$1»",
        "titlematches": "Уацы ном æмбæлы",
        "textmatches": "Уацты æмцаутæ",
        "prevn": "рæздæры {{PLURAL:$1|$1}}",
        "nextn": "иннæ {{PLURAL:$1|$1}}",
+       "prev-page": "раздæры фарс",
+       "next-page": "иннæ фарс",
        "prevn-title": "Раздæр $1 {{PLURAL:$1|фæстиуæг|фæстиуæджы}}",
        "nextn-title": "Иннæ $1 {{PLURAL:$1|фæстиуæг|фæстиуæджы}}",
        "shown-title": "Æвдисын $1 {{PLURAL:$1|фæстиуæг|фæстиуæджы}} иу фарсыл",
        "search-result-category-size": "{{PLURAL:$1|1 уæнг|$1 уæнгы}} ({{PLURAL:$2|1 дæлкатегори|$2 дæлкатегорийы}}, {{PLURAL:$3|1 файл|$3 файлы}})",
        "search-redirect": "({{grammar:ablative|$1}} æрвыст)",
        "search-section": "(хай $1)",
+       "search-category": "(категори $1)",
        "search-suggest": "Кæд мыййаг агурыс: $1",
        "search-interwiki-caption": "Æрвадæл проекттæ",
        "search-interwiki-default": "{{grammar:genitive|$1}} фæстиуджытæ:",
        "searchall": "иууылдæр",
        "search-nonefound": "Ницы разындис домæнæн",
        "powersearch-legend": "Сæрмагонд агуырд",
+       "powersearch-togglelabel": "Фæнысан кæнын:",
        "powersearch-toggleall": "Иууылдæр",
+       "powersearch-togglenone": "Нæй",
+       "search-external": "Æддаг агуырд",
        "preferences": "Уагæвæрдтæ",
        "mypreferences": "Уагæвæрдтæ",
        "prefs-edits": "Ивдтыты нымæц:",
+       "prefsnologintext2": "Дæ уагæвæрдтæ ивынæн хъуамæ бахизай системæмæ.",
        "prefs-skin": "Цъар",
        "skin-preview": "Разæркаст",
        "prefs-labs": "Лабораторон уагæвæрдтæ",
+       "prefs-user-pages": "Архайæджы фæрстæ",
        "prefs-personal": "Архайæджы профил",
        "prefs-rc": "Фæстаг ивдтытæ",
        "prefs-watchlist": "Цæстдард",
+       "prefs-editwatchlist": "Цæстдард номхыгъды ивæн",
+       "prefs-editwatchlist-label": "Ивыс дæ цæстдард фæрсты номхыгъд:",
        "prefs-watchlist-days": "Бонты бæрц æвдисынæн:",
        "prefs-misc": "Æндæртæ",
+       "prefs-resetpass": "Пароль фæивын",
+       "prefs-changeemail": "Эл. посты адрис фæивын",
+       "prefs-setemail": "Бафысс дæ эл. посты адрис",
+       "prefs-email": "Эл. посты уагæвæрдтæ",
        "prefs-rendering": "Фæлгонц",
        "saveprefs": "Бавæрын",
        "prefs-editing": "Ивын",
        "rows": "Рæнхъытæ:",
+       "columns": "Рæгътæ:",
        "searchresultshead": "Агуырд",
        "stub-threshold-disabled": "Хицæн",
        "timezonelegend": "Сахаты таг:",
        "timezoneregion-pacific": "Сабыр Фурд",
        "prefs-searchoptions": "Агурын",
        "prefs-namespaces": "Номдæттæ",
+       "default": "разæвæрд",
        "prefs-files": "Файлтæ",
        "prefs-custom-css": "Хиæвæрд CSS",
        "prefs-custom-js": "Хиæвæрд JavaScript",
+       "prefs-emailconfirm-label": "Эл. посты адрис фидар кæнын:",
        "youremail": "E-mail:",
        "username": "{{GENDER:$1|Фæсномыг}}:",
+       "prefs-registration": "Регистрацийы рæстæг:",
        "yourrealname": "Æцæг ном:",
        "yourlanguage": "Æвзаг:",
        "yourvariant": "Мидисы æвзаджы вариант:",
        "yournick": "Ног къухæрфыст:",
        "badsiglength": "Æгæр даргъ къухæрфыст, хъуамæ {{PLURAL:$1|дамгъæйæ|дамгъæйæ}} къаддæр уа.",
-       "yourgender": "Æрд:",
-       "gender-male": "нæлгоймаг",
-       "gender-female": "сылгоймаг",
+       "yourgender": "Цавæр афыст дæуыл хуыздæр сбæззид?",
+       "gender-unknown": "Нæ мæ фæнды зæгъын",
+       "gender-male": "Дæн нæлгоймаг.",
+       "gender-female": "Дæн сылгоймаг.",
        "email": "E-mail",
        "prefs-help-email": "E-mail адрес фæндонæй у, фæлæ дæ дæ пароль куы ферох уа, уæд хъæуджæнис нæуæг пароль æвæрынæн.",
        "prefs-help-email-others": "Дæ бон ма у равзарын цæмæй дæм иннæтæ бадзурой e-mail-æй, кæцымæ уыдзæн æрвитæн дæ фарс æмæ дæ ныхасы фарсыл.\nДæ e-mail адрис афтæмæй нæ рабæрæг уыдзæнис.",
        "prefs-help-email-required": "Электронон посты адрис хъæуы.",
-       "prefs-advancedediting": "Фылдæр фадæттæ",
+       "prefs-info": "Бындурон информаци",
+       "prefs-i18n": "Интернационализаци",
+       "prefs-signature": "Къухæрфыст",
+       "prefs-dateformat": "Датæйы формат",
+       "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": "Ацы уагæвæрд скусдзæн дæ ног бахызты фæстæ.",
        "email-address-validity-valid": "E-mail раст зыны",
        "email-address-validity-invalid": "Раст e-mail бацамон",
        "userrights": "Архайæджы барты армдарæн",
        "userrights-lookup-user": "Архайæджы къордтæ ивын",
        "userrights-user-editname": "Фæсномыг бацамон:",
        "editusergroup": "Архайæджы къордтæ фæивын",
+       "userrights-editusergroup": "Архайæджы къордтæ фæивын",
+       "saveusergroups": "Архайæджы къордтæ бафснай",
+       "userrights-groupsmember": "Ацы къордты уæнг:",
        "userrights-reason": "Бындур:",
        "userrights-nodatabase": "Рарддон $1 нæй кæнæ бынæттон нæу.",
+       "userrights-changeable-col": "Дæ бон у ацы къордтæ ивын",
+       "userrights-unchangeable-col": "Дæ бон нæу ацы къордтæ ивын",
        "group": "Къорд:",
        "group-user": "Архайджытæ",
        "group-bot": "Роботтæ",
        "group-sysop": "Админтæ",
        "group-bureaucrat": "Бюрократтæ",
+       "group-suppress": "Ревизортæ",
        "group-all": "(иууылдæр)",
        "group-user-member": "{{GENDER:$1|архайæг}}",
        "group-autoconfirmed-member": "{{GENDER:$1|хæдсгарст архайæг}}",
        "grouppage-suppress": "{{ns:project}}:Радгæстæ",
        "right-read": "Фæрстæ кæсын",
        "right-edit": "Фæрстæ ивын",
+       "right-createaccount": "Ног аккаунт саразын",
        "right-move": "Фæрсты нæмттæ ивын",
        "right-move-subpages": "Фæрстæ æмæ сæ дæлфæрсты нæмттæ ивын",
+       "right-move-rootuserpages": "Архайджыты фæрстæн сæ нæмттæ ивын",
+       "right-move-categorypages": "Категоритæн сæ нæмттæ ивын",
        "right-movefile": "Файлты нæмттæ ивын",
        "right-upload": "Файлтæ æвгæнын",
        "right-upload_by_url": "Бавгæнын файлтæ интернетæй",
        "right-delete": "Фæрстæ хафын",
        "right-bigdelete": "Стыр историимæ фæрстæ хафын",
+       "right-undelete": "Фарс рацаразын",
+       "right-viewmywatchlist": "Хи цæстдард номхыгъд уынын",
+       "right-editmyoptions": "Хи уагæвæрдтæ ивын",
+       "right-userrights": "Архайджыты æппæт бартæ ивын",
+       "right-siteadmin": "Рарддон æхгæнын æмæ гом кæнын",
+       "right-sendemail": "Æндæр архайджытæм фыстæджытæ æрвитын",
        "newuserlogpage": "Архайджыты фæзындты лог",
+       "rightslog": "Архайæджы барты лог",
+       "rightslogtext": "Ацы лог æвдисы бартæ ивыны истори.",
        "action-read": "ацы фарс кæсын",
        "action-edit": "ацы фарс ивын",
        "action-createpage": "фæрстæ кæнын",
        "action-createtalk": "тæрхоны фæрстæ кæнын",
        "action-createaccount": "саразын ацы архайæджы аккаунт",
+       "action-history": "ацы фарс ивыны истори",
        "action-minoredit": "ацы ивд чысылæй нысан кæнын",
        "action-move": "ацы фарсы ном ивын",
+       "action-move-subpages": "ацы фарс æмæ йæ дæлфæрсты нæмттæ фæив",
+       "action-move-categorypages": "категоритæн сæ нæмттæ ивын",
        "action-movefile": "ацы файлы ном ивын",
        "action-upload": "ацы файл æвгæнын",
        "action-delete": "ацы фарс схафын",
+       "action-deleterevision": "фарсы ацы фæлтæр схафын",
+       "action-deletedhistory": "ацы фарсы хафт истори уынын",
+       "action-browsearchive": "хафт фæрстæ агурын",
+       "action-undelete": "рацаразын ацы фарс",
+       "action-userrights": "архайджыты æппæт бартæ ивын",
+       "action-sendemail": "эл. посты фыстæджытæ æрвитын",
+       "action-editmywatchlist": "дæ цæстдард номхыгъд ивын",
+       "action-viewmywatchlist": "дæ цæстдард номхыгъд уынын",
+       "action-viewmyprivateinfo": "дæ приватон информаци уынын",
+       "action-editmyprivateinfo": "дæ приватон информаци ивын",
        "nchanges": "$1 {{PLURAL:$1|ивд|ивды}}",
        "enhancedrc-history": "истори",
        "recentchanges": "Фæстаг ивдтытæ",
        "recentchanges-label-minor": "Ай у чысыл ивд",
        "recentchanges-label-bot": "Ацы ивд бот сарæзта",
        "recentchanges-label-unpatrolled": "Ацы ивд нырмæ нæу фидар гонд",
+       "recentchanges-legend-heading": "'''Легендæ:'''",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (уый йеддæмæ фен [[Special:NewPages|ног фæрсты номхыгъд]])",
        "rcnotefrom": "Бындæр сты æвдыст ивдтытæ '''$2'''-æй ('''{{grammar:genitive|$1}}''' йонг).",
        "rclistfrom": "Равдисын ивдтытæ амæй фæстæ: $3 $2",
        "rcshowhideminor": "$1 чысыл ивдтытæ",
        "rcshowhidebots-show": "Равдис",
        "rcshowhidebots-hide": "Бамбæхс",
        "rcshowhideliu": "$1 регистрацигонд архайæджы",
+       "rcshowhideliu-show": "Равдис",
        "rcshowhideliu-hide": "Бамбæхс",
        "rcshowhideanons": "$1 æнæном архайджыты",
        "rcshowhideanons-show": "Равдис",
        "rcshowhideanons-hide": "Бамбæхс",
        "rcshowhidepatr": "$1 бæрæггонд ивдтæ",
+       "rcshowhidepatr-show": "Равдис",
+       "rcshowhidepatr-hide": "Бамбæхс",
        "rcshowhidemine": "$1 мæ ивдтытæ",
        "rcshowhidemine-show": "Равдис",
        "rcshowhidemine-hide": "Бамбæхс",
        "recentchangeslinked-to": "Уый бæсты равдисæт амынд фарсмæ æрвитгæ фæрсты ивдтытæ",
        "upload": "Бавгæнын файл",
        "uploadbtn": "Файл бавгæнын",
+       "upload-tryagain": "Бавæр файлы ног афыст",
        "uploadnologin": "Системæмæ хызт нæ дæ",
+       "uploadnologintext": "Файлтæ бавгæнынмæ дæ бахъæудзæн $1.",
        "uploaderror": "Файл бавгæныны рæдыд",
        "uploadlogpage": "Æвгæндты лог",
        "filename": "Файлы ном",
        "filedesc": "Афыст:",
+       "fileuploadsummary": "Афыст:",
+       "filereuploadsummary": "Файлы ивдтытæ:",
+       "filestatus": "Публикацийы домæнтæ:",
+       "filesource": "Равзæрæн:",
        "minlength1": "Файлы номы хъуамæ æппынкъаддæр иу дамгъæ уа.",
+       "filename-toolong": "Файлты нæмттæ 240 байтæй даргъдæр ма уой.",
        "badfilename": "Файлы ном ивд æрцыд {{grammar:allative|«$1»}}.",
+       "empty-file": "Ды цы файл барвыстай, уый афтид уыдис.",
+       "file-too-large": "Ды цы файл барвыстай, уый æгæр стыр уыдис.",
+       "filename-tooshort": "Файлы ном æгæр цыбыр у.",
+       "filetype-banned": "Файлы хуыз ивæргонд у.",
+       "illegal-filename": "Ахæм файлы ном нæ бæззы.",
+       "tmp-create-error": "Рæстæгмæ файл скæнын нæ фæрæстмæ.",
+       "uploadwarning": "Бавгæныны тыххæй рагфæдзæхст",
+       "uploadwarning-text": "Дæ хорзæхæй, файлы афыст баив æмæ та ногæй афæлвар.",
        "savefile": "Файл бавæрын",
+       "uploaddisabled": "Бавгæд ивæргонд æрцыдис.",
+       "copyuploaddisabled": "URL-адрисмæ гæсгæ бавгæд ивæргонд æрцыдис.",
+       "uploaddisabledtext": "Файлты бавгæд ивæргонд æрцыдис.",
        "uploadvirus": "Файлы ис вирус! \nЛæмбынæг: $1",
+       "upload-source": "Бавгæнинаг файл",
+       "sourcefilename": "Райдайæн файлы ном:",
+       "sourceurl": "Равзæрæн URL-адрис:",
+       "destfilename": "Файлы ног ном:",
+       "upload-description": "Файлы афыст",
+       "upload-options": "Бавгæныны уагæвæрдтæ",
        "watchthisupload": "Ацы файлмæ цæст æрдарын",
        "upload-success-subj": "Æвгæд æрцыд",
+       "upload-failure-subj": "Бавгæныны проблемæ",
        "upload-file-error": "Мидæггаг рæдыд",
+       "backend-fail-notexists": "Файл $1 нæй.",
+       "backend-fail-delete": "Нæ уайы файл «$1» схафын.",
+       "backend-fail-alreadyexists": "Файл «$1» нырид ис.",
+       "backend-fail-closetemp": "Рæстæгмæ файл сæхкæнын нæ фæрæстмæ.",
+       "uploadstash": "Сусæг бавгæд",
+       "uploadstash-clear": "Æмбæхст файлтæ схафын",
+       "uploadstash-nofiles": "Сусæггонд файлтæ дæм нæй.",
+       "uploadstash-refresh": "Файлты номхыгъд сног кæн.",
+       "img-auth-accessdenied": "Бацæуæн нæй",
+       "img-auth-nofile": "Файл «$1» нæй.",
+       "http-invalid-url": "Рæдыд URL-адрис: $1",
+       "http-read-error": "HTTP кæсыны рæдыд.",
        "license": "Лицензи:",
        "license-header": "Лицензи",
+       "license-nopreview": "(Разæркаст нæй)",
+       "listfiles-delete": "схафын",
+       "listfiles-summary": "Ацы сæрмагонд фарсыл фенæн ис æппæт бавгæд файлтæ.",
+       "listfiles_search_for": "Файлы номмæ гæсгæ агуырд:",
        "imgfile": "файл",
        "listfiles": "Файлты номхыгъд",
        "listfiles_thumb": "Къаддæргонд",
        "listfiles_size": "Ас",
        "listfiles_description": "Амынд",
        "listfiles_count": "Фæлтæртæ",
+       "listfiles-latestversion-yes": "Гъо",
+       "listfiles-latestversion-no": "Нæ",
        "file-anchor-link": "Файл",
        "filehist": "Файлы истори",
        "filehist-help": "Ныххæц датæ/рæстæг-ыл, цæмæй фенай еуæд куыд фæзындис.",
        "sharedupload": "Ацы файл у {{grammar:ablative|$1}} æмæ дзы гæнæн ис æндæр проекттæ дæр архайой.",
        "sharedupload-desc-there": "Ацы файл у {{grammar:ablative|$1}} æмæ дзы гæнæн ис æндæр проекттæ дæр архайой.\nКæс [$2 файлы афысты фарс] фылдæр базонынæн.",
        "sharedupload-desc-here": "Ацы файл у {{grammar:ablative|$1}} æмæ дзы гæнæн ис æндæр проекттæ дæр архайой.\n[$2 Йæ фарсæй] афыст у æвдыст бындæр",
+       "filepage-nofile": "Нæй ахæм файл (йæ номмæ гæсгæ).",
+       "uploadnewversion-linktext": "Ацы файлы ног верси бавгæн",
+       "shared-repo-from": "$1-йæ",
+       "filerevert-comment": "Аххос:",
+       "filerevert-submit": "Раивын",
+       "filedelete": "Схафын $1",
+       "filedelete-legend": "Схафын файл",
        "filedelete-comment": "Бындур:",
        "filedelete-submit": "Схафын",
        "filedelete-success": "'''$1''' хафт æрцыд.",
        "filedelete-otherreason": "Æндæр кæнæ уæлæмхасæн аххос:",
        "filedelete-reason-otherlist": "Æндæр аххос",
+       "filedelete-maintenance-title": "Файл схафæн нæй",
+       "mimesearch": "MIME агуырд",
+       "mimetype": "MIME хуыз:",
        "download": "равгæнын",
+       "unwatchedpages": "Æнæцæстдард фæрстæ",
        "unusedtemplates": "Пайда кæмæй нæ чындæуы, ахæм хуызæгтæ",
+       "unusedtemplateswlh": "æндæр æрвитæнтæ",
        "randompage": "Æрхаугæ фарс",
+       "randomincategory-invalidcategory": "«$1» категорийы номыл нæ бæззы.",
+       "randomincategory-category": "Категори:",
+       "randomincategory-legend": "Æрхаугæ фарс категорийæ",
+       "randomredirect": "Æрхаугæ рарвыст",
        "statistics": "Статистикæ",
        "statistics-header-pages": "Фарсы статистикæ",
        "statistics-header-edits": "Ивдтыты статистикæ",
        "statistics-header-users": "Архайджыты статистикæ",
        "statistics-header-hooks": "Æндæр статистикæтæ",
        "statistics-articles": "Мидисы фæрстæ",
+       "statistics-pages": "Фæрстæ",
+       "statistics-files": "Бавгæд файлтæ",
+       "statistics-edits-average": "Ивдтыты рæстæмбис нымæц иу фарсмæ",
+       "statistics-users-active": "Активон архайджытæ",
+       "pageswithprop-submit": "Агурын",
        "double-redirect-fixer": "Рарвыст растгæнæн",
        "brokenredirects-edit": "ивын",
        "brokenredirects-delete": "схафын",
+       "withoutinterwiki-legend": "Префикс",
        "withoutinterwiki-submit": "Равдисын",
        "fewestrevisions": "Къаддæр кæй ивынц, ахæм фæрстæ",
        "nbytes": "$1 {{PLURAL:$1|байт|байты}}",
        "ninterwikis": "$1 {{PLURAL:$1|интервики|интервикийы}}",
        "nlinks": "$1 {{PLURAL:$1|æрвитæн|æрвитæны}}",
        "nmembers": "$1 {{PLURAL:$1|уæнг|уæнгы}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|уæнг|уæнджы}}",
        "nrevisions": "$1 {{PLURAL:$1|фæлтæр|фæлтæры}}",
        "nviews": "$1 {{PLURAL:$1|æркаст|æркасты}}",
        "nimagelinks": "Архайд цæуы $1 {{PLURAL:$1|фарсы}}",
        "ntransclusions": "архайд цæуы $1 {{PLURAL:$1|фарсы}}",
+       "specialpage-empty": "Нæй фæстиуæг.",
        "lonelypages": "Сидзæр фæрстæ",
        "uncategorizedpages": "Æнæкатегори фæрстæ",
        "uncategorizedimages": "Æнæкатегори файлтæ",
        "uncategorizedtemplates": "Æнæкатегори хуызæгтæ",
+       "unusedcategories": "Æнæпайда категоритæ",
+       "unusedimages": "Æнæпайда файлтæ",
        "wantedcategories": "Хъæугæ категоритæ",
        "wantedpages": "Хъæугæ фæрстæ",
        "wantedfiles": "Хъæугæ файлтæ",
+       "wantedtemplates": "Хъæугæ хуызæгтæ",
        "mostlinked": "Фылдæр æрвитæнтæ кæмæ и, ахæм фæрстæ",
        "mostlinkedcategories": "Фылдæр æрвитæнтæ кæмæ и, уыцы категоритæ",
+       "mostinterwikis": "Фылдæр интервикитæ кæмæ æрвитынц, ахæм фæрстæ",
        "mostrevisions": "Фылдæр кæй ивынц, ахæм фæрстæ",
        "prefixindex": "Фæрстæ префиксмæ гæсгæ",
        "shortpages": "Цыбыр фæрстæ",
        "longpages": "Даргъ фæрстæ",
+       "deadendpages": "Къуымы фæрстæ",
        "protectedpages": "Æхгæд фæрстæ",
+       "protectedpages-timestamp": "Датæ/рæстæг",
+       "protectedpages-page": "Фарс",
+       "protectedpages-expiry": "Кæдмæ æхгæд у",
+       "protectedpages-performer": "Архайæджы хъахъхъæнын",
+       "protectedpages-reason": "Аххос",
+       "protectedpages-unknown-timestamp": "Æнæзонгæ",
+       "protectedpages-unknown-performer": "Æнæзонгæ архайæг",
        "listusers": "Архайджыты номхыгъд",
        "usereditcount": "$1 {{PLURAL:$1|ивд|ивды}}",
        "usercreated": "{{GENDER:$3|Фæзындис}} $1, {{grammar:superessive|$2}}",
        "newpages-username": "Архайæг:",
        "ancientpages": "Зæронддæр фæрстæ",
        "move": "Ном ивын",
+       "movethispage": "Ацы фарсы ном ивын",
+       "notargettitle": "Нысан амынд нæу",
+       "nopagetitle": "Нæй ахæм нысаны фарс",
+       "nopagetext": "Амынд нысаны фарс нæй.",
        "pager-newer-n": "{{PLURAL:$1|нæуæгдæр иу|нæуæгдæр $1}}",
        "pager-older-n": "{{PLURAL:$1|раздæр иу|раздæр $1}}",
+       "apihelp": "API тыххæй æххуыс",
+       "apihelp-no-such-module": "Модуль «$1» ссарæн нæй.",
        "booksources": "Чиныгисæнтæ",
        "booksources-search-legend": "Агурын чингуыты равзæрæнтæ",
+       "booksources-search": "Агуырд",
        "specialloguserlabel": "Гæнæг:",
        "speciallogtitlelabel": "Мил (ном кæнæ архайæг):",
        "log": "Логтæ",
        "prevpage": "Раздæры фарс ($1)",
        "allarticles": "Иууылдæр фæрстæ",
        "allpagessubmit": "Ацæуын",
+       "cachedspecial-refresh-now": "Фæстаг фенын.",
        "categories": "Категоритæ",
        "categoriespagetext": "Ацы {{PLURAL:$1|категорийы|категориты}} ис фæрстæ кæнæ файлтæ.\n[[Special:UnusedCategories|Нæ пайдагонд категоритæ]] æвдыст не сты.\nНоджы кæс [[Special:WantedCategories|хъæугæ категоритæ]].",
        "special-categories-sort-count": "нымæцмæ гæсгæ равæр",
        "special-categories-sort-abc": "алфавитмæ гæсгæ равæр",
+       "sp-deletedcontributions-contribs": "бавæрд",
        "linksearch": "Æддаг æрвитæнтæ агурын",
        "linksearch-ns": "Номдон:",
        "linksearch-ok": "Агурын",
        "linksearch-line": "$2 æрвиты {{grammar:allative|$1}}",
        "listusers-submit": "Равдисын",
+       "listusers-noresult": "Иу архайæг дæр не ссардæуыд.",
+       "listusers-blocked": "(хъодыгонд)",
+       "activeusers": "Активон архайджыты номхыгъд",
+       "activeusers-hidebots": "Боттæ бамбæхс",
+       "activeusers-hidesysops": "Радгæсты бамбæхс",
+       "activeusers-noresult": "Иу архайæг дæр не ссардæуыд.",
+       "listgrouprights": "Къордты архайджыты бартæ",
        "listgrouprights-group": "Къорд",
        "listgrouprights-rights": "Бартæ",
+       "listgrouprights-helppage": "Help:Къордты бартæ",
        "listgrouprights-members": "(уæнгты номхыгъд)",
+       "listgrouprights-addgroup": "Бафтау {{PLURAL:$2|къордмæ|къордтæм}}: $1",
+       "listgrouprights-removegroup": "Раппар {{PLURAL:$2|къордæй|къордтæй}}: $1",
+       "listgrouprights-addgroup-all": "Æппæт къордтæм бафтау",
+       "listgrouprights-removegroup-all": "Æппæт къордтæй раппар",
+       "listgrouprights-namespaceprotection-header": "Номдоны арæнæвæрдтæ",
+       "listgrouprights-namespaceprotection-namespace": "Номдон",
+       "trackingcategories-name": "Фыстæджы ном",
+       "trackingcategories-nodesc": "Афыст нæй.",
        "mailnologintext": "Фыстæгтæ æрвитынмæ хъуамæ [[Special:UserLogin|системæйæн дæхи бавдисай]] æмæ дæ бæлвырд электронон посты адрис [[Special:Preferences|ныффыссай]].",
        "emailuser": "Ацы архайæгæн электронон фыстæг рарвитт",
+       "emailuser-title-notarget": "Архайæгæн фыстæг арвит",
        "emailpage": "Электронон фыстæг йæм барвит",
+       "noemailtitle": "Эл. посты адрис нæй.",
+       "emailusername": "Фæсномыг:",
+       "emailusernamesubmit": "Афтæ уæд",
+       "emailfrom": "Кæмæй:",
+       "emailto": "Кæмæн:",
+       "emailsubject": "Цæй тыххæй:",
+       "emailmessage": "Фыстæг:",
+       "emailsend": "Арвит",
+       "emailsent": "Фыстæг æрвыст у.",
+       "emailsenttext": "Дæ эл. посты фыстæг арвыст æрцыдис.",
+       "usermessage-editor": "Системæйы фыстытæ",
        "watchlist": "Цæстдард",
        "mywatchlist": "Цæстдард",
        "watchlistfor2": "Архайæг: $1 $2",
        "nowatchlist": "Иу уацмæ дæр дæ цæст нæ дарыс.",
        "watchnologin": "Системæйæн дæхи нæ бацамыдтай",
+       "addwatch": "Цæстдард номхыгъдмæ бафтау",
+       "addedwatchtext-short": "Фарс «$1» дæ цæстдард номхыгъдмæ бафтыдис.",
+       "removewatch": "Цæстдард номхыгъдæй аис",
        "removedwatchtext": "«[[:$1]]» фарсмæ [[Special:Watchlist|дæ цæст]] нал дарыс.",
+       "removedwatchtext-short": "Фарс «$1» дæ цæстдард номхыгъдæй ист æрцыдис.",
        "watch": "Цæст æрдарын",
        "watchthispage": "Цæст дарын ацы фарсмæ",
        "unwatch": "Нал дарын цæст",
+       "unwatchthispage": "Мауал дар дæ цæст",
        "watchlist-details": "{{PLURAL:$1|$1 фарсмæ|$1 фарсмæ}} дæ цæст дарыс, тæрхоны фæрстæ нæ нымайгæйæ.",
        "wlnote": "Дæлæ афæстаг '''$2 сахаты дæргъы''' цы $1 {{PLURAL:$1|ивддзинад|ивддзинады}} æрцыди.",
        "wlshowlast": "Фæстæг $1 сахаты, $2 боны дæргъы; .",
        "watchlist-options": "Цæстдард рæгъы фадæттæ",
        "watching": "Цæстдард фæрсты номхыгъдмæ афтауын...",
        "unwatching": "Цæстдард фæрсты номхыгъдæй аиуварс кæнын...",
+       "enotif_impersonal_salutation": "{{grammar:genitive|{{SITENAME}}}} архайæг",
        "enotif_anon_editor": "сусæг архайæг $1",
        "changed": "ивд æрцыд",
        "deletepage": "Схаф фарс",
+       "confirm": "Афтæ у",
        "delete-confirm": "Схаф \"$1\"",
+       "delete-legend": "Схафын",
        "actioncomplete": "Æххæст",
        "actionfailed": "Нæ рауадис",
        "dellogpage": "Хафынты лог",
        "deleteotherreason": "Æндæр кæнæ уæлæмхасæн аххос:",
        "deletereasonotherlist": "Æндæр аххос",
        "rollbacklink": "раздæхын",
+       "sessionfailure-title": "Сеансы рæдыд",
        "protectlogpage": "Хъахъхъæды лог",
        "protectedarticle": "«[[$1]]» фарс æхгæд æрцыд",
        "prot_1movedto2": "[[$1]] хаст æрцыд [[$2|{{grammar:allative|$2}}]]",
+       "protect-badnamespace-text": "Ацы номдоны фæрстæ хъахъхъæнæн нæй.",
+       "protect-legend": "Сфидар кæнын хъахъхъæд",
        "protectcomment": "Аххос:",
        "protectexpiry": "Кæдмæ æхгæд у:",
+       "protect_expiry_invalid": "Амынд рæстæг æнæраст у.",
+       "protect_expiry_old": "Амынд датæ æнæраст у.",
        "protect-level-sysop": "Æрмæст админтæ",
+       "protect-expiry-indefinite": "æнусмæ",
        "protect-othertime": "Æндæр рæстæг:",
        "protect-othertime-op": "æндæр рæстæг",
        "protect-otherreason": "Æндæр аххос/уæлæмхасæн:",
        "protect-otherreason-op": "Æндæр аххос",
+       "protect-edit-reasonlist": "Хъахъхъæды аххостæ ивын",
+       "protect-expiry-options": "1 сахат:1 hour,1 бон:1 day,1 къуыри:1 week,2 къуырийы:2 weeks,1 мæй:1 month,3 мæйы:3 months,6 мæйы:6 months,1 аз:1 year,æнусмæ:infinite",
        "restriction-type": "Бартæ:",
+       "minimum-size": "Минималон ас:",
+       "maximum-size": "Максималон ас:",
+       "pagesize": "(байты)",
        "restriction-edit": "Ивын",
+       "restriction-move": "Ном ивын",
+       "restriction-create": "Скæнын",
+       "restriction-upload": "Бавгæнын",
+       "restriction-level-sysop": "хъахъхъæд æххæстæй",
+       "restriction-level-autoconfirmed": "æрдæг-хъахъхъæд",
+       "restriction-level-all": "цыфæнды æмваз",
+       "undelete": "Æппæрст фæрстæ фенын",
+       "viewdeletedpage": "Æппæрст фæрстæ фенын",
+       "undelete-fieldset-title": "Фæлтæртæ рацаразын",
+       "undeletebtn": "Рацаразын",
        "undeletelink": "кæсын/рацаразын",
        "undeleteviewlink": "кæсын",
+       "undeleteinvert": "Зыгъуыммæ æвзæрст",
+       "undeletecomment": "Аххос:",
+       "undeletedfiles": "{{PLURAL:$1|1 файл рацарæзт æрцыдис|$1 файлы рацарæзт æрцыдысты}}",
+       "cannotundelete": "Рацарæзт нæ фæрæстмæ:\n$1",
+       "undelete-search-title": "Хафт фæрсты агуырд",
+       "undelete-search-box": "Хафт фæрстæ агурын",
        "undelete-search-submit": "Агурын",
+       "undelete-error": "Фарс рацаразыны рæдыд",
+       "undelete-error-short": "Файл рацаразыны рæдыд: $1",
+       "undelete-error-long": "Файл рацаразыны рæстæг æрцыдысты рæдыдтæ:\n\n$1",
+       "undelete-show-file-submit": "Гъо",
        "namespace": "Номдон:",
        "invert": "Зыгъуыммæ æвзæрст",
        "namespace_association": "Баст номдон",
        "contributions-title": "Архайæджы бавæрд: $1",
        "mycontris": "Бавæрд",
        "contribsub2": "Архайæг: $1 ($2)",
-       "uctop": "(фæстаг)",
+       "contributions-userdoesnotexist": "Архайæджы аккаунт «$1» регистрацигонд нæу.",
+       "uctop": "(нырыккон)",
        "month": "Ацы мæйы (æмæ раздæр):",
        "year": "Ацы азы (æмæ раздæр):",
        "sp-contributions-newbies": "Æвдисын æрмæст нæуæг архайджыты бавæрд",
+       "sp-contributions-newbies-sub": "Ноггонд аккаунттæ",
        "sp-contributions-blocklog": "хъодыты лог",
+       "sp-contributions-suppresslog": "æмбæхст ивдтытæ",
+       "sp-contributions-deleted": "æппæрст ивдтытæ",
        "sp-contributions-uploads": "бавгæндтытæ",
        "sp-contributions-logs": "логтæ",
        "sp-contributions-talk": "ныхас",
        "whatlinkshere-page": "Фарс:",
        "linkshere": "Ацы фæрстæ æрвитынц '''[[:$1|{{grammar:allative|$1}}]]''':",
        "nolinkshere": "Никæцы фарс æрвиты ардæм: '''[[:$1]]'''.",
+       "nolinkshere-ns": "Амынд номдоны мидæг никæцы фарс æрвиты ардæм <strong>[[:$1]]</strong>.",
        "isredirect": "æрвитæн фарс",
        "istemplate": "æфтыдæй",
        "isimage": "файлмæ æрвитæн",
        "whatlinkshere-hideimages": "Файлмæ æрвитæнтæ $1",
        "whatlinkshere-filters": "Фильтртæ",
        "block": "Архайæгыл хъоды кæнын",
-       "blockip": "Ð\91ахъоды кæнын",
+       "blockip": "Ð\90Ñ\80Ñ\85айæджÑ\8b Ð±ахъоды кæнын",
        "blockip-legend": "Архайæгыл хъоды кæнын",
        "ipaddressorusername": "IP адрис кæнæ фæсномыг:",
        "ipbexpiry": "Фæуыны афон:",
        "ipbreason": "Аххос:",
+       "ipbsubmit": "Бахъоды кæн ацы архайæджы",
+       "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",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] хъодыгонд æрцыд.<br />\nКæс [[Special:Ipblocklist|хъодыгонд IP-адристы номхыгъд]].",
        "ipb-blocklist": "Актуалон хъоды равдис",
        "ipb-blocklist-contribs": "{{grammar:genitive|$1}} бавæрд",
+       "blocklist": "Хъодыгонд архайджытæ",
        "ipblocklist": "Хъодыгонд архайджытæ",
        "ipblocklist-legend": "Хъодыгонд архайæджы ацагур",
+       "blocklist-timestamp": "Датæ/рæстæг",
+       "blocklist-target": "Нысан",
+       "blocklist-expiry": "Кæдмæ",
+       "blocklist-by": "Хъодыгæнæг радгæс",
+       "blocklist-params": "Хъодыйы параметртæ",
+       "blocklist-reason": "Аххос",
        "ipblocklist-submit": "Агурын",
+       "ipblocklist-localblock": "Бынæттон хъоды",
+       "ipblocklist-otherblocks": "Æндæр {{PLURAL:$1|хъоды|хъодытæ}}",
+       "infiniteblock": "æнусмæ",
        "ipblocklist-empty": "Хъодыгæндты номхыгъд афтид у.",
        "blocklink": "бахъоды кæн",
        "unblocklink": "хъоды айс",
        "change-blocklink": "ивын хъоды",
        "contribslink": "бавæрд",
+       "emaillink": "эл. посты фыстæг арвит",
        "blocklogpage": "Хъодыты лог",
        "blocklogentry": "бахъоды кодта [[$1]] $2 æмгъуыдмæ $3",
+       "block-log-flags-anononly": "æрмæст сусæг архайджытæ",
        "block-log-flags-nocreate": "аккаунт аразæн нал ис",
+       "block-log-flags-hiddenname": "æмбæхст фæсномыг",
+       "ipb_already_blocked": "«$1» нырид хъодыгонд у.",
+       "ipb-otherblocks-header": "Æндæр {{PLURAL:$1|хъоды|хъодытæ}}",
+       "lockdb": "Рарддон бахкæнын",
+       "unlockdb": "Рарддон байгом кæнын",
+       "lockconfirm": "Æцæгæй мæ фæнды рарддон сæхгæнын.",
+       "unlockconfirm": "Æцæгæй мæ фæнды рарддон байгом кæнын.",
+       "lockbtn": "Рарддон бахкæнын",
+       "unlockbtn": "Рарддон байгом кæнын фыссынмæ",
        "lockdbsuccesssub": "Рарддон æхгæд æрцыд",
        "unlockdbsuccesssub": "Рардон байгом ис",
-       "unlockdbsuccesstext": "Рард дон гом æрцыд.",
-       "databasenotlocked": "Рарддон æхгæд неу.",
+       "unlockdbsuccesstext": "Рарддон гом æрцыд.",
+       "databasenotlocked": "Рарддон æхгæд нæу.",
+       "lockedbyandtime": "($1 $2 $3)",
+       "move-page": "$1 — номы ивд",
+       "move-page-legend": "Фарсы ном ивын",
        "movearticle": "Номивгæ фарс:",
+       "movenotallowed": "Фæрстæн сæ нæмттæ ивыны бар дæм нæй.",
+       "movenotallowedfile": "Файлты нæмттæ ивыны бар дæм нæй.",
+       "cant-move-user-page": "Архайджыты фæрсты нæмттæ ивыны бар дæм нæй (дæлфæрсты йеддæмæ).",
+       "cant-move-category-page": "Категориты нæмттæ ивыны бар дæм нæй.",
+       "cant-move-to-category-page": "Фарсы ном категорийы номæй баивæн нæй.",
        "newtitle": "Ног ном:",
        "move-watch": "Зæронд æмæ нæуæг фæрстæм цæст æрдарын",
        "movepagebtn": "Фарсы ном ивын",
+       "pagemovedsub": "Номы ивд фæрæстмæ.",
+       "movepage-moved": "'''Фарс «$1» ныртæккæ хуыйны «$2»'''",
+       "movetalk": "Тæрхоны фарсы ном дæр.",
+       "move-subpages": "Æд дæлфæрстæ дæр ($1 онг)",
        "movelogpage": "Номивдтыты лог",
+       "movenosubpage": "Ацы фарсæн дæлфæрстæ нæй.",
        "movereason": "Бындур:",
        "revertmove": "раивын",
+       "delete_and_move": "Схафын æмæ ном фæивын",
+       "delete_and_move_confirm": "Гъо, схафы ацы фарс",
+       "immobile-source-namespace": "Номдон «{{grammar:genitive|$1}}» мидæг фæрсты нæмттæ ивæн нæй.",
+       "immobile-source-page": "Ацы фарсæн йæ ном ивæн нæй.",
+       "imageinvalidfilename": "Нысаны файлы ном рæстмæ нæу.",
        "export": "Фæрсты экспорт",
+       "exportall": "Æппæт фæрсты экспорт",
+       "export-submit": "Экспорт",
+       "export-addcat": "Бафтау",
+       "export-addnstext": "Бафтау фæрстæ ацы номдонæй:",
+       "export-addns": "Бафтау",
+       "export-templates": "Æд æппæт хуызæгтæ",
        "allmessages": "Системæйы фыстытæ",
        "allmessagesname": "Ном",
        "allmessagesdefault": "Разæвæрд текст",
+       "allmessages-filter-legend": "Фæрсудзæн",
+       "allmessages-filter-unmodified": "Æнæивд",
        "allmessages-filter-all": "Иууылдæр",
+       "allmessages-filter-modified": "Ивд",
        "allmessages-language": "Æвзаг:",
+       "allmessages-filter-submit": "Афтæ уæд",
+       "allmessages-filter-translate": "Тæлмац кæнын",
        "thumbnail-more": "Фестырдæр кæнын",
+       "filemissing": "Файл ссарæн нæй",
        "thumbnail_error": "Чысыл фæлтæр аразыны рæдыд: $1",
        "thumbnail_invalid_params": "Рæдыд къаддæргонды миниуджытæ",
+       "thumbnail_image-missing": "Æвæццæгæн ацы файл нæй: $1",
+       "import": "Фæрсты импорт",
+       "importinterwiki": "Æндæр викийæ импорт",
+       "import-interwiki-sourcewiki": "Райдайæн вики:",
+       "import-interwiki-sourcepage": "Райдайæн фарс:",
+       "import-interwiki-history": "Ацы фарсæн йæ ивдтыты истори æппæтæй халдих кæн.",
+       "import-interwiki-templates": "Æд æппæт хуызæгтæ",
+       "import-interwiki-submit": "Импорт",
+       "import-mapping-namespace": "Импорт номдонмæ:",
+       "import-upload-filename": "Файлы ном:",
+       "import-comment": "Фиппаинаг:",
+       "importstart": "Фæрсты импорт цæуы...",
+       "import-revision-count": "$1 {{PLURAL:$1|фæлтæр|фæлтæры}}",
+       "importnopages": "Импортгæнинаг фæрстæ нæй.",
+       "importsuccess": "Импорт фæци!",
        "importuploaderrortemp": "Импорты файл æрвитын нæ фæрæстмæ. Нæй рæстæгмæ файлдон.",
+       "import-noarticle": "Импортгæнинаг фарс нæй!",
+       "importlogpage": "Импорты лог",
+       "javascripttest-pagetext-unknownaction": "Æнæзонгæ архайд «$1».",
        "tooltip-pt-userpage": "Дæ архайæджы фарс",
        "tooltip-pt-mytalk": "Дæ ныхасы фарс",
        "tooltip-pt-preferences": "Дæ уагæвæрдтæ",
        "tooltip-n-help": "Базонынæн бынат",
        "tooltip-t-whatlinkshere": "Ацы фарсмæ чи ’рвитынц, ахæм фæрсты номхыгъд",
        "tooltip-t-recentchangeslinked": "Ацы фарс кæмæ æрвиты, уыцы фæрсты фæстаг ивдтытæ",
+       "tooltip-feed-rss": "Ацы фарсы RSS-лæсæн",
        "tooltip-feed-atom": "Atom feed ацы фарсæн",
        "tooltip-t-contributions": "Ацы архайæджы бавæрд фенын",
        "tooltip-t-emailuser": "Арвитын фыстæг ацы архайæгмæ",
        "tooltip-t-permalink": "Фарсы ацы фæлтæрмæ æрвитæн (фæрстæ ивынц, ацы фæлтæр — нæ)",
        "tooltip-ca-nstab-main": "Фенын уац",
        "tooltip-ca-nstab-user": "Архайæджы фарс фенын",
+       "tooltip-ca-nstab-media": "Медиа-файл",
        "tooltip-ca-nstab-special": "Ай сæрмагонд фарс у, дæ бон æй нæу ивын",
        "tooltip-ca-nstab-project": "Фенын проекты фарс",
        "tooltip-ca-nstab-image": "Нывы фарс",
+       "tooltip-ca-nstab-mediawiki": "Системæйы фыст фен",
        "tooltip-ca-nstab-template": "Хуызæг фенын",
+       "tooltip-ca-nstab-help": "Æххусы фарс",
        "tooltip-ca-nstab-category": "Категорийы фарс",
        "tooltip-minoredit": "Чысыл ивдæй йæ банысан кæнын",
        "tooltip-save": "Бавæр дæ ивдтытæ",
        "lastmodifiedatby": "Ацы фарс фæстаг хатт фæивта $3, $1, $2 сахатыл.",
        "others": "æндæртæ",
        "spamprotectiontitle": "Спамы ныхмæ фильтр",
+       "pageinfo-header-basic": "Бындурон информаци",
+       "pageinfo-header-edits": "Ивды истори",
+       "pageinfo-header-restrictions": "Фарсы хъахъхъæд",
+       "pageinfo-length": "Фарсы дæргъ (байты)",
+       "pageinfo-article-id": "Фарсы ID",
+       "pageinfo-language": "Фарсы æвзаг",
+       "pageinfo-robot-noindex": "Ивæргонд",
+       "pageinfo-firstuser": "Фарсы скæнæг",
+       "pageinfo-firsttime": "Фарсæн йæ сконды бон",
+       "pageinfo-lastuser": "Фæстаг ивæг",
+       "pageinfo-lasttime": "Фæстаг ивды бон",
+       "pageinfo-edits": "Ивдтытæ æдæппæт",
        "pageinfo-toolboxlink": "Ацы фарсы тыххæй",
+       "pageinfo-redirectsto-info": "инфо",
+       "pageinfo-contentpage-yes": "Гъо",
+       "pageinfo-protect-cascading-yes": "Гъо",
+       "pageinfo-category-info": "Категорийы тыххæй",
+       "pageinfo-category-total": "Уæнгты нымæц æдæппæт",
+       "pageinfo-category-pages": "Фæрсты нымæц",
+       "pageinfo-category-subcats": "Дæлкатегориты нымæц",
+       "pageinfo-category-files": "Файлты нымæц",
        "previousdiff": "← Зæронддæр ивд",
        "nextdiff": "Фæстæдæр ивд →",
        "thumbsize": "Къаддæргонды бæрц:",
        "show-big-image-preview": "Къаддæргонды ас: $1",
        "show-big-image-size": "$1 × $2 пикселы",
        "newimages": "Ног нывты галерей",
+       "newimages-legend": "Фæрсудзæн",
+       "newimages-label": "Файлы ном (кæнæ йæ иу хай):",
        "ilsubmit": "Агурын",
        "bydate": "рæстæгмæ гæсгæ",
+       "minutes": "{{PLURAL:$1|$1 минут|$1 минуты}}",
+       "hours": "{{PLURAL:$1|$1 сахат|$1 сахаты}}",
+       "days": "{{PLURAL:$1|$1 бон|$1 боны}}",
+       "weeks": "{{PLURAL:$1|$1 къуыри|$1 къуырийы}}",
+       "months": "{{PLURAL:$1|$1 мæй|$1 мæйы}}",
+       "years": "{{PLURAL:$1|$1 аз|$1 азы}}",
+       "ago": "$1 размæ",
+       "just-now": "ныртæккæ",
+       "hours-ago": "{{PLURAL:$1|$1 сахаты размæ}}",
+       "minutes-ago": "$1 минуты размæ",
+       "seconds-ago": "$1 секунды размæ",
        "bad_image_list": "Формат у ахæм:\n\nÆрмæстдæр рæгъон рæнхъытæ (рæнхъытæ, кæдон байдауынц * символæй) нымады кæнынц.\nФыццаг æрвитæн рæнхъы хъуамæ æрвита æвзæр файлмæ.\nИннæ æрвитæнтæ уыцы рæнхъы нымады кæнынц куыд уæлвæткытæ, кæдон сты фæрстæ кæдæм ис бар бавæрын файл.",
        "metadata": "Метабæрæггæнæнтæ",
        "metadata-help": "Ацы файлы мидæг ис лæмбынæг информаци, кæцы æвæццæгæн уыд æфтыд нывисæн æви сканерæй, кæдон сарæзтой файл.\nКæд файл уыдис ивд, уæд, гæнæн ис, кæцыдæр рардтæ нæ æмбæлой нæуæг файлмæ.",
        "metadata-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-imagewidth": "Уæрх",
        "exif-imagelength": "Бæрзæнд",
+       "exif-imagedescription": "Нывы сæргонд",
+       "exif-make": "Камерæйы скæнæг",
+       "exif-model": "Камерæйы модель",
        "exif-artist": "Автор",
+       "exif-exifversion": "Exif-ы верси",
+       "exif-usercomment": "Архайæджы фиппаинæгтæ",
+       "exif-contrast": "Контраст",
+       "exif-source": "Равзæрæн",
        "exif-writer": "Фыссæг",
        "exif-languagecode": "Æвзаг",
        "exif-iimversion": "IIM-ы фæлтæр",
        "exif-datetimeexpires": "Ма архай ацы датæйы фæстæ",
        "exif-datetimereleased": "Рауагъды датæ",
        "exif-identifier": "Бæрæггæнæн",
+       "exif-giffilecomment": "GIF-файлы фиппаинаг",
+       "exif-unknowndate": "Æбæрæг датæ",
+       "exif-orientation-1": "Нормалон",
+       "exif-exposureprogram-1": "Къухæй",
+       "exif-subjectdistance-value": "$1 метры",
+       "exif-meteringmode-0": "Æнæзонгæ",
+       "exif-meteringmode-1": "Рæстæмбис",
+       "exif-meteringmode-255": "Æндæр",
+       "exif-lightsource-0": "Æнæзонгæ",
+       "exif-lightsource-1": "Боны рухс",
+       "exif-sensingmethod-1": "Æбæрæг",
+       "exif-scenecapturetype-2": "Портрет",
        "exif-gaincontrol-0": "Нæй",
+       "exif-subjectdistancerange-0": "Æнæзонгæ",
+       "exif-subjectdistancerange-1": "Макро",
+       "exif-gpsdestdistance-k": "километры",
+       "exif-dc-date": "Датæ(тæ)",
+       "exif-dc-rights": "Бартæ",
+       "exif-iimcategory-clj": "Фыдракæнд æмæ закъон",
+       "exif-iimcategory-edu": "Ахуыр",
+       "exif-iimcategory-hth": "Æнæниздзинад",
+       "exif-iimcategory-lab": "Фæллой",
+       "exif-iimcategory-pol": "Политикæ",
+       "exif-iimcategory-rel": "Дин æмæ уырнынад",
+       "exif-iimcategory-sci": "Зонад æмæ технологи",
+       "exif-iimcategory-soi": "Æхсæнадон фарстатæ",
+       "exif-iimcategory-spo": "Спорт",
+       "exif-iimcategory-war": "Хæст æмæ быцæутæ",
+       "exif-iimcategory-wea": "Боныхъæд",
        "namespacesall": "иууылдæр",
        "monthsall": "иууылдæр",
        "confirm_purge_button": "Афтæ уæд!",
        "confirm-watch-button": "Хорз",
        "confirm-unwatch-button": "Хорз",
+       "quotation-marks": "«$1»",
        "imgmultipageprev": "← раздæры фарс",
        "imgmultipagenext": "иннæ фарс →",
        "imgmultigo": "Афтæ бакæн!",
+       "img-lang-go": "Афтæ уæд",
        "table_pager_next": "Фæдылдзог фарс",
        "table_pager_prev": "Раздæры фарс",
        "table_pager_first": "Фыццаг фарс",
        "table_pager_last": "Фæстаг фарс",
+       "table_pager_limit_submit": "Афтæ уæд",
+       "table_pager_empty": "Нæй фæстиуæг",
        "autoredircomment": "Фарс æрвыст æрцыд [[$1|{{grammar:allative|$1}}]]",
        "autosumm-new": "Ног фарс, йæ код райдайы афтæ: «$1»",
        "size-bytes": "$1 байт(ы)",
        "version-skins": "Цъар",
        "version-other": "Æндæр",
        "version-version": "($1)",
+       "version-no-ext-name": "[æнæ ном]",
        "version-license": "Лицензи",
+       "version-ext-license": "Лицензи",
+       "version-ext-colheader-version": "Верси",
+       "version-ext-colheader-license": "Лицензи",
+       "version-ext-colheader-description": "Æмбарынгæнæн",
+       "version-ext-colheader-credits": "Автортæ",
        "version-poweredby-credits": "Ацы викийæн тых радта '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
        "version-poweredby-others": "æндæртæ",
        "version-software-version": "Верси",
+       "version-entrypoints-header-url": "URL",
        "fileduplicatesearch-filename": "Файлы ном:",
        "fileduplicatesearch-submit": "Агурын",
        "specialpages": "Сæрмагонд фæрстæ",
        "specialpages-note-top": "Легендæ",
        "external_image_whitelist": " #Ныууадз ацы рæнхъ куыд у афтæ<pre>\n#Бавæр бындæр регуларон дзырды ххæйттæ (кæцы ис дыууæ слешы æхсæн //)\n#Уыдон уыдзысты æмхаст æддагон нывты URL-тимæ\n#Кæд нывы URL æмбæлы дзырдтимæ, уæд уыдзæн æвдыст куыд ныв, кæннæд та куыд æрвитæн нывмæ.\n#Рæнхъытæ, кæдон байдайынц #-йæ сты нымад куыд хъуыдытæ\n#Дамгъæ уавæр (стыр æви гыццыл) уæлдай у\n\n#Æвæр регуларон дзырдтæ ацы рæнхъы фæстæ. Ныууадз ацы рæнхъ куыд у афтæ</pre>",
        "tag-filter": "[[Special:Tags|Тегты]] фæрсудзæн:",
+       "tag-filter-submit": "Фæрсудзæн",
+       "tags-active-yes": "Гъо",
+       "tags-active-no": "Нæ",
        "tags-edit": "ивын",
+       "tags-delete": "схафын",
+       "tags-activate": "скусын кæнын",
+       "tags-delete-reason": "Аххос:",
+       "tags-activate-reason": "Аххос:",
+       "tags-activate-submit": "Скусын кæнын",
+       "tags-edit-reason": "Аххос:",
        "compare-page1": "Фарс 1",
        "compare-page2": "Фарс 2",
        "compare-rev1": "Фæлтæр 1",
        "compare-rev2": "Фæлтæр 2",
        "compare-submit": "Абарын",
        "htmlform-selectorother-other": "Æндæр",
+       "htmlform-no": "Нæ",
+       "htmlform-yes": "Гъо",
        "logentry-delete-delete": "$1 схафта фарс $3",
        "logentry-delete-restore": "$1 рацарæзта фарс $3",
+       "revdelete-summary-hid": "ивды афыст æмбæхст у",
+       "revdelete-uname-hid": "æмбæхст фæсномыг",
        "rightsnone": "(нæй)",
        "revdelete-summary": "ивддзинады мидис",
+       "feedback-back": "Фæстæмæ",
        "feedback-cancel": "Ныууадзын",
        "feedback-close": "Æххæст",
+       "feedback-error-title": "Рæдыд",
+       "feedback-error1": "Рæдыд: Æнæзонгæ фæстиуæг API-йæ",
+       "feedback-error2": "Рæдыд: Ивд нæ фæрæстмæ",
+       "feedback-error3": "Рæдыд: API дзуапп нæ дæтты",
        "feedback-message": "Фыстæг:",
        "feedback-subject": "Сæр:",
+       "feedback-submit": "Арвитын",
+       "feedback-thanks-title": "Бузныг!",
+       "feedback-useragent": "Браузер:",
        "searchsuggest-search": "Агурын",
+       "searchsuggest-containing": "йæ мидæг ис...",
+       "api-error-badaccess-groups": "Ацы викимæ файлтæ бавгæныны бар дæм нæй.",
+       "api-error-filename-tooshort": "Файлы ном æгæр цыбыр у.",
+       "api-error-filetype-banned": "Файлы хуыз ивæргонд у.",
        "api-error-missingparam": "Мидæггаг рæдыд: Курдиаты параметртæ нæй.",
        "api-error-missingresult": "Мидæггаг рæдыд: Нæ рауадис сбæрæг кæнын къопи кæнын куыд бантыстис.",
        "api-error-mustbeloggedin": "Ды хъуамæ системæмæ хызт уай, цæмæй файлтæ æвгæнай.",
        "duration-decades": "$1 {{PLURAL:$1|дæсадз|дæсадзы}}",
        "duration-centuries": "$1 {{PLURAL:$1|æнус|æнусы}}",
        "duration-millennia": "$1 {{PLURAL:$1|мин аз|мин азы}}",
+       "limitreport-cputime": "Процессоры рæстæг спайда",
+       "limitreport-cputime-value": "$1 {{PLURAL:$1|секунда|секунды}}",
+       "expand_templates_output": "Фæстиуæг",
        "expand_templates_ok": "Афтæ уæд!",
+       "expand_templates_remove_comments": "Сыхал æмбарынгæнæн",
        "expand_templates_preview": "Разæркаст",
+       "pagelang-select-lang": "Æвзагæвзарæн",
+       "right-pagelang": "Фарсы æвзаг ивын",
+       "action-pagelang": "фарсы æвзаг ивын",
+       "mediastatistics": "Медиа-статистикæ",
+       "mediastatistics-header-unknown": "Æнæбæрæг",
+       "mediastatistics-header-audio": "Аудио",
+       "mediastatistics-header-video": "Видео",
+       "mediastatistics-header-office": "Офис",
+       "mediastatistics-header-text": "Текст",
+       "json-error-syntax": "Синтаксисы рæдыд",
        "special-characters-group-latin": "Латинаг",
        "special-characters-group-latinextended": "Латинаг, уæрæхгонд",
        "special-characters-group-ipa": "IPA",
index 094b703..5fa42b8 100644 (file)
        "tog-norollbackdiff": "Pomiń pokazywanie zmian po użyciu funkcji „cofnij”",
        "tog-useeditwarning": "Ostrzegaj mnie, gdy opuszczam stronę edycji bez zapisania zmian",
        "tog-prefershttps": "Zawsze używaj bezpiecznego połączenia po zalogowaniu",
-       "underline-always": "zawsze",
-       "underline-never": "nigdy",
+       "underline-always": "Zawsze",
+       "underline-never": "Nigdy",
        "underline-default": "według ustawień skórki lub przeglądarki",
        "editfont-style": "Styl czcionki w polu edycyjnym:",
-       "editfont-default": "domyślny przeglądarki",
+       "editfont-default": "Domyślna przeglądarka",
        "editfont-monospace": "czcionka o stałej szerokości",
        "editfont-sansserif": "czcionka bezszeryfowa",
        "editfont-serif": "czcionka szeryfowa",
        "qbmyoptions": "Moje strony",
        "faq": "FAQ",
        "faqpage": "Project:FAQ",
-       "actions": "Działania",
+       "actions": "Akcje",
        "namespaces": "Przestrzenie nazw",
        "variants": "Warianty",
        "navigation-heading": "Menu nawigacyjne",
        "errorpagetitle": "Błąd",
-       "returnto": "Wróć do strony $1.",
+       "returnto": "Wróć do $1.",
        "tagline": "Z {{GRAMMAR:D.lp|{{SITENAME}}}}",
        "help": "Pomoc",
        "search": "Szukaj",
        "talkpage": "Dyskusja",
        "talkpagelinktext": "dyskusja",
        "specialpage": "Strona specjalna",
-       "personaltools": "Osobiste",
-       "articlepage": "Artykuł",
+       "personaltools": "Narzędzia osobiste",
+       "articlepage": "Pokaż zawartość strony",
        "talk": "Dyskusja",
        "views": "Wyświetleń",
        "toolbox": "Narzędzia",
-       "userpage": "Strona użytkownika",
-       "projectpage": "Strona projektu",
-       "imagepage": "Strona pliku",
+       "userpage": "Pokaż stronę użytkownika",
+       "projectpage": "Pokaż stronę projektu",
+       "imagepage": "Pokaż stronę pliku",
        "mediawikipage": "Strona komunikatu",
        "templatepage": "Strona szablonu",
-       "viewhelppage": "Strona pomocy",
+       "viewhelppage": "Pokaż stronę pomocy",
        "categorypage": "Strona kategorii",
        "viewtalkpage": "Strona dyskusji",
        "otherlanguages": "W innych językach",
        "portal-url": "Project:Portal społeczności",
        "privacy": "Zasady zachowania poufności",
        "privacypage": "Project:Zasady zachowania poufności",
-       "badaccess": "Niewłaściwe uprawnienia",
+       "badaccess": "Błąd uprawnień",
        "badaccess-group0": "Nie masz uprawnień wymaganych do wykonania tej operacji.",
        "badaccess-groups": "Wykonywanie tej operacji zostało ograniczone do użytkowników w {{PLURAL:$2|grupie|jednej z grup:}} $1.",
        "versionrequired": "Wymagane MediaWiki w wersji $1",
        "nstab-image": "Plik",
        "nstab-mediawiki": "Komunikat",
        "nstab-template": "Szablon",
-       "nstab-help": "Pomoc",
+       "nstab-help": "Strona pomocy",
        "nstab-category": "Kategoria",
        "nosuchaction": "Brak takiej operacji",
        "nosuchactiontext": "Działanie określone w adresie URL jest nieprawidłowe.\nMożliwe przyczyny to literówka w adresie, nieprawidłowy link lub błąd w oprogramowaniu {{GRAMMAR:D.lp|{{SITENAME}}}}.",
        "missingarticle-diff": "(różnica: $1, $2)",
        "readonly_lag": "Baza danych została automatycznie zablokowana na czas potrzebny do wykonania synchronizacji zmian między serwerem głównym i serwerami pośredniczącymi.",
        "internalerror": "Błąd wewnętrzny",
-       "internalerror_info": "Błąd wewnętrzny – $1",
+       "internalerror_info": "Błąd wewnętrzny: $1",
        "internalerror-fatal-exception": "Krytyczny wyjątek typu \"$1\"",
        "filecopyerror": "Nie można skopiować pliku „$1” do „$2”.",
        "filerenameerror": "Nie można zmienić nazwy pliku „$1” na „$2”.",
        "directorynotreadableerror": "Ścieżka \"$1\" nie jest odczytywalna.",
        "filenotfound": "Nie można znaleźć pliku „$1”.",
        "unexpected": "Nieoczekiwana wartość „$1”=„$2”.",
-       "formerror": "Błąd – nie można wysłać formularza",
+       "formerror": "Błąd: nie można wysłać formularza",
        "badarticleerror": "Dla tej strony ta operacja nie może być wykonana.",
        "cannotdelete": "Nie można usunąć strony lub pliku „$1”.\nMożliwe, że zostało to już zrobione przez kogoś innego.",
        "cannotdelete-title": "Strona „$1” nie może być usunięta.",
        "no-null-revision": "Nie można utworzyć zerowej wersji strony \"$1\"",
        "badtitle": "Niepoprawny tytuł",
        "badtitletext": "Podano niepoprawny tytuł strony. Prawdopodobnie jest pusty lub zawiera znaki, których użycie jest zabronione.",
+       "title-invalid-empty": "Żądany tytuł strony jest pusty lub zawiera tylko nazwę przestrzeni nazw.",
+       "title-invalid-utf8": "Żądany tytuł strony zawiera błędny ciąg znaków UTF-8.",
+       "title-invalid-interwiki": "Podany tytuł strony zawiera link interwiki, który nie może być używany w tytułach.",
+       "title-invalid-talk-namespace": "Żądany tytuł strony dotyczy strony dyskusji, która nie istnieje.",
+       "title-invalid-characters": "Żądany tytuł strony zawiera błędne znaki: „$1”.",
+       "title-invalid-magic-tilde": "Żądany tytuł strony zawiera błędną, magiczną sekwencję tyld (<nowiki>~~~</nowiki>)",
+       "title-invalid-too-long": "Podany tytuł strony jest zbyt długi. Nie może mieć więcej niż  {{PLURAL:$1|bajt|bajty|bajtów}} w kodowaniu UTF-8.",
+       "title-invalid-leading-colon": "Podany tytuł strony zawiera na początku nieprawidłowy dwukropek.",
        "perfcached": "Poniższe dane są kopią z pamięci podręcznej i mogą być nieaktualne. W pamięci podręcznej {{PLURAL:$1|znajduje|znajdują|znajduje}} się maksymalnie {{PLURAL:$1|jeden wynik|$1 wyniki|$1 wyników}}.",
        "perfcachedts": "Poniższe dane są kopią z pamięci podręcznej. Ostatnia aktualizacja odbyła się $1. W pamięci podręcznej {{PLURAL:$4|znajduje|znajdują|znajduje}} się maksymalnie {{PLURAL:$4|jeden wynik|$4 wyniki|$4 wyników}}.",
        "querypage-no-updates": "Uaktualnienia dla tej strony są obecnie wyłączone. Znajdujące się tutaj dane nie zostaną odświeżone.",
        "exception-nologin-text-manual": "Musisz $1 aby mieć dostęp do tej strony lub akcji.",
        "virus-badscanner": "Zła konfiguracja – nieznany skaner antywirusowy ''$1''",
        "virus-scanfailed": "skanowanie nieudane (błąd $1)",
-       "virus-unknownscanner": "nieznany program antywirusowy",
+       "virus-unknownscanner": "nieznany antivirus:",
        "logouttext": "'''Nie jesteś już zalogowany.'''\n\nZauważ, że do momentu wyczyszczenia pamięci podręcznej przeglądarki niektóre strony mogą wyglądać tak, jakbyś wciąż był zalogowany.",
        "welcomeuser": "Witaj, $1!",
-       "welcomecreation-msg": "Twoje konto zostało utworzone.\nNie zapomnij dostosować [[Special:Preferences|preferencji]].",
+       "welcomecreation-msg": "Twoje konto zostało utworzone.\nMożesz zmienić swoje [[Special:Preferences|preferencje]], jeśli chcesz.",
        "yourname": "Nazwa {{GENDER:|użytkownika|użytkowniczki}}",
        "userlogin-yourname": "Nazwa użytkownika",
        "userlogin-yourname-ph": "Wprowadź swoją nazwę użytkownika",
        "userlogin-yourpassword": "Hasło",
        "userlogin-yourpassword-ph": "Wpisz swoje hasło",
        "createacct-yourpassword-ph": "Wprowadź hasło",
-       "yourpasswordagain": "Powtórz hasło",
+       "yourpasswordagain": "Powtórz hasło:",
        "createacct-yourpasswordagain": "Potwierdź hasło",
        "createacct-yourpasswordagain-ph": "Wprowadź hasło jeszcze raz",
-       "remembermypassword": "Zapamiętaj moje hasło na tym komputerze (maksymalnie przez $1 {{PLURAL:$1|dzień|dni}})",
+       "remembermypassword": "Zapamiętaj moje logowanie na tym komputerze (maksymalnie przez $1 {{PLURAL:$1|dzień|dni}})",
        "userlogin-remembermypassword": "Nie wylogowuj mnie",
        "userlogin-signwithsecure": "Użyj bezpiecznego połączenia",
-       "yourdomainname": "Twoja domena",
+       "yourdomainname": "Twoja domena:",
        "password-change-forbidden": "Nie można zmieniać haseł na tej wiki.",
-       "externaldberror": "Wystąpił błąd zewnętrznej bazy autentyfikacyjnej lub nie posiadasz uprawnień koniecznych do aktualizacji zewnętrznego konta.",
+       "externaldberror": "Wystąpił błąd autentyfikacyjnej bazy danych lub nie posiadasz uprawnień koniecznych do aktualizacji zewnętrznego konta.",
        "login": "Zaloguj się",
        "nav-login-createaccount": "Logowanie i rejestracja",
        "userlogin": "Logowanie i rejestracja",
        "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",
        "createacct-realname": "Prawdziwe imię i nazwisko (opcjonalnie)",
-       "createaccountreason": "Powód",
+       "createaccountreason": "Powód:",
        "createacct-reason": "Powód",
        "createacct-reason-ph": "Dlaczego zakładasz kolejne konto",
        "createacct-captcha": "Kontrola bezpieczeństwa",
        "userexists": "Wybrana przez Ciebie nazwa użytkownika jest już zajęta.\nWybierz inną nazwę użytkownika.",
        "loginerror": "Błąd logowania",
        "createacct-error": "Błąd tworzenia konta",
-       "createaccounterror": "Nie można utworzyć konta $1",
+       "createaccounterror": "Nie można utworzyć konta: $1",
        "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 ich odblokowaniu.",
+       "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.",
        "noname": "To nie jest poprawna nazwa użytkownika.",
        "loginsuccesstitle": "Zalogowano pomyślnie",
        "pt-userlogout": "Wyloguj",
        "php-mail-error-unknown": "Wystąpił nieznany błąd w funkcji PHP mail()",
        "user-mail-no-addy": "Próba wysłania e‐maila bez adresu odbiorcy",
-       "user-mail-no-body": "Próbowano wysłać e-mail o psutej lub krótkiej treści.",
+       "user-mail-no-body": "Próbowano wysłać email o pustej lub krótkiej treści.",
        "changepassword": "Zmiana hasła",
        "resetpass_announce": "Aby zakończyć proces logowania, musisz ustawić nowe hasło.",
        "resetpass_text": "<!-- Dodaj tekst -->",
        "resetpass_header": "Zmień hasło dla swojego konta",
-       "oldpassword": "Stare hasło",
-       "newpassword": "Nowe hasło",
-       "retypenew": "Powtórz nowe hasło",
+       "oldpassword": "Stare hasło:",
+       "newpassword": "Nowe hasło:",
+       "retypenew": "Powtórz nowe hasło:",
        "resetpass_submit": "Ustaw hasło i zaloguj się",
        "changepassword-success": "Twoje hasło zostało pomyślnie zmienione!",
        "changepassword-throttled": "Ostatnio zbyt wiele razy próbowałeś zalogować się na to konto.\nOdczekaj $1, zanim ponowisz próbę.",
        "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.",
        "passwordreset": "Wyczyść hasło",
-       "passwordreset-text-one": "Wypełnij ten formularz, aby zresetować 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.}}",
        "passwordreset-legend": "Zresetuj hasło",
        "passwordreset-disabled": "Na tej wiki wyłączono możliwość resetowania haseł.",
        "passwordreset-emaildisabled": "Wysyłanie emaili zostało wyłączone na tej wiki",
        "passwordreset-username": "Nazwa użytkownika:",
-       "passwordreset-domain": "Domena",
+       "passwordreset-domain": "Domena:",
        "passwordreset-capture": "Czy pokazywać treść wiadomości e‐mail?",
        "passwordreset-capture-help": "Jeśli zaznaczysz to pole, zobaczysz treść wiadomości e‐mail z tymczasowym hasłem, w tej samej formie w jakiej jest wysyłana do użytkownika.",
        "passwordreset-email": "Adres e‐mail:",
        "showpreview": "Pokaż podgląd",
        "showdiff": "Podgląd zmian",
        "blankarticle": "<strong>Uwaga:</strong> Strona, którą masz zamiar utworzyć jest pusta.\nJeżeli klikniesz \"{{int:savearticle}}\" ponownie, strona zostanie utworzona bez jakiejkolwiek treści.",
-       "anoneditwarning": "<strong>Uwaga:</strong> Nie jesteś zalogowany. Twój adres IP będzie publicznie widoczny jeśli zrobisz dowolną zmianę. Jeśli <strong>[$1 zalogujesz się]</strong> lub <strong>[$2 stworzysz konto]</strong>, Twoje zmiany zostaną przypisane do konta, wraz z innymi korzyściami.",
+       "anoneditwarning": "<strong>Uwaga:</strong> Nie jesteś zalogowany. Jeśli wykonasz jakąkolwiek zmianę, Twój adres IP będzie widoczny publicznie. Jeśli <strong>[$1 zalogujesz się]</strong> lub <strong>[$2 utworzysz konto]</strong>, Twoje zmiany zostaną przypisane do konta, wraz z innymi korzyściami.",
        "anonpreviewwarning": "''Nie jesteś zalogowany. Jeśli zapiszesz zmiany, w historii edycji strony zostanie umieszczony Twój adres IP.''",
        "missingsummary": "'''Uwaga:''' Nie wprowadz{{GENDER:|iłeś|iłaś|ono}} opisu zmian.\nJeżeli nie chcesz go wprowadzać, naciśnij przycisk „Zapisz” jeszcze raz.",
        "selfredirect": "<strong>Ostrzeżenie:</strong> Przekierowujesz tę stronę do niej samej.\nByć może został przez Ciebie wybrany zły cel przekierowania lub edytujesz niewłaściwą stronę.\nJeżeli ponownie klikniesz „{{int:savearticle}}”, przekierowanie zostanie utworzone.",
        "userrights-lookup-user": "Zarządzaj grupami użytkownika",
        "userrights-user-editname": "Wprowadź nazwę użytkownika",
        "editusergroup": "Edytuj grupy użytkownika",
-       "editinguser": "Zmiana uprawnień użytkownika '''[[User:$1|$1]]''' $2",
+       "editinguser": "Zmiana uprawnień {{GENDER:$1|użytkownika|użytkowniczki}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Edytuj grupy użytkownika",
        "saveusergroups": "Zapisz",
        "userrights-groupsmember": "Należy do:",
        "recentchangeslinked-toolbox": "Zmiany w linkowanych",
        "recentchangeslinked-title": "Zmiany w linkowanych z „$1”",
        "recentchangeslinked-summary": "Poniżej znajduje się lista ostatnich zmian na stronach linkowanych z podanej strony (lub we wszystkich stronach należących do podanej kategorii).\nStrony z [[Special:Watchlist|listy obserwowanych]] są '''wytłuszczone'''.",
-       "recentchangeslinked-page": "Tytuł strony",
+       "recentchangeslinked-page": "Tytuł strony:",
        "recentchangeslinked-to": "Pokaż zmiany nie na stronach linkowanych, a na stronach linkujących do podanej strony",
        "upload": "Prześlij plik",
        "uploadbtn": "Prześlij plik",
        "sp-deletedcontributions-contribs": "wkład",
        "linksearch": "Wyszukiwarka linków zewnętrznych",
        "linksearch-pat": "Wzorzec wyszukiwania",
-       "linksearch-ns": "Przestrzeń nazw",
+       "linksearch-ns": "Przestrzeń nazw:",
        "linksearch-ok": "Szukaj",
        "linksearch-text": "Można użyć symboli wieloznacznych jak „*.wikipedia.org”.\nWymaga podania co najmniej domeny najwyższego poziomu np. „*.org”.<br />\n{{PLURAL:$2|Obsługiwany protokół|Obsługiwane protokoły}}: <code>$1</code> (jeśli nie podano, domyślny to http://).",
        "linksearch-line": "$1 link na stronie $2",
        "emailfrom": "Od",
        "emailto": "Do",
        "emailsubject": "Temat",
-       "emailmessage": "Wiadomość",
+       "emailmessage": "Wiadomość:",
        "emailsend": "Wyślij",
        "emailccme": "Wyślij mi kopię mojej wiadomości.",
        "emailccsubject": "Kopia Twojej wiadomości do $1: $2",
        "undeletedpage": "'''Odtworzono stronę $1.'''\n\nZobacz [[Special:Log/delete|rejestr usunięć]], jeśli chcesz przejrzeć ostatnie operacje usuwania i odtwarzania stron.",
        "undelete-header": "Zobacz [[Special:Log/delete|rejestr usunięć]], aby sprawdzić ostatnio usunięte strony.",
        "undelete-search-title": "Przeszukiwanie usuniętych stron",
-       "undelete-search-box": "Szukaj usuniętych stron",
-       "undelete-search-prefix": "Strony o tytułach rozpoczynających się od",
+       "undelete-search-box": "Wyszukiwanie usuniętych stron",
+       "undelete-search-prefix": "Strony o tytułach rozpoczynających się od:",
        "undelete-search-submit": "Szukaj",
        "undelete-no-results": "Nie znaleziono wskazanych stron w archiwum usuniętych.",
        "undelete-filename-mismatch": "Nie można odtworzyć wersji pliku z datą $1: niezgodność nazwy pliku",
        "undelete-error-long": "Napotkano błędy przy odtwarzaniu pliku:\n\n$1",
        "undelete-show-file-confirm": "Czy na pewno chcesz zobaczyć usuniętą wersję pliku „<nowiki>$1</nowiki>” z $2 $3?",
        "undelete-show-file-submit": "Tak",
-       "namespace": "Przestrzeń nazw",
+       "namespace": "Przestrzeń nazw:",
        "invert": "odwróć wybór",
        "tooltip-invert": "Zaznacz to pole, aby ukryć zmiany na stronach w wybranych przestrzeniach nazw (oraz związanych z nimi innymi przestrzeniami nazw, jeśli zaznaczono)",
        "tooltip-whatlinkshere-invert": "Zaznacz to pole, aby ukryć linki do stron z wybranej przestrzeni nazw.",
        "confirm-watch-top": "Dodać tę stronę do listy obserwowanych?",
        "confirm-unwatch-button": "OK",
        "confirm-unwatch-top": "Usunąć tę stronę z listy obserwowanych?",
-       "percent": "$1&#160;%",
+       "percent": "$1%",
        "quotation-marks": "„$1”",
        "imgmultipageprev": "← poprzednia strona",
        "imgmultipagenext": "następna strona →",
        "feedback-error1": "Błąd – nierozpoznana odpowiedź API",
        "feedback-error2": "Błąd – edycja nieudana",
        "feedback-error3": "Błąd – brak odpowiedzi API",
+       "feedback-error4": "Błąd: Nie można wysłać danego tytułu opinii",
        "feedback-message": "Wiadomość:",
        "feedback-subject": "Temat",
        "feedback-submit": "Wyślij",
index eaf8552..046dc83 100644 (file)
        "no-null-revision": "Impossìbil creé na neuva revision veuida për la pàgina « $1 »",
        "badtitle": "Tìtol nen giust",
        "badtitletext": "Ël tìtol ëd la pàgina che a l'ha ciamà a l'era nen giust, veuid, o un tìtol nen lijà ëd fasson giusta antra le lenghe o antra le wiki. A podrìa conten-e un o pi caràter ch'a peulo nen esse dovrà ant ij tìtoj.",
+       "title-invalid-empty": "Ël tìtol ëd la pàgina ciamà a l'é veuid o a conten mach ël nòm ëd lë spassi nominal.",
+       "title-invalid-utf8": "Ël tìtol ëd la pàgina ciamà a conten na sequensa UTF-8 pa bon-a",
+       "title-invalid-interwiki": "Ël tìtol ëd la pàgina ciamà a conten n'anliura antërwiki che a peul pa esse dovrà ant ij tìtoj.",
+       "title-invalid-talk-namespace": "Ël tìtol ëd la pàgina ciamà as arferiss a na pàgina 'd discussion ch'a esist pa.",
+       "title-invalid-characters": "Ël tìtol ëd la pàgina ciamà a conten dij caràter nen bon: \"$1\".",
+       "title-invalid-relative": "Ël tìtol a l'ha n'adrëssa relativa. Ij tìtoj relativ ëd pàgina (./, ../) a van nen bin, përchè soens a son introvàbij quand a son gestì dai navigador ëd j'utent.",
+       "title-invalid-magic-tilde": "Ël tìtol ëd la pàgina ciamà a conten na sequensa màgica ëd tilde pa bon-a (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Ël tìtol ëd la pàgina ciamà a l'é tròp longh. A dev nen esse pi longh che $1 {{PLURAL:$1|byte}} an codìfica UTF-8.",
+       "title-invalid-leading-colon": "Ël tìtol ëd la pàgina ciamà a conten na vìrgola pa bon-a al prinsipi.",
        "perfcached": "Ij dat sì-dapress a sòn ëstàit memorisà an local e a peulo esse nen agiornà. Al pi {{PLURAL:$1|n'arzultà a l'é disponìbil|$1 arzultà a son disponìbij}} ant la memòria local.",
        "perfcachedts": "Ij dat sì-dapress a son ëstàit memorisà an local, e a son ëstàit agiornà l'ùltima vira ël $1. Al pi {{PLURAL:$4|n'arzultà a l'é disponìbil|$4 arzultà a son disponìbij}} ant la memòria local.",
        "querypage-no-updates": "J'agiornament për sta pàgina-sì për adess a marcio nen. Ij dat ambelessì a saran nen agiornà.",
        "userrights-lookup-user": "Gestion dle partìe d'utent",
        "userrights-user-editname": "Che a buta në stranòm:",
        "editusergroup": "Modifiché le partìe d'utent",
-       "editinguser": "Modìfiché ij drit d'utent ëd l'utent '''[[User:$1|$1]]''' $2",
+       "editinguser": "Modìfiché ij drit d'utent ëd l'{{GENDER:$1|utent}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Modifiché le partìe dl'utent",
        "saveusergroups": "Salvé le partìe d'utent",
        "userrights-groupsmember": "A l'é andrinta a:",
        "tags-edit-title": "Modifiché le tichëtte",
        "tags-edit-manage-link": "Gestì le tichëtte",
        "tags-edit-revision-selected": "{{PLURAL:$1|Revision selessionnà}} ëd [[:$2]]:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Event}} dël registr selessionà:",
+       "tags-edit-revision-legend": "Gionta o gava dle tichëtte da {{PLURAL:$1|sta revision|tute le $1 revision}}",
+       "tags-edit-logentry-legend": "Gionta o gava dle tichëtte da {{PLURAL:$1|sta vos ëd registr|tute le $1 vos ëd registr}}",
+       "tags-edit-existing-tags": "Tichëtte esistente:",
+       "tags-edit-existing-tags-none": "\"Gnun-e\"",
+       "tags-edit-new-tags": "Tichëtte neuve:",
+       "tags-edit-add": "Gionta ste tichëtte:",
+       "tags-edit-remove": "Gava ste tichëtte:",
+       "tags-edit-remove-all-tags": "(gava tute le tichëtte)",
+       "tags-edit-chosen-placeholder": "Selessioné chèiche tichëtte",
+       "tags-edit-chosen-no-results": "Gnun-a tichëtta corispondente trovà",
+       "tags-edit-reason": "Rason:",
+       "tags-edit-revision-submit": "Apliché le modìfiche a {{PLURAL:$1|costa revision|$1 revision}}",
+       "tags-edit-logentry-submit": "Apliché le modìfiche a {{PLURAL:$1|costa vos ëd registr|$1 vos ëd registr}}",
+       "tags-edit-success": "Le modìfiche a son ëstàite aplicà për da bin.",
+       "tags-edit-failure": "Le modìfiche a peulo pa esse aplicà:\n$1",
+       "tags-edit-nooldid-title": "Version nen spessificà",
+       "tags-edit-nooldid-text": "O bin a l'ha specificà gnun-e revision andoa eseguì costa fonsion, opura la version specificà a esist nen.",
+       "tags-edit-none-selected": "Për piasì selession-a almanch na tichëtta da gionté o gavé.",
        "comparepages": "Confronté dle pàgine",
        "compare-page1": "Pàgina 1",
        "compare-page2": "Pàgina 2",
        "logentry-managetags-delete": "$1 {{GENDER:$2|a l'ha dëscancelà}} la tichëtta « $4 » (gavà da {{PLURAL:$5|na revision o vos d'argistr|$5 revision o vos d'argistr}})",
        "logentry-managetags-activate": "$1 {{GENDER:$2|a l'ha ativà}} la tichëtta \"$4\" për l’usagi dj'utent e dij trigomiro",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|a l'ha disativà}} la tichËtta « $4 » pour l’usagi dj'utent e dij trigomiro",
+       "log-name-tag": "Registr ëd le tichëtte",
+       "log-description-tag": "Sta pàgina a mostra quand che j'utent a l'ha giontà o gavà dle [[Special:Tags|tichëtte]] da revision sìngole o da vos ëd registr. Ël registr a lista nen j'assion ëd tichëttadura quand che a càpito com part ëd na modìfica, scancelassion o assion parìe.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|a l'ha giontà}} {{PLURAL:$7|la tichëtta|le tichëtte}} $6 a la revision $4 dla pàgina $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|a l'ha giontà}} {{PLURAL:$7|la tichëtta|le tichëtte}} $6 a la vos ëd registr $5 dla pàgina $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|a l'ha gavà}} {{PLURAL:$9|la tichëtta|le tichëtte}} $8 da la revision $4 dla pàgina $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|a l'ha gavà}} {{PLURAL:$9|la tichëtta|le tichëtte}} $8 da la vos ëd registr $5 dla pàgina $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|a l'ha modificà}} le tichëtte dla revision $4 dla pàgina $3 ({{PLURAL:$7|giontà}} $6; {{PLURAL:$9|gavà}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|a l'ha modificà}} le tichëtte dla vos ëd registr $5 dla pàgina $3 ({{PLURAL:$7|giontà}} $6; {{PLURAL:$9|gavà}} $8)",
        "rightsnone": "(gnun)",
        "revdelete-summary": "resumé dla modìfica",
        "feedback-adding": "Gionta dij coment a la pàgina...",
        "log-name-pagelang": "Argistr dij cangiament ëd lenga",
        "log-description-pagelang": "Cost-sì a l'é n'argistr dij cangiament ant le lenghe dle pàgine.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|a l'ha cangià}} la lenga dla pàgina $3 da $4 a $5.",
-       "default-skin-not-found": "Tension! La pel predeterminà për soa wiki, definìa an <code dir=\"ltr\">$wgDefaultSkin</code> tanme <code>$1</code>, a l'é nen disponìbil.\n\nSoa anstalassion a smija anclude le pel sì-dapress. Ch'a vëdda [https://www.mediawiki.org/wiki/Manual:Skin_configuration ël manual ëd configurassion dle pel] për d'anformassion su coma abiliteje e serne cola predefinìa.\n\n$2\n\n; S'a l'ha pen-a anstalà MediaWiki:\n: A l'é probàbil che a l'abia anstalalo da git, o diretaman dal còdes sorgiss an n'àutra manera. A l'é normal. Ch'a preuva a anstalé dle pej da [https://www.mediawiki.org/wiki/Category:All_skins la lista dle pel ëd mediawiki.org], parèj:\n:* Dëscariand l' [https://www.mediawiki.org/wiki/Download archivi tar ëd l'anstalador], ch'a comprend vàire pel e estension. A peul copié e ancolé la lista dle <code>pel/</code> d'ambelelà.\n:* Dëscariand j'archivi tar për pel sìngole da [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clonand un dij depòsit <code>mediawiki/skins/*</code> via git ant la lista <code dir=\"ltr\">skins/</code> ëd soa anstalassion ëd MediaWiki.\n: Sòn a dovrìa nen antërferì con sò depòsit git si chiel a l'é un dësvlupador ëd MediaWiki.\n\n; S'a l'ha pen-a agiornà MediaWiki:\n: MediaWiki 1.24 e pi neuv a përmet pi nen an automàtich le pel anstalà (ch'a vëdda [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery manual an sla dëscuverta automàtica dle pel]). A peul copié le linie sì-dapress an <code>LocalSettings.php</code> për abilité tute le pel ch'a son anstalà al moment:\n\n<pre dir=\"ltr\">$3</pre>\n\n; S'a l'ha pen-a modificà <code>LocalSettings.php</code>:\n: Ch'a verìfica torna ël nòm ëd dle pej për evité ij boro.",
-       "default-skin-not-found-no-skins": "Darmagi! La pel dë stàndard për soa wiki, definìa da <code>$wgDefaultSkin</code> tanme <code>$1</code>, a l'é nen disponìbil.\n\nChiel a l'ha gnun-a pel anstalà.\n\n; S'a l'ha pen-a anstalà o agiornà MediaWiki:\n: A l'é probàbil ch'a l'abia falo da git, o diret dal còdes sorgiss an n'àutra manera. A l'é normal. MediaWiki 1.24 e pi recent doesn't a ancludo gnun-a pel ant ël depòsit prinsipal. Ch'a preuva a anstalé chèiche pel da [https://www.mediawiki.org/wiki/Category:All_skins la lista dle pel ëd mediawiki.org]:\n:* Dëscariand [https://www.mediawiki.org/wiki/Download l'archivi tar dl'anstalador], ch'a comprend vàire pel e estension. A peul copié e ancolé la lista <code>skins/</code> da là.\n:* Dëscariand j'archivi tar ëd pel sìngole da [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clonand un dij depòsit <code>mediawiki/skins/*</code> via git ant la lista <code dir=\"ltr\">skins/</code> ëd soa anstalassion ëd MediaWiki.\n: Fé sòn a dovrìa nen antërferì con sò depòsit git se chiel a l'é un dësvlupador ëd MediaWiki. Ch'a vëdda [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: ël manual dla configurassion dle pel] për d'anformassion su coma ativé le pel e serne cola predefinìa.",
+       "default-skin-not-found": "Tension! La pel predeterminà për soa wiki, definìa an <code dir=\"ltr\">$wgDefaultSkin</code> tanme <code>$1</code>, a l'é nen disponìbil.\n\nSoa anstalassion a smija anclude {{PLURAL:$4|la pel|le pej}} sì-dapress. Ch'a vëdda [https://www.mediawiki.org/wiki/Manual:Skin_configuration ël manual ëd configurassion dle pel] për d'anformassion su coma abilite{{PLURAL:$4|la|je}} e serne cola predefinìa.\n\n$2\n\n; S'a l'ha pen-a anstalà MediaWiki:\n: A l'é probàbil che a l'abia anstalalo da git, o diretaman dal còdes sorgiss an n'àutra manera. A l'é normal. Ch'a preuva a anstalé dle pej da [https://www.mediawiki.org/wiki/Category:All_skins la lista dle pel ëd mediawiki.org], parèj:\n:* Dëscariand l' [https://www.mediawiki.org/wiki/Download archivi tar ëd l'anstalador], ch'a comprend vàire pel e estension. A peul copié e ancolé la lista dle <code>pel/</code> d'ambelelà.\n:* Dëscariand j'archivi tar për pel sìngole da [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clonand un dij depòsit <code>mediawiki/skins/*</code> via git ant la lista <code dir=\"ltr\">skins/</code> ëd soa anstalassion ëd MediaWiki.\n: Sòn a dovrìa nen antërferì con sò depòsit git si chiel a l'é un dësvlupador ëd MediaWiki.\n\n; S'a l'ha pen-a agiornà MediaWiki:\n: MediaWiki 1.24 e pi neuv a përmet pi nen an automàtich le pel anstalà (ch'a vëdda [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery manual an sla dëscuverta automàtica dle pel]). A peul copié {{PLURAL:$5|la linia|le linie}} sì-dapress an <code>LocalSettings.php</code> për abilité {{PLURAL:$5|la pel|tute le pej}} ch'a son anstalà al moment:\n\n<pre dir=\"ltr\">$3</pre>\n\n; S'a l'ha pen-a modificà <code>LocalSettings.php</code>:\n: Ch'a verìfica torna ël nòm ëd dle pej për evité ij boro.",
+       "default-skin-not-found-no-skins": "Darmagi! La pel dë stàndard për soa wiki, definìa da <code>$wgDefaultSkin</code> tanme <code>$1</code>, a l'é nen disponìbil.\n\nChiel a l'ha gnun-a pel anstalà.\n\n; S'a l'ha pen-a anstalà o agiornà MediaWiki:\n: A l'é probàbil ch'a l'abia falo da git, o diret dal còdes sorgiss an n'àutra manera. A l'é normal. MediaWiki 1.24 e pi recent doesn't a ancludo gnun-a pel ant ël depòsit prinsipal. Ch'a preuva a anstalé chèiche pel da [https://www.mediawiki.org/wiki/Category:All_skins la lista dle pel ëd mediawiki.org]:\n:* Dëscariand [https://www.mediawiki.org/wiki/Download l'archivi tar dl'anstalador], ch'a comprend vàire pel e estension. A peul copié e ancolé la lista <code>skins/</code> da là.\n:* Dëscariand j'archivi tar ëd pel sìngole da [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Dovré Git për dëscarié le pej].\n: Fé sòn a dovrìa nen antërferì con sò depòsit git se chiel a l'é un dësvlupador ëd MediaWiki. Ch'a vëdda [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: ël manual dla configurassion dle pel] për d'anformassion su coma ativé le pel e serne cola predefinìa.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (abilità)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''disabilità''')",
        "mediastatistics": "Statìstiche an sij mojen",
index fbbf303..472daa4 100644 (file)
        "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|چھڈی گئی}}",
+       "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}}:ورتن آلے",
        "grouppage-autoconfirmed": "{{ns:project}}:اپنے آپ پکا ہون والا ورتن والا",
        "grouppage-bot": "{{ns:project}}:بوٹ",
        "listusers-editsonly": "تبدیلیاں کرن والے ورتن والے ای دسو۔",
        "listusers-creationsort": "بنان تریخ توں وکھریاں کرو۔",
        "usereditcount": "$1 {{PLURAL:$1|تبدیلی|تبدیلیاں}}",
-       "usercreated": "{{جنس:$3|بنائی گئی}} نوں $1 تے $2",
+       "usercreated": "{{GENDER:$3|بنائی گئی}} نوں $1 تے $2",
        "newpages": "نویں صفے",
        "newpages-username": "ورتن آلا ناں:",
        "ancientpages": "سب توں پرانے صفے",
        "unlockdbsuccesstext": "ڈیٹابیس دا تالا کھل گیا اے۔",
        "lockfilenotwritable": "ڈیٹابیس فائل تے لکھت نئیں ہوسکدی۔\nڈیٹابیس نوں کھولنا یا تالا لانا اے ویب سرور دی لکھت دی لوڑ اے۔",
        "databasenotlocked": "ڈیٹابیس تے تالا نئیں لگیا۔",
-       "lockedbyandtime": "(توں {{جنس:$1|$1}} نوں $2 وجے $3)",
+       "lockedbyandtime": "(توں {{GENDER:$1|$1}} نوں $2 وجے $3)",
        "move-page": "$1 لے چلو",
        "move-page-legend": "صفہ لے چلو",
        "movepagetext": "تھلے دتے گۓ فـارم نوں ورت کے  اس صفے دا ناں دوبارہ رکھیا جا سکدا اے، نال ہی اس نال جڑے تاریخچہ وی نۓ ناں نال جڑ جاۓ گی۔ اسدے بعد توں اس صفے دا پرانا ناں ، نۓ ناں ول جائیگا۔ تسیں ریڈائریکٹ تازہ کرسکدے اپنے آپ اصل صفے ول\nاگ تسیں اینج ناں کرو تے فیر پک نال [[Special:DoubleRedirects|دوہرا]]  چیک کرو یا [[Special:BrokenRedirects|ٹٹ ریڈائریکٹاں ول]] \n\nاے پکا بنانا تواڈی ذمہ داری اے کہ سارے جوڑ ٹھیک صفاں دی جانب رہنمائی کردے رین۔\n\nاے گل وی ذہن نشین کرلو کہ اگر نۓ منتخب کردہ ناں دا صفحہ پہلاں توں ہی موجود ہو تو ہوسکدا اے کہ صفحہ منتقل نہ ہوۓ ؛ ہاں اگر پہلے توں موجود صفحہ خالی اے  یا اوہ صرف اک -- ریڈائیرکٹ کیتا گیا صفحہ -- ہوۓ تے اس دے نال کوئی تاریخچہ جڑیا نہ ہووے تے ناں بدلیا جاۓ گا۔ گویا، کسی غلطی دی صورت وچ تسی صفحہ نوں دوبارہ اسی پرانے ناں دی جانب منتقل کرسکدے اوہ تے اس طرح پہلے توں موجود کسی صفحہ وچ کوئی مٹانا یا غلطی نئیں ہوۓ گی۔\n\n''' خبردار '''\n کسی اہم تے مشہور صفحہ دے ناں دی تبدیلی، اچانک تے پریشانی آلی گل وی ہوسکدی اے اس لئی؛ تبدیلی توں پہلاں مہربانی کر کے یقین کرلو کہ تسی اسدے نتائج جاندے او۔",
        "htmlform-selectorother-other": "ہور",
        "sqlite-has-fts": "$1 پوری لکھت کھوج مدد نال",
        "sqlite-no-fts": "$1 بنا کسے لکھت مدد دے",
-       "logentry-delete-delete": "$1 {{جنس:$2|مٹایا}} صفہ $3",
-       "logentry-delete-restore": "$1 {{جنس:$2|بچایا}} صفہ $3",
+       "logentry-delete-delete": "$1 {{GENDER:$2|مٹایا}} صفہ $3",
+       "logentry-delete-restore": "$1 {{GENDER:$2|بچایا}} صفہ $3",
        "logentry-delete-event": "$1 پلٹے وکھالہ {{PLURAL:$5|اک لاگ ایونٹ|$5 لاگ ایونٹس}} تے $3: $4",
        "logentry-delete-revision": "$1 پلٹی وکھالہ {{PLURAL:$5|اک ریوین|$5 ریویناں}} صفے تے $3: $4",
-       "logentry-delete-event-legacy": "$1 {{جنس:$2|بدلی}} لاگ کماں دا وکھالہ $3 تے",
-       "logentry-delete-revision-legacy": "$1 {{جنس:$2|بدلی}} ریوین دا وکھالہ صفہ $3",
-       "logentry-suppress-delete": "$1 {{جنس:$2|دبایا}} صفہ $3",
+       "logentry-delete-event-legacy": "$1 {{GENDER:$2|بدلی}} لاگ کماں دا وکھالہ $3 تے",
+       "logentry-delete-revision-legacy": "$1 {{GENDER:$2|بدلی}} ریوین دا وکھالہ صفہ $3",
+       "logentry-suppress-delete": "$1 {{GENDER:$2|دبایا}} صفہ $3",
        "logentry-suppress-event": "$1 لکا کے بدلی {{PLURAL:$5|اک لاگ کم|$5 لاگ کم}} دا وکھالہ $3 تے: $4",
        "logentry-suppress-revision": "$1 لکا کے بدلی {{PLURAL:$5|ریوین|$5 ریویناں}} دا وکھالہ $3 تے: $4",
        "logentry-suppress-event-legacy": "$1 لکا کے بدلیا لاگ کماں دا وکھالہ $3",
-       "logentry-suppress-revision-legacy": "$1 لکا کے {{جنس:$2|بدلی}} ریویناں دا وکھالہ صفہ $3 تے۔",
+       "logentry-suppress-revision-legacy": "$1 لکا کے {{GENDER:$2|بدلی}} ریویناں دا وکھالہ صفہ $3 تے۔",
        "revdelete-content-hid": "مواد لکیا",
        "revdelete-summary-hid": "لکھت سمری لکی",
        "revdelete-uname-hid": "ورتن والے دا ناں لکیا",
        "revdelete-uname-unhid": "ورتن والے دا ناں ںئیں لکیا",
        "revdelete-restricted": "مکھیاں تے روکاں لگیاں",
        "revdelete-unrestricted": "مکھیاں تے روکاں لتھیاں",
-       "logentry-move-move": "$1 {{جنس:$2|پلٹی}} صفہ $3 توں $4",
-       "logentry-move-move-noredirect": "$1 {{جنس:$2|پلٹی}} صفہ $3 توں $4 اک ڑیڈائرکٹ چھڈے بنا",
-       "logentry-move-move_redir": "$1 {{جنس:$2|پلٹی}} صفہ $3 توں $4 ریڈائرکٹ",
-       "logentry-move-move_redir-noredirect": "$1 {{جنس:$2|پلٹی}} صفہ $3 توں $4 اک ریڈائرکٹ دے بنا کسے ریڈائرکٹ دتیاں",
-       "logentry-patrol-patrol": "$1 {{جنس:$2|نشان لگی}} ریوین $4 صفہ $3 ویکھی گئی۔",
-       "logentry-patrol-patrol-auto": "اپنے آپ $1 {{جنس:$2|نشان لگی}} $4 ریوین صفہ $3 دی ویکھی گئی",
-       "logentry-newusers-newusers": "$1 {{جنس:$2|بنایا گیا}} اک ورتن والا کھاتہ۔",
-       "logentry-newusers-create": "$1 {{جنس:$2|بنایا}} اک ورتن والا کھاتہ",
-       "logentry-newusers-create2": "$1 {{جنس:$2|بنایا}} {{جنس:$4|اک ورتن کھاتہ}} $3",
-       "logentry-newusers-autocreate": "کھاتہ $1 اپنے آپ ای {{جنس:$2|بنایا گیا}} بنایا گیا۔",
+       "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 ریڈائرکٹ",
+       "logentry-move-move_redir-noredirect": "$1 {{GENDER:$2|پلٹی}} صفہ $3 توں $4 اک ریڈائرکٹ دے بنا کسے ریڈائرکٹ دتیاں",
+       "logentry-patrol-patrol": "$1 {{GENDER:$2|نشان لگی}} ریوین $4 صفہ $3 ویکھی گئی۔",
+       "logentry-patrol-patrol-auto": "اپنے آپ $1 {{GENDER:$2|نشان لگی}} $4 ریوین صفہ $3 دی ویکھی گئی",
+       "logentry-newusers-newusers": "$1 {{GENDER:$2|بنایا گیا}} اک ورتن والا کھاتہ۔",
+       "logentry-newusers-create": "$1 {{GENDER:$2|بنایا}} اک ورتن والا کھاتہ",
+       "logentry-newusers-create2": "$1 {{GENDER:$2|بنایا}} {{GENDER:$4|اک ورتن کھاتہ}} $3",
+       "logentry-newusers-autocreate": "کھاتہ $1 اپنے آپ ای {{GENDER:$2|بنایا گیا}} بنایا گیا۔",
        "rightsnone": "(کوئی وی نئیں)",
        "revdelete-summary": "لکھائی دا خلاصہ",
        "feedback-adding": "مشورہ  صفے تے دیو۔۔۔۔۔۔۔",
index cce9a83..564c09c 100644 (file)
@@ -22,6 +22,7 @@
        "tog-watchdefault": "زما کتنلړ کې دې هغه مخونه او دوتنې ورگډې شي چې زه يې سموم",
        "tog-watchmoves": "زما کتنلړ کې دې هغه مخونه او دوتنې ورگډې شي چې زه يې لېږدوم",
        "tog-watchdeletion": "زما کتنلړ کې دې هغه مخونه او دوتنې ورگډې شي چې زه يې ړنگوم",
+       "tog-watchrollback": "هغه مخونه چې ما پکې پر شاتمبونې ترسره کړي زما کتنلړ کې ورگډول",
        "tog-minordefault": "په تلواليزه توگه ټول سمونونه واړه په نخښه کول",
        "tog-previewontop": "د سمون بکس نه دمخه مخکتنه ښکاره کول",
        "tog-previewonfirst": "په لومړي سمون کې مخکتنه ښکاره کول",
        "jumptonavigation": "گرځښت",
        "jumptosearch": "پلټل",
        "view-pool-error": "اوبخښۍ، دم گړۍ پالنگران د ډېر بارېدو ستونزې سره مخامخ شوي.\nډېر زيات کارنان د همدې مخ د کتلو په هڅه کې دي.\nلطفاً د دې مخ د کتلو د بيا هڅې نه دمخه يو څو شېبې صبر وکړۍ.\n\n$1",
+       "generic-pool-error": "بخښنه غواړو، دم مهال پر پالنگرانو ډېر کار روان دی.\nخورا زيات کارنان د سرچينو د کتلو هڅه کوي.\nسرچينو ته د بيالاسرسي د هڅو دمخه لطفاً يو څو شېبې تم شئ.",
+       "pool-timeout": "د تړلو لپاره د تمېدنې د وخت پای",
        "pool-queuefull": "د بهير صف ډک دی",
        "pool-errorunknown": "ناجوته ستونزه",
        "poolcounter-usage-error": "د کارېدلو تېروتنه: $1",
        "hidetoc": "پټول",
        "collapsible-collapse": "پرځول",
        "collapsible-expand": "غځول",
+       "confirmable-confirm": "آيا {{GENDER:$1|تاسو}} ډاډه ياست؟",
        "confirmable-yes": "هو",
        "confirmable-no": "نه",
        "thisisdeleted": "$1 کتل او يا بيازېرمل؟",
        "nospecialpagetext": "<strong>تاسې د يو ناسم ځانگړي مخ غوښتنه کړې.</strong>\n\nتاسې کولای شی چې د سمو ځانگړو مخونو لړليک په [[Special:SpecialPages|{{int:specialpages}}]] کې ومومۍ.",
        "error": "تېروتنه",
        "databaseerror": "د ډاټابېز تېروتنه",
+       "databaseerror-text": "د توکبنسټ د يوې گروېږنې ستونزه رامېنځ ته شوې.\nکېدای شي دا په ساوترې کې د يوې تېروتنې په سبب وي.",
+       "databaseerror-textcl": "د توکبنسټ يوې گروېږنې کې ستونزه رامېنځ ته شوه.",
        "databaseerror-query": "تپوس: $1",
        "databaseerror-function": "کړنه: $1",
        "databaseerror-error": "تېروتنه: $1",
        "missing-article": "توکبنسټ د \"$1\" $2 په نامه د ورکړ شوي مخ متن چې بايد موندلی يې وای، و نه موند.\n\nدا ستونزه اکثراً د يوه ړنگ شوي مخ د پېښليک يا توپير د تړنو په څارلو کې رامېنځ ته کېږي.\n\nکه چېرته داسې نه وي، نو بيا کېدای شي چې په ساوترې کې کومه تېروتنه رابرسېره شوې وي.\nلطفاً د دې چارې راپور د URL په نښه کولو سره يوه [[Special:ListUsers/sysop|پازوال]] ته ورکړۍ.",
        "missingarticle-rev": "(مخليدنه#: $1)",
        "missingarticle-diff": "(توپير: $1، $2)",
+       "readonly_lag": "د اصلي توکبنسټ سره د فرعي توکبنسټ پالنگرانو د همغاړېتوب پخاطر دا توکبنسټ په خپلکاره توگه تړل شوی",
        "internalerror": "کورنۍ تېروتنه",
        "internalerror_info": "کورنۍ تېروتنه: $1",
        "filecopyerror": "د \"$1\" په نامه دوتنه مو \"$2\" ته و نه لمېسلای شوه.",
        "cannotdelete-title": "د \"$1\" مخ نشي ړنگېدای",
        "badtitle": "ناسم سرليک",
        "badtitletext": "ستاسې د غوښتل شوي مخ سرليک سم نه وو، يا مو د سرليک ځای تش وو او يا هم د ژبو خپلمنځي تړنې څخه يا د ويکي گانو خپلمنځي سرليکونو څخه يو ناسم توری مو پکې کارولی وي.\nکېدای شي چې ستاسې په ورکړ شوي سرليک کې يو يا څو داسې توري وي چې د سرليک په توگه بايد و نه کارېږي.",
+       "title-invalid-interwiki": "په سرليک کې يوه ويکي خپلمنځي تړنه ده",
        "querypage-no-updates": "د دې مخ اوسمهالېدنې ناچارن شوي.\nپه ښکاره توگه د دې ځای اومتوک به نه وي تازه شوي.",
        "viewsource": "سرچينه کتل",
        "viewsource-title": "د $1 سرچينه کتل",
        "mypreferencesprotected": "تاسې د خپلو غوره توبونو د سمولو اجازه نلرۍ.",
        "ns-specialprotected": "ځانگړي مخونو کې سمون او بدلون نه شی راوستلای.",
        "titleprotected": "د [[User:$1|$1]] لخوا د دې سرليک د جوړېدلو مخنيوی شوی.\nاو د دې کړنې سبب \"''$2''\" ورکړ شوی.",
+       "invalidtitle-knownnamespace": "ناسم سرليک د \"$2\" نومتشيال او \"$3\" متن سره",
+       "invalidtitle-unknownnamespace": "ناسم سرليک د ناڅرگند نومتشيال شمېرې $1 او \"$2\" متن سره",
        "exception-nologin": "غونډال کې نه ياست ننوتي",
+       "exception-nologin-text": "د دې مخ او همدې کړنې لاسرسي لپاره لطفاً غونډال ته ورننوځئ.",
+       "exception-nologin-text-manual": "د دې مخ او همدې کړنې لاسرسي لپاره $1 اړين کار دی.",
        "virus-badscanner": "بده سازېدنه: د ويروس ناڅرگنده ځيرڅار: ''$1''",
        "virus-scanfailed": "ځيرڅارنه بريالۍ نه شوه (کوډ $1)",
        "virus-unknownscanner": "ناڅرگند ضدويروس:",
        "userlogin-resetlink": "د ننوتلو مالومات مو هېر شوي؟",
        "userlogin-resetpassword-link": "پټنوم مو هېر شوی؟",
        "userlogin-helplink2": "په ننوتلو کې مرسته",
+       "userlogin-loggedin": "تاسې له پخوا څخه د {{GENDER:$1|$1}} په نوم ننوتلي ياست.\nد لاندينۍ فورمې په کارولو سره تاسې د بل کارن په توگه ننوتلی شی.",
        "userlogin-createanother": "بل گڼون جوړول",
        "createacct-emailrequired": "برېښليک پته",
        "createacct-emailoptional": "برېښليک پته (اختياري)",
        "wrongpassword": "ناسم پټنوم مو ليکلی. لطفاً يو ځل بيا يې وليکۍ.",
        "wrongpasswordempty": "تاسې پټنوم نه دی ليکلی. لطفاً سر له نوي يې وليکۍ.",
        "passwordtooshort": "بايد چې پټنوم مو لږ تر لږه {{PLURAL:$1|1 توری|$1 توري}} وي.",
+       "passwordtoolong": "پټنوم مو بايد له {{PLURAL:$1|1 توري|$1 تورو}} څخه اوږد نه وي.",
        "password-name-match": "ستاسې پټنوم بايد ستاسې د کارن-نوم سره توپير ولري.",
        "password-login-forbidden": "د دې کارن-نوم او پټنوم په کارېدنې بنديز دی.",
        "mailmypassword": "پټنوم بياپرځايول",
        "pt-login-button": "ننوتل",
        "pt-createaccount": "گڼون جوړول",
        "pt-userlogout": "وتل",
+       "php-mail-error-unknown": "د PHP برېښليک () کړنو کې ناڅرگنده ستونزه.",
        "user-mail-no-addy": "د يوې برېښليک پتې پرته د برېښليک لېږلو هڅه شوې.",
        "changepassword": "پټنوم بدلول",
+       "resetpass_announce": "د ننوتلو د بشپړېدلو لپاره بايد تاسې يو نوی پټنوم وټاکئ.",
        "resetpass_header": "د گڼون پټنوم بدلول",
        "oldpassword": "زوړ پټنوم:",
        "newpassword": "نوی پټنوم:",
        "retypenew": "نوی پټنوم بيا وليکه:",
        "resetpass_submit": "پټنوم مو وټاکۍ او بيا غونډال ته ورننوځۍ",
        "changepassword-success": "ستاسې پټنوم په برياليتوب سره بدل شو!",
+       "changepassword-throttled": "تاسې څو واره هڅه کړې چې غونډال ته ورننوځۍ.\nلطفاً د بيا هڅې نه مخکې $1 شېبې تم شۍ.",
        "resetpass_forbidden": "پټنومونه مو نه شي بدلېدلای",
        "resetpass-no-info": "دې مخ ته د لاسرسي لپاره بايد غونډال کې ورننوځۍ.",
        "resetpass-submit-loggedin": "پټنوم بدلول",
        "resetpass-submit-cancel": "ناگارل",
        "resetpass-wrong-oldpass": "لنډمهال او يا هم اوسنی پټنوم مو ناسم دی",
+       "resetpass-recycled": "لطفاً پټنوم مو داسې وټاکئ چې له اوسني پټنوم سره يې توپير وي.",
+       "resetpass-temp-emailed": "تاسې د يو لنډمهاله کوډ په مرسته چې دربرېښليک شوی و، ننوتلي ياست. \nد ننوتلو د بشپړولو لپاره بايد ځانته يو نوی پټنوم دلته وټاکئ:",
        "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}}\" ټک ورکړئ.",
        "passwordreset": "پټنوم بياپرځايول",
+       "passwordreset-text-one": "د برېښليک له لارې د لنډمهاله پټنوم د ترلاسه کولو لپاره دا فورمه ډکه کړئ.",
        "passwordreset-text-many": "{{PLURAL:$1|د برېښليک له لارې د يو لنډمهاله پټنوم د ترلاسه کولو لپاره له لاندينيو ډگرونو څخه يو يې ډک کړۍ.}}",
        "passwordreset-legend": "پټنوم بياپرځايول",
        "passwordreset-disabled": "په دې ويکي پټنوم بياپرځای کولو کړنه ناچارنه شوې.",
+       "passwordreset-emaildisabled": "په دې ويکي باندې د برېښليک ځانتياوې ناچارنې شوي دي.",
        "passwordreset-username": "کارن-نوم:",
        "passwordreset-domain": "شپول:",
        "passwordreset-capture": "د پايلې برېښليک کتل غواړې؟",
        "changeemail-password": "ستاسې د{{SITENAME}} پټنوم:",
        "changeemail-submit": "برېښليک بدلول",
        "changeemail-throttled": "تاسې څو واره هڅه کړې چې غونډال ته ورننوځۍ.\nلطفاً د بيا هڅې نه مخکې $1 شېبې تم شۍ.",
+       "resettokens-token-label": "$1 (اوسنی ارزښت: $2)",
        "bold_sample": "زغرد متن",
        "bold_tip": "زغرد متن",
        "italic_sample": "رېوند متن",
        "missingcommenttext": "لطفاً تبصره لاندې وليکۍ.",
        "summary-preview": "د لنډيز مخليدنه:",
        "subject-preview": "سکالو/سرليک مخکتنه:",
+       "previewerrortext": "د بدلونونو د مخليدنو په وخت کې مو يوه ستونزه رامېنځ ته شوه.",
        "blockedtitle": "پر کارن بنديز لگېدلی",
        "blockedtext": "'''ستاسې د کارن-نوم يا آی پي پتې مخنيوی شوی.'''\n\nهمدا بنديز د $1 له خوا پر تاسې لږېدلی. او د همدې کړنې سبب ''$2'' دی.\n\n* د بنديز د پېل نېټه: $8\n* د بنديز د پای نېټه: $6\n* بنديزونه دي پر: $7\n\nتاسې کولای شی چې د $1 او يا هم د يو بل [[{{MediaWiki:Grouppage-sysop}}|پازوال]] سره اړيکې ټينگې کړی او د بنديز ستونزې مو هوارې کړی.\nتاسې نه شی کولای چې د 'کارن ته برېښلک لېږل' کړنې نه گټه پورته کړی تر څو چې تاسې د خپل گڼون په [[Special:Preferences|غوره توبونو]] کې يوه کره برېښليک پته نه وي ځانگړې کړې او تر دې بريده چې پر تاسې د هغې د کارولو بنديز نه وي لگېدلی.\nستاسې د دم مهال آی پي پته $3 ده، او ستاسې د بنديز پېژند #$5 دی. مهرباني وکړۍ د خپلې يادونې پر مهال د دغو دوو څخه د يوه او يا هم د دواړو ورکول مه هېروۍ.",
        "autoblockedtext": "په خپلکاريزه توگه ستاسې پر IP پتې بنديز لگېدلی، دا د دې په خاطر چې ستاسې پته د بل چا له خوا چې $1 پرې بنديز لگولی، کارېدلې.\nاو د بنديز سبب يې دا دی:\n\n:''$2''\n\n* د بنديز د پيل نېټه: $8\n* د بنديز د پای نېټه: $6\n* د بنديز د موخې سړی: $7\n\nتاسې کولای شی چې د $1 سره او يا هم د [[{{MediaWiki:Grouppage-sysop}}|پازوالانو]]  له ډلې نه يو چا سره اړيکې ټينگې کړی او د بنديز په اړه مو ورسره خبرې وکړۍ.\n\nدا مه هېروۍ چې تاسې د \"کارن ته برېښليک لېږل\" له اسانتياوؤ نه ګټه نه شی اخيستلای تر څو چې ستاسې د نومليکنې په وخت کې يا [[Special:Preferences|ستاسې د غوره توبونو په امستنو]] کې يوه کره برېښليک پته نه وي ځانگړې شوې، او يا هم د برېښليک لېږلو د چارو په کارولو مو بنديز نه وي لگېدلی.\n\nستاسې IP پته $3 ده او ستاسې د بنديز پېژند #$5 دی.\nد بنديز اړونده د اړيکو نيولو په وخت کې لطفاً د پورتني مالوماتو يادونه وکړۍ.",
        "blockednoreason": "هېڅ سبب نه دی ورکړ شوی",
        "whitelistedittext": "د مخونو د سمون لپاره بايد $1 کېښکاږۍ.",
+       "confirmedittext": "د سمونونو څخه دمخه مو خپله برېښليک پته تاييد کړئ.\nلطفاً خپله برېښليک پته مو د [[Special:Preferences|کارن غوره توبونو]] له لارې ثبته او تاييده کړئ.",
        "nosuchsectiontitle": "برخه و نه موندل شوه",
        "nosuchsectiontext": "تاسې د يوې داسې برخې د سمون هڅه کړې چې تر اوسه پورې نشته.\nکېدای هغه مهال چې تاسې د دې مخ نه کتنه کوله، همدا برخه کوم بل ځای ته لېږدل شوې او يا هم ړنګه شوې وي.",
        "loginreqtitle": "لومړی غونډال ته ورننوځۍ",
        "content-model-text": "ساده متن",
        "content-model-javascript": "جاواسکرېپټ",
        "content-model-css": "CSS",
+       "content-json-empty-object": "تش څيز",
        "post-expand-template-inclusion-warning": "'''گواښنه:''' دا کينډۍ د خپل ټاکلي بريد نه ډېره لويه ده.\nځينې کينډۍ به په کې گډې نه شي.",
        "post-expand-template-inclusion-category": "هغه مخونه چې په کې د کارېدلو کينډيو شمېر له ټاکلې کچې ډېر دی",
        "post-expand-template-argument-warning": "'''گواښنه:''' دا مخ لږ تر لږه د يوې کينډۍ عاملين لري چې بې حده لوی دی.\nدا عاملين ړنگ شول.",
        "history-feed-empty": "ستاسې غوښتلی مخ نه شته.\nکېدای شي چې دا له ويکي نه ړنگ شوی وي، او يا هم په بل نوم بدل شوی وي.\nتاسې په دې ويکي د اړوندو نوؤ مخونو لپاره [[Special:Search|د پلټنې هڅه وکړۍ]].",
        "rev-deleted-comment": "(د سمون لنډيز لرې شو)",
        "rev-deleted-user": "(کارن-نوم ليري شوی)",
+       "rev-deleted-text-permission": "د دې مخ بڼه <strong>ړنگه شوه</strong>.\nد دې مخ اړونده تفصيل په [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ړنگون يادښت] کې موندلی شی.",
        "rev-delundel": "ښکارېدنه بدلول",
        "rev-showdeleted": "ښکاره کول",
        "revisiondelete": "د ړنگولو/ناړنگولو مخکتنې",
        "revdelete-no-file": "ځانگړې شوې دوتنه نشته.",
        "revdelete-show-file-submit": "هو",
+       "revdelete-selected-text": "د [[:$2]] {{PLURAL:$1|ټاکلې بڼه|ټاکلې بڼې}}:",
+       "revdelete-selected-file": "د [[:$2]] {{PLURAL:$1|ټاکلې دوتنې بڼه|ټاکلې دوتنې بڼې}}",
+       "logdelete-selected": "{{PLURAL:$1|ټاکلي يادښت پېښه|ټاکلي يادښت پېښې}}:",
+       "revdelete-text-text": "ړنگې شوې بڼې به لا تر اوسه پورې د مخ پېښليک کې ښکاري، خو د هغو ځينو برخو ته به عام خلک لاسرسی و نه لري.",
        "revdelete-legend": "د ښکارېدنې محدوديتونه ټاکل",
        "revdelete-hide-text": "د مخکتنې متن",
        "revdelete-hide-image": "د دوتنې مېنځپانگه پټول",
        "revdelete-radio-same": "(مه بدلوه)",
        "revdelete-radio-set": "پټ",
        "revdelete-radio-unset": "ښکاره",
+       "revdelete-unsuppress": "له بيازېرمل شويو بڼو څخه محدوديتونه لرې کول",
        "revdelete-log": "سبب:",
+       "revdelete-submit": "{{PLURAL:$1|ټاکلې بڼه|ټاکلو بڼو}} کې پلي کول",
+       "revdelete-success": "د بڼې ښکارېدنه په برياليتوب سره هممهاله شوه.",
+       "revdelete-failure": "د بڼې ښکارېدنه نه شي هممهاله کېدای:\n$1",
+       "logdelete-success": "د ښکارېدنې يادښت په برياليتوب سره جوړ شو.",
+       "logdelete-failure": "د ښکارېدنې يادښت نه شي جوړېدلی:\n$1",
        "revdel-restore": "ښکارېدنه بدلول",
        "pagehist": "د مخ پېښليک",
        "deletedhist": "ړنگېدلی پېښليک",
        "revdelete-edit-reasonlist": "د ړنگولو سببونه سمول",
        "revdelete-offender": "د مخکتنې ليکوال:",
        "mergehistory": "د مخ پېښليکونه سره يوځای کول",
+       "mergehistory-box": "د دوه مخونو بڼې سره اخږل:",
        "mergehistory-from": "د سرچينې مخ:",
        "mergehistory-into": "د موخې مخ:",
+       "mergehistory-list": "د اخږلو وړ سمون پېښليک",
+       "mergehistory-go": "اخږلو وړ سمونونه ښکاره کول",
        "mergehistory-submit": "بڼې سره يوځای کول",
+       "mergehistory-success": "د [[:$1]] $3 {{PLURAL:$3|بڼه|بڼې}} په برياليتوب سره و [[:$2]] کې {{PLURAL:$3|واخږل شو|واخږل شول}}.",
        "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": "د سرچينې او موخې مخونه بايد يو ډول نه وي",
        "mergehistory-reason": "سبب:",
        "mergelog": "د اخږلو يادښت",
        "revertmerge": "بېلول",
+       "mergelogpagetext": "دلته لاندې د يو مخ د پېښليک تازه اخږنه بل مخ ته د يو لړليک په توگه راغلی.",
        "history-title": "د \"$1\" د مخليدنې پېښليک",
        "difference-title": "د \"$1\" د بڼو تر مېنځ توپير",
        "difference-title-multipage": "د \"$1\" او \"$2\" مخونو تر مېنځ توپير",
        "prefs-rc": "وروستي بدلونونه",
        "prefs-watchlist": "کتنلړ",
        "prefs-editwatchlist": "کتنلړ سمول",
+       "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-max": "د شمېر اکثر بريد: 1000",
        "right-block": "پر نورو کارنانو د سمون د آسانتياوؤ بنديز لگول",
        "right-blockemail": "پر يوه کارن د برېښليک لېږلو بنديز لگول",
        "right-hideuser": "پر يوه کارن-نوم بنديز لگول او له خلکو نه يې پټول",
+       "right-unblockself": "په خپل ځان بنديز لرې کول",
        "right-protect": "د ژغورنې کچه بدلول او ځوړاوبېزه ژغورلي مخونه سمول",
        "right-editinterface": "د کارن ليدنمخ سمول",
        "right-editusercssjs": "د نورو کارنانو د CSS او JS (جاوا سکرېپټ) دوتنې سمول",
        "right-editusercss": "د نورو کارنانو د CSS دوتنې سمول",
        "right-edituserjs": "د نورو کارنانو د JS (جاوا سکرېپټ) دوتنې سمول",
+       "right-editmyusercss": "خپل د CSS دوتنې سمول",
+       "right-editmyuserjs": "خپل د جاواسکرېپټ دوتنې سمول",
        "right-viewmywatchlist": "خپل کتنلړ کتل",
        "right-editmyprivateinfo": "خپل شخصي مالومات سمول (بېلگه. برېښليک پته، آرنوم)",
        "right-editmyoptions": "خپل غوره توبونه سمول",
+       "right-import": "له نورو ويکي گانو څخه مخونه راغوښتل",
+       "right-importupload": "د يوې پورته شوې دوتنې څخه مخونه راغوښتل",
+       "right-patrol": "د نورو سمونونه څارل شوي په نښه کول",
        "right-unwatchedpages": "د ناکتلو مخونو يو لړليک کتل",
        "right-userrights": "د کارن ټولې رښتې سمول",
        "right-userrights-interwiki": "په نورو ويکي گانو د نورو کارنانو  کارن-رښتې سمول",
        "action-createpage": "مخونه جوړول",
        "action-createtalk": "د خبرو اترو مخونه جوړول",
        "action-createaccount": "دا گڼون جوړول",
+       "action-history": "د دې مخ پېښليک کتل",
        "action-minoredit": "دا سمون وړوکی په نخښه کول",
        "action-move": "همدا مخ لېږدول",
+       "action-move-subpages": "همدا مخ او څېرمه مخونه لېږدول",
        "action-move-categorypages": "د وېشنيزې مخونه لېږدول",
        "action-movefile": "همدا دوتنه لېږدول",
        "action-upload": "همدا دوتنه پورته کول",
+       "action-reupload": "د همدې دوتنې دپاسه ليکل",
        "action-upload_by_url": "دا دوتنه له يوه URL نه پورته کول",
        "action-writeapi": "د API کښنه کارول",
        "action-delete": "همدا مخ ړنگول",
        "action-suppressionlog": "دا شخصي يادښت کتل",
        "action-block": "پر دې کارن د سمون د آسانتياوؤ بنديز لگول",
        "action-protect": "د دې مخ د ژغورنې کچه بدلول",
+       "action-import": "له بل ويکي څخه مخونه راغوښتل",
+       "action-importupload": "د يوې پورته شوې دوتنې څخه مخونه راغوښتل",
+       "action-patrol": "د نورو سمونونه څارل شوي په نښه کول",
+       "action-autopatrol": "خپل سمونونه څارل شوي په نښه کول",
        "action-unwatchedpages": "د ناکتلو مخونو لړليک کتل",
        "action-mergehistory": "د دې مخ پېښليک سره اخږل",
        "action-userrights": "د کارن ټولې رښتې سمول",
        "action-viewmywatchlist": "خپل کتنلړ کتل",
        "action-viewmyprivateinfo": "خپل شخصي مالومات کتل",
        "action-editmyprivateinfo": "خپل شخصي مالومات سمول",
+       "action-managechangetags": "د توکبنسټ څخه نښلنونه جوړول او ړنگول",
        "nchanges": "$1 {{PLURAL:$1|بدلون|بدلونونه}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|له وروستنۍ کتنې راپدېخوا}}",
        "enhancedrc-history": "پېښليک",
        "ignorewarnings": "هر ډول گواښونه له پامه غورځول",
        "minlength1": "پکار ده چې د دوتنو نومونه لږ تر لږه يو حرف ولري.",
        "illegalfilename": "د دوتنې نوم \"$1\" په داسې تورو ليکلی دی چې د یو مخ د سرليک په توگه يې پرېښه نه ده شوې.\nمهرباني وکړۍ د دوتنې نوم مو بدل کړۍ او بيا مو د دوتنې د پورته کولو هڅه وکړۍ.",
+       "filename-toolong": "د دوتنو نومونه بايد له 240 بايټونو څخه اوږده نه وي.",
        "badfilename": "ددغې دوتنې نوم \"$1\" ته واوړېده.",
+       "filetype-mime-mismatch": "د دوتنې شاتاړی \".$1\" د ($2) دوتنې پېژندلې MIME ډول سره ورته نه دی.",
        "filetype-badmime": "د MIME بڼې \"$1\" د دوتنو د پورته کولو اجازه نشته.",
+       "filetype-bad-ie-mime": "دا دوتنه نه شي پورته کېدلی دا ځکه چې انټرنټ اېکسپلورر دا دوتنه د \"$1\" په توگه پېژني، او دا يوه ناپرېښل شوې دوتنه ده چې خطرناکه گڼل کېږي.",
+       "filetype-missing": "دا دوتنه هېڅ شاتاړی نه لري (لکه \".jpg\").",
        "empty-file": "کومه دوتنه چې تاسې دلته سپارلې هغه تشه ده.",
        "file-too-large": "کومه دوتنه چې تاسې دلته سپارلې ډېره لويه ده.",
        "filename-tooshort": "د دوتنې نوم ډېر لنډ دی",
        "filetype-banned": "په دې ډول دوتنې بنديز دی.",
+       "verification-error": "دا دوتنه د دوتنې تاييدېدنې څخه بريالۍ و نه وتله.",
        "illegal-filename": "د دوتنې نوم نه دی پرېښل شوی.",
        "unknown-error": "يوه ناڅرګنده تېروتنه رامېنځته شوه.",
        "tmp-create-error": "لنډمهاله دوتنه جوړېدای نه شي",
        "uploadwarning": "د پورته کولو گواښ",
        "savefile": "دوتنه خوندي کړه",
        "uploaddisabled": "پورته کول ناچارن شوي",
+       "copyuploaddisabled": "د يو آر اېل له مخې پورته کېدل ناچارن شوي.",
        "uploaddisabledtext": "د دوتنې پورته کولو آسانتياوې ناچارن شوي.",
+       "php-uploaddisabledtext": "په PHP کې دوتنې پورته کېدنې ناچارن شوي.\nلطفاً د file_uploads امستنې وڅارئ.",
+       "uploadscripted": "دا دوتنه د HTML يا سکرېپټ کوډ لري چې کېدای شي په تېروتنه د جال يو کتنمل له خوا تفسير شوې وي.",
+       "uploadscriptednamespace": "د SVG دا دوتنه يو ناقانونه نومتشيال لري \"$1\".",
+       "uploadinvalidxml": "د پورته شوې دوتنې XML نه شي تحليل کېدلی.",
        "uploadvirus": "دا دوتنه ويروس لري! تفصيل: $1",
        "upload-source": "سرچينيزه دوتنه",
        "sourcefilename": "د سرچينيزې دوتنې نوم:",
        "backend-fail-notexists": "د $1 په نوم دوتنه نشته.",
        "backend-fail-delete": "د \"$1\" دوتنه ړنګه نه شوه.",
        "backend-fail-alreadyexists": "د $1 دوتنه له پخوا نه شته.",
+       "backend-fail-store": "په \"$2\" باندې د \"$1\" دوتنه نه زېرمل کېږي.",
+       "backend-fail-copy": "د \"$1\" دوتنه و \"$2\" ته نه لمېسل کېږي.",
        "backend-fail-move": "د \"$1\" دوتنه \"$2\" ته و نه ليږدېده.",
        "backend-fail-opentemp": "لنډمهاله دوتنه و نه پرانيستل شوه.",
+       "backend-fail-writetemp": "لنډمهالې دوتنې کې نه شي ليکل کېدلی.",
+       "backend-fail-closetemp": "لنډمهاله دوتنه نه شي تړل کېدلی.",
        "backend-fail-read": "د \"$1\" دوتنه نه شي لوستل کېدای.",
        "backend-fail-create": "د \"$1\" په دوتنه کې نور څه و نه ليکل شول.",
        "zip-wrong-format": "ځانگړې شوې دوتنه يوه ZIP دوتنه نه وه.",
        "img-auth-nofile": "د $1 په نوم کومه دوتنه نشته.",
        "http-invalid-url": "ناسم URL: $1",
        "http-read-error": "د HTTP د لوستلو ستونزه.",
+       "http-timed-out": "د HTTP غوښتنې وخت اوښتی.",
        "http-curl-error": "د URL د راوستلو تېروتنه: $1",
+       "http-bad-status": "د HTTP په غوښتنه کې يوه ستونزه رامېنځ ته شوه: $1 $2",
        "upload-curl-error6": "URL ته لاسرسی و نه شو",
        "upload-curl-error28": "د پورته کېدلو د مودې پای",
        "license": "منښتليک:",
        "license-header": "منښتليک:",
        "nolicense": "هېڅ نه دي ټاکل شوي",
+       "licenses-edit": "د منښتليک خوښنې سمول",
        "license-nopreview": "(مخليدنه نشته)",
        "upload_source_file": "(ستاسې کمپيوټر کې ستاسې ټاکلې دوتنه)",
        "listfiles-delete": "ړنگول",
        "imagelinks": "د دوتنې کارېدنه",
        "linkstoimage": "دا {{PLURAL:$1|لاندينی مخ|$1 لانديني مخونه}} د همدې دوتنې سره تړنې لري:",
        "nolinkstoimage": "داسې هېڅ کوم مخ نه شته چې د دغې دوتنې سره تړنې ولري.",
+       "morelinkstoimage": "همدې دوتنې سره [[Special:WhatLinksHere/$1|نورې تړنې]] کتل.",
+       "linkstoimage-redirect": "$1 (دوتنه مخ گرځېدنه) $2",
        "duplicatesoffile": "دا لاندينۍ {{PLURAL:$1| دوتنه د همدې دوتنې غبرګونې لمېسه ده|$1 دوتنې د همدې دوتنې غبرګونې لمېسې دي}} ([[Special:FileDuplicateSearch/$2|نور تفصيل]]):",
        "sharedupload": "دا دوتنه د $1 لخوا نه ده او کېدای شي چې نورې پروژې به يې هم کاروي.",
        "sharedupload-desc-here": "دا دوتنه د $1 لخوا خپرېږې او کېدای شي چې دا په نورو پروژو هم کارېدلې وي.\nد دوتنې د کارېدنې لا نور مالومات د [$2 دوتنې د څرگندنو په مخ] کې لاندې ښودل شوی.",
        "filepage-nofile-link": "په دې نوم کومه دوتنه نشته، خو تاسې يې [$1 پورته کولی شی].",
        "uploadnewversion-linktext": "د همدغې دوتنې نوې بڼه پورته کول",
        "shared-repo-from": "د $1 لخوا",
+       "shared-repo": "يو گډ زېرمتون",
        "shared-repo-name-wikimediacommons": "ويکيمېډيا کامنز",
        "upload-disallowed-here": "تاسې د دې دوتنې دپاسه نشی ليکلی.",
        "filerevert": "$1 بيااړول",
        "unwatchedpages": "ناکتلي مخونه",
        "listredirects": "د ورگرځېدنو لړليک",
        "listduplicatedfiles": "د دوه گونو دوتنو لړليک",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]] [[$3|{{PLURAL:$2|يوه غبرگه دوتنه لري|$2 غبرگې دوتنې لري}}]].",
        "unusedtemplates": "ناکارېدلې کينډۍ",
        "unusedtemplateswlh": "نور تړنونه",
        "randompage": "ناټاکلی مخ",
        "randompage-nopages": "په لانديني {{PLURAL:$2|نوم-تشيال|نوم-تشيالونو}} کې هېڅ کوم مخ نشته: $1.",
        "randomincategory": "په وېشنيزه کې ناټاکلی مخ",
+       "randomincategory-invalidcategory": "\"$1\" د وېشنيزې يو سم نوم نه دی.",
+       "randomincategory-nopages": "د [[:Category:$1|$1]] په وېشنيزه کې مخونه نشته.",
        "randomincategory-category": "وېشنيزه:",
        "randomincategory-legend": "په وېشنيزه کې ناټاکلی مخ",
        "randomredirect": "ناټاکلی ورگرځېدنه",
+       "randomredirect-nopages": "د \"$1\" په نومتشيال کې کومې مخ گرځونې نشته.",
        "statistics": "شمار",
        "statistics-header-pages": "د مخونو شمار",
        "statistics-header-edits": "د سمونو شمار",
        "fewestrevisions": "لږ مخليدل شوي مخونه",
        "nbytes": "$1 {{PLURAL:$1|بايټ|بايټونه}}",
        "ncategories": "$1 {{PLURAL:$1|وېشنيزه|وېشنيزې}}",
+       "ninterwikis": "$1 {{PLURAL:$1|ويکي خپلمنځي|ويکي خپلمنځي}}",
        "nlinks": "$1 {{PLURAL:$1|تړنه|تړنې}}",
        "nmembers": "$1 {{PLURAL:$1|غړی|غړي}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|غړی|غړي}}",
        "nrevisions": "$1 {{PLURAL:$1|بڼه|بڼې}}",
        "nviews": "$1 {{PLURAL:$1|کتنه|کتنې}}",
        "nimagelinks": "په $1 {{PLURAL:$1|کارېدلی مخ|کارېدلي مخونه}}",
        "pager-newer-n": "{{PLURAL:$1|نوی 1|نوي $1}}",
        "pager-older-n": "{{PLURAL:$1|زوړ 1|زاړه $1}}",
        "suppress": "څارن",
+       "apihelp": "API لارښود",
+       "apihelp-no-such-module": "د \"$1\" ماډيول و نه موندل شو.",
        "booksources": "د کتاب سرچينې",
        "booksources-search-legend": "د کتابي سرچينو پلټنه",
        "booksources-search": "پلټل",
        "booksources-text": "دا لاندې د هغه وېبځايونو د تړنو لړليک دی چېرته چې نوي او زاړه کتابونه پلورل کېږي، او يا هم کېدای شي چې د هغه کتاب په هکله مالومات ولري کوم چې تاسو ورپسې لټېږۍ:",
+       "booksources-invalid-isbn": "دا ISBN چې تاسې ورکړی سم نه ښکاري؛ د تېروتنو لپاره د لمېسلو اصلي سرچينه وگورئ.",
        "specialloguserlabel": "ترسره کوونکی:",
        "speciallogtitlelabel": "موخه (سرليک يا کارن):",
        "log": "يادښتونه",
        "listgrouprights-removegroup-self-all": "خپل گڼون نه ټولې ډلې ليري کول",
        "listgrouprights-namespaceprotection-namespace": "نوم-تشيال",
        "trackingcategories": "موندونکې وېشنيزې",
+       "trackingcategories-msg": "وېشنيزه موندنه",
        "trackingcategories-name": "پيغام نوم",
+       "trackingcategories-desc": "د وېشنيزې ورگډونې معيارونه",
+       "noindex-category-desc": "دا مخ د روباټونو لخوا په ليکلړ کې نه دی راغلی دا ځکه چې دا مخ د <code><nowiki>__NOINDEX__</nowiki></code> کوډگريزه وييکه لري او په هغه نومتشيال کې دی چې رپی يې پرېښل شوی.",
+       "trackingcategories-nodesc": "کومې څرگندونې نشته.",
+       "trackingcategories-disabled": "وېشنيزه ناچارنه شوه",
        "mailnologin": "د لېږلو پته نشته",
        "emailuser": "کارن ته برېښليک لېږل",
        "emailuser-title-target": "دې {{GENDER:$1|کارن}} ته برېښليک لېږل",
        "usermaildisabled": "د کارن برېښليک ناچارند دی",
        "usermaildisabledtext": "په دې ويکي تاسې نورو کارنانو ته برېښليک نه شی ورلېږلی",
        "noemailtitle": "هېڅ کومه برېښليک پته نشته.",
+       "noemailtext": "دې کارن يوه سمه برېښليک پته نه ده ځانگړې کړې.",
        "nowikiemailtext": "دې کارن د نورو کارنانو لخوا د برېښليک د نه ترلاسه کولو چاره خوښه کړې.",
        "emailtarget": "د ترلاسه کوونکي کارن-نوم وټاپۍ",
        "emailusername": "کارن-نوم:",
        "emailccsubject": "$1 ته ستاسې د پيغام لمېسه: $2",
        "emailsent": "برېښليک مو ولېږل شو",
        "emailsenttext": "ستاسې برېښليکي پيغام ولېږل شو.",
-       "emailuserfooter": "دا برېښليک د $1 لخوا $2 ته د {{SITENAME}} په وېبځي کې د \"کارن ته برېښليک لېږل\" د کړنې په مرسته لېږل شوی.",
+       "emailuserfooter": "دا برېښليک $2 ته د $1 لخوا د \"{{int:emailpage}}\" کړنې په مرسته د {{SITENAME}} له لارې لېږل شوی.",
        "usermessage-summary": "د غونډال پيغام پرېښودل.",
        "usermessage-editor": "د غونډال پيغام رسونکی",
        "watchlist": "کتنلړ",
        "mywatchlist": "کتنلړ",
        "watchlistfor2": "د $1 لپاره $2",
        "nowatchlist": "ستاسې کتنلړ کې څه نه شته.",
-       "watchlistanontext": "د خپل کتنلړ د توکو د سمولو او کتلو لپاره $1 ترسره کړۍ.",
+       "watchlistanontext": "د خپل کتنلړ د توکو د سمولو او کتلو لپاره لطفاً غونډال ته ورننوځئ.",
        "watchnologin": "غونډال کې نه ياست ننوتي.",
        "addwatch": "کتنلړ کې ورگډول",
        "addedwatchtext": "د \"[[:$1]]\" په نوم يو مخ ستاسې [[Special:Watchlist|کتنلړ]] کې ورگډ شو.\nپه راتلونکې کې چې په دغه مخ او د دې د خبرواترو مخ کې کوم بدلونونه راځي نو هغه به ستاسې کتنلړ کې ښکاري.",
+       "addedwatchtext-short": "د \"$1\" مخ ستاسې کتنلړ کې ورگډ شو.",
        "removewatch": "له کتنلړ نه غورځول",
        "removedwatchtext": "د \"[[:$1]]\" مخ [[Special:Watchlist|ستاسې کتنلړ]] نه لرې شو.",
+       "removedwatchtext-short": "د \"$1\" مخ ستاسې له کتنلړ څخه لرې شو.",
        "watch": "کتل",
        "watchthispage": "همدا مخ کتل",
        "unwatch": "نه کتل",
        "protectlogtext": "دلته لاندې د ژغورل شويو مخونو د بدلونونو لړليک راغلی.\nد دم گړۍ فعالو مخ ژغورنو لړليک لپاره د [[Special:ProtectedPages|ژغورل شويو مخونو لړليک]] وگورئ.",
        "protectedarticle": "\"[[$1]]\" وژغورل شو",
        "modifiedarticleprotection": "د \"[[$1]]\" لپاره د ژغورنې کچه بدله شوه",
+       "unprotectedarticle": "د \"[[$1]]\" ژغورنه لرې شوه",
        "movedarticleprotection": "د ژغورنې امستنې له \"[[$2]]\" څخه \"[[$1]]\" ته ولېږدېدې",
        "protect-title": "د \"$1\" لپاره د ژغورنې کچه بدلول",
+       "protect-title-notallowed": "د \"$1\" د ژغورنې کچه کتل",
        "prot_1movedto2": "[[$1]]، [[$2]] ته ولېږدېده",
+       "protect-badnamespace-title": "ناژغورونکی نومتشيال",
+       "protect-badnamespace-text": "په دې نومتشيال کې شته مخونه نه شي ژغورل کېدای.",
+       "protect-norestrictiontypes-text": "دا مخ د کوم ډول محدوديتونو نشتون په خاطر نه شي ژغورل کېدای.",
+       "protect-norestrictiontypes-title": "ناژغورونکی مخ",
        "protect-legend": "ژغورنه تاييدول",
        "protectcomment": "سبب:",
        "protectexpiry": "د پای نېټه:",
        "protect_expiry_old": "د پای وخت په تېرمهال کې دی.",
        "protect-unchain-permissions": "د لا ژغورلو خوښنې پرانيستل",
        "protect-text": "تاسې کولای شی چې د '''$1''' مخ لپاره د ژغورلو کچه همدلته وگورۍ او بدلون پکې راولی.",
+       "protect-locked-blocked": "د بنديز په وخت کې تاسې د ژغورنې کچه نه شی بدلولی.\nد <strong>$1</strong> مخ لپاره اوسنۍ امستنې په دې توگه دي:",
        "protect-locked-access": "ستاسې گڼون دا اجازه نه لري چې د پاڼو د ژغورنې په کچه کې بدلون راولي.\nدلته د '''$1''' مخ لپاره اوسني شته امستنې دي:",
        "protect-cascadeon": "د اوسمهال لپاره همدا مخ ژغورل شوی دا ځکه چې همدا مخ په {{PLURAL:$1|لانديني مخ|لانديني مخونو}} کې ورگډ دی چې {{PLURAL:$1|ځوړاوبيزه ژغورنه يې چارنه ده|ځوړاوبيزې ژغورنې يې چارنې دي}}.\nتاسې د همدې مخ د ژغورنې په کچه کې بدلون راوستلای شی، خو دا به ځوړاوبيزه ژغورنه اغېزمنه نه کړي.",
        "protect-default": "ټول کارنان پرېښودل",
        "undeletepage": "ړنگ شوي مخونه کتل او بيا پرځای کول",
        "undeletepagetitle": "'''د [[:$1|$1]] ړنگې شوې بڼې په لاندې توگه دي'''.",
        "viewdeletedpage": "ړنگ شوي مخونه کتل",
+       "undelete-fieldset-title": "بڼې بيازېرمل",
+       "undeleterevisions": "$1 {{PLURAL:$1|بڼه|بڼې}} خونديځ کې {{PLURAL:$1|ورگډ شو|ورگډ شول}}",
        "undeletehistory": "که تاسې همدا مخ بيازېرمه کوۍ، نو ټولې بڼې به يې پېښليک کې زېرمه شي.\nکه چېرته د ړنگېدو وروسته په همدې نوم يو بل نوی مخ جوړ شوی وي، نو زېرمه شوې بڼې به يې په پخواني پېښليک کې ښکاره شي.",
+       "undelete-nodiff": "کومې پخوانۍ بڼې و نه موندل شوې.",
        "undeletebtn": "بيازېرمل",
        "undeletelink": "کتل/بيازېرمل",
        "undeleteviewlink": "کتل",
        "undeleteinvert": "ټاکنې سرچپه کول",
        "undeletecomment": "سبب:",
+       "undeletedrevisions": "{{PLURAL:$1|1 بڼه بيازېرمه شوه|$1 بڼې بيازېرمې شولې}}",
        "undeletedfiles": "{{PLURAL:$1|1 دوتنه بيازېرمه شوه|$1 دوتنې بيازېرمه شوې}}",
+       "cannotundelete": "ناړنگول نابريال شو:\n$1",
        "undelete-header": "د وروستيو ړنگو شوو مخونو لپاره [[Special:Log/delete|د ړنگولو يادښت]] وگورۍ.",
+       "undelete-search-title": "ړنگ شوي مخونه پلټل",
        "undelete-search-box": "ړنگ شوي مخونه لټول",
        "undelete-search-prefix": "هغه مخونه چې پيلېږي په:",
        "undelete-search-submit": "پلټل",
        "contributions-title": "د $1 کارن ونډې",
        "mycontris": "ونډې",
        "contribsub2": "د {{GENDER:$3|$1}} لپاره ($2)",
+       "contributions-userdoesnotexist": "کارن گڼون \"$1\" نه دی ثبت شوی.",
        "nocontribs": "دې شرطونو سره سم بدلونونه و نه موندل شول.",
        "uctop": "(اوسنی)",
        "month": "له مياشتې د (او پخواني):",
        "thumbnail-more": "لويول",
        "filemissing": "دوتنه ورکه ده",
        "thumbnail_error": "د  بټنوک د جوړېدنې ستونزه: $1",
+       "thumbnail-temp-create": "يوه لنډمهاله بټنوک دوتنه د جوړېدو وړ نه ده",
+       "import": "مخونه واردول",
+       "importinterwiki": "له بلې ويکي څخه واردول",
        "import-interwiki-sourcewiki": "د ويکي سرچينه:",
        "import-interwiki-sourcepage": "د سرچينې مخ:",
        "import-interwiki-history": "د دې مخ د پېښليک ټولې بڼې لمېسل",
        "import-interwiki-templates": "ټولې کينډۍ نغاړل",
        "import-interwiki-submit": "رالېږدول",
+       "import-mapping-namespace": "يو نومتشيال ته واردول:",
        "import-upload-filename": "د دوتنې نوم:",
        "import-comment": "تبصره:",
        "import-revision-count": "$1 {{PLURAL:$1|بڼه|بڼې}}",
        "importnopages": "د رالېږدولو لپاره مخونه نشته.",
+       "importcantopen": "واردونکې دوتنه و نه پرانيستل شوه.",
+       "import-upload": "د XML اومتوک پورته کول",
+       "import-token-mismatch": "د اومتوک غونډېدنه له لاسه وتلې.\nلطفاً بيا يې وآزمايئ.",
        "importlogpage": "د واردولو يادښت",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|بڼه|بڼې}} راولېږدېدې",
        "javascripttest": "د جاوا سکرېپټ آزمېښت",
+       "javascripttest-pagetext-unknownaction": "ناڅرگنده کړنه \"$1\".",
+       "javascripttest-pagetext-skins": "د آزمېښتونو د پلي کولو لپاره يوه پوښۍ وټاکئ:",
        "tooltip-pt-userpage": "ستاسې کارن مخ",
        "tooltip-pt-mytalk": "ستاسې د خبرواترو مخ",
        "tooltip-pt-preferences": "زما غوره توبونه",
        "tooltip-feed-atom": "د دې مخ د اټوم کتنې",
        "tooltip-t-contributions": "د دې کارن د ونډو لړليک کتل",
        "tooltip-t-emailuser": "دې کارن ته يو برېښليک لېږل",
+       "tooltip-t-info": "د دې مخ اړونده نور مالومات",
        "tooltip-t-upload": "دوتنې پورته کول",
        "tooltip-t-specialpages": "د ټولو ځانگړو پاڼو لړليک",
        "tooltip-t-print": "د دې مخ چاپي بڼه",
        "pageinfo-authors": "د بېلابېلو ليکوالو ټولټال شمېر",
        "pageinfo-recent-edits": "د وروستني سمونونو شمېر (په تېرو $1 کې)",
        "pageinfo-recent-authors": "د بېلابېلو ليکوالو وروستنی شمېر",
+       "pageinfo-magic-words": "کوډگريز {{PLURAL:$1|ويي|وييونه}} ($1)",
+       "pageinfo-hidden-categories": "{{PLURAL:$1|پټه وېشنيزه|پټې وېشنيزې}} ($1)",
        "pageinfo-toolboxlink": "د مخ مالومات",
+       "pageinfo-redirectsto": "مخ گرځونې و",
        "pageinfo-redirectsto-info": "مالومات",
        "pageinfo-contentpage": "مېنځپانگيز مخ کې شمېرل شوی",
        "pageinfo-contentpage-yes": "هو",
+       "pageinfo-protect-cascading": "ژغورنې له دې ځايه زوړاوبيزه دي",
        "pageinfo-protect-cascading-yes": "هو",
+       "pageinfo-protect-cascading-from": "ژغورنې زوړاوبيزه دي له",
        "pageinfo-category-info": "د وېشنيزې مالومات",
+       "pageinfo-category-total": "د غړو ټولټال شمېر",
        "pageinfo-category-pages": "د مخونو شمېر",
        "pageinfo-category-subcats": "د څېرمه وېشنيزو شمېر",
        "pageinfo-category-files": "د دوتنو شمېر",
        "markaspatrolleddiff": "دا مخ څارل شوی په نخښه کول",
        "markaspatrolledtext": "دا مخ څارل شوی په نخښه کول",
        "markedaspatrolled": "دا مخ څارل شوی په نخښه کول",
+       "rcpatroldisabled": "د وروستني بدلونونو څارنه ناچارنه شوې",
+       "rcpatroldisabledtext": "د وروستني بدلونونو څارنې ځانتيا دم گړۍ ناچارنه شوې.",
+       "markedaspatrollederror": "د څارل شوي په توگه نه په نښه کېږي",
+       "markedaspatrollednotify": "$1 کې دا بدلون د څارل شوي په توگه په نښه شوی.",
+       "markedaspatrollederrornotify": "د څارل شوي په توگه په نښه کول نابريال شو.",
+       "patrol-log-page": "د څارنې يادښت",
+       "patrol-log-header": "دا د څارل شويو مخکتنو يو يادښت دی.",
+       "log-show-hide-patrol": "د څارنې يادښت $1",
+       "log-show-hide-tag": "نښلن يادښت $1",
+       "deletedrevision": "د $1 زړه ړنگه شوې بڼه",
        "filedeleteerror-short": "د دوتنې د ړنگولو ستونزه: $1",
        "filedeleteerror-long": "د دوتنې په ړنگولو کې تېروتنې پېښې شوې:\n\n$1",
+       "filedelete-missing": "د \"$1\" دوتنه نشي ړنگېدلی ځکه چې نشته.",
+       "filedelete-old-unregistered": "د \"$1\" دوتنې ځانگړې شوې بڼه په توکبنسټ کې نشته.",
+       "filedelete-current-unregistered": "د \"$1\" ځانگړې دوتنه په توکبنسټ کې نشته.",
        "previousdiff": "تېر توپير ←",
        "nextdiff": "بل توپير →",
+       "imagemaxsize": "د انځور کچې بريد:<br /><em>(د دوتنې څرگندونو مخونو لپاره)</em>",
        "thumbsize": "د بټنوک کچه:",
        "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|مخ|مخونه}}",
        "file-info": "د دوتنې کچه: $1, MIME ډول: $2",
        "file-info-size": "$1 × $2 پېکسل, د دوتنې کچه: $3, MIME بڼه: $4",
+       "file-info-size-pages": "$1 × $2 پېکسل، دوتنې کچه: $3، MIME ډول: $4، $5 {{PLURAL:$5|مخ|مخونه}}",
        "file-nohires": "تر دې کچې لوړې بېلن نښې نشته.",
        "svg-long-desc": "SVG دوتنه، نومېنلي $1 × $2 پېکسل، د دوتنې کچه: $3",
+       "svg-long-error": "ناسمه SVG دوتنه: $1",
        "show-big-image": "اصلي دوتنه",
        "show-big-image-preview": "د همدې ليدنې کچه: $1.",
        "show-big-image-other": "{{PLURAL:$2|بل ژورليد|نورې ژورليدنې}}: $1.",
        "newimages-summary": "همدا ځانگړی مخ، وروستنۍ پورته شوې دوتنې ښکاره کوي.",
        "newimages-legend": "چاڼگر",
        "newimages-label": "د دوتنې نوم (يا د دې برخه):",
+       "newimages-showbots": "د روباټونو لخوا پورته کېدنې ښکاره کول",
        "noimages": "د کتلو لپاره څه نشته.",
        "ilsubmit": "پلټل",
        "bydate": "د نېټې له مخې",
        "minutes-ago": "$1 {{PLURAL:$1|دقيقه|دقيقې}} دمخه",
        "seconds-ago": "$1 {{PLURAL:$1|ثانيه|ثانيې}} دمخه",
        "monday-at": "Monday at $1",
+       "tuesday-at": "درې نۍ په $1",
+       "wednesday-at": "څلرنۍ په $1",
+       "thursday-at": "پينځنۍ په $1",
+       "friday-at": "جمعه په $1",
+       "saturday-at": "اونۍ په $1",
+       "sunday-at": "يونۍ په $1",
        "yesterday-at": "پرون په $1",
        "bad_image_list": "بڼه يې په لاندې توگه ده:\n\nيواځې د لړليک توکي (هغه کرښې چې پېلېږي پر *) په پام کې نيول شوي.\nبايد چې په يوه کرښه کې لومړنۍ تړنه د يوې خرابې دوتنې سره وي.\nپه يوې کرښې باندې هر ډول وروستۍ تړنې به د استثنا په توگه وگڼلای شي، د ساري په توگه هغه مخونو کې چې يوه دوتنه پر کرښه پرته وي.",
        "metadata": "مېټاډاټا",
        "exif-xresolution": "څنډيز ژورليد",
        "exif-yresolution": "ولاړيز ژورليد",
        "exif-stripoffsets": "د انځور مالوماتځی",
+       "exif-jpeginterchangeformatlength": "د JPEG اومتوک بايټونه",
+       "exif-whitepoint": "د سپين ټکي رنگينتوب",
+       "exif-primarychromaticities": "د لومړيتوبونو رنگينتوبونه",
        "exif-datetime": "د دوتنې د بدلون وخت او نېټه",
        "exif-imagedescription": "انځور سرليک",
        "exif-make": "د کامرې جوړونکی",
        "exif-relatedsoundfile": "اړونده غږيزه دوتنه",
        "exif-datetimeoriginal": "د اومتوک د جوړېدنې وخت او نېټه",
        "exif-datetimedigitized": "د گڼياليز کېدنې وخت او نېټه",
+       "exif-exposuretime-format": "$1 ثانيه ($2)",
        "exif-fnumber": "F شمېره",
+       "exif-spectralsensitivity": "طيفي حساسيت",
+       "exif-isospeedratings": "د ISO چټکتيا ارزونه",
+       "exif-shutterspeedvalue": "د APEX بندگر چټکتيا",
+       "exif-brightnessvalue": "د APEX رڼښت",
        "exif-lightsource": "د رڼا سرچينه",
        "exif-flash": "فلش",
        "exif-focallength": "د عدسيې کانوني واټن",
+       "exif-subjectarea": "د جسم سيمه",
        "exif-flashenergy": "د فلش انرژي",
+       "exif-subjectlocation": "د جسم ځای",
        "exif-filesource": "د دوتنې سرچينه",
        "exif-whitebalance": "د سپين رنگ توازن",
        "exif-gpsaltituderef": "د لوړوالي سرچينه",
        "exif-flash-fired-0": "فلش و نه ځلېده",
        "exif-focalplaneresolutionunit-2": "انچه",
        "exif-sensingmethod-1": "ناڅرګنده",
+       "exif-filesource-3": "گڼياليزه ولاړه کامره",
        "exif-customrendered-0": "نورماله بهير",
        "exif-scenecapturetype-0": "معيار",
        "exif-gaincontrol-0": "هېڅ",
        "confirm_purge_button": "ښه",
        "confirm-purge-top": "آيا د همدې مخ حافظه سپينول غواړۍ؟",
        "confirm-watch-button": "ښه",
+       "confirm-watch-top": "همدا مخ خپل کتنلړ کې ورگډوې؟",
        "confirm-unwatch-button": "ښه",
+       "confirm-unwatch-top": "همدا مخ خپل کتنلړ څخه لرې کوې؟",
        "percent": "$1%",
        "parentheses": "($1)",
        "brackets": "[$1]",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "→ تېر مخ",
        "imgmultipagenext": "راتلونکی مخ →",
        "imgmultigo": "ورځه!",
        "watchlistedit-raw-done": "ستاسې کتنلړ اوسمهاله شو.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 سرليک ورگډ شو|$1 سرليکونه ورگډ شوه}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 سرليک ليرې شو|$1 سرليکونه ليري شوه}}:",
+       "watchlistedit-clear-title": "کتنلړ سپين شو",
+       "watchlistedit-clear-legend": "کتنلړ سپينول",
+       "watchlistedit-clear-titles": "سرليکونه:",
+       "watchlistedit-clear-submit": "کتنلړ سپينول (دا دايمي ده!)",
+       "watchlistedit-clear-done": "ستاسې کتنلړ سپين شو.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|1 سرليک لرې شو|$1 سرليکونه لري شول}}:",
+       "watchlisttools-clear": "کتنلړ سپينول",
        "watchlisttools-view": "اړونده بدلونونه کتل",
        "watchlisttools-edit": "کتنلړ ليدل او سمول",
        "watchlisttools-raw": "خام کتنلړ سمول",
        "version-hooks": "کونډۍ",
        "version-hook-name": "کونډۍ نوم",
        "version-version": "($1)",
+       "version-no-ext-name": "[بې نومه]",
        "version-license": "مېډياويکي منښتليک",
        "version-ext-license": "منښتليک",
+       "version-ext-colheader-name": "شاتاړی",
        "version-skin-colheader-name": "پوښۍ",
        "version-ext-colheader-version": "بڼه",
        "version-ext-colheader-license": "منښتليک",
        "tag-filter": "[[Special:Tags|نښلن]] چاڼگر:",
        "tag-filter-submit": "چاڼگر",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|نښلن|نښلنونه}}]]: $2)",
+       "tags-title": "نښلنونه",
+       "tags-tag": "نښلن نوم",
        "tags-display-header": "د بدلون په لړليکونو کې ښکارېدنه",
        "tags-description-header": "د مانا بشپړه څرگندونه",
        "tags-source-header": "سرچينه",
        "tags-active-header": "فعال؟",
+       "tags-hitcount-header": "نښلن لرونکي بدلونونه",
        "tags-actions-header": "کړنې",
        "tags-active-yes": "هو",
        "tags-active-no": "نه",
+       "tags-source-extension": "د يو شاتاړي له مخې پېژندل شوی",
        "tags-source-none": "نور نه کارېږي",
        "tags-edit": "سمول",
        "tags-delete": "ړنگول",
        "tags-activate": "فعالول",
        "tags-deactivate": "نافعالول",
        "tags-hitcount": "$1 {{PLURAL:$1|بدلون|بدلونونه}}",
+       "tags-create-heading": "يو نوی نښلن جوړول",
+       "tags-create-tag-name": "نښلن نوم:",
        "tags-create-reason": "سبب:",
        "tags-create-submit": "جوړول",
+       "tags-create-no-name": "تاسې بايد يو نښلن نوم ځانگړی کړئ.",
+       "tags-create-already-exists": "د \"$1\" نښلن له پخوا څخه شته.",
+       "tags-delete-title": "نښلن ړنگول",
        "tags-delete-reason": "سبب:",
        "tags-activate-reason": "سبب:",
        "tags-activate-submit": "فعالول",
        "tags-deactivate-reason": "سبب:",
        "tags-deactivate-submit": "نافعالول",
+       "tags-edit-title": "نښلنونه سمول",
+       "tags-edit-manage-link": "نښلنونه مهارول",
        "tags-edit-existing-tags-none": "''هېڅ''",
+       "tags-edit-new-tags": "نوي نښلنونه:",
+       "tags-edit-add": "دا نښلنونه ورگډول:",
+       "tags-edit-remove": "دا نښلنونه غورځول:",
+       "tags-edit-remove-all-tags": "(ټول نښلنونه غورځول)",
+       "tags-edit-chosen-placeholder": "ځينې نښلنونه ټاکل",
        "tags-edit-reason": "سبب:",
        "comparepages": "مخونه پرتلل",
        "compare-page1": "۱ مخ",
        "compare-rev1": "۱ بڼه",
        "compare-rev2": "۲ بڼه",
        "compare-submit": "پرتلل",
+       "compare-invalid-title": "کوم سرليک مو چې ځانگړی کړی ناسم دی.",
+       "compare-title-not-exists": "کوم سرليک مو چې ځانگړی کړی نشته.",
+       "compare-revision-not-exists": "کومه مخکتنه مو چې ځانگړې کړې نشته.",
        "dberr-problems": "اوبخښۍ! دم مهال دا وېبپاڼه د تخنيکي ستونزو سره مخامخ شوې.",
        "dberr-usegoogle": "تاسې کولای شی چې هم مهاله د گووگل له لخوا هم د پلټنې هڅه وکړۍ.",
        "htmlform-invalid-input": "ستاسې ځينې ورکړېينې ستونزې لري",
        "htmlform-selectorother-other": "بل",
        "htmlform-no": "نه",
        "htmlform-yes": "هو",
+       "htmlform-chosen-placeholder": "يوه خوښه مو وټاکئ",
        "htmlform-cloner-create": "نور ورگډول",
        "htmlform-cloner-delete": "غورځول",
+       "htmlform-cloner-required": "لږ تر لږه يو ارزښت ته اړتيا شته.",
        "logentry-delete-delete": "$1 د $3 مخ {{GENDER:$2|ړنگ کړ}}",
        "revdelete-content-hid": "مېنځپانگه پټېدلې",
        "revdelete-uname-hid": "کارن نوم پټ شوی",
        "logentry-rights-rights": "$1 د $3 لپاره د غړيتوب ډله له $4 څخه $5 ته {{GENDER:$2|بدله کړه}}",
        "logentry-rights-rights-legacy": "$1 د $3 لپاره د غړيتوب ډله {{GENDER:$2|بدله کړه}}",
        "logentry-upload-upload": "$1 $3 {{GENDER:$2|ورپورته يې کړ}}",
+       "logentry-upload-revert": "$1 $3 يې {{GENDER:$2|ورپورته کړه}}",
+       "log-name-managetags": "د نښلن مهارولو يادښت",
+       "log-name-tag": "نښلن يادښت",
        "rightsnone": "(هېڅ)",
        "revdelete-summary": "لنډيز سمول",
        "feedback-cancel": "ناگارل",
        "feedback-close": "ترسره شو",
+       "feedback-external-bug-report-button": "د يوې تخنيکي دندې دوتنه جوړونه",
        "feedback-error-title": "تېروتنه",
        "feedback-message": "پيغام:",
        "feedback-subject": "سکالو:",
        "feedback-submit": "سپارل",
        "feedback-thanks-title": "مننه!",
+       "feedback-useragent": "کارن پلاوی:",
        "searchsuggest-search": "پلټل",
+       "api-error-badaccess-groups": "تاسې دې ويکي کې د دوتونو ورپورته کولو پرېښه نه لرۍ.",
        "api-error-duplicate-popup-title": "غبرګونې {{PLURAL:$1|دوتنه|دوتنې}}.",
        "api-error-empty-file": "کومه دوتنه چې تاسې دلته سپارلې هغه تشه ده.",
+       "api-error-emptypage": "د نوي تشو مخونو جوړولو پرېښنه نه شته.",
        "api-error-file-too-large": "کومه دوتنه چې تاسې دلته سپارلې ډېره لويه ده.",
        "api-error-filename-tooshort": "د دوتنې نوم ډېر لنډ دی.",
        "api-error-filetype-banned": "په دې ډول دوتنې بنديز دی.",
+       "api-error-filetype-missing": "دوتنې نوم يو شاتاړی نه لري.",
        "api-error-illegal-filename": "د دوتنې نوم نه دی پرېښل شوی.",
        "api-error-mustbeloggedin": "د دوتنو د پورته کولو لپاره بايد تاسې غونډال کې ننوتلی اوسۍ.",
        "api-error-unclassified": "يوه ناڅرګنده تېروتنه رامېنځته شوه.",
        "api-error-unknown-code": "ناڅرګنده تېروتنه: \"$1\"",
        "api-error-unknown-warning": "ناڅرگنده گواښنه: \"$1\".",
        "api-error-unknownerror": "ناڅرګنده تېروتنه: \"$1\".",
+       "api-error-uploaddisabled": "په دې ويکي باندې پورته کېدنې ناچارنې شوي.",
+       "api-error-verification-error": "کېدای شي دا دوتنه خرابه وي او يا هم ناسم شاتاړی ولري.",
        "duration-seconds": "$1 {{PLURAL:$1|ثانيه|ثانيې}}",
        "duration-minutes": "$1 {{PLURAL:$1|دقيقه|دقيقې}}",
        "duration-hours": "$1 {{PLURAL:$1|گړۍ|گړۍ}}",
        "duration-decades": "$1 {{PLURAL:$1|لسيزه|لسيزې}}",
        "duration-centuries": "$1 {{PLURAL:$1|پېړۍ|پېړۍ}}",
        "duration-millennia": "$1 {{PLURAL:$1|زرمه|زرمې}}",
+       "rotate-comment": "انځور $1 {{PLURAL:$1|درجه|درجې}} گړۍ لور تاو شوی",
        "limitreport-cputime": "سي پي يو وخت کارېدنه",
        "limitreport-cputime-value": "$1 {{PLURAL:$1|ثانيه|ثانيې}}",
        "limitreport-walltime": "اصلي وخت کارېدنه",
        "mediastatistics-summary": "د پورته شويو دوتنو اړونده شمارنې. په دې ځای کې د يوې دوتنې يوازې تر ټولو تازه بڼې شاملې شوي. د دوتنو زړې يا ړنگې شوې بڼې په دې شمارنو کې نه دي شاملې شوي.",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 بايټ|$1 بايټونه}} ($2; $3%)",
        "mediastatistics-table-mimetype": "MIME بڼه",
+       "mediastatistics-table-extensions": "ممکنه شاتاړي",
        "mediastatistics-table-count": "د دوتنو شمېر",
+       "mediastatistics-table-totalbytes": "يو ځای کچه",
        "mediastatistics-header-unknown": "ناجوت",
        "mediastatistics-header-bitmap": "بېټ مپ انځورونه",
        "mediastatistics-header-drawing": "رسمونه (وېکټور انځورونه)",
        "mediastatistics-header-multimedia": "بډايه رسنۍ",
        "mediastatistics-header-office": "دفتر",
        "mediastatistics-header-text": "متني",
+       "mediastatistics-header-executable": "اجرايي",
+       "headline-anchor-title": "دې برخې ته تړنه",
        "special-characters-group-latin": "لاتين",
        "special-characters-group-latinextended": "غځېدلی لاتين",
        "special-characters-group-ipa": "ن.غ.ا",
index e51d30f..21c64af 100644 (file)
@@ -80,7 +80,8 @@
                        "Fasouzafreitas",
                        "RosaMafalda17",
                        "Macofe",
-                       "TheEduGobi"
+                       "TheEduGobi",
+                       "Araceletorres"
                ]
        },
        "tog-underline": "Sublinhar links:",
        "no-null-revision": "Não foi possível criar nova revisão nula para a página \"$1\"",
        "badtitle": "Título inválido",
        "badtitletext": "O título de página solicitado era inválido, vazio, ou um link interlínguas ou interwikis incorreto.\nTalvez contenha um ou mais caracteres que não podem ser usados em títulos.",
+       "title-invalid-empty": "O título da página solicitada está vazio ou contém somente o nome do espaço de nomes.",
+       "title-invalid-utf8": "O título da página solicitada contém uma sequência UTF-8 inválida.",
+       "title-invalid-interwiki": "O título contém um link interwiki",
+       "title-invalid-talk-namespace": "O título da página solicitada refere-se a uma página de discussão que pode não existir.",
+       "title-invalid-characters": "O título da página solicitada contém caracteres inválidos: \"$1\".",
+       "title-invalid-relative": "O título tem um caminho relativo.Títulos de página relativos (./, ../) são inválidos, porque muitas vezes estarão inacessíveis quando consultados pelo navegador do usuário.",
+       "title-invalid-magic-tilde": "O título da página solicitada contém uma sequência de til inválida (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "O título da página solicitada é muito longo. Ele não deve ser maior que $1 bytes na codificação UTF-8.",
+       "title-invalid-leading-colon": "O título da página solicitada contém dois pontos inválidos no começo.",
        "perfcached": "Os seguintes dados encontram-se armazenados na ''cache'' e podem não estar atualizados. No máximo {{PLURAL:$1|um resultado está disponível|$1 resultados estão disponíveis}} na ''cache''.",
        "perfcachedts": "Os seguintes dados encontram-se armazenados no ''cache'' e foram atualizados as $1. No máximo {{PLURAL:$4|um resultado está disponível|$4 resultados estão disponíveis}} no ''cache''.",
        "querypage-no-updates": "Momentaneamente as atualizações para esta página estão desativadas. Por enquanto, os dados aqui presentes não poderão ser atualizados.",
        "confirmedittext": "Você precisa confirmar o seu endereço de e-mail antes de começar a editar páginas.\nPor favor, introduza um e valide-o através das suas [[Special:Preferences|preferências de usuário]].",
        "nosuchsectiontitle": "Não foi possível encontrar a seção",
        "nosuchsectiontext": "Você tentou editar uma seção que não existe.\nEla pode ter sido movida ou removido enquanto você estava vendo a página.",
-       "loginreqtitle": "Autenticação Requerida",
+       "loginreqtitle": "Autenticação requerida",
        "loginreqlink": "autenticar-se",
        "loginreqpagetext": "É necessário $1 para poder visualizar outras páginas.",
        "accmailtitle": "Senha enviada.",
        "revdelete-edit-reasonlist": "Editar motivos de eliminação",
        "revdelete-offender": "Autor da revisão:",
        "suppressionlog": "Registro de supressões",
-       "suppressionlogtext": "Abaixo está uma lista das eliminações e bloqueios envolvendo conteúdo ocultado por administradores.\nVeja a [[Special:BlockList|lista de bloqueios]] para uma lista de banimentos e bloqueios em efeito neste momento.",
+       "suppressionlogtext": "Abaixo está uma lista das eliminações e bloqueios envolvendo conteúdo ocultado para administradores.\nVeja a [[Special:BlockList|lista de bloqueios]] para uma lista de banimentos e bloqueios em efeito neste momento.",
        "mergehistory": "Fundir históricos das páginas",
        "mergehistory-header": "A partir desta página é possível fundir históricos de edições de uma página em outra.\nCertifique-se de que tal alteração manterá a continuidade das ações.",
        "mergehistory-box": "Fundir revisões de duas páginas:",
        "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-applychangetags": "Aplicar [[Especial:Etiquetas|etiquetas]] juntamente com as alterações de alguém",
-       "right-changetags": "Adicionar e remover [[Especial:Etiquetas|etiquetas]] arbitrárias em revisões e ''logs'' individuais",
+       "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",
        "newuserlogpage": "Registro de criação de usuários",
        "newuserlogpagetext": "Este é um registro de novas contas de usuário",
        "rightslog": "Registro de privilégios de usuário",
        "unusedimages": "Arquivos não utilizados",
        "wantedcategories": "Categorias pedidas",
        "wantedpages": "Páginas pedidas",
+       "wantedpages-summary": "Lista de páginas não-existentes com mais links para elas, excluindo páginas que apenas têm redirecionamentos linkando para elas. Para obter uma lista de páginas inexistentes que redireciona links para elas, veja [[{{#special: Brokenredirects}}]].",
        "wantedpages-badtitle": "Título inválido no conjunto de resultados: $1",
        "wantedfiles": "Arquivos pedidos",
        "wantedfiletext-cat": "Os seguintes arquivos são usados, mas não existem. Arquivos de repositórios externos podem acabar sendo listados apesar de existirem. Esses falsos positivos aparecerão <del>riscados</del>. As páginas que incluem arquivos inexistentes são listadas em [[:$1]].",
        "watchlisttools-raw": "Edição crua da lista de páginas vigiadas",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|discussão]])",
        "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\".",
+       "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",
        "version-skins": "Temas instalados",
        "tags-create-invalid-chars": "Nomes de etiquetas não devem conter vírgulas (<code>,</code>) ou barras (<code>/</code>).",
        "tags-create-invalid-title-chars": "Nomes de etiqueta não devem conter caracteres que não possam ser utilizados em títulos de páginas.",
        "tags-create-already-exists": "A etiqueta \"$1\" já existe.",
+       "tags-create-warnings-above": "O(s) seguinte(s) {{PLURAL:$2|aviso foi|avisos foram}} encontrado(s) ao tentar criar a etiqueta \"$1\":",
        "tags-create-warnings-below": "Você deseja continuar a criar a etiqueta?",
        "tags-delete-title": "Apagar etiqueta",
+       "tags-delete-explanation-initial": "Você está prestes a apagar a etiqueta \"$1\" da base de dados.",
+       "tags-delete-explanation-in-use": "Será removido de {{PLURAL:$2|$2 revisão ou entrada de registro|todas as $2 revisões e/ou entradas de registros}}",
+       "tags-delete-explanation-warning": "Esta ação é <strong>irreversível</strong> e <strong>não pode ser desfeita</strong>, nem mesmo por administradores da base de dados. Tenha a certeza de que é esta etiqueta que pretende apagar.",
+       "tags-delete-explanation-active": "<strong>A etiqueta \"$1\" ainda está ativa e continuará a ser aplicada no futuro.</strong> Para prevenir que isto aconteça, dirija-se ao(s) local(is) em que a etiqueta é aplicada, e a partir daí, desative-a.",
        "tags-delete-reason": "Motivo:",
        "tags-delete-submit": "Apagar irreversivelmente esta etiqueta",
        "tags-delete-not-allowed": "Etiquetas definidas por uma extensão não podem ser apagadas a menos que a extensão especificamente o permita.",
        "tags-delete-not-found": "A etiqueta \"$1\" não existe.",
+       "tags-delete-too-many-uses": "A etiqueta \"$1\" é aplicada em mais que $2 {{PLURAL:$2|edição|edições}}, o que significa que não pode ser apagada.",
+       "tags-delete-warnings-after-delete": "A etiqueta \"$1\" foi apagada com sucesso, mas {{PLURAL:$2|o seguinte aviso foi encontrado|os seguintes avisos foram encontrados}}:",
        "tags-activate-title": "Ativar etiqueta",
+       "tags-activate-question": "Você está prestes a ativar a etiqueta \"$1\".",
        "tags-activate-reason": "Motivo:",
+       "tags-activate-not-allowed": "Não é possível ativar a etiqueta \"$1\".",
+       "tags-activate-not-found": "A etiqueta \"$1\" não existe.",
        "tags-activate-submit": "Ativar",
        "tags-deactivate-title": "Desativar etiqueta",
+       "tags-deactivate-question": "Você está prestes a desativar a etiqueta \"$1\".",
+       "tags-deactivate-reason": "Motivo:",
+       "tags-deactivate-not-allowed": "Não é possível desativar a etiqueta \"$1\".",
        "tags-deactivate-submit": "Desativar",
+       "tags-apply-no-permission": "Você não tem permissão para aplicar mudanças de etiquetas, juntamente com suas alterações.",
+       "tags-apply-not-allowed-one": "A etiqueta \"$1\" não pode ser aplicada manualmente.",
+       "tags-apply-not-allowed-multi": "{{PLURAL:$2|A seguinte etiqueta não pode ser aplicada|As seguintes etiquetas não podem ser aplicadas}} manualmente: $1",
+       "tags-update-no-permission": "Você não tem permissão para adicionar ou remover mudanças de etiquetas de revisões individuais ou entradas de registro.",
+       "tags-update-add-not-allowed-one": "A etiqueta \"$1\" não pode ser adicionada manualmente.",
+       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|A seguinte etiqueta não pode ser adicionada|As seguintes etiquetas não podem ser adicionadas}} manualmente: $1",
+       "tags-update-remove-not-allowed-one": "A remoção da etiqueta \"$1\" não é permitida.",
+       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|A seguinte etiqueta não pode ser removida|As seguintes etiquetas não podem ser removidas}} manualmente: $1",
+       "tags-edit-title": "Editar etiquetas",
        "tags-edit-manage-link": "Gerenciar etiquetas",
+       "tags-edit-revision-selected": "{{PLURAL:$1|Revisão selecionada|Revisões selecionadas}} de [[:$2]]:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Evento de registro selecionado|Eventos de registro selecionados}}:",
+       "tags-edit-revision-legend": "Adicionar ou remover etiquetas {{PLURAL:$1|desta revisão|de todas as $1 revisões}}",
+       "tags-edit-logentry-legend": "Adicionar ou remover etiquetas {{PLURAL:$1|desta entrada de registro|de todas as $1 entradas de registro}}",
        "tags-edit-existing-tags": "Etiquetas existentes:",
+       "tags-edit-existing-tags-none": "''Nenhuma''",
        "tags-edit-new-tags": "Novas etiquetas:",
        "tags-edit-add": "Adicionar estas etiquetas:",
        "tags-edit-remove": "Remover estas etiquetas:",
+       "tags-edit-remove-all-tags": "(remover todas as etiquetas)",
        "tags-edit-chosen-placeholder": "Selecionar algumas etiquetas",
+       "tags-edit-chosen-no-results": "Não foram encontradas etiquetas correspondentes",
+       "tags-edit-reason": "Motivo:",
+       "tags-edit-revision-submit": "Aplicar alterações para {{PLURAL:$1|esta revisão|$1 revisões}}",
+       "tags-edit-logentry-submit": "Aplicar alterações para {{PLURAL:$1|esta entrada de registro|$1 entradas de registro}}",
+       "tags-edit-success": "As alterações foram aplicadas com sucesso.",
+       "tags-edit-failure": "As alterações não puderam ser aplicadas:\n$1",
+       "tags-edit-nooldid-title": "Revisão inválida",
+       "tags-edit-nooldid-text": "Você não especificou nenhuma revisão para executar esta função, ou a revisão especificada não existe.",
+       "tags-edit-none-selected": "Por favor, selecione pelo menos uma etiqueta para adicionar ou remover.",
        "comparepages": "Comparar páginas",
        "compare-page1": "Página 1",
        "compare-page2": "Página 2",
        "revdelete-uname-unhid": "nome de usuário desocultado",
        "revdelete-restricted": "restrições a administradores aplicadas",
        "revdelete-unrestricted": "restrições a administradores removidas",
+       "logentry-block-block": "$1 {{GENDER:$2|bloqueou}} {{GENDER:$4|$3}} com um tempo de expiração de $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|desbloqueou}} {{GENDER:$4|$3}}",
+       "logentry-block-reblock": "$1 {{GENDER:$2|modificou}} configurações de bloqueio para {{GENDER:$4|$3}} com um tempo de expiração de $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|bloqueou}} {{GENDER:$4|$3}} com um tempo de expiração de $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|modificou}} configurações de bloqueio de {{GENDER:$4|$3}} com um tempo de expiração de $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|importado}} $3 por envio de arquivo",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|importado}} $3 de outra wiki",
+       "logentry-merge-merge": "$1 {{GENDER:$2|fundiu}} $3 com $4 (edições até $5)",
        "logentry-move-move": "$1 moveu a página $3 para $4",
        "logentry-move-move-noredirect": "$1 moveu a página $3 para $4 sem deixar um redirecionamento",
        "logentry-move-move_redir": "$1 moveu a página $3 para $4 através de um redirecionamento",
        "logentry-rights-rights-legacy": "$1 alterou os grupos de $3",
        "logentry-rights-autopromote": "$1 foi promovido automaticamente de $4 para $5",
        "logentry-upload-upload": "$1 {{GENDER:$2|carregado}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|carregada}} uma nova versão de $3",
+       "logentry-upload-revert": "$1 {{GENDER:$2|carregado}} $3",
+       "log-name-managetags": "Registo de gestão de etiquetas",
+       "log-description-managetags": "Esta página lista as tarefas de gestão relacionadas a [[Special:Tags|etiquetas]]. O registro contém apenas ações realizadas manualmente por um administrador; etiquetas podem ser criadas ou apagadas pelo software da wiki sem uma entrada a ser gravada neste registro.",
+       "logentry-managetags-create": "$1 {{GENDER:$2|criada}} a etiqueta \"$4\"",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|apagou}} a etiqueta \"$4\" (removida de $5 {{PLURAL:$5|edição ou entrada de registro|edições e/ou entradas de registro}})",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|ativou}} a etiqueta \"$4\" para uso de usuários e robôs.",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|desativou}} a etiqueta \"$4\" para uso de usuários e robôs.",
+       "log-name-tag": "Registro de etiquetas",
+       "log-description-tag": "Esta página mostra quando os usuários adicionaram ou removeram [[Special:Tags|etiquetas]] de revisões individuais ou entradas de registro. O registro não mostra as ações de etiquetar quando elas ocorrem como parte de uma edição, eliminação ou ações similares.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|adicionou}} a(s) {{PLURAL:$7|etiqueta|etiquetas}} $6 para revisão $4 da página $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|adicionou}} a(s) {{PLURAL:$7|etiqueta|etiquetas}} $6 à entrada de registro $5 da página $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|removeu}} a(s) {{PLURAL:$9|etiqueta|etiquetas}} $8 da revisão $4 da página $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|removeu}} a {{PLURAL:$9|etiqueta|etiquetas}} $8 da entrada de registro $5 da página $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|atualizou}} etiquetas em revisão $4 da página $3 ({{PLURAL:$7|adicionou}} $6; {{PLURAL:$9|removeu}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|atualizou}} etiquetas na entrada de registro $5 da página $3 ({{PLURAL:$7|adicionou}} $6; {{PLURAL:$9|removeu}} $8)",
        "rightsnone": "(nenhum)",
        "revdelete-summary": "sumário de edição",
        "feedback-adding": "Adicionando os comentários na página...",
        "feedback-bugornote": "Se você está preparado para descrever detalhadamente um problema técnico, [$1 relate um bug].\nCaso contrário, você poderá usar o formulário simplificado a seguir. Seu comentário será adicionado à página \"[$3 $2]\", junto com o seu nome de usuário e o navegador que estiver usando neste momento.",
        "feedback-cancel": "Cancelar",
        "feedback-close": "Feito",
+       "feedback-external-bug-report-button": "Registrar uma tarefa técnica",
        "feedback-dialog-title": "Enviar comentários",
        "feedback-dialog-intro": "Você pode usar o simples formulário abaixo para enviar seus comentários. Os mesmos serão adicionados à página \"$1\", junto com seu nome de usuário.",
        "feedback-error-title": "Erro",
        "feedback-error1": "Erro: O resultado da API não foi reconhecido",
        "feedback-error2": "Erro: A edição falhou",
        "feedback-error3": "Erro: A API não responde",
+       "feedback-error4": "Erro: Não foi possível enviar o seu comentário sobre o título selecionado",
        "feedback-message": "Mensagem:",
        "feedback-subject": "Assunto:",
        "feedback-submit": "Enviar",
+       "feedback-terms": "Eu entendo que as minhas informações do agente do usuário incluem informações sobre a minha versão exata do navegador e sistema operacional e serão compartilhadas publicamente junto com meus comentários.",
+       "feedback-termsofuse": "Concordo em fornecer comentários de acordo com os Termos de Uso.",
        "feedback-thanks": "Obrigado! O seu comentário foi adicionado à página \"[$2 $1]\".",
        "feedback-thanks-title": "Obrigado!",
+       "feedback-useragent": "Agente de usuário:",
        "searchsuggest-search": "Pesquisa",
        "searchsuggest-containing": "contendo...",
        "api-error-badaccess-groups": "Você não tem permissão para enviar arquivos para este wiki.",
        "api-error-stashfailed": "Erro interno: o servidor não conseguiu armazenar o arquivo temporário.",
        "api-error-publishfailed": "Erro interno: O servidor falhou ao publicar o arquivo temporário.",
        "api-error-stasherror": "Houve um erro durante o upload do arquivo para a pilha.",
+       "api-error-stashedfilenotfound": "O arquivo escondido não foi encontrado ao tentar enviá-lo de seu esconderijo.",
+       "api-error-stashpathinvalid": "O caminho no qual o arquivo escondido deveria ter sido encontrado era inválido.",
+       "api-error-stashfilestorage": "Ocorreu um erro ao armazenar o arquivo em seu esconderijo.",
+       "api-error-stashzerolength": "O servidor não pôde esconder o arquivo, porque ele tinha zero de tamanho.",
+       "api-error-stashnotloggedin": "Você precisa estar logado para salvar arquivos no esconderijo.",
+       "api-error-stashwrongowner": "O arquivo que você estava tentando acessar no esconderijo não pertence a você.",
+       "api-error-stashnosuchfilekey": "O arquivo chave que você estava tentando acessar no esconderijo não existe.",
        "api-error-timeout": "O servidor não respondeu dentro do tempo esperado.",
        "api-error-unclassified": "Ocorreu um erro desconhecido",
        "api-error-unknown-code": "Erro desconhecido: \"$1\"",
        "expand_templates_generate_xml": "Mostrar árvore de análise (parse) do XML",
        "expand_templates_generate_rawhtml": "Mostrar HTML puro",
        "expand_templates_preview": "Pré-visualização",
+       "expand_templates_preview_fail_html": "<em>Devido ao fato de {{SITENAME}} possuir código HTML puro ativado e de ter havido perda de dados da sessão, a pré-visualização ficará oculta como precaução contra ataques do JavaScript.</em>\n\n<strong>Se esta é uma legítima tentativa de visualização, por favor, tente novamente.</strong> Se não funcionar, tente [[Special:UserLogout|sair]] e iniciar novamente a sessão.",
+       "expand_templates_preview_fail_html_anon": "<em>Devido ao fato de {{SITENAME}} possuir código HTML puro ativado e você não estar logado, a pré-visualização ficará oculta como precaução contra ataques do JavaScript.</em>\n\n<strong>Se esta é uma legítima tentativa de visualização, por favor, [[Special:UserLogin|entre]] e tente novamente.</strong>",
        "pagelanguage": "Seletor de idioma de página",
        "pagelang-name": "Página",
        "pagelang-language": "Idioma",
        "right-pagelang": "Mudar idioma da página",
        "action-pagelang": "mudar idioma da página",
        "log-name-pagelang": "Mudar idioma do log",
+       "log-description-pagelang": "Este é um registro de alterações aos idiomas das páginas.",
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|alterou}} o idioma da página $3 de $4 para $5.",
+       "default-skin-not-found": "Ops! A aparência padrão para sua wiki, definida em <code dir=\"ltr\">$wgDefaultSkin</code> como <code>$1</code>, não está disponível.\n\nSua instalação parece incluir a(s) seguinte(s) {{PLURAL:$4|aparência|aparências}}. Veja [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Configuração de aparência] para informações sobre como  {{PLURAL:$4|habilitá-la|habilitá-las e escolha a padrão}}.\n\n$2\n\n; Se você já instalou o MediaWiki:\n: Você provavelmente instalou do git, ou diretamente do código fonte usando usando algum outro método. Isto é esperado. Tente instalar algumas aparências do [https://www.mediawiki.org/wiki/Category:All_skins diretório de aparências do mediawiki.org]:\n:* Baixando o [https://www.mediawiki.org/wiki/Download instalador tarball], que vem com várias aparências e extensões. Você pode copiar e colar o diretório <code>skins/</code> dele.\n:* Baixando tarballs individuais de aparência de [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clonando um dos repositórios <code>mediawiki/skins/*</code> via git no diretório <code dir=\"ltr\">skins/</code> de sua instalação MediaWiki.\n: Fazer isso não deve interferir no seu repositório git se você é um desenvolvedor MediaWiki.\n\n; Se você já atualizou o MediaWiki:\n: O MediaWiki 1.24 e os mais recentes não permitem mais aparências instaladas automaticamente (veja [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Você pode colar {{PLURAL:$5|a seguinte linha|as seguintes linhas}} em <code>LocalSettings.php</code> para habilitar {{PLURAL:$5|a|todas as}} {{PLURAL:$5|aparência instalada atualmente|aparências instaladas atualmente}} :\n\n<pre dir=\"ltr\">$3</pre>\n\n; Se você já modificou <code>LocalSettings.php</code>:\n: Verifique cuidadosamente se não há erros de digitação nos nomes das aparências.",
+       "default-skin-not-found-no-skins": "Ops! A aparência padrão para sua wiki, definida em <code>$wgDefaultSkin</code> como <code>$1</code>, não está disponível.\n\nVocê não tem aparências instaladas.\n\n; Se você já instalou ou atualizou o MediaWiki:\n: Você provavelmente instalou do git, ou diretamente do código fonte usando usando algum outro método. Isto é esperado. O MediaWiki 1.24 e mais recentes não incluem todas as aparências no repositório principal.Tente instalar algumas aparências do [https://www.mediawiki.org/wiki/Category:All_skins diretório de aparências do mediawiki.org]:\n:* Baixando o [https://www.mediawiki.org/wiki/Download instalador tarball], que vem com várias aparências e extensões. Você pode copiar e colar o diretório <code>skins/</code> dele.\n:* Baixando tarballs individuais de aparência de [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clonando um dos repositórios <code>mediawiki/skins/*</code> via git no diretório <code dir=\"ltr\">skins/</code> de sua instalação MediaWiki.\n: Fazer isso não deve interferir no seu repositório git se você é um desenvolvedor MediaWiki.Veja [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] para informações sobre como habilitar aparências e escolhar a padrão.",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (habilitado)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''desabilitado''')",
        "mediastatistics": "Estatísticas de mídia",
        "mediastatistics-summary": "Estatísticas sobre os tipos de arquivos carregados. Inclui apenas a versão mais recente do arquivo. Versões antigas ou apagadas são excluídas.",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 bytes}} ($2; $3%)",
        "mediastatistics-header-text": "Textuais",
        "mediastatistics-header-executable": "Executáveis",
        "mediastatistics-header-archive": "Formatos compactados",
+       "json-warn-trailing-comma": "$1 {{PLURAL:$1|vírgula desnecessária foi removida|vírgulas desnecessárias foram removidas}} do código JSON",
+       "json-error-unknown": "Houve um problema com o JSON. Erro: $1",
+       "json-error-depth": "A profundidade máxima da pilha foi excedida",
        "json-error-state-mismatch": "JSON inválido ou malformado",
        "json-error-ctrl-char": "Erro de caractere de controle, possivelmente codificada incorretamente",
        "json-error-syntax": "Erro de sintaxe",
        "json-error-utf8": "Caracteres UTF-8 malformados, possivelmente a codificação está incorreta.",
        "json-error-recursion": "Uma ou mais referências recursivas no valor a ser codificado",
+       "json-error-inf-or-nan": "Um ou mais valores NAN ou INF no valor a ser codificado",
        "json-error-unsupported-type": "Um valor de um tipo que não pode ser codificado foi dado",
+       "headline-anchor-title": "Link para esta seção",
        "special-characters-group-latin": "Latino",
        "special-characters-group-latinextended": "Latino estendido",
        "special-characters-group-ipa": "AFI (IPA)",
        "special-characters-group-devanagari": "Devanágari",
        "special-characters-group-thai": "Tailandês",
        "special-characters-group-lao": "Laociano",
-       "special-characters-group-khmer": "Cambojano"
+       "special-characters-group-khmer": "Cambojano",
+       "special-characters-title-endash": "traço",
+       "special-characters-title-emdash": "travessão",
+       "special-characters-title-minus": "sinal de menos"
 }
index 5d64a78..6ad83be 100644 (file)
        "october-gen": "outubro",
        "november-gen": "novembro",
        "december-gen": "dezembro",
-       "jan": "Jan.",
-       "feb": "Fev.",
-       "mar": "Mar.",
-       "apr": "Abr.",
-       "may": "Maio",
-       "jun": "Jun.",
-       "jul": "Jul.",
-       "aug": "Ago.",
-       "sep": "Set.",
-       "oct": "Out.",
-       "nov": "Nov.",
-       "dec": "Dez.",
-       "january-date": "$1 de Janeiro",
-       "february-date": "$1 de Fevereiro",
-       "march-date": "$1 de Março",
-       "april-date": "$1 de Abril",
-       "may-date": "$1 de Maio",
-       "june-date": "$1 de Junho",
-       "july-date": "$1 de Julho",
-       "august-date": "$1 de Agosto",
-       "september-date": "$1 de Setembro",
-       "october-date": "$1 de Outubro",
-       "november-date": "$1 de Novembro",
-       "december-date": "$1 de Dezembro",
+       "jan": "jan.",
+       "feb": "fev.",
+       "mar": "mar.",
+       "apr": "abr.",
+       "may": "mai.",
+       "jun": "jun.",
+       "jul": "jul.",
+       "aug": "ago.",
+       "sep": "set.",
+       "oct": "out.",
+       "nov": "nov.",
+       "dec": "dez.",
+       "january-date": "$1 de janeiro",
+       "february-date": "$1 de fevereiro",
+       "march-date": "$1 de março",
+       "april-date": "$1 de abril",
+       "may-date": "$1 de maio",
+       "june-date": "$1 de junho",
+       "july-date": "$1 de julho",
+       "august-date": "$1 de agosto",
+       "september-date": "$1 de setembro",
+       "october-date": "$1 de outubro",
+       "november-date": "$1 de novembro",
+       "december-date": "$1 de dezembro",
        "pagecategories": "{{PLURAL:$1|Categoria|Categorias}}",
        "category_header": "Páginas na categoria \"$1\"",
        "subcategories": "Subcategorias",
        "category-media-header": "Multimédia na categoria \"$1\"",
-       "category-empty": "''Esta categoria não contém actualmente nenhuma página ou ficheiro multimédia.''",
+       "category-empty": "''Esta categoria não contém atualmente nenhuma página ou ficheiro multimédia.''",
        "hidden-categories": "{{PLURAL:$1|Categoria oculta|Categorias ocultas}}",
        "hidden-category-category": "Categorias ocultas",
        "category-subcat-count": "{{PLURAL:$2|Esta categoria só contém a seguinte subcategoria.|Esta categoria contém {{PLURAL:$1|a seguinte subcategoria|as seguintes $1 subcategorias}} (de um total de $2).}}",
        "qbmyoptions": "As minhas páginas",
        "faq": "Perguntas frequentes",
        "faqpage": "Project:FAQ",
-       "actions": "Acções",
+       "actions": "Ações",
        "namespaces": "Domínios",
        "variants": "Variantes",
        "navigation-heading": "Menu de navegação",
        "searcharticle": "Ir",
        "history": "Histórico",
        "history_short": "Histórico",
-       "updatedmarker": "actualizado desde a minha última visita",
+       "updatedmarker": "atualizado desde a minha última visita",
        "printableversion": "Versão para impressão",
        "permalink": "Ligação permanente",
        "print": "Imprimir",
        "categorypage": "Ver página de categoria",
        "viewtalkpage": "Ver discussão",
        "otherlanguages": "Noutros idiomas",
-       "redirectedfrom": "(Redireccionado de $1)",
+       "redirectedfrom": "(Redirecionado de $1)",
        "redirectpagesub": "Página de redirecionamento",
        "redirectto": "Redireciona para:",
        "lastmodifiedat": "Esta página foi modificada pela última vez à(s) $2 de $1.",
        "currentevents": "Notícias",
        "currentevents-url": "Project:Notícias",
        "disclaimers": "Exoneração de responsabilidade",
-       "disclaimerpage": "Project:Aviso_geral",
+       "disclaimerpage": "Project:Aviso geral",
        "edithelp": "Ajuda de edição",
        "helppage-top-gethelp": "Ajuda",
        "mainpage": "Página principal",
        "portal": "Portal comunitário",
        "portal-url": "Project:Portal comunitário",
        "privacy": "Política de privacidade",
-       "privacypage": "Project:Política_de_privacidade",
+       "privacypage": "Project:Política de privacidade",
        "badaccess": "Erro de permissão",
        "badaccess-group0": "Não está autorizado a executar a operação solicitada.",
        "badaccess-groups": "A operação solicitada está limitada a utilizadores {{PLURAL:$2|do grupo|de um dos seguintes grupos}}: $1.",
        "readonly_lag": "A base de dados foi automaticamente bloqueada enquanto os servidores secundários se sincronizam com o primário",
        "internalerror": "Erro interno",
        "internalerror_info": "Erro interno: $1",
+       "internalerror-fatal-exception": "Exceção fatal do tipo \"$1\"",
        "filecopyerror": "Não foi possível copiar o ficheiro \"$1\" para \"$2\".",
        "filerenameerror": "Não foi possível alterar o nome do ficheiro \"$1\" para \"$2\".",
        "filedeleteerror": "Não foi possível eliminar o ficheiro \"$1\".",
        "no-null-revision": "Não foi possível criar uma nova revisão nula para a página \"$1\"",
        "badtitle": "Título inválido",
        "badtitletext": "O título de página solicitado era inválido, vazio, ou a ligação interlínguas estava incorreta.\nTalvez contenha um ou mais caracteres que não podem ser usados em títulos.",
+       "title-invalid-empty": "O título da página solicitada está vazio ou contém apenas o nome de um domínio.",
+       "title-invalid-utf8": "O título da página solicitada contém uma sequência UTF-8 inválida.",
+       "title-invalid-interwiki": "O título da página solicitada contém uma ligação interlíngua que não pode ser utilizada em títulos.",
+       "title-invalid-talk-namespace": "O título da página solicitada refere-se a uma página de discussão que não existe.",
+       "title-invalid-characters": "O título da página solicitada contém carateres inválidos: \"$1\".",
+       "title-invalid-too-long": "O título da página solicitada é demasiado longo. Não deverá ser maior que $1 {{PLURAL:$1|byte|bytes}} na codificação UTF-8.",
        "perfcached": "Os seguintes dados encontram-se armazenados na ''cache'' e podem não estar atualizados. No máximo {{PLURAL:$1|um resultado é disponível|$1 resultados são disponíveis}} na ''cache''.",
        "perfcachedts": "Os seguintes dados encontram-se armazenados na ''cache'' e foram atualizados pela última vez a $1. No máximo {{PLURAL:$4|um resultado está disponível|$4 resultados estão disponíveis}} na ''cache''.",
        "querypage-no-updates": "As atualizações estão presentemente desativadas para esta página.\nPor enquanto, os dados aqui presentes não poderão ser atualizados.",
        "virus-badscanner": "Má configuração: antivírus desconhecido: ''$1''",
        "virus-scanfailed": "a verificação falhou (código $1)",
        "virus-unknownscanner": "antivírus desconhecido:",
-       "logouttext": "'''Já não está autenticado.'''\n\nTenha em atenção que algumas páginas poderão continuar a ser apresentadas como se ainda estivesse autenticado até limpar a cache do seu navegador.",
+       "logouttext": "<strong>Já não está autenticado.</strong>\n\nTenha em atenção que algumas páginas poderão continuar a ser apresentadas como se ainda estivesse autenticado até limpar a ''cache'' do seu navegador.",
        "welcomeuser": "Bem-vindo, $1!",
        "welcomecreation-msg": "A sua conta foi criada.\nNão se esqueça de personalizar as suas [[Special:Preferences|preferências]].",
        "yourname": "Nome de utilizador(a):",
        "login-throttled": "Realizou demasiadas tentativas de início de sessão com esta conta.\nAguarde $1 antes de tentar novamente, por favor.",
        "login-abort-generic": "O início de sessão não teve êxito - Cancelado",
        "login-migrated-generic": "A sua conta foi migrada e o seu nome de utilizador já não existe nesta wiki.",
-       "loginlanguagelabel": "Língua: $1",
+       "loginlanguagelabel": "Idioma: $1",
        "suspicious-userlogout": "O seu pedido para sair foi negado porque parece ter sido enviado por um navegador danificado ou por um proxy com cache.",
        "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",
        "passwordreset-emailtitle": "Detalhes da conta na {{SITENAME}}",
        "passwordreset-emailtext-ip": "Alguém (provavelmente você, a partir do endereço IP $1) pediu a recuperação da palavra-passe no projeto {{SITENAME}} ($4). {{PLURAL:$3|A seguinte conta de utilizador está associada|As seguintes contas de utilizador estão associadas}} a este correio eletrónico:\n\n$2\n\n{{PLURAL:$3|Esta palavra-passe temporária irá|Estas palavras-passes temporárias irão}} expirar dentro de {{PLURAL:$5|um dia|$5 dias}}.\nDeve autenticar-se e escolher uma palavra-passe nova agora. Se outra pessoa fez este pedido, ou se entretanto se recordou da sua palavra-passe original e já não deseja alterá-la, pode ignorar esta mensagem e continuar a usar a palavra-passe antiga.",
        "passwordreset-emailtext-user": "O utilizador $1 do projeto {{SITENAME}} pediu a recuperação da sua palavra-passe no projeto {{SITENAME}} ($4). {{PLURAL:$3|A seguinte conta de utilizador está associada|As seguintes contas de utilizador estão associadas}} a este endereço de correio eletrónico:\n\n$2\n\n{{PLURAL:$3|Esta palavra-passe temporária irá|Estas palavras-passes temporárias irão}} expirar dentro de {{PLURAL:$5|um dia|$5 dias}}.\nDeve autenticar-se e escolher uma palavra-passe nova agora. Se outra pessoa fez este pedido, ou se entretanto se recordou da sua palavra-passe original e já não deseja alterá-la, pode ignorar esta mensagem e continuar a usar a palavra-passe antiga.",
-       "passwordreset-emailelement": "Utilizador: $1\nPalavra-passe temporária: $2",
+       "passwordreset-emailelement": "Utilizador(a): $1\nPalavra-passe temporária: $2",
        "passwordreset-emailsent": "Foi enviado um correio eletrónico para recuperação da 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",
        "resettokens-no-tokens": "Não há chaves para redefinir.",
        "resettokens-legend": "Redefinir chaves",
        "resettokens-tokens": "Chaves:",
-       "resettokens-token-label": "$1 (valor actual: $2)",
+       "resettokens-token-label": "$1 (valor atual: $2)",
        "resettokens-watchlist-token": "Chave para o ''feed'' Atom/RSS de [[Special:Watchlist|mudanças às páginas vigiadas]]",
        "resettokens-done": "As chaves foram redefinidas.",
        "resettokens-resetbutton": "Redefinir chaves selecionadas",
        "extlink_sample": "http://www.example.com ligação externa",
        "extlink_tip": "Ligação externa (lembre-se do prefixo http://)",
        "headline_sample": "Texto do cabeçalho",
-       "headline_tip": "Seção de nível 2",
+       "headline_tip": "Secção de nível 2",
        "nowiki_sample": "Inserir texto não-formatado aqui",
        "nowiki_tip": "Ignorar formatação wiki",
        "image_sample": "Exemplo.jpg",
        "missingcommentheader": "'''Atenção:''' Não introduziu um assunto ou cabeçalho para este comentário.\nSe clicar novamente \"{{int:savearticle}}\", a sua edição será gravada sem assunto ou cabeçalho.",
        "summary-preview": "Antevisão do resumo:",
        "subject-preview": "Antevisão do assunto/cabeçalho:",
+       "previewerrortext": "Ocorreu um erro enquanto tentava antever as suas alterações.",
        "blockedtitle": "O utilizador está bloqueado",
        "blockedtext": "<strong>O seu nome de utilizador ou endereço IP foram bloqueados.</strong>\n\nO bloqueio foi realizado por $1.\nO motivo apresentado foi <em>$2</em>.\n\n* Início do bloqueio: $8\n* Expiração do bloqueio: $6\n* Destinatário do bloqueio: $7\n\nPode contactar $1 ou outro [[{{MediaWiki:Grouppage-sysop}}|administrador]] para discutir o bloqueio.\nNote que para utilizar a funcionalidade \"Contactar utilizador\" precisa de ter um endereço de correio eletrónico válido nas suas [[Special:Preferences|preferências]] e de não lhe ter sido bloqueado o uso desta funcionalidade.\nO seu endereço IP neste momento é $3 e a identificação (ID) do bloqueio é #$5.\nInclua todos os detalhes acima em quaisquer contactos relacionados com este bloqueio, por favor.",
        "autoblockedtext": "O seu endereço IP foi bloqueado de forma automática porque foi utilizado recentemente por outro utilizador, o qual foi bloqueado por $1.\nO motivo apresentado foi:\n\n:<em>$2</em>\n\n* Início do bloqueio: $8\n* Expiração do bloqueio: $6\n* Destinatário do bloqueio: $7\n\nPode contactar $1 ou outro [[{{MediaWiki:Grouppage-sysop}}|administrador]] para discutir o bloqueio.\n\nNote que para utilizar a funcionalidade \"Contactar utilizador\" precisa de ter um endereço de correio eletrónico válido nas suas [[Special:Preferences|preferências]] e de não lhe ter sido bloqueado o uso desta funcionalidade.\n\nO seu endereço IP neste momento é $3 e a identificação (ID) do bloqueio é #$5.\nInclua todos os detalhes acima em quaisquer contactos relacionados com este bloqueio, por favor.",
        "accmailtext": "Uma palavra-passe gerada aleatoriamente para [[User talk:$1|$1]] foi enviada para $2.\n\nEla pode ser alterada na página [[Special:ChangePassword|de alteração da palavra-passe]] após iniciar sessão.",
        "newarticle": "(Nova)",
        "newarticletext": "Seguiu uma ligação para uma página que ainda não existe.\nPara criá-la, escreva o seu conteúdo na caixa abaixo (consulte a [$1 página de ajuda] para mais detalhes).\nSe chegou aqui por engano, clique o botão '''voltar''' (ou ''back'') do seu navegador.",
-       "anontalkpagetext": "----''Esta é a página de discussão de um utilizador anónimo que ainda não criou uma conta ou não a utiliza, pelo que temos de utilizar o endereço IP para identificá-lo(a).\nUm endereço IP pode ser partilhado por vários utilizadores.\nSe é um utilizador anónimo e sente que lhe foram direccionados comentários irrelevantes, por favor [[Special:UserLogin/signup|crie uma conta]] ou [[Special:UserLogin|inicie sessão]] para evitar futuras confusões com outros utilizadores anónimos.''",
+       "anontalkpagetext": "----''Esta é a página de discussão de um utilizador anónimo que ainda não criou uma conta ou não a utiliza, pelo que temos de utilizar o endereço IP para identificá-lo(a).\nUm endereço IP pode ser partilhado por vários utilizadores.\nSe é um utilizador anónimo e sente que lhe foram direcionados comentários irrelevantes, por favor [[Special:UserLogin/signup|crie uma conta]] ou [[Special:UserLogin|inicie sessão]] para evitar futuras confusões com outros utilizadores anónimos.''",
        "noarticletext": "Ainda não existe texto nesta página.\nPode [[Special:Search/{{PAGENAME}}|pesquisar o título desta página]] noutras páginas,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} procurar registos relacionados]\nou [{{fullurl:{{FULLPAGENAME}}|action=edit}} editar esta página]</span>.",
        "noarticletext-nopermission": "Ainda não existe texto nesta página.\nPode [[Special:Search/{{PAGENAME}}|pesquisar o título desta página]] noutras páginas, ou <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} procurar nos registos relacionados]</span>, mas não tem permissão para criar esta página.",
        "missing-revision": "A revisão #$1 da página denominada \"{{FULLPAGENAME}}\" não existe.\n\nIsto é geralmente causado por seguir uma ligação de histórico desatualizada para uma página que foi eliminada.\nOs detalhes podem ser encontrados no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminação].",
        "yourtext": "O seu texto",
        "storedversion": "Versão gravada",
        "nonunicodebrowser": "'''Aviso: O seu navegador não é compatível com as especificações Unicode.\nFoi activado um sistema de edição alternativo que lhe permite editar as páginas com segurança: os caracteres não-ASCII aparecerão na caixa de edição no formato de códigos hexadecimais.'''",
-       "editingold": "'''Aviso: Está a editar uma revisão desactualizada desta página.'''\nSe gravar, todas as mudanças feitas a partir desta revisão serão perdidas.",
+       "editingold": "'''Aviso: Está a editar uma revisão desatualizada desta página.'''\nSe gravar, todas as mudanças feitas a partir desta revisão serão perdidas.",
        "yourdiff": "Diferenças",
        "copyrightwarning": "Note, por favor, que todas as suas contribuições na {{SITENAME}} são consideradas publicadas nos termos da licença $2 (consulte $1 para mais detalhes).\nSe não deseja que o seu texto possa ser inexoravelmente editado e redistribuído, não o envie.\nGarante-nos também que isto é algo escrito por si, ou copiado do domínio público ou de outra fonte de teor livre.<br />\n'''Não envie conteúdos cujos direitos de autor estão protegidos, sem ter a devida permissão!'''",
        "copyrightwarning2": "Note, por favor, que todas as suas contribuições na {{SITENAME}} podem ser editadas, alteradas ou removidas por outros utilizadores.\nSe não deseja que o seu texto seja inexoravelmente editado, não o envie.<br />\nGarante-nos também que isto é algo escrito por si, ou copiado do domínio público ou de outra fonte de teor livre (consulte $1 para mais detalhes).<br />\n'''Não envie conteúdos cujos direitos de autor estão protegidos, sem ter a devida permissão!'''",
        "titleprotectedwarning": "'''Aviso: Esta página foi protegida de forma a que [[Special:ListGroupRights|privilégios específicos]] sejam necessários para criá-la.'''\nPara referência, é apresentada abaixo a última entrada do registo:",
        "templatesused": "{{PLURAL:$1|Predefinição utilizada|Predefinições utilizadas}} nesta página:",
        "templatesusedpreview": "{{PLURAL:$1|Predefinição utilizada|Predefinições utilizadas}} nesta antevisão:",
-       "templatesusedsection": "{{PLURAL:$1|Predefinição utilizada|Predefinições utilizadas}} nesta seção:",
+       "templatesusedsection": "{{PLURAL:$1|Predefinição utilizada|Predefinições utilizadas}} nesta secção:",
        "template-protected": "(protegida)",
        "template-semiprotected": "(semi-protegida)",
        "hiddencategories": "Esta página pertence a {{PLURAL:$1|uma categoria oculta|$1 categorias ocultas}}:",
        "edittools": "<!-- O texto colocado aqui será mostrado abaixo dos formulários de edição e de envio de ficheiros. -->",
        "nocreatetext": "A {{SITENAME}} restringe a criação de páginas novas por utilizadores anónimos.\nPode voltar atrás e editar uma página já existente, ou [[Special:UserLogin|inicie sessão ou criar uma conta]].",
        "nocreate-loggedin": "Não possui permissão para criar novas páginas.",
-       "sectioneditnotsupported-title": "Edição de seções não suportada",
-       "sectioneditnotsupported-text": "A edição de seções não é suportada nesta página de edição.",
+       "sectioneditnotsupported-title": "Edição de secções não suportada",
+       "sectioneditnotsupported-text": "A edição de secções não é suportada nesta página de edição.",
        "permissionserrors": "Erro de permissão",
        "permissionserrorstext": "Não possui permissão para fazer isso, {{PLURAL:$1|pelo seguinte motivo|pelos seguintes motivos}}:",
        "permissionserrorstext-withaction": "Não possui permissão para $2, {{PLURAL:$1|pelo seguinte motivo|pelos seguintes motivos}}:",
        "post-expand-template-inclusion-category": "Páginas onde o tamanho de inclusão de predefinições é excedido",
        "post-expand-template-argument-warning": "Aviso: Esta página contém pelo menos um argumento de predefinição com um tamanho expandido demasiado grande.\nEstes argumentos foram omitidos.",
        "post-expand-template-argument-category": "Páginas com omissão de argumentos para predefinições",
-       "parser-template-loop-warning": "Ciclo de predefinições detectado: [[$1]]",
+       "parser-template-loop-warning": "Ciclo de predefinições detetado: [[$1]]",
        "parser-template-recursion-depth-warning": "Foi excedido o limite da profundidade de recursividade nas predefinições ($1)",
        "language-converter-depth-warning": "O limite de profundidade do conversor de idiomas excedeu a ($1)",
        "node-count-exceeded-category": "Páginas em que o total de nós é excedido",
        "previousrevision": "← Revisão anterior",
        "nextrevision": "Revisão seguinte →",
        "currentrevisionlink": "Revisão atual",
-       "cur": "act",
+       "cur": "atu",
        "next": "prox",
        "last": "ant",
        "page_first": "primeira",
        "page_last": "última",
        "histlegend": "Seleção de diferenças: use os botões de opção para marcar as versões que deseja comparar.\nPressione 'Enter' ou clique o botão \"{{int:compareselectedversions}}\".<br />\nLegenda: '''({{int:cur}})''' = diferenças para a versão atual,\n'''({{int:last}})''' = diferenças para a versão anterior,\n'''{{int:minoreditletter}}''' = edição menor",
        "history-fieldset-title": "Navegar pelo histórico",
-       "history-show-deleted": "Somente eliminados",
+       "history-show-deleted": "Somente eliminadas",
        "histfirst": "Mais antigas",
        "histlast": "Mais novas",
        "historysize": "({{PLURAL:$1|1 byte|$1 bytes}})",
        "historyempty": "(vazia)",
-       "history-feed-title": "História de revisão",
+       "history-feed-title": "Histórico de revisão",
        "history-feed-description": "Histórico de edições para esta página nesta wiki",
        "history-feed-item-nocomment": "$1 em $2",
        "history-feed-empty": "A página solicitada não existe.\nPode ter sido eliminada da wiki ou o nome sido alterado.\nTente [[Special:Search|pesquisar na wiki]] novas páginas relevantes.",
        "revdelete-no-file": "O ficheiro especificado não existe.",
        "revdelete-show-file-confirm": "Tem a certeza de que quer ver uma revisão eliminada do ficheiro \"<nowiki>$1</nowiki>\" de $2 às $3?",
        "revdelete-show-file-submit": "Sim",
-       "revdelete-selected-text": "{{PLURAL:$1|Revisão seleccionada|Revisões seleccionadas}} de [[:$2]]:",
-       "revdelete-selected-file": "{{PLURAL:$1|Versão do ficheiro seleccionada|Versões do ficheiro seleccionadas}} de [[:$2]]:",
+       "revdelete-selected-text": "{{PLURAL:$1|Revisão selecionada|Revisões selecionadas}} de [[:$2]]:",
+       "revdelete-selected-file": "{{PLURAL:$1|Versão do ficheiro selecionada|Versões do ficheiro selecionadas}} de [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|Evento do registo selecionado|Eventos do registo selecionados}}:",
        "revdelete-text-text": "Revisões eliminadas ainda aparecerão no histórico da página, mas parte do seu conteúdo estará inacessível para o público.",
        "revdelete-text-file": "Versões eliminadas do ficheiro ainda aparecerão no histórico da página, mas parte do seu conteúdo estará inacessível para o público.",
        "search-result-size": "$1 ({{PLURAL:$2|1 palavra|$2 palavras}})",
        "search-result-category-size": "{{PLURAL:$1|1 membro|$1 membros}} ({{PLURAL:$2|1 subcategoria|$2 subcategorias}}, {{PLURAL:$3|1 ficheiro|$3 ficheiros}})",
        "search-redirect": "(redirecionamento de $1)",
-       "search-section": "(seção $1)",
+       "search-section": "(secção $1)",
        "search-category": "(categoria $1)",
        "search-file-match": "(coincide com o conteúdo do ficheiro)",
        "search-suggest": "Será que quis dizer: $1",
        "userrights-lookup-user": "Gerir grupos de utilizadores",
        "userrights-user-editname": "Introduza um nome de utilizador:",
        "editusergroup": "Editar grupos do utilizador",
-       "editinguser": "A modificar os privilégios do utilizador '''[[User:$1|$1]]''' $2",
+       "editinguser": "A modificar os privilégios {{GENDER:$1|do utilizador|da utilizadora|do(a) utilizador(a)}}  <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Editar grupos do utilizador",
        "saveusergroups": "Gravar grupos do utilizador",
        "userrights-groupsmember": "Membro de:",
        "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-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",
        "newuserlogpage": "Registo de criação de utilizadores",
        "newuserlogpagetext": "Este é um registo de novas contas de utilizador",
        "rightslog": "Registo de privilégios de utilizador",
        "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-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}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|desde a última visita}}",
        "enhancedrc-history": "histórico",
        "rc_categories": "Limitar às categorias (separar com \"|\")",
        "rc_categories_any": "Qualquer",
        "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} após mudança",
-       "newsectionsummary": "/* $1 */ nova seção",
+       "newsectionsummary": "/* $1 */ nova secção",
        "rc-enhanced-expand": "Mostrar detalhes",
        "rc-enhanced-hide": "Ocultar detalhes",
        "rc-old-title": "originalmente criado como \"$1\"",
        "upload-tryagain": "Submeta a descrição do ficheiro modificado",
        "uploadnologin": "Não autenticado",
        "uploadnologintext": "Tem de $1 para enviar ficheiros.",
-       "upload_directory_missing": "O diretório de carregamento de ficheiros ($1) não existe e o servidor de internet não conseguiu criá-lo.",
+       "upload_directory_missing": "O diretório de carregamento de ficheiros ($1) não existe e o servidor de Internet não conseguiu criá-lo.",
        "upload_directory_read_only": "O servidor de Internet não possui permissão de escrita no diretório de carregamento de ficheiros ($1).",
        "uploaderror": "Erro ao carregar",
        "upload-recreate-warning": "'''Aviso: Um ficheiro com esse nome foi eliminado ou movido.'''\n\nPara sua conveniência, é apresentado de seguida o registo de eliminação e de movimento da página:",
-       "uploadtext": "Utilize o formulário abaixo para fazer o carregamento de novos ficheiros.\nPara ver ou pesquisar ficheiros anteriormente enviados, consulte a [[Special:FileList|lista de ficheiros]].\nOs reenvios de um ficheiro são também registados no [[Special:Log/upload|registo de carregamentos]] e as eliminações no [[Special:Log/delete|registo de eliminações]].\n\nPara utilizar um ficheiro numa página, depois de ter feito o carregamento, insira uma ligação com um dos seguintes formatos:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:ficheiro.jpg]]</nowiki></code>''' para mostrar uma imagem nas suas dimensões originais;\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:ficheiro.png|200px|thumb|left|texto]]</nowiki></code>''' para mostrar uma imagem com a dimensão horizontal de 200 pixels, dentro de uma caixa, na margem esquerda, contendo 'texto' como descrição (pode usar subconjuntos destas características);\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:ficheiro.ogg]]</nowiki></code>''' para apresentar uma ligação direta para o ficheiro em vez de mostrá-lo, quer este tenha por conteúdo uma imagem ou outros dados.",
+       "uploadtext": "Utilize o formulário abaixo para fazer o carregamento de novos ficheiros.\nPara ver ou pesquisar ficheiros anteriormente enviados, consulte a [[Special:FileList|lista de ficheiros]].\nOs reenvios de um ficheiro são também registados no [[Special:Log/upload|registo de carregamentos]] e as eliminações no [[Special:Log/delete|registo de eliminações]].\n\nPara utilizar um ficheiro numa página, depois de ter feito o carregamento, insira uma ligação com um dos seguintes formatos:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:ficheiro.jpg]]</nowiki></code>''' para mostrar uma imagem nas suas dimensões originais;\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:ficheiro.png|200px|thumb|left|texto]]</nowiki></code>''' para mostrar uma imagem com a dimensão horizontal de 200 pixeis, dentro de uma caixa, na margem esquerda, contendo 'texto' como descrição (pode usar subconjuntos destas características);\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:ficheiro.ogg]]</nowiki></code>''' para apresentar uma ligação direta para o ficheiro em vez de mostrá-lo, quer este tenha por conteúdo uma imagem ou outros dados.",
        "upload-permitted": "{{PLURAL:$2|Tipo|Tipos}} de ficheiro {{PLURAL:$2|permitido|permitidos}}: $1.",
        "upload-preferred": "{{PLURAL:$2|Tipo|Tipos}} de ficheiro {{PLURAL:$2|preferido|preferidos}}: $1.",
        "upload-prohibited": "{{PLURAL:$2|Tipo|Tipos}} de ficheiro {{PLURAL:$2|proibido|proibidos}}: $1.",
        "badfilename": "O nome do ficheiro foi alterado para \"$1\".",
        "filetype-mime-mismatch": "A extensão \".$1\" não corresponde ao tipo MIME do ficheiro ($2).",
        "filetype-badmime": "Não é permitido carregar ficheiros do tipo MIME \"$1\".",
-       "filetype-bad-ie-mime": "Não é possível carregar este ficheiro porque o Internet Explorer o detectaria como \"$1\", que é um tipo de ficheiro não permitido e potencialmente perigoso.",
+       "filetype-bad-ie-mime": "Não é possível carregar este ficheiro porque o Internet Explorer o detetaria como \"$1\", que é um tipo de ficheiro não permitido e potencialmente perigoso.",
        "filetype-unwanted-type": "'''\".$1\"''' não é um tipo de ficheiro desejado.\n{{PLURAL:$3|O tipo preferido é|Os tipos preferidos são}} $2.",
        "filetype-banned-type": "'''\".$1\"''' {{PLURAL:$4|não é um tipo de ficheiro permitido|não são tipos de ficheiro permitidos}}.\n{{PLURAL:$3|O tipo de ficheiro permitido é|Os tipos de ficheiro permitidos são}} $2.",
        "filetype-missing": "O ficheiro não possui uma extensão (como, por exemplo, \".jpg\").",
        "img-auth-badtitle": "Não é possível construir um título válido a partir de \"$1\".",
        "img-auth-nologinnWL": "Não tem a sessão iniciada e o ficheiro \"$1\" não está na lista branca.",
        "img-auth-nofile": "O ficheiro \"$1\" não existe.",
-       "img-auth-isdir": "Está tentando aceder ao diretório \"$1\".\nSó é permitido o acesso a ficheiros.",
+       "img-auth-isdir": "Está a tentar aceder ao diretório \"$1\".\nSó é permitido o acesso a ficheiros.",
        "img-auth-streaming": "A fazer a transmissão de \"$1\".",
        "img-auth-public": "A função do img_auth.php é produzir ficheiros a partir de uma wiki privada.\nEsta wiki está configurada como uma wiki pública.\nPara optimizar a segurança, o img_auth.php está impossibilitado de executar.",
        "img-auth-noread": "O utilizador não tem acesso de leitura ao ficheiro \"$1\".",
        "upload_source_file": "(um ficheiro no seu computador)",
        "listfiles-delete": "eliminar",
        "listfiles-summary": "Esta página especial mostra todos os ficheiros carregados.",
-       "listfiles_search_for": "Pesquisar por nome de imagem:",
+       "listfiles_search_for": "Pesquisar por nome de média:",
        "listfiles-userdoesnotexist": "A conta de utilizador \"$1\" não está registada.",
        "imgfile": "ficheiro",
        "listfiles": "Ficheiros",
        "pageswithprop-prophidden-binary": "foi ocultado o valor da propriedade por ser binário ($1)",
        "doubleredirects": "Redirecionamentos duplos",
        "doubleredirectstext": "Esta página lista todas as páginas que redirecionam para outras páginas de redirecionamento.\nCada linha contém ligações para o primeiro e segundo redirecionamentos, bem como o destino do segundo redirecionamento, geralmente contendo a verdadeira página de destino, que devia ser o destino do primeiro redirecionamento.\n<del>Entradas cortadas</del> já foram solucionadas.",
-       "double-redirect-fixed-move": "[[$1]] foi movida.\nEla foi actualizada automaticamente e agora redirecciona para [[$2]].",
+       "double-redirect-fixed-move": "[[$1]] foi movida.\nEla foi atualizada automaticamente e agora redireciona para [[$2]].",
        "double-redirect-fixed-maintenance": "A corrigir automaticamente o redirecionamento duplo de [[$1]] para [[$2]], em um trabalho de manutenção.",
        "double-redirect-fixer": "Corretor de redirecionamentos",
        "brokenredirects": "Redirecionamentos quebrados",
        "broken-file-category-desc": "A página contém uma ligação quebrada para um ficheiro (uma ligação para incorporar um ficheiro que não existe).",
        "hidden-category-category-desc": "Esta é uma categoria com a marca <code><nowiki>__HIDDENCAT__</nowiki></code>, que faz com que ela não apareça na caixa de ligações de categoria nas páginas, por omissão.",
        "trackingcategories-nodesc": "Nenhuma descrição disponível.",
-       "trackingcategories-disabled": "A categoria está desactivada.",
+       "trackingcategories-disabled": "A categoria está desativada.",
        "mailnologin": "Não existe endereço de envio",
        "mailnologintext": "Precisa de estar [[Special:UserLogin|autenticado]] e ter um endereço de correio válido nas suas [[Special:Preferences|preferências]], para poder enviar correio eletrónico a outros utilizadores.",
        "emailuser": "Enviar correio eletrónico a este utilizador",
        "block-log-flags-anononly": "apenas utilizadores anónimos",
        "block-log-flags-nocreate": "criação de contas impossibilitada",
        "block-log-flags-noautoblock": "bloqueio automático desativado",
-       "block-log-flags-noemail": "correio electrónico desactivado",
+       "block-log-flags-noemail": "correio eletrónico desativado",
        "block-log-flags-nousertalk": "impossibilitado de editar a própria página de discussão",
        "block-log-flags-angry-autoblock": "ativado o bloqueio automático melhorado",
        "block-log-flags-hiddenname": "nome de utilizador oculto",
        "tooltip-pt-createaccount": "É encorajado a criar uma conta e iniciar sessão; no entanto, não é obrigatório",
        "tooltip-ca-talk": "Discussão sobre o conteúdo da página",
        "tooltip-ca-edit": "Pode editar esta página.\nUtilize o botão de antevisão do resultado antes de gravar, por favor.",
-       "tooltip-ca-addsection": "Iniciar uma nova seção",
+       "tooltip-ca-addsection": "Iniciar uma nova secção",
        "tooltip-ca-viewsource": "Esta página está protegida.\nApenas pode visualizar o seu conteúdo",
        "tooltip-ca-history": "Edições anteriores desta página.",
        "tooltip-ca-protect": "Proteger esta página",
        "filedelete-missing": "Não é possível eliminar \"$1\" já que o ficheiro não existe.",
        "filedelete-old-unregistered": "A edição de ficheiro especificada para \"$1\" não se encontra na base de dados.",
        "filedelete-current-unregistered": "O ficheiro \"$1\" não se encontra na base de dados.",
-       "filedelete-archive-read-only": "O servidor de internet não é capaz de fazer alterações no diretório \"$1\".",
+       "filedelete-archive-read-only": "O servidor de Internet não é capaz de fazer alterações no diretório \"$1\".",
        "previousdiff": "← Edição anterior",
        "nextdiff": "Edição posterior →",
        "mediawarning": "<strong>Aviso:</strong> Este tipo de ficheiro pode conter código malicioso.\nSe o executar, o seu sistema pode ficar comprometido.",
        "exif-fixtureidentifier": "Nome da coluna",
        "exif-locationdest": "Localização representada",
        "exif-locationdestcode": "Código da localização representada",
-       "exif-objectcycle": "Altura do dia para a qual o conteúdo está direccionado",
+       "exif-objectcycle": "Altura do dia para a qual o conteúdo está direcionado",
        "exif-contact": "Informação de contacto",
        "exif-writer": "Escritor",
        "exif-languagecode": "Língua",
        "version-libraries": "Bibliotecas instaladas",
        "version-libraries-library": "Biblioteca",
        "version-libraries-version": "Versão",
-       "redirect": "Redireccionar pelo ID do ficheiro, do utilizador ou da revisão",
+       "redirect": "Redirecionar pelo ID do ficheiro, do utilizador ou da revisão",
        "redirect-legend": "Redirecionar para um ficheiro ou página",
-       "redirect-summary": "Esta página especial redirecciona para um ficheiro (dado o nome do ficheiro), para uma página (dado um ID de revisão ou página) ou para uma página de utilizador (dado um ID numérico do utilizador). Utilização: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/revision/328429]] ou [[{{#Special:Redirect}}/user/101]].",
+       "redirect-summary": "Esta página especial redireciona para um ficheiro (dado o nome do ficheiro), para uma página (dado um ID de revisão ou página) ou para uma página de utilizador (dado um ID numérico do utilizador). Utilização: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/revision/328429]] ou [[{{#Special:Redirect}}/user/101]].",
        "redirect-submit": "Ir",
        "redirect-lookup": "Pesquisa:",
        "redirect-value": "Valor:",
        "tags-deactivate-reason": "Motivo:",
        "tags-deactivate-not-allowed": "Não é possível desativar a etiqueta \"$1\".",
        "tags-deactivate-submit": "Desativar",
+       "tags-apply-no-permission": "Não possui privilégios para aplicar alterações a etiquetas em conjunto com as suas modificações.",
        "tags-apply-not-allowed-one": "A etiqueta \"$1\" não pode ser aplicada manualmente.",
        "tags-apply-not-allowed-multi": "{{PLURAL:$2|A seguinte etiqueta não pode ser aplicada|As seguintes etiquetas não podem ser aplicadas}} manualmente: $1",
+       "tags-update-no-permission": "Não possui privilégios para adicionar ou remover etiquetas de revisões individuais ou entradas de registo.",
        "tags-update-add-not-allowed-one": "A etiqueta \"$1\" não pode ser adicionada manualmente.",
        "tags-update-add-not-allowed-multi": "{{PLURAL:$2|A seguinte etiqueta não pode ser adicionada|As seguintes etiquetas não podem ser adicionadas}} manualmente: $1",
        "tags-update-remove-not-allowed-one": "A remoção da etiqueta \"$1\" não é permitida.",
        "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|A seguinte etiqueta não pode ser removida|As seguintes etiquetas não podem ser removidas}} manualmente: $1",
        "tags-edit-title": "Editar etiquetas",
        "tags-edit-manage-link": "Gerir etiquetas",
+       "tags-edit-revision-selected": "{{PLURAL:$1|Revisão selecionada|Revisões selecionadas}} de [[:$2]]:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Entrada de registo selecionada|Entradas de registo selecionadas}}:",
+       "tags-edit-revision-legend": "Adicionar ou remover etiquetas {{PLURAL:$1|desta revisão|de todas as $1 revisões}}",
        "tags-edit-logentry-legend": "Adicionar ou remover etiquetas {{PLURAL:$1|desta entrada de registo|de todas as $1 entradas de registo}}",
        "tags-edit-existing-tags": "Etiquetas existentes:",
        "tags-edit-existing-tags-none": "''Nenhuma''",
        "tags-edit-remove": "Remover estas etiquetas:",
        "tags-edit-remove-all-tags": "(remover todas as etiquetas)",
        "tags-edit-chosen-placeholder": "Selecione algumas etiquetas",
+       "tags-edit-chosen-no-results": "Não foram encontradas correspondências de etiquetas",
        "tags-edit-reason": "Motivo:",
+       "tags-edit-revision-submit": "Aplicar alterações a {{PLURAL:$1|esta revisões|$1 revisões}}",
+       "tags-edit-logentry-submit": "Aplicar alterações a {{PLURAL:$1|esta entrada de registo|$1 entradas de registo}}",
        "tags-edit-success": "As alterações foram aplicadas com sucesso.",
        "tags-edit-failure": "As alterações não puderam ser aplicadas:\n$1",
        "tags-edit-none-selected": "Por favor, selecione pelo menos uma etiqueta para adicionar ou remover.",
        "logentry-managetags-activate": "$1 {{GENDER:$2|ativou}} a etiqueta \"$4\" para uso de utilizadores e robôs.",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|desativou}} a etiqueta \"$4\" para uso de utilizadores e robôs.",
        "log-name-tag": "Registo de etiquetas",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|adicionou}} {{PLURAL:$7|a etiqueta|as etiquetas}} $6 à revisão $4 da página $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|adicionou}} {{PLURAL:$7|a etiqueta|as etiquetas}} $6 à entrada de registo $5 da página $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|removeu}} {{PLURAL:$9|a etiqueta|as etiquetas}} $8 da revisão $4 da página $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|removeu}} {{PLURAL:$9|a etiqueta|as etiquetas}} $8 da entrada de registo $5 da página $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|atualizou}} as etiquetas na revisão $4 da página $3 ($6 {{PLURAL:$7|adicionadas}}; $8 {{PLURAL:$9|removidas}})",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|atualizou}} as etiquetas na entrada de registo $5 da página $3 ($6 {{PLURAL:$7|adicionadas}}; $8 {{PLURAL:$9|removidas}})",
        "rightsnone": "(nenhum)",
        "revdelete-summary": "editar resumo",
        "feedback-adding": "A acrescentar os comentários à página...",
        "json-error-recursion": "Uma ou mais referências recursivas no valor a ser codificado",
        "json-error-inf-or-nan": "Um ou mais valores NaN ou INF no valor a ser codificado",
        "json-error-unsupported-type": "Foi dado um valor de um tipo que não pode ser codificado",
-       "headline-anchor-title": "Ligação para esta seção",
+       "headline-anchor-title": "Ligação para esta secção",
        "special-characters-group-latin": "Latim",
        "special-characters-group-latinextended": "Latim expandido",
        "special-characters-group-ipa": "IPA",
index fd58eea..cd2e0e2 100644 (file)
                        "Tacsipacsi",
                        "Totosunarto",
                        "Macofe",
-                       "FRacco"
+                       "FRacco",
+                       "Robin0van0der0vliet"
                ]
        },
        "sidebar": "{{notranslate}}",
        "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.",
+       "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}}",
        "expensive-parserfunction-warning": "On some (expensive) [[MetaWikipedia:Help:ParserFunctions|parser functions]] (e.g. <code><nowiki>{{#ifexist:}}</nowiki></code>) there is a limit of how many times it may be used. This is an error message shown when the limit is exceeded.\n\nParameters:\n* $1 - the current number of parser function calls\n* $2 - the allowed number of parser function calls\nSee also [[:mw:Manual:$wgExpensiveParserFunctionLimit|$wgExpensiveParserFunctionLimit in the MediaWiki manual]].\n\nSee also:\n* {{msg-mw|Expensive-parserfunction-category}}",
        "userrights-lookup-user": "Label text when managing user rights ([[Special:UserRights]])",
        "userrights-user-editname": "Displayed on [[Special:UserRights]].",
        "editusergroup": "Button name, in page [[Special:Userrights]] (only available to administrators), in the section named {{MediaWiki:userrights-lookup-user}}.\n\n{{Identical|Edit user groups}}",
-       "editinguser": "Appears on [[Special:UserRights]]. Parameters:\n* $1 - a username\n* $2 - user tool links. e.g. \"(Talk | contribs | block | send email)\"",
+       "editinguser": "Appears on [[Special:UserRights]]. Parameters:\n* $1 - a plaintext username\n* $2 - user tool links. e.g. \"(Talk | contribs | block | send email)\"",
        "userrights-editusergroup": "Parameter:\n* $1 - (Optional) a username, can be used for GENDER\n{{Identical|Edit user groups}}",
        "saveusergroups": "Button text when editing user groups",
        "userrights-groupsmember": "Used when editing user groups in [[Special:Userrights]].\n\nThe message is followed by a list of group names.\n\nParameters:\n* $1 - (Optional) the number of items in the list following the message, for PLURAL\n* $2 - (Optional) the user name, for GENDER",
        "uploaddisabledtext": "Parameters:\n* $1 - (Optional) the name of the target file. See r22243 and [[bugzilla:8818|bug 8818]].",
        "php-uploaddisabledtext": "This means that file uploading is disabled in PHP, not upload of PHP-files.",
        "uploadscripted": "Used as error message when uploading a file.\n\nSee also:\n* {{msg-mw|zip-wrong-format}}\n* {{msg-mw|uploadjava}}\n* {{msg-mw|uploadvirus}}",
+       "upload-scripted-pi-callback": "Used as error message when uploading an SVG file that contains xml-stylesheet processing instruction.",
+       "uploaded-script-svg": "Used as error message when uploading an SVG file that contains scriptable tags (script, handler, stylesheet, iframe).\n\nParameters:\n* $1 - The scriptable tag that blocked the SVG file from uploading.",
+       "uploaded-hostile-svg": "Used as error message when uploading an SVG file that contains unsafe CSS.",
+       "uploaded-event-handler-on-svg": "Used as error message when uploading an SVG file that contains event-handler attributes.\n\nParameters:\n* $1 - The event-handler attribute that is being modified in the SVG file.\n* $2 - The value that is given to the event-handler attribute.",
+       "uploaded-href-attribute-svg": "Used as error message when uploading an SVG file that contains href attribute with non-local target (like http://, javascript:, etc).\n\nParameters:\n* $1 - The name of the tag containing href attribute.\n* $2 - The attribute \"href\".\n* $3 - The value of the href attribute.",
+       "uploaded-href-unsafe-target-svg": "Used as error message when uploading an SVG file that contains href to some unsafe target.\n\nParameters:\n* $1 - The name of the tag containing href attribute.\n* $2 - The attribute \"href\".\n* $3 - The value of the href attribute.",
+       "uploaded-animate-svg": "Used as error message when uploading an SVG file that contains the element <animate> that might be changing href.\n\nParameters:\n* $1 - The name of the HTML tag.\n* $2 - The name of the attribute.\n* $3 - The value getting assigned to the attribute.",
+       "uploaded-setting-event-handler-svg": "Used as error message when uploading an SVG file that sets the event-handler attribute, using <set> or <animate> tags.\n\nParameters:\n* $1 - The name of the HTML tag.\n* $2 - The name of the attribute.\n* $3 - The value getting assigned to the attribute.",
+       "uploaded-setting-href-svg": "Used as error message when uploading an SVG file that sets the href attribute, using the <set> tag.",
+       "uploaded-wrong-setting-svg": "Used as error message when uploading an SVG file that uses <set> tag to add a remote/data/script target, to an element.\n\nParameters:\n* $1 - The value of remote/data/script target.",
+       "uploaded-setting-handler-svg": "Used as error message when uploading an SVG file that sets the handler attribute with remote/data/script target.\n\nParameters:\n* $1 - The name of the attribute.\n* $2 - The value of the attribute.",
+       "uploaded-remote-url-svg": "Used as error message when uploading an SVG file that contains SVG setting some style attribute with remote URL.\n\nParameters:\n* $1 - The name of the attribute.\n* $2 - The value of the attribute.",
+       "uploaded-image-filter-svg": "Used as error message when uploading an SVG file that contains image filters, as they can pull in URL, which could be an SVG that executes scripts.\n\nParameters:\n* $1 - The name of the HTML tag.\n* $2 - The name of the attribute.\n* $3 - The value getting assigned to the attribute.",
        "uploadscriptednamespace": "Used as error message when uploading a file. This error is specific to SVG files, when they include a namespace that has not been whitelisted.\n\nParameters:\n* $1 - the invalid namespace name\nSee also:\n* {{msg-mw|zip-wrong-format}}\n* {{msg-mw|uploadjava}}\n* {{msg-mw|uploadvirus}}",
        "uploadinvalidxml": "Error message displayed when the uploaded file contains XML that cannot be properly parsed and checked.",
        "uploadvirus": "Error message displayed when uploaded file contains a virus.\n\nParameters:\n* $1 - {{msg-mw|Virus-unknownscanner}}, {{msg-mw|Virus-scanfailed}}, or something\nSee also:\n* {{msg-mw|Uploadscripted}}\n* {{msg-mw|Zip-wrong-format}}\n* {{msg-mw|Uploadjava}}",
        "pageinfo-subpages-value": "Parameters:\n* $1 - the number of subpages of the page\n* $2 - the number of subpages of the page that are redirects\n* $3 - the number of subpages of the page that are not redirects",
        "pageinfo-firstuser": "The user who created the page.",
        "pageinfo-firsttime": "The date and time the page was created.",
-       "pageinfo-lastuser": "ბოლო მომხმარებელი, რომელმაც ეს გვერდი დაარედაქტირა.",
+       "pageinfo-lastuser": "The last user who edited the page.",
        "pageinfo-lasttime": "The date and time the page was last edited.",
        "pageinfo-edits": "Used as label in info page. See [{{canonicalurl:Support|action=info}} example].\n\nThis message is followed by the total number of times the page has been edited.",
        "pageinfo-authors": "The total number of users who have edited the page.",
-       "pageinfo-recent-edits": "The number of times the page has been edited recently. $1 is a localised duration (e.g. 9 days).",
+       "pageinfo-recent-edits": "Number of recent edits: the number of times the page has been edited recently.\n* $1 is a localised duration (e.g. 9 days).",
        "pageinfo-recent-authors": "The number of users who have edited the page recently.",
        "pageinfo-magic-words": "The list of magic words on the page. Parameters:\n* $1 is the number of magic words on the page.",
        "pageinfo-hidden-categories": "The list of hidden categories on the page. Parameters:\n* $1 - the number of hidden categories on the page\n{{Identical|Hidden category}}",
        "exif-componentsconfiguration-5": "{{optional}}\n{{Related|Exif-componentsconfiguration}}",
        "exif-componentsconfiguration-6": "{{optional}}\n{{Related|Exif-componentsconfiguration}}",
        "exif-exposureprogram-0": "{{Related|Exif-exposureprogram}}",
-       "exif-exposureprogram-1": "One of the exposure program types in the table of metadata on image description pages. See the Wikipedia article '[[w:Mode_dial|Mode dial]]' for an explanation.\n{{Related|Exif-exposureprogram}}",
+       "exif-exposureprogram-1": "One of the exposure program types in the table of metadata on image description pages. See the Wikipedia article '[[w:Mode_dial|Mode dial]]' for an explanation.\n{{Related|Exif-exposureprogram}}\n{{Identical|Manual}}",
        "exif-exposureprogram-2": "One of the exposure program types in the table of metadata on image description pages.\n{{Related|Exif-exposureprogram}}",
        "exif-exposureprogram-3": "One of the exposure program types in the table of metadata on image description pages. See the Wikipedia article for a definition of the term [[w:Aperture_priority|aperture priority]].\n{{Related|Exif-exposureprogram}}",
        "exif-exposureprogram-4": "One of the exposure program types in the table of metadata on image description pages. See the Wikipedia article for a definition of the term [[w:Shutter_priority|shutter priority]].\n{{Related|Exif-exposureprogram}}",
        "specialpages-group-pagetools": "{{doc-special-group|like=[[Special:MovePage]], [[Special:Undelete]], [[Special:WhatLinksHere]], [[Special:Export]] etc}}",
        "specialpages-group-wiki": "{{doc-special-group|like=[[Special:Version]], [[Special:Statistics]], [[Special:LockDB]], etc}}",
        "specialpages-group-redirects": "{{doc-special-group|that=redirect to another location|like=[[Special:Randompage]], [[Special:Mypage]], [[Special:Mytalk]], etc}}",
-       "specialpages-group-spam": "{{doc-special-group}}",
+       "specialpages-group-spam": "{{doc-special-group|that=are related to spam management}}",
        "specialpages-group-developer": "{{doc-special-group|that=are related to tools for developers}}",
        "blankpage": "{{doc-special|BlankPage|unlisted=1}}\nSee also:\n* {{msg-mw|Intentionallyblankpage|text}}",
        "intentionallyblankpage": "Text displayed in [[Special:BlankPage]].\n\nSee also:\n* {{msg-mw|Intentionallyblankpage|page title}}",
        "tags-create-warnings-below": "Question placed after warning messages upon creating a tag.",
        "tags-delete-title": "The title of a page used to delete a tag. For more information on tags see [[mw:Manual:Tags|MediaWiki]].",
        "tags-delete-explanation-initial": "The first paragraph of an explanation to tell users what they are about to do.\n\nParameters:\n* $1 - the code name of the tag that is about to be deleted",
-       "tags-delete-explanation-in-use": "The second paragraph (not always shown) of an explanation to tell users what they are about to do.\n\nParameters:\n* $1 - the code name of the tag that is about to be deleted\n*$2 - the number of places the tag is used. The value is the sum of (revisions + log entries) where the tag is used.",
+       "tags-delete-explanation-in-use": "\"It\" refers to a tag.\n\nThis is the second paragraph (not always shown) of an explanation to tell users what they are about to do. The first paragraph is probably {{msg-mw|tags-delete-explanation-initial}}.\n\nParameters:\n* $1 - the code name of the tag that is about to be deleted\n* $2 - the number of places the tag is used. The value is the sum of (revisions + log entries) where the tag is used.",
        "tags-delete-explanation-warning": "The third paragraph of an explanation to tell users what they are about to do.\n\nParameters:\n* $1 - the code name of the tag that is about to be deleted",
        "tags-delete-explanation-active": "The fourth paragraph (not always shown) of an explanation to tell users what they are about to do.\n\nParameters:\n* $1 - the code name of the tag that is about to be deleted\n*$2 - the number of places the tag is used. The value is the sum of (rev",
        "tags-delete-reason": "{{Identical|Reason}}",
        "feedback-termsofuse": "Label with an agreement about the terms of use.",
        "feedback-thanks": "Thanks message, appears if feedback was successful. Parameters:\n* $1 - \"Feedback\"\n* $2 - Feedback page URL",
        "feedback-thanks-title": "The title of the thank you dialog at the end of the submission process.\n{{Identical|Thank you}}",
-       "feedback-useragent": "A label denoting the user agent in the feedback that is posted to the feedback page.",
+       "feedback-useragent": "A label denoting the user agent in the feedback that is posted to the feedback page.\n{{Identical|User agent}}",
        "searchsuggest-search": "Greyed out default text in the simple search box in the Vector skin. (It disappears and lets the user enter the requested search terms when the search box receives focus.)\n\n{{Identical|Search}}",
        "searchsuggest-containing": "Label used in the special item of the search suggestions list which gives the user an option to perform a full text search for the term.",
        "api-error-badaccess-groups": "API error message that can be used for client side localisation of API errors.",
        "json-error-recursion": "PHP JSON encoding/decoding error. See http://php.net/manual/en/function.json-last-error.php\n{{Related|Json-error}}",
        "json-error-inf-or-nan": "PHP JSON encoding/decoding error. See http://php.net/manual/en/function.json-last-error.php\n{{Related|Json-error}}",
        "json-error-unsupported-type": "PHP JSON encoding/decoding error. See http://php.net/manual/en/function.json-last-error.php\n{{Related|Json-error}}",
-       "headline-anchor-title": "Title tooltip for the section anchor symbol",
+       "headline-anchor-title": "Title tooltip for the section anchor symbol, which is a link to the current section. Can be interpreted both as a noun (\"this is a link\") or as a verb (\"use this to link\").",
        "special-characters-group-latin": "This is the name of a script, or alphabet, not a language.",
        "special-characters-group-latinextended": "The name of the Latin Extended character set.",
        "special-characters-group-ipa": "IPA means a script: \"international phonetic alphabet\" here, and not \"international phonetic association\", the organization behind it.",
index 8d4a1e8..819e4f0 100644 (file)
        "showhideselectedversions": "Akllasqa musuqchasqakunata rikuchiy/pakay",
        "editundo": "kutichiy",
        "diff-empty": "(Manam wak hina kanchu)",
+       "diff-multi-otherusers": "(Wakin {{PLURAL:$2|huk|$2}} ruraqpa {{PLURAL:$1|chawpipi huk llamk'apusqanqa manam rikuchisqachu|chawpipi $1 llamk'apusqankunaqa manam rikuchisqachu}})",
        "diff-multi-manyusers": "({{PLURAL:$2|Hukmanta|$2-manta}} aswan ruraqkunap {{PLURAL:$1|chawpipi huk llamk'apusqanqa manam rikuchisqachu|chawpipi $1 llamk'apusqankunaqa manam rikuchisqachu}})",
        "difference-missing-revision": "Kay wakin kaymanta ($1) {{PLURAL:$2|huk musuqchasqa|$2 musuqchasqakuna}} manam tarisqachu.\n\nKayqa tukurqanman qullusqa p'anchaman t'inkimuq mawk'ayasqa wiñay kawsay t'inkiraykuchá.\nImaymanata [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} qulluy hallch'apim] tariykiman.",
        "searchresults": "Maskaymanta tarisqakuna",
index e85c1f7..c11c172 100644 (file)
@@ -25,7 +25,8 @@
                        "아라",
                        "XXN",
                        "Fitoschido",
-                       "Macofe"
+                       "Macofe",
+                       "ImGelu"
                ]
        },
        "tog-underline": "Sublinierea legăturilor:",
        "search": "Căutare",
        "searchbutton": "Căutare",
        "go": "Salt",
-       "searcharticle": "Salt",
+       "searcharticle": "Du-te",
        "history": "Istoricul paginii",
        "history_short": "Istoric",
        "updatedmarker": "încărcat de la ultima mea vizită",
        "redirectedfrom": "(Redirecționat de la $1)",
        "redirectpagesub": "Pagină de redirecționare",
        "redirectto": "Redirecționare către:",
-       "lastmodifiedat": "Ultima modificare efectuată la $2, $1.",
+       "lastmodifiedat": "Ultima modificare efectuată la $2, ora $1.",
        "viewcount": "Pagina a fost vizitată {{PLURAL:$1|o dată|de $1 ori|de $1 de ori}}.",
        "protectedpage": "Pagină protejată",
        "jumpto": "Salt la:",
        "no-null-revision": "Nu s-a putut crea o nouă versiune nulă pentru pagina „$1”",
        "badtitle": "Titlu incorect",
        "badtitletext": "Titlul paginii căutate este incorect, gol sau este o legătură interlinguală sau interwiki incorectă.\nPoate conține unul sau mai multe caractere ce nu pot fi folosite în titluri.",
+       "title-invalid-empty": "Titlul de pagină solicitat este vid sau conține doar denumirea spațiului de nume.",
+       "title-invalid-utf8": "Titlul de pagină solicitat conține o secvență UTF-8 eronată.",
+       "title-invalid-interwiki": "Titlul paginii solicitate conține o legătură interlinguală care nu poate fi folosită în titluri.",
+       "title-invalid-talk-namespace": "Titlul de pagină solicitat se referă la o pagină de discuție care nu poate exista.",
+       "title-invalid-characters": "Titlul de pagină solicitat conține caractere nevalide: „$1”.",
+       "title-invalid-relative": "Titlul are un traseu relativ. Titlurile de pagină relative (./, ../) nu sunt valide, deoarece adesea nu vor putea fi accesate atunci când sunt manipulate de navigatorul utilizatorului.",
+       "title-invalid-magic-tilde": "Titlul de pagină solicitat conține o expresie magică de tilde nevalidă (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Titlul de pagină solicitat este prea lung. Acesta nu ar trebui să depășească $1 {{PLURAL:$1|octet|octeți|de octeți}} în codarea UTF-8.",
+       "title-invalid-leading-colon": "Titlul de pagină solicitat conține caracterul nevalid „:” la început.",
        "perfcached": "Datele următoare au fost păstrate în cache și s-ar putea să nu fie actualizate. Un maxim de {{PLURAL:$1|un rezultat este disponibil|$1 rezultate sunt disponibile}} în cache.",
        "perfcachedts": "Informațiile de mai jos provin din cache, ultima actualizare efectuându-se la $1. Un maxim de {{PLURAL:$4|un rezultat este disponibil|$4 rezultate sunt disponibile}} în cache.",
        "querypage-no-updates": "Actualizările acestei pagini sunt momentan dezactivate. Informațiile de aici nu sunt împrospătate.",
        "content-model-css": "CSS",
        "content-json-empty-object": "Obiect vid",
        "content-json-empty-array": "Matrice vidă",
+       "duplicate-args-warning": "<strong>Atenție:</strong> [[:$1]] apelează [[:$2]] cu mai mult de o valoare pentru parametrul „$3”. Se va lua în calcul doar ultima valoare specificată.",
        "duplicate-args-category": "Pagini care folosesc argumente duplicate în apelarea formatelor",
        "duplicate-args-category-desc": "Pagina conține apelări ale formatelor care folosesc argumente duplicate, cum ar fi <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> sau <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Atenție: Această pagină conține prea multe apelări costisitoare ale funcțiilor parser.\n\nAr trebui să existe mai puțin de $2 {{PLURAL:$2|apelare|apelări}}, acolo există {{PLURAL:$1|$1 apelare|$1 apelări}}.",
        "currentrev-asof": "Versiunea curentă din $1",
        "revisionasof": "Versiunea de la data $1",
        "revision-info": "Versiunea din $1; autor: {{GENDER:$6|$2}}$7",
-       "previousrevision": "←Versiunea anterioară",
+       "previousrevision": "← Versiunea anterioară",
        "nextrevision": "Versiunea următoare →",
        "currentrevisionlink": "Versiunea curentă",
        "cur": "actuală",
        "userrights-lookup-user": "Administrare grupuri de utilizatori",
        "userrights-user-editname": "Introduceți un nume de utilizator:",
        "editusergroup": "Modificare grup de utilizatori",
-       "editinguser": "Modificarea permisiunilor de utilizator pentru '''[[User:$1|$1]]''' $2",
+       "editinguser": "Modificarea permisiunilor de {{GENDER:$1|utilizator}} pentru <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Modificare grup de utilizatori",
        "saveusergroups": "Salvează grupul de utilizatori",
        "userrights-groupsmember": "Membru al:",
        "recentchangeslinked-feed": "Modificări corelate",
        "recentchangeslinked-toolbox": "Modificări corelate",
        "recentchangeslinked-title": "Modificări legate de „$1”",
-       "recentchangeslinked-summary": "Aceasta este o listă a schimbărilor efectuate recent asupra paginilor cu legături de la o anumită pagină (sau asupra membrilor unei anumite categorii).\nPaginile pe care le [[Special:Watchlist|urmăriți]] apar în '''aldine'''.",
+       "recentchangeslinked-summary": "Aceasta este o listă a schimbărilor efectuate recent asupra paginilor cu legături de la o anumită pagină (sau asupra membrilor unei anumite categorii).\nPaginile pe care le [[Special:Watchlist|urmăriți]] apar cu <strong>aldine</strong>.",
        "recentchangeslinked-page": "Numele paginii:",
        "recentchangeslinked-to": "Afișează schimbările în paginile care se leagă de pagina dată",
        "upload": "Încărcare fișier",
        "uploaddisabledtext": "Încărcările de fișiere sunt dezactivate.",
        "php-uploaddisabledtext": "Încărcarea de fișiere este dezactivată în PHP.\nVă rugăm să verificați setările din file_uploads.",
        "uploadscripted": "Fișierul conține HTML sau cod script care poate fi interpretat în mod eronat de un browser.",
+       "upload-scripted-pi-callback": "Nu se poate încărca un fișier care conține instrucțiuni de procesare a foii de stil xml.",
+       "uploaded-script-svg": "S-a găsit elementul „$1” scriptabil în fișierul SVG încărcat.",
+       "uploaded-hostile-svg": "S-a descoperit CSS vulnerabil în elementul de stil al fișierului SVG încărcat.",
+       "uploaded-event-handler-on-svg": "Setarea atributelor <code>$1=„$2”</code> de gestionare a evenimentului nu este permisă pentru fișierele SVG.",
+       "uploaded-href-attribute-svg": "Atributele href <code>&lt;$1 $2=„$3”&gt;</code> cu alte destinații decât cele locale (de ex. http://, javascript: etc.) nu sunt permise în fișierele SVG.",
+       "uploaded-href-unsafe-target-svg": "S-a găsit href către o destinație nesigură <code>&lt;$1 $2=„$3”&gt;</code> în fișierul SVG încărcat.",
+       "uploaded-animate-svg": "S-a găsit în fișierul SVG încărcat eticheta „animate” care ar putea modifica valoarea href folosind atributul „from” <code>&lt;$1 $2=„$3”&gt;</code>.",
+       "uploaded-setting-event-handler-svg": "Setarea atributelor de gestionare a evenimentului nu este permisă; s-a găsit <code>&lt;$1 $2=„$3”&gt;</code> în fișierul SVG încărcat.",
+       "uploaded-setting-href-svg": "Este blocată utilizarea etichetei „set” pentru a adăuga atributul „href” în elementul-părinte.",
+       "uploaded-wrong-setting-svg": "Este blocată utilizarea etichetei „set” pentru a adăuga în orice atribute o destinație de tip remote/data/script. S-a găsit <code>&lt;set to=„$1”&gt;</code> în fișierul SVG încărcat.",
+       "uploaded-setting-handler-svg": "Sunt blocate fișierele SVG care setează atributul „handler” cu remote/data/script. S-a găsit <code>$1=„$2”</code> în fișierul SVG încărcat.",
+       "uploaded-remote-url-svg": "Sunt blocate fișierele SVG care setează orice atribut de stil către adrese URL la distanță. S-a găsit <code>$1=„$2”</code> în fișierul SVG încărcat.",
+       "uploaded-image-filter-svg": "S-a găsit filtru de imagine cu URL: <code>&lt;$1 $2=\"$3\"&gt;</code> în fișierul SVG încărcat.",
        "uploadscriptednamespace": "Acest fișier SVG conține un spațiu de nume „$1” neautorizat.",
        "uploadinvalidxml": "Nu s-a putut analiza conținutul XML din fișierul încărcat.",
        "uploadvirus": "Fișierul conține un virus! Detalii: $1",
        "unusedimages": "Pagini neutilizate",
        "wantedcategories": "Categorii dorite",
        "wantedpages": "Pagini dorite",
-       "wantedpages-summary": "Lista paginilor inexistente către care trimite cel mai mare număr de legături, excluzând paginile către care trimit doar redirecționări. Pentru o listă a paginilor inexistente către care trimit doar redirecționări, accesați [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "Lista paginilor inexistente către care trimite cel mai mare număr de legături, excluzând paginile către care trimit doar redirecționări. Pentru o listă a paginilor inexistente către care trimit doar redirecționări, accesați [[{{#special:BrokenRedirects}}|lista redirecționărilor întrerupte]].",
        "wantedpages-badtitle": "Titlu invalid în rezultatele : $1",
        "wantedfiles": "Fișiere dorite",
        "wantedfiletext-cat": "Următoarele fișiere sunt utilizate, dar nu există. Fișierele provenind din depozite externe pot apărea listate, în ciuda faptului că ele nu există. Orice astfel de pozitive false vor fi <del>tăiate</del>. În plus, paginile care încorporează astfel de fișiere inexistente sunt listate la [[:$1]].",
        "whatlinkshere": "Ce trimite aici",
        "whatlinkshere-title": "Pagini care conțin legături spre „$1”",
        "whatlinkshere-page": "Pagină:",
-       "linkshere": "Următoarele pagini conțin legături către '''[[:$1]]''':",
+       "linkshere": "Următoarele pagini conțin legături către <strong>[[:$1]]</strong>:",
        "nolinkshere": "Nici o pagină nu trimite la '''[[:$1]]'''.",
        "nolinkshere-ns": "Nici o pagină din spațiul de nume ales nu trimite la '''[[:$1]]'''.",
        "isredirect": "pagină de redirecționare",
        "tooltip-n-mainpage-description": "Vizitați pagina principală",
        "tooltip-n-portal": "Despre proiect, ce puteți face, unde găsiți soluții.",
        "tooltip-n-currentevents": "Informații despre evenimentele curente",
-       "tooltip-n-recentchanges": "Lista ultimelor schimbări realizate în acest wiki.",
+       "tooltip-n-recentchanges": "Lista ultimelor schimbări realizate în acest wiki",
        "tooltip-n-randompage": "Afișează o pagină aleatoare",
        "tooltip-n-help": "Locul în care găsiți ajutor",
        "tooltip-t-whatlinkshere": "Lista tuturor paginilor wiki care conduc spre această pagină",
        "tooltip-ca-nstab-category": "Vezi categoria",
        "tooltip-minoredit": "Marchează această modificare ca fiind minoră",
        "tooltip-save": "Salvați modificările dumneavoastră",
-       "tooltip-preview": "Vă rugăm să vă previzualizați modificările înainte de a le salva!",
+       "tooltip-preview": "Vă rugăm să previzualizați modificările înainte de a le salva!",
        "tooltip-diff": "Arată-mi modificările efectuate asupra textului",
        "tooltip-compareselectedversions": "Vezi diferențele între cele două versiuni selectate de pe această pagină.",
        "tooltip-watch": "Adaugă această pagină la lista mea de pagini urmărite",
        "tooltip-watchlistedit-raw-submit": "Actualizează lista paginilor urmărite",
        "tooltip-recreate": "Recreează",
        "tooltip-upload": "Pornește încărcarea",
-       "tooltip-rollback": "„Revenire” anulează modificarea(ările) de pe această pagină a ultimului contribuitor printr-o singură apăsare",
-       "tooltip-undo": "\"Anulează\" șterge această modificare și deschide formularul de modificare în modulul de previzualizare.\nPermite adăugarea unui motiv în descrierea modificărilor",
+       "tooltip-rollback": "„Revenire” anulează modificarea(ările) de pe această pagină a(le) ultimului contribuitor printr-o singură apăsare",
+       "tooltip-undo": "„Anulează” șterge această modificare și deschide formularul de modificare în modulul de previzualizare.\nPermite adăugarea unui motiv în descrierea modificărilor.",
        "tooltip-preferences-save": "Salvează preferințele",
        "tooltip-summary": "Descrieți pe scurt modificarea",
        "interlanguage-link-title": "$1 – $2",
        "log-name-pagelang": "Jurnal modificare limbă",
        "log-description-pagelang": "Acesta este un jurnal cu modificări ale limbii paginilor.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|a modificat}} limba paginii pentru $3 din $4 în $5.",
+       "default-skin-not-found": "Ups! Aspectul standard pentru wiki, definit în <code dir=\"ltr\">$wgDefaultSkin</code> ca <code>$1</code>, nu este disponibil.\n\nInstalarea dumneavoastră pare să includă {{PLURAL:$4|următorul aspect|următoarele aspecte}}. Vedeți [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Configurare aspecte] pentru informații despre cum {{PLURAL:$4|îl|le}} puteți activa și alege pe cel implicit.\n\n$2\n\n; Dacă tocmai ați instalat MediaWiki:\n: Probabil ați instalat folosind git sau direct din codul sursă print-o altă metodă. Acest lucru este normal. Încercați să instalați câteva aspecte din [https://www.mediawiki.org/wiki/Category:All_skins colecția de aspecte de la mediawiki.org]:\n:* Descărcând [https://www.mediawiki.org/wiki/Download instalatorul tarball], care este însoțit de câteva aspecte și extensii. Puteți copia directorul <code>skins/</code> din acesta.\n:* Descărcând arhive tar individuale cu aspecte de la [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Utilizând Git pentru a descărca aspecte].\n: Această operațiune nu ar trebui să interfereze cu depozitul dumnevoastră git dacă sunteți dezvoltator MediaWiki.\n\n; Dacă tocmai ați actualizat MediaWiki:\n: Începând cu MediaWiki 1.24, aspectele instalate nu mai sunt activate în mod automat (vedeți [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual:Autodescoperirea aspectelor]). Puteți copia {{PLURAL:$5|următoarea linie|următoarele linii}} în <code>LocalSettings.php</code> pentru a activa {{PLURAL:$5|aspectul instalat|toate aspectele instalate}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Dacă tocmai ați modificat <code>LocalSettings.php</code>:\n: Verificați numele aspectelor pentru eventuale greșeli.",
+       "default-skin-not-found-no-skins": "Ups! Aspectul standard pentru wiki, definit în <code>$wgDefaultSkin</code> ca <code>$1</code>, nu este disponibil.\n\nNu există aspecte instalate\n\n; Dacă tocmai ați instalat sau actualizat MediaWiki:\n: Probabil ați instalat folosind git sau direct din codul sursă print-o altă metodă. Acest lucru este normal. Începând cu MediaWiki 1.24, aspectele nu mai sunt incluse în depozitul principal. Încercați să instalați câteva aspecte din [https://www.mediawiki.org/wiki/Category:All_skins colecția de aspecte de la mediawiki.org]:\n:* Descărcând [https://www.mediawiki.org/wiki/Download instalatorul tarball], care este însoțit de câteva aspecte și extensii. Puteți copia directorul <code>skins/</code> din acesta.\n:* Descărcând arhive tar individuale cu aspecte de la [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Utilizând Git pentru a descărca aspecte].\n: Această operațiune nu ar trebui să interfereze cu depozitul dumneavoastră git dacă sunteți dezvoltator MediaWiki. Vedeți [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Configurare aspecte] pentru informații despre cum puteți activa aspecte și alege pe cel implict.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (activat)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''dezactivat''')",
        "mediastatistics": "Statistici multimedia",
index ca615f0..87f2044 100644 (file)
@@ -24,6 +24,7 @@
        "tog-watchdefault": "Mitte le pàggene ca je agghie cangiate jndr'à le pàggene condrollate",
        "tog-watchmoves": "Mitte le pàggene ca je agghie spustate jndr'à le pàggene condrollate",
        "tog-watchdeletion": "Mitte le pàggene ca je agghie scangellate jndr'à le pàggene condrollate",
+       "tog-watchrollback": "Aggiunge le pàggene addò agghie fatte 'n'annullamende jndr'à l'elenghe de le pàggene condrollate",
        "tog-minordefault": "Pe convenzione signe tutte le cangiaminde cumme stuédeche",
        "tog-previewontop": "Fa vedè l'andeprime apprime d'a caselle de le cangiaminde",
        "tog-previewonfirst": "Fà vedè l'andeprime sus a 'u prime cangiamende",
        "jumptonavigation": "navighesce",
        "jumptosearch": "cirche",
        "view-pool-error": "Ne dispiace, le server stonne sovraccarecate jndr'à stu mumende.\nTroppe utinde stonne a provene a vedè sta pàgene.\nPe piacere aspitte 'nu picche e pò pruève 'n'otra vote a trasè jndr'à sta pàgene.\n\n$1",
+       "generic-pool-error": "Ne despiace, le server stonne careche a ciucce jndr'à stu mumende.\nTroppe utinde stonne e provane de 'ndrucà sta resorse.\nPe piacere aspitte 'nu picche apprime de pruvà arrete cu sta resorse.",
        "pool-timeout": "Tiembe d'attese scadute pu 'u blocche",
        "pool-queuefull": "'A code de le sondagge jè chiene",
        "pool-errorunknown": "Errore scanusciute",
+       "pool-servererror": "'U servizie ca conde le connessiune non g'è disponibbile ($1).",
        "poolcounter-usage-error": "Errore d'ause: $1",
        "aboutsite": "Sus a {{SITENAME}}",
        "aboutpage": "Project:Sus a",
        "filerenameerror": "Non ge pozze cangià 'u nome d'u fail \"$1\" jndr'à \"$2\".",
        "filedeleteerror": "Non ge pozze scangillà 'u fail \"$1\".",
        "directorycreateerror": "Non ge pozze ccrejà 'a cartelle \"$1\".",
+       "directoryreadonlyerror": "'A cartelle \"$1\" jè in sole-letture.",
+       "directorynotreadableerror": "'A cartelle \"$1\" non ge se pò leggere.",
        "filenotfound": "Non ge stoche a iacchje 'u fail \"$1\".",
        "unexpected": "Valore inattese: \"$1\"=\"$2\".",
        "formerror": "Errore: non ge riesche a reggistrà 'u form",
        "no-null-revision": "Non ge se pò ccrejà 'na revisiona nove vacande pa pàgene \"$1\"",
        "badtitle": "Titele sbagliete",
        "badtitletext": "'A pàgene ca è cerchete tène 'nu titele errete, vacande, o jè 'nu collegamende inter-lènghe o inter-uicchi errete.\nPò essere ca tène une o cchiù carattere ca non ge ponne essere ausete jndr'à le titele.",
+       "title-invalid-empty": "'U titole d'a pàgene cercate jè vacande o téne sulamende 'u nome d'u namespace.",
+       "title-invalid-utf8": "'U titole d'a pàgene cercate téne 'na sequenze UTF-8 invalide.",
+       "title-invalid-interwiki": "'U titole d'a vôsce cercate téne 'nu collegamende inderuicchi ca non ge pò essere ausate jndr'à le titole.",
+       "title-invalid-talk-namespace": "'U titole d'a pàgene cercate face referimende a 'na pàgene de 'ngazzaminde ca non ge pò esistere.",
+       "title-invalid-characters": "'U titole d'a pàgene cercare téne carattere non valide: \"$1\"",
+       "title-invalid-relative": "'U titole téne 'nu percorse relative. Le titole de pàggene relative (./, ../) so invalide, purcé lore assaije vote non ge avènene raggiunde quanne so gestite da le browser.",
+       "title-invalid-magic-tilde": "'U titole d'a pàgene cercate téne 'na sequenze magiche invalide de tilde (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "'U titole d'a pàgene cercate jè troppe luénghe. Non ge pò essere cchiù de $1 {{PLURAL:$1|byte}} cu 'a codifiche UTF-8.",
+       "title-invalid-leading-colon": "'U titole d'a pàgene cercate téne na pundeggiature invalide a l'inizie.",
        "perfcached": "'U date seguende stè jndr'à cache e non ge pò essere aggiornate. 'Nu massime de {{PLURAL:$1|'nu resultate ste|$1 resultate stonne}} disponibbile jndr'à cache.",
        "perfcachedts": "'U date seguende stè jndr'à cache e, l'urteme aggiornamende ha state $1. 'Nu massime de {{PLURAL:$4|'nu resultate ste|$4 resultate stonne}} disponibbile jndr'à cache.",
        "querypage-no-updates": "L'aggiornaminde pe sta pàgene sonde, pe mò, disabbilitete.\nLe date ca stonne aqquà jndre non ge sonde aggiornete.",
        "viewyourtext": "Tu puè vedè e copià 'a sorgende de '''le cangiaminde tune''' 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.",
        "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.",
        "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 caschete\":\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.",
        "invalidtitle-unknownnamespace": "Titele invalide cu numere de namespace scanusciute $1 e teste \"$2\"",
        "exception-nologin": "Non ge sì collegate",
        "exception-nologin-text": "Pe piacere tràse pe avè l'accesse a sta pàgene o a sta azione.",
+       "exception-nologin-text-manual": "Pe piacere $1 pe putè trasè jndr'à sta pàgene o azione.",
        "virus-badscanner": "Configurazione ca fece schife: Virus scanner scanusciute: ''$1''",
        "virus-scanfailed": "condrolle fallite (codece $1)",
        "virus-unknownscanner": "antivirus scanusciute:",
        "gotaccountlink": "Tràse",
        "userlogin-resetlink": "T'è scurdate le dettaglie pe trasè?",
        "userlogin-resetpassword-link": "T'è scurdate 'a passuord toje?",
+       "userlogin-helplink2": "Aijute cu 'a trasute",
        "userlogin-loggedin": "Tu ste jndre ggià cumme a {{GENDER:$1|$1}}.\nAuse 'u module aqquà sotte pe trasè cumme a 'n'otre utende.",
        "userlogin-createanother": "Ccreje 'n'otre cunde",
        "createacct-emailrequired": "Indirizze email",
        "wrongpassword": "E mise 'na passuor sbagliete.\nPrueve n'otra vote.",
        "wrongpasswordempty": "'A passuord 'nzerite jè vianghe.\nMitta n'otra vota.",
        "passwordtooshort": "Le password onne a essere almene {{PLURAL:$1|1 carattere|$1 carattere}}.",
+       "passwordtoolong": "Le password non ge ponne essere cchiù longhe de {{PLURAL:$1|1 carattere}}.",
        "password-name-match": "'A password toje adda essere diverse da 'u nome utende tue.",
        "password-login-forbidden": "L'ause de stu nome utende e passuord onne state vietate.",
        "mailmypassword": "Azzere 'a passuord",
        "createaccount-text": "Quacchedune ha ccrejete 'nu cunde utende cu l'indirizze e-mail tue sus a {{SITENAME}} ($4) chiamete \"$2\", cu password \"$3\".\nTu, mò, t'avisse a collegà e cangià 'a password toje.\n\nTu puè pure cacà stu messagge, ce stu cunde utende ha state ccrejete pe errore.",
        "login-throttled": "Urtemamende tu è pruvate troppe vote a trasè jndr'à Uicchipèdie.\nPe piacere vide c'aspitte $1 apprime de pruvà 'n'otra vote.",
        "login-abort-generic": "Non g'è riuscite a trasè - Annullate",
+       "login-migrated-generic": "'U cunde tune ha state migrate, e 'u nome utende tune non g'esiste cchiù sus a sta uicchi.",
        "loginlanguagelabel": "Lénga: $1",
        "suspicious-userlogout": "'A richiesta toje de assè ha state bloccate purcè pare ca ha state mannate da 'nu browser scuasciate o da 'a cache de 'nu proxy.",
        "createacct-another-realname-tip": "'U nome vere jè facoltative.\nCe tu scacchie de metterle, quiste avène ausate pe dà 'u giuste merite a 'a fatìe de l'utende.",
        "retypenew": "Scrive n'otra vota 'a passuord nova:",
        "resetpass_submit": "'Mboste 'a passuord e colleghete",
        "changepassword-success": "'A password toje ha state cangiate!",
+       "changepassword-throttled": "Tu è pruvate 'nu sacche de vote a trasè.\nPe piacere aspitte $1 apprime de pruvà arrete.",
        "resetpass_forbidden": "Le Password non ge ponne cangià",
        "resetpass-no-info": "Tu a essere colleghete pe accedere a sta pàgene direttamende.",
        "resetpass-submit-loggedin": "Cange 'a password",
        "resetpass-submit-cancel": "Annulle",
        "resetpass-wrong-oldpass": "'A password temboranea o quedda corrende jè invalide.\nPò essere ca tu è già cangete 'a password toje o è richieste una temboranea nove.",
+       "resetpass-recycled": "Pe piacere azzere 'a password toje cu 'n'otra password deverse da quedde de mò.",
+       "resetpass-temp-emailed": "Tu è trasute cu 'nu codece email tembaranèe.\nPe spiccià de trasè, tu ha 'mbostà 'na password nove aqquà:",
        "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.",
        "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.}}",
        "changeemail-none": "(ninde)",
        "changeemail-password": "'A passuord tue de {{SITENAME}}:",
        "changeemail-submit": "Cange e-mail",
+       "changeemail-throttled": "Tu è pruvate troppe vote a trasè.\nPe piacere aspitte $1 apprime de pruvà arrete.",
        "resettokens": "Azzere le gettone",
        "resettokens-text": "Tu puè azzerà le gettone le quale te donne l'accesse a certe date private collegate cu 'u cunde tune aqquà.\n\nTu avissa farle ce pe sbaglie l'è condivise cu otre o ce 'u cunde tune ha state combromesse.",
        "resettokens-no-tokens": "Non ge stonne gettone de azzerà.",
        "preview": "Andeprime",
        "showpreview": "Vide l'andeprime",
        "showdiff": "Fa vedè le cangiaminde",
+       "blankarticle": "<strong>Attenziò:</strong> 'A pàgene ca ste ccreje jè vianghe.\nCe cazze \"{{int:savearticle}}\" arrete, 'a pàgene avène ccrejate vacande.",
        "anoneditwarning": "<strong>Attenziò:</strong> Tu non ge sì collegate..\nL'indirizze IP tune avène fatte vedè ce te face de le cangiaminde. Ce tu <strong>[$1 trase]</strong> o <strong>[$2 ccreje 'nu cunde utende]</strong>, le cangiaminde tune avènene attribbuite a 'u nome utende tune, 'nzieme a otre beneficie.",
        "anonpreviewwarning": "''Tu non ge sì collegate. Reggistranne le cangiaminde jndr'à sta pàgene iesse l'indirizze IP tune jndr'à storie.''",
        "missingsummary": "'''Arrecuèrdete:''' Tu non g'è provvedute a 'nu riepileghe de le cangiaminde.\nCe tu cazze Reggistre 'n'otra vote, 'u cangiamende tue avène memorizzete senze une.",
+       "selfredirect": "<strong>Attenziò:</strong> Tu ste redirezione sta pàgene da sule.\nTu puè avè specificate 'a destinazione sbagliate pe stu redirezionamende, o tu ste cange 'a pàgena sbagliate.\nCe tu cazze \"{{int:savearticle}}\" arrete, 'u redirezionamende avène ccrejate 'u stesse.",
        "missingcommenttext": "Pe piacere mitte 'nu commende aqquà sotte.",
        "missingcommentheader": "'''Arrecuèrdete:''' Tu non g'è provvedute a 'nu soggette/testate pe stu commende.\nCe tu cazze \"{{int:savearticle}}\" 'n'otra vote, 'u cangiamende tune avène memorizzate senze jidde.",
        "summary-preview": "Andeprime d'u riepileghe:",
        "subject-preview": "Andeprime de l'Oggette/Testete:",
+       "previewerrortext": "'N'errore ha assute quanne ste facive l'andeprime de le cangiaminde.",
        "blockedtitle": "L'utende è blocchete",
        "blockedtext": "''''U nome de l'utende o l'indirizze IP ha state bloccate.'''\n\n'U blocche ha state fatte da $1.\n'U mutive date jè ''$2''.\n\n* 'U Blocche accumenze: $8\n* 'U Blocche spicce: $6\n* Tipe de blocche: $7\n\nTu puè condatta $1 o n'otre [[{{MediaWiki:Grouppage-sysop}}|amministratore]] pe 'ngazzarte sus a 'u blocche.\nTu non ge puè ausà 'u strumende 'manne 'na mail a stu utende' senza ca mitte n'indirizze e-mail valide jndr'à le\n[[Special:Preferences|preferenze tue]] e ce è state blocchete sus 'a l'use sue.\nL'IP ca tine mò jè $3 e 'u codece d'u blocche jè #$5.\nPe piacere mitte ste doje 'mbormaziune ce manne 'na richieste de sblocche.",
        "autoblockedtext": "L'indirizze IP tue ha state automaticamende blocchete purcè ha state ausete da n'otre utende, ca avère state blocchete da $1.\n'U mutive date jè 'u seguende:\n\n:''$2''\n\n* Inizie d'u blocche: $8\n* Scadenze d'u blocche: $6\n* Blocche 'ndise: $7\n\nTu puè cundattà $1 o une de l'otre [[{{MediaWiki:Grouppage-sysop}}|amministrature]] pe parà de stu probbleme.\n\nVide Bbuene ca tu non ge puè ausà 'a funziona \"manne n'e-mail a stu utende\" senze ca tu tìne 'n'indirizze e-mail valide e reggistrete jndr'à seziona [[Special:Preferences|me piace accussì]] e tu non ge sinde blocchete da ausarle.\n\nL'indirizze IP corrende jè $3, e 'u codece d'u blocche jè #$5.\nPe piacere mitte tutte le dettaglie ca ponne essere utile pe le richieste tue.",
        "edit-gone-missing": "Non ge puè cangià sta pàgene.\nPare proprie ca l'onne scangellete.",
        "edit-conflict": "conflitte de cangiaminde.",
        "edit-no-change": "'U cangiamende ca p fatte, avène scettate purcè 'u teste non g'à cangete manghe de 'na virgola.",
+       "postedit-confirmation-created": "Sta pàgene ha state ccrejate.",
+       "postedit-confirmation-restored": "Sta pàgene ha state repristinate.",
        "postedit-confirmation-saved": "'U cangiamende tune ha state reggistrate.",
        "edit-already-exists": "Non ge puè ccrejà 'na pàgene nove purcè esiste già!",
        "defaultmessagetext": "Messàgge de teste de base",
        "invalid-content-data": "Condenute d'u date invalide",
        "content-not-allowed-here": "\"$1\" condenute non g'è permesse sus 'a pàgene [[$2]]",
        "editwarning-warning": "Assenne da sta pàgene tu puè perdè tutte le date ca è cangiate.\nCe tu è trasute, tu puè disabbilità st'avvertimende jndr'à sezione \"{{int:prefs-editing}}\" de le preferenze tune.",
+       "editpage-notsupportedcontentformat-title": "'U formate d'u condenute non gè supportate",
+       "editpage-notsupportedcontentformat-text": "'U formate d'u condenute $1 non g'è supportate da 'u modelle de condenute $2.",
        "content-model-wikitext": "Uicchiteste",
        "content-model-text": "teste semblice",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "content-json-empty-object": "Oggette vacande",
+       "content-json-empty-array": "Matrice vacande",
+       "duplicate-args-category": "Pàggene ca ausane le argumende a doppie jndr'à le chiamate d'u template",
+       "duplicate-args-category-desc": "'A pàgene téne chiamate a template ca ausane arguminde a doppie, cumme <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> o <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Fà attenziò: Sta vosce tène 'nu sbuenne de funziune de chiamate a l'analizzatore.\n\nAvessere a essere mene de $2 {{PLURAL:$2|chiamate|chiamate}}, 'nvece mò {{PLURAL:$1|ste $1 chiamate|ne stonne $1 chiamate}}.",
        "expensive-parserfunction-category": "Pàggene cu troppe chiamate a le funziune de analisi",
        "post-expand-template-inclusion-warning": "Attenziò: 'a dimenzione d'u template jè troppe granne.\nCerte template ponne non essere 'ngluse.",
        "parser-template-recursion-depth-warning": "Ha state supranete 'u limite di ricorsione de le template ($1)",
        "language-converter-depth-warning": "'U convertitore de lènghe ha subranate 'u limite de profonnetà ($1)",
        "node-count-exceeded-category": "Pàggene addò 'u cunde de le node ha sbunnate",
+       "node-count-exceeded-category-desc": "'A pàgene ave sbunnate 'u numere massime de node cundate.",
        "node-count-exceeded-warning": "'A pàgene ha sbunnate 'u condegge de le node",
        "expansion-depth-exceeded-category": "Pàggene addò 'a profonnetà de l'espanzione jè supranate",
+       "expansion-depth-exceeded-category-desc": "'A pàgene sbonne 'a massime espanzione de profonnetà.",
        "expansion-depth-exceeded-warning": "Pàggene ca sbonnane 'a profonnetà de espanzione",
        "parser-unstrip-loop-warning": "Cicle infinite acchiate",
        "parser-unstrip-recursion-limit": "Limite de ricorsione infinite sbunnate ($1)",
        "undo-success": "'U cangiamende pò essere annullate.\nPe piacere verifichesce 'u combronde sotte pe condrollà ca quiste ca tu vuè ccu face e pò reggistrè le cangiaminde aqquà sotte pe spiccià l'annullamende d'u cangiamende.",
        "undo-failure": "'U cangiamende non ge pò essere annullete purcè stè 'nu conflitte de cangiaminde indermedije.",
        "undo-norev": "'U cangiamende non ge pò essere annullete purcè non g'esiste o a state scangellete.",
+       "undo-nochange": "'U cangiamende pare ca ha state già annullate.",
        "undo-summary": "Repristine 'a revisione $1 da [[Special:Contributions/$2|$2]] ([[User talk:$2|'Ngazzaminde]])",
        "undo-summary-username-hidden": "Annulle 'a revisione $1 da 'n'utende scunnute",
        "cantcreateaccounttitle": "Non ge puè ccrejà 'nu cunde utende",
        "cantcreateaccount-text": "'A creazione d'u cunde utende da stu 'ndirizze IP ('''$1''') ha state blocchete da [[User:$3|$3]].\n\n'U mutive dete da $3 jè ''$2''",
+       "cantcreateaccount-range-text": "'A crejazzione d'u cunde da l'indirizze IP jndr'à l'indervalle \"$1\", 'u quale 'nglude 'u 'ndirizze IP tune ('''$4'''), ha state bloccate da [[User:$3|$2]].",
        "viewpagelogs": "Vide l'archivie pe sta pàgene",
        "nohistory": "Sta pàgene non ge tène 'a storie de le cangiaminde ca onne state fatte.",
        "currentrev": "Versione de osce a die",
        "history-feed-description": "Storie de le revisiune oe sta pàgene sus 'a le Uicchipèdie",
        "history-feed-item-nocomment": "$1 a $2",
        "history-feed-empty": "'A vosce ca è cerchete non g'esiste.\nPò essere ca ha state scangellete da Uicchi o ha state renomenate..\nPruève a [[Special:Search|cercò sus a Uicchi]] 'mbrà le vosce cchiù rilevande.",
+       "history-edit-tags": "Cange le tag de le revisiune scacchiate",
        "rev-deleted-comment": "(cangiamnde d'u riepileghe scangellate)",
        "rev-deleted-user": "(nome utende scangillete)",
        "rev-deleted-event": "(dettaglie de l'archivije scangellate)",
        "rev-deleted-user-contribs": "[nome utende o indirizze IP luate - cangiamende scunnute da le condrebbute]",
        "rev-deleted-text-permission": "Sta revisione d'a pàgene ha state '''scangellate'''.\nPuè acchijà cchiù 'mbormaziune sus a [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} l'archivije de le scangellaminde].",
+       "rev-suppressed-text-permission": "Sta revisione d'a pàgene ha state <strong>scangellate</strong>.\nLe dettaglie le puè 'ndrucà jndr'à l'[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} archivije de le scangellazziune].",
        "rev-deleted-text-unhide": "Sta revisione d'a pàgene ha state '''scangellate'''.\nPuè acchijà cchiù 'mbormaziune sus a [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} l'archivije de le scangellaminde].\nTu puè angore [$1 vedè sta revisiona] ce tu avveramende a vuè ccù vide.",
        "rev-suppressed-text-unhide": "Sta revisione d'a pàgene ha state '''soppresse'''.\nPuè acchijà cchiù 'mbormaziune sus a [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} l'archivije de le soppressiune].\nTu puè angore [$1 vedè sta revisiona] ce tu avveramende a vuè ccù vide.",
        "rev-deleted-text-view": "Sta revisione d'a pàgene ha state '''scangellate'''.\nTu a puè vedè angore; stonne cchiù 'mbormaziune jndr'à l'[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} archiviè de le scangellaminde].",
        "rev-showdeleted": "fà vedè",
        "revisiondelete": "Scangille/Repristine revisiune",
        "revdelete-nooldid-title": "Revisione de destinazione invalida",
-       "revdelete-nooldid-text": "Tu non g'è specificate 'na revisione da arrivà pe abbilità sta funzione. 'A specifica revisione non g'esiste oppure tu stè pruève a scunnè 'a revisona corrende.",
+       "revdelete-nooldid-text": "Tu non g'è specificate 'na revisione de arrive pe abbilità sta funzione, o a specifica revisione non g'esiste oppure tu stè pruève a scunnè 'a revisiona corrende.",
        "revdelete-no-file": "'U file specificate non g'esiste.",
        "revdelete-show-file-confirm": "Si secure ca vuè ccu vide 'a revisione scangellate d'u file \"<nowiki>$1</nowiki>\" 'u $2 a le $3?",
        "revdelete-show-file-submit": "Sìne",
+       "revdelete-selected-text": "{{PLURAL:$1|Revisione scacchiate|Revisiune scacchiate}} de [[:$2]]:",
+       "revdelete-selected-file": "{{PLURAL:$1|Versione d'u file scacchiate|Versiune d'u file scacchiate}} de [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|Fatte de l'archivije scacchiate}}:",
+       "revdelete-text-text": "Le revisiune scangellate iessene angore jndr'à 'u cunde d'a pàgene, ma vanne d'u condenute lore jè inaccessibbile a 'u pubbleche.",
+       "revdelete-text-file": "Le versiune d'u file scangellate iessene ancora jndr'à 'u cunde d'u file, ma vanne de lore non ge sò accessibbile a 'u pubbleche.",
+       "logdelete-text": "Le avveneminde scangellate de l'archivije iessene angore jndr'à 'u cunde de l'archivije, ma vanne d'u condenute lore jè inaccessibbile a 'u pubbleche.",
+       "revdelete-text-others": "Otre amministrature ponne angore trasè jndr'à 'u condenute scunnute e 'u ponne repristinà, ce non ge stonne otre diviete 'mbostate.",
        "revdelete-confirm": "Pe piacere conferme ca tu vuè ccu face sta cose, ce tu è capite le conseguenze e ce quidde ca ste face jè in accorde cu le [[{{MediaWiki:Policy-url}}|reghele]] de Uicchipèdie.",
        "revdelete-suppress-text": "'A soppressione adda essere ausate '''sulamende''' jndr'à le case seguende:\n* 'Mbormaziune potenzialmende offenzive\n* Date personale inopportune\n*: ''indirizze, numere de telefono, codece fiscale, ecc.''",
        "revdelete-legend": "'Mboste le restriziune sus 'a visibbilità",
        "mergehistory-empty": "Nisciuna revisione pò essere scuagghiate.",
        "mergehistory-success": "$3 {{PLURAL:$3|revisione|revisiune}} de [[:$1]] onne state scuagghiate jndr'à [[:$2]] correttamende.",
        "mergehistory-fail": "Non ge se pò fa vedè 'a storie d'u scuagghiamende, pe piacere verifiche 'n'otra vota a pàgene e le parametre de l'orarie.",
+       "mergehistory-fail-toobig": "Non ge pozze combletà 'u scuagghiamende s'u cunde purcé supranesce 'u limite de $1 {{PLURAL:$1|revisione|revisiune}} ca onna essere spustate.",
        "mergehistory-no-source": "'A pàgena sorgende $1 non g'esiste.",
        "mergehistory-no-destination": "'A pàgene de destinazione $1 non g'esiste.",
        "mergehistory-invalid-source": "'A pàgena sorgende addà tenè 'nu titele valide.",
        "showhideselectedversions": "Fà vedè/scunne le revisiune selezionate",
        "editundo": "annulle",
        "diff-empty": "(Nisciuna differenze)",
+       "diff-multi-sameuser": "({{PLURAL:$1|'Na revisione de mmienze|$1 revisiune de mmienze}} da 'u stesse utende non g'avènene fatte vedè)",
+       "diff-multi-otherusers": "({{PLURAL:$1|'Na revisione de mmienze|$1 revisiune de mmienze}} da {{PLURAL:$2|'n'otre utende|$2 utinde}} non g'avènene fatte vedè)",
        "diff-multi-manyusers": "({{PLURAL:$1|'Na revisione de 'mmienze|$1 revisiune de 'mmienze}} non g'è viste da cchiù de $2 {{PLURAL:$2|utende|utinde}})",
        "difference-missing-revision": "{{PLURAL:$2|'Na revisione|$2 revisiune}} de sta differenze ($1) {{PLURAL:$2|non g'onne|non g'onne}} state acchiate.\n\nQuiste succede normalmende purcé 'u cunde jè collegate a 'na pàgene ca ha state scangellate.\nLe dettaglie le puè acchià jndr'à l'[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} archivije de le scangellaziune].",
        "searchresults": "Resultete d'a ricerche",
        "notextmatches": "Nisciune teste de pàgene s'accocchie cu 'a recerche",
        "prevn": "rrede {{PLURAL:$1|$1}}",
        "nextn": "nnande {{PLURAL:$1|$1}}",
+       "prev-page": "pàgena precedende",
+       "next-page": "pàgena successive",
        "prevn-title": "Precedende $1 {{PLURAL:$1|resultete|resultete}}",
        "nextn-title": "Successive $1 {{PLURAL:$1|resultete|resultete}}",
        "shown-title": "Fà vedè le $1 {{PLURAL:$1|resultete|resultete}} pe pàgene",
        "search-result-category-size": "{{PLURAL:$1|1 membre|$1 membre}} ({{PLURAL:$2|1 sottecategorije|$2 sottecategorije}}, {{PLURAL:$3|1 file|$3 file}})",
        "search-redirect": "(Redirette $1)",
        "search-section": "(sezione $1)",
+       "search-category": "(categorije $1)",
+       "search-file-match": "(combronde 'u condenute d'u file)",
        "search-suggest": "Ce signifeche: $1",
        "search-interwiki-caption": "Pruggette sorelle",
        "search-interwiki-default": "Resultate da $1:",
        "searchrelated": "colleghete",
        "searchall": "tutte",
        "showingresults": "Stoche a fazze vedè aqquà sotte {{PLURAL:$1|'''1''' resultete|'''$1''' resultete}} ca accumenzene cu #'''$2'''.",
+       "showingresultsinrange": "Stoche a fazze vedè da sotte 'nzigne a {{PLURAL:$1|<strong>1</strong> resultate|<strong>$1</strong> resultate}} jndr'à l'indervalle #<strong>$2</strong> a #<strong>$3</strong>.",
        "search-showingresults": "{{PLURAL:$4|Resultate <strong>$1</strong> de <strong>$3</strong>|Resultate <strong>$1 - $2</strong> de <strong>$3</strong>}}",
        "search-nonefound": "Non ge stonne resultete ca soddisfecene l'inderrogazione.",
        "powersearch-legend": "Ricerche avanzete",
        "preferences": "Me piece accussì",
        "mypreferences": "Me piace accussì",
        "prefs-edits": "Numere de cangiaminde:",
+       "prefsnologintext2": "Pe piacere, tràse pe cangià le preferenze tune.",
        "prefs-skin": "Skin",
        "skin-preview": "Andeprime",
        "datedefault": "Nisciuna preferenze",
        "prefs-personal": "Profile de l'utende",
        "prefs-rc": "Cangiaminde recende",
        "prefs-watchlist": "Pàggene condrollete",
+       "prefs-editwatchlist": "Cange l'elenghe de le pàggene condrollate",
+       "prefs-editwatchlist-label": "Cange le vôsce de l'elenghe de le pàggene condrollate:",
+       "prefs-editwatchlist-edit": "'Ndruche e live le titole da l'elenghe de le pàggene condrollate",
+       "prefs-editwatchlist-raw": "Cange 'a liste de le pàggene condrollate grezze",
+       "prefs-editwatchlist-clear": "Sdevache l'elenghe de le pàggene condrollate tune",
        "prefs-watchlist-days": "Giurne da fà vedè jndr'à liste de le pàggene condrollete:",
        "prefs-watchlist-days-max": "Massime $1 {{PLURAL:$1|sciurne|sciurne}}",
        "prefs-watchlist-edits": "Numere massime de cangiaminde ca se ponne fa vedè jndr'à liste de le pàggene condrollete spannute:",
        "prefs-tokenwatchlist": "Gettone",
        "prefs-diffs": "Diff",
        "prefs-help-prefershttps": "Sta preferenze pigghie effette sulamende quanne tràse arrete.",
+       "prefswarning-warning": "Tu è fatte cangiaminde sus a le preferenze tune ca non g'onne state angore reggistrate.\nCe tu lasse sta pàgene senze ca è cazzate \"$1\" le preferenze tune non g'avènene aggiornate.",
+       "prefs-tabs-navigation-hint": "Conziglie: Tu puè ausà le freccie de destre e sinistre pe navigà 'mbrà le schede de l'elenghe.",
        "email-address-validity-valid": "L'indirizze e-mail pare valide",
        "email-address-validity-invalid": "Mitte 'n'indirizze e-mail valide",
        "userrights": "Gestione de le deritte utende",
        "userrights-lookup-user": "Gestisce le gruppe de l'utinde",
        "userrights-user-editname": "Mitte 'nu nome utende:",
        "editusergroup": "Cange le gruppe utinde",
-       "editinguser": "Stè cange le deritte de l'utende de l'utende '''[[User:$1|$1]]''' $2",
+       "editinguser": "Stè cange le deritte de {{GENDER:$1|l'utende}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Cange le gruppe d'utinde",
        "saveusergroups": "Reggistre le gruppe d'utinde",
        "userrights-groupsmember": "Membre de:",
        "right-move": "Spuéste le pàggene",
        "right-move-subpages": "Spueste le pàggene cu tutte le pàggene ca stonne da sotte",
        "right-move-rootuserpages": "Spuèste le pàggene utinde radice",
+       "right-move-categorypages": "Spuèste le pàggene de le categorije",
        "right-movefile": "Spueste le file",
        "right-suppressredirect": "No scè ccrejanne 'nu ridirezionamende da 'u nome vecchije quanne spueste 'na pàgene",
        "right-upload": "Careche le fail",
        "right-browsearchive": "Cirche le pàggene scangellate",
        "right-undelete": "Repristine 'na pàgene",
        "right-suppressrevision": "'Ndruche, scunne e fà assè le revisiune specifiche de le pàggene da l'otre utinde",
+       "right-viewsuppressed": "?ndruche le revisiune scunnute da l'utinde",
        "right-suppressionlog": "Vide l'archivije privete",
        "right-block": "Blocche otre utinde a fà le cangiaminde",
        "right-blockemail": "Blocche l'utente a fà mannà le email",
        "right-protect": "Cange le levèlle de protezione e cange le pàggene prutette",
        "right-editprotected": "Cange le pàggene prutette (senza protezzione a cascata)",
        "right-editsemiprotected": "Cange le pàggene prutette cumme a \"{{int:protect-level-autoconfirmed}}\"",
+       "right-editcontentmodel": "Cange 'u modelle de condenute de 'na pàgene",
        "right-editinterface": "Cange l'inderfacce utende",
        "right-editusercssjs": "Cange 'u CSS e 'u JS de l'otre utinde",
        "right-editusercss": "Cange 'u CSS de l'otre utinde",
        "right-override-export-depth": "L'esportazione de pàggene inglude pàggene collegate 'mbonde a 'na profonnetà de 5",
        "right-sendemail": "Manne 'a mail a otre utinde",
        "right-passwordreset": "Vide l'e-mail de azzeramende d'a passuord",
+       "right-managechangetags": "CCreje e scangìlle [[Special:Tags|tag]] da 'u database",
+       "right-applychangetags": "Appleche [[Special:Tags|tag]] sus a 'u de le cangiaminde tune",
+       "right-changetags": "Aggiunge e live arbitrariamende [[Special:Tags|tag]] sus a le revisiune individuale e vôsce de l'archivije",
        "newuserlogpage": "Archivije de ccreazione de le utinde",
        "newuserlogpagetext": "Quiste ète l'archivije de le creazziune de l'utinde.",
        "rightslog": "Archivie de le diritte de l'utende",
        "action-createpage": "ccreje le pàggene",
        "action-createtalk": "ccreje le pàggene de le 'ngazzaminde",
        "action-createaccount": "ccreje stu cunde utende",
+       "action-history": "'ndruche 'u cunde de sta pàgene",
        "action-minoredit": "signe stu cangiamende cumme stuédeche",
        "action-move": "spuéste sta pàgene",
        "action-move-subpages": "spuéste sta pàgene e tutte chidde ca stonne sotte a jedde",
        "action-move-rootuserpages": "spuèste le pàggene utinde prengepàle",
+       "action-move-categorypages": "spuèste le pàggene de le categorije",
        "action-movefile": "spueste stu file",
        "action-upload": "careche stu fail",
        "action-reupload": "sovrascrive stu file esistende",
        "action-viewmywatchlist": "'ndruche le pàggene condrollate tune",
        "action-viewmyprivateinfo": "'ndruche le 'mbormaziune private tune",
        "action-editmyprivateinfo": "cange le 'mbormaziune private tune",
+       "action-editcontentmodel": "cange 'u modelle de condenute d'a pàgene",
+       "action-managechangetags": "ccreje e scangìlle le tag da 'u database",
+       "action-applychangetags": "appleche le tag sus a le cangiaminde tune",
+       "action-changetags": "Aggiunge e live arbitrariamende tag sus a le revisiune individuale e vôsce de l'archivije",
        "nchanges": "$1 {{PLURAL:$1|cangiaminde|cangiaminde}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|da l'urtema visite}}",
        "enhancedrc-history": "cunde",
        "recentchanges-label-minor": "Quiste ète 'nu cangiamende stuèdeche",
        "recentchanges-label-bot": "Stu cangiamende ha state fatte da 'nu bot",
        "recentchanges-label-unpatrolled": "Stu cangiamende non g'à state angore condrollate",
+       "recentchanges-label-plusminus": "'A dimenzione d'a pàgene ave cangiate da stu numere de byte",
        "recentchanges-legend-heading": "'''Leggende:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ('ndruche pure [[Special:NewPages|elenghe de le pàggene nuève]])",
        "rcnotefrom": "Sotte {{PLURAL:$5|ste 'u cangiamende|stonne le cangiaminde}} da <strong>$3, $4</strong> ('nzigne a <strong>$1</strong> fatte vedè).",
        "rclistfrom": "Fà vedè le urteme cangiaminde partenne da $3 $2",
        "rcshowhideminor": "$1 cangiaminde stuèdeche",
+       "rcshowhideminor-show": "Fà vedè",
        "rcshowhideminor-hide": "Scunne",
        "rcshowhidebots": "$1 bot",
        "rcshowhidebots-show": "Fà vedè",
+       "rcshowhidebots-hide": "Scunne",
        "rcshowhideliu": "$1 utinde reggistrate",
+       "rcshowhideliu-show": "Fà vedè",
        "rcshowhideliu-hide": "Scunne",
        "rcshowhideanons": "$1 utende scanusciute",
+       "rcshowhideanons-show": "Fà vedè",
        "rcshowhideanons-hide": "Scunne",
        "rcshowhidepatr": "$1 cangiaminde condrollete",
+       "rcshowhidepatr-show": "Fà vedè",
+       "rcshowhidepatr-hide": "Scunne",
        "rcshowhidemine": "$1 cangiaminde mie",
+       "rcshowhidemine-show": "Fà vedè",
        "rcshowhidemine-hide": "Scunne",
        "rclinks": "Vide l'urteme $1 cangiaminde jndr'à l'urteme $2 sciurne<br />$3",
        "diff": "diff",
        "fileexists-shared-forbidden": "'Nu file cu stu nome già esiste jndr'à 'u repository condivise de le file.<br />\nce tu vuè angore carecà stu file, pe piacere tuèrne rrete e ause 'nu nome nuève. [[File:$1|thumb|center|$1]]",
        "file-exists-duplicate": "Stu file jè 'na copie {{PLURAL:$1|d'u seguende file|de le seguende file}}:",
        "file-deleted-duplicate": "'Nu file uguale a stu file ([[:$1]]) ha state scangellate precedendemende.<br />\nAvissa verificà 'a storie d'a scangellazzione d'u file apprime de condinuà a carecarle.",
+       "file-deleted-duplicate-notitle": "'Nu file ugguale a quiste ha state scangellate apptime, e 'u titole ha state scettate.\nTu avissa cercà a quacched'une cu l'abbilità de 'ndrucà 'mbra le file scettate de revedè 'a situazzione apprime cu 'u careche arrete.",
        "uploadwarning": "Avvise de carecamende",
        "uploadwarning-text": "Pe piacere cange 'a descrizione d'u file sotte e pruève 'notra vote.",
        "savefile": "Reggistre 'u file",
        "uploaddisabledtext": "Le carecaminde de le file sonde disabbilitete.",
        "php-uploaddisabledtext": "Le carecaminde de file sonde disabilitate in PHP.<br />\nPe piacere verifiche le 'mbostaziune d'u ''file_uploads''.",
        "uploadscripted": "Stu file condene HTML o codece de script ca ponne essere inderpretete jndr'à 'nu mode sbagliete da le browser.",
+       "upload-scripted-pi-callback": "Non ge pozze carecà 'nu file ca téne istruziune de processe de xml-stylesheet.",
+       "uploaded-script-svg": "Acchiate elemende pe script \"$1\" jndr'à 'u file SVG carecate.",
+       "uploaded-hostile-svg": "Acchiate 'nu CSS insecure ndr'à l'elemende de stile d'u file SVG carecate.",
        "uploadscriptednamespace": "Stu file SVG tène 'nu namespace illegale '$1'",
        "uploadinvalidxml": "L'XML jndr'à 'u file carecate non ge pò essere analizzate.",
        "uploadvirus": "Alanga toje, 'u file condiene 'nu virus! Dettaglie: $1",
        "license": "Licenziete da:",
        "license-header": "Licenziate da",
        "nolicense": "Ninde selezionete",
+       "licenses-edit": "Cange le opziune d'a licenze",
        "license-nopreview": "(L'andeprime non g'è disponibbile)",
        "upload_source_url": " ('u file tune scacchiate da 'na URL, valide e accessibbile pubblicamende)",
        "upload_source_file": " ('nu fail sus a 'u combiuter tune)",
+       "listfiles-delete": "scangìlle",
        "listfiles-summary": "Sta pàgena speciale face vedè tutte le file carecate.<br />\nQuanne jè filtrate da l'utende, sulamende le file addò quidde utende ave carecate le versiune cchiù recende, avènene fatte vedè.",
        "listfiles_search_for": "Cirche pe nome de le media:",
+       "listfiles-userdoesnotexist": "Nome utende \"$1\" non g'è reggistrate.",
        "imgfile": "file",
        "listfiles": "Liste de le fail",
        "listfiles_thumb": "Miniature",
        "download": "scareche",
        "unwatchedpages": "Pàggene ca non ge ste condrolle",
        "listredirects": "Liste de le ridirezionaminde",
+       "listduplicatedfiles": "Elenghe de le file a doppie",
+       "listduplicatedfiles-summary": "Quiste ète 'n'elenghe de file addò 'a versione cchiù recende d'u file jè a doppie rispette a quedda de 'n'otre file. Sulamende le file locale avènene considerate.",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]] ave [[$3|{{PLURAL:$2|'nu duplicate|$2 duplicate}}]].",
        "unusedtemplates": "Template ca non ge sonde ausete",
        "unusedtemplatestext": "Sta pàgene elenghe tutte le pàggene jndr'à 'u namespace {{ns:template}} ca non ge stonne ingluse jndr'à otre pàggene.\nArrecuèrdete de condrollà pe otre collegaminde a le template apprime de scangellarle.",
        "unusedtemplateswlh": "Otre collegaminde",
        "randomincategory": "Pàggene a uecchije jndr'à categorije",
        "randomincategory-invalidcategory": "\"$1\" non g'è 'nu nome d'a categorije valide.",
        "randomincategory-nopages": "Non ge stonne pàggene jndr'à [[:Category:$1]].",
+       "randomincategory-category": "Categorije:",
+       "randomincategory-legend": "Pàgene a uecchije jndr'à categorije",
        "randomredirect": "Redirezionamende a uecchie",
        "randomredirect-nopages": "Non ge stonne redirezionaminde jndr'à 'u namespace \"$1\".",
        "statistics": "Statisteche",
        "ninterwikis": "$1 {{PLURAL:$1|interuicchi|interuicchi}}",
        "nlinks": "$1 {{PLURAL:$1|collegamende|collegaminde}}",
        "nmembers": "$1 {{PLURAL:$1|membre|membre}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|membre}}",
        "nrevisions": "$1 {{PLURAL:$1|revisione|revisiune}}",
        "nviews": "$1 {{PLURAL:$1|visite|visite}}",
        "nimagelinks": "Ausate sus a $1 {{PLURAL:$1|pàgene|pàggene}}",
        "unusedimages": "Fail ca non g'avènene ausete",
        "wantedcategories": "Categorije cerchete",
        "wantedpages": "Pàggene cchiù cerchete",
+       "wantedpages-summary": "Elenghe de tutte le pàggene ca non g'esistene cu 'u numere de le collegaminde a lore, escludenne le pàggene le quale onne sulamende cullagaminde de redirezionaminde a lore. Pe 'n'elenghe de le pàggene ca non g'esistene ca onne collegaminde de redirezionaminde a lore, 'ndruche [[{{#special:BrokenRedirects}}|l'elenghe de le redirezionaminde scuasciate]].",
        "wantedpages-badtitle": "Titele invalide in mmienze a l'inzieme de le resultate: $1",
        "wantedfiles": "File cchiù cerchete",
        "wantedfiletext-cat": "Le seguende file onne state ausate ma non g'esistene, Le file de le archivije de fore ponne essere elengate fine ca esistene. Ogne false allarme avène <del>signate</del>. In aggiunde, le pàggene ca tènene ste file ca non g'esistene avène elengate jndr'à [[:$1]]",
+       "wantedfiletext-cat-noforeign": "Le file seguende so ausate ma non g'esistene. Pò, le pàggene ca onne file 'ngapsulate ca non g'esistene sò elengate jndr'à [[:$1]]",
        "wantedfiletext-nocat": "Le file seguende onne state ausate ma non g'esistene. Le file da le archivije esterne ponne stà in liste fine ca esistente. Ogne false allarme avène <del>segnalate</del>.",
+       "wantedfiletext-nocat-noforeign": "Le file seguende avènene ausate ma non g'esistene.",
        "wantedtemplates": "Template cchiù ausete",
        "mostlinked": "Pàggene cchiù appundete",
        "mostlinkedcategories": "Categorije cchiù appundete",
        "deadendpagestext": "Le pàggene ca seguene non g'appondute a otre pàggene sus a {{SITENAME}}.",
        "protectedpages": "Pàggene prutette",
        "protectedpages-indef": "Sulamende protezziune indefinite",
+       "protectedpages-summary": "Sta pàgene elenghe le pàggene ca so prutette. Pe 'n'elenghe de le titole ca sò prutette da 'a ccrejazzione, 'ndruche [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
        "protectedpages-cascade": "Sulamende prutezzione a cascata",
+       "protectedpages-noredirect": "Scunne le redirezionaminde",
        "protectedpagesempty": "Nisciuna pàgene jè prutette pe mò cu ste parametre.",
+       "protectedpages-timestamp": "Orarie de stambe",
+       "protectedpages-page": "Pàgene",
+       "protectedpages-expiry": "Scade",
+       "protectedpages-performer": "Stoche a protegge l'utende",
+       "protectedpages-params": "Parametre de protezzione",
+       "protectedpages-reason": "Mutive",
+       "protectedpages-unknown-timestamp": "Scanusciute",
+       "protectedpages-unknown-performer": "Utende scanusciute",
        "protectedtitles": "Titele prutette",
+       "protectedtitles-summary": "Sta pàgene elenghe le titole ca so prutette da 'a ccrejazzione. Pe 'n'elenghe de le pàggene ca sò prutette, 'ndruche [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
        "protectedtitlesempty": "Nisciune titele jè pe mò prutette cu ste parametre.",
        "listusers": "Liste de l'utende",
        "listusers-editsonly": "Fà vedè sulamende l'utinde cu cangiaminde fatte",
        "pager-older-n": "{{PLURAL:$1|cchiù vecchie 1|cchiù vicchie $1}}",
        "suppress": "Supervisione",
        "querypage-disabled": "Sta pàgena speciale jè desabbilitate pe mutive de prestaziune.",
+       "apihelp": "Aijute de l'API",
+       "apihelp-no-such-module": "Module \"$1\" none acchiate.",
        "booksources": "Sorgende de le libbre",
        "booksources-search-legend": "Cirche pe le fonde de le libbre",
        "booksources-isbn": "ISBN:",
        "logempty": "Non ge stè 'n'anema de priatorie jndr'à l'archivije.",
        "log-title-wildcard": "Cirche le titele ca accumenzene cu stu teste",
        "showhideselectedlogentries": "Fà vedè/scunne le righe scacchiate de l'archivije",
+       "log-edit-tags": "Cange le tag de 'na vôsce de l'archivije scacchiate",
        "allpages": "Tutte le pàggene",
        "nextpage": "Pàgene apprisse ($1)",
        "prevpage": "Pàgene apprime ($1)",
        "listgrouprights-removegroup-self": "Live {{PLURAL:$2|'u gruppe|le gruppe}} da 'u cunde utende mije: $1",
        "listgrouprights-addgroup-self-all": "Mitte tutte le gruppe sus a 'u cunde utende mije",
        "listgrouprights-removegroup-self-all": "Live tutte le gruppe da 'u cunde utende mije",
+       "listgrouprights-namespaceprotection-header": "Diviete sus a 'u namespace",
+       "listgrouprights-namespaceprotection-namespace": "Namespace",
+       "listgrouprights-namespaceprotection-restrictedto": "Deritte ca permettone a l'utende de cangià",
+       "trackingcategories": "Categorije de tracciamende",
+       "trackingcategories-summary": "Sta pàgene elenghe le categorije de tracciamende le quale automaticamende se ienghiene cu 'u software de mediaUicchi. Le nome lore ponne essere cangiate, cangianne le messàgge de sisteme jndr'à 'u {{ns:8}} namespace.",
+       "trackingcategories-msg": "Categorije de tracciamende",
+       "trackingcategories-name": "Nome d'u messàgge",
+       "trackingcategories-desc": "Criterie de 'nglusione d'a categorije",
+       "noindex-category-desc": "'A pàgene non g'è indicizzate da le robbot purcé tène 'a parola mageche <code><nowiki>__NOINDEX__</nowiki></code> e stè jndr'à 'nu namespace addò sta bandiere jè permesse.",
+       "index-category-desc": "'A pàgene tène 'nu <code><nowiki>__INDEX__</nowiki></code> jndr'à jedde (e 'u namespace addò 'a bandiere stè jè permesse), e allore avène indicizzate da le robbot addò normalmende non g'adda essere.",
+       "post-expand-template-inclusion-category-desc": "'A dimenzione d'a pàgene jè cchiù granne de <code>$wgMaxArticleSize</code> apprisse l'espanzione de tutte le template, accussì certe template non g'avènene spannute.",
+       "post-expand-template-argument-category-desc": "'A dimenzione d'a pàgene jè cchiù granne de <code>$wgMaxArticleSize</code> apprisse l'espanzione de 'n'argomende d'u template (quacchecose jndr'à le parendese triple, cumme <code>{{{Foo}}}</code>).",
+       "expensive-parserfunction-category-desc": "'A pàgene ause troppe analizzature de funziune pesande (cumme <code>#ifexist</code>). 'Ndruche [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
+       "broken-file-category-desc": "'A pàgene tène 'nu collegamende a 'nu file scuasciate ('nu collegamende pe 'ngapsulà 'u file quanne 'u file non g'esiste).",
+       "hidden-category-category-desc": "'A categorije tène <code><nowiki>__HIDDENCAT__</nowiki></code> jndr'à 'u condenute d'a pàgena soje, 'u quale non ge face 'ndrucà 'a categorije jndr'à sezione de le categorije d'a pàgene.",
+       "trackingcategories-nodesc": "Nisciuna descrizione disponibbile.",
+       "trackingcategories-disabled": "'A categorije jè disabbilitate",
        "mailnologin": "Nisciune indirizze de invie",
        "mailnologintext": "Tu a essere [[Special:UserLogin|collegate]] e a avè 'n'indirizze email valide jndr'à le [[Special:Preferences|preferenze]] tue pe mannà 'na mail a otre utinde.",
        "emailuser": "Manne n'email a stu utende",
        "emailccsubject": "Copie de le messàgge tue a $1: $2",
        "emailsent": "E-mail mannete",
        "emailsenttext": "'U messagge email tue ha state mannete.",
-       "emailuserfooter": "Sta e-mail ha state mannate da $1 a $2 da 'a funziona \"E-mail a l'utende\" de {{SITENAME}}.",
+       "emailuserfooter": "Sta e-mail ha state mannate da $1 a $2 da 'a funziona \"{{int:emailpage}}\" de {{SITENAME}}.",
        "usermessage-summary": "Lassanne 'nu messagge de sisteme.",
        "usermessage-editor": "Messaggiatore de sisteme",
        "usermessage-template": "MediaWiki:UserMessage",
        "watchnologin": "Non ge sinde colleghete",
        "addwatch": "Mitte jndr'à le pàggene condrollate",
        "addedwatchtext": "'A pàgene \"[[:$1]]\" ha state aggiunde jndr'à le [[Special:Watchlist|pàggene condrollate]].\nLe cangiaminde future a sta pàgene e 'a pàgene de le 'ngazzaminde associete le puè acchià aqquà.",
+       "addedwatchtext-short": "'A pàgene \"$1\" ha state aggiunde a l'elenghe de le pàggene condrollate.",
        "removewatch": "Live da le pàggene condrollate",
        "removedwatchtext": "'A pàgene \"[[:$1]]\" ha state scangillete da [[Special:Watchlist|le pàggene condrollete tue]].",
+       "removedwatchtext-short": "'A pàgene \"$1\" ha state luate da l'elenghe de le pàggene condrollate.",
        "watch": "Condrolle",
        "watchthispage": "Condrolle sta pàgene",
        "unwatch": "No condrollà cchiù",
        "delete-edit-reasonlist": "Mutive de scangellazione de le cangiaminde",
        "delete-toobig": "Sta pàgene tène 'na storie de cangiaminde troppe longhe, sus a $1 {{PLURAL:$1|revisione|revisiune}}.\n'U scangellamende de stuèzze de pàgene avène ristrette pe prevenì 'ngasinaminde accidentale de {{SITENAME}}.",
        "delete-warning-toobig": "Sta pàgene tène 'na storie troppo longhe, sus a $1 {{PLURAL:$1|revisione|revisiune}}.\nScangellanne pò ccreja casine sus a le operazione d'u database de {{SITENAME}};\nvà cunge cunge!",
+       "deleteprotected": "Non ge puè scangellà sta pàgene purcé ha state protette.",
+       "deleting-backlinks-warning": "'''Attenziò:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Otre pàggene]] appondene o vonne 'a pàgene ca tu vue ccù scangìlle.",
        "rollback": "Annulle le cangiaminde",
        "rollbacklink": "annulle 'u cangiaminde",
        "rollbacklinkcount": "annulle $1 {{PLURAL:$1|cangiamende|cangiaminde}}",
        "protect-othertime": "Otre timbe:",
        "protect-othertime-op": "otre orarie",
        "protect-existing-expiry": "'U timbe de scadenze esistende: $3, $2",
+       "protect-existing-expiry-infinity": "Orarie de scadenze esistende: infinite",
        "protect-otherreason": "Otre mutive:",
        "protect-otherreason-op": "Otre mutive",
        "protect-dropdown": "*Mutive de protezzione comune\n** Vandalisme eccessive\n** Spamming eccessive\n** Uerre de cangiaminde condro producende\n** Ierte traffiche sus a pàgene",
        "namespace": "Namespace:",
        "invert": "Selezione 'a smerse",
        "tooltip-invert": "Signe sta sckatele pe sconnere le cangiaminde a le pàggene cu 'u namespace scacchiate (e le namespace associate ce sonde signate)",
+       "tooltip-whatlinkshere-invert": "Signe sta buatte pe sconnere le collegaminde da le pàggene cu 'u namespace scacchiate.",
        "namespace_association": "Namespace associate",
        "tooltip-namespace_association": "Signe sta sckatele pure pe 'ngludere le namespace de le 'ngazzaminde o le suggette associate cu 'u namespace scacchiate",
        "blanknamespace": "(Prengepàle)",
        "contributions-title": "Condrebbute de l'utende pe $1",
        "mycontris": "Condrebbute mie",
        "contribsub2": "Pe {{GENDER:$3|$1}} ($2)",
+       "contributions-userdoesnotexist": "'U cunde utende \"$1\" non g'è reggistrate.",
        "nocontribs": "Nisciune cangiamende ha state acchiate cu ste criterie.",
        "uctop": "(de mò)",
        "month": "Da 'u mese (e cchiù recende):",
        "sp-contributions-newbies-sub": "Pe l'utinde nuève",
        "sp-contributions-newbies-title": "Condrebbute de l'utinde pe le cunde utinde nuéve",
        "sp-contributions-blocklog": "Archivije de le Bloccaminde",
+       "sp-contributions-suppresslog": "condrebbute de l'utende scangellate",
        "sp-contributions-deleted": "condrebbute de l'utende scangellate",
        "sp-contributions-uploads": "carecaminde",
        "sp-contributions-logs": "archivije",
        "sp-contributions-search": "Ricerche pe condrebbute",
        "sp-contributions-username": "Indirizze IP o nome de l'utende:",
        "sp-contributions-toponly": "Sulamende facenne vedè le cangiaminde de l'urteme revisiune",
+       "sp-contributions-newonly": "Fà vedè sulamende le cangiaminde ca onne ccrejate 'a pàgene",
        "sp-contributions-submit": "Cirche",
        "whatlinkshere": "Appondene aqquà",
        "whatlinkshere-title": "Pàggene ca appondene a \"$1\"",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] ha state bloccate.<br />\nVide [[Special:BlockList|'a liste de le IP bloccate]] pe revedè le blocche.",
        "ipb-blockingself": "Te stè bluecche da sule, si secure ca 'u vuè ccu face?",
        "ipb-confirmhideuser": "Tu ste bluècche 'n'utende cu l'opzione \"scunne utende\" abbilitate. St'operazione pò leve 'u nome de l'utende jndr'à tutte l'elenghe e le vôsce de l'archivije. Tu si secure ca 'u vuè ccu face?",
+       "ipb-confirmaction": "Ce tu sì secure ca vue ccù face sta cose, pe piacere signe 'u cambe \"{{int:ipb-confirm}}\" sotta sotte.",
        "ipb-edit-dropdown": "Cange le mutive d'u blocche",
        "ipb-unblock-addr": "Sblocche $1",
        "ipb-unblock": "Sblocche nome utende o indirizze IP",
        "unblocked": "[[User:$1|$1]] ha state sblocchete",
        "unblocked-range": "$1 ha state sbloccate",
        "unblocked-id": "Blocche $1 ha state luvete",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] ha state sbloccate.",
        "blocklist": "Utinde bloccate",
        "ipblocklist": "Utinde bloccate",
        "ipblocklist-legend": "Iacchije 'n'utende blocchete",
        "movepagetalktext": "'A pagene de le 'ngazzaminde associete avène spustete automaticamende ce però:\n\n* Ste 'na pàgene de 'ngazzaminde chiena sotte 'a vôsce nova, o\n* Non ge signe 'u cieck box de sotte.\n\nJndr'à ste case, 'a pàgene non g'avène spustete e pò t'a cupià a màne 'u codenute sue.",
        "movearticle": "Spuèste:",
        "moveuserpage-warning": "'''Attenziò:''' Tu stè spuèste 'na pàgene utende. Vide bbuène ca sulamende 'a pàgene avène spustate ma l'utende ''non'' g'avene renomenate.",
+       "movecategorypage-warning": "<strong>Attenziò:</strong> Tu vuè ccu spuéste 'na pàgene categorije. Vide ca sulamende 'a pàgene avène spustate ma tutte le pàggene ca stonne jndr'à categorije <em>non</em> g'avène spustate sotte a quedda nove.",
        "movenologintext": "Tu a essere 'n'utende reggistrete e [[Special:UserLogin|colleghete]] pe spustà 'na pàgene.",
        "movenotallowed": "Tu non ge tìne 'u permesse pe spustà le pàggene.",
        "movenotallowedfile": "Tu non ge tìne 'u permesse pe spustà le file.",
        "cant-move-user-page": "Tu non ge tìne 'u permesse pe spustà le pàggene de l'utinde (staccannele cumme sottopàggene).",
        "cant-move-to-user-page": "Tu non ge tìne 'u permesse pe spustà 'na pàgene a 'na pàgene utende (sulamende pe le sottopàggene de l'utinde).",
+       "cant-move-category-page": "Tu non ge tìne 'u permesse pe spustà le pàggene de categorije.",
+       "cant-move-to-category-page": "Tu non ge tìne 'u permesse pe spustà 'na pàgena cumme 'na pàgene de categorije.",
        "newtitle": "A 'u titele nuève:",
        "move-watch": "condrolle sta pàgene",
        "movepagebtn": "Spueste 'a pàgene",
        "thumbnail-temp-create": "Non ge se pò ccrejà 'na miniature temboranèe d'u file",
        "thumbnail-dest-create": "Non ge se pò reggistrà 'a miniature jndr'à destinazione",
        "thumbnail_invalid_params": "Parametre pe le miniature invalide",
+       "thumbnail_toobigimagearea": "File cu dimenziune cchiù granne de $1",
        "thumbnail_dest_directory": "Non ge pozze ccrejà 'a cartella de destinazione",
        "thumbnail_image-type": "Tipe de immaggine non supportate",
        "thumbnail_gd-library": "Configurazione d'a libbrerie GD ingomblete: funziona perse $1",
        "thumbnail_image-missing": "'U file pare ca non ge se iacchie: $1",
+       "thumbnail_image-failure-limit": "Onne state fatte 'nu sacche de tendative ($1 o de cchiù) pe fà vedè sta miniature. Pe piacere pruéve cchiù tarde.",
        "import": "Pàggene 'mbortete",
        "importinterwiki": "'Mborte da 'n'otra uicchi",
        "import-interwiki-text": "Schacchie 'na Uicchi e 'nu titole de pàgene da 'mbortà.\nLe date d'a revisione e 'u nome de le cangiature avènene preservate.\nTutte le aziune de 'mbortaziune 'mbrà le Uicchi sonde reggistrate jndr'à l'[[Special:Log/import|archivije de le 'mbortaziune]].",
+       "import-interwiki-sourcewiki": "Uicchi de origgine:",
+       "import-interwiki-sourcepage": "Pàgene de origgine:",
        "import-interwiki-history": "Copie tutte 'a sotrie de le versiune de sta pàgene",
        "import-interwiki-templates": "Inglude tutte le template",
        "import-interwiki-submit": "'Mborte",
+       "import-mapping-default": "'Mborte le località de base",
+       "import-mapping-namespace": "'Mborte jndr'à 'nu namespace:",
+       "import-mapping-subpage": "'Mborte cumme a sottopàggene de sta pàgene:",
        "import-upload-filename": "Nome d'u file:",
        "import-comment": "Commende:",
        "importtext": "Pe piacere esporte 'u file da 'a Uicchi sorgende ausanne l'[[Special:Export|utilità de esportazione]].\nReggistrele sus a 'u combiuter tune e carechele aqquà.",
        "import-error-special": "'A pagena \"$1\" non g'ha state 'mbortate purcé apponde a 'nu namespace speciale ca non g'è permesse a le pàggene normale.",
        "import-error-invalid": "'A pàgene \"$1\" non g'ha state 'mbortate purcé 'u nome sus a 'u quale avessa essere 'mborate non g'è valide sus a sta uicchi.",
        "import-error-unserialize": "'A revisione $2 d'a pàgene \"$1\" non ge pò essere deserializzate. 'A revisione ha state reportate pe ausà 'u modelle d'u condenute $3 serializzate cumme $4.",
+       "import-error-bad-location": "'A revisione $2 ste ause 'u modelle de condenute $3 ca non ge pò essere reggistrate sus a \"$1\" sus a sta Uicchi, 'nzigne a quanne stu modele non ge vale pe sta pàgene.",
        "import-options-wrong": "{{PLURAL:$2|opzione|opziune}} sbagliate: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "'A pàgene radice date tène 'nu titole invalide.",
        "import-rootpage-nosubpage": "Namespace \"$1\" d'a pàgene prengepàle non ge permette le sottopàggene.",
        "javascripttest": "Test de JavaScript",
        "javascripttest-pagetext-noframework": "Sta pàgene jè riservate pe le esecuziune de le test de Javascript.",
        "javascripttest-pagetext-unknownframework": "Ambiende de teste scanusciute \"$1\".",
+       "javascripttest-pagetext-unknownaction": "Aziona scanusciute \"$1\"",
        "javascripttest-pagetext-frameworks": "Pe piacere scacchie une de le seguende ambiende de test: $1",
        "javascripttest-pagetext-skins": "Scacchie 'n'aspette pe eseguì le test cu:",
        "javascripttest-qunit-intro": "Vide 'a [$1 documendazione d'u test] sus a mediawiki.org.",
        "tooltip-pt-mycontris": "Liste de le condrebbute mie",
        "tooltip-pt-login": "Tu si 'ncoraggiete a cullegarte, jidde non g'è 'n'obblighe.",
        "tooltip-pt-logout": "Isse",
+       "tooltip-pt-createaccount": "Te ste 'ngoragge pe ccrejà 'nu cunde e trasè; comungue, non g'è obbligatorie",
        "tooltip-ca-talk": "'Ngazzaminde sus 'a pàgene de le condenute",
        "tooltip-ca-edit": "Tu puè cangià sta pàgene.\nPe piacere ause 'u buttone de l'andeprime apprime de salvà.",
        "tooltip-ca-addsection": "Fà accumenzà 'na seziona nove",
        "tooltip-feed-atom": "Atom feed pe sta pàgene",
        "tooltip-t-contributions": "Vide 'a liste de le condrebbute de quiste utende",
        "tooltip-t-emailuser": "Manne n'e-mail a stu utende",
+       "tooltip-t-info": "Cchiù 'mbormaziune sus a sta pàgene",
        "tooltip-t-upload": "Careche le file",
        "tooltip-t-specialpages": "Liste de tutte le pàggene speciale",
        "tooltip-t-print": "Versiona stambabele de sta pàgene",
        "pageinfo-length": "Lunghezze d'a pàgene (in byte)",
        "pageinfo-article-id": "ID d'a pàgene",
        "pageinfo-language": "Lènga d'a pàgene de condenute",
+       "pageinfo-content-model": "Modelle de vôsce de condenute",
        "pageinfo-robot-policy": "Indicizzate da le robbot",
        "pageinfo-robot-index": "Permesse",
        "pageinfo-robot-noindex": "Non permesse",
        "pageinfo-protect-cascading-yes": "Sine",
        "pageinfo-protect-cascading-from": "Le protezziune sò a cascate da",
        "pageinfo-category-info": "'Mbormaziune sus a 'a categorije",
+       "pageinfo-category-total": "Numere totale de membre",
        "pageinfo-category-pages": "Numere de pàggene",
        "pageinfo-category-subcats": "Numere de sottocategorije",
        "pageinfo-category-files": "Numere de file",
        "patrol-log-page": "Archivije de le condrolle",
        "patrol-log-header": "Quiste è l'archivije de le revisiune condrollate.",
        "log-show-hide-patrol": "$1 archivije de le condrolle",
+       "log-show-hide-tag": "$1 archivije de le tag",
        "deletedrevision": "Vecchia revisione scangellete $1",
        "filedeleteerror-short": "Errore mentre stè scangelleve 'u file: $1",
        "filedeleteerror-long": "Quanne ste scangelleve 'u file s'onne presendede ste errore:\n\n$1",
        "newimages-summary": "Sta pàgena speciale face vedè l'urteme file carecate.",
        "newimages-legend": "Filtre",
        "newimages-label": "Nome d'u fail (o 'nu stuezze de jidde):",
+       "newimages-showbots": "Fà vedè le scarecaminde da bot",
        "noimages": "Non ge stè ninde da vedè.",
        "ilsubmit": "Cirche",
        "bydate": "pe date",
        "percent": "$1%",
        "parentheses": "($1)",
        "brackets": "[$1]",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← pàgena precedende",
        "imgmultipagenext": "pàgena successive →",
        "imgmultigo": "Veje!",
        "imgmultigoto": "Veje 'a pàgene $1",
+       "img-lang-default": "(lènghe de base)",
+       "img-lang-info": "Renderizze st'immaggine jndr'à $1. $2",
        "img-lang-go": "Véje",
        "ascending_abbrev": "asc",
        "descending_abbrev": "desc",
        "autosumm-replace": "Condenute sostituite cu '$1'",
        "autoredircomment": "Stoche a ridirezione sus a [[$1]]",
        "autosumm-new": "Pàgena ccrejete cu '$1'",
+       "autosumm-newblank": "Ccrejate 'na pàgena vianghe",
        "size-bytes": "$1 B",
        "size-kilobytes": "$1 KB",
        "size-megabytes": "$1 MB",
        "watchlistedit-raw-done": "'A liste de le pàggene condrollete ha state aggiornete.",
        "watchlistedit-raw-added": "{{PLURAL:$1|'nu titele ha|$1 titele onne}} state aggiunde:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|'nu titele ha|$1 titele onne}} state scangillete:",
+       "watchlistedit-clear-title": "Elenghe de le pàggene condrollate sdevacate",
+       "watchlistedit-clear-legend": "Sdevache l'elenghe de le pàggene condrollate",
+       "watchlistedit-clear-explain": "Tutte le titole avènene luate da l'elenghe de le pàggene condrollate tune",
+       "watchlistedit-clear-titles": "Titole:",
+       "watchlistedit-clear-submit": "Sdevache l'elenghe de le pàggene condrollate (Quiste jè permanende)",
+       "watchlistedit-clear-done": "L'elenghe de le pàggene condrollate ha state sdevacate.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|1 titole ha state|$1 titole onne state}} luate:",
+       "watchlistedit-too-many": "Stonne troppe pàggene da fà vedè aqquà.",
+       "watchlisttools-clear": "Sdevache l'elenghe de le pàggene condrollate",
        "watchlisttools-view": "Vide le cangiaminde 'mbortande",
        "watchlisttools-edit": "Vide e cange le pàggene condrollete",
        "watchlisttools-raw": "Cange le pàggene condrollete grezze grezze",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|'ngazzaminde]])",
        "timezone-utc": "UTC",
        "duplicate-defaultsort": "'''Attenziò:''' 'A chiave de arrangamende de default \"$2\" sovrascrive quedda precedende \"$1\".",
+       "duplicate-displaytitle": "<strong>Attenziò:</strong> 'U titole da vedè \"$2\" sovrascrive 'u titole da vedè \"$1\".",
+       "invalid-indicator-name": "<strong>Errore:</strong> Le indicature <code>name</code> de state d'a pàgene non ge ponne avè l'attribute vacande.",
        "version": "Versione",
        "version-extensions": "Estenziune installete",
        "version-skins": "Skin installate",
        "version-license": "Licenze",
        "version-ext-license": "Licenze",
        "version-ext-colheader-name": "Estenzione",
+       "version-skin-colheader-name": "Skin",
        "version-ext-colheader-version": "Versione",
        "version-ext-colheader-license": "Licenze",
        "version-ext-colheader-description": "Descrizione",
        "version-ext-colheader-credits": "Auture",
        "version-license-title": "Licenziate pe $1",
+       "version-license-not-found": "Nisciuna 'mbormazione sus 'a licenze ha state acchiate pe st'estenzione.",
+       "version-credits-title": "Credite pe $1",
+       "version-credits-not-found": "Nisciuna 'mbormazione dettagliate sus a le credite ha state acchiate pe sta estenzione.",
        "version-poweredby-credits": "Sta Uicchi jè fatte da '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
        "version-poweredby-others": "otre",
        "version-poweredby-translators": "tradutture de translatewiki.net",
        "version-entrypoints": "Punde de ingresse de le URL",
        "version-entrypoints-header-entrypoint": "Punde d'ingresse",
        "version-entrypoints-header-url": "URL",
+       "version-libraries": "Libbrerie installate",
+       "version-libraries-library": "Libbrerie",
+       "version-libraries-version": "Versione",
        "redirect": "Redirette da 'u file, utende o ID d'a revisione",
        "redirect-legend": "Redirette a 'nu file o 'na pàgene",
        "redirect-summary": "Sta pàgena speciale redirezione a 'nu file (date 'u nome d'u file), 'na pàgene (date 'n'ID de revisione), o 'na pàgene utende (date 'n'ID numeriche de l'utende). Ause: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/revision/328429]], o [[{{#Special:Redirect}}/user/101]].",
        "tags-tag": "Nome d'u tag",
        "tags-display-header": "Accumme parene sus 'a liste de le cangiaminde",
        "tags-description-header": "Descriziona comblete d'u significhete",
+       "tags-source-header": "Sorgende",
        "tags-active-header": "Attive?",
        "tags-hitcount-header": "Cangiaminde taggate",
+       "tags-actions-header": "Aziune",
        "tags-active-yes": "Sìne",
        "tags-active-no": "None",
+       "tags-source-extension": "Definite da 'n'estenzione",
+       "tags-source-manual": "Applicate a màne da l'utinde e da le bot",
+       "tags-source-none": "No cchiù ausate",
        "tags-edit": "cange",
+       "tags-delete": "scangille",
+       "tags-activate": "attive",
+       "tags-deactivate": "disattive",
        "tags-hitcount": "$1 {{PLURAL:$1|cangiamende|cangiaminde}}",
+       "tags-manage-no-permission": "Non ge tine le permesse pe gestì le cangiaminde de le tag.",
+       "tags-create-heading": "Ccreje 'nu tag nuève",
+       "tags-create-explanation": "De base, le tag nuève devèndene disponibbile pe l'ause da l'utinde e le bot.",
+       "tags-create-tag-name": "Nome d'u tag:",
+       "tags-create-reason": "Mutive:",
+       "tags-create-submit": "Ccreje",
+       "tags-create-no-name": "Tu a specificà 'nu nome d'u tag.",
+       "tags-create-invalid-chars": "Le nome de le tag non g'onna tenè le virgole (<code>,</code>) o slash (<code>/</code>).",
+       "tags-create-invalid-title-chars": "Le nome de le tag non g'onna tenè carattere ca non ge ponne essere ausate jndr'à le titole de le pàggene.",
+       "tags-create-already-exists": "'U tag \"$1\" già esiste.",
+       "tags-create-warnings-above": "{{PLURAL:$2|'U seguende avvise ha|le seguende avvise onne}} assute quanne ste pruvave de ccrejà 'u tag \"$1\":",
+       "tags-create-warnings-below": "Vue ccu condinue a ccrejà 'u tag?",
+       "tags-delete-title": "Scangìlle 'u tag",
+       "tags-delete-explanation-initial": "Tu ste scangìlle 'u tag \"$1\" da 'u database.",
+       "tags-delete-explanation-in-use": "Avène luate da {{PLURAL:$2|$2 revisione o vôsce de l'archivije|tutte le $2 revisiune e/o vôsce de l'archivije}} ca sò applecate.",
+       "tags-delete-explanation-warning": "St'azione jè <strong>irreversibbile</strong> e <strong>non ge pò essere annullate</strong>, manghe da 'n'amministratore de database. Si probbie secure ca vue ccù scangìlle stu tag?",
+       "tags-delete-explanation-active": "<strong>'U tag \"$1\" jè angore attive, e condinue a essere applecate jndr'à 'u future.</strong> Pe fermarle, veje jndr'à le poste addò 'u tag ha state 'mbostate pe essere applecate, e disabbilitale d'addà.",
+       "tags-delete-reason": "Mutive:",
+       "tags-delete-submit": "Scangìle irreversibbilmende stu tag",
+       "tags-delete-not-allowed": "Tag definite da 'n'estenzione non ge ponne essere scangellate senze ca l'estenzione specifiche 'u permette.",
+       "tags-delete-not-found": "'U tag \"$1\" non g'esiste.",
+       "tags-delete-too-many-uses": "'U tag \"$1\" jè applecate a cchiù de $2 {{PLURAL:$2|revisione|revisiune}}, ca signifeche ca non ge pò essere scangellate.",
+       "tags-delete-warnings-after-delete": "'U tag \"$1\" ha state scangellate, ma  {{PLURAL:$2|ha assute 'u seguende avvise|onne assute le seguende avvise}}:",
+       "tags-activate-title": "Attive 'u tag",
+       "tags-activate-question": "Tu ste attive 'u tag \"$1\".",
+       "tags-activate-reason": "Mutive:",
+       "tags-activate-not-allowed": "Non g'è possibbile attivà 'u tag \"$1\".",
+       "tags-activate-not-found": "'U tag \"$1\" non g'esiste.",
+       "tags-activate-submit": "Attive",
+       "tags-deactivate-title": "Disattive 'u tag",
+       "tags-deactivate-question": "Tu ste disattive 'u tag \"$1\".",
+       "tags-deactivate-reason": "Mutive:",
+       "tags-deactivate-not-allowed": "Non g'è possibbile disattivà 'u tag \"$1\".",
+       "tags-deactivate-submit": "Disattive",
+       "tags-apply-no-permission": "Non ge tìne le permesse pe applecà le cangiaminde de tag sus a le cangiaminde tune.",
+       "tags-apply-not-allowed-one": "'U tag \"$1\" non g'è permesse de essere applecate a màne.",
+       "tags-apply-not-allowed-multi": "{{PLURAL:$2|'U tag seguende non g'è|le tag seguende non ge sò}} permesse de essere applecate a màne: $1",
+       "tags-update-no-permission": "Non ge tìne le permesse pe aggiungere o luà le cangiaminde de le tag da revisiune individuale o vôsce de l'archivije.",
+       "tags-update-add-not-allowed-one": "'U tag \"$1\" non g'è permesse de essere aggiunde a màne.",
+       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|'U tag seguende non ge pò|le tag seguende non ge ponne}} essere aggiunde a màne: $1",
+       "tags-update-remove-not-allowed-one": "'U tag \"$1\" non ge pò essere luate.",
+       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|'U tag seguende non ge pò|Le tag seguende non ge ponne}} essere luate a màne: $1",
+       "tags-edit-title": "Cange le tag",
+       "tags-edit-manage-link": "Gestisce le tag",
+       "tags-edit-revision-selected": "{{PLURAL:$1|Revisione scacchiate|Revisiune scacchiate}} de [[:$2]]:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Evende de l'archivije scacchiate}}:",
+       "tags-edit-revision-legend": "Aggiunge o live le tag da {{PLURAL:$1|sta revisione|tutte le $1 revisiune}}",
+       "tags-edit-logentry-legend": "Aggiunge o live le tag da {{PLURAL:$1|sta vôsce de l'archivije|tutte le $1 vôsce de l'archivije}}",
+       "tags-edit-existing-tags": "Tag esistende:",
+       "tags-edit-existing-tags-none": "\"Nisciune\"",
        "tags-edit-new-tags": "Tag nuève:",
+       "tags-edit-add": "Agigunge ste tag:",
+       "tags-edit-remove": "Live ste tag:",
+       "tags-edit-remove-all-tags": "(live tutte le tag)",
+       "tags-edit-chosen-placeholder": "Scacchie quacche tag",
+       "tags-edit-chosen-no-results": "Nisciune tag acchiate",
+       "tags-edit-reason": "Mutive:",
+       "tags-edit-revision-submit": "Appleche le cangiaminde a {{PLURAL:$1|sta revisione|$1 revisiune}}",
+       "tags-edit-logentry-submit": "Appleche le cangiaminde a {{PLURAL:$1|sta vôsce de l'archivije|$1 vôsce de l'archivije}}",
+       "tags-edit-success": "Le cangiaminde onne state applecate.",
+       "tags-edit-failure": "Le cangiaminde non ge ponne essere applecate:\n$1",
+       "tags-edit-nooldid-title": "Revisione de destinazione invalide",
+       "tags-edit-nooldid-text": "Tu non g'è specificate nisciuna revisione de destinazione sus 'a quale comblete sta funzione, o 'a revisione non g'esiste.",
+       "tags-edit-none-selected": "Pe piacere scacchie almene 'nu tag da aggiungere o luà.",
        "comparepages": "Combronde le pàggene",
        "compare-page1": "Pàgene 1",
        "compare-page2": "Pàgene 2",
        "htmlform-no": "None",
        "htmlform-yes": "Sìne",
        "htmlform-chosen-placeholder": "Scacchie 'n'opzione",
+       "htmlform-cloner-create": "Aggiunge 'n'otre",
+       "htmlform-cloner-delete": "Live",
+       "htmlform-cloner-required": "Almene 'nu valore l'a mettere.",
        "sqlite-has-fts": "$1 cu 'u supporte d'a ricerche full-text",
        "sqlite-no-fts": "$1 senze 'u supporte d'a ricerche full-text",
        "logentry-delete-delete": "$1 pàgena {{GENDER:$2|scangellate}} $3",
        "revdelete-uname-unhid": "nome de l'utende fatte vedè",
        "revdelete-restricted": "appliche le restriziune a le SysOps",
        "revdelete-unrestricted": "live le restriziune a le SysOps",
+       "logentry-block-block": "$1 {{GENDER:$2|bloccate}} {{GENDER:$4|$3}} cu 'na date de scadenze de $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|sbloccate}} {{GENDER:$4|$3}}",
+       "logentry-block-reblock": "$1 {{GENDER:$2|cangiate}} le 'mbostaziune d'u blocche pe {{GENDER:$4|$3}} cu 'nu tiembe de scadenze de $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|bloccate}} {{GENDER:$4|$3}} cu 'nu tiembe de scadenze de $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|cangiate}} le 'mbostaziune d'u blocche pe {{GENDER:$4|$3}} cu 'nu tiembe de scadenze de $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|'mbortate}} $3 da 'nu file carecate",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|'mbortate}} $3 da 'n'otra uicchi",
+       "logentry-merge-merge": "$1 {{GENDER:$2|scuagghiate}} $3 jndr'à $4 (revisiune 'nzigne a $5)",
        "logentry-move-move": "$1 pàgena {{GENDER:$2|spustate}} $3 a $4",
        "logentry-move-move-noredirect": "$1 pàgena {{GENDER:$2|spustate}} $3 a $4 senze lassà 'nu redirezionamende",
        "logentry-move-move_redir": "$1 pàgena {{GENDER:$2|spustate}} $3 a $4 cu 'u redirezionamende",
        "logentry-rights-rights": "$1 membre d'u gruppe {{GENDER:$2|cangiate}} pe $3 da $4 a $5",
        "logentry-rights-rights-legacy": "$1 ave {{GENDER:$2|cangiate}} 'u membre d'u gruppe pe $3",
        "logentry-rights-autopromote": "$1 ha state {{GENDER:$2|promosse}} automaticamende da $4 a $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|carecate}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|carecate}} 'na versiona nove de $3",
+       "logentry-upload-revert": "$1 {{GENDER:$2|carecate}} $3",
+       "log-name-managetags": "Archivije d'a gestione de le tag",
+       "log-description-managetags": "Sta pàgene elenghe le combite de gestione collegate a le [[Special:Tags|tags]]. L'archivije téne sulamende aziune fatte a màne da 'n'amministratore; le tag ponne essere ccrejate o scangellate da software de uicchi senze ca 'na vôsce avène scritte jndr'à l'archivije.",
+       "logentry-managetags-create": "$1 {{GENDER:$2|ccrejate}} 'u tag \"$4\"",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|scangellate}} 'u tag \"$4\" (luate da $5 {{PLURAL:$5|revisione o vôsce de l'archivije|revisiune e/o vôsce de l'archivije}})",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|attivate}} 'u tag \"$4\" pe essere ausate da utinde e bot",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|disattivate}} 'u tag \"$4\" da l'ause de utinde e bot",
+       "log-name-tag": "Archivije de le tag",
+       "log-description-tag": "Sta pàgene face vedè quanne le utinde onne aggiunde o luate le [[Special:Tags|tag]] da le revisiune individuale o da le vôsce de l'archivije. L'archivije non ge elenghe le aziune de tag quanne fanne parte de 'nu cangiamende, scangellazione o aziona simile.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|aggiunde}} {{PLURAL:$7|'u|le}} tag $6 a 'a revisione $4 d'a pàgene $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|aggiunde}} {{PLURAL:$7|'u|le}} tag $6 a 'a vôsce de l'archivije $5 d'a pàgene $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|luate}} {{PLURAL:$9|'u|le}} tag $8 da 'a revisione $4 d'a pàgene $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|luate}} {{PLURAL:$9|'u|le}} tag $8 da 'a vôsce de l'archivije $5 d'a pàgene $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|aggiornate}} le tag sus 'a revisione $4 d'a pàgene $3 ({{PLURAL:$7|aggiunde}} $6; {{PLURAL:$9|luate}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|aggiornate}} le tag sus 'a vôsce de l'archivije $5 d'a pàgene $3 ({{PLURAL:$7|aggiunde}} $6; {{PLURAL:$9|luate}} $8)",
        "rightsnone": "(ninde)",
        "revdelete-summary": "cange 'u riepileghe",
        "feedback-adding": "Aggiunge feedback a 'a pàgene...",
+       "feedback-back": "Rrete",
        "feedback-bugcheck": "Granne! Appene verificate ca non g'è une de le [$1 bug canusciute].",
        "feedback-bugnew": "Agghie verificate. Manne 'nu bug nuève",
        "feedback-bugornote": "Ce tu si pronde a descrivere 'nu probbleme tecniche cu le dettaglie pe piacere [$1 manne 'nu bug].\nCe nò, tu puè ausà 'u module facile aqquà sotte. 'U commende tune avène aggiunde a 'a pàgene [$3 $2]\", seguenne 'u nome utende tune e ce browser tu ste ause.",
        "feedback-cancel": "Annulle",
        "feedback-close": "Fatte",
+       "feedback-external-bug-report-button": "Memorizze 'nu combite tecniche",
+       "feedback-dialog-title": "Conferme 'a segnalazione",
+       "feedback-dialog-intro": "Tu puè ausà 'u module facile facile aqquà sotte pe confermà 'a segnalaziona toje. 'U commende tune avène aggiunde sus 'a pàgene \"$1\", affianghe a 'u nome utende tune.",
+       "feedback-error-title": "Errore",
        "feedback-error1": "Errore: resultate inaspettate da l'API",
        "feedback-error2": "Errore: Cangiamende fallite",
        "feedback-error3": "Errore: Nisciuna resposte da l'API",
+       "feedback-error4": "Errore: Non ge pozze mannà 'a segnalazione cu stu titole",
        "feedback-message": "Messàgge:",
        "feedback-subject": "Oggette:",
        "feedback-submit": "Conferme",
+       "feedback-terms": "Ije capische ca 'a mbormaziune de l'agende de l'utende 'nglude 'mbormaziune sus a 'u browser e 'a versione d'u sisteme operative ausate ca avènene condivise pubblecamende sus 'a segnalaziona meje.",
+       "feedback-termsofuse": "Sò d'accorde de lassà segnalaziune in accorde cu le Termine d'Ause.",
        "feedback-thanks": "Grazie! 'A segnalaziona toje ha state mannate a 'a pàgene \"[$2 $1]\".",
+       "feedback-thanks-title": "Grazie 'mbà!",
+       "feedback-useragent": "Utende agente:",
        "searchsuggest-search": "Cirche",
        "searchsuggest-containing": "tène...",
        "api-error-badaccess-groups": "Tu non ge puè carecà file sus a sta Uicchi.",
        "api-error-overwrite": "'A sovrascritture de 'nu file ca esiste non ge se pò fà.",
        "api-error-stashfailed": "Errore inderne: 'U server ha fallite 'a reggistrazione de le file temboranèe.",
        "api-error-publishfailed": "Errore inderne: 'U server ha fallite 'a pubblecazione d'u file temboranèe.",
+       "api-error-stasherror": "Ha assute 'n'errore mendre ca carecave 'u file jndr'à 'u majazzine.",
+       "api-error-stashedfilenotfound": "'U file stipate non g'ha state acchiate quanne ste pruvave a carecarle jndr'à 'u majazzine.",
+       "api-error-stashpathinvalid": "'U percorse 'addò 'u file s'avesse acchià non g'è valide.",
+       "api-error-stashfilestorage": "Ha assute 'n'errore memorizzanne 'u file jndr'à 'u majazzine.",
+       "api-error-stashzerolength": "'U server non ge pò pigghiarse 'u file, purcé téne 'na lunghezze zero.",
+       "api-error-stashnotloggedin": "Tu a trasè pe reggistrà file jndr'à 'u majazzine de carecamende.",
+       "api-error-stashwrongowner": "'U file ca ste pruéve a pigghià da 'u majazzine non ge ste cchiù.",
+       "api-error-stashnosuchfilekey": "'A chiave d'u file ca ste pruéve a pigghià da 'u majazzine non g'esiste cchiù.",
        "api-error-timeout": "'U server non g'ave resposte jndr'à 'u tiembe ca 'u spettave.",
        "api-error-unclassified": "'N'errore scanusciute s'a verificate",
        "api-error-unknown-code": "Errore scanusciute: \"$1\"",
        "expand_templates_input": "Teste de input:",
        "expand_templates_output": "Resultete",
        "expand_templates_xml_output": "XML de output",
+       "expand_templates_html_output": "Resultate HTML grezze",
        "expand_templates_ok": "OK",
        "expand_templates_remove_comments": "Live le commende",
        "expand_templates_remove_nowiki": "No fà vede le tag <nowiki> jndr'à 'u resultate",
        "expand_templates_generate_xml": "Fà vedè l'arvule de l'analisi XML",
+       "expand_templates_generate_rawhtml": "Fà vedè l'HTML grezze",
        "expand_templates_preview": "Andeprime",
+       "expand_templates_preview_fail_html": "<em>Purcé {{SITENAME}} téne abbilitate l'HTML grezze e stavane 'nu sbuénne de date de sessione perdute, l'andeprime avène scunnute pe precauzione condre a attacche JavaScript.</em>\n\n<strong>Ce quiste jè 'nu tendative de andeprime leggittime, pe piacere pruéve arrete.</strong>\nCe angore non ge funzione, pruéve a [[Special:UserLogout|assè]] e trasè arrete.",
+       "expand_templates_preview_fail_html_anon": "<em>Purcé {{SITENAME}} téne abbilitate l'HTML grezze e tu non g'è trasute, l'andeprime avène scunnute pe precauzione condre a attacche JavaScript.</em>\n\n<strong>Ce quiste jè 'nu tendative de andeprime leggittime, [[Special:UserLogin|tràse]] e pruéve arrete.</strong>",
+       "pagelanguage": "Scacchiatore d'a lènghe d'a pàgene",
+       "pagelang-name": "Pàgene",
+       "pagelang-language": "Lènghe",
+       "pagelang-use-default": "Ause 'a lènghe de base",
+       "pagelang-select-lang": "Scacchie 'a lènghe",
+       "right-pagelang": "Cange 'a lènghe d'a pàgene",
+       "action-pagelang": "cange 'a lènghe d'a pàgene",
+       "log-name-pagelang": "Cange 'a lènghe de l'archivije",
+       "log-description-pagelang": "Quiste jè l'archivije de le cangiaminde d'a lènghe jndr'à pàgene.",
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|cangiate}} 'a lènghe d'a pàgene pe $3 da $4 a $5.",
+       "default-skin-not-found": "Pizze! 'U skin de base pa uicchi toje, definite jndr'à <code dir=\"ltr\">$wgDefaultSkin</code> cumme <code>$1</code>, non g'è disponibbile.\n\n'A installazziona toje pare ca téne {{PLURAL:$4|'u skin|le skin}} seguende. 'Ndruche [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Confirazione d'u skin] pe 'mbormaziune sus a cumme abbilità {{PLURAL:$4|jidde|lore}} e scacchià quidde de base.\n\n$2\n\n; Ce tu è installate ggià MediaUicchi:\n: Tu probbabbilmende è installate da git, o direttamende da 'u codece sorgende ausanne otre metode. Quiste s'aspette. Pruéve a installà otre skin da 'a [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's cartelle de le skin], da:\n:* Scarecanne 'u [https://www.mediawiki.org/wiki/Download installatore tarball], 'u quale téne 'nu sacche de skin e estenziune. Tu puè cupià e 'ngollà 'a cartelle <code>skins/</code> da jidde.\n:* Scarecanne 'nu skin individuale de tarballs da [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Ausanne Git pe scarecà le skin].\n: Facenne quiste non ge inderferisce cu l'archivije git tune ce tu si 'nu sveluppatore MediaUicchi.\n\n; Ce tu è aggiornate MediaUicchi:\n: MediaUicchi 1.24 e versiune cchiù nuéve non ge abbilitane automaticamende le skin installate ('ndruche [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Canusce le skin autodiscovery]). Tu puè 'ngollà {{PLURAL:$5|'a linèe|le linèe}} seguende jndr'à <code>LocalSettings.php</code> pe abbilità {{PLURAL:$5|'u |tutte}} {{PLURAL:$5|skin|le skin}} installate:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Ce tu è cangiate <code>LocalSettings.php</code>:\n: Fà 'nu doppie condrolle sus a 'u nome de le skin pe tipe.",
+       "default-skin-not-found-no-skins": "Pizze! 'U skin de base pa uicchi toje, definite jndr'à <code dir=\"ltr\">$wgDefaultSkin</code> cumme <code>$1</code>, non g'è disponibbile.\n\nTu non g'è installate le skin.\n\n; Ce tu è installate o aggiornate MediaUicchi:\n: Tu probbabbilmende è installate da git, o direttamende da 'u codece sorgende ausanne otre metode. Quiste s'aspette. MediaUicchi 1.24 e versiune cchiù nuéve non ge 'ngludone  le skin jndr'à l'archivije prengepàle.Pruéve a installà quacche skin da 'a [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's cartelle de le skin], da:\n:* Scarecanne 'u [https://www.mediawiki.org/wiki/Download installatore tarball], 'u quale téne 'nu sacche de skin e estenziune. Tu puè cupià e 'ngollà 'a cartelle <code>skins/</code> da jidde.\n:* Scarecanne 'nu skin individuale de tarballs da [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Ausanne Git pe scarecà le skin].\n: Facenne quiste non ge inderferisce cu l'archivije git tune ce tu si 'nu sveluppatore MediaUicchi.",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (abbilitate)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''disabbilitate''')",
+       "mediastatistics": "Statisteche de le media",
+       "mediastatistics-summary": "Le statisteche sus a le tipe de fiel carecate. Quiste 'nglude sulamende 'a versione cchiù recende de 'nu file. Le versiune vicchie o scangellate de le file sò escluse.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "Tipe de MIME",
+       "mediastatistics-table-extensions": "Estenziune possibbile",
+       "mediastatistics-table-count": "Numere de file",
+       "mediastatistics-table-totalbytes": "Dimenzione combinate",
+       "mediastatistics-header-unknown": "Scanusciute",
+       "mediastatistics-header-bitmap": "Immaggine bitmap",
+       "mediastatistics-header-drawing": "Disegne (immaggine vettoriale)",
+       "mediastatistics-header-audio": "Audio",
+       "mediastatistics-header-video": "Video",
+       "mediastatistics-header-multimedia": "Media arricchisciute",
+       "mediastatistics-header-office": "Uffice",
+       "mediastatistics-header-text": "Testuale",
+       "mediastatistics-header-executable": "Eseguibbile",
+       "mediastatistics-header-archive": "Formate combresse",
+       "json-warn-trailing-comma": "$1 de prove {{PLURAL:$1|'a virgole ha |le virgole onne }} state luate da JSON",
+       "json-error-unknown": "Ha assute 'nu probbleme cu 'u JSON. Errore: $1",
+       "json-error-depth": "'A profonnetà massime d'a pile ha state sbunnate",
+       "json-error-state-mismatch": "JSON invalide o formate male",
+       "json-error-ctrl-char": "Errore sus a 'u carattere de condrolle, pò essere 'na decodifiche sbagliate",
+       "json-error-syntax": "Errore de sindasse",
+       "json-error-utf8": "Carattere UTF-8 formate male, pò essere 'na decodifiche sbagliate",
+       "json-error-recursion": "Une o cchiù refereminde ricorsive jndr'à 'u valore da decodificà",
+       "json-error-inf-or-nan": "Une o cchiù valore NAN o INF jndr'à 'u valore da decodificà",
+       "json-error-unsupported-type": "'Nu valore de 'nu tipe non ge pò essere decodificate cu quiste",
+       "headline-anchor-title": "Colleghe a sta sezione",
        "special-characters-group-latin": "Latine",
        "special-characters-group-latinextended": "Latine estese",
        "special-characters-group-ipa": "IPA",
index d436b51..afeccc7 100644 (file)
@@ -79,7 +79,9 @@
                        "Sealle",
                        "Macofe",
                        "DonRumata",
-                       "Mariya"
+                       "Mariya",
+                       "Marina Melik-Adamyan",
+                       "Normalex"
                ]
        },
        "tog-underline": "Подчёркивание ссылок:",
        "no-null-revision": "Не удалось создать новую нулевую правку для страницы «$1»",
        "badtitle": "Недопустимое название",
        "badtitletext": "Запрашиваемое название страницы неправильно, пусто, либо неверно указано межъязыковое или интервики название. Возможно, в названии используются недопустимые символы.",
+       "title-invalid-empty": " Заголовок запрошенной страницы пуст или является названием пространства имен.",
+       "title-invalid-utf8": "Запрашиваемое название страницы содержит некорректную последовательность символов UTF-8.",
+       "title-invalid-interwiki": "Запрашиваемое название страницы содержит интервики-ссылку, которая не может быть использована в названиях.",
+       "title-invalid-talk-namespace": "Запрашиваемое название страницы ссылается на страницу обсуждения, которая не может существовать.",
+       "title-invalid-characters": "Запрашиваемое название страницы содержит недопустимые символы: «$1».",
+       "title-invalid-relative": "Заголовок имеет относительный путь. Заголовки страниц с относительным путем (/,../) являются недействительными, так как они часто недоступны, когда обрабатываются браузером пользователя.",
+       "title-invalid-magic-tilde": "Запрашиваемый заголовок страницы содержит недопустимую последовательность тильды (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Запрашиваемый заголовок страницы слишком длинен. Он должен быть не более $1 {{PLURAL:$1|байта|байтов}} в кодировке UTF-8.",
+       "title-invalid-leading-colon": "Запрашиваемое название страницы содержит недопустимое двоеточие в начале.",
        "perfcached": "Следующие данные взяты из кэша и могут не учитывать последних изменений. В кэше хранится не более $1 {{PLURAL:$1|записи|записей}}.",
        "perfcachedts": "Следующие данные взяты из кэша, последний раз он обновлялся в $1. В кэше хранится не более $4 {{PLURAL:$4|записи|записей}}.",
        "querypage-no-updates": "Обновление этой страницы сейчас отключено.\nПредставленные здесь данные не будут обновляться.",
        "blankarticle": "<strong>Предупреждение:</strong> Страница, которую вы создаёте, пуста.\nЕсли снова нажмёте кнопку «{{int:savearticle}}», страница будет создана без какого-либо содержания.",
        "anoneditwarning": "<strong>Внимание!</strong> Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы <strong>[$1 войдёте]</strong> или <strong>[$2 создадите учётную запись]</strong>, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.",
        "anonpreviewwarning": "''Вы не представились системе. Сохранение приведёт к записи вашего IP-адреса в историю изменений страницы.''",
-       "missingsummary": "'''Напоминание.''' Вы не дали краткого описания изменений. При повторном нажатии на кнопку «{{int:savearticle}}», ваши изменения будут сохранены без комментария.",
+       "missingsummary": "'''Напоминание.''' Вы не дали краткого описания изменений. При повторном нажатии на кнопку «{{int:savearticle}}» ваши изменения будут сохранены без комментария.",
        "selfredirect": "<strong>Внимание:</strong> Вы создаёте перенаправление на ту же самую статью.\nВозможно, Вы выбрали неправильную целевую страницу для перенаправления или редактируете не ту страницу.\nЕсли Вы нажмёте кнопку «{{int:savearticle}}» ещё раз, перенаправление всё же будет создано.",
        "missingcommenttext": "Пожалуйста, введите ниже ваше сообщение.",
        "missingcommentheader": "'''Напоминание.''' Вы не указали тему/заголовок для этого комментария.\nПри повторном нажатии на кнопку «{{int:savearticle}}», ваша правка будет записана без заголовка.",
        "content-model-css": "CSS",
        "content-json-empty-object": "Пустой объект",
        "content-json-empty-array": "Пустой массив",
+       "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=bar}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Внимание!''' Эта страница содержит слишком много вызовов ресурсоёмких функций.\n\nДолжно быть не более {{PLURAL:$2|$2 вызова|$2 вызовов|1=одного вызова}}, в то время как сейчас здесь $1 {{PLURAL:$1|вызов|вызовов|вызова}}.",
        "gender-unknown": "Я предпочитаю не указывать",
        "gender-male": "Он редактирует страницы вики",
        "gender-female": "Онa редактирует страницы вики",
-       "prefs-help-gender": "УÑ\81Ñ\82ановка Ñ\8dÑ\82ой Ð½Ð°Ñ\81Ñ\82Ñ\80ойки Ð½ÐµÐ¾Ð±Ñ\8fзаÑ\82елÑ\8cна.\nÐ\9fÐ\9e использует это значение, чтобы обращаться к вам и упоминать вас в правильном грамматическом роде.\nЭта информация будет общедоступной.",
+       "prefs-help-gender": "ЭÑ\82оÑ\82 Ð¿Ð°Ñ\80амеÑ\82Ñ\80 Ð·Ð°Ð´Ð°Ð²Ð°Ñ\82Ñ\8c Ð½ÐµÐ¾Ð±Ñ\8fзаÑ\82елÑ\8cно.\nÐ\94вижок использует это значение, чтобы обращаться к вам и упоминать вас в правильном грамматическом роде.\nЭта информация будет общедоступной.",
        "email": "Электронная почта",
        "prefs-help-realname": "Вводить настоящее имя необязательно.\nЕсли вы заполните его, оно может быть использовано для указания авторства ваших работ.",
        "prefs-help-email": "Адрес электронной почты указывать необязательно, но он будет необходим в том случае, если вы забудете пароль.",
        "userrights-lookup-user": "Управление группами участников",
        "userrights-user-editname": "Введите имя учётной записи:",
        "editusergroup": "Изменить членство в группах",
-       "editinguser": "Изменение прав {{GENDER:$1|участника|участницы}} '''[[User:$1|$1]]''' $2",
+       "editinguser": "Изменение прав {{GENDER:$1|участника|участницы}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Изменение членства в группах",
        "saveusergroups": "Сохранить группы участника",
        "userrights-groupsmember": "Состоит в группах:",
        "right-sendemail": "отправка электронной почты другим участникам",
        "right-passwordreset": "просмотр электронных писем с изменением пароля",
        "right-managechangetags": "Создавать и удалять [[Special:Tags|метки]] из базы данных",
+       "right-applychangetags": "Применить [[Special:Tags|tags]] наряду с Вашими изменениями",
+       "right-changetags": "Добавлять и удалять произвольные  [[Special:Tags|tags]] на отдельных изменениях и записях в журнале",
        "newuserlogpage": "Журнал регистрации участников",
        "newuserlogpagetext": "Список недавно зарегистрировавшихся участников",
        "rightslog": "Журнал прав участника",
        "action-editmyprivateinfo": "редактирование вашей частной информации",
        "action-editcontentmodel": "редактирование контентной модели страницы",
        "action-managechangetags": "создание и удаление меток из базы данных",
+       "action-applychangetags": " применять теги наряду с Вашими изменениями",
+       "action-changetags": "Добавлять и удалять произвольные теги на отдельных изменениях и записях в журнале",
        "nchanges": "$1 {{PLURAL:$1|изменение|изменения|изменений}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|с последнего посещения}}",
        "enhancedrc-history": "история",
        "uploaddisabledtext": "Загрузка файлов отключена.",
        "php-uploaddisabledtext": "Загрузка файлов отключена в настройках PHP. Пожалуйста, проверьте значение свойства file_uploads.",
        "uploadscripted": "Файл содержит HTML-код или скрипт, который может быть ошибочно обработан браузером.",
+       "upload-scripted-pi-callback": "Невозможно загрузить файл, содержащий инструкции обработки таблицы стилей XML.",
+       "uploaded-script-svg": "Найден небезопасный элемент с поддержкой сценариев «$1» в загруженном SVG-файле.",
+       "uploaded-hostile-svg": "Найден небезопасный CSS-код в элементе стиля загруженного SVG-файла.",
+       "uploaded-event-handler-on-svg": "Установка атрибутов обработчика событий <code>$1=\"$2\"</code> не разрешено для SVG-файлов.",
+       "uploaded-href-attribute-svg": "В SVG-файлах не допускаются href-атрибуты <code>&lt;$1 $2=\"$3\"&gt;</code> с нелокальной целью (т.е. http://, javascript:, и пр.).",
+       "uploaded-href-unsafe-target-svg": "В загруженном SVG-файле найдена ссылка на небезопасную цель <code>&lt;$1 $2=\"$3\"&gt;</code>.",
+       "uploaded-animate-svg": "Найден тег «animate», который может изменять ссылку с помощью «from»-атрибута <code>&lt;$1 $2=\"$3\"&gt;</code> в загруженном SVG-файле.",
+       "uploaded-setting-event-handler-svg": "Установка атрибутов обработчика событий заблокирована, в загруженном SVG-файле найден код <code>&lt;$1 $2=\"$3\"&gt;</code>.",
+       "uploaded-setting-href-svg": "Использование тега «set» для добавления атрибута «href» в родительский элемент заблокировано.",
+       "uploaded-wrong-setting-svg": "Использование тега «set» для добавления в качестве цели удалённого адреса/данных/сценария для любого атрибута заблокировано. В загруженном SVG-файле найдена конструкция <code>&lt;set to=\"$1\"&gt;</code>.",
+       "uploaded-setting-handler-svg": "SVG, который задаёт атрибут «handler» с помощью удалённого адреса/данных/скрипта, блокируется. Найдена конструкция <code>$1=\"$2\"</code> в загруженном SVG-файле.",
+       "uploaded-remote-url-svg": "SVG, который задаёт любой атрибут стиля с помощью удалённого URL-адреса, блокируется. Найдена конструкция <code>$1=\"$2\"</code> в загруженном SVG-файле.",
+       "uploaded-image-filter-svg": "В загруженном SVG-файле найден фильтр изображений с URL-адресом <code>&lt;$1 $2=\"$3\"&gt;</code>.",
        "uploadscriptednamespace": "Этот SVG-файл содержит некорректное пространство имён '$1'",
        "uploadinvalidxml": "XML в загруженном файле не может быть проанализирован.",
        "uploadvirus": "Файл содержит вирус! См. $1",
        "unusedimages": "Неиспользуемые файлы",
        "wantedcategories": "Требуемые категории",
        "wantedpages": "Требуемые страницы",
-       "wantedpages-summary": "Список несуществующих страниц с наибольшим количеством ссылок на них, за исключением страниц, у которых есть только страницы-перенаправления, указывающие на них. Для получения списка несуществующих страниц, у который есть перенаправления, ссылающиеся на них, см. [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "Список несуществующих страниц с наибольшим количеством ссылок на них, за исключением страниц, у которых есть только страницы-перенаправления, указывающие на них. Для получения списка несуществующих страниц, у который есть перенаправления, ссылающиеся на них, см. [[{{#special:BrokenRedirects}}|список нерабочих перенаправлений]].",
        "wantedpages-badtitle": "Ошибочный заголовок в результатах запроса: $1",
        "wantedfiles": "Требуемые файлы",
        "wantedfiletext-cat": "Следующие файлы пытаются использовать, хотя их не существует. В этот список могут ошибочно попасть файлы, находящиеся во внешних хранилищах. Подобные ложные срабатывания будут отмечены <del>зачёркиванием</del>. Кроме того, страницы, содержащие несуществующие файлы, перечислены в [[:$1]].",
        "logempty": "Подходящие записи в журнале отсутствуют.",
        "log-title-wildcard": "Найти заголовки, начинающиеся с данных символов",
        "showhideselectedlogentries": "Показать/скрыть выбранные записи журнала",
+       "log-edit-tags": "Редактировать теги из выбранной записи журнала",
        "allpages": "Все страницы",
        "nextpage": "Следующая страница ($1)",
        "prevpage": "Предыдущая страница ($1)",
        "import-interwiki-history": "Копировать всю историю изменений этой страницы",
        "import-interwiki-templates": "Включить все шаблоны",
        "import-interwiki-submit": "Импортировать",
+       "import-mapping-default": "Импортирование в местоположение по умолчанию",
        "import-mapping-namespace": "Импортировать в пространство имён:",
+       "import-mapping-subpage": "Импортировать как подстраницы следующей страницы:",
        "import-upload-filename": "Имя файла:",
        "import-comment": "Примечание:",
        "importtext": "Пожалуйста, экспортируйте страницу из исходной вики, используя [[Special:Export|соответствующий инструмент]]. Сохраните файл на диск, а затем загрузите его сюда.",
        "patrol-log-page": "Журнал патрулирования",
        "patrol-log-header": "Это журнал патрулированных версий.",
        "log-show-hide-patrol": "$1 журнал патрулирования",
+       "log-show-hide-tag": "$1 журнал меток",
        "deletedrevision": "Удалена старая версия $1",
        "filedeleteerror-short": "Ошибка удаления файла: $1",
        "filedeleteerror-long": "Во время удаления файла возникли ошибки:\n\n$1",
        "file-nohires": "Нет версии с бо́льшим разрешением.",
        "svg-long-desc": "SVG-файл, номинально $1 × $2 {{PLURAL:$2|пиксель|пикселя|пикселей}}, размер файла: $3",
        "svg-long-desc-animated": "Анимированный SVG-файл, номинально $1 × $2 {{PLURAL:$2|пиксель|пикселя|пикселей}}, размер файла: $3",
-       "svg-long-error": "неправильный SVG-файл: $1",
+       "svg-long-error": "Ð\9dеправильный SVG-файл: $1",
        "show-big-image": "Исходный файл",
        "show-big-image-preview": "Размер при предпросмотре: $1.",
        "show-big-image-other": "{{PLURAL:$2|1=Другое разрешение|Другие разрешения}}: $1.",
        "tags-create-warnings-below": "Вы хотите продолжить создание метки?",
        "tags-delete-title": "Удалить метку",
        "tags-delete-explanation-initial": "Вы собираетесь удалить метку «$1» из базы данных.",
+       "tags-delete-explanation-in-use": "Она будет удалена из {{PLURAL:$2|$2 версии или записи в журнале, к которой|всех $2 версиях и/или записях в журнале, к которым}} она применяется в настоящее время.",
+       "tags-delete-explanation-warning": "Это действие является <strong>необратимым</strong> и <strong>не может быть отменено</strong> даже администраторами базы данных. Вы должны быть уверены, что это действительно метка, которую вы хотите удалить.",
+       "tags-delete-explanation-active": "<strong>Метка «$1» по-прежнему активна и будет по-прежнему применяться в будущем.</strong> Чтобы этого не происходило, перейдите туда, где установлено использование метки, и отключить её там.",
        "tags-delete-reason": "Причина:",
        "tags-delete-submit": "Безвозвратно удалить эту метку",
        "tags-delete-not-allowed": "Метки, определённые расширением, не могут быть удалены, если только расширения явно не даёт возможности этого делать.",
        "tags-delete-not-found": "Метка «$1» не существует.",
+       "tags-delete-too-many-uses": "Метка «$1» применяется в более чем $2 {{PLURAL:$2|версии|версиям}}, что означает, что она не может быть удалена.",
        "tags-delete-warnings-after-delete": "Метка «$1» была удалена успешно, но {{PLURAL:$2|было обнаружено следующее предупреждение|были обнаружены следующие предупреждения}}:",
        "tags-activate-title": "Активировать метку",
        "tags-activate-question": "Вы собираетесь активировать метку «$1».",
        "tags-deactivate-reason": "Причина:",
        "tags-deactivate-not-allowed": "Невозможно отключить метку «$1».",
        "tags-deactivate-submit": "Отключить",
+       "tags-apply-no-permission": "У вас нет права применять метки изменения к своими изменениям.",
+       "tags-apply-not-allowed-one": "Метка «$1» не может быть применена вручную.",
+       "tags-apply-not-allowed-multi": "{{PLURAL:$2|Следующая метка не может быть применена|Следующие метки не могут быть применены}} вручную: $1",
+       "tags-update-no-permission": "У вас нет права на добавление или изменение меток изменения из отдельных версий или записей журналов.",
        "tags-update-add-not-allowed-one": "Тег \"$1\" не может быть добавлен вручную.",
        "tags-update-add-not-allowed-multi": "Следующее {{PLURAL:$2|tag is|tags are}} не может быть добавлено вручную: $1",
+       "tags-update-remove-not-allowed-one": "Метка «$1» не может быть удалена.",
+       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|Следующая метка не может быть удалена|Следующие метки не могут быть удалены}} вручную: $1",
        "tags-edit-title": "Редактировать теги",
        "tags-edit-manage-link": "Управление тегами",
        "tags-edit-revision-selected": "{{PLURAL:$1|Выбранная версия|Выбранные версии}} [[:$2]]:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|1=Выбранная запись|Выбранные записи}} журнала:",
        "tags-edit-revision-legend": "Добавить или удалить теги из {{PLURAL:$1|this revision|all $1 revisions}}",
        "tags-edit-logentry-legend": "Добавить или удалить теги из {{PLURAL:$1|this log entry|all $1 log entries}}",
        "tags-edit-existing-tags": "Существующие метки:",
        "tags-edit-remove": "Удалить эти метки:",
        "tags-edit-remove-all-tags": "(удалить все метки)",
        "tags-edit-chosen-placeholder": "Выберите один или несколько тэгов",
+       "tags-edit-chosen-no-results": "Соответствующие метки не найдены",
        "tags-edit-reason": "Причина:",
        "tags-edit-revision-submit": "Применить изменения к {{PLURAL:$1|этой версии|$1 версиям}}",
        "tags-edit-logentry-submit": "Применить изменения к {{PLURAL:$1|этой записи журнала|$1 записям журнала}}",
        "logentry-block-unblock": "$1 разблокировал{{GENDER:$2||а}} {{GENDER:$4|$3}}",
        "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-interwiki": "$1 импортировал{{GENDER:$2||а}} $3 из другой вики",
-       "logentry-merge-merge": "$1 Ð¾Ð±Ñ\8aедининил{{GENDER:$2||а}} $3 Ð² $4 (версии до $5)",
+       "logentry-merge-merge": "$1 Ð¾Ð±Ñ\8aединил{{GENDER:$2||а}} $3 Ñ\81 $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 поверх перенаправления",
        "log-name-managetags": "Журнал управления метками",
        "log-description-managetags": "На этой странице перечислены задачи, связанные с управлением [[Special:Tags|метками]]. Журнал содержит только действия, выполненные администратором вручную. Метки могут быть созданы или удалены с помощью программного обеспечения вики без добавления записей в этот журнал.",
        "logentry-managetags-create": "$1 создал{{GENDER:$2||а}} метку «$4»",
+       "logentry-managetags-delete": "$1 удалил{{GENDER:$2||а}} метку «$4» (удалена из $5 {{PLURAL:$5|версии или записи журнала|версий и/или записей журнала}})",
        "logentry-managetags-activate": "$1 активировал{{GENDER:$2||а}} метку «$4» для использования участниками и ботами",
        "logentry-managetags-deactivate": "$1 отключил{{GENDER:$2||а}} метку «$4» для использования участниками и ботами",
        "log-name-tag": "Журнал меток",
+       "log-description-tag": "Эта страница показывает, когда участники добавили или удалили [[Special:Tags|метки]] в отдельных версиях или записях журнала. Журнал не показывает действия с метками, когда они производятся как часть редактирования, удаления или аналогичных действий.",
        "logentry-tag-update-add-revision": "$1 добавил{{GENDER:$2||а}} {{PLURAL:$7|метку|метки}} $6 к версии $4 страницы $3",
        "logentry-tag-update-add-logentry": "$1 добавил{{GENDER:$2||а}} {{PLURAL:$7|метку|метки}} $6 к записи журнала $5 страницы $3",
        "logentry-tag-update-remove-revision": "$1 удалил{{GENDER:$2||а}} {{PLURAL:$9|метку|метки}} $8 у версии $4 страницы $3",
        "feedback-bugornote": "Если вы готовы подробно описать техническую проблему, пожалуйста, [$1 сообщите об ошибке].\nВ противном случае вы можете использовать данную простую форму. Ваш комментарий будет добавлен на страницу «[$3 $2]» вместе с вашим именем участника и используемым браузером.",
        "feedback-cancel": "Отмена",
        "feedback-close": "Готово",
+       "feedback-external-bug-report-button": "Отправить техническое задание",
        "feedback-dialog-title": "Отправить отзыв",
+       "feedback-dialog-intro": "Вы можете воспользоваться простой формой ниже, чтобы оставить свой отзыв. Комментарий с вашим именем участника будет добавлен на страницу «$1».",
        "feedback-error-title": "Ошибка",
        "feedback-error1": "Ошибка. Неизвестный результат из API",
        "feedback-error2": "Ошибка. Сбой редактирования",
        "feedback-error3": "Ошибка. Нет ответа от API",
+       "feedback-error4": "Ошибка: Не удаётся разместить запись с указанным заголовком обратной связи",
        "feedback-message": "Сообщение:",
        "feedback-subject": "Тема:",
        "feedback-submit": "Отправить",
+       "feedback-terms": "Я понимаю, что информация пользовательского агента включает в себя данные о моём браузере и операционной системе и будет находиться в открытом доступе вместе с моим отзывом.",
+       "feedback-termsofuse": "Я согласен предоставить обратную связь в соответствиями с Условиями использования.",
        "feedback-thanks": "Спасибо! Ваш отзыв размещён на странице «[$2 $1]».",
        "feedback-thanks-title": "Спасибо!",
        "feedback-useragent": "Браузер:",
        "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_anon": "<em>Поскольку на сайте {{SITENAME}} включен «сырой» HTML, а вы не авторизовались, предварительный просмотр скрыт в качестве меры предосторожности против JavaScript-атак.</em>\n\n<strong>Если это правомерная попытка предварительного просмотра, пожалуйста, [[Special:UserLogin|войдите]] и попробуйте ещё раз.",
        "pagelanguage": "Выбор языка страницы",
        "pagelang-name": "Страница",
        "pagelang-language": "Язык",
        "log-name-pagelang": "Журнал изменения языка",
        "log-description-pagelang": "Это журнал изменений в языках страницы.",
        "logentry-pagelang-pagelang": "$1 изменил{{GENDER:$2||а}} язык страницы для $3 с $4 на $5.",
-       "default-skin-not-found": "Упс! Тема оформления по умолчанию для вашей вики <code>$wgDefaultSkin</code>, <code>$1</code> недоступна.\n\nВаша установка, похоже, содержит {{PLURAL:$4|следующую тему|следующие темы}} оформления. См. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] для получения информации о том, как включить {{PLURAL:$4|её|их и выбрать тему по умолчанию}}.\n\n$2\n\n; Если вы только что установили MediaWiki:\n: Вы, видимо, сделали это с Git или непосредственно из исходного кода с использованием другого способа. Тогда такое возможно. Попробуйте установить некоторые темы из [https://www.mediawiki.org/wiki/Category:All_skins каталога тем оформления сайта mediawiki.org]:\n:* Загрузив [https://www.mediawiki.org/wiki/Download архив установочных файлов], который содержит несколько тем оформления и расширений. Вы можете скопировать папку <code>skins/</code> из него.\n:* Загрузив архивы отдельных тем оформления с [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Клонировав один из репозиториев <code>mediawiki/skins/*</code> через git в подпапку <code  dir=\"ltr\">skins/</code> папки, куда установлена MediaWiki.\n: Это не должно навредить вашему репозиторию, если вы MediaWiki-разработчик. См. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] для получения информации о том, как включить темы оформления и выбрать тему по умолчанию.\n; Если вы только что обновили MediaWiki:\n: MediaWiki версии 1.24 и новее больше не включает автоматически установленные темы (см. [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]).\nВы можете вставить {{PLURAL:$5|следующую строку|следующие строки}} в <code>LocalSettings.php</code>, чтобы включить {{PLURAL:$5|установленную в текущее время тему|все установленные в текущее время темы}} оформления: \n\n<pre dir=\"ltr\">$3</pre>\n\n\n; Если вы только что изменили <code>LocalSettings.php</code>:\n: Перепроверьте названия тем на наличие опечаток.",
-       "default-skin-not-found-no-skins": "Упс! Тема оформления по умолчанию для вашей вики <code>$wgDefaultSkin</code>, <code>$1</code> недоступна.\n\nУ вас нет установленных тем оформления.\n\n; Если вы только что установили или обновили MediaWiki:\n: Вы, видимо, сделали это с Git или непосредственно из исходного кода с использованием другого способа. Тогда такое возможно. MediaWiki версии 1.24 и новее не содержат темы оформления в основном репозитории. Попробуйте установить некоторые темы из [https://www.mediawiki.org/wiki/Category:All_skins каталога тем оформления сайта mediawiki.org]:\n:* Загрузив [https://www.mediawiki.org/wiki/Download архив установочных файлов], который содержит несколько тем оформления и расширений. Вы можете скопировать папку <code>skins/</code> из него.\n:* Загрузив архивы отдельных тем оформления с [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Клонировав один из репозиториев <code>mediawiki/skins/*</code> через git в подпапку <code dir=\"ltr\">skins/</code> папки, куда установлена MediaWiki.\n: Это не должно навредить вашему репозиторию, если вы MediaWiki-разработчик. См. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] для получения информации о том, как включить темы оформления и выбрать тему по умолчанию.",
+       "default-skin-not-found": "Упс! Тема оформления по умолчанию для вашей вики <code>$wgDefaultSkin</code>, <code>$1</code> недоступна.\n\nВаша установка, похоже, содержит {{PLURAL:$4|следующую тему|следующие темы}} оформления. См. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] с информацией о том, как включить {{PLURAL:$4|её|их и выбрать тему по умолчанию}}.\n\n$2\n\n; Если вы только что установили MediaWiki:\n: Вы, видимо, сделали это с Git или непосредственно из исходного кода с использованием другого способа. Тогда такое возможно. Попробуйте установить некоторые темы из [https://www.mediawiki.org/wiki/Category:All_skins каталога тем оформления сайта mediawiki.org]:\n:* скачав [https://www.mediawiki.org/wiki/Download архив установочных файлов], который содержит несколько тем оформления и расширений; вы можете скопировать из него папку <code>skins/</code>;\n:* скачав архивы отдельных тем оформления с [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org];\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins использовав Git для загрузки тем оформления].\n: Это не должно навредить вашему репозиторию Git, если вы разработчик MediaWiki. См. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] с информацией о том, как включить темы оформления и выбрать тему по умолчанию.\n; Если вы только что обновили MediaWiki:\n: MediaWiki версии 1.24 и новее больше не включает автоматически установленные темы (см. [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]).\nВы можете вставить {{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>$wgDefaultSkin</code>, <code>$1</code> недоступна.\n\nУ вас нет установленных тем оформления.\n\n; Если вы только что установили или обновили MediaWiki:\n: Вы, видимо, сделали это с Git или непосредственно из исходного кода с использованием другого способа. Тогда такое возможно. MediaWiki версии 1.24 и новее не содержат темы оформления в основном репозитории. Попробуйте установить некоторые темы из [https://www.mediawiki.org/wiki/Category:All_skins каталога тем оформления сайта mediawiki.org]:\n:* скачав [https://www.mediawiki.org/wiki/Download архив установочных файлов], который содержит несколько тем оформления и расширений; вы можете скопировать папку <code>skins/</code> из него;\n:* скачав архивы отдельных тем оформления с [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org];\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins использовав Git для загрузки тем оформления].\n: Это не должно навредить вашему репозиторию Git, если вы разработчик MediaWiki. См. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] с информацией о том, как включить темы оформления и выбрать тему по умолчанию.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (включено)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''отключено''')",
        "mediastatistics": "Медиа-статистика",
index fec8472..984516f 100644 (file)
        "newmessageslinkplural": "{{PLURAL:$1|нове повідомлїня|999=новы повідомлїня}}",
        "newmessagesdifflinkplural": "{{PLURAL:$1|остатня зміна|999=остатнї зміны}}",
        "youhavenewmessagesmulti": "Маєте новы повідомлїня на $1",
-       "editsection": "едіт.",
-       "editold": "едіт.",
+       "editsection": "едітовати",
+       "editold": "едітовати",
        "viewsourceold": "видїти код",
        "editlink": "едітовати",
        "viewsourcelink": "видїти код",
index a147029..0285881 100644 (file)
        "tog-hideminor": "सद्योजातानां परिवर्तनानां लघूनि सम्पादनानि गोप्यन्ताम्",
        "tog-hidepatrolled": "सद्योजातानां परिवर्तनानां परिशीलितानि सम्पादनानि गोप्यन्ताम्",
        "tog-newpageshidepatrolled": "नूतनपृष्ठानाम् आवलेः परिशीलितानि पृष्ठानि गोप्यन्त्ताम्",
-       "tog-extendwatchlist": "न à¤\95à¥\87वलà¤\82 à¤¸à¤¦à¥\8dयà¥\8bà¤\9cातानि à¤\85पि à¤¤à¥\81 à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलेः सर्वाणि परिवर्तनानि दृश्यन्ताम्",
-       "tog-usenewrc": "सदà¥\8dयà¤\83 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनावलà¥\8dयाà¤\82, à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाà¤\82 च पृष्ठानि विभागानुसारं प्रदर्श्यन्ताम् (जावा-लिपिः अपेक्ष्यते)",
+       "tog-extendwatchlist": "न à¤\95à¥\87वलà¤\82 à¤¸à¤¦à¥\8dयà¥\8bà¤\9cातानि à¤\85पि à¤¤à¥\81 à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aेः सर्वाणि परिवर्तनानि दृश्यन्ताम्",
+       "tog-usenewrc": "सदà¥\8dयà¤\83 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनावलà¥\8dयाà¤\82, à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\8c च पृष्ठानि विभागानुसारं प्रदर्श्यन्ताम् (जावा-लिपिः अपेक्ष्यते)",
        "tog-numberheadings": "शीर्षकाणि स्वयमेव यथाक्रमं करोतु",
        "tog-showtoolbar": "उपकरण-पट्टिका दर्श्यताम्",
        "tog-editondblclick": "वारद्वयं टक्टकायनेन (Click) पृष्ठानि सम्पाद्यन्ताम् (जावा-लिपिः अपेक्ष्यते)",
        "tog-editsectiononrightclick": "विभागशीर्षकाणामुपरि दक्षिणक्लिक्-करणेन विभागः सम्पाद्यताम् ।",
-       "tog-watchcreations": "मया à¤°à¤\9aितानि à¤ªà¥\83षà¥\8dठानि à¤®à¤® à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाà¤\82 योज्यन्ताम् ।",
-       "tog-watchdefault": "मया à¤¸à¤®à¥\8dपादितानि à¤ªà¥\83षà¥\8dठानि à¤®à¤® à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाà¤\82 योज्यन्ताम्।",
-       "tog-watchmoves": "मया à¤\9aालितानि à¤ªà¥\83षà¥\8dठानि à¤®à¤® à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाà¤\82 योज्यन्ताम्।",
-       "tog-watchdeletion": "मया à¤\85पाà¤\95à¥\83तानि à¤ªà¥\83षà¥\8dठानि à¤®à¤® à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाà¤\82 योज्यन्ताम्।",
-       "tog-watchrollback": "मया à¤ªà¥\8dरतà¥\8dयापनà¥\8dनानि (rollback) à¤ªà¥\83षà¥\8dठानि à¤®à¤® à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाà¤\82 योज्यताम् ।",
+       "tog-watchcreations": "मया à¤°à¤\9aितानि à¤ªà¥\83षà¥\8dठानि à¤®à¤® à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\8c योज्यन्ताम् ।",
+       "tog-watchdefault": "मया à¤¸à¤®à¥\8dपादितानि à¤ªà¥\83षà¥\8dठानि à¤®à¤® à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\8c योज्यन्ताम्।",
+       "tog-watchmoves": "मया à¤\9aालितानि à¤ªà¥\83षà¥\8dठानि à¤®à¤® à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\8c योज्यन्ताम्।",
+       "tog-watchdeletion": "मया à¤\85पाà¤\95à¥\83तानि à¤ªà¥\83षà¥\8dठानि à¤®à¤® à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\8c योज्यन्ताम्।",
+       "tog-watchrollback": "मया à¤ªà¥\8dरतà¥\8dयापनà¥\8dनानि (rollback) à¤ªà¥\83षà¥\8dठानि à¤®à¤® à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\8c योज्यताम् ।",
        "tog-minordefault": "मम सर्वाणि सम्पादनानि लघुत्वेन प्रदर्श्यन्ताम् ।",
        "tog-previewontop": "सम्पादनात् पूर्वं प्राग्दृश्यं दर्श्यताम् ।",
        "tog-previewonfirst": "प्रथमसम्पादनस्य प्राग्दृश्यं दर्श्यताम् ।",
-       "tog-enotifwatchlistpages": "मम à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाà¤\82 à¤µà¤¿à¤¦à¥\8dयमानाà¤\82 à¤ªà¥\83षà¥\8dठानाà¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¥\87 à¤¸à¤¤à¤¿ à¤\88-पतà¥\8dरदà¥\8dवारा à¤¸à¥\82à¤\9aयताम",
-       "tog-enotifusertalkpages": "मम à¤¯à¥\8bà¤\9cà¤\95समà¥\8dभाषणपà¥\83षà¥\8dठसà¥\8dय à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¥\87 à¤¸à¤¤à¤¿ à¤\88-पत्रद्वारा सूचयताम्",
-       "tog-enotifminoredits": "पà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ायाà¤\83 à¤µà¤¾ à¤²à¤\98à¥\81परिवरà¥\8dतनà¥\87षà¥\81 à¤¸à¤¤à¥\8dसà¥\81 à¤\85पि à¤\88-पत्रद्वारा सूच्यताम्",
-       "tog-enotifrevealaddr": "सà¥\82à¤\9aना-à¤\88पतà¥\8dरà¥\87षà¥\81 à¤®à¤® à¤\88-पत्रसङ्केतः प्रदर्श्यताम्",
+       "tog-enotifwatchlistpages": "मम à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\8c à¤µà¤¿à¤¦à¥\8dयमानà¥\87षà¥\81 à¤ªà¥\83षà¥\8dठà¥\87षà¥\81 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¥\87 à¤¸à¤¤à¤¿ à¤µà¤¿-पतà¥\8dरदà¥\8dवारा à¤¸à¥\82à¤\9aयतामà¥\8d",
+       "tog-enotifusertalkpages": "मम à¤¯à¥\8bà¤\9cà¤\95समà¥\8dभाषणपà¥\83षà¥\8dठसà¥\8dय à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¥\87 à¤¸à¤¤à¤¿ à¤µà¤¿-पत्रद्वारा सूचयताम्",
+       "tog-enotifminoredits": "पà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ायाà¤\83 à¤µà¤¾ à¤²à¤\98à¥\81परिवरà¥\8dतनà¥\87षà¥\81 à¤¸à¤¤à¥\8dसà¥\81 à¤\85पि à¤µà¤¿-पत्रद्वारा सूच्यताम्",
+       "tog-enotifrevealaddr": "सà¥\82à¤\9aना-à¤\88पतà¥\8dरà¥\87षà¥\81 à¤®à¤® à¤µà¤¿-पत्रसङ्केतः प्रदर्श्यताम्",
        "tog-shownumberswatching": "निरीक्ष्यमाणानां योजकानां सङ्ख्या दर्श्यताम्",
        "tog-oldsig": "वर्तमानहस्ताक्षरम्:",
        "tog-fancysig": "हस्ताक्षरं विकि-पाठवत् परिगण्यताम् (स्वचालित-परिसन्धिं विहाय)",
        "tog-uselivepreview": "सम्पादनेन सहैव प्राग्दृश्यं दर्शयतु",
        "tog-forceeditsummary": "सम्पादनसारांशं न ददामि चेत्, सूच्यताम्",
-       "tog-watchlisthideown": "à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाà¤\83 à¤®à¤® à¤¸à¤®à¥\8dपादनानि à¤\97à¥\8bपà¥\8dयनà¥\8dताम ।",
-       "tog-watchlisthidebots": "à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाः बोट-द्वारा कृतानि सम्पादनानि गोप्यन्ताम्",
-       "tog-watchlisthideminor": "मम à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाः लघुसम्पादनानि गोप्यन्ताम्",
-       "tog-watchlisthideliu": "पà¥\8dरविषà¥\8dà¤\9fà¥\88à¤\83 à¤¯à¥\8bà¤\9cà¤\95à¥\88à¤\83 à¤\95à¥\83तानि à¤¸à¤®à¥\8dपादनानि à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाः गोप्यन्ताम्",
-       "tog-watchlisthideanons": "à¤\85नामà¤\95à¥\88à¤\83 à¤¯à¥\8bà¤\9cà¤\95à¥\88à¤\83 à¤\95à¥\83तानि à¤¸à¤®à¥\8dपादनानि à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाः गोप्यन्ताम्",
-       "tog-watchlisthidepatrolled": "मम à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाः पूर्वदृष्टानि सम्पादनानि गोप्यन्ताम्",
-       "tog-ccmeonemails": "à¤\85नà¥\8dयà¥\87भà¥\8dयà¤\83 à¤ªà¥\8dरà¥\87षितानामà¥\8d à¤\88-पत्राणां प्रतिकृतिः मत्कृते प्रेष्यताम्",
+       "tog-watchlisthideown": "निरà¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\87à¤\83 à¤®à¤® à¤¸à¤®à¥\8dपादनानि à¤\97à¥\8bपà¥\8dयनà¥\8dतामà¥\8d ।",
+       "tog-watchlisthidebots": "निरà¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\87ः बोट-द्वारा कृतानि सम्पादनानि गोप्यन्ताम्",
+       "tog-watchlisthideminor": "मम à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\87ः लघुसम्पादनानि गोप्यन्ताम्",
+       "tog-watchlisthideliu": "पà¥\8dरविषà¥\8dà¤\9fà¥\88à¤\83 à¤¯à¥\8bà¤\9cà¤\95à¥\88à¤\83 à¤\95à¥\83तानि à¤¸à¤®à¥\8dपादनानि à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\87ः गोप्यन्ताम्",
+       "tog-watchlisthideanons": "à¤\85नामà¤\95à¥\88à¤\83 à¤¯à¥\8bà¤\9cà¤\95à¥\88à¤\83 à¤\95à¥\83तानि à¤¸à¤®à¥\8dपादनानि à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\87ः गोप्यन्ताम्",
+       "tog-watchlisthidepatrolled": "मम à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\87ः पूर्वदृष्टानि सम्पादनानि गोप्यन्ताम्",
+       "tog-ccmeonemails": "à¤\85नà¥\8dयà¥\87भà¥\8dयà¤\83 à¤ªà¥\8dरà¥\87षितानामà¥\8d à¤µà¤¿-पत्राणां प्रतिकृतिः मत्कृते प्रेष्यताम्",
        "tog-diffonly": "संस्करणेषु भेदं दर्शयितुं लेखः गोप्यताम्",
        "tog-showhiddencats": "निगूहिताः वर्गाः दर्श्यन्ताम्",
        "tog-norollbackdiff": "\"प्रमुञ्चतु\" इत्यस्य उपयोगानन्तरस्य भेदः गोप्यताम्",
        "listingcontinuesabbrev": "अनुवर्तते",
        "index-category": "अनुक्रमणिकापृष्ठानि",
        "noindex-category": "नानुक्रमणिकपृष्ठानि",
-       "broken-file-category": "अविद्यानानां सञ्चिकानाम् आवलिः",
+       "broken-file-category": "à¤\85विदà¥\8dयमानानाà¤\82 à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ानामà¥\8d à¤\86वलिà¤\83",
        "about": "विषये",
        "article": "लेखः",
        "newwindow": "(इदं नवीने गवाक्षे उद्घाट्यते)",
        "mypage": "पृष्ठम्",
        "mytalk": "सम्भाषणम्",
        "anontalk": "अस्य अन्तर्जालसंविदः (I P address) कृते सम्भाषणम्",
-       "navigation": "सà¤\9eà¥\8dà¤\9aरणà¤\82",
+       "navigation": "सà¤\9eà¥\8dà¤\9aरणमà¥\8d",
        "and": "&#32;तथा च",
        "qbfind": "अन्विष्यताम्",
        "qbbrowse": "अन्विष्यताम्",
        "unprotect": "संरक्षणं परिवर्तयतु",
        "unprotectthispage": "अस्य पृष्ठस्य सुरक्षां परिवर्तयतु ।",
        "newpage": "नवीनपृष्ठम्",
-       "talkpage": "à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤µà¤¿à¤·à¤¯à¥\87 à¤\9aरà¥\8dà¤\9aा क्रियताम्",
+       "talkpage": "à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤µà¤¿à¤·à¤¯à¥\87 à¤¸à¤®à¥\8dभाषमणà¤\82 क्रियताम्",
        "talkpagelinktext": "सम्भाषणम्",
        "specialpage": "विशिष्टपृष्ठम्",
        "personaltools": "वैयक्तिकोपकरणानि",
        "templatepage": "फलकपृष्ठं दृश्यताम्",
        "viewhelppage": "साहाय्यपृष्ठं दृश्यताम्",
        "categorypage": "वर्गाणां पृष्ठं दृश्यताम्",
-       "viewtalkpage": "à¤\9aरà¥\8dà¤\9aा दृश्यताम्",
+       "viewtalkpage": "समà¥\8dभाषणà¤\82 दृश्यताम्",
        "otherlanguages": "अन्यासु भाषासु",
        "redirectedfrom": "($1 इत्यस्मात् पुनर्निर्दिष्टम्)",
        "redirectpagesub": "पृष्ठम् अनुप्रेष्यताम्",
        "viewcount": "एतत्पृष्ठं {{PLURAL:$1|एक वारं|$1 वारं}} दृष्टम् अस्ति",
        "protectedpage": "संरक्षितपृष्ठम्",
        "jumpto": "अत्र गम्यताम् :",
-       "jumptonavigation": "सà¤\9eà¥\8dà¤\9aरणà¤\82",
+       "jumptonavigation": "सà¤\9eà¥\8dà¤\9aरणमà¥\8d",
        "jumptosearch": "अन्वेषणम्",
        "view-pool-error": "क्षम्यताम् ! सद्यः वितरकस्य (server) उपरि बहु कार्यभारः अस्ति । \nबहवः जनाः एतत् पृष्ठं पश्यन्तः सन्ति । \nएतत् पृष्ठं पुनर्द्रष्टुं प्रतीक्ष्यताम् । $1",
        "generic-pool-error": "क्षम्यताम् ! सद्यः वितरकस्य (server) उपरि बहु कार्यभारः अस्ति । \nबहवः जनाः एतत् पृष्ठं पश्यन्तः सन्ति । \nएतत् पृष्ठं पुनर्द्रष्टुं प्रतीक्ष्यताम् ।",
        "feedlinks": "अनुबन्ध:",
        "feed-invalid": "सदस्यतायाः अमान्यः अनुबन्ध(feed)प्रकारः",
        "feed-unavailable": "समवायानुबन्धाः नोपलभन्ते ।",
-       "site-rss-feed": "$1 RSS à¤\85नà¥\81बनà¥\8dधः",
+       "site-rss-feed": "$1 RSS à¤ªà¤°à¤¿à¤¸à¤¨à¥\8dधिः",
        "site-atom-feed": "$1 अणुपूरणम्",
-       "page-rss-feed": "\"$1\" RSS à¤\85नà¥\81बनà¥\8dधः",
+       "page-rss-feed": "\"$1\" RSS à¤ªà¤°à¤¿à¤¸à¤¨à¥\8dधिः",
        "page-atom-feed": "\"$1\" अणुपूरणम्",
        "red-link-title": "$1 (पृष्ठं न विद्यते)",
        "sort-descending": "अवरोहक्रमेण सज्जयतु",
        "delete-hook-aborted": "hook द्वारा अपाकरणक्रिया मध्ये एव स्थगिता । स्थगनस्य कारणं न दत्तम् ।",
        "no-null-revision": "\"$1\" एतस्मै पृष्ठाय नवीनं रिक्तं संस्करणं रचितुं न शक्यते",
        "badtitle": "अशुद्धं शिरोनाम",
-       "badtitletext": "ईप्सितं शीर्षकम् अमान्यं, रिक्तम्, अयोग्यम्, अन्यभाषीयं, भाषान्तरात् विकि-जालस्थलात् च अस्ति । पृष्ठशीर्षकाय अयोग्यानि अक्षराणि चिह्नानि वा तस्मिन् भवेयुः ।",
+       "badtitletext": "ईष्टं शीर्षकम् अमान्यं, रिक्तम्, अयोग्यम्, अन्यभाषीयं, भाषान्तरात् विकि-जालस्थलात् च अस्ति । पृष्ठशीर्षकाय अयोग्यानि अक्षराणि चिह्नानि वा तस्मिन् भवेयुः ।",
+       "title-invalid-empty": "ईष्टं पृष्ठं रिक्तम् अस्ति उत नामाकाश एव अस्ति ।",
+       "title-invalid-utf8": "ईप्सिते पृष्ठे केलवं UTF-8 इत्यस्य अमान्यः अनुक्रमः अस्ति ।",
+       "title-invalid-interwiki": "ईप्सिते लेखे आन्तरिकविकिपरिसन्धिः अस्ति, यस्याः शीर्षकत्वेन उपयोगः न शक्यते ।",
+       "title-invalid-talk-namespace": "ईष्टं पृष्ठं सम्भाषणपृष्ठेन सह परिसन्धितम् अस्ति, यत् न विद्यते ।",
+       "title-invalid-characters": "ईप्सिते पृष्ठे \"$1\" इत्येतानि अमान्यानि अक्षराणि सन्ति ।",
+       "title-invalid-relative": "शीर्षकम् एकः सन्दर्भितः मार्गः स्थापयति । सन्दर्भितपृष्ठस्य शीर्षके (./, ../) अवैधं भवति । यतो हि यदा उपयोगकर्ता गवेषणे तेषां प्रयोगं करोति, तदा तेषाम् अधिकांशरूपम् अप्राप्यं भवति ।",
+       "title-invalid-magic-tilde": "(<nowiki>~~~</nowiki>) इत्येतानि अमान्यानि टिल्ड्-अक्षाराणि ईप्सिते पृष्ठे सन्ति ।",
+       "title-invalid-too-long": "ईप्सितपृष्ठस्य शीर्षकं दीर्घम् अस्ति ।  UTF-8 अनुसारं $1 बाइट्स् अपेक्षया अधिकं न भवेदेव ।",
+       "title-invalid-leading-colon": "ईप्सेतपृष्ठस्य आरम्भे अमान्यं कोलन् (colon) चिह्नं विद्यते ।",
        "perfcached": "अधो उल्लिखिताः सूचनाः पुरातनायाः उपस्मृत्याः (cached) गृहीताः, अतः तत्र दोषाः भवेयुः ।  अधिकाधिक{{PLURAL:$1|परिणाम|$1परिणामाः}} अत्र सन्ति ।",
        "perfcachedts": "अधो उल्लिखिताः सूचनाः पुरातन्याः उपस्मृत्याः (cached) गृह्णिताः । तस्यां उपस्मृत्यां $1 समये परिर्वतनम् अभूत् ।\nअधिकाधिक{{PLURAL:$1|परिणाम|$1परिणामाः}} अत्र सन्ति ।",
        "querypage-no-updates": "अस्मिन् पृष्ठे परिवर्तनं अधुना प्रतिबन्धितमस्ति । अत्रत्यां पुरातनसूचनां नवीनसूचनया सह अधुना परिर्वतयितुं न शक्यते ।",
        "userlogin-resetlink": "स्वस्य प्रवेशविवरणानि विस्मृतानि किम् ?",
        "userlogin-resetpassword-link": "स्वस्य कूटशब्दः विस्मृतः किम् ?",
        "userlogin-helplink2": "प्रवेशविषयकं साहाय्यम्",
-       "userlogin-loggedin": "भवाता/भवतà¥\8dया à¤ªà¥\82रà¥\8dवसà¥\8dमादेव {{GENDER:$1|$1}} योजकत्वेन प्रवेशः प्राप्तः अस्ति । भिन्नयोजकत्वेन प्रवेष्टुं निम्नप्रपत्रं पूरयतु ।",
+       "userlogin-loggedin": "भवाता/भवतà¥\8dया à¤ªà¥\82रà¥\8dवमेव {{GENDER:$1|$1}} योजकत्वेन प्रवेशः प्राप्तः अस्ति । भिन्नयोजकत्वेन प्रवेष्टुं निम्नप्रपत्रं पूरयतु ।",
        "userlogin-createanother": "अन्यसदस्यता प्राप्यताम्",
-       "createacct-emailrequired": "à¤\88-पत्रसङ्केतः",
-       "createacct-emailoptional": "à¤\88-पत्रसङ्केतः (ऐच्छिकः)",
-       "createacct-email-ph": "सà¥\8dवसà¥\8dय à¤\88-पत्रसङ्केतं लिखतु",
-       "createacct-another-email-ph": "à¤\88-पत्रसङ्केतः लिख्यताम्",
-       "createaccountmail": "à¤\85सà¥\8dथायिनमà¥\8d à¤\85शà¥\83à¤\99à¥\8dà¤\96लितà¤\82 à¤\95à¥\82à¤\9fशबà¥\8dदमà¥\8d à¤\89पयà¥\81à¤\9cà¥\8dय à¤¯à¥\8bà¤\97à¥\8dयाय à¤\88-पत्रसङ्केताय प्रेश्यताम् ।",
+       "createacct-emailrequired": "वि-पत्रसङ्केतः",
+       "createacct-emailoptional": "वि-पत्रसङ्केतः (ऐच्छिकः)",
+       "createacct-email-ph": "सà¥\8dवसà¥\8dय à¤µà¤¿-पत्रसङ्केतं लिखतु",
+       "createacct-another-email-ph": "वि-पत्रसङ्केतः लिख्यताम्",
+       "createaccountmail": "à¤\85सà¥\8dथायिनमà¥\8d à¤\85शà¥\83à¤\99à¥\8dà¤\96लितà¤\82 à¤\95à¥\82à¤\9fशबà¥\8dदमà¥\8d à¤\89पयà¥\81à¤\9cà¥\8dय à¤¯à¥\8bà¤\97à¥\8dयाय à¤µà¤¿-पत्रसङ्केताय प्रेश्यताम् ।",
        "createacct-realname": "वास्तविकं नाम (ऐच्छिकम्)",
        "createaccountreason": "कारणम् :",
        "createacct-reason": "कारणम्",
        "createacct-benefit-body2": "{{PLURAL:$1|पृष्ठम्|पृष्ठानि}}",
        "createacct-benefit-body3": "नवीन{{PLURAL:$1|योजकः|योजकाः}}",
        "badretype": "भवता/भवत्या लिखितौ कूटशब्दौ समानौ न स्तः ।",
-       "userexists": "भवता/भवतà¥\8dया à¤\88पà¥\8dसितà¤\82 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम à¤ªà¥\82रà¥\8dवसà¥\8dमादेव विद्यते । \nकृपया अपरं प्रयोक्तृनाम चिनोतु ।",
+       "userexists": "भवता/भवतà¥\8dया à¤\88षà¥\8dà¤\9fà¤\82 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम à¤ªà¥\82रà¥\8dवमेव विद्यते । \nकृपया अपरं प्रयोक्तृनाम चिनोतु ।",
        "loginerror": "प्रवेशे दोषः",
        "createacct-error": "सदस्यताप्राप्तिकाले दोषः",
        "createaccounterror": "$1 सदस्यता न प्राप्ता :",
        "mailmypassword": "कूटशब्दः परिवर्त्यताम्",
        "passwordremindertitle": "{{SITENAME}} इत्यस्मै नूतनः अस्थायी कूटशब्दः ।",
        "passwordremindertext": "कश्चित्  (भवान् अपि स्यात्,  $1 ऐ. पि. सङ्केतात् ) {{SITENAME}} ($4) इत्यस्य कृते नूतनं कूटशब्दं प्रार्थितवान् । तात्कालिकः कूटशब्दः \"$2\" इति उपयोक्तुः कृते निर्मितः \"$3\" कृते प्रेषितश्च । यदि अयं भवतः  आशयः, भवान् प्रविश्य नूतनं कूटशब्दम् इदानीं चिनोतु । भवतः तात्कालिकः कूटशब्दः  {{PLURAL:$5|दिनम्|$5 दिनानि}} यावत् सक्रियः भवति । \n\nअन्यः कश्चित् एतां प्रार्थनां कृतवान्, अथवा भवानेव पूर्वतनं कृटशब्दं स्मृतवान्, इदानीं तस्य परिवर्तनं न् इच्छति चेत् एतां सूचनाम् अनङ्गीकृत्य पूर्वतनस्य कूटशब्दस्य एव उपयोगं करोतु ।",
-       "noemail": "\"$1\" à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\81à¤\83 à¤¨ à¤\95à¥\8bऽपि à¤\88-पत्रसङ्केतः पञ्जीकृतः अभवत् ।",
-       "noemailcreate": "भवता/भवतà¥\8dया à¤®à¤¾à¤¨à¥\8dयà¤\83 à¤\88-पत्रसङ्केतः दातव्यः ।",
-       "passwordsent": "\"$1\" à¤\87तà¥\8dयसà¥\8dय à¤ªà¤\9eà¥\8dà¤\9cà¥\80à¤\95à¥\83ताय à¤\88-पत्रसङ्केताय नवीनः कूटशब्दः प्रेषितः अस्ति । \n\nकृपया तस्य कूटशब्दस्य उपयोगेन पुनः प्रविश्यताम् ।",
+       "noemail": "\"$1\" à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\81à¤\83 à¤¨ à¤\95à¥\8bऽपि à¤µà¤¿-पत्रसङ्केतः पञ्जीकृतः अभवत् ।",
+       "noemailcreate": "भवता/भवतà¥\8dया à¤®à¤¾à¤¨à¥\8dयà¤\83 à¤µà¤¿-पत्रसङ्केतः दातव्यः ।",
+       "passwordsent": "\"$1\" à¤\87तà¥\8dयसà¥\8dय à¤ªà¤\9eà¥\8dà¤\9cà¥\80à¤\95à¥\83ताय à¤µà¤¿-पत्रसङ्केताय नवीनः कूटशब्दः प्रेषितः अस्ति । \n\nकृपया तस्य कूटशब्दस्य उपयोगेन पुनः प्रविश्यताम् ।",
        "blocked-mailpassword": "भवतः/भवत्याः अन्तर्जालसंविद् (IP) प्रतिबन्धितः अस्ति । \nसम्पादनाय अनुमतिः नास्ति, अतः कूटशब्दस्य पुनःप्राप्तिः भवितुं नार्हति ।",
-       "eauthentsent": "à¤\85धिà¤\95à¥\83तपà¥\81षà¥\8dà¤\9fà¥\88 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤ªà¤\9eà¥\8dà¤\9cà¥\80à¤\95à¥\83ताय à¤\88-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87ताय à¤\88-पतà¥\8dरà¤\82 à¤ªà¥\8dरà¥\87षितमसà¥\8dति à¥¤ à¤¤à¤¸à¥\8dय à¤\88-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तसà¥\8dयà¥\88व à¤\87तà¤\83 à¤ªà¤°à¤®à¥\8d à¤\89पयà¥\8bà¤\97à¤\83 à¤­à¤µà¤¤à¥\81 à¤\87ति à¤\87à¤\9aà¥\8dà¤\9bति à¤\9aà¥\87तà¥\8d à¤ªà¥\8dरà¥\87षितà¥\87 à¤\88-पतà¥\8dरà¥\87 à¤¯à¤¥à¤¾ à¤²à¤¿à¤\96ितमसà¥\8dति, à¤¤à¤¥à¤¾ à¤\95रà¥\8bतà¥\81 à¥¤ à¤\8fवà¤\82 à¤¤à¤¸à¥\8dय à¤\88-पत्रसङ्केतस्य अधिकृतपुष्टता भविष्यति ।",
-       "throttled-mailpassword": "à¤\95à¥\82à¤\9fशबà¥\8dदà¤\82 à¤ªà¤°à¤¿à¤°à¥\8dवतितà¥\81à¤\82 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤ªà¤\9eà¥\8dà¤\9cà¥\80à¤\95à¥\83ताय à¤\88-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87ताय à¤\85नà¥\8dतिम{{PLURAL:$1|हà¥\8bरायाà¤\82|$1 à¤¹à¥\8bरासà¥\81}} à¤¨à¥\82तनà¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 à¤ªà¥\8dरà¥\87षितà¤\83 à¤\85सà¥\8dति à¥¤\n\nदà¥\81रà¥\81पयà¥\8bà¤\97à¤\82 à¤µà¤¾à¤°à¤¯à¤¿à¤¤à¥\81मà¥\8d à¤ªà¥\8dरति {{PLURAL:$1|हà¥\8bरà¤\82|$1 à¤¹à¥\8bरà¤\82}} à¤\95à¥\87वलमà¥\8d à¤\8fà¤\95मà¥\8d à¤\88-पत्रं प्रेष्यते ।",
-       "mailerror": "à¤\88-पत्रसम्प्रेषणे दोषः : $1",
+       "eauthentsent": "à¤\85धिà¤\95à¥\83तपà¥\81षà¥\8dà¤\9fà¥\88 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤ªà¤\9eà¥\8dà¤\9cà¥\80à¤\95à¥\83ताय à¤µà¤¿-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87ताय à¤µà¤¿-पतà¥\8dरà¤\82 à¤ªà¥\8dरà¥\87षितमसà¥\8dति à¥¤ à¤¤à¤¸à¥\8dय à¤µà¤¿-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तसà¥\8dयà¥\88व à¤\87तà¤\83 à¤ªà¤°à¤®à¥\8d à¤\89पयà¥\8bà¤\97à¤\83 à¤­à¤µà¤¤à¥\81 à¤\87ति à¤\87à¤\9aà¥\8dà¤\9bति à¤\9aà¥\87तà¥\8d à¤ªà¥\8dरà¥\87षितà¥\87 à¤µà¤¿-पतà¥\8dरà¥\87 à¤¯à¤¥à¤¾ à¤²à¤¿à¤\96ितमसà¥\8dति, à¤¤à¤¥à¤¾ à¤\95रà¥\8bतà¥\81 à¥¤ à¤\8fवà¤\82 à¤¤à¤¸à¥\8dय à¤µà¤¿-पत्रसङ्केतस्य अधिकृतपुष्टता भविष्यति ।",
+       "throttled-mailpassword": "à¤\95à¥\82à¤\9fशबà¥\8dदà¤\82 à¤ªà¤°à¤¿à¤°à¥\8dवतितà¥\81à¤\82 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤ªà¤\9eà¥\8dà¤\9cà¥\80à¤\95à¥\83ताय à¤µà¤¿-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87ताय à¤\85नà¥\8dतिम{{PLURAL:$1|हà¥\8bरायाà¤\82|$1 à¤¹à¥\8bरासà¥\81}} à¤¨à¥\82तनà¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 à¤ªà¥\8dरà¥\87षितà¤\83 à¤\85सà¥\8dति à¥¤\n\nदà¥\81रà¥\81पयà¥\8bà¤\97à¤\82 à¤µà¤¾à¤°à¤¯à¤¿à¤¤à¥\81मà¥\8d à¤ªà¥\8dरति {{PLURAL:$1|हà¥\8bरà¤\82|$1 à¤¹à¥\8bरà¤\82}} à¤\95à¥\87वलमà¥\8d à¤\8fà¤\95मà¥\8d à¤µà¤¿-पत्रं प्रेष्यते ।",
+       "mailerror": "वि-पत्रसम्प्रेषणे दोषः : $1",
        "acct_creation_throttle_hit": "चतु्र्विंशतिघण्टासु अस्य सङ्गणकस्य आन्तर्जालसंविदा (IP) {{PLURAL:$1|1 योजकः|$1 योजकाः}} सदस्यतां प्राप्तवान्/वन्तः । अद्य इतोपि अधिकसदस्याः प्राप्तुं न शक्यन्ते ।",
-       "emailauthenticated": "$2 à¤¦à¤¿à¤¨à¤¾à¤\99à¥\8dà¤\95à¥\87 $3 à¤µà¤¾à¤¦à¤¨à¥\87 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤\88-पत्रसङ्केतः पुष्टितः ।",
-       "emailnotauthenticated": "à¤\8fतावता à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤\88-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तà¤\83 à¤ªà¥\81षà¥\8dà¤\9fà¤\83 à¤¨à¤¾à¤­à¤µà¤¤à¥\8d à¥¤ \nनिमà¥\8dनलिà¤\96िताय à¤¨ à¤\95िमपि à¤\88-पत्रं प्रेषयितुं शक्यते ।",
-       "noemailprefs": "à¤\8fनà¤\82 à¤µà¤¿à¤\95लà¥\8dपà¤\82 à¤¸à¤®à¤°à¥\8dथितà¥\81मà¥\8d \"à¤\87षà¥\8dà¤\9fतमानि\" à¤®à¤§à¥\8dयà¥\87 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤\88-पत्रसङ्केतस्य उल्लेखः आवश्यकः ।",
-       "emailconfirmlink": "सà¥\8dवसà¥\8dय à¤\88-पतà¥\8dरसà¤\99à¥\8dà¤\95तà¤\82 à¤ªà¥\81षà¥\8dà¤\9fà¤\82 à¤\95रà¥\8bतà¥\81",
-       "invalidemailaddress": "à¤\8fषà¤\83 à¤\88-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तà¤\83 à¤\86वशà¥\8dयà¤\95पà¥\8dरारà¥\81पà¥\87 à¤¨à¤¾à¤¸à¥\8dति à¥¤ à¤\95à¥\83पया à¤¯à¥\8bà¤\97à¥\8dयपà¥\8dरारà¥\81पानà¥\81à¤\95à¥\82लà¤\83 à¤\88-पत्रसङ्केतः लिख्यताम् । अथवा सा पेटिका रिक्ता त्यज्यताम् ।",
-       "cannotchangeemail": "à¤\85सà¥\8dमिनà¥\8d à¤µà¤¿à¤\95ि-à¤\9cालसà¥\8dथानà¥\87 à¤¯à¥\8bà¤\9cà¤\95-à¤\88पत्र-सङ्केताः परिवर्तयितुं न शक्यन्ते ।",
-       "emaildisabled": "सà¥\8dथानमà¥\87ततà¥\8d (site) à¤\88-पत्रं प्रेषयितुं न शक्यते ।",
+       "emailauthenticated": "$2 à¤¦à¤¿à¤¨à¤¾à¤\99à¥\8dà¤\95à¥\87 $3 à¤µà¤¾à¤¦à¤¨à¥\87 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤µà¤¿-पत्रसङ्केतः पुष्टितः ।",
+       "emailnotauthenticated": "à¤\8fतावता à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤µà¤¿-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तà¤\83 à¤ªà¥\81षà¥\8dà¤\9fà¤\83 à¤¨à¤¾à¤­à¤µà¤¤à¥\8d à¥¤ \nनिमà¥\8dनलिà¤\96िताय à¤¨ à¤\95िमपि à¤µà¤¿-पत्रं प्रेषयितुं शक्यते ।",
+       "noemailprefs": "à¤\8fनà¤\82 à¤µà¤¿à¤\95लà¥\8dपà¤\82 à¤¸à¤®à¤°à¥\8dथितà¥\81मà¥\8d \"à¤\87षà¥\8dà¤\9fतमानि\" à¤®à¤§à¥\8dयà¥\87 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤µà¤¿-पत्रसङ्केतस्य उल्लेखः आवश्यकः ।",
+       "emailconfirmlink": "सà¥\8dवसà¥\8dय à¤µà¤¿-पतà¥\8dरसà¤\99à¥\8dà¤\95तà¤\82 à¤ªà¥\8dरमाणà¥\80à¤\95à¥\8dरियतामà¥\8d",
+       "invalidemailaddress": "à¤\8fषà¤\83 à¤µà¤¿-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तà¤\83 à¤\86वशà¥\8dयà¤\95पà¥\8dरारà¥\81पà¥\87 à¤¨à¤¾à¤¸à¥\8dति à¥¤ à¤\95à¥\83पया à¤¯à¥\8bà¤\97à¥\8dयपà¥\8dरारà¥\81पानà¥\81à¤\95à¥\82लà¤\83 à¤µà¤¿-पत्रसङ्केतः लिख्यताम् । अथवा सा पेटिका रिक्ता त्यज्यताम् ।",
+       "cannotchangeemail": "à¤\85सà¥\8dमिनà¥\8d à¤µà¤¿à¤\95ि-à¤\9cालसà¥\8dथानà¥\87 à¤¯à¥\8bà¤\9cà¤\95-विपत्र-सङ्केताः परिवर्तयितुं न शक्यन्ते ।",
+       "emaildisabled": "सà¥\8dथानमà¥\87ततà¥\8d (site) à¤µà¤¿-पत्रं प्रेषयितुं न शक्यते ।",
        "accountcreated": "सदस्यता प्राप्ता",
        "accountcreatedtext": "[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) कृते \"योजसम्भाषणम्\" इति पृष्ठं रचितम् ।",
        "createaccount-title": "{{SITENAME}} कृते सदस्यता प्राप्यताम्",
-       "createaccount-text": "{{SITENAME}} ($4) à¤\87तà¥\8dयतà¥\8dर, \"$2\" à¤¨à¤¾à¤®à¥\8dना, \"$3\" à¤\95à¥\82à¤\9fशबà¥\8dदà¥\87न, à¤\9a à¤\95à¥\8bऽपि à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤\88-पत्रसङ्केतस्य उपयोगं कृत्वा सदस्यतां प्रापत् ।\nअधुना भवान्/भवती प्रवेशं कृत्वा गुप्तसङ्ख्यां परिवर्तयितं शक्नोति ।\nएषा सदस्यताप्राप्तिः क्षत्या अभवत् चेत्, एनं सन्देशम् उपेक्षताम् ।",
+       "createaccount-text": "{{SITENAME}} ($4) à¤\87तà¥\8dयतà¥\8dर, \"$2\" à¤¨à¤¾à¤®à¥\8dना, \"$3\" à¤\95à¥\82à¤\9fशबà¥\8dदà¥\87न, à¤\9a à¤\95à¥\8bऽपि à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤µà¤¿-पत्रसङ्केतस्य उपयोगं कृत्वा सदस्यतां प्रापत् ।\nअधुना भवान्/भवती प्रवेशं कृत्वा गुप्तसङ्ख्यां परिवर्तयितं शक्नोति ।\nएषा सदस्यताप्राप्तिः क्षत्या अभवत् चेत्, एनं सन्देशम् उपेक्षताम् ।",
        "login-throttled": "भवता/भवत्या अत्यधिकाः प्रवेशप्रयासाः कृताः । \nकृपया $1 कालं यावत् प्रतीक्ष्यताम् ।",
        "login-abort-generic": "भवतः/भवत्याः प्रवेशप्रयासः विफलीभूतः - परित्यक्तः",
        "login-migrated-generic": "भवतः/भवत्याः सदस्यत्वं स्थानान्तरितं, येन भवतः/भवत्याः प्रयोक्तृनाम एतस्मिन् विकि-प्रकल्पे न विद्यते ।",
        "loginlanguagelabel": "भाषा : $1",
        "suspicious-userlogout": "भवतः/भवत्याः \"निर्गम्यताम्\" इत्यस्य विज्ञप्तिं स्वीकर्तुं न शक्यते । यतः भवता/भवत्या एषा विज्ञप्तिं तृटियुक्तगवेक्षणात् प्रतिनिधि(proxy)-तः वा कृता ।",
-       "createacct-another-realname-tip": "वासà¥\8dतविà¤\95नाम à¤\90à¤\9aà¥\8dà¤\9bिà¤\95मà¥\8d à¤\85सà¥\8dति à¥¤ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤\8fनà¤\82 à¤µà¤¿à¤\95लà¥\8dपà¤\82 à¤¸à¤®à¤°à¥\8dथयति à¤\9aà¥\87तà¥\8d, à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¯à¥\8bà¤\97दानशà¥\8dरà¥\87यसà¥\8dय उल्लेखसमये अस्य उपयोगः भविष्यति ।",
+       "createacct-another-realname-tip": "वासà¥\8dतविà¤\95नाम à¤\90à¤\9aà¥\8dà¤\9bिà¤\95मà¥\8d à¤\85सà¥\8dति à¥¤ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤\8fनà¤\82 à¤µà¤¿à¤\95लà¥\8dपà¤\82 à¤¸à¤®à¤°à¥\8dथयति à¤\9aà¥\87तà¥\8d, à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¯à¥\8bà¤\97दानशà¥\8dरà¥\87यसà¤\83 उल्लेखसमये अस्य उपयोगः भविष्यति ।",
        "pt-login": "प्रविश्यताम्",
        "pt-login-button": "प्रविश्यताम्",
        "pt-createaccount": "सदस्यता प्राप्यताम्",
        "pt-userlogout": "निर्गम्यताम्",
        "php-mail-error-unknown": "PHP लिप्याः मुख्यनियोगे (in main()) अज्ञातत्रुटिः प्राप्ता ।",
-       "user-mail-no-addy": "à¤\88-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तà¤\82 à¤µà¤¿à¤¨à¤¾ à¤\88-पत्रप्रेषणस्य प्रयासः कृतः ।",
-       "user-mail-no-body": "भवता/भवतà¥\8dया à¤°à¤¿à¤\95à¥\8dतà¤\82 à¤²à¤\98à¥\81सनà¥\8dदà¥\87शयà¥\81à¤\95à¥\8dतà¤\82 à¤µà¤¾ à¤\88-पत्रं प्रेषणस्य प्रयासः कृतः ।",
+       "user-mail-no-addy": "वि-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तà¤\82 à¤µà¤¿à¤¨à¤¾ à¤µà¤¿-पत्रप्रेषणस्य प्रयासः कृतः ।",
+       "user-mail-no-body": "भवता/भवतà¥\8dया à¤°à¤¿à¤\95à¥\8dतà¤\82 à¤²à¤\98à¥\81सनà¥\8dदà¥\87शयà¥\81à¤\95à¥\8dतà¤\82 à¤µà¤¾ à¤µà¤¿-पत्रं प्रेषणस्य प्रयासः कृतः ।",
        "changepassword": "कूटशब्दः परिवर्त्यताम्",
        "resetpass_announce": "सदस्यताप्रक्रियां पूर्णं कर्तुं नूतनः कूटशब्दः लेखनीयः एव ।",
        "resetpass_text": "<!-- पाठं अत्र लिखतु -->",
        "resetpass-expired-soft": "भवतः/भवत्याः कृटशब्दस्य अवधिः समाप्ता । कृपया नवीनकूटशब्दं निर्धारयतु । पश्चात् नवीनकूटशब्दं निर्धारयितुं \"{{int:resetpass-submit-cancel}}\" नुदतु ।",
        "resetpass-validity-soft": "भवतः/भवत्याः कृटशब्दः अयोग्यः अस्ति । कृपया नवीनकूटशब्दं निर्धारयतु । पश्चात् नवीनकूटशब्दं निर्धारयितुं \"{{int:resetpass-submit-cancel}}\" नुदतु ।",
        "passwordreset": "कूटशब्दः परिवर्त्यताम्",
-       "passwordreset-text-one": "à¤\88-पत्रमाध्यमेन अल्पकालीनकूटशब्दं प्राप्तुम् अधस्तनं प्रपत्रं पूरयतु ।",
-       "passwordreset-text-many": "{{PLURAL:$1|à¤\88-पत्रमाध्यमेन अल्पकालीनकूटशब्दं प्राप्तुम् अधस्तनां कामपि एकां पेटिकां पूरयतु ।}}",
+       "passwordreset-text-one": "वि-पत्रमाध्यमेन अल्पकालीनकूटशब्दं प्राप्तुम् अधस्तनं प्रपत्रं पूरयतु ।",
+       "passwordreset-text-many": "{{PLURAL:$1|वि-पत्रमाध्यमेन अल्पकालीनकूटशब्दं प्राप्तुम् अधस्तनां कामपि एकां पेटिकां पूरयतु ।}}",
        "passwordreset-legend": "कूटशब्दः परिवर्त्यताम्",
        "passwordreset-disabled": "अस्मिन् विकि-जालस्थाने कूटशब्दं परिर्तितुं निषेधः अस्ति ।",
-       "passwordreset-emaildisabled": "à¤\85सà¥\8dमिनà¥\8d à¤µà¤¿à¤\95ि-à¤\9cालसà¥\8dथानà¥\87 à¤\88-पत्रसम्बद्धाः सेवाः असमर्थिताः सन्ति ।",
+       "passwordreset-emaildisabled": "à¤\85सà¥\8dमिनà¥\8d à¤µà¤¿à¤\95ि-à¤\9cालसà¥\8dथानà¥\87 à¤µà¤¿-पत्रसम्बद्धाः सेवाः असमर्थिताः सन्ति ।",
        "passwordreset-username": "योजकनाम:",
        "passwordreset-domain": "क्षेत्रम्:",
-       "passwordreset-capture": "परिणामसà¥\8dवरà¥\82पनिरà¥\8dमितानि à¤\88-पत्राणि द्रष्टुम् इच्छति ?",
-       "passwordreset-capture-help": "à¤\85सà¥\8dयाà¤\82 à¤®à¤\9eà¥\8dà¤\9cà¥\82षायाà¤\82 à¤¯à¤¦à¤¿ à¤­à¤µà¤¤à¤¾ à¤\85à¤\99à¥\8dà¤\95à¥\8dयतà¥\87 à¤¤à¤°à¥\8dहि à¤\88पत्रम् (अस्थायिकूटशब्देन सह) दर्श्यते प्रेष्यते च ।",
-       "passwordreset-email": "à¤\88-पत्रसङ्केतः",
+       "passwordreset-capture": "परिणामसà¥\8dवरà¥\82पनिरà¥\8dमितानि à¤µà¤¿-पत्राणि द्रष्टुम् इच्छति ?",
+       "passwordreset-capture-help": "à¤\85सà¥\8dयाà¤\82 à¤®à¤\9eà¥\8dà¤\9cà¥\82षायाà¤\82 à¤¯à¤¦à¤¿ à¤­à¤µà¤¤à¤¾ à¤\85à¤\99à¥\8dà¤\95à¥\8dयतà¥\87 à¤¤à¤°à¥\8dहि à¤µà¤¿-पत्रम् (अस्थायिकूटशब्देन सह) दर्श्यते प्रेष्यते च ।",
+       "passwordreset-email": "वि-पत्रसङ्केतः",
        "passwordreset-emailtitle": "{{SITENAME}} इत्यत्र योजकविषये",
-       "passwordreset-emailtext-ip": "à¤\95à¥\8bऽपि (à¤\95दाà¤\9aितà¥\8d à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80, $1 à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदà¤\83 (from IP)) {{SITENAME}}($4) à¤\9cालसà¥\8dथानसà¥\8dय  à¤\95à¥\83तà¥\87 à¤\95à¥\82à¤\9fशबà¥\8dदपरिवरà¥\8dतनसà¥\8dय à¤µà¤¿à¤¨à¤¤à¤¿à¤®à¥\8d à¤\85à¤\95रà¥\8bतà¥\8d à¥¤ à¤¨à¤¿à¤®à¥\8dन{{PLURAL:$3|यà¥\8bà¤\9cà¤\95à¤\83|यà¥\8bà¤\9cà¤\95ाà¤\83}} à¤\85नà¥\87न à¤\88-पत्रेण सह सल्लग्नः अस्ति/सल्लग्नाः सन्ति ।\n\n$2\n\n{{PLURAL:$3|एषः अल्पकालीनकूटशब्दः|एते अल्पकालीनकूटशब्दाः}} {{PLURAL:$5|चतुर्विंशतिघण्टासु|$5 दिनेषु}} निरस्तः भविष्यति/निरस्ताः भविष्यन्ति ।\nअधुना प्रवेशं सम्प्राप्य कूटशब्दः परिवर्तनीयः एव । \n\nनिम्नकारणानि यदि सन्ति, तर्हि एनं सन्देशम् अवगण्यताम् ।\n\n१ कोऽपि अन्यः अत्र विनतिम् अकरोत् । \n२ पूरातनः कूटशब्दः भवतः/भवत्याः स्मरणे अस्ति ।\n३ भवान्/भवती कूटशब्दं परिवर्तयितुं नेच्छिति ।",
-       "passwordreset-emailtext-user": "$1 à¤¯à¥\8bà¤\9cà¤\95à¤\83 {{SITENAME}}($4) à¤\9cालसà¥\8dथानसà¥\8dय  à¤\95à¥\83तà¥\87 à¤\95à¥\82à¤\9fशबà¥\8dदपरिवरà¥\8dतनसà¥\8dय à¤µà¤¿à¤¨à¤¤à¤¿à¤®à¥\8d à¤\85à¤\95रà¥\8bतà¥\8d à¥¤ à¤¨à¤¿à¤®à¥\8dन{{PLURAL:$3|यà¥\8bà¤\9cà¤\95à¤\83|यà¥\8bà¤\9cà¤\95ाà¤\83}} à¤\85नà¥\87न à¤\88-पत्रेण सह सल्लग्नः अस्ति/सल्लग्नाः सन्ति ।\n\n$2\n\n{{PLURAL:$3|एषः अल्पकालीनकूटशब्दः|एते अल्पकालीनकूटशब्दाः}} {{PLURAL:$5|चतुर्विंशतिघण्टासु|$5 दिनेषु}} निरस्तः भविष्यति/निरस्ताः भविष्यन्ति ।\nअधुना प्रवेशं सम्प्राप्य कूटशब्दः परिवर्तनीयः एव । \n\nनिम्नकारणानि यदि सन्ति, तर्हि एनं सन्देशम् अवगण्यताम् ।\n\n१ कोऽपि अन्यः अत्र विज्ञप्तिम् अकरोत् । \n२ पूरातनः कूटशब्दः भवतः/भवत्याः स्मरणे अस्ति ।\n३ भवान्/भवती कूटशब्दं परिवर्तयितुं नेच्छिति ।",
+       "passwordreset-emailtext-ip": "à¤\95à¥\8bऽपि (à¤\95दाà¤\9aितà¥\8d à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80, $1 à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदà¤\83 (from IP)) {{SITENAME}}($4) à¤\9cालसà¥\8dथानसà¥\8dय  à¤\95à¥\83तà¥\87 à¤\95à¥\82à¤\9fशबà¥\8dदपरिवरà¥\8dतनसà¥\8dय à¤µà¤¿à¤¨à¤¤à¤¿à¤®à¥\8d à¤\85à¤\95रà¥\8bतà¥\8d à¥¤ à¤¨à¤¿à¤®à¥\8dन{{PLURAL:$3|यà¥\8bà¤\9cà¤\95à¤\83|यà¥\8bà¤\9cà¤\95ाà¤\83}} à¤\85नà¥\87न à¤µà¤¿-पत्रेण सह सल्लग्नः अस्ति/सल्लग्नाः सन्ति ।\n\n$2\n\n{{PLURAL:$3|एषः अल्पकालीनकूटशब्दः|एते अल्पकालीनकूटशब्दाः}} {{PLURAL:$5|चतुर्विंशतिघण्टासु|$5 दिनेषु}} निरस्तः भविष्यति/निरस्ताः भविष्यन्ति ।\nअधुना प्रवेशं सम्प्राप्य कूटशब्दः परिवर्तनीयः एव । \n\nनिम्नकारणानि यदि सन्ति, तर्हि एनं सन्देशम् अवगण्यताम् ।\n\n१ कोऽपि अन्यः अत्र विनतिम् अकरोत् । \n२ पूरातनः कूटशब्दः भवतः/भवत्याः स्मरणे अस्ति ।\n३ भवान्/भवती कूटशब्दं परिवर्तयितुं नेच्छिति ।",
+       "passwordreset-emailtext-user": "$1 à¤¯à¥\8bà¤\9cà¤\95à¤\83 {{SITENAME}}($4) à¤\9cालसà¥\8dथानसà¥\8dय  à¤\95à¥\83तà¥\87 à¤\95à¥\82à¤\9fशबà¥\8dदपरिवरà¥\8dतनसà¥\8dय à¤µà¤¿à¤¨à¤¤à¤¿à¤®à¥\8d à¤\85à¤\95रà¥\8bतà¥\8d à¥¤ à¤¨à¤¿à¤®à¥\8dन{{PLURAL:$3|यà¥\8bà¤\9cà¤\95à¤\83|यà¥\8bà¤\9cà¤\95ाà¤\83}} à¤\85नà¥\87न à¤µà¤¿-पत्रेण सह सल्लग्नः अस्ति/सल्लग्नाः सन्ति ।\n\n$2\n\n{{PLURAL:$3|एषः अल्पकालीनकूटशब्दः|एते अल्पकालीनकूटशब्दाः}} {{PLURAL:$5|चतुर्विंशतिघण्टासु|$5 दिनेषु}} निरस्तः भविष्यति/निरस्ताः भविष्यन्ति ।\nअधुना प्रवेशं सम्प्राप्य कूटशब्दः परिवर्तनीयः एव । \n\nनिम्नकारणानि यदि सन्ति, तर्हि एनं सन्देशम् अवगण्यताम् ।\n\n१ कोऽपि अन्यः अत्र विज्ञप्तिम् अकरोत् । \n२ पूरातनः कूटशब्दः भवतः/भवत्याः स्मरणे अस्ति ।\n३ भवान्/भवती कूटशब्दं परिवर्तयितुं नेच्छिति ।",
        "passwordreset-emailelement": "प्रयोक्तृनाम : $1\nअल्पकालीनकूटशब्दः : $2",
-       "passwordreset-emailsent": "परिवरà¥\8dतितà¤\95à¥\82à¤\9fशबà¥\8dदसà¥\8dय à¤\88-पत्रं प्रेषितम् अस्ति ।",
-       "passwordreset-emailsent-capture": "परिवरà¥\8dतितà¤\95à¥\82à¤\9fशबà¥\8dदसà¥\8dय à¤\88-पत्रं प्रेषितम् अस्ति । तत् अधः द्रष्टुं शक्यते ।",
-       "passwordreset-emailerror-capture": "परिवरà¥\8dतितà¤\95à¥\82à¤\9fशबà¥\8dदसà¥\8dय à¤\88-पत्रं निर्मितम् अस्ति । तत् अधः द्रष्टुं शक्यते । परन्तु {{GENDER:$2|योजकाय}} प्रेषणकाले तत् निरस्तम् अभवत् : $1",
-       "changeemail": "à¤\88-पत्रसङ्केतः परिवर्त्यताम्",
-       "changeemail-text": "सà¥\8dवसà¥\8dय à¤\88-पत्रसङ्केतं परिवर्तयितुम् अधः दत्तं प्रपत्रं पूरयतु । एतस्यै प्रक्रियायै कूटशब्दः आवश्यकः ।",
+       "passwordreset-emailsent": "परिवरà¥\8dतितà¤\95à¥\82à¤\9fशबà¥\8dदसà¥\8dय à¤µà¤¿-पत्रं प्रेषितम् अस्ति ।",
+       "passwordreset-emailsent-capture": "परिवरà¥\8dतितà¤\95à¥\82à¤\9fशबà¥\8dदसà¥\8dय à¤µà¤¿-पत्रं प्रेषितम् अस्ति । तत् अधः द्रष्टुं शक्यते ।",
+       "passwordreset-emailerror-capture": "परिवरà¥\8dतितà¤\95à¥\82à¤\9fशबà¥\8dदसà¥\8dय à¤µà¤¿-पत्रं निर्मितम् अस्ति । तत् अधः द्रष्टुं शक्यते । परन्तु {{GENDER:$2|योजकाय}} प्रेषणकाले तत् निरस्तम् अभवत् : $1",
+       "changeemail": "वि-पत्रसङ्केतः परिवर्त्यताम्",
+       "changeemail-text": "सà¥\8dवसà¥\8dय à¤µà¤¿-पत्रसङ्केतं परिवर्तयितुम् अधः दत्तं प्रपत्रं पूरयतु । एतस्यै प्रक्रियायै कूटशब्दः आवश्यकः ।",
        "changeemail-no-info": "एतत् पृष्ठं सम्पादयितुं प्रवेशः अनिवार्यः ।",
-       "changeemail-oldemail": "वरà¥\8dतमानà¤\83 à¤\88-पत्रसङ्केतः",
-       "changeemail-newemail": "नà¥\82तनà¤\83 à¤\88-पत्रसङ्केतः :",
-       "changeemail-none": "(न कोऽपि)",
+       "changeemail-oldemail": "वरà¥\8dतमानà¤\83 à¤µà¤¿-पत्रसङ्केतः",
+       "changeemail-newemail": "नà¥\82तनà¤\83 à¤µà¤¿-पत्रसङ्केतः :",
+       "changeemail-none": "(नैकम्)",
        "changeemail-password": "भवतः/भवत्याः {{SITENAME}} कूटशब्दः:",
-       "changeemail-submit": "à¤\88-पत्रं परिवर्त्यताम्",
+       "changeemail-submit": "वि-पत्रं परिवर्त्यताम्",
        "changeemail-throttled": "भवता/भवत्या अत्यधिकाः प्रवेशप्रयासाः कृताः । \nकृपया $1 कालं यावत् प्रतिक्षां करोतु ।",
        "resettokens": "चिह्नानि (tokens) परिवर्त्यताम्",
        "resettokens-text": "भवतः/भवत्याः सदस्यतया सह सल्लग्नानि चिह्नानि () उपयोक्तुं शक्यन्ते । येन अनया सदस्यतया सह सल्लग्नाः काश्चन गुप्तसूचनाः ज्ञातुं शक्यन्ते ।",
        "subject-preview": "विषयस्य/शीर्षकस्य प्राग्दृश्यम्:",
        "previewerrortext": "भवता/भवत्या कृतस्य परिवर्तनस्य प्राग्दृश्यस्य प्रदर्शनकाले दोषः अभवत् ।",
        "blockedtitle": "प्रयोक्ता अवरुद्धः वर्तते",
-       "blockedtext": "<strong>भवतà¤\83/भवतà¥\8dयाà¤\83 à¤¸à¤¦à¤¸à¥\8dयता à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदà¥\8d à¤µà¤¾ à¤ªà¥\8dरतिबनà¥\8dधिता à¤µà¤°à¥\8dततà¥\87 à¥¤</strong>\n\nपà¥\8dरतिबनà¥\8dधà¤\83 $1 à¤¦à¥\8dवारा à¤\85भवतà¥\8d à¥¤\nà¤\95ारणà¤\82 à¤¦à¤¤à¥\8dतà¤\82 à¤¯à¤¤à¥\8d, <em>$2</em>.\n\n* à¤ªà¥\8dरतिबनà¥\8dधसà¥\8dय à¤ªà¥\8dरारमà¥\8dभà¤\83 : $8\n* à¤ªà¥\8dरतिबनà¥\8dधसà¥\8dय à¤¸à¤®à¤¾à¤ªà¥\8dतिà¤\83 : $6\n* à¤\85भिपà¥\8dरà¥\87तà¤\83 à¤\85वरà¥\8bधà¥\8dयà¤\83 : $7\n\n$1 à¤\85सà¥\8dय à¤¸à¤®à¥\8dपरà¥\8dà¤\95à¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\85थवा à¤\85नà¥\8dय[[{{MediaWiki:Grouppage-sysop}}|पà¥\8dरबनà¥\8dधà¤\95à¥\87न]] à¤¸à¤¹ à¤ªà¥\8dरतिबनà¥\8dधविषयà¤\95à¤\9aरà¥\8dà¤\9aाà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति à¥¤\nभवानà¥\8d/भवतà¥\80 \"à¤\88-पतà¥\8dरà¤\82 à¤ªà¥\8dरà¥\87षà¥\8dयतामà¥\8d\" à¤µà¤¿à¤\95लà¥\8dपसà¥\8dय à¤\89पयà¥\8bà¤\97à¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 [[Special:Preferences|à¤\87षà¥\8dà¤\9fतमानि]] à¤µà¤¿à¤\95लà¥\8dपà¥\87 à¤\95à¥\8bऽपि à¤\88-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तà¤\83 à¤\85सà¥\8dति, à¤¤à¤¸à¥\8dय à¤\89पयà¥\8bà¤\97ाय à¤\9a à¤ªà¥\8dरतिबनà¥\8dधà¤\83 à¤¨à¤¾à¤¸à¥\8dति à¤\9aà¥\87तà¥\8d, à¤¤à¤¸à¥\8dय à¤\88-पत्रस्य उपयोगं कर्तुं शक्नोति ।\n\nभवतः/भवत्याः वर्तमाना अन्तर्जालसंविद् $3, प्रतिबन्धितसदस्यता #$5 च अस्ति । \n\nयत्र कुत्रापि प्रबन्धसम्बद्धां चर्चां करोति, तत्र उक्तसूचनायाः  उपयोगम् अवश्यं करोतु ।",
-       "autoblockedtext": "<strong>भवतà¤\83/भवतà¥\8dयाà¤\83 à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदà¥\8d à¤ªà¥\8dरतिबनà¥\8dधिता à¤µà¤°à¥\8dततà¥\87 à¥¤</strong>\n\nपà¥\8dरतिबनà¥\8dधà¤\83 $1 à¤¦à¥\8dवारा à¤\85भवतà¥\8d à¥¤\nà¤\95ारणà¤\82 à¤¦à¤¤à¥\8dतà¤\82 à¤¯à¤¤à¥\8d, <em>$2</em>.\n\n* à¤ªà¥\8dरतिबनà¥\8dधसà¥\8dय à¤ªà¥\8dरारमà¥\8dभà¤\83 : $8\n* à¤ªà¥\8dरतिबनà¥\8dधसà¥\8dय à¤¸à¤®à¤¾à¤ªà¥\8dतिà¤\83 : $6\n* à¤\85भिपà¥\8dरà¥\87तà¤\83 à¤\85वरà¥\8bधà¥\8dयà¤\83 : $7\n\n$1 à¤\85सà¥\8dय à¤¸à¤®à¥\8dपरà¥\8dà¤\95à¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\85थवा à¤\85नà¥\8dय[[{{MediaWiki:Grouppage-sysop}}|पà¥\8dरबनà¥\8dधà¤\95à¥\87न]] à¤¸à¤¹ à¤ªà¥\8dरतिबनà¥\8dधविषयà¤\95à¤\9aरà¥\8dà¤\9aाà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति à¥¤\nभवानà¥\8d/भवतà¥\80 \"à¤\88-पतà¥\8dरà¤\82 à¤ªà¥\8dरà¥\87षà¥\8dयतामà¥\8d\" à¤µà¤¿à¤\95लà¥\8dपसà¥\8dय à¤\89पयà¥\8bà¤\97à¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 [[Special:Preferences|à¤\87षà¥\8dà¤\9fतमानि]] à¤µà¤¿à¤\95लà¥\8dपà¥\87 à¤\95à¥\8bऽपि à¤\88-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तà¤\83 à¤\85सà¥\8dति, à¤¤à¤¸à¥\8dय à¤\89पयà¥\8bà¤\97ाय à¤\9a à¤ªà¥\8dरतिबनà¥\8dधà¤\83 à¤¨à¤¾à¤¸à¥\8dति à¤\9aà¥\87तà¥\8d, à¤¤à¤¸à¥\8dय à¤\88-पत्रस्य उपयोगं कर्तुं शक्नोति ।\n\nभवतः/भवत्याः वर्तमाना अन्तर्जालसंविद् $3, प्रतिबन्धितसदस्यता #$5 च अस्ति । \n\nयत्र कुत्रापि प्रबन्धसम्बद्धां चर्चां करोति, तत्र उक्तसूचनायाः  उपयोगम् अवश्यं करोतु ।",
-       "blockednoreason": "न à¤\95िमपि à¤\95ारणमà¥\8d दत्तम्",
+       "blockedtext": "<strong>भवतà¤\83/भवतà¥\8dयाà¤\83 à¤¸à¤¦à¤¸à¥\8dयता à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदà¥\8d à¤µà¤¾ à¤ªà¥\8dरतिबनà¥\8dधिता à¤µà¤°à¥\8dततà¥\87 à¥¤</strong>\n\nपà¥\8dरतिबनà¥\8dधà¤\83 $1 à¤¦à¥\8dवारा à¤\85भवतà¥\8d à¥¤\nà¤\95ारणà¤\82 à¤¦à¤¤à¥\8dतà¤\82 à¤¯à¤¤à¥\8d, <em>$2</em>.\n\n* à¤ªà¥\8dरतिबनà¥\8dधसà¥\8dय à¤ªà¥\8dरारमà¥\8dभà¤\83 : $8\n* à¤ªà¥\8dरतिबनà¥\8dधसà¥\8dय à¤¸à¤®à¤¾à¤ªà¥\8dतिà¤\83 : $6\n* à¤\85भिपà¥\8dरà¥\87तà¤\83 à¤\85वरà¥\8bधà¥\8dयà¤\83 : $7\n\n$1 à¤\85सà¥\8dय à¤¸à¤®à¥\8dपरà¥\8dà¤\95à¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\85थवा à¤\85नà¥\8dय[[{{MediaWiki:Grouppage-sysop}}|पà¥\8dरबनà¥\8dधà¤\95à¥\87न]] à¤¸à¤¹ à¤ªà¥\8dरतिबनà¥\8dधविषयà¤\95à¤\9aरà¥\8dà¤\9aाà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति à¥¤\nभवानà¥\8d/भवतà¥\80 \"वि-पतà¥\8dरà¤\82 à¤ªà¥\8dरà¥\87षà¥\8dयतामà¥\8d\" à¤µà¤¿à¤\95लà¥\8dपसà¥\8dय à¤\89पयà¥\8bà¤\97à¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 [[Special:Preferences|à¤\87षà¥\8dà¤\9fतमानि]] à¤µà¤¿à¤\95लà¥\8dपà¥\87 à¤\95à¥\8bऽपि à¤µà¤¿-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तà¤\83 à¤\85सà¥\8dति, à¤¤à¤¸à¥\8dय à¤\89पयà¥\8bà¤\97ाय à¤\9a à¤ªà¥\8dरतिबनà¥\8dधà¤\83 à¤¨à¤¾à¤¸à¥\8dति à¤\9aà¥\87तà¥\8d, à¤¤à¤¸à¥\8dय à¤µà¤¿-पत्रस्य उपयोगं कर्तुं शक्नोति ।\n\nभवतः/भवत्याः वर्तमाना अन्तर्जालसंविद् $3, प्रतिबन्धितसदस्यता #$5 च अस्ति । \n\nयत्र कुत्रापि प्रबन्धसम्बद्धां चर्चां करोति, तत्र उक्तसूचनायाः  उपयोगम् अवश्यं करोतु ।",
+       "autoblockedtext": "<strong>भवतà¤\83/भवतà¥\8dयाà¤\83 à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदà¥\8d à¤ªà¥\8dरतिबनà¥\8dधिता à¤µà¤°à¥\8dततà¥\87 à¥¤</strong>\n\nपà¥\8dरतिबनà¥\8dधà¤\83 $1 à¤¦à¥\8dवारा à¤\85भवतà¥\8d à¥¤\nà¤\95ारणà¤\82 à¤¦à¤¤à¥\8dतà¤\82 à¤¯à¤¤à¥\8d, <em>$2</em>.\n\n* à¤ªà¥\8dरतिबनà¥\8dधसà¥\8dय à¤ªà¥\8dरारमà¥\8dभà¤\83 : $8\n* à¤ªà¥\8dरतिबनà¥\8dधसà¥\8dय à¤¸à¤®à¤¾à¤ªà¥\8dतिà¤\83 : $6\n* à¤\85भिपà¥\8dरà¥\87तà¤\83 à¤\85वरà¥\8bधà¥\8dयà¤\83 : $7\n\n$1 à¤\85सà¥\8dय à¤¸à¤®à¥\8dपरà¥\8dà¤\95à¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\85थवा à¤\85नà¥\8dय[[{{MediaWiki:Grouppage-sysop}}|पà¥\8dरबनà¥\8dधà¤\95à¥\87न]] à¤¸à¤¹ à¤ªà¥\8dरतिबनà¥\8dधविषयà¤\95à¤\9aरà¥\8dà¤\9aाà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति à¥¤\nभवानà¥\8d/भवतà¥\80 \"वि-पतà¥\8dरà¤\82 à¤ªà¥\8dरà¥\87षà¥\8dयतामà¥\8d\" à¤µà¤¿à¤\95लà¥\8dपसà¥\8dय à¤\89पयà¥\8bà¤\97à¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 [[Special:Preferences|à¤\87षà¥\8dà¤\9fतमानि]] à¤µà¤¿à¤\95लà¥\8dपà¥\87 à¤\95à¥\8bऽपि à¤µà¤¿-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तà¤\83 à¤\85सà¥\8dति, à¤¤à¤¸à¥\8dय à¤\89पयà¥\8bà¤\97ाय à¤\9a à¤ªà¥\8dरतिबनà¥\8dधà¤\83 à¤¨à¤¾à¤¸à¥\8dति à¤\9aà¥\87तà¥\8d, à¤¤à¤¸à¥\8dय à¤µà¤¿-पत्रस्य उपयोगं कर्तुं शक्नोति ।\n\nभवतः/भवत्याः वर्तमाना अन्तर्जालसंविद् $3, प्रतिबन्धितसदस्यता #$5 च अस्ति । \n\nयत्र कुत्रापि प्रबन्धसम्बद्धां चर्चां करोति, तत्र उक्तसूचनायाः  उपयोगम् अवश्यं करोतु ।",
+       "blockednoreason": "न à¤\95िमपि à¤\95ारणà¤\82 दत्तम्",
        "whitelistedittext": "सम्पादनं कर्तुं $1 आवश्यकम् ।",
-       "confirmedittext": "समà¥\8dपादनातà¥\8d à¤ªà¥\82रà¥\8dवà¤\82 à¤¸à¥\8dवसà¥\8dय à¤\88-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तà¤\82 à¤ªà¥\81षà¥\8dà¤\9fà¤\82 à¤\95रà¥\8bतà¥\81 à¥¤\n[[Special:Preferences|user preferences]] à¤\87तà¥\8dयतà¥\8dर à¤¸à¥\8dवसà¥\8dय à¤¯à¥\8bà¤\97à¥\8dयमà¥\8d à¤\88-पत्रसङ्केतं लिखतु ।",
+       "confirmedittext": "समà¥\8dपादनातà¥\8d à¤ªà¥\82रà¥\8dवà¤\82 à¤¸à¥\8dवसà¥\8dय à¤µà¤¿-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तà¤\82 à¤ªà¥\8dरमाणà¥\80à¤\95à¥\8dरियतामà¥\8d à¥¤\n[[Special:Preferences|user preferences]] à¤\87तà¥\8dयतà¥\8dर à¤¸à¥\8dवसà¥\8dय à¤¯à¥\8bà¤\97à¥\8dयमà¥\8d à¤µà¤¿-पत्रसङ्केतं लिखतु ।",
        "nosuchsectiontitle": "एतादृशः न कोऽपि विभागः प्राप्तः",
        "nosuchsectiontext": "यः विभागः एव नास्ति, तादृशस्य विभागस्य सम्पादनस्य निश्चयः कृतः भवता/भवत्या ।\nएषः विभागः चालितः अपाकृतः वा स्यात् ।",
        "loginreqtitle": "प्रवेशः अपेक्षितः",
        "loginreqlink": "प्रविश्यताम्",
        "loginreqpagetext": "अन्यानि पृष्ठानि द्रष्टुं $1 आवश्यकम् ।",
        "accmailtitle": "कूटशब्दः प्रेषितः",
-       "accmailtext": "[[User talk:$1|$1]] à¤\95à¥\83तà¥\87 à¤\85शà¥\83à¤\99à¥\8dà¤\96लितरà¥\80तà¥\8dया (randomly) à¤\89तà¥\8dपादितà¤\83 à¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 $2 à¤\88-पत्रसङ्केतं प्रति प्रेषितः अस्ति । <em>[[Special:ChangePassword|कूटशब्दः परिवर्त्यताम्]]</em> अत्र तत् परिर्तयितुं शक्यते ।",
+       "accmailtext": "[[User talk:$1|$1]] à¤\95à¥\83तà¥\87 à¤\85शà¥\83à¤\99à¥\8dà¤\96लितरà¥\80तà¥\8dया (randomly) à¤\89तà¥\8dपादितà¤\83 à¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 $2 à¤µà¤¿-पत्रसङ्केतं प्रति प्रेषितः अस्ति । <em>[[Special:ChangePassword|कूटशब्दः परिवर्त्यताम्]]</em> अत्र तत् परिर्तयितुं शक्यते ।",
        "newarticle": "(नूतनम्)",
        "newarticletext": "भवान्/भवती अनिर्मिते पृष्ठे अस्ति । \nपृष्ठं स्रष्टुम् अधः प्रदत्तायां पेटिकायां टङ्कनं प्रारभताम् (साहाय्यार्थं [$1 अत्र]) नुदतु ।\nभवान्/भवती यदि क्षतिकारणात् एतत् पृष्ठं प्रति आगच्छत्, तर्हि अस्य गवेषकस्य (browser) Back नुदतु ।",
        "anontalkpagetext": "----\n<em>एतत् सम्भाषणपृष्ठम् अनामकयोजकेभ्यः अस्ति । एतत् तेभ्यः अनामकयोजकेभ्यः रचितमस्ति, यैः सदस्यता न प्राप्ता अस्ति तथा च अस्य पृष्ठस्य उपयोगं न कुर्वन्तः सन्ति ।</em>\nतेषां व्यक्तिगतसूचनां प्राप्तुमेव वयं तस्य/तस्याः अन्तर्जालसंविदः उपयोगं कुर्मः । केचन योजकाः स्वस्य अन्तर्जालसंविदम् अन्यान् योजकान् कथयन्ति । \nयद्यपि अनामकयोजकः अहं नास्मि, तथापि अयोग्यसूचनाः मम पार्श्वे आगच्छन्त्यः सन्ति इति यदि भवान्/भवती शङ्कते, तर्हि एतत् [[Special:UserLogin/signup|create an account]] एतत् [[Special:UserLogin|log in]] वा कृत्वा भविष्यस्य अनामकयोजकनां सन्देशेभ्यः स्वस्य रक्षणं करोतु ।",
        "permissionserrorstext-withaction": "$1 निम्नकारणत्वात्  $2 सम्पादनस्य अनुमतिः नास्ति ।\n{{PLURAL:$1|कारणम्|कारणानि}}:",
        "recreate-moveddeleted-warn": "'''पूर्वसूचना : पूर्वम् अपाकृतं पृष्टं भवता रच्यमानम् अस्ति ।'''\nअस्य पृष्ठस्य सम्पादनं करणात् प्राक् गभीरतया चिन्तनं करोतु ।\nअस्य पृष्ठस्य निर्माणं न्यायसङ्गतम् इति भवतः/भवत्याः मतमस्ति चेत्, अत्र परिवर्तनं करोतु । सौकर्यार्थं पृष्ठ-अपाकरणस्य प्राक्तनसम्पादनस्य आवलिः अत्र दीयते ।",
        "moveddeleted-notice": "इदं पृष्ठम् अपाकृतम् अस्ति।\nअस्य अपाकरणस्य, स्थानान्तरणस्य च विवरणम् अधः प्रदत्तम् ।",
-       "log-fulllog": "पूर्णसंरक्षितावलिः दृश्यताम्",
+       "log-fulllog": "पà¥\82रà¥\8dणसà¤\82रà¤\95à¥\8dषिताऽऽवलिà¤\83 à¤¦à¥\83शà¥\8dयतामà¥\8d",
        "edit-hook-aborted": "hook द्वारा सम्पादनक्रिया मध्ये एव स्थगिता । स्थगनस्य कारणं न दत्तम् ।",
        "edit-gone-missing": "अस्मिन् पृष्ठे परिवर्तनं नाभूत् ।\nएतत् पृष्ठं पुरा एव केनापि अपाकृतम् इति भाति ।",
        "edit-conflict": "सम्पादनयोः अन्तर्विरोधः ।",
        "postedit-confirmation-created": "नूतनपृष्ठस्य रचना अभवत् ।",
        "postedit-confirmation-restored": "एतत् पृष्ठं पुनः सङ्गृहीतम् ।",
        "postedit-confirmation-saved": "सम्पादनं रक्षितम् ।",
-       "edit-already-exists": "नà¥\82तनपà¥\83षà¥\8dठसà¥\8dय à¤¨à¤¿à¤°à¥\8dमाणà¤\82 à¤¨à¤¾à¤­à¥\82तà¥\8d à¥¤\nपà¥\82रà¥\8dवसà¥\8dमादेव एतत् पृष्ठं विद्यते ।",
+       "edit-already-exists": "नà¥\82तनपà¥\83षà¥\8dठसà¥\8dय à¤¨à¤¿à¤°à¥\8dमाणà¤\82 à¤¨à¤¾à¤­à¥\82तà¥\8d à¥¤\nपà¥\82रà¥\8dवमेव एतत् पृष्ठं विद्यते ।",
        "defaultmessagetext": "मूलसन्देशः",
        "content-failed-to-parse": "$1 कृते $2 इत्यस्य विभाजनं विफलम् अभवत् । दोषः : $3",
        "invalid-content-data": "अयोग्यः लेखः",
        "cantcreateaccounttitle": "सदस्यता प्राप्तुं न शक्यते",
        "cantcreateaccount-text": "(<strong>$1</strong>) इत्यस्य संविदः (IP) कृते सदस्यता प्राप्तुं न शक्यते । कारणं [[User:$3|$3]] द्वारा सा संवित्सङ्ख्या प्रतिबन्धिता अस्ति । \n\n$3 इत्यनेन कारणं दत्तं यत्, <em>$2</em>",
        "cantcreateaccount-range-text": "सदस्यताप्राप्तेः सीमा-आक्रान्तृषु '''$1''' अन्तर्जालसंवित्सु (IP) भवतः/भवत्याः अन्तर्जालसंवद् ('''$4''') अन्तर्भवति । अतः [[User:$3|$3]] द्वारा भवतः/भवत्याः अन्तर्जालसंविद् प्रतिबन्धिता ।\n\n$3 इत्यनेन कारणं दत्तं यत्, ''$2''",
-       "viewpagelogs": "अस्य पृष्ठस्य संरक्षितावलिः (logs) दृश्यताम्",
+       "viewpagelogs": "à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82रà¤\95à¥\8dषिताऽऽवलिà¤\83 (logs) à¤¦à¥\83शà¥\8dयतामà¥\8d",
        "nohistory": "अस्य पृष्ठस्य इतिहासः न वर्तते ।",
-       "currentrev": "नà¥\82तनतमा à¤\86वà¥\83तà¥\8dतिà¤\83",
+       "currentrev": "नà¥\82तनतमà¤\82 à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d",
        "currentrev-asof": "$1 समयस्य संस्करणम्",
        "revisionasof": "$1 इत्यस्य संस्करणं",
        "revision-info": "$1 पर्यन्तं {{GENDER:$6|$2}}$7 द्वारा जातानां परिवर्तनानाम् आवलिः",
        "previousrevision": "← पुरातनं संस्करणम्",
        "nextrevision": "नूतनतरा आवृत्तिः →",
-       "currentrevisionlink": "नà¥\82तनतमा à¤\86वà¥\83तà¥\8dतिà¤\83",
+       "currentrevisionlink": "नà¥\82तनतमà¤\82 à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d",
        "cur": "वर्तमानः",
        "next": "अग्रिमम्",
        "last": "पूर्वतनम्",
        "history-feed-description": "अस्मिन् विकि-जालस्थाने एतस्य पृष्ठस्य संस्करणेतिहासः",
        "history-feed-item-nocomment": "$1 द्वारा $3 दिनाङ्के $4 समये",
        "history-feed-empty": "एतत् पृष्ठं न विद्यते । \nएतस्य पृष्ठस्य नामपरिवर्तनम्, अपाकरणं च कृतं स्यात् । \n अनेन सम्बद्धानि पृष्ठानि [[Special:Search|विकि-जालस्थाने अन्विष्यन्ताम्]] ।",
+       "history-edit-tags": "चितस्य संस्ककरणस्य चिह्नानि सम्पाद्यन्ताम्",
        "rev-deleted-comment": "(सम्पादनस्य सारः अपाकृतः)",
        "rev-deleted-user": "(प्रयोक्तृनाम अपाकृतमस्ति)",
        "rev-deleted-event": "(संरक्षिताऽऽवल्यः(log) अपाकृताः)",
        "rev-deleted-user-contribs": "[प्रयोक्तृनाम अन्तर्जालसंविद् वा अपाकृतम् - योगदानाऽऽवल्याम् एतानि परिवर्तनानि निगूहितानि सन्ति ।]",
-       "rev-deleted-text-permission": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤µà¤¿à¤µà¤°à¤£à¤®à¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
+       "rev-deleted-text-permission": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤µà¤¿à¤µà¤°à¤£à¤®à¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dसà¥\8dयति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
        "rev-suppressed-text-permission": "एतस्य पृष्ठस्य संस्कृतम् <strong>अपाकृतम्</strong> । तस्य विस्तृतं विवकणं [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} गूहितऽऽवल्याः] प्राप्यते ।",
-       "rev-deleted-text-unhide": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]. \n\nयदि इच्छति, तर्हि अत्रापि [$1 view this revision] द्रष्टुं शक्नोति ।",
-       "rev-suppressed-text-unhide": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]. \n\nयदि इच्छति, तर्हि अत्रापि [$1 view this revision] द्रष्टुं शक्नोति ।",
-       "rev-deleted-text-view": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
-       "rev-suppressed-text-view": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
-       "rev-deleted-no-diff": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
+       "rev-deleted-text-unhide": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dसà¥\8dयति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]. \n\nयदि इच्छति, तर्हि अत्रापि [$1 view this revision] द्रष्टुं शक्नोति ।",
+       "rev-suppressed-text-unhide": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dसà¥\8dयति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]. \n\nयदि इच्छति, तर्हि अत्रापि [$1 view this revision] द्रष्टुं शक्नोति ।",
+       "rev-deleted-text-view": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dसà¥\8dयति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
+       "rev-suppressed-text-view": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dसà¥\8dयति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
+       "rev-deleted-no-diff": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>à¤\85पाà¤\95à¥\83तमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dसà¥\8dयति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
        "rev-suppressed-no-diff": "भवान्/भवती संस्करणस्य भेदं द्रष्टुं न शक्नोति । कारणम् एतस्य किमपि संस्करणं <strong>अपाकृतमस्ति</strong> ।",
        "rev-deleted-unhide-diff": "भवान्/भवती संस्करणस्य भेदं द्रष्टुं न शक्नोति । कारणम् एतस्य किमपि संस्करणं <strong>अपाकृतमस्ति</strong> ।\n\nयदि इच्छति, तर्हि अत्रापि [$1 view this revision] द्रष्टुं शक्नोति ।",
-       "rev-suppressed-unhide-diff": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]. \n\nयदि इच्छति, तर्हि अत्रापि [$1 view this revision] द्रष्टुं शक्नोति ।",
-       "rev-deleted-diff-view": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
-       "rev-suppressed-diff-view": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
+       "rev-suppressed-unhide-diff": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dसà¥\8dयति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]. \n\nयदि इच्छति, तर्हि अत्रापि [$1 view this revision] द्रष्टुं शक्नोति ।",
+       "rev-deleted-diff-view": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dसà¥\8dयति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
+       "rev-suppressed-diff-view": "भवानà¥\8d/भवतà¥\80 à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤­à¥\87दà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणमà¥\8d à¤\8fतसà¥\8dय à¤\95िमपि à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 <strong>निषिदà¥\8dधमसà¥\8dति</strong> à¥¤\nविसà¥\8dतà¥\83तà¤\82 à¤\9cà¥\8dà¤\9eानमà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरापà¥\8dसà¥\8dयति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
        "rev-delundel": "दृश्यताम्/गोप्यताम्",
        "rev-showdeleted": "दर्श्यताम्",
        "revisiondelete": "संस्करणानि निष्कासयतु/पुनस्स्थापयतु",
        "revdelete-nooldid-title": "अयोग्यलक्ष्यस्य संस्करणम्",
-       "revdelete-nooldid-text": "एतत् कार्यं कर्तुं भवता/भवत्या लक्ष्यं न निर्धारितम् एतत् संस्करणं न भवेत् वा । भवान्/भवती एतत् संस्करणं निगूहितुम् प्रयतति इत्यपि शक्यम् ।",
+       "revdelete-nooldid-text": "à¤\8fततà¥\8d à¤\95ारà¥\8dयà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤\95िमपि à¤²à¤\95à¥\8dषà¥\8dयà¤\82 à¤¨ à¤¨à¤¿à¤°à¥\8dधारितमà¥\8d à¤\8fततà¥\8d à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 à¤¨ à¤­à¤µà¥\87तà¥\8d à¤µà¤¾ à¥¤ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤\8fततà¥\8d à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 à¤¨à¤¿à¤\97à¥\82हितà¥\81मà¥\8d à¤ªà¥\8dरयतति à¤\87तà¥\8dयपि à¤¶à¤\95à¥\8dयमà¥\8d à¥¤",
        "revdelete-no-file": "निर्दिष्टा सञ्चिका न विद्यते ।",
        "revdelete-show-file-confirm": "$2 दिनाङ्कस्य  $3 समयपर्यन्तस्य  \"<nowiki>$1</nowiki>\" इत्यस्याः अपाकृतसञ्चिकायाः संस्करणाऽऽवलिं भवान्/भवती निश्चयेन द्रष्टुम् ईप्सति ?",
        "revdelete-show-file-submit": "आम्",
        "revdelete-show-no-access": "$2 दिनाङ्कस्य $1 समयस्य वस्तुनि दोषः दृष्टः । तत् वस्तु निषिद्धावल्याम् अस्ति । भवान्/भवती तत् परिवर्तितुं न शक्नोति ।",
        "revdelete-modify-no-access": "$2 दिनाङ्कस्य $1 समयस्य परिवर्तितवस्तुनि दोषः दृष्टः । तत् वस्तु निषिद्धावल्याम् अस्ति । भवान्/भवती तत् परिवर्तितुं न शक्नोति ।",
        "revdelete-modify-missing": "ID $1 इत्यस्य परिवर्तने दोषः : एतत् दत्तांशे न प्राप्तम् !",
-       "revdelete-no-change": "'''पà¥\82रà¥\8dवसà¥\82à¤\9aना :''' $2, $1 à¤\87तà¥\8dयसà¥\8dमिनà¥\8d à¤¯à¤¾à¤\9aितवसà¥\8dतà¥\82नि à¤ªà¥\82रà¥\8dवसà¥\8dमादेव विद्यन्ते ।",
-       "revdelete-concurrent-change": "$2 दिनाङ्कस्य $1 समयस्य परिवर्तनेषु दोषः दृष्टः । अस्य पृष्ठस्य यदा भवान्/भवती सम्पादनं करोति स्म, तदा अन्य कोऽपि अत्र परिवर्तनम् अकरोत् । अतः परिवर्तनस्य इतिहासे अन्यस्य नाम दृश्यते । \nकृपया स्वस्य संरक्षिताऽवलिं पश्यतु ।",
+       "revdelete-no-change": "'''पà¥\82रà¥\8dवसà¥\82à¤\9aना :''' $2, $1 à¤\87तà¥\8dयसà¥\8dमिनà¥\8d à¤¯à¤¾à¤\9aितवसà¥\8dतà¥\82नि à¤ªà¥\82रà¥\8dवमेव विद्यन्ते ।",
+       "revdelete-concurrent-change": "$2 à¤¦à¤¿à¤¨à¤¾à¤\99à¥\8dà¤\95सà¥\8dय $1 à¤¸à¤®à¤¯à¤¸à¥\8dय à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¥\87षà¥\81 à¤¦à¥\8bषà¤\83 à¤¦à¥\83षà¥\8dà¤\9fà¤\83 à¥¤ à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¯à¤¦à¤¾ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤¸à¤®à¥\8dपादनà¤\82 à¤\95रà¥\8bति à¤¸à¥\8dम, à¤¤à¤¦à¤¾ à¤\85नà¥\8dय à¤\95à¥\8bऽपि à¤\85तà¥\8dर à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनमà¥\8d à¤\85à¤\95रà¥\8bतà¥\8d à¥¤ à¤\85तà¤\83 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनसà¥\8dय à¤\87तिहासà¥\87 à¤\85नà¥\8dयसà¥\8dय à¤¨à¤¾à¤® à¤¦à¥\83शà¥\8dयतà¥\87 à¥¤ \nà¤\95à¥\83पया à¤¸à¥\8dवसà¥\8dय à¤¸à¤\82रà¤\95à¥\8dषिताऽऽवलिà¤\82 à¤ªà¤¶à¥\8dयतà¥\81 à¥¤",
        "revdelete-only-restricted": "$2 दिनाङ्कस्य $1 समयस्य निगूढनकार्ये दोषः दृष्टः । भावान्/भवती दृश्यता-विकल्पे परिवर्तनं अकृत्वा प्रबन्धकेभ्यः एतत् परिवर्तनं निगूहितुं न शक्नोति ।",
        "revdelete-reason-dropdown": "* अपाकरणस्य सामान्यकारणानि\n** प्रतिकृत्यधिकारस्य उल्लङ्घनम्\n** अयोग्या टिप्पणी वैयक्तिकसूचनाधारः वा\n** अयोग्यं योजकनाम\n** हानिकारकसूचनाधारः",
        "revdelete-otherreason": "अपरं/अतिरिक्तं कारणम् :",
        "prefs-user-pages": "योजकपृष्ठानि",
        "prefs-personal": "योजकस्य विवरणम्",
        "prefs-rc": "सद्यो जातानि परिवर्तनानि",
-       "prefs-watchlist": "à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलिः",
-       "prefs-editwatchlist": "à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलिः सम्पाद्यताम्",
-       "prefs-editwatchlist-label": "सà¥\8dवसà¥\8dय à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाà¤\82 प्रविष्टयः सम्पाद्यन्ताम् :",
-       "prefs-editwatchlist-edit": "सà¥\8dवसà¥\8dय à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवसà¥\8dयाà¤\82 à¤ªà¥\8dरविषà¥\8dà¤\9fयà¤\83 à¤¦à¥\83ष्यन्ताम्, अपाक्रियन्तां च",
+       "prefs-watchlist": "निरà¥\80à¤\95à¥\8dषासà¥\82à¤\9aिः",
+       "prefs-editwatchlist": "निरà¥\80à¤\95à¥\8dषासà¥\82à¤\9aिः सम्पाद्यताम्",
+       "prefs-editwatchlist-label": "सà¥\8dवसà¥\8dय à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\8c प्रविष्टयः सम्पाद्यन्ताम् :",
+       "prefs-editwatchlist-edit": "सà¥\8dवसà¥\8dय à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवसà¥\8dयाà¤\82 à¤ªà¥\8dरविषà¥\8dà¤\9fयà¤\83 à¤¦à¥\83à¤्यन्ताम्, अपाक्रियन्तां च",
        "prefs-editwatchlist-raw": "अपक्वावेक्षणाऽऽवलिः सम्पाद्यताम्",
-       "prefs-editwatchlist-clear": "सà¥\8dवसà¥\8dय à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलिः रिक्तीक्रियताम्",
-       "prefs-watchlist-days": "à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाà¤\82 दर्शनियानि दिनानि :",
+       "prefs-editwatchlist-clear": "सà¥\8dवसà¥\8dय à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aिः रिक्तीक्रियताम्",
+       "prefs-watchlist-days": "निरà¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\8c दर्शनियानि दिनानि :",
        "prefs-watchlist-days-max": "$1 अधिकतम{{PLURAL:$1|दिनं|दिनानि}}",
-       "prefs-watchlist-edits": "à¤\85सà¥\8dयाà¤\82 à¤µà¤¿à¤¸à¥\8dतà¥\83त-à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाà¤\82 प्रदर्शयितुं महत्तमपरिवर्तनानां सङ्ख्या :",
+       "prefs-watchlist-edits": "à¤\85सà¥\8dयाà¤\82 à¤µà¤¿à¤¸à¥\8dतà¥\83त-निरà¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\8c प्रदर्शयितुं महत्तमपरिवर्तनानां सङ्ख्या :",
        "prefs-watchlist-edits-max": "अधिकतमसङ्ख्याः : १०००",
-       "prefs-watchlist-token": "à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाः प्रतीकः :",
+       "prefs-watchlist-token": "निरà¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\87ः प्रतीकः :",
        "prefs-misc": "विविधम्",
        "prefs-resetpass": "कूटशब्दः परिवर्त्यताम्",
-       "prefs-changeemail": "à¤\88-पत्रसङ्केतः परिवर्त्यताम्",
-       "prefs-setemail": "à¤\88-पत्रसङ्केतः लिख्यताम्",
-       "prefs-email": "à¤\88पतà¥\8dर-विकल्पाः",
+       "prefs-changeemail": "वि-पत्रसङ्केतः परिवर्त्यताम्",
+       "prefs-setemail": "वि-पत्रसङ्केतः लिख्यताम्",
+       "prefs-email": "वि-पतà¥\8dरविकल्पाः",
        "prefs-rendering": "स्वरूपम्",
        "saveprefs": "रक्ष्यताम्",
        "restoreprefs": "मूलव्यवस्थापनानुगुणं (default settings) सर्वे विकल्पाः भवन्तु (सर्वेषु विभागेषु)",
        "recentchangesdays-max": "$1 अधिकतम{{PLURAL:$1|दिनं|दिनानि}}",
        "recentchangescount": "फलकेषु सामान्यतया यानि परिवर्तनानि अभवन्, तेषां सङ्ख्या :",
        "prefs-help-recentchangescount": "अत्र नूतनपरिवर्तनानि, पृष्ठेतिहासः, संरक्षिताऽऽवल्यश्च अन्तर्भवन्ति ।",
-       "prefs-help-watchlist-token2": "भवतà¤\83/भवतà¥\8dयाà¤\83 à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाà¤\83 à¤\9cालà¤\95रसà¥\8dय (web feed) à¤\97à¥\81पà¥\8dतà¤\95à¥\81à¤\9eà¥\8dà¤\9aिà¤\95ा à¤\85सà¥\8dतà¥\8dयà¥\87षा à¥¤ \nà¤\8fषा à¤\95à¥\81à¤\9eà¥\8dà¤\9aिà¤\95ा à¤¯à¤¸à¥\8dय à¤ªà¤¾à¤°à¥\8dशà¥\8dवà¥\87 à¤­à¤µà¤¿à¤·à¥\8dयति, à¤¸à¤\83 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलिà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤ªà¥\8dरभविषà¥\8dयति à¥¤ à¤\85तà¤\83 à¤\8fनाà¤\82 गुप्ततया स्थाप्यताम् ।\n[[Special:ResetTokens|गुप्तकुञ्चिकां परिवर्तयितुम् अत्र नुद्यताम् ।]]।",
+       "prefs-help-watchlist-token2": "भवतà¤\83/भवतà¥\8dयाà¤\83 à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\87à¤\83 à¤\9cालà¤\95रसà¥\8dय (web feed) à¤\97à¥\81पà¥\8dतà¤\95à¥\81à¤\9eà¥\8dà¤\9aिà¤\95ा à¤\85सà¥\8dतà¥\8dयà¥\87षा à¥¤ \nà¤\8fषा à¤\95à¥\81à¤\9eà¥\8dà¤\9aिà¤\95ा à¤¯à¤¸à¥\8dय à¤ªà¤¾à¤°à¥\8dशà¥\8dवà¥\87 à¤­à¤µà¤¿à¤·à¥\8dयति, à¤¸à¤\83 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aिà¤\82 à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤ªà¥\8dरभविषà¥\8dयति à¥¤ à¤\85तà¤\83 à¤\8fषा गुप्ततया स्थाप्यताम् ।\n[[Special:ResetTokens|गुप्तकुञ्चिकां परिवर्तयितुम् अत्र नुद्यताम् ।]]।",
        "savedprefs": "भवतः/भवत्याः इष्टतमानि रक्षितानि ।",
        "timezonelegend": "समयवलयः (time zone) :",
        "localtime": "स्थानीयसमयः :",
        "timezoneregion-europe": "यूरोप",
        "timezoneregion-indian": "हिन्दमहासागरः",
        "timezoneregion-pacific": "प्रशान्तमहासागरः",
-       "allowemail": "à¤\85नà¥\8dययà¥\8bà¤\9cà¤\95à¥\88à¤\83 à¤ªà¥\8dरà¥\87षितà¥\87भà¥\8dयà¤\83 à¤\88-पत्रेभ्यः अनुमतिं ददातु",
+       "allowemail": "à¤\85नà¥\8dययà¥\8bà¤\9cà¤\95à¥\88à¤\83 à¤ªà¥\8dरà¥\87षितà¥\87भà¥\8dयà¤\83 à¤µà¤¿-पत्रेभ्यः अनुमतिं ददातु",
        "prefs-searchoptions": "अन्विष्यताम्",
        "prefs-namespaces": "नामाकाशाः",
        "default": "यदभावे",
        "prefs-custom-js": "स्वानुकूलसम्पादितं JavaScript",
        "prefs-common-css-js": "सर्वासां त्वचां (of skins) कृते CSS/JavaScript:",
        "prefs-reset-intro": "भवान्/भवती अस्य पृष्ठस्य साहाय्येन स्वस्य इष्टतमविकल्पान् मूलविकि-विकल्पसदृशं स्थापयितुं (कर्तुं) शक्नोति ।\nपरन्तु ततः भवान्/भवती पूर्ववत् स्थितिं प्राप्तुं न शक्ष्यति ।",
-       "prefs-emailconfirm-label": "à¤\88-पत्रं दृढीक्रियताम् :",
-       "youremail": "à¤\88-पत्रसङ्केतः :",
+       "prefs-emailconfirm-label": "वि-पत्रं दृढीक्रियताम् :",
+       "youremail": "वि-पत्रसङ्केतः :",
        "username": "{{GENDER:$1|योजकनाम}} :",
        "prefs-memberingroups": "{{PLURAL:$1|समूहस्य|समूहानां}} {{GENDER:$2|योजकः/योजकाः}} :",
        "prefs-registration": "पञ्जीकरणकालः :",
        "yourrealname": "वास्तविकनाम :",
        "yourlanguage": "भाषा :",
        "yourvariant": "भाषायाः सामग्रीवैविध्यम् :",
-       "prefs-help-variant": "एतस्य विकि-जालस्य पृष्ठगतविषयेषु भवता/भवत्या इष्टः प्रकारः वर्णविन्यासो वा प्रदर्शितुम् ।",
+       "prefs-help-variant": "à¤\8fतसà¥\8dय à¤µà¤¿à¤\95ि-à¤\9cालसà¥\8dय à¤ªà¥\83षà¥\8dठà¤\97तविषयà¥\87षà¥\81 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤\87षà¥\8dà¤\9fà¤\83 à¤ªà¥\8dरà¤\95ारà¤\83 à¤µà¤°à¥\8dणविनà¥\8dयासà¥\8b à¤µà¤¾ à¤ªà¥\8dरदरà¥\8dशयितà¥\81मà¥\8d à¥¤",
        "yournick": "नूतनहस्ताक्षरम् :",
        "prefs-help-signature": "सम्भाषणपृष्ठेषु टिप्पणीं लिखित्वा अन्ते \"<nowiki>~~~~</nowiki>\" लिखतु । अनेन स्वस्य हस्ताक्षरेण सह टिप्पणीलेखनकालस्यापि उल्लेखः भविष्यति ।",
        "badsig": "प्रारूपरहितं (raw) अयोग्यं हस्ताक्षरम् ।\nHTML चिह्नानि पश्यतु ।",
        "gender-male": "सः विकि-पृष्ठानि सम्पादयति ।",
        "gender-female": "सा विकि-पृष्ठानि सम्पादयति ।",
        "prefs-help-gender": "एतत् विवरणम् ऐच्छिकम् अस्ति । एतस्मिन् तन्त्रांशे\nलिङ्गाधारेण भवतः/भवत्याः सम्बोधनार्थम् अस्योपयोगः भवति ।\nएतत् विवरणं सार्वजनिकं भविष्यति ।",
-       "email": "à¤\88-पत्रम्",
+       "email": "वि-पत्रम्",
        "prefs-help-realname": "वास्तविकनाम ऐच्छकम् अस्ति । भवान्/भवती एनं विकल्पं समर्थयति चेत्, भवतः/भवत्याः योगदानश्रेयस्य उल्लेखसमये अस्य उपयोगः भविष्यति ।",
-       "prefs-help-email": "à¤\88-पत्रसङ्केतः अनिवार्यः नास्ति । किन्तु कूटशब्दः विस्मर्यते चेत्, तस्य परिवर्तनाय आवश्यकः भवति ।",
-       "prefs-help-email-others": "यà¥\8bà¤\9cà¤\95पà¥\83षà¥\8dठ-समà¥\8dभाषणपà¥\83षà¥\8dठयà¥\8bà¤\83 à¤®à¤¾à¤§à¥\8dयमà¥\87न, à¤\88-पतà¥\8dरमाधà¥\8dयमà¥\87न à¤µà¤¾ à¤\85नà¥\8dयà¥\87 à¤¯à¥\8bà¤\9cà¤\95ाà¤\83 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¸à¤®à¥\8dपरà¥\8dà¤\95à¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\81यà¥\81à¤\83 à¥¤\nसमà¥\8dपरà¥\8dà¤\95à¥\87ऽसà¥\8dमिनà¥\8d à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤\88-पत्रसङ्केतम् अन्ययोजकाः ज्ञातुं न प्रभवन्ति ।",
-       "prefs-help-email-required": "à¤\88-पत्रसङ्केतः अनिवार्यः ।",
+       "prefs-help-email": "वि-पत्रसङ्केतः अनिवार्यः नास्ति । किन्तु कूटशब्दः विस्मर्यते चेत्, तस्य परिवर्तनाय आवश्यकः भवति ।",
+       "prefs-help-email-others": "यà¥\8bà¤\9cà¤\95पà¥\83षà¥\8dठ-समà¥\8dभाषणपà¥\83षà¥\8dठयà¥\8bà¤\83 à¤®à¤¾à¤§à¥\8dयमà¥\87न, à¤µà¤¿-पतà¥\8dरमाधà¥\8dयमà¥\87न à¤µà¤¾ à¤\85नà¥\8dयà¥\87 à¤¯à¥\8bà¤\9cà¤\95ाà¤\83 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¸à¤®à¥\8dपरà¥\8dà¤\95à¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\81यà¥\81à¤\83 à¥¤\nसमà¥\8dपरà¥\8dà¤\95à¥\87ऽसà¥\8dमिनà¥\8d à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤µà¤¿-पत्रसङ्केतम् अन्ययोजकाः ज्ञातुं न प्रभवन्ति ।",
+       "prefs-help-email-required": "वि-पत्रसङ्केतः अनिवार्यः ।",
        "prefs-info": "मूलसूचना",
-       "prefs-i18n": "अन्ताराष्ट्रिकरणम्",
+       "prefs-i18n": "à¤\85नà¥\8dताराषà¥\8dà¤\9fà¥\8dरियà¤\95रणमà¥\8d",
        "prefs-signature": "हस्ताक्षरम्",
        "prefs-dateformat": "दिनाङ्कस्य प्रारूपः",
        "prefs-timeoffset": "समयान्तरम्",
        "prefs-tokenwatchlist": "स्तोकम् (token)",
        "prefs-diffs": "अन्तरम्",
        "prefs-help-prefershttps": "आगामिप्रेवेशकाले एतत् परिवर्तनं सक्रियं भवष्यति ।",
-       "prefswarning-warning": "सà¥\8dवसà¥\8dय à¤\87षà¥\8dà¤\9fतमानि-पà¥\81षà¥\8dठà¥\87 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤¯à¤¤à¥\8d, à¤ªà¤°à¤¿à¤µà¤°à¥\8dतà¤\82 à¤\95à¥\83तà¤\82, à¤¤à¤¤à¥\8d à¤\8fतावता à¤¨ à¤°à¤\95à¥\8dषितमà¥\8d à¥¤\n\"$1\" à¤\8fततà¥\8d à¤\85नà¥\81दितà¥\8dवा यदि भवान्/भवती एतत् पृष्ठं त्यक्ष्यति, तर्हि परिवर्तनं रक्षितं न भविष्यति ।",
-       "prefs-tabs-navigation-hint": "परामरà¥\8dशà¤\83 : à¤ªà¥\8dलवनयà¥\8bà¤\83 (tabs) à¤®à¤§à¥\8dयà¥\87 à¤\97मनाà¤\97मनà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤µà¤¾à¤®à¤¤à¥\80रà¤\95à¥\81डà¥\8dमलसà¥\8dय, à¤¦à¤\95à¥\8dषिणतà¥\80रà¤\95à¥\81ण्मलस्य च उपयोगं कर्तुं शक्नोति ।",
-       "email-address-validity-valid": "à¤\88-पत्रसङ्केतः मान्यः अस्ति इति प्रतीयते",
-       "email-address-validity-invalid": "मानà¥\8dयà¤\83 à¤\88-पत्रसङ्केतः लिख्यताम्",
+       "prefswarning-warning": "सà¥\8dवसà¥\8dय à¤\87षà¥\8dà¤\9fतमानि-पà¥\81षà¥\8dठà¥\87 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤¯à¤¤à¥\8d, à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¤\82 à¤\95à¥\83तà¤\82, à¤¤à¤¤à¥\8d à¤\8fतावता à¤¨ à¤°à¤\95à¥\8dषितमà¥\8d à¥¤\n\"$1\" à¤\8fततà¥\8d à¤\85नà¥\82दà¥\8dय यदि भवान्/भवती एतत् पृष्ठं त्यक्ष्यति, तर्हि परिवर्तनं रक्षितं न भविष्यति ।",
+       "prefs-tabs-navigation-hint": "परामरà¥\8dशà¤\83 : à¤ªà¥\8dलवनयà¥\8bà¤\83 (tabs) à¤®à¤§à¥\8dयà¥\87 à¤\97मनाà¤\97मनà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤µà¤¾à¤®à¤¤à¥\80रà¤\95à¥\81डà¥\8dमलसà¥\8dय, à¤¦à¤\95à¥\8dषिणतà¥\80रà¤\95à¥\81ड्मलस्य च उपयोगं कर्तुं शक्नोति ।",
+       "email-address-validity-valid": "वि-पत्रसङ्केतः मान्यः अस्ति इति प्रतीयते",
+       "email-address-validity-invalid": "मानà¥\8dयà¤\83 à¤µà¤¿-पत्रसङ्केतः लिख्यताम्",
        "userrights": "योजकाधिकारस्य प्रबन्धनम्",
        "userrights-lookup-user": "योजकसमूहस्य प्रबन्धनं करोतु",
        "userrights-user-editname": "प्रयोक्तृनाम दीयताम्",
        "userrights-nologin": "योजकेभ्यः अधिकारं दातुं प्रबन्धकत्वेन प्रवेशः आवश्यकः । [[Special:UserLogin|प्रविश्यताम्]]",
        "userrights-notallowed": "योजकेभ्यः अधिकारं दातुं, योजकान् अपाकर्तुं च ते अनुमतिः नास्ति ।",
        "userrights-changeable-col": "परिवर्तनार्हाः समूहाः",
-       "userrights-unchangeable-col": "परिवरà¥\8dतनम् अनर्हाः समूहाः",
-       "userrights-conflict": "सदस्याधिकारस्य परिवर्तनेषु अन्तर्विरोधः अस्ति ! कृपया स्वकृतानि परिवर्तनानि पुनरवलोक्य संरक्ष्यताम् ।",
+       "userrights-unchangeable-col": "परिवरà¥\8dतयितà¥\81म् अनर्हाः समूहाः",
+       "userrights-conflict": "सदसà¥\8dयाधिà¤\95ारसà¥\8dय à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¥\87षà¥\81 à¤\85नà¥\8dतरà¥\8dविरà¥\8bधà¤\83 à¤\85सà¥\8dति ! à¤\95à¥\83पया à¤¸à¥\8dवà¤\95à¥\83तानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤ªà¥\81नरवलà¥\8bà¤\95à¥\8dय à¤¸à¤\82रà¤\95à¥\8dषà¥\8dयनà¥\8dतामà¥\8d à¥¤",
        "userrights-removed-self": "भवता/भवत्या सफलतया स्वाधिकाराः अपाकृताः । अतः भवान्/भवती एतत् पृष्ठं द्रष्टुं न प्रभवति ।",
        "group": "समूहः :",
        "group-user": "योजकाः",
        "group-sysop": "प्रबन्धकाः",
        "group-bureaucrat": "अधिकारिणः",
        "group-suppress": "अलक्ष्यम्",
-       "group-all": "(सरà¥\8dवà¥\87)",
+       "group-all": "(सरà¥\8dवमà¥\8d)",
        "group-user-member": "{{GENDER:$1|योजकः}}",
        "group-autoconfirmed-member": "{{GENDER:$1|स्वदृढितयोजकः}}",
        "group-bot-member": "{{GENDER:$1|बॉट्}}",
        "grouppage-suppress": "{{ns:project}}:अलक्ष्यम्",
        "right-read": "पृष्ठानि पठ्यन्ताम्",
        "right-edit": "पृष्ठानि सम्पाद्यन्ताम्",
-       "right-createpage": "पà¥\83षà¥\8dठानि à¤¨à¤¿à¤°à¥\8dमियन्ताम् ।(येषां सम्भाषणपृष्ठं न स्यात् ।)",
-       "right-createtalk": "समà¥\8dभाषणपà¥\83षà¥\8dठानि à¤¨à¤¿à¤°à¥\8dमियन्ताम्",
+       "right-createpage": "पà¥\83षà¥\8dठानि à¤¨à¤¿à¤°à¥\8dमà¥\80यन्ताम् ।(येषां सम्भाषणपृष्ठं न स्यात् ।)",
+       "right-createtalk": "समà¥\8dभाषणपà¥\83षà¥\8dठानि à¤¨à¤¿à¤°à¥\8dमà¥\80यन्ताम्",
        "right-createaccount": "नूतनप्रयोक्तृवृत्तान्तं रच्यन्ताम्",
        "right-minoredit": "लघुसम्पादनत्वेन अङ्कितं करोतु",
-       "right-move": "पà¥\83षà¥\8dठà¤\82 à¤\9aालà¥\8dयताम्",
+       "right-move": "शà¥\80रà¥\8dषà¤\95ाणि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतà¥\8dयनà¥\8dताम्",
        "right-move-subpages": "उपपृष्ठैः सह पृष्ठं चालयतु",
-       "right-move-rootuserpages": "मà¥\82लयà¥\8bà¤\9cà¤\95पà¥\81ष्ठानि चाल्यन्ताम्",
+       "right-move-rootuserpages": "मà¥\82लयà¥\8bà¤\9cà¤\95पà¥\83ष्ठानि चाल्यन्ताम्",
        "right-move-categorypages": "वर्गपृष्ठानि चाल्यन्ताम्",
        "right-movefile": "सञ्चिकाः चाल्यन्ताम्",
        "right-suppressredirect": "पृष्ठं यदा चालयति, तदा मूलपृष्ठात् प्रतिप्रेषणं मास्तु ।",
        "right-autoconfirmed": "सार्वसङ्केत(IP)आधारितेन मूल्यनियन्त्रणेन सह अस्य सम्बन्धः नास्ति",
        "right-bot": "स्वसञ्चालितप्रणालित्वेन एतां स्वीक्रियताम्",
        "right-nominornewtalk": "सम्भाषणपृष्ठस्य लघुपरिवर्तनानां विषये मा सूच्यताम्",
-       "right-apihighlimits": "विदत्तसम्पर्कानुरूपविधेः (API) प्रश्नेषु उन्नतसीमाः उपयुज्यताम्",
+       "right-apihighlimits": "विदतà¥\8dतसमà¥\8dपरà¥\8dà¤\95ानà¥\81रà¥\82पविधà¥\87à¤\83 (API) à¤ªà¥\8dरशà¥\8dनà¥\87षà¥\81 à¤\89नà¥\8dनतसà¥\80माà¤\83 à¤\89पयà¥\81à¤\9cà¥\8dयनà¥\8dतामà¥\8d",
        "right-writeapi": "योग्यस्य विदत्तसम्पर्कानुरूपविधेः (API) उपयोगं करोतु",
        "right-delete": "पृष्ठानि अपाक्रियन्ताम्",
-       "right-bigdelete": "दीर्घेतिहासयुक्तपृष्ठानि अपाक्रियताम्",
+       "right-bigdelete": "दà¥\80रà¥\8dà¤\98à¥\87तिहासयà¥\81à¤\95à¥\8dतपà¥\83षà¥\8dठानि à¤\85पाà¤\95à¥\8dरियनà¥\8dतामà¥\8d",
        "right-deletelogentry": "योग्यसंरक्षिताऽऽवल्याः प्रविष्टयः (entries) अपाक्रियन्ताम्, पुनः स्थाप्यन्तां च",
        "right-deleterevision": "योग्यपृष्ठस्य संस्करणानि अपाक्रियन्ताम्",
        "right-deletedhistory": "अपाकृत-प्रविष्टीनाम् (Entry) इतिहासं पश्यतु (तत्सम्बद्धपाठं विना)",
        "right-deletedtext": "अपाकृतपाठस्य, अपाकृतसंस्करणस्य च परिवर्तनानि च पश्यतु",
        "right-browsearchive": "अपाकृतपृष्ठानि अन्विष्यन्ताम्",
        "right-undelete": "इदं पृष्ठं न अपाक्रियताम्",
-       "right-suppressrevision": "प्रबन्धकैः निगूहितानि, सम्मुखं स्थापितानि च विशिष्टसंस्करणानि पुनः पश्यतु, पुनस्थापयतु च",
-       "right-viewsuppressed": "à¤\85नà¥\8dययà¥\8bà¤\9cà¤\95à¥\88à¤\83 à¤\97à¥\82हितà¤\82 à¤¸à¤\82सà¥\8dà¤\95à¥\83रणà¤\82 à¤¦à¥\83ष्यताम्",
+       "right-suppressrevision": "पà¥\8dरबनà¥\8dधà¤\95à¥\88à¤\83 à¤¨à¤¿à¤\97à¥\82हितानि, à¤¸à¤®à¥\8dमà¥\81à¤\96à¤\82 à¤¸à¥\8dथापितानि à¤\9a à¤µà¤¿à¤¶à¤¿à¤·à¥\8dà¤\9fसà¤\82सà¥\8dà¤\95रणानि à¤ªà¥\81नà¤\83 à¤ªà¤¶à¥\8dयतà¥\81, à¤ªà¥\81नसà¥\8dसà¥\8dथापयतà¥\81 à¤\9a",
+       "right-viewsuppressed": "à¤\85नà¥\8dययà¥\8bà¤\9cà¤\95à¥\88à¤\83 à¤\97à¥\82हितà¤\82 à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 à¤¦à¥\83श्यताम्",
        "right-suppressionlog": "वैयक्तिकसंस्करणानि दृश्यन्ताम्",
        "right-block": "अस्य योजकस्य सम्पादनानि अवरुध्यन्ताम्",
-       "right-blockemail": "à¤\88-पतà¥\8dरपà¥\8dरà¥\87षयितà¥\81मà¥\8d à¤\8fनà¤\82 à¤¯à¥\8bà¤\9cà¤\95मà¥\8d à¤\85वरà¥\81दà¥\8dधà¥\8dयनà¥\8dताम्",
+       "right-blockemail": "वि-पतà¥\8dरपà¥\8dरà¥\87षयितà¥\81मà¥\8d à¤\8fषà¤\83 à¤¯à¥\8bà¤\9cà¤\95à¤\83 à¤\85वरà¥\81धà¥\8dयताम्",
        "right-hideuser": "प्रयोक्तृनाम अवरुध्यताम्, तत् अन्ययोजकेभ्यः गोप्यतां च",
-       "right-ipblock-exempt": "स्वयम् अवरोधितं, समूहावरोधिम् अन्तर्जालसङ्केतम् (IP) अवगण्य अग्रे गच्छतु",
+       "right-ipblock-exempt": "सà¥\8dवयमà¥\8d à¤\85वरà¥\8bधितà¤\82, à¤¸à¤®à¥\82हावरà¥\8bधितमà¥\8d à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\99à¥\8dà¤\95à¥\87तमà¥\8d (IP) à¤\85वà¤\97णà¥\8dय à¤\85à¤\97à¥\8dरà¥\87 à¤\97à¤\9aà¥\8dà¤\9bतà¥\81",
        "right-proxyunbannable": "प्रतिनिधीनां (of prxies) स्वयम्-अवरोधान् अवगण्य अग्रे गच्छतु",
-       "right-unblockself": "सà¥\8dवमà¥\8d à¤\85नवरुध्यताम्",
-       "right-protect": "सुरक्षास्तरं परिवर्त्यतां, क्रमबद्धानि सुरक्षितपृष्ठानि सम्पाद्यतां च",
+       "right-unblockself": "सà¥\8dवà¤\82 à¤®à¤¾ à¤\85वरुध्यताम्",
+       "right-protect": "सà¥\81रà¤\95à¥\8dषासà¥\8dतरà¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतà¥\8dयताà¤\82, à¤\95à¥\8dरमबदà¥\8dधानि à¤¸à¥\81रà¤\95à¥\8dषितपà¥\83षà¥\8dठानि à¤¸à¤®à¥\8dपादà¥\8dयनà¥\8dताà¤\82 à¤\9a",
        "right-editprotected": "\"{{int:protect-level-sysop}}\"-त्वेन संरक्षितानि पृष्ठानि सम्पाद्यन्ताम्",
        "right-editsemiprotected": "\"{{int:protect-level-autoconfirmed}}\"-त्वेन संरक्षितानि पृष्ठानि सम्पाद्यन्ताम्",
        "right-editcontentmodel": "एकस्य पृष्ठस्य विषयोदाहरणं सम्पाद्यताम्",
        "right-edituserjs": "अन्यस्य योजकस्य JavaScript सञ्चिकाः सम्पाद्यन्ताम्",
        "right-editmyusercss": "स्वस्य CSS सञ्चिकाः सम्पाद्यन्ताम्",
        "right-editmyuserjs": "स्वस्य JavaScript सञ्चिकाः सम्पाद्यन्ताम्",
-       "right-viewmywatchlist": "सà¥\8dवसà¥\8dय à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलिà¤\83 à¤¦à¥\83ष्यताम्",
-       "right-editmywatchlist": "सà¥\8dवसà¥\8dय à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलिà¤\83 à¤¸à¤®à¥\8dपादà¥\8dयतामà¥\8d à¥¤ à¤\85तà¥\8dर à¤§à¥\8dयातवà¥\8dयà¤\82 à¤¯à¤¤à¥\8d, à¤µà¤¿à¤¨à¤¾ à¤\85धिà¤\95ारà¥\87ण à¤\85तà¥\8dर à¤\85नà¥\8dयपà¥\81ष्ठानि योजयितुम् अवसरः अस्ति ।",
-       "right-viewmyprivateinfo": "सà¥\8dवसà¥\8dय à¤µà¥\8dयà¤\95à¥\8dतिà¤\97तसà¥\82à¤\9aनाà¤\83 à¤¦à¥\83शà¥\8dयनà¥\8dतामà¥\8d (à¤\89दा. à¤\88-पत्रसन्देशः, वास्तविकनाम)",
-       "right-editmyprivateinfo": "सà¥\8dवसà¥\8dय à¤µà¥\8dयà¤\95à¥\8dतिà¤\97तसà¥\82à¤\9aनाà¤\83 à¤¸à¤®à¥\8dपादà¥\8dयनà¥\8dतामà¥\8d (à¤\89दा. à¤\88-पत्रसन्देशः, वास्तविकनाम)",
+       "right-viewmywatchlist": "सà¥\8dवसà¥\8dय à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aिà¤\83 à¤¦à¥\83श्यताम्",
+       "right-editmywatchlist": "सà¥\8dवसà¥\8dय à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aिà¤\83 à¤¸à¤®à¥\8dपादà¥\8dयतामà¥\8d à¥¤ à¤\85तà¥\8dर à¤§à¥\8dयातवà¥\8dयà¤\82 à¤¯à¤¤à¥\8d, à¤µà¤¿à¤¨à¤¾ à¤\85धिà¤\95ारà¥\87ण à¤\85तà¥\8dर à¤\85नà¥\8dयपà¥\83ष्ठानि योजयितुम् अवसरः अस्ति ।",
+       "right-viewmyprivateinfo": "सà¥\8dवसà¥\8dय à¤µà¥\88यà¤\95à¥\8dतिà¤\95सà¥\82à¤\9aनाà¤\83 à¤¦à¥\83शà¥\8dयनà¥\8dतामà¥\8d (à¤\89दा. à¤µà¤¿-पत्रसन्देशः, वास्तविकनाम)",
+       "right-editmyprivateinfo": "सà¥\8dवसà¥\8dय à¤µà¥\88यà¤\95à¥\8dतिà¤\95सà¥\82à¤\9aनाà¤\83 à¤¸à¤®à¥\8dपादà¥\8dयनà¥\8dतामà¥\8d (à¤\89दा. à¤µà¤¿-पत्रसन्देशः, वास्तविकनाम)",
        "right-editmyoptions": "स्वस्य इष्टतमानि सम्पाद्यन्ताम्",
        "right-rollback": "कस्मिंश्चित् पृष्ठे येन अन्तिमयोजकेन परिवर्तनं कृतं, तत् परिवर्तनं शीर्घ्रं पूर्ववत् करोतु",
        "right-markbotedits": "पूर्ववत् यानि सम्पादनानि कृतानि, तानि बॉट्-सम्पादनत्वेन अङ्कितं करोतु",
        "right-autopatrol": "स्वस्य सम्पादनानि निरीक्षितत्वेन अङ्क्यन्ताम्",
        "right-patrolmarks": "नूतनपरिवर्तनेषु निरीक्षित-अङ्कनं दृश्यताम्",
        "right-unwatchedpages": "अदृष्टपृष्टानाम् आवलिः दृश्यताम्",
-       "right-mergehistory": "पà¥\83षà¥\8dठानामà¥\8d à¤\87तिहासमà¥\8d विलीयताम्",
+       "right-mergehistory": "पà¥\83षà¥\8dठानामà¥\8d à¤\87तिहासà¤\83 विलीयताम्",
        "right-userrights": "सर्वयोजकाधिकारः सम्पाद्यताम्",
        "right-userrights-interwiki": "अन्यविकि-जालस्थानानां योजकाधिकारः सम्पाद्यताम्",
        "right-siteadmin": "दत्तांशनिधिं किलतु, अकिलितं च करोतु",
        "right-override-export-depth": "यानि पुष्ठानि पञ्चस्तरपर्यन्तं संलग्नानि सन्ति, तेषां सर्वेषां निर्यातं करोतु ।",
-       "right-sendemail": "à¤\85नà¥\8dययà¥\8bà¤\9cà¤\95à¥\87भà¥\8dयà¤\83 à¤\88-पत्रं प्रेषयतु",
+       "right-sendemail": "à¤\85नà¥\8dययà¥\8bà¤\9cà¤\95à¥\87भà¥\8dयà¤\83 à¤µà¤¿-पत्रं प्रेषयतु",
        "right-passwordreset": "निकुञ्चपुनारचितानां विद्युन्मानपत्राणाम् अवलोकनम् ।",
-       "right-managechangetags": "दत्तांशात् [[Special:Tags|चिह्नानि]] निर्मियन्ताम्, अपाक्रियन्तां च",
+       "right-managechangetags": "दत्तांशात् [[Special:Tags|चिह्नानि]] निर्मीयन्ताम्, अपाक्रियन्तां च",
+       "right-applychangetags": "[[Special:Tags|चिह्नानि]] एकस्य परिवर्तनेन सह प्रयुञ्जताम् ।",
+       "right-changetags": "स्वतन्त्रसंस्करणे, प्रवेशावल्यां च [[Special:Tags|चिह्नानि]] ऐच्छितरीत्या स्थापयतु, निष्कासयतु च",
        "newuserlogpage": "प्रयोक्तृ-सृजन-सूचिका",
        "newuserlogpagetext": "अयं योजकनिर्माणास्य प्रवेशः ।",
        "rightslog": "प्रयोक्तृ-अधिकार-सूचिका",
        "rightslogtext": "अयं योजकाधिकारस्य परिवर्तनकुञ्चः ।",
-       "action-read": "à¤\8fततà¥\8dपà¥\81à¤\9fà¤\82 à¤ªà¤ à¤¤à¥\81 à¥¤",
+       "action-read": "à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤ªà¤ à¥\8dयतामà¥\8d",
        "action-edit": "इदं पृष्ठं सम्पाद्यताम्",
        "action-createpage": "पुटानि सृजतु ।",
        "action-createtalk": "चर्चापुटानि सृजतु ।",
        "action-upload_by_url": "अन्तर्जालस्थानतः एतां सञ्चिकाम् उत्तारयतु ।",
        "action-writeapi": "श्वेतं API उपयोगः ।",
        "action-delete": "एतत्पुटं अपमर्जयतु ।",
-       "action-deleterevision": "à¤\8fतदवतरणमà¥\8d à¤\85पमरà¥\8dà¤\9cतà¥\81 à¥¤",
+       "action-deleterevision": "à¤\8fततà¥\8d à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d à¤\85पाà¤\95à¥\8dरियतामà¥\8d",
        "action-deletedhistory": "अस्य पुटस्य अपमर्जितेतिहासम् अवलोकयतु ।",
        "action-browsearchive": "अपमर्जितपुटानि अन्विषतु ।",
        "action-undelete": "एतत्पुटम् अनपमर्जयतु ।",
        "action-block": "अन्ययोजकान् सम्पादनेन अवरोधतु ।",
        "action-protect": "अस्य पुटस्य सुरक्षास्तरं परिवर्तयतु ।",
        "action-rollback": "अन्तिमयोजकस्य सम्पादनं शीघ्रं प्रचालयतु यः निर्दिष्टपुटं सम्पादितवान् ।",
-       "action-import": "à¤\85नà¥\8dयविà¤\95ितà¤\83 à¤\8fततà¥\8dपà¥\81à¤\9fमà¥\8d à¤\86यातयतà¥\81 à¥¤",
-       "action-importupload": "à¤\89तà¥\8dतारितसà¤\9eà¥\8dà¤\9aिà¤\95ातà¤\83 à¤ªà¥\81à¤\9fानि à¤\86यातानि à¤\95रà¥\8bतà¥\81 à¥¤",
+       "action-import": "à¤\85नà¥\8dयसà¥\8dमातà¥\8d à¤µà¤¿à¤\95ि-à¤\9cालसà¥\8dथानातà¥\8d à¤ªà¥\83षà¥\8dठानि à¤\86यातà¤\82 à¤\95रà¥\8bतà¥\81",
+       "action-importupload": "à¤\89पारà¥\8bहिताभà¥\8dयà¤\83 (upload) à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ाभà¥\8dयà¤\83 à¤ªà¥\83षà¥\8dठानि à¤\86यातà¤\82 à¤\95रà¥\8bतà¥\81",
        "action-patrol": "अन्येषां सम्पादनम् आरक्षितमिव अङ्कयतु ।",
        "action-autopatrol": "भवतः सम्पादनम् आरक्षितम् इति अङ्कयतु ।",
        "action-unwatchedpages": "अपरीक्षितपुटानाम् आवलीम् अवलोकयतु ।",
        "action-userrights": "सर्वयोजकाधिकारं सम्पादयतु ।",
        "action-userrights-interwiki": "योजकाधिकारान् अन्यविकिषु सम्पादयतु ।",
        "action-siteadmin": "पाठमूलस्य निशेधनम् अनिशेधनं च ।",
-       "action-sendemail": "विद्युन्मानपत्राणि प्रेषयतु ।",
+       "action-sendemail": "वि-पत्राणि प्रेषयतु ।",
+       "action-editmywatchlist": "स्वस्य निरीक्षासूचिः दृश्यताम्",
+       "action-viewmywatchlist": "स्वस्य निरीक्षासूचिः दृश्यताम्",
+       "action-viewmyprivateinfo": "स्वस्य व्यक्तिगसूचना दृश्यताम्",
+       "action-editmyprivateinfo": "स्वस्य व्यक्तिगतसूचना सम्पाद्यताम्",
+       "action-editcontentmodel": "पृष्ठस्य विषयवस्तोः प्रारूपं सम्पाद्यताम्",
+       "action-managechangetags": "दत्तांशात् चिह्नानि अपाक्रियतां, निर्मियन्तां च",
+       "action-applychangetags": "स्वपरिवत्नैः सह चिह्नानि उपयुज्यताम्",
+       "action-changetags": "स्वतन्त्रसंस्करणे, प्रवेशावल्यां च ऐच्छितरीत्या स्थापयतु, निष्कासयतु च",
        "nchanges": "$1 {{PLURAL:$1|परिवर्तनम्|परिवर्तनानि}}",
+       "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|तः अन्तिमम् अभ्यागमनम्}}",
        "enhancedrc-history": "इतिहासः",
        "recentchanges": "नूतनपरिवर्तनानि",
        "recentchanges-legend": "सद्यो जातानां परिवर्तनानां विकल्पाः",
        "recentchanges-summary": "अस्मिन् विकि-प्रकल्पे सद्यो जातानि परिवर्तनानि अत्र दृश्यन्ताम् ।",
+       "recentchanges-noresult": "ईप्सितायां समयावधौ परिवर्तनानि न सन्ति",
        "recentchanges-feed-description": "अस्मिन् विकि-प्रकल्पे सद्यो जातानि परिवर्तनानि दर्श्यन्ताम्",
        "recentchanges-label-newpage": "अनेन सम्पादनेन नूतनपृष्ठस्य रचना अभूत् ।",
        "recentchanges-label-minor": "इदं लघु सम्पादनम्",
        "recentchanges-label-plusminus": "पृष्ठस्य आकारः एतावद्भिः बैट्स्-संख्याभिः परिवर्तितः",
        "recentchanges-legend-heading": "'''विकल्पविषयकम्'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|अत्र नूतनपृष्ठानाम् आवलिः]] अपि दृश्यताम्)",
-       "rcnotefrom": "<strong>$2</strong> तः आरभ्य (<strong>$1</strong> पर्यन्तं) जातानि परिवर्तनानि अधः प्रदर्शितानि ।",
+       "rcnotefrom": "<strong>$3, $4</strong> तः आरभ्य (<strong>$1</strong> पर्यन्तं) जातानि {{PLURAL:$5|is the change|परिवर्तनानि}} अधः प्रदर्शितानि ।",
        "rclistfrom": "$3 $2 पश्चात् जातानि नूतनानि परिवर्तनानि दृश्यन्ताम्",
        "rcshowhideminor": "$1 लघुसम्पादनानि",
        "rcshowhideminor-show": "दृश्यताम्",
        "recentchangeslinked-feed": "पृष्ठ-सम्बन्धितानि परिवर्तनानि",
        "recentchangeslinked-toolbox": "पृष्ठसम्बद्धानि परिवर्तनानि",
        "recentchangeslinked-title": "\"$1\" इत्यस्मिन् जातानि परिवर्तनानि",
-       "recentchangeslinked-summary": "विशà¥\87षपà¥\83षà¥\8dठà¥\87षà¥\81 à¤µà¤°à¥\8dà¤\97ानà¥\8dतरà¥\8dà¤\97तपà¥\83षà¥\8dठà¥\87षà¥\81 à¤µà¤¾ à¤¸à¤¦à¥\8dयà¥\8b à¤\9cातानाà¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानामà¥\8d à¤\8fषा à¤\86वलिà¤\83 à¥¤\n\n[[Special:Watchlist|भवतà¤\83/भवतà¥\8dयाà¤\83 à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाà¤\82]] विद्यमानानि पृष्ठानि अत्र '''स्थूलाक्षरैः''' दर्शितानि।",
+       "recentchangeslinked-summary": "विशà¥\87षपà¥\83षà¥\8dठà¥\87षà¥\81 à¤µà¤°à¥\8dà¤\97ानà¥\8dतरà¥\8dà¤\97तपà¥\83षà¥\8dठà¥\87षà¥\81 à¤µà¤¾ à¤¸à¤¦à¥\8dयà¥\8b à¤\9cातानाà¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानामà¥\8d à¤\8fषा à¤\86वलिà¤\83 à¥¤\n\n[[Special:Watchlist|भवतà¤\83/भवतà¥\8dयाà¤\83 à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\8c]] विद्यमानानि पृष्ठानि अत्र '''स्थूलाक्षरैः''' दर्शितानि।",
        "recentchangeslinked-page": "पृष्ठनाम:",
        "recentchangeslinked-to": "अस्मिन् स्थाने अस्य पृष्ठस्य सम्बद्धानां पृष्ठानां परिवर्तनानि दर्श्यन्ताम्",
-       "upload": "सà¤\9eà¥\8dà¤\9aिà¤\95ा à¤\86रोप्यताम्",
-       "uploadbtn": "सà¤\9eà¥\8dà¤\9aिà¤\95ा à¤\86रोप्यताम्",
+       "upload": "सà¤\9eà¥\8dà¤\9aिà¤\95ा à¤\89पारोप्यताम्",
+       "uploadbtn": "सà¤\9eà¥\8dà¤\9aिà¤\95ा à¤\89पारोप्यताम्",
        "reuploaddesc": "उत्तारणम् अपकर्षतु उत्तरणप्रपत्रम् आगच्छतु च ।",
        "upload-tryagain": "उन्नतीकृतं सञ्चिकाविवरणं समर्पयतु ।",
        "uploadnologin": "न प्रविष्टम्",
-       "uploadnologintext": "सà¤\9eà¥\8dà¤\9aिà¤\95ारà¥\8bपणाय [[Special:UserLogin|à¤\85नà¥\8dतà¤\83पà¥\8dरवà¥\87शà¤\83]] अपेक्षितः ।",
+       "uploadnologintext": "à¤\95à¥\83पया $1 à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ारà¥\8bपणाय अपेक्षितः ।",
        "upload_directory_missing": "उत्तारणनिदेशनं ($1) नष्टम्, जालवितारकेन सर्जितुं न शक्यते ।",
        "upload_directory_read_only": "उत्तारणनिदेशनं ($1) तु जालवितारकेन लेखनयोग्यं नास्ति ।",
        "uploaderror": "उत्तरणदोषः ।",
        "upload-recreate-warning": "''' पूर्वसूचना ''' तन्नामयुक्ता सञ्चिका अपमर्जिता अथवा चालिता ।",
        "uploadtext": "सञ्चिकाः उत्तर्तुम् अधः सूचितरूपणि उपयोजयतु ।\nTo view or search previously uploaded files go to the [[Special:FileList|list of uploaded files]], (re)uploads are also logged in the [[Special:Log/upload|upload log]], deletions in the [[Special:Log/delete|deletion log]].\n\nTo include a file in a page, use a link in one of the following forms:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' to use the full version of the file\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' to use a 200 pixel wide rendition in a box in the left margin with 'alt text' as description\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' for directly linking to the file without displaying the file",
-       "upload-permitted": "à¤\85नà¥\81मतसà¤\9eà¥\8dà¤\9aिà¤\95ाभà¥\87दाà¤\83 $1.",
-       "upload-preferred": "à¤\85नà¥\81मतसà¤\9eà¥\8dà¤\9aिà¤\95ाभà¥\87दाà¤\83 $1.",
-       "upload-prohibited": "à¤\85नà¥\81मतसà¤\9eà¥\8dà¤\9aिà¤\95ाभà¥\87दाà¤\83 $1.",
+       "upload-permitted": "à¤\85नà¥\81मतसà¤\9eà¥\8dà¤\9aिà¤\95ायाà¤\83 {{PLURAL:$2|भà¥\87दà¤\83|भà¥\87दाà¤\83}} $1.",
+       "upload-preferred": "à¤\85नà¥\81मतसà¤\9eà¥\8dà¤\9aिà¤\95ायाà¤\83 {{PLURAL:$2|भà¥\87दà¤\83|भà¥\87दाà¤\83}} $1.",
+       "upload-prohibited": "à¤\85नà¥\81मतसà¤\9eà¥\8dà¤\9aिà¤\95ायाà¤\83 {{PLURAL:$2|भà¥\87दà¤\83|भà¥\87दाà¤\83}} $1.",
        "uploadlogpage": "उपारोहिताऽऽवलिः (Upload log)",
        "uploadlogpagetext": "अधः सद्यः काले उत्तारितसञ्चिकानाम् आवली अस्ति ।\nअधिकदृश्यविवरणार्थम् एतत् पश्यतु [[Special:NewFiles|gallery of new files]]",
        "filename": "सञ्चिकानाम",
        "filedesc": "सारांशः",
-       "fileuploadsummary": "सà¤\82à¤\97à¥\8dरहः :",
+       "fileuploadsummary": "साराà¤\82शः :",
        "filereuploadsummary": "सञ्चिकापरिवर्तनानि ।",
        "filestatus": "प्रतिकृत्यधिकारस्य स्थितिः ।",
-       "filesource": "मà¥\82ल:",
+       "filesource": "सà¥\8dरà¥\8bतà¤\83 :",
        "ignorewarning": "पूर्वसूचनां निर्लक्ष्य सञ्चिकाः कथञ्चित् संरक्षतु ।",
        "ignorewarnings": "पूर्वसूचनाः निर्लक्षतु ।",
        "minlength1": "सञ्चिकानाम न्यूनतिन्यूनम् एकाक्षरं भवेत् ।",
        "largefileserver": "इयं सञ्चिका वितारकस्य निदेशनात् अधिका दीर्घा अस्ति ।",
        "emptyfile": "उत्तारितसञ्चिका रिक्ता इति भाति । \nसञिकानामाङ्कनकारणं स्यात् ।\nएतां सञ्चिकाम् उत्तारयितुमिच्छति वा इति परिशीलयतु ।",
        "windows-nonascii-filename": "एषा विकि विशेषाक्षरयुक्तं सञ्चिकानाम न अनुमन्यते ।",
-       "fileexists": "अनेन सञ्चिकानाम्ना काचित् सञ्चिकास्ति । यदि निश्चयेन न जानाति परिवर्तयितुम् इच्छति तर्हि  <strong>[[:$1]]</strong> एतत् परिशीलयतु । : [[$1|thumb]]",
+       "fileexists": "अनेन सञ्चिकानाम्ना काचित् सञ्चिकास्ति । यदि {{GENDER:|भवान्/भवती}} निश्चयेन न जानाति परिवर्तयितुम् इच्छति तर्हि  <strong>[[:$1]]</strong> एतत् परिशीलयतु । : [[$1|thumb]]",
        "filepageexists": "अस्याः सञ्चिकायाः विवरणपुटम् तावत् निर्मितम् एव । <strong>[[:$1]]</strong>, अनेन नाम्ना सद्यः कापि सञ्चिका वर्तते  । \nलिखितसारांशः विवरणपुटे न आगमिष्यति । \nते सारांशः तत्रागन्तुं स्वयं सम्पादयतु । [[$1|thumb]]",
-       "fileexists-extension": "à¤\85नà¥\87न à¤¨à¤¾à¤®à¥\8dना à¤¸à¤¦à¥\83नामाà¤\99à¥\8dà¤\95िता à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ा à¤ªà¥\82रà¥\8dवमà¥\87व à¤\85सà¥\8dति à¥¤ [[$2|thumb]]\n* à¤\89तà¥\8dतरà¥\8dयमानसà¤\9eà¥\8dà¤\9aिà¤\95ायाà¤\83 à¤¨à¤¾à¤®  <strong>[[:$1]]</strong>\n* à¤µà¤°à¥\8dतमानसà¤\9eिà¤\95ायाà¤\83 à¤¨à¤¾à¤® <strong>[[:$2]]</strong>\n* à¤\85नà¥\8dयनाम à¤\9aिनà¥\8bतà¥\81 à¥¤",
+       "fileexists-extension": "à¤\85नà¥\87न à¤¨à¤¾à¤®à¥\8dना à¤¸à¤¦à¥\83नामाà¤\99à¥\8dà¤\95िता à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ा à¤ªà¥\82रà¥\8dवमà¥\87व à¤\85सà¥\8dति à¥¤ [[$2|thumb]]\n* à¤\89तà¥\8dतरà¥\8dयमानसà¤\9eà¥\8dà¤\9aिà¤\95ायाà¤\83 à¤¨à¤¾à¤®  <strong>[[:$1]]</strong>\n* à¤µà¤°à¥\8dतमानसà¤\9eिà¤\95ायाà¤\83 à¤¨à¤¾à¤® <strong>[[:$2]]</strong>\n* à¤\85नà¥\8dयनाम à¤\9aà¥\87तà¥\81मà¥\8d à¤\87à¤\9aà¥\8dà¤\9bति ?",
        "fileexists-thumbnail-yes": "एषा सञ्चिका बृहच्चित्रस्य क्षीणाकारा इति भाति । ''(उङ्गुष्टाकारः)''  [[$1|thumb]]\n<strong>[[:$1]]</strong> सञ्चिकां पश्यतु । \nयदि परिक्षिता सञ्चिका एतादृशाकरस्य भवति तर्हि उत्तारणस्य आवश्यकता नास्ति ।",
        "file-thumbnail-no": "सञ्चिकानाम आरभते <strong>$1</strong>एतस्मात् ।\nन्यूनीकृताकारस्य चित्रम् इति भाति  \nयदि एतच्चित्रं मूलाकारेण अस्ति तर्हि उत्तारयतु अन्यथा न ।",
        "fileexists-forbidden": "एदादृशनाम्नः सञ्चिका तावत् पूर्वमेवोपस्थिता । अस्य स्थाने अन्यां नोत्तारयितुं शक्यते । \nतथापि यदि एतां सञ्चिकाम् उत्तारयितुम् इच्छति तर्हि सञ्चिकायाः नाम परिवर्तयतु ।\n[[File:$1|thumb|center|$1]]",
        "fileexists-shared-forbidden": "एतस्य नाम्नः सञ्चिका विभक्तभाण्डारे तावत् अस्ति एव । \nतथापि यदि एतां सञ्चिकाम् उत्तारयितुम् इच्छति तर्हि अस्याः नामपरिवर्तनं करोतु ।\n[[File:$1|thumb|center|$1]]",
        "file-exists-duplicate": "एषा सञ्चिका तु {{PLURAL:$1|file|files}}: इत्यस्य प्रतिकृतिः ।",
        "file-deleted-duplicate": "अस्याः सञ्चिकायाः ([[:$1]]) सादृश्ययुक्ता सञ्चिकातु अपमर्जिता ।\nएतस्याः उत्तारणात् पूर्वं प्राचीनसञ्चिकायाः इतिहासः अवलोकनीयः ।",
+       "file-deleted-duplicate-notitle": "एतस्मात् पूर्वम् समानसञ्चिका अपाकृता शीर्षकं गुहितम् । एतत् पुनः उपारोपणात् प्राक् यस्य पार्श्वे गुहितसञ्चिकादर्शनस्य अधिकारः अस्ति, तेन सह परामर्शं करोतु ।",
        "uploadwarning": "उत्तारणस्य पूर्वसूचना ।",
        "uploadwarning-text": "अधो दत्तं सञ्चिकाविवरणं संस्कृत्य पुनः यतताम् ।",
        "savefile": "सञ्चिकां संरक्षतु ।",
        "uploaddisabledtext": "उत्तारितसञ्चिकाः निष्क्रियाः ।",
        "php-uploaddisabledtext": "PHP मध्ये उत्तारितसञ्चिकाः निष्क्रियाः ।",
        "uploadscripted": "HTMLयुक्ताः अथवा लिपिसङ्केतयुक्ताः सञ्चिकाः जालदर्शिकया बाधिताः ।",
+       "uploadscriptednamespace": "\"$1\" इत्येत् अमान्यं नामावकाशं SVG सञ्चिकायां विद्यते ।",
+       "uploadinvalidxml": "उपारोहितसञ्चिकायां स्थितं XML व्याख्यायितं (parse) कर्तुं न शक्यते ।",
        "uploadvirus": "अस्यां सञ्चिकायां वैराणुः अस्ति । विवरणम् $1",
        "uploadjava": "इयं ZIP सञ्चिका अस्यां जावावर्गस्य सञ्चिकाः सन्ति । \nजावासञ्चिकाः उत्तरणं निषिद्धम् । यतः अनेन सुरक्षाबन्धाः शिथिलाः भवन्ति ।",
        "upload-source": "मूलसञ्चिका ।",
        "backend-fail-internal": "\"$1\"सङ्ग्रहागारन्ते अज्ञातदोषः उपगतः ।",
        "backend-fail-contenttype": "\"$1\"मध्ये सङ्ग्रहितुं सञ्चिकायाः प्रकारं निश्चिनोतुं नैव शक्यते ।",
        "backend-fail-batchsize": "$1 संचिकायाः गणस्य निक्षेपावकाशः प्रदत्तः । {{PLURAL:$1|operation|operations}}; समयनिर्बन्धः $2 {{PLURAL:$2|operation|operations}}.",
-       "backend-fail-usable": "अपर्यापानुमतिकारणेन अथवा निदेशिकायाः /आधानस्य अभावात्  $1 सञ्चिकां लेखितुं न शक्यते ।",
+       "backend-fail-usable": "अपर्यापानुमतिकारणेन अथवा निदेशिकायाः /आधानस्य अभावात् \"$1\" सञ्चिकां लेखितुं न शक्यते ।",
        "filejournal-fail-dbconnect": "\"$1\" निक्षेपार्थं मूलपाठपत्रिकां सम्पर्कयितुं  न शक्यते ।",
        "filejournal-fail-dbquery": "\"$1\"निक्षेपस्य कृते पत्रिकामूलपाठम् उन्नतीकर्तुं नैव शक्यते ।",
        "lockmanager-notlocked": "\"$1\" इत्येतत् उद्घाटयितुं न शक्यते यतः एतत् कीलितं न ।",
        "license": "अनुमतिदानम्",
        "license-header": "अनुमतिदानम्",
        "nolicense": "चियनं नास्ति ।",
+       "licenses-edit": "अनुज्ञापत्रस्य विकल्पानि सम्पाद्यन्ताम्",
        "license-nopreview": "पूर्वावलोकनं न मिलति ।",
-       "upload_source_url": "(मान्यं, प्रचारात्मकाभिगमनयुतं URL)",
-       "upload_source_file": " (ते सङ्गणकस्य सञ्चिका)",
+       "upload_source_url": "(यतः भवान्/भवती सञ्चिकाम् अचिनोत् मान्यं, प्रचारात्मकाभिगमनयुतं URL)",
+       "upload_source_file": " (यतः भवान्/भवती सञ्चिकाम् अचिनोत् ते सङ्गणकस्य सञ्चिका)",
+       "listfiles-delete": "अपाक्रियताम्",
        "listfiles-summary": "एतद्विशेषपुटम् उत्तारितसञ्चिकाः प्रदर्शयति । \nयोजकेन शुद्धाः अतिनूतनं सञ्चिकाः केवलम् अत्र प्रदर्शयति ।",
        "listfiles_search_for": "माध्यमनामधेयार्थम् अन्विषतु ।",
+       "listfiles-userdoesnotexist": "\"$1\" इत्यषा योजकलेखा पञ्जीकृतं नास्ति ।",
        "imgfile": "संचिका",
        "listfiles": "सञ्चिकावली ।",
        "listfiles_thumb": "अंगुष्ठनखाकारम् ।",
        "listfiles_date": "दिनाङ्क",
-       "listfiles_name": "नामन्",
+       "listfiles_name": "नाम",
        "listfiles_user": "योजक",
        "listfiles_size": "आकार",
-       "listfiles_description": "वर्णन",
+       "listfiles_description": "वर्णनम्",
        "listfiles_count": "आवृत्ति",
+       "listfiles-show-all": "चित्रस्य पुरातनं संस्करणं योज्यताम्",
+       "listfiles-latestversion": "वर्तमानसंस्करणम्",
+       "listfiles-latestversion-yes": "आम्",
+       "listfiles-latestversion-no": "न",
        "file-anchor-link": "सञ्चिका",
        "filehist": "सञ्चिकायाः इतिहासः",
        "filehist-help": "सञ्चिका तत्समये कीदृशी आसीदिति द्रष्टुं दिनाङ्कः/समयः नुद्यताम् ।",
        "filehist-deleteall": "सर्वान् परिमर्जतु ।",
-       "filehist-deleteone": "विलà¥\8bप",
+       "filehist-deleteone": "à¤\85पाà¤\95à¥\8dरियतामà¥\8d",
        "filehist-revert": "प्रत्यावर्तनम्",
        "filehist-current": "वर्तमानः",
        "filehist-datetime": "दिनाङ्कः/समयः",
        "filedelete-intro": "'''[[Media:$1|$1]]''' इति सञ्चिकायाः इतिहाससहितम् अपमर्जयन् अस्ति ।",
        "filedelete-intro-old": "भवान्'''[[Media:$1|$1]]''' इत्यस्य [$4 $2 इत्येतयोः $3 कालस्य अवतरणम्] अपमार्जयन् अस्ति ।",
        "filedelete-comment": "कारणम् :",
-       "filedelete-submit": "विलà¥\81पà¥\8dयताम्",
+       "filedelete-submit": "à¤\85पाà¤\95à¥\8dरियताम्",
        "filedelete-success": "'''$1''' अपमर्जितम् ।",
        "filedelete-success-old": "'''[[Media:$1|$1]]''' इत्यस्य $2 इत्येतत् $3 समयस्यावतरणम् अपमर्जितम् ।",
        "filedelete-nofile": "'''$1''' न वर्तते ।",
        "filedelete-maintenance": "सञ्चिकानाम् अपमर्जनम् अनमपमर्जनं च निर्वहणकाले तात्कालिकतया निष्क्रियौ ।",
        "filedelete-maintenance-title": "सञ्चिकाम् अपमर्जितुं न शक्यते ।",
        "mimesearch": "MIME अन्वेषणम् ।",
-       "mimesearch-summary": "MIME-प्रकारानुसारं सञ्चिकान्वेषणार्थम् एतत्पुटम् उपयोक्तुं शाक्नोति । \nइनपुट: सञ्चिकायाः प्रकारः/उपप्रकारः, उदाहरणम्. <code>image/jpeg</code>.",
+       "mimesearch-summary": "MIME-प्रकारानुसारं सञ्चिकान्वेषणार्थम् एतत्पुटम् उपयोक्तुं शाक्नोति । \nइनपुट: सञ्चिकायाः प्रकारः/उपप्रकारः/*, उदाहरणम्. <code>image/jpeg</code>.",
        "mimetype": "MIME प्रकारः :",
        "download": "डाउनलोड",
        "unwatchedpages": "अनवलोकितपुटानि ।",
        "listredirects": "चालितानाम् अवली ।",
+       "listduplicatedfiles": "प्रतिकृतिभिः सह सञ्चिकानाम् आवलिः",
+       "listduplicatedfiles-summary": "यासां सञ्चिकानां नवीनतमं संस्करणम् अन्यसञ्चिकानां प्रतिलिपिः अस्ति, तादृशानां सञ्चिकानाम् एषा आवलिः अस्ति । केलवं स्थापियसञ्चिका एव अन्तर्भवन्ति ।",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]] इत्यस्याः सञ्चिकायाः [[$3|{{PLURAL:$2|एका प्रतिकृतिः|$2 प्रतिकृतयः}}]].",
        "unusedtemplates": "अनुपयुक्ताः प्राकृतयः ।",
        "unusedtemplatestext": "अस्मिन् पुटे {{ns:template}} नामस्थानयुतानि सर्वपुटानि अन्तर्गतानि । यानि अन्यपुटेषु न सन्ति । \nअस्य अपमर्जनात् पूर्वं सञ्चिकायाः अन्यानुबन्धान् परिशीलयतु ।",
        "unusedtemplateswlh": "अन्यानुबन्धाः ।",
-       "randompage": "‎अशृङ्खलं (random) पृष्ठं",
+       "randompage": "यादृच्छिकं (random) पृष्ठं",
        "randompage-nopages": "अधोनिदेशितनामस्थाने पुटानि न सन्ति । {{PLURAL:$2| एतन्नमस्थाने}} नास्ति : $1।",
+       "randomincategory": "वर्गे यादृच्छिकं पृष्ठम्",
+       "randomincategory-invalidcategory": "\"$1\" इत्येत् अमान्यं वर्गनाम अस्ति ।",
+       "randomincategory-nopages": "[[:Category:$1|$1]] इत्यस्मिन् वर्गे पृष्ठं न विद्यते ।",
+       "randomincategory-category": "वर्गः :",
+       "randomincategory-legend": "वर्गे यादृच्छिकं पृष्ठम्",
        "randomredirect": "यादृच्छिकचालनम् ।",
        "randomredirect-nopages": "$1नामस्थाने चालनानि न सन्ति ।",
        "statistics": "साङ्ख्यिकी",
        "statistics-users-active-desc": "गतेषु {{PLURAL:$1|day|$1 दिनेषु}} सक्रियाः योजकाः  ।",
        "pageswithprop": "प्रगुणविशेषयुतानि पृष्ठानि",
        "pageswithprop-legend": "प्रगुणविशेषयुतानि पृष्ठानि",
+       "pageswithprop-text": "निश्चितपृष्ठस्य अवच्छेदकतानाम् उपयोगं कुर्वतानां पृष्ठानाम् आवलिः ।",
+       "pageswithprop-prop": "अवच्छेदकतानाम :",
+       "pageswithprop-submit": "गम्यताम्",
+       "pageswithprop-prophidden-long": "दीर्घपाठावच्छेकः गुहितः ($1)",
+       "pageswithprop-prophidden-binary": "द्व्यङ्कावच्छेकः नोपयुज्यते : ($1)",
        "doubleredirects": "दुगुनी-अनुप्रेषिते",
        "doubleredirectstext": "एतत्पुटं तेषां पुटानां सूची अस्ति यानि अन्यपुनर्निदेशितपुटानि प्रति पुनरिदेशितानि सन्ति । \nप्रत्येकं पङ्क्तिः प्रथमद्वितीयपुनर्निदेशम् अन्तर्गता । द्वितीयपुनर्निदेशः लक्ष्यं यत् वास्तवं लक्ष्यपुटं प्रथमं प्रदर्शितम् । \nअपि च प्रथमपुनर्निदेशः वास्तवेन एतदेवलक्षितं स्यात् । <del>काटी गई</del> प्रविष्टयः परिहृताः ।",
        "double-redirect-fixed-move": "[[$1]] इत्यस्य स्थानं परिवर्तितम् । \nइदानीम् [[$2]] इत्यस्य दिशि पुनर्निदिष्टम् अस्ति ।",
-       "double-redirect-fixed-maintenance": "[[$1]] तः [[$2]] पुनर्निदेशद्वयं निश्चिनोति ।",
+       "double-redirect-fixed-maintenance": "प्रबन्धनकार्ये [[$1]] तः [[$2]] पुनर्निदेशद्वयस्य स्वतः समस्यानिवारणं जातम् ।",
        "double-redirect-fixer": "पुनर्निदेशस्य बन्धकः ।",
        "brokenredirects": "भग्नपुनर्निदेशाः ।",
        "brokenredirectstext": "अधो दत्तपुनर्निदेशाः अवृत्तपुटैः सह अनुबन्दं रक्षन्ति ।",
        "brokenredirects-edit": "सम्पाद्यताम्",
-       "brokenredirects-delete": "विलà¥\81पà¥\8dयताम्",
+       "brokenredirects-delete": "à¤\85पाà¤\95à¥\8dरियताम्",
        "withoutinterwiki": "भाषानुबन्धरिहातानि पुटानि ।",
        "withoutinterwiki-summary": "अधस्थपुटानि अन्यभाषावतरणैः अनुबन्धं न कुर्वन्ति ।",
        "withoutinterwiki-legend": "पूर्वोऽपपदम्",
        "nbytes": "$1 {{PLURAL:$1|अष्टकम्|अष्टकानि}}",
        "ncategories": "{{PLURAL:$1|वर्गः|वर्गाः }}",
        "ninterwikis": "$1 {{PLURAL:$1|अन्तार्विकी|अन्तार्विक्यः}}",
-       "nlinks": "$1 {{PLURAL:$1|à¤\85नà¥\81बनà¥\8dधà¤\83|à¤\85नà¥\81बनà¥\8dधाः}}",
+       "nlinks": "$1 {{PLURAL:$1|परिसनà¥\8dधिà¤\83|परिसनà¥\8dधयः}}",
        "nmembers": "$1 {{PLURAL:$1|योजकः|योजकाः}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|सदस्यः|सदस्याः}}",
        "nrevisions": "$1 {{PLURAL:$1|पुनरावृत्तिः}}",
-       "nviews": "$1 {{PLURAL:$1|à¤\85नà¥\81बनà¥\8dधà¤\83|à¤\85नà¥\81बनà¥\8dधाः}}",
+       "nviews": "$1 {{PLURAL:$1|परिसनà¥\8dधिà¤\83|परिसनà¥\8dधयः}}",
        "nimagelinks": "$1 {{PLURAL:$1|पुटम्|पुटानि}} प्रयुक्तानि ।",
        "ntransclusions": "$1 {{PLURAL:$1|पुटम्|पुटानि}} प्रयुक्तानि ।",
        "specialpage-empty": "अस्य वृत्तस्य परिणामः नास्ति ।",
        "unusedimages": "अनुपयुक्तानि पुटाणी ।",
        "wantedcategories": "आवश्यकाः वर्गाः ।",
        "wantedpages": "आवश्यकपुटानि ।",
+       "wantedpages-summary": "यैः पृष्ठैः सह मुख्यतयापरिसन्धितानि पृष्ठानि सन्ति, तादृशानाम् अविद्यमानानां पृष्ठानाम् आवलिः । अत्र पुनर्निर्दिष्टपृष्ठां परिसन्धयः न सन्ति । पुनर्निर्दिष्टपृष्ठानाम्  अविद्यानानां पृष्ठानाम् आवल्यै अत्र दृश्यताम्,  [[{{#special:BrokenRedirects}}]].",
        "wantedpages-badtitle": "$1 परिणामनिरूपणे अमान्यशीर्षकम् ।",
        "wantedfiles": "आवश्यकाः सञ्चिकाः ।",
        "wantedfiletext-cat": "अधो दत्तसञ्चिकाः उपयुक्ताः किन्तु न वर्तन्ते । बाह्यकोशानां सञ्चिकाः उपस्थिताः इति एताः सूच्यां स्युः । एतादृशः कोपि सदोषप्रवेशः<del> अवरुद्धः</del> भवति । अपि च यत्पुटं तादृश्याः अनुपस्थितसञ्चिकायाः प्रयोगं कुर्वन्ति तासं सूची  [[:$1]] मध्ये अस्ति ।",
+       "wantedfiletext-cat-noforeign": "अधो दत्ताः सञ्चिकाः उपयुक्ताः किन्तु न वर्तन्ते । बाह्यकोशस्य सञ्चिकाः उपस्थिताः इति एतस्यां सूच्यां स्युः  [[:$1]] ।",
        "wantedfiletext-nocat": "अधो दत्ताः सञ्चिकाः उपयुक्ताः किन्तु न वर्तन्ते । बाह्यकोशस्य सञ्चिकाः उपस्थिताः इति एताः सूच्यां स्युः । तदृशः कोऽपि सदोषप्रवेशः<del>struck out</del>. अत्र स्यात् ।",
+       "wantedfiletext-nocat-noforeign": "अधो दत्ताः सञ्चिकाः उपयुक्ताः किन्तु न वर्तन्ते ।",
        "wantedtemplates": "आवश्यकाः प्राकृतयः ।",
        "mostlinked": "अत्यनुबद्धानि पुटानि ।",
        "mostlinkedcategories": "वर्गैः सह अत्यनुबद्धाः ।",
        "mostrevisions": "सर्वाधिकपुनरावृत्तियुक्तानि पुटानि ।",
        "prefixindex": "उपसर्गयुक्तानि सर्वाणि पृष्ठानि",
        "prefixindex-namespace": "उपसर्गैः युक्तानि सर्वपुटानि । ($1 नामस्थानम्)",
+       "prefixindex-strip": "उपसर्गपट्टिकायाः आवलिः",
        "shortpages": "ह्रस्वपुटानि",
        "longpages": "दीर्घाणि पृष्ठानि",
        "deadendpages": "अन्तिमपुटानि ।",
        "deadendpagestext": "अधो निदेशितपुटानि {{SITENAME}} इत्यस्मिन्  अन्यपुटैः अनुबद्धानि न ।",
        "protectedpages": "सुरक्षितानि पुतानि ।",
        "protectedpages-indef": "अनिर्दिष्टसुरक्षा केवलम् ।",
+       "protectedpages-summary": "एतत् पृष्ठं सद्यः संरक्षितानि सन्ति । निर्माणात् संरक्षितानां पृष्ठानाम् आवल्यै [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]] अत्र दृश्यताम् ।",
        "protectedpages-cascade": "प्रपातसंरक्षणं केवलम् ।",
-       "protectedpagesempty": "अनेन विस्तारेण न किमपि पुटं सद्यः न सुरक्षितम् ।",
+       "protectedpages-noredirect": "पुनर्निदेशान् गोपयतु",
+       "protectedpagesempty": "अनेन विस्तारेण न किमपि पृष्ठं सद्यः न सुरक्षितम् ।",
+       "protectedpages-timestamp": "समयमुद्रा",
+       "protectedpages-page": "पृष्ठम्",
+       "protectedpages-expiry": "अवसानम्",
+       "protectedpages-performer": "योजकं संरक्षति",
+       "protectedpages-params": "कार्यस्य परिमितिः",
+       "protectedpages-reason": "कारणम्",
+       "protectedpages-unknown-timestamp": "अज्ञातम्",
+       "protectedpages-unknown-performer": "अज्ञातयोजकः",
        "protectedtitles": "सुरक्षितानि शीर्षकानि ।",
+       "protectedtitles-summary": "एतत् पृष्ठं सद्यः निर्माणात् संरक्षितम् अस्ति । विद्यमानानां संरक्षितानां पृष्ठानाम् आवल्यै [[{{#special:ProtectedPages}}|{{int:protectedpages}}]] अत्र दृश्यताम् ।",
        "protectedtitlesempty": "एतैः विस्तारैः न किमपि शीर्षकं सद्यः परिरक्षितानि ।",
        "listusers": "योजक सूचि",
        "listusers-editsonly": "केवलं सम्पादनसहितयोजकान् दर्शयतु ।",
        "listusers-creationsort": "सर्जनदिनाङ्कैः वर्गीकरोतु ।",
+       "listusers-desc": "अवरोहक्रमेण क्रमबद्धं क्रियताम्",
        "usereditcount": "$1 {{PLURAL:$1|दिनम्|दिनानि}}",
        "usercreated": "$1 दिने $2 समये {{GENDER:$3|रचितं}}",
        "newpages": "नवीनपृष्ठानि",
        "newpages-username": "योजकनामन्:",
        "ancientpages": "प्राचीनतमानि पृष्ठानि",
        "move": "शीर्षकं परिवर्त्यताम्",
-       "movethispage": "à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤\9aाल्यताम्",
+       "movethispage": "à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¶à¥\80रà¥\8dषà¤\95à¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dत्यताम्",
        "unusedimagestext": "अधो दत्तसञ्चिकाः सन्ति किन्तु कस्मिंश्चिदपि पुटे न न्यस्ताः ।",
        "unusedcategoriestext": "निम्नलिखितवर्गाः सन्ति तथापि अन्यपुटं वर्गः वा न उपयुङ्क्ते ।",
        "notargettitle": "लक्ष्यं नास्ति ।",
        "pager-older-n": "{{PLURAL:$1|पुरातनतरम् 1|पुरातनतराणि $1}}",
        "suppress": "अलक्ष्यम् ।",
        "querypage-disabled": "समाचरणकारणेन एतद्विशेषपुटं निष्क्रियम् ।",
+       "apihelp": "API साहाय्यम्",
+       "apihelp-no-such-module": "\"$1\" इत्येत् Module न प्राप्तम् ।",
        "booksources": "ग्रन्थस्रोतः",
        "booksources-search-legend": "ग्रन्थस्रोतः अन्विष्यताम्",
        "booksources-search": "अन्विष्यताम्",
        "booksources-invalid-isbn": "दत्तं ISBN मान्यम् इति  न भाति । मूलस्रोततः प्रतिकृतीः कर्तुं परिशीलयतु ।",
        "specialloguserlabel": "आचारी :",
        "speciallogtitlelabel": "लक्ष्यम् (शीर्षकम् / योजकः)",
-       "log": "संरक्षितावल्यः (Logs)",
+       "log": "सà¤\82रà¤\95à¥\8dषिताऽऽवलà¥\8dयà¤\83 (Logs)",
        "all-logs-page": "सर्वसार्वजनिकप्रवेशः ।",
        "alllogstext": "{{SITENAME}}इत्यस्य उबलब्धप्रवेशानां  संयुक्तप्रदर्शनम् ।\nप्रवेशप्रकारं चित्वा भवान् दृश्यं क्षाययितुं शक्नोति । योजकनाम,  सदस्य नाम (ह्रस्वदीर्घाक्षरसंवादी) प्रभावितपुटम् ।",
        "logempty": "प्रवेशे मेलयुक्तपुटं नास्ति ।",
        "log-title-wildcard": "अनेन पाठेन आरब्धानि शीर्षकानि अन्विषतु ।",
        "showhideselectedlogentries": "चितप्रवेशावलीः प्रदर्शयतु/गोपयतु ।",
+       "log-edit-tags": "चितसंरक्षिताऽऽवल्याः चिह्नानि सम्पाद्यताम्",
        "allpages": "सर्वाणि पृष्ठानि",
        "nextpage": "($1)अग्रिमपुटम् ।",
        "prevpage": "पूर्वपृष्ठम् ($1)",
        "linksearch-pat": "अन्वेषणस्य क्रमः ।",
        "linksearch-ns": "नामस्थानम् :",
        "linksearch-ok": "अन्वेषणम्",
-       "linksearch-text": "\"*.wikipedia.org\" सदृशानि वन्यपत्राणि योजयितुं शक्यते । \nन्यूनातिन्यूनं \".org\" सदृशः अत्युन्नतस्तरस्य डोमेन आवश्यकम् अस्ति <br />\nअनुमोदितक्रमागतिः  <code>$1</code> (एतेषु कतममपि अन्वेषणे न योजयतु )",
+       "linksearch-text": "\"*.wikipedia.org\" सदृशानि वन्यपत्राणि योजयितुं शक्यते । \nन्यूनातिन्यूनं \".org\" सदृशः अत्युन्नतस्तरस्य डोमेन आवश्यकम् अस्ति <br />\nअनुमोदितक्रमागतिः {{PLURAL:$2|protocol|protocols}}: <code>$1</code> (http:// एतेषु कतममपि अन्वेषणे न योजयतु )",
        "linksearch-line": " $1 इति $2 इत्यस्मात् परिसन्धितमस्ति",
        "linksearch-error": "वन्यपत्राणि आतिथेयस्य नाम्ना समं केवलं प्रभान्ति ।",
        "listusersfrom": "एतस्मात् आरभमाणान् योजकान् दर्शयतु ।",
        "listusers-blocked": "अवरुद्धम् ।",
        "activeusers": "सक्रिययोजकानाम् आवली ।",
        "activeusers-intro": "एषा तु गतेषु $1 {{PLURAL:$1|दिनेषु}} कृतकार्याणां योजकाना आवली ।",
-       "activeusers-count": "$1 {{PLURAL:$1|समà¥\8dपादनानि}} गतेषु $3 {{PLURAL:$3|दिनेषु}} कृतानि  ।",
+       "activeusers-count": "$1 {{PLURAL:$1|à¤\95ारà¥\8dयà¤\82|à¤\95ारà¥\8dयाणि}} गतेषु $3 {{PLURAL:$3|दिनेषु}} कृतानि  ।",
        "activeusers-from": "एतस्मात् आरभमाणान् योजकान् दर्शयतु ।",
        "activeusers-hidebots": "स्वयं चालकान् गोपयतु ।",
        "activeusers-hidesysops": "प्रशासकान् गोपयतु ।",
        "activeusers-noresult": "योजकः न प्राप्तः ।",
        "listgrouprights": "योजकसमूहाधिकाराः ।",
        "listgrouprights-summary": "अधोदत्ता विकिपरिभाषितस्य सङ्गताभिगम्यताधिकारैः सहिता योजकसमूहस्य आवली । [[{{MediaWiki:Listgrouprights-helppage}}|additional information]]",
-       "listgrouprights-key": "* <span class=\"listgrouprights-granted\">दत्ताधिकाराः</span>\n* <span class=\"listgrouprights-revoked\">हृताधिकाराः</span>",
-       "listgrouprights-group": "वरà¥\8dà¤\97",
+       "listgrouprights-key": "विवरणम् -\n* <span class=\"listgrouprights-granted\">दत्ताधिकाराः</span>\n* <span class=\"listgrouprights-revoked\">हृताधिकाराः</span>",
+       "listgrouprights-group": "दलमà¥\8d",
        "listgrouprights-rights": "अधिकाराः ।",
        "listgrouprights-helppage": "Help: समूहाधिकाराः ।",
        "listgrouprights-members": "(योजकानाम् आवलिः)",
        "listgrouprights-removegroup-self": "स्वस्थाने {{PLURAL:$2|समूहम्}} अपनयतु  $1",
        "listgrouprights-addgroup-self-all": "स्वस्थाने सर्वसमूहान योजयतु ।",
        "listgrouprights-removegroup-self-all": "स्वस्थानात् सर्वसमूहान् अपनयतु ।",
+       "listgrouprights-namespaceprotection-header": "नामाकाशप्रतिबन्धाः",
        "listgrouprights-namespaceprotection-namespace": "नामाकाशः",
+       "listgrouprights-namespaceprotection-restrictedto": "सम्पादयितु योजकाय अधिकारदानम्",
+       "trackingcategories": "वर्गाणाम् अनुसरणम्",
+       "trackingcategories-summary": "एतस्मिन् पृष्ठे आनुपदिकवर्गाणां (tracking) सूची विद्यते । ते आनुपदिकवर्गाः MediaWiki software-संस्थया स्वरचिताः सन्ति । तेषां नामानि परिवर्तयितुं शक्नुमः । नामपरिवर्तयितुं {{ns:8}} इत्यत्र नामाकाशे सम्बन्धिते सन्देशप्रक्रियायां परिवर्तनं करिणीयं भवति ।",
+       "trackingcategories-msg": "वर्गाणाम् अनुसरणम्",
+       "trackingcategories-name": "सन्देशनाम",
+       "trackingcategories-desc": "वर्गान्तर्भवनस्य स्थितिः",
+       "noindex-category-desc": "एतत् पृष्ठं यन्त्रद्वारा अनुक्रमणीकृतं नास्ति, यतो हि एतस्मिन् मायिकशब्दः (magic word) <code><nowiki>__NOINDEX__</nowiki></code> अस्ति । तथा च एषः एकः नामाकाशः अस्ति, यस्मिन् सः ध्वजः अभिमतः अस्ति ।",
+       "index-category-desc": "एतस्मिन् मायिकशब्दः (magic word) <code><nowiki>__INDEX__</nowiki></code> अस्ति (एषः एकः नामाकाशः अस्ति, यस्मिन् सः ध्वजः अभिमतः अस्ति) । अत एव एतत् पृष्ठं यन्त्रद्वारा अनुक्रमणीकृतम् अस्ति यत्र सामान्यतया न भवति ।",
+       "post-expand-template-inclusion-category-desc": "सर्वेषां फलकानां विस्तारानन्तरं पृष्ठस्य आकारः <code>$wgMaxArticleSize</code> इत्यस्मात् अधिकः अस्ति । अतः कानिचन फलकानि विस्तीर्णानि नाभवन् ।",
+       "post-expand-template-argument-category-desc": "सर्वेषां फलकानां विस्तारानन्तरं पृष्ठस्य आकारः <code>$wgMaxArticleSize</code> इत्यस्मात् अधिकः अस्ति । (अतः <code>{{{Foo}}}</code> एवमपि दृश्येरन्).",
+       "expensive-parserfunction-category-desc": "अस्मिन् पृष्ठे बहवः विभाजिताः नियोजिताः (functions) विद्यन्ते । यथा <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> अस्ति । यदभावे वर्गपेटिकायां पृष्ठानि दर्शयितुम् एतस्य पृष्ठस्य भागः अस्ति ।",
+       "trackingcategories-nodesc": "विवरणं नास्ति ।",
+       "trackingcategories-disabled": "वर्गः असमर्थितः",
        "mailnologin": "सम्प्रेषणस्य सङ्केतः नास्ति ।",
        "mailnologintext": "अस्य योजकेभ्यः विद्युन्मानपत्रप्रेषणार्थम् [[Special:UserLogin|नामाभिलेखनम्]] आवश्यकम् [[Special:Preferences|आद्यता]]यां प्रेषयितुं विद्युन्मानपत्रसङ्केतः आवश्यकः ।",
-       "emailuser": "à¤\8fतसà¥\8dमà¥\88 à¤¯à¥\8bà¤\9cà¤\95ाय à¤\88-पत्रं प्रेष्यताम्",
-       "emailuser-title-target": "ईपत्र प्रेष्यताम् {{GENDER:$1|योजकः}}",
+       "emailuser": "à¤\8fतसà¥\8dमà¥\88 à¤¯à¥\8bà¤\9cà¤\95ाय à¤µà¤¿-पत्रं प्रेष्यताम्",
+       "emailuser-title-target": "{{GENDER:$1|एतस्मै सदस्याय}} वि-पत्रं प्रैष्यताम्",
        "emailuser-title-notarget": "ईपत्र योजकः",
-       "emailpage": "à¤\88-मà¥\87ल à¤¯à¥\8bà¤\9cà¤\95",
-       "emailpagetext": "अस्मै योजकाय विद्युन्मानपत्रं प्रेषयितुम् अधो दत्तप्रपत्रम् उपयोक्तुं शक्नोति । \n[[Special:Preferences|your user preferences]] अत्र भवता विनिवेशितः वि-पत्रसङ्केतः सकाशात् इति स्थाने प्रतिभाति । अनेन स्वीकर्ता साक्षात् प्रत्युत्तरं दातुं प्रभविष्यति ।",
+       "emailpage": "वि-पतà¥\8dरà¥\8bपयà¥\8bà¤\95à¥\8dता",
+       "emailpagetext": "{{GENDER:$1|अस्मै}} योजकाय विद्युन्मानपत्रं प्रेषयितुम् अधो दत्तप्रपत्रम् उपयोक्तुं शक्नोति । \n[[Special:Preferences|your user preferences]] अत्र भवता विनिवेशितः वि-पत्रसङ्केतः सकाशात् इति स्थाने प्रतिभाति । अनेन स्वीकर्ता साक्षात् प्रत्युत्तरं दातुं प्रभविष्यति ।",
        "defemailsubject": "{{SITENAME}}\"$1\" इति योजकात् विद्युन्मानपत्रम् ।",
        "usermaildisabled": "योजकस्य विद्युन्मानपत्रं निष्क्रियम् ।",
        "usermaildisabledtext": "अस्यां विक्याम् अन्ययोजकेभ्यः विद्युन्मानपत्रं प्रेषयितुं नै शक्नोति ।",
        "noemailtitle": "विद्युन्मानपत्रसङ्केतः नास्ति ।",
        "noemailtext": "अस्य योजकस्य निरिदिष्टः विद्युन्मानपत्रसङ्केतः नास्ति ।",
-       "nowikiemailtext": "अयं योजकः अन्ययोजकेभ्यः विद्युन्मानपत्राणि स्वीकार्तुं नेच्छति ।",
+       "nowikiemailtext": "अयं योजकः अन्ययोजकेभ्यः वि-पत्राणि स्वीकार्तुं नेच्छति ।",
        "emailnotarget": "स्वीकर्तुः अस्तित्वविहीनम् अथवा अमान्यं योजकनाम  ।",
        "emailtarget": "स्वीकर्तुः योजकनाम लिखतु ।",
        "emailusername": "योजकनामन्:",
        "emailto": "सविधे:",
        "emailsubject": "विषयः",
        "emailmessage": "सन्देशः :",
-       "emailsend": "पà¥\8dरà¥\87षति",
-       "emailccme": "सन्देशस्य प्रतिकृतिः मे विद्युन्मानपत्रसङ्केताय अपि प्रेषयतु ।",
+       "emailsend": "पà¥\8dरà¥\87षयतà¥\81",
+       "emailccme": "सन्देशस्य प्रतिकृतिः मे वि-पत्रसङ्केताय अपि प्रेषयतु ।",
        "emailccsubject": "$1: $2 कृते अपि भवतः सन्देशस्य प्रकृतीः ।",
-       "emailsent": "विद्युन्मानपत्रं प्रेषितम् ।",
-       "emailsenttext": "भवतः विद्युन्मानपत्रसन्देशः प्रेषिताः ।",
-       "emailuserfooter": "एतद्विद्युन्मानपत्रं {{SITENAME}} इत्यस्य योजपत्राचरव्यवस्थाद्वारा  $1 इत्यनेन $2 कृते प्रेषितम् ।",
+       "emailsent": "वि-पत्रं प्रेषितम्",
+       "emailsenttext": "भवतः/भवत्याः वि-पत्रसन्देशः प्रेषितः",
+       "emailuserfooter": "एतद्वि-पत्रं {{SITENAME}} इत्यस्य योजपत्राचरव्यवस्थाद्वारा  $1 इत्यनेन $2 {{int:emailpage}} कृते प्रेषितम् ।",
        "usermessage-summary": "तान्त्रिकसन्देशानां त्यागः ।",
        "usermessage-editor": "तान्त्रिकसन्देशवाहकः ।",
-       "watchlist": "à¤\85वà¥\87à¤\95à¥\8dषणावलिः",
-       "mywatchlist": "à¤\85वà¥\87à¤\95à¥\8dषणावलिः",
+       "watchlist": "निरà¥\80à¤\95à¥\8dषासà¥\82à¤\9aिः",
+       "mywatchlist": "निरà¥\80à¤\95à¥\8dषासà¥\82à¤\9aिः",
        "watchlistfor2": "$1 $2 कृते",
        "nowatchlist": "अवलोकनावल्यां पदार्थः नास्ति ।",
-       "watchlistanontext": "à¤\85वलà¥\8bà¤\95नपà¤\9fà¥\8dà¤\9fिà¤\95ायाà¤\82 à¤ªà¥\81à¤\9fà¤\82 à¤¦à¥\83षà¥\8dà¤\9fà¥\81à¤\82 à¤¸à¤®à¥\8dपादयितà¥\81à¤\82 à¤µà¤¾  $1  à¤\95रà¥\8bतà¥\81 ।",
+       "watchlistanontext": "à¤\85वलà¥\8bà¤\95नपà¤\9fà¥\8dà¤\9fिà¤\95ायाà¤\82 à¤ªà¥\81षà¥\8dठà¤\82 à¤¦à¥\83षà¥\8dà¤\9fà¥\81à¤\82 à¤¸à¤®à¥\8dपादयितà¥\81à¤\82 à¤µà¤¾ à¤\95à¥\83पया à¤ªà¥\8dरविशà¥\8dयतामà¥\8d ।",
        "watchnologin": "न नामाभिलितम्",
        "addwatch": "अवलोकनावलीं योजयतु ।",
-       "addedwatchtext": "भवतः [[Special:Watchlist|ध्यानसूचिकायां]] \"[[:$1]]\" इत्येतत् योजितमस्ति।\nइदानींप्रभृति अस्मिन् पृष्ठे तथा अस्य चर्चापृष्ठे सन्तः परिवर्तनानि भवतः निरीक्षासूचिकायां द्रक्ष्यन्ते तथा च [[Special:RecentChanges|सद्यःपरिवर्तितानां सूचिकायां]] इदं पृष्ठं स्थूलाक्षरैः द्रक्ष्यते, यस्मात् भवान् सरलतया इदं पश्यतु <p>निरीक्षासूचिकातः निराकर्तुमिच्छति चेत्, \"मा निरीक्षताम्\" इत्यसमिन् नोदयतु।",
+       "addedwatchtext": "भवतः/भवत्याः [[Special:Watchlist|निरीक्षासूच्यां]] \"[[:$1]]\" इत्येतत् योजितमस्ति ।\nइदानीं प्रभृति अस्मिन् पृष्ठे तथा अस्य सम्भाषणपृष्ठे जातानि परिवर्तनानि भवतः/भवत्याः निरीक्षासूच्यां द्रक्ष्यन्ते तथा च इदं पृष्ठं स्थूलाक्षरैः द्रक्ष्यते, यस्मात् भवान् सरलतया इदं पश्यतु <p>निरीक्षासूचितः निराकर्तुमिच्छति चेत्, \"मा निरीक्ष्यताम्\" नुदतु।",
+       "addedwatchtext-short": "\"$1\" एतत् पृष्ठं भवतां निरीक्षासूचौ योजितम् ।",
        "removewatch": "अवलोकनावलीतः अपनयतु ।",
        "removedwatchtext": "\"[[:$1]]\" इति पृष्ठं [[Special:Watchlist|भवतः निरीक्षासूचिकातः]] निराकृतमस्ति।",
+       "removedwatchtext-short": "\"$1\" एतत् पृष्ठं भवतां निरीक्षासूचेः निष्कासितम् ।",
        "watch": "निरीक्षताम्",
        "watchthispage": "इदं पृष्ठं निरीक्षताम्",
        "unwatch": "मा निरीक्षताम्",
        "unwatchthispage": "अवलोकनेन अलम् ।",
        "notanarticle": "न आधेयं पुटम् ।",
        "notvisiblerev": "अन्ययोजकेन कृतम् अवतरणम् अपमर्जितम् ।",
-       "watchlist-details": "समà¥\8dभाषणपà¥\83षà¥\8dठानि à¤µà¤¿à¤¹à¤¾à¤¯ {{PLURAL:$1|$1 à¤ªà¥\83षà¥\8dठà¤\82|$1 à¤ªà¥\83षà¥\8dठानि}} à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलिः ।",
-       "wlheader-enotif": "विद्युन्मानपत्रस्य सूचनाः सक्रियाः ।",
-       "wlheader-showupdated": "भवतः सन्दर्शनस्य पश्चात् परिवर्तितानि पुटानि स्थूलाक्षरैः निर्दिष्टानि ।",
-       "wlnote": "अधस्तात् {{PLURAL:$1|'''1''' परिवर्तनमस्ति|अन्तिमानि '''$1''' परिवर्तनानि सन्ति}},{{PLURAL:$2|गते दिवसे|'''$2''' गतेषु दिवसेषु}}, , $3, $4. इति",
+       "watchlist-details": "समà¥\8dभाषणपà¥\83षà¥\8dठानि à¤µà¤¿à¤¹à¤¾à¤¯ {{PLURAL:$1|$1 à¤ªà¥\83षà¥\8dठà¤\82|$1 à¤ªà¥\83षà¥\8dठानि}} à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aिः ।",
+       "wlheader-enotif": "वि-पत्रस्य सूचनाः सक्रियाः ।",
+       "wlheader-showupdated": " येषु पृष्ठेषु भवता/भवत्या परिवर्तनं कृतम् आसीत्, तानि पृष्ठानि अत्र <strong>bold</strong> प्राप्यन्ते ।",
+       "wlnote": "$3 : $4 वादनं यावत् <strong>$2</strong> होरां यवात् {{PLURAL:$2|होरायां|होरासु}} {{PLURAL:$1|एकं परिवर्तनं|परिवर्तनानि <strong>$1</strong>}} अधः {{PLURAL:$1|अस्ति|सन्ति}}।",
        "wlshowlast": "अन्तिमाः $1 होराः, अन्तिमानि $2 दिनानि  दृश्यन्ताम्",
-       "watchlist-options": "à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलेः विकल्पाः",
+       "watchlist-options": "निरà¥\80à¤\95à¥\8dषासà¥\82à¤\9aेः विकल्पाः",
        "watching": "निरीक्षते...",
        "unwatching": "निरीक्षाम् अपाकरोति...",
        "watcherrortext": " \"$1\" कृते अवलोकनावल्याः व्यवस्थापरिवर्तनावसरे दोषः संविधितः ।",
        "enotif_subject_restored": "{{SITENAME}} पृष्ठं $1 इत्येतत् {{gender:$2 इत्यनेन|$2 इत्यनया}} पुनःस्थापितमस्ति",
        "enotif_subject_changed": "{{SITENAME}} पृष्ठं $1 इत्येतत् {{gender:$2 इत्यनेन|$2 इत्यनया}} परिवर्तितमस्ति।",
        "enotif_body_intro_deleted": "{{SITENAME}} पृष्ठं $1 इत्येतत् $PAGEEDITDATE इति दिनाङ्के {{gender:$2 इत्यनेन|$2 इत्यनया}} अपाकृतमस्ति,  $3 इत्येतत् दृश्यताम्।",
-       "enotif_body_intro_created": "{{SITENAME}} à¤ªà¥\83षà¥\8dठà¤\82 $1 à¤\87तà¥\8dयà¥\87ततà¥\8d $PAGEEDITDATE à¤\87ति à¤¦à¤¿à¤¨à¤¾à¤\99à¥\8dà¤\95à¥\87 {{gender:$2 à¤\87तà¥\8dयनà¥\87न|$2 à¤\87तà¥\8dयनया}} à¤°à¤\9aितमसà¥\8dति, à¤µà¤°à¥\8dतमानावà¥\83तà¥\8dतà¥\8dयरà¥\8dथà¥\87 $3 इत्येतत् दृश्यताम्।",
-       "enotif_body_intro_moved": "{{SITENAME}} à¤ªà¥\83षà¥\8dठà¤\82 $1 à¤\87तà¥\8dयà¥\87ततà¥\8d $PAGEEDITDATE à¤\87ति à¤¦à¤¿à¤¨à¤¾à¤\99à¥\8dà¤\95à¥\87 {{gender:$2 à¤\87तà¥\8dयनà¥\87न|$2 à¤\87तà¥\8dयनया}} à¤\9aालितमसà¥\8dति, à¤µà¤°à¥\8dतमानावà¥\83तà¥\8dतà¥\8dयरà¥\8dथà¥\87 $3 इत्येतत् दृश्यताम्।",
-       "enotif_body_intro_restored": "{{SITENAME}} à¤ªà¥\83षà¥\8dठà¤\82 $1 à¤\87तà¥\8dयà¥\87ततà¥\8d $PAGEEDITDATE à¤\87ति à¤¦à¤¿à¤¨à¤¾à¤\99à¥\8dà¤\95à¥\87 {{gender:$2 à¤\87तà¥\8dयनà¥\87न|$2 à¤\87तà¥\8dयनया}} à¤ªà¥\81नà¤\83सà¥\8dथापितमसà¥\8dति, à¤µà¤°à¥\8dतमानावà¥\83तà¥\8dतà¥\8dयरà¥\8dथà¥\87 $3 इति दृश्यताम्।",
-       "enotif_body_intro_changed": "{{SITENAME}} à¤ªà¥\83षà¥\8dठà¤\82 $1 à¤\87तà¥\8dयà¥\87ततà¥\8d $PAGEEDITDATE à¤\87ति à¤¦à¤¿à¤¨à¤¾à¤\99à¥\8dà¤\95à¥\87 {{gender:$2 à¤\87तà¥\8dयनà¥\87न|$2 à¤\87तà¥\8dयनया}} à¤ªà¤°à¤¿à¤µà¤°à¥\8dतितमसà¥\8dति, à¤µà¤°à¥\8dतमानावà¥\83तà¥\8dतà¥\8dयरà¥\8dथà¥\87 $3 इत्येतत् दृश्यताम्।",
+       "enotif_body_intro_created": "{{SITENAME}} à¤ªà¥\83षà¥\8dठà¤\82 $1 à¤\87तà¥\8dयà¥\87ततà¥\8d $PAGEEDITDATE à¤\87ति à¤¦à¤¿à¤¨à¤¾à¤\99à¥\8dà¤\95à¥\87 {{gender:$2 à¤\87तà¥\8dयनà¥\87न|$2 à¤\87तà¥\8dयनया}} à¤°à¤\9aितमसà¥\8dति, à¤µà¤°à¥\8dतमानसà¤\82सà¥\8dà¤\95रणारà¥\8dथà¤\82 $3 इत्येतत् दृश्यताम्।",
+       "enotif_body_intro_moved": "{{SITENAME}} à¤ªà¥\83षà¥\8dठà¤\82 $1 à¤\87तà¥\8dयà¥\87ततà¥\8d $PAGEEDITDATE à¤\87ति à¤¦à¤¿à¤¨à¤¾à¤\99à¥\8dà¤\95à¥\87 {{gender:$2 à¤\87तà¥\8dयनà¥\87न|$2 à¤\87तà¥\8dयनया}} à¤\9aालितमसà¥\8dति, à¤µà¤°à¥\8dतमानसà¤\82सà¥\8dà¤\95रणारà¥\8dथà¤\82 $3 इत्येतत् दृश्यताम्।",
+       "enotif_body_intro_restored": "{{SITENAME}} à¤ªà¥\83षà¥\8dठà¤\82 $1 à¤\87तà¥\8dयà¥\87ततà¥\8d $PAGEEDITDATE à¤\87ति à¤¦à¤¿à¤¨à¤¾à¤\99à¥\8dà¤\95à¥\87 {{gender:$2 à¤\87तà¥\8dयनà¥\87न|$2 à¤\87तà¥\8dयनया}} à¤ªà¥\81नà¤\83सà¥\8dथापितमसà¥\8dति, à¤µà¤°à¥\8dतमानसà¤\82सà¥\8dà¤\95रणारà¥\8dथà¤\82 $3 इति दृश्यताम्।",
+       "enotif_body_intro_changed": "{{SITENAME}} à¤ªà¥\83षà¥\8dठà¤\82 $1 à¤\87तà¥\8dयà¥\87ततà¥\8d $PAGEEDITDATE à¤\87ति à¤¦à¤¿à¤¨à¤¾à¤\99à¥\8dà¤\95à¥\87 {{gender:$2 à¤\87तà¥\8dयनà¥\87न|$2 à¤\87तà¥\8dयनया}} à¤ªà¤°à¤¿à¤µà¤°à¥\8dतितमसà¥\8dति, à¤µà¤°à¥\8dतमानसà¤\82सà¥\8dà¤\95रणारà¥\8dथà¤\82 $3 इत्येतत् दृश्यताम्।",
        "enotif_lastvisited": "भवतः पूवसन्दर्शनस्य पश्चात् सवृत्तपरिवर्तनार्थं $1 पश्यतु ।",
-       "enotif_lastdiff": "à¤\8fततà¥\8dपरिवरà¥\8dतनà¤\82 à¤¦à¥\83षà¥\8dà¤\9fà¥\81à¤\82 $1 पश्यतु ।",
+       "enotif_lastdiff": "परिवरà¥\8dतनà¤\82 à¤¦à¥\83षà¥\8dà¤\9fà¥\81मà¥\8d à¤\8fततà¥\8d $1 पश्यतु ।",
        "enotif_anon_editor": "अनामकः योजकः $1",
-       "enotif_body": "Dear $WATCHINGUSERNAME,\n\n$PAGEINTRO $NEWPAGE\n\nEditor's summary: $PAGESUMMARY $PAGEMINOREDIT\n\nContact the editor:\nmail: $PAGEEDITOR_EMAIL\nwiki: $PAGEEDITOR_WIKI\n\nThere will be no other notifications in case of further activity unless you visit this page. You could also reset the notification flags for all your watched pages on your watchlist.\n\n\t\t\t Your friendly {{SITENAME}} notification system\n\n--\nTo change your e-mail notification settings, visit\n{{canonicalurl:{{#special:Preferences}}}}\n\nTo change your watchlist settings, visit\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nTo delete the page from your watchlist, visit\n$UNWATCHURL\n\nFeedback and further assistance:\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\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": "पृष्ठं निराकरोतु।",
        "excontent": "\"$1\" आधेयः आसीत् ।",
        "excontentauthor": "आधेयः $1आसीत् । अपि च योगदाता तु \"[[Special:Contributions/$2|$2]]\" आसीत् ।",
        "exbeforeblank": "रिक्तीकरणात् पूर्वम् आधेयः \"$1\" आसीत् ।",
-       "delete-confirm": "विलà¥\81पà¥\8dयताम् \"$1\"",
-       "delete-legend": "विलà¥\81पà¥\8dयताम्",
-       "historywarning": "' पूर्वसूचना ''' भवता अपमर्जनसिद्धपुटे बहुशः  $1 इतिहासयुक्तः अस्ति ।{{PLURAL:$1|revision|revisions}}:",
+       "delete-confirm": "à¤\85पाà¤\95à¥\8dरियताम् \"$1\"",
+       "delete-legend": "à¤\85पाà¤\95à¥\8dरियताम्",
+       "historywarning": "<strong>पूर्वसूचना</strong> यत् पृष्ठं भवान्/भवती अपाकर्तुम् इच्छति, तस्य पृष्ठस्य बृहदितिहासः $1 विद्यते । {{PLURAL:$1|संस्करणम्|संस्करणानि}}:",
        "confirmdeletetext": "भवान् एकं पृष्ठं तस्य अखिलेन इतिहासेन सहितं अपाकर्तुं प्रवृत्तोऽस्ति। कृपया सुपुष्टीकरोतु यत् भवतः एतदेव आशयः, यद् भवता अस्य परिणामाः सुविज्ञाताः सन्ति तथा च भवता क्रियैषा [[{{MediaWiki:Policy-url}}| यथानीति]] सम्पाद्यते।",
        "actioncomplete": "कार्यं सम्पन्नम्",
        "actionfailed": "कार्यं रिष्टम् (failed)",
        "deletecomment": "कारणम् :",
        "deleteotherreason": "अपरं/अतिरिक्तं कारणम् :",
        "deletereasonotherlist": "इतर कारणम्",
-       "deletereason-dropdown": "*अपमर्जनस्य सामान्यकारणानि । \n** लेखकस्य निवेदनम् । \n** कृतिस्वाम्यस्य उल्लङ्घनम् । \n** नाशकत्वम् ।",
+       "deletereason-dropdown": "* अपाकरणस्य सामान्यकारणानि\n** स्पैम\n** नाशकत्वम्\n** प्रतिलिप्याधिकारस्य उल्लङ्घनम्\n** लेखकस्य अनुरोधः\n** विच्छिन्नः पुनर्निर्देशः",
        "delete-edit-reasonlist": "अपमार्जनकारणानि सम्पादयतु ।",
        "delete-toobig": "अस्य पुटास्य सम्पादनेतिहासः$1तः अधिकः {{PLURAL:$1|पुनरावृत्तिः}} इति कारणेन बृहत् अस्ति । \n{{SITENAME}} इत्यस्य अकस्मात् प्रविदारणम् अवरोद्धुं तादृशपुटस्य अपमर्जनं निषिद्धम्  ।",
-       "delete-warning-toobig": " $1 {{PLURAL:$1|पुनरावृत्तिः|पुनरावृत्तयः}} अस्मिन् पुटे विसृतः सम्पादनेतिहासः ।",
+       "delete-warning-toobig": " $1 {{PLURAL:$1|संस्करणम्|संस्करणानि}} अस्मिन् पुटे विसृतः सम्पादनेतिहासः ।",
+       "deleteprotected": "एतत् पृष्ठं संरक्षितम् अस्ति, अतः भवान्/भवती एतत् अपाकर्तुं न शक्नोति ।",
+       "deleting-backlinks-warning": "'''पूर्वसूचना :''' यत् पृष्ठं भवान्/भवती अपाकर्तुम् इच्छति, तत् पृष्ठं [[Special:WhatLinksHere/{{FULLPAGENAME}}|अन्यपृष्ठेन सह]] परिसन्धितम् अस्ति उत तत् transclude कुर्वन्ति ।",
        "rollback": "सम्पादनं निर्वर्तयतु ।",
        "rollbacklink": "प्रत्याहरणं",
        "rollbacklinkcount": "$1 {{PLURAL:$1|सम्पादनम्|सम्पादनानि}} प्रत्याहरतु ।",
        "alreadyrolled": "[[User:$2|$2]] ([[User talk:$2|वार्ता]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) द्वारा कृतम्  [[:$1]] इत्यस्य गतसम्पादनं पूर्वतनस्थितौ प्रत्याहरणं न शक्यते । अत्रान्तरे कोऽप्यन्यः एतत्पुटं पुनस्सम्पादितवान् अथवा पूर्वमेव प्राचीनस्थितौ आनीतम् अस्ति ।\nअस्य पुटास्य अन्तिमसम्पादनं [[User:$3|$3]] ([[User talk:$3|वार्ता]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) इत्यनेन कृतम् ।",
        "editcomment": "\"''$1''\" इति सम्पादनसारः आसीत् ।",
        "revertpage": "[[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]])इत्यस्य सम्पादनम् अपमर्ज्य  [[User:$1|$1]] इति अन्तिमपुनरावृत्तिः ।",
-       "revertpage-nouser": "(यà¥\8bà¤\9cà¤\95सà¥\8dय à¤¨à¤¾à¤® à¤\85पनà¥\80तमà¥\8d) à¤¦à¥\8dवारा à¤\95à¥\83तसमà¥\8dपादनà¤\82 à¤ªà¥\82रà¥\8dवसà¥\8dथितà¥\8c à¤ªà¥\8dरतà¥\8dयाहà¥\83तà¥\8dय à¤¤à¤¤à¥\8dपà¥\82रà¥\8dवतनसà¥\8dय [[User:$1|$1]] à¤¦à¥\8dवारा à¤\95à¥\83तपà¥\81नरावà¥\83तà¥\8dतà¥\87à¤\83 à¤¨à¥\82तनावà¥\83तà¥\8dतिà¤\83 à¤\95à¥\83ता ।",
+       "revertpage-nouser": "(यà¥\8bà¤\9cà¤\95सà¥\8dय à¤¨à¤¾à¤® à¤\85पाà¤\95à¥\83तमà¥\8d) à¤\87तà¥\8dयसà¥\8dय à¤¸à¤®à¥\8dपादनानि à¤\85पाà¤\95à¥\83तà¥\8dय {{GENDER:$1|[[User:$1|$1]]}} à¤\87तà¥\8dयसà¥\8dय à¤\85नà¥\8dतिमà¤\82 à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 à¤ªà¥\82रà¥\8dववतà¥\8d à¤\95à¥\83तमà¥\8d ।",
        "rollback-success": "$1 इत्यस्य सम्पादनम् अपनयतु । \n$2 द्वारा सम्पादितां अन्तिमावृत्तिं पुनस्थापयतु ।",
        "sessionfailure-title": "सत्रस्य वैफल्यम् ।",
        "sessionfailure": "भवतः प्रवेशत्रेण सह कापि समस्या अस्ति इति भाति ।\nसत्रापहरणात् रक्षणस्य सावधानार्थं भवतः क्रियाकलापः अपनीतः ।\nनिर्गत्य पूर्वपुटं गत्वा पुनः गत्वा प्रयत्नं करोतु ।",
        "prot_1movedto2": "[[$1]] इत्यस्य नामपरिवर्तनं कृत्वा [[$2]] इति कृतम् ।",
        "protect-badnamespace-title": "असुरक्षितं नामस्थानम् ।",
        "protect-badnamespace-text": "अस्मिन् नामस्थाने पुटानि सुरक्षितानि न भवन्ति ।",
+       "protect-norestrictiontypes-text": "तत्र संरक्षणप्रकारः न विद्यते अतः एतत् पृष्ठं संरक्षितुं न शक्यते ।",
+       "protect-norestrictiontypes-title": "असुरक्षितं पृष्ठम्",
        "protect-legend": "सुरक्षां दृढयतु ।",
        "protectcomment": "कारणम् :",
        "protectexpiry": "अवसानम् :",
        "protect-locked-blocked": "भवान् सुरक्शणस्य स्तरं परिवर्तयितुं नैव शक्नोति ।\n'''$1'' इति पुटस्य वर्तमाना स्थितिः एषा अस्ति ।",
        "protect-locked-dblock": "सक्रियेन दत्तपाठतालनेन सुरक्षापत्राणि परिवर्तयितुं न शक्यते ।\n'''$1''' इत्यस्य वर्तमाना स्थितिः एषा अस्ति ।",
        "protect-locked-access": "भवान् अस्य पृष्ठस्य सुरक्षा-स्तरं परिवर्तयितुम् अनुज्ञां न धारयति। '''$1''' इति पृष्ठस्य अधुनातनः सुरक्षा-स्तरः :",
-       "protect-cascadeon": "à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤µà¤°à¥\8dतमतà¥\8dà¤\95ालà¥\87 à¤¸à¥\81रà¤\95à¥\8dषितमसà¥\8dति, à¤¯à¤¤ à¤\87दà¤\82 {{PLURAL:$1|निमà¥\8dनलिà¤\96ितà¥\87 à¤ªà¥\83षà¥\8dठà¥\87 |निमà¥\8dनलिà¤\96ितà¥\87षà¥\81 à¤ªà¥\83षà¥\8dठà¥\87षà¥\81}} à¤¸à¤®à¤¾à¤¹à¤¿à¤¤à¤®à¤¸à¥\8dति {{PLURAL:$1|यसà¥\8dमिनà¥\8d|यà¥\87षà¥\81}} à¤¸à¥\8bपानातà¥\8dमिà¤\95ा à¤¸à¥\81रà¤\95à¥\8dषा à¤ªà¥\8dरभाविनà¥\80 à¤\85सà¥\8dति। à¤­à¤µà¤¾à¤¨à¥\8d à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¥\81रà¤\95à¥\8dषा-सà¥\8dतरà¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतयितà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति, à¤ªà¤°à¤\82 à¤¤à¥\87न à¤¸à¥\8bपानातà¥\8dमिà¤\95ा-सà¥\81रà¤\95à¥\8dषा à¤¨ à¤ªà¤°à¤¿à¤µà¤°à¥\8dतयिषà¥\8dयति।",
+       "protect-cascadeon": "à¤\8fततà¥\8d à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤¦à¥\8dयà¤\83 à¤¸à¤\82रà¤\95à¥\8dषितमà¥\8d à¤\85सà¥\8dति, à¤¯à¤¤à¥\8b à¤¹à¤¿ {{PLURAL:$1|à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय|à¤\8fतà¥\87षाà¤\82 à¤ªà¥\83षà¥\8dठानाà¤\82}} à¤¸à¥\81रà¤\95à¥\8dषा-सà¥\8bपानà¥\87 à¤µà¤¿à¤¦à¥\8dयतà¥\87 à¥¤ à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¥\81रà¤\95à¥\8dषा-सà¥\8dतरà¥\87 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¤\82 à¤\95à¥\83तà¥\87 à¤¸à¤¤à¤¿ à¤¸à¥\81रà¤\95à¥\8dषा-सà¥\8bपानà¥\87 à¤ªà¤°à¤¿à¤µà¤°à¥\8dनà¤\82 à¤¨ à¤­à¤µà¤¿à¤·à¥\8dयति ।",
        "protect-default": "सर्वान् प्रयोक्तॄन् अनुज्ञापयतु।",
-       "protect-fallback": "\"$1\" अनुज्ञा आवश्यकी।",
-       "protect-level-autoconfirmed": "नà¥\82तनानà¥\8d à¤¤à¤¥à¤¾ à¤\85पà¤\82à¤\9cà¥\80à¤\95à¥\83तानà¥\8d à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\84नà¥\8d à¤¨à¤¿à¤°à¥\81धà¥\8dनातà¥\81।",
-       "protect-level-sysop": "पà¥\8dरबà¤\82धà¤\95ाà¤\83 à¤\95à¥\87वलाः",
+       "protect-fallback": "\"$1\" अनुज्ञायुक्ताः योजकाः अनुमिताः",
+       "protect-level-autoconfirmed": "सà¥\8dवानà¥\81मà¥\8bदिताà¤\83 à¤¯à¥\8bà¤\9cà¤\95ा à¤\8fव à¤\85नà¥\81मिताà¤\83",
+       "protect-level-sysop": "à¤\95à¥\87वलà¤\82 à¤ªà¥\8dरबनà¥\8dधà¤\95ाà¤\83 à¤\85नà¥\81मिताः",
        "protect-summary-cascade": "सोपानात्मकम्",
        "protect-expiring": "अवसानम् $1 (UTC)",
        "protect-expiring-local": "$1 अपनीतम् ।",
        "protect-othertime": "अन्यः समयः ।",
        "protect-othertime-op": "अन्यः समयः :",
        "protect-existing-expiry": "विद्यमानः समाप्तिसमयः  $3, $2",
+       "protect-existing-expiry-infinity": "विद्यमानः समाप्तिसमयः : अनन्तः",
        "protect-otherreason": "अपरं/अतिरिक्तं कारणम् :",
        "protect-otherreason-op": "इतर कारणम्",
        "protect-dropdown": "*सुरक्षायाः सामान्यकारणानि । \n** अत्यधिकं नाशकत्वम् ।\n** अत्यधिकं शुष्कसन्देशाः ।\n** अफलदायि सम्पादनयुद्धम्\n** अधिकसञ्चारयुक्तपुटानि ।",
        "undeletepage": "अपमर्जितपुटानि दृष्ट्वा पुनस्थापयतु ।",
        "undeletepagetitle": "'''अधः [[:$1|$1]] इत्येतेषाम् अपनीतावृत्तीनां दर्शनं भवति ।",
        "viewdeletedpage": "अपमर्जितपुटानि अवलोकयतु ।",
-       "undeletepagetext": "{{PLURAL:$1|$1पुटं|$1 पुटानि}} इत्येतानि अपनीतानि किन्तु  एतानि लेखागारे सन्ति अपि च पुनस्थापितानि कर्तुं शक्यते ।",
-       "undelete-fieldset-title": "पà¥\81नरावà¥\83तà¥\8dतà¥\80à¤\83 à¤ªà¥\81नसà¥\8dथापयतà¥\81 à¥¤",
+       "undeletepagetext": "{{PLURAL:$1|$1 पृष्ठं|$1 पृष्ठानि}} इत्येतानि अपनीतानि किन्तु एतानि लेखागारे सन्ति अपि च पुनस्थापितानि कर्तुं शक्यते ।",
+       "undelete-fieldset-title": "सà¤\82सà¥\8dà¤\95रणà¤\82 à¤ªà¥\81नसà¥\8dथापà¥\8dयतामà¥\8d",
        "undeleteextrahelp": "पुटानाम् इतिहासं प्रत्याहर्तुं चिह्नितमञ्जूषाः अवचिताः कृत्वा '''''{{int:undeletebtn}}''''' इत्येतत् तुदतु ।  \nविचितेतिहासं प्रत्याहर्तुं तद्वृत्तीनां पार्श्वगतचिह्नमञ्जूषासु चयनचिह्नानि विनिवेशयतु । पश्चात्'''''{{int:undeletebtn}}''''' एतत् तुदतु  ।",
        "undeleterevisions": "$1 {{PLURAL:$1|पुनरावृत्तिः}}",
        "undeletehistory": "यदि भवान् पुटानि पुनस्थापयितुमिच्छति तर्हि पुनरवृत्तीनां सर्वेतिहासाः पुनस्थापितानि भवन्ति । \nअपनयनात् परं यदि तस्मिन् एव नाम्नि नूतनपुटनिर्माणं करोति चेत् तस्य पुनस्थापितावृत्तिः पूर्वेतिहासे एव दृश्यते ।",
        "undeleterevdel": "यदि पुनस्थापनस्य फलस्वरूपशीर्षकपुटं, सञ्चिकां, पुनरावृत्तिं वा आंशिकरूपेण नाशयति चेत् एतत् न क्रियते ।\nएतादस्थितौ नूतनापनीताः पुनरावृत्तीनाम् अपचयनं असङ्गोपनं वा कुर्याट् ।",
        "undeletehistorynoadmin": "एतत्पुटम् अपमर्जितम् ।\nअधः अपमर्जनस्य कारणं दर्शितम् । अपमर्जनात् पूर्वं ये योजकाः सम्पादनं कृतवन्तः तेषां विषयः अपि दर्शिताः । \nअपमर्जितपुनरावृत्तीनां वास्तवपाठः केवलं प्रशासकै दृष्टुं शक्यते ।",
-       "undelete-revision": "$1 ($4 इत्येतं $5 समये $3 द्वारा निर्मितम्) इत्येतेषाम् अपमर्जितपुनरावृत्तयः ।",
-       "undeleterevision-missing": "à¤\85मानà¥\8dया à¤\85थवा à¤µà¤¿à¤²à¥\81पà¥\8dता à¤ªà¥\81नरावà¥\83तà¥\8dतिà¤\83 à¥¤ à¤­à¤µà¤¾à¤¨à¥\8d à¤ªà¥\8dरदà¥\81षà¥\8dà¤\9fानà¥\81बनà¥\8dधयà¥\81à¤\95à¥\8dतà¤\83 à¤\85थवा à¤ªà¥\81नरावà¥\83तà¥\8dतिà¤\83 à¤ªà¥\81नसà¥\8dथापिता à¤\85थवा à¤²à¥\87à¤\96ाà¤\97ारातà¥\8d à¤\85पनà¥\80ता ।",
-       "undelete-nodiff": "पà¥\82रà¥\8dवतनपà¥\81नरावà¥\83तà¥\8dतिà¤\83 à¤¨ à¤¦à¥\83षà¥\8dà¤\9fा ।",
-       "undeletebtn": "पà¥\81नà¥\8dथापयतà¥\81 à¥¤",
+       "undelete-revision": "$3 द्वारा $1 ($4 दिनाङ्के $5 वादने) इत्येतेतस्य पृष्ठस्य अपाकृतं संस्करणम् ।",
+       "undeleterevision-missing": "à¤\85मानà¥\8dयमà¥\8d à¤\85थवा à¤µà¤¿à¤²à¥\81पà¥\8dतà¤\82 à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d à¥¤ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 \nà¤\95दाà¤\9aितà¥\8d à¤\85यà¥\8bà¤\97à¥\8dयपरिसनà¥\8dधà¥\87à¤\83 à¤\89पयà¥\8bà¤\97à¤\82 à¤\95रà¥\8bति, à¤\85थवा à¤¤à¥\81 à¤\8fततà¥\8d à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 à¤ªà¥\82रà¥\8dवमà¥\87व à¤ªà¥\81नरà¥\8dसà¥\8dथापितमà¥\8d à¤\85सà¥\8dति à¥¤ à¤²à¥\87à¤\96ाà¤\97ारातà¥\8d à¤¨à¤¿à¤·à¥\8dà¤\95ासितà¤\82 à¤¸à¥\8dयादà¥\8dवा ।",
+       "undelete-nodiff": "पà¥\82रà¥\8dवतनसà¤\82सà¥\8dà¤\95रणà¤\82 à¤¨ à¤ªà¥\8dरापà¥\8dतमà¥\8d ।",
+       "undeletebtn": "पà¥\81नसà¥\8dसà¥\8dथापà¥\8dयतामà¥\8d",
        "undeletelink": "दृश्यताम्/प्रत्यानयताम्",
        "undeleteviewlink": "दृश्यताम्",
        "undeleteinvert": "चयनं परिवर्तयतु ।",
        "undeletecomment": "कारणम् :",
-       "undeletedrevisions": "{{PLURAL:$1| पुनरावृत्तिः पुनस्थापिता|$1 पुनरावृत्तयः पुनस्थापिताः}} अस्ति|सन्ति ।",
-       "undeletedrevisions-files": "{{PLURAL:$1|1 à¤ªà¥\81नरावà¥\83तà¥\8dतिà¤\83|$1 à¤ªà¥\81नरावà¥\83तà¥\8dतयà¤\83}} à¤\85पि à¤\9a {{PLURAL:$2|१सञ्चिका|$2 सञ्चिकाः}} पुनस्थापिताः सन्ति ।",
+       "undeletedrevisions": "{{PLURAL:$1|संस्करणं पुनस्थापितं|$1 संस्करणानि पुनस्थापितानि}}",
+       "undeletedrevisions-files": "{{PLURAL:$1|1 à¤¸à¤\82सà¥\8dà¤\95रणà¤\82|$1 à¤¸à¤\82सà¥\8dà¤\95रणानि}} à¤\85पि à¤\9a {{PLURAL:$2|१ सञ्चिका|$2 सञ्चिकाः}} पुनस्थापिताः सन्ति ।",
        "undeletedfiles": "{{PLURAL:$1|१सञ्चिका|$1 सञ्चिकाः}} पुनस्थापिताः ।",
-       "cannotundelete": "à¤\85नपमरà¥\8dà¤\9cनमà¥\8d à¤\85सफलमà¥\8d à¥¤ \nपà¥\8dरथमà¤\82 à¤\95à¥\8bऽपà¥\8dयनà¥\8dयà¤\83 à¤ªà¥\81à¤\9fमà¥\8d à¤\85पमरà¥\8dà¤\9cितवानà¥\8d à¤¸à¥\8dयातà¥\8d à¥¤",
+       "cannotundelete": "à¤\85नपाà¤\95रणमà¥\8d à¤\85सफलमà¥\8d :\n$1",
        "undeletedpage": "'''$1 इत्येतत् पुनस्थापितम् अस्ति । \nसद्यः अपनीतानि पुनस्थापितानि च पुटाणि ज्ञातुम् अत्र पश्यतु । [[Special:Log/delete|अपनयनप्रवेशः]] ।",
        "undelete-header": "सद्यः एव अपनीतानां पुटानां दर्शनार्थं अत्र प्रविशतु । [[Special:Log/delete|अपनीतावली]] ।",
        "undelete-search-title": "अपमर्जितपुटानि अन्विषतु ।",
        "namespace": "नामाकाशः:",
        "invert": "विरुद्धचयनम्",
        "tooltip-invert": "चितनामस्थाने परिवर्तनं गोपयितुं मञ्जूषाम् अर्गलयतु ।",
+       "tooltip-whatlinkshere-invert": "चितनामस्थाने पृष्ठस्य परिसन्धियः गोपयितुम् अङ्कनपेटिकायां चिह्नं करोतु ।",
        "namespace_association": "सम्बद्धं नामस्थानम् ।",
        "tooltip-namespace_association": "चितनामस्थानेन सह सम्बद्धं विषयनामस्थानम् अथवा सम्भाषणम् अपि उपादातुम् इमां मञ्जूषाम् अर्गलयतु ।",
        "blanknamespace": "(मुख्यम्)",
        "contributions-title": "$1 कृते योजकस्य योगदानानि",
        "mycontris": "योगदानानि",
        "contribsub2": "($2) कृते {{GENDER:$3|$1}}",
+       "contributions-userdoesnotexist": "\"$1\" इत्यषा योजकलेखा पञ्जीकृतं नास्ति ।",
        "nocontribs": "एतादृशयोग्यताभिः समं परिवर्तनानि न दृष्टानि ।",
        "uctop": "वर्तमानः",
        "month": "अस्मात् मासात् (प्राक्तनानि च):",
        "sp-contributions-newbies-sub": "नूतनलेखार्थम् ।",
        "sp-contributions-newbies-title": "नूतनलेखार्थं योजकयोगदानम् ।",
        "sp-contributions-blocklog": "अवरोधाऽऽवलिः",
-       "sp-contributions-deleted": "योजकयोगदानम् अपमर्जतु ।",
+       "sp-contributions-suppresslog": "अपमर्जितानि योजकयोगदानानि",
+       "sp-contributions-deleted": "योजकस्य अपाकृतं योगदानम्",
        "sp-contributions-uploads": "उपारोहणानि",
-       "sp-contributions-logs": "सà¤\82सà¤\95à¥\8dषितावल्यः (Logs)",
+       "sp-contributions-logs": "सà¤\82रà¤\95à¥\8dषिताऽऽवल्यः (Logs)",
        "sp-contributions-talk": "सम्भाषणम्",
        "sp-contributions-userrights": "योजकाधिकारस्य व्यवस्थापनम् ।",
        "sp-contributions-blocked-notice": "अयं प्रयोक्ता सम्प्रति अवरुद्धः वर्तते।\nनूतनतमा अवरोधाभिलेख-प्रविष्टिः सन्दर्भार्थम् अधस्तात् प्रदत्ताऽस्ति:",
        "sp-contributions-search": "योगदानानि अन्विष्यन्ताम्",
        "sp-contributions-username": "अन्तर्जालसंविद् (I P address) योजकनाम वा :",
        "sp-contributions-toponly": "सम्पादनानां नूतनतमा आवलिः दृश्यताम्",
+       "sp-contributions-newonly": "केवलं पृष्ठनिर्माणस्य सम्पादनानाम् आवलिः दृश्यताम्",
        "sp-contributions-submit": "अन्विष्यताम्",
        "whatlinkshere": "अनेन सह सम्बद्धाः",
        "whatlinkshere-title": "\"$1\" सम्बद्धानि पृष्ठानि",
        "whatlinkshere-page": "पृष्ठम्:",
        "linkshere": "'''[[:$1]]''' इत्यनेन सह अधो लिखितानां पृष्ठानां परिसन्धिं करोतु:",
        "nolinkshere": "'''[[:$1]]''' इत्यनेन सह न किमपि पृष्ठं परिसन्धितम्",
-       "nolinkshere-ns": "à¤\9aितनामसà¥\8dथानातà¥\8d  '''[[:$1]]''' à¤\87तà¥\8dयà¥\87नà¤\82 à¤¯à¥\8bà¤\9cनयà¥\8bà¤\97à¥\8dयà¤\82 à¤ªà¥\81à¤\9fं नास्ति  ।",
+       "nolinkshere-ns": "à¤\9aितनामसà¥\8dथानातà¥\8d  '''[[:$1]]''' à¤\87तà¥\8dयà¥\87नà¤\82 à¤¯à¥\8bà¤\9cनयà¥\8bà¤\97à¥\8dयà¤\82 à¤ªà¥\83षà¥\8dठं नास्ति  ।",
        "isredirect": "अनुप्रेषण-पृष्ठम्",
        "istemplate": "अन्यलेखभागः (transclusion)",
        "isimage": "सञ्चिकासम्बन्धः",
        "autoblockid": "स्वयं पिहितम् । $1",
        "block": "योजकम् अवरुणद्धु ।",
        "unblock": "योजकम् अनवरुणद्धु ।",
-       "blockip": "प्रयोक्तारं निरुध्नातु",
+       "blockip": "{{GENDER:$1|योजकः}} अवरुद्ध्यताम्",
        "blockip-legend": "योजकम् अवरुणद्धु ।",
        "blockiptext": "विशिष्टं  IP सङ्केतम् अथवा योजकनाम लेखानाधिकारस्य प्राप्तये निम्नदत्तपत्रस्य उपयोगं करोतु ।\nकेवलं नाशकत्वम् अवरोद्धुं एतस्य उपयोगं करोतु । [[{{MediaWiki:Policy-url}}|नीतिः]] इत्यानुसारं करणीयम् ।\nअधः विशिष्टं कारणमपि लिखतु ।",
        "ipaddressorusername": "आइ.पी.सङ्केतः अथवा योजकनाम :",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]]इत्येतत् अवरुद्धम् । <br />\nअवरोधानां समीक्षां करोतु । [[Special:BlockList|IP अवरोधसूचिका]]",
        "ipb-blockingself": "भवान् स्वयम् अवरोधने निरतः । निश्चयेन स्वावरोधनम् इच्छति वा ?",
        "ipb-confirmhideuser": "योजकगोपनस्य पिञ्जं निपीडयन् भवान् योजकावरुद्धिं यतते । एतत् सर्वावलीषु सर्वप्रवेशसूचिकासु च योजकनाम निग्रहति । भवान् निश्चयेन एतत् कर्तुमिच्छति वा ?",
+       "ipb-confirmaction": "भवान्/भवती निश्चयेन एतत् कर्तुम् इच्छति चेत्  \"{{int:ipb-confirm}}\" इत्येत् कुड्मलं समर्थयतु",
        "ipb-edit-dropdown": "अवरोधकारणानि सम्पादयतु ।",
        "ipb-unblock-addr": "$1 अनवरोधनं करोतु ।",
        "ipb-unblock": "योजकनाम अथवा ऐपिसङ्केतम् अवरुणद्धु ।",
        "ipb-blocklist": "वर्तमानावरोधान् अवलोकयतु ।",
-       "ipb-blocklist-contribs": "$1कृते योगदानम् ।",
+       "ipb-blocklist-contribs": "{{GENDER:$1|$1}} कृते योगदानम्",
        "unblockip": "योजकसु अवरोधं परिहरतु ।",
        "unblockiptext": "सद्यः अवरुद्धान् ऐपिसङ्केतान् अथवा अवरुद्धानि योजकनामानि पुनस्संस्थाप्य लिखनावकाशं प्राप्तुम् अधो दत्तप्रपत्रस्य उपयोगं करोतु ।",
        "ipusubmit": "अवरोधम् अपनयतु ।",
        "unblocked": "[[User:$1|$1]] इति योजकस्य अवरोधम् अपनयतु ।",
        "unblocked-range": "$1 इत्येतस्य अवरोधः कृतः ।",
        "unblocked-id": "$1 इत्यस्य अवरोधः अपनीतः ।",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] स्थनसूच्याः निष्कासितः ।",
        "blocklist": "अवरुद्धाः योजकाः ।",
        "ipblocklist": "अवरुद्धाः योजकाः",
        "ipblocklist-legend": "अवरुद्धयोजकं पश्यतु ।",
        "anononlyblock": "अनामकः केवलम् ।",
        "noautoblockblock": "स्वयमवरोधः निष्क्रियः ।",
        "createaccountblock": "योजकस्थाननिर्माणं निष्क्रियम् ।",
-       "emailblock": "विद्युन्मानपत्रं निष्क्रियम् ।",
+       "emailblock": "वि-पत्रं निष्क्रियम्",
        "blocklist-nousertalk": "स्वस्य सम्भाषणपुटं सम्पादयितुं न शक्यते ।",
        "ipblocklist-empty": "अवरोधावली रिक्ता अस्ति ।",
        "ipblocklist-no-results": "अभ्यर्थितः ऐपिसङ्केतः अथवा अभ्यर्थितः योजकनाम अवरुद्धं न ।",
        "unblocklink": "अवरोधः निरस्त्यताम्",
        "change-blocklink": "अवरोधः परिवर्त्यताम्",
        "contribslink": "योगदानानि",
-       "emaillink": "विद्युन्मानपत्रं प्रेषयतु ।",
-       "autoblocker": "भवतः ऐपि सङ्केतः स्वयम् अवरुद्धः यः सद्यः काले एव [[User:$1|$1]]\" इत्यनेन उपयुक्तः । \n$1 इत्यस्य अवरोधस्य कारणं तु \"$2\" अस्ति ।",
+       "emaillink": "वि-पत्रं प्रेषयतु",
+       "autoblocker": "भवतः/भवत्याः अन्तर्जालसङ्केतः \"[[User:$1|$1]]\" इत्यनेन उपयुज्यमानः अस्ति, अतः स्वतः अवरुद्धः ।\n$1 इत्यस्य अवरोधनस्य \"$2\" इत्येतत् कारणं विद्यते ।",
        "blocklogpage": "अवरोधाऽऽवलिः",
        "blocklog-showlog": "अयम् एपि सङ्केतः पूर्वमेव अवरुद्धः । \nअवरोधसूची आधाराय अधः दत्तः अस्ति :",
        "blocklog-showsuppresslog": "अयं योजकः पूर्वमेव अवरुद्धः सङ्गुप्तः च  ।\nनिग्रहकरणं तु अधः उल्लिखितम् ।",
        "block-log-flags-anononly": "अनामकाः योजकाः केवलम् ।",
        "block-log-flags-nocreate": "सदस्यता प्राप्तिः अवरुद्धा अस्ति",
        "block-log-flags-noautoblock": "स्वयमवरोधः निष्क्रियः ।",
-       "block-log-flags-noemail": "विद्युन्मानपत्रं निष्क्रियम् ।",
+       "block-log-flags-noemail": "वि-पत्रं निष्क्रियम्",
        "block-log-flags-nousertalk": "स्वस्य सम्भाषणपुटं सम्पादयितुं न शक्यते ।",
        "block-log-flags-angry-autoblock": " उन्नतीकृतः स्वयमवरोधः सक्रियः ।",
        "block-log-flags-hiddenname": "योजकस्य नाम सङ्गुप्तम् ।",
        "range_block_disabled": " प्रादेशिकावरोधस्य प्रशासकस्य सामर्थ्यं निष्क्रियम् ।",
        "ipb_expiry_invalid": "अवसानसमयः अमान्योऽस्ति।",
        "ipb_expiry_temp": "सङ्गुप्तयोजकनामावरोधः शश्वतः भवेत् ।",
-       "ipb_hide_invalid": "à¤\8fतसà¥\8dय à¤¯à¥\8bà¤\9cà¤\95सà¥\8dथानसà¥\8dय à¤¨à¤¿à¤\97à¥\8dरहà¤\83 à¤\85साधà¥\8dयà¤\83 à¥¤ à¤\85सà¥\8dमिनà¥\8d à¤\85नà¥\87à¤\95ानि à¤¸à¤®à¥\8dपादनानि à¤¸à¥\8dयà¥\81à¤\83 ।",
+       "ipb_hide_invalid": "à¤\8fताà¤\82 à¤²à¥\87à¤\96ाà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dयतà¥\87, à¤¯à¤¤à¥\8b à¤¹à¤¿ à¤\8fतसà¥\8dय à¤¯à¥\8bà¤\97दानà¤\82 {{PLURAL:$1|à¤\8fà¤\95समà¥\8dपादनातà¥\8d|$1 à¤¸à¤®à¥\8dपादनà¥\87भà¥\8dयà¤\83}} à¤\85धिà¤\95मà¥\8d à¤\85सà¥\8dति ।",
        "ipb_already_blocked": "\"$1\" इत्येषः पूर्वमेव अवरुद्धः ।",
        "ipb-needreblock": "$1 इत्येषः पूर्वमेव अवरुद्धः विन्यासं परिवर्तयितुमिच्छति वा ?",
        "ipb-otherblocks-header": "अन्याः {{PLURAL:$1|अवरोधः |अवरोधाः}}",
        "proxyblockreason": "भवतः ऐपि सङ्केतः अवरुद्धः  यतः अयं कश्चन मुक्तप्रतिहस्तकः । \nअन्तर्जालसेवादायकं सम्पर्कयतु गभीरायाः सुरक्षासमस्यायाः विषये सूचयतु च",
        "sorbsreason": "DNSBL उपयोगः {{SITENAME}} कृतस्य भवतः ऐपिसङ्केतः मुक्तप्रतिहस्तकः इति आवलीगतः",
        "sorbs_create_account_reason": "DNSBL उपयुक्तः {{SITENAME}} अतः भवतः ऐपिसङ्केतः अवरुद्धः यतः अयं मुक्तप्रतिहस्तकः इति आवलीगतः । अतः भवान् योजकस्थानं निर्मातुं न शक्नोति ।",
+       "xffblockreason": "X-Forwarded-For इत्यस्मिन् स्थितः शिरोभागः भवाताम् उत यत् प्रतिनिधिवितरकं भवान्/भवती उपयुङ्क्ते, सः प्रतिबन्धितः अस्ति । अवरोधस्य मूलकारणम् $1 आसीत् ।",
        "cant-see-hidden-user": "यं योजकः अवरोद्धं भवान् प्रयतमानः सः पूर्वमेव अवरुद्धः सङ्गुप्तः च ।\nभवान् तु योजकसङ्गोपनाधिकारयुक्तः न । अतः भवान् योजकावरोधं दृष्टुं सम्पादयितुं वा न शक्नोति ।",
        "ipbblocked": "भवान् अन्ययोजकान् अवरोद्धुम् विमोचयितुं वा न शक्नोति । यतः भवान् तु अवरुद्धः अस्ति ।",
        "ipbnounblockself": "भवान् भवन्तं मोचयितुं नैव शक्नोति ।",
        "lockedbyandtime": "(द्वारा {{GENDER:$1|$1}} इत्यस्मिन् $2 अत्र $3)",
        "move-page": " $1 चालयतु ।",
        "move-page-legend": "पृष्ठं रक्ष्यताम्",
-       "movepagetext": "अधोतत्तं प्रपत्रमुपयुज्य  पुटस्य पुनर्नामकरणं करिष्यति । अस्य पूर्णेतिहासः नूतनेन नाम्ना सह गच्छति । \nनूतनशीर्षकस्य प्राचीनशीर्षकं पुनर्निदिष्टं  भवति । \nभवान् पुनर्निदेशान् उन्नतीकरोतु यत् स्वयं मूलशीर्षकं निदेशति । \nयदि भवान् एवं कर्तुं नैव शक्नोति तर्हि  [[Special:DoubleRedirects|द्विगुणम्]]पुनर्दिदेशाः[[Special:BrokenRedirects|भग्नपुनर्निदेशाः]] एतदर्थम् अवश्यं परिशीलयतु । \nएतत् भवतः दायित्वं यत् अनुबन्धाः सुनिश्चितं स्थानं नयेयुः ।\nयदि नूतनशीर्षकस्य लेखः पूर्वमेवास्ति तर्हि स्थानान्तरणं न भविष्यति । नूतनशीर्षकयुक्तलेखः रिक्तमस्ति अथवा कुत्रचित् अनुप्रेषणं करोति अपि च अनेन सह प्राचीनेतिहासः नास्ति चेत् स्थानान्तरणं न सम्भविष्यति ।\nअर्थात् यदि भवता दोषः संवृत्तः चेत् भवान् पुनः प्राचीननाम्ना एतत्पुटं स्थानान्तरणं कर्तुं शक्नोति । अपि च किञ्चिदपि वर्तमानपुटस्य स्थाने एतत् स्थानान्तरणं कर्तुं नैव शक्नोति ।\nपूर्वसूचना : यदि पुटं प्रसिद्धं तर्हि तस्य एतत् बृहत् अथवा अकस्मात् परिवर्तनं भवितुमर्हति ।\nअनुवर्तनात् पूर्वम् अस्य परिणामं सम्यक् चिन्तयतु ।\n\n'''सूचना'''\nस्थानान्तरकरणेन कस्मिंश्चित् महालेखे अनपेक्षितं परिवर्तनं सम्भवेत् ।\nअतः भवति निवेदनम् अस्ति यत् भवान् पूवमेव परिणामं चित्नयतु ।",
-       "movepagetext-noredirectfixer": "अधोतत्तं प्रपत्रमुपयुज्य  पुटस्य पुनर्नामकरणं करिष्यति । अस्य पूर्णेतिहासः नूतनेन नाम्ना सह गच्छति । \nनूतनशीर्षकस्य प्राचीनशीर्षकं पुनर्निदिष्टं  भवति । \nभवान् पुनर्निदेशान् उन्नतीकरोतु यत् स्वयं मूलशीर्षकं निदेशति । \nयदि भवान् एवं कर्तुं नैव शक्नोति तर्हि  [[Special:DoubleRedirects|द्विगुणम्]]पुनर्दिदेशाः[[Special:BrokenRedirects|भग्नपुनर्निदेशाः]] एतदर्थम् अवश्यं परिशीलयतु । \nएतत् भवतः दायित्वं यत् अनुबन्धाः सुनिश्चितं स्थानं नयेयुः ।\nयदि नूतनशीर्षकस्य लेखः पूर्वमेवास्ति तर्हि स्थानान्तरणं न भविष्यति । नूतनशीर्षकयुक्तलेखः रिक्तमस्ति अथवा कुत्रचित् अनुप्रेषणं करोति अपि च अनेन सह प्राचीनेतिहासः नास्ति चेत् स्थानान्तरणं न सम्भविष्यति ।\nअर्थात् यदि भवता दोषः संवृत्तः चेत् भवान् पुनः प्राचीननाम्ना एतत्पुटं स्थानान्तरणं कर्तुं शक्नोति । अपि च किञ्चिदपि वर्तमानपुटस्य स्थाने एतत् स्थानान्तरणं कर्तुं नैव शक्नोति ।\nपूर्वसूचना : यदि पुटं प्रसिद्धं तर्हि तस्य एतत् बृहत् अथवा अकस्मात् परिवर्तनं भवितुमर्हति ।\nअनुवर्तनात् पूर्वम् अस्य परिणामं सम्यक् चिन्तयतु ।\n\n'''सूचना'''\nस्थानान्तरकरणेन कस्मिंश्चित् महालेखे अनपेक्षितं परिवर्तनं सम्भवेत् ।\nअतः भवति निवेदनम् अस्ति यत् भवान् पूवमेव परिणामं चित्नयतु ।",
-       "movepagetalktext": "सम्बद्धसम्भाषणपुटानि अनेन सह स्थानान्तरितानि भवन्ति अन्यथा  \n* भवान् पुटं अन्यस्थानान्तरं कुर्वन् अस्ति । \n* अस्मिन् नाम्नि सम्भाषणपुटं पूर्वनिर्मितमस्ति अस्थवा  \n* अधोदत्ताम् अर्गलनमञ्चूषाम् उत्पाटितवान् । \nअस्मिन् विषये यदि इच्छति तर्हि भवता पुटानि चालनीयानि अथवा संयोजनीयानि ।",
-       "movearticle": "पृष्ठं चाल्यताम्",
-       "moveuserpage-warning": "पूर्वसूचा : योजकपुटं चालयितुम् उद्युक्तः । स्मरतु केवलं पुटं स्थानान्तरितं भवति न तु योजकनाम परिवर्तनं न भविष्यति ।",
+       "movepagetext": "निम्नपत्रं पृष्ठस्य नाम परिवर्तयिष्यति । तस्य पृष्ठस्य सम्पूर्णेतिहासोऽपि नूतननाम्ना दर्शिष्यति ।\nपुरातनं शीर्षकं नूतनशीर्षकं प्रति पुनर्निर्देिष्टं भविष्यति ।\nमूलशीर्षकं प्रति नेतॄन् पुनार्निर्देशान् भवान्/भवती स्वचालितरूपेण परिवर्तयितुम् अपि शक्नोति ।\nयदि भवान्/भवती एवं न करोति, तर्हि कृपया [[Special:DoubleRedirects|पुनर्निर्देशस्य द्वित्वम्]] उत [[Special:BrokenRedirects|खण्डितपुनर्निर्देशः]] इत्यनयोः परीक्षणं निश्चयेन करोतु ।\nपरिसन्धयः योग्यस्थानं प्रति गच्छेत् इति सुनिश्चितकरणं भवतः/भवत्याः दायित्वम् अस्ति ।\n\nयदि नवीनशीर्षकस्य नाम्ना लेखः पूर्वमेव विद्यते, तर्हि पुनर्निर्देशः <strong> न </strong> भविष्यति । परन्तु नवीनशीर्षकस्य नाम्ना लेखः नास्ति उत कुत्रापि अनुप्रेषितं नास्ति चेदेव स्थानान्तरणस्य प्रक्रिया भविष्यति ।\n\nअर्थात् त्रुट्या स्थानान्तरणस्य प्रक्रिया अभवत् चेत्, पुरातनपृष्ठे स्थानान्तरणं कर्तुं प्रभविष्यति । तथा च विद्यामाने पृष्ठे सति भवान्/भवती स्थानान्तरणं कर्तुं न प्रभवति ।\n\n<strong>पूर्वसूचना !</strong>\n\nयदि पृष्ठम् अतिलोकप्रियम् अस्ति, तर्हि बृहत् आकस्मिकं परिवर्तनं भवितुं शक्नोति, अतः स्थानान्तरणात् प्राक् अन्तिमपरिणामस्य विषये पूर्वानुमानं करोतु ।",
+       "movepagetext-noredirectfixer": "निम्नपत्रं पृष्ठस्य नाम परिवर्तयिष्यति । तस्य पृष्ठस्य सम्पूर्णेतिहासोऽपि नूतननाम्ना दर्शिष्यति ।\nपुरातनं शीर्षकं नूतनशीर्षकं प्रति पुनर्निर्देिष्टं भविष्यति । मूलशीर्षकं प्रति नेतॄन् पुनार्निर्देशान् भवान्/भवती स्वचालितरूपेण परिवर्तयितुम् अपि शक्नोति । यदि भवान्/भवती एवं न करोति, तर्हि कृपया पुनर्निर्देशस्य [[Special:DoubleRedirects|द्वित्वम्]] उत [[Special:BrokenRedirects|खण्डितपुनर्निर्देशः]] इत्यनयोः परीक्षणं निश्चयेन करोतु । \n\nपरिसन्धयः योग्यस्थानं प्रति गच्छेत् इति सुनिश्चितकरणं भवतः/भवत्याः दायित्वम् अस्ति ।\nयदि नवीनशीर्षकस्य नाम्ना लेखः पूर्वमेव विद्यते, तर्हि पुनर्निर्देशः न भविष्यति । परन्तु नवीनशीर्षकस्य नाम्ना लेखः नास्ति उत कुत्रापि अनुप्रेषितं नास्ति चेदेव स्थानान्तरणस्य प्रक्रिया भविष्यति ।\n\nअर्थात् त्रुट्या स्थानान्तरणस्य प्रक्रिया अभवत् चेत्, पुरातनपृष्ठे स्थानान्तरणं कर्तुं प्रभविष्यति । तथा च विद्यामाने पृष्ठे सति भवान्/भवती स्थानान्तरणं कर्तुं <strong>न</strong> प्रभवति ।\n\n<strong>पूर्वसूचना !</strong>\nयदि पृष्ठम् अतिलोकप्रियम् अस्ति, तर्हि बृहत् आकस्मिकं परिवर्तनं भवितुं शक्नोति, अतः स्थानान्तरणात् प्राक् अन्तिमपरिणामस्य विषये पूर्वानुमानं करोतु ।\"",
+       "movepagetalktext": "सम्बद्धसम्भाषणपुटानि अनेन सह स्थानान्तरितानि भवन्ति अन्यथा  \n* भवान् पृष्ठम् अन्यस्थानान्तरं कुर्वन् अस्ति । \n* अस्मिन् नाम्नि सम्भाषणपुटं पूर्वनिर्मितमस्ति अस्थवा  \n* अधोदत्ताम् अर्गलनमञ्चूषाम् उत्पाटितवान् । \nअस्मिन् विषये यदि इच्छति तर्हि भवता पुटानि चालनीयानि अथवा संयोजनीयानि ।",
+       "movearticle": "शीर्षकं परिवर्त्यताम् :",
+       "moveuserpage-warning": "पूर्वसूचना : योजकपृष्ठं चालयितुम् उद्युक्तः । स्मरतु केवलं पृष्ठं स्थानान्तरितं भवति न तु योजकनाम परिवर्तनं न भविष्यति ।",
+       "movecategorypage-warning": "<strong>पूर्वसूचना :</strong> भवान्/भवती वर्गं स्थानान्तरितं कर्तुम् इच्छति । अतः जानातु यत्, केवलं पृष्ठं स्थानान्तरितं भविष्यति पृष्ठे विद्यमानानि पुरातनवर्गाः परिवर्तिताः <em>न</em> भविष्यन्ति ।",
        "movenologintext": " [[Special:UserLogin|logged in]] पञ्जीकृतयोजकः भवता नामाभिलेखनं करणीयं भवति ।",
        "movenotallowed": "पुटानि स्थानान्तरियितुम् अनुमतिः नाश्ति ।",
        "movenotallowedfile": "सञ्चिकाः स्थानान्तरयितुम् अनुमतिः नास्ति ।",
        "cant-move-user-page": "योजकपुटानि स्थानन्तरितुम् अनुमतिः ते नास्ति । (उपपुटानि विना)",
        "cant-move-to-user-page": "किञ्चिनपुटं योजकपुटं स्थानान्तरितुं ते अनुमतिः नास्ति । (योजकपुटं विना)",
+       "cant-move-category-page": "वर्गस्य नामपरिवर्नस्य अधिकारः तव पार्श्वे नास्ति ।",
+       "cant-move-to-category-page": "पृष्ठस्य वर्गपृष्ठे स्थानान्तरं कर्तुं तव पार्श्वे अधिकारः नास्ति ।",
        "newtitle": "नूतनं शीर्षकं प्रति :",
        "move-watch": "इदं पृष्ठं निरीक्षताम्।",
-       "movepagebtn": "पà¥\83षà¥\8dठà¤\82 à¤\9aालयतà¥\81।",
+       "movepagebtn": "शà¥\80रà¥\8dषà¤\95à¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतà¥\8dयतामà¥\8d",
        "pagemovedsub": "चालनं सिद्धम्।",
        "movepage-moved": "'''\"$1\" इत्येतद् \"$2\" इत्येतद् प्रति चालितमस्ति '''",
        "movepage-moved-redirect": "पुनर्निदेशः सृष्टः ।",
        "movetalk": "सहगामिनं चर्चापृष्ठं चालयतु।",
        "move-subpages": "उपपुटनि चालयतु । ($1 पर्यन्तम्)",
        "move-talk-subpages": "सम्भाषणपुटानाम् उपपुटानि चालयतु ।($1 पर्यन्तम्)",
-       "movepage-page-exists": "$1 à¤\87तà¥\8dयà¥\87ततà¥\8d à¤ªà¥\81à¤\9fं पूर्वमेव विद्यते । तदुपरि लेखनम् अशक्यम् ।",
-       "movepage-page-moved": "$1 à¤ªà¥\81à¤\9fं $2 प्रति चालितम् अस्ति ।",
-       "movepage-page-unmoved": "$1 à¤ªà¥\81à¤\9fं $2 प्रति चालनम् अशक्यम् ।",
+       "movepage-page-exists": "$1 à¤\87तà¥\8dयà¥\87ततà¥\8d à¤ªà¥\83षà¥\8dठं पूर्वमेव विद्यते । तदुपरि लेखनम् अशक्यम् ।",
+       "movepage-page-moved": "$1 à¤ªà¥\83षà¥\8dठं $2 प्रति चालितम् अस्ति ।",
+       "movepage-page-unmoved": "$1 à¤ªà¥\83षà¥\8dठं $2 प्रति चालनम् अशक्यम् ।",
        "movepage-max-pages": "$1  इत्यस्य {{PLURAL:$1|page|pages}} गरष्टपुटानि चालितानि अतः इतोप्यधिकपुटानि स्वयं चालितानि न भवन्ति ।",
        "movelogpage": "सञ्चितावलिः (log) चाल्यताम्",
        "movelogpagetext": "पुटचालनस्य आवली अधः अस्ति ।",
        "delete_and_move_text": "==अपमर्जनम् आवश्यकम्==\nलक्षितपुटं \"[[:$1]]\" पूर्वमेव अस्ति ।\nचालनपथं सृष्टुम् एतत् अपमर्जितुम् इच्छति वा ?",
        "delete_and_move_confirm": "आम्, पुटम् अपमर्जतु ।",
        "delete_and_move_reason": "\"[[$1]]\" तः स्थानान्तरणं कर्तुं पथनिर्माणार्थम् अपमर्जितम् ।",
-       "selfmove": "सà¥\8dरà¥\8bतà¤\83 à¤²à¤\95à¥\8dषà¥\8dयशà¥\80रà¥\8dषà¤\95à¤\82 à¤\9a à¤¸à¤®à¤¾à¤¨à¥\87 à¥¤\nपà¥\81à¤\9fं स्वस्थानान् स्थानान्तरं न शक्यते ।",
+       "selfmove": "सà¥\8dरà¥\8bतà¤\83 à¤²à¤\95à¥\8dषà¥\8dयशà¥\80रà¥\8dषà¤\95à¤\82 à¤\9a à¤¸à¤®à¤¾à¤¨à¥\87 à¥¤\nपà¥\83षà¥\8dठं स्वस्थानान् स्थानान्तरं न शक्यते ।",
        "immobile-source-namespace": "$1 इति नामस्थाने पुटस्थानान्तरं न शक्यते ।",
        "immobile-target-namespace": "\"$1\" इति नामस्थाने पुटानां स्थानान्तरं न शक्यते ।",
        "immobile-target-namespace-iw": "पुटचालनार्थम् अन्तर्विक्यानुबन्धः मान्यं लक्ष्यं न ।",
        "allmessages-filter-legend": "शोधनी ।",
        "allmessages-filter": "ग्राहकीकरणस्य स्थितौ शोधनी ।",
        "allmessages-filter-unmodified": "अपरिष्कृतम् ।",
-       "allmessages-filter-all": "à¤\85à¤\96िलम्",
+       "allmessages-filter-all": "सरà¥\8dवम्",
        "allmessages-filter-modified": "परिवर्तितम्",
        "allmessages-prefix": "उपसर्गानुगुणं शोधनी ।",
        "allmessages-language": "भाषा:",
        "allmessages-filter-submit": "गम्यताम्",
+       "allmessages-filter-translate": "अनूद्यताम्",
        "thumbnail-more": "विस्तीर्यताम्",
        "filemissing": "सञ्चिका विनष्टा ।",
        "thumbnail_error": "लघुचित्रनिर्माणे दोषः: $1",
-       "djvu_page_error": "DjVu पुटं  पृष्ठ परिधेः बहिः ।",
+       "thumbnail_error_remote": "$1 इत्यस्मात् दोषसन्देशः :\n$2",
+       "djvu_page_error": "DjVu पृष्ठं परिधेः बहिः ।",
        "djvu_no_xml": "DjVu पुटार्थं XMLप्राप्तुं न शक्तम् ।",
        "thumbnail-temp-create": "अनित्यां सङ्कुचितसञ्चिकां निर्मातुं न शक्यते ।",
        "thumbnail-dest-create": "लक्ष्ये सङ्कुचितं रक्षितुं न शक्यते ।",
        "thumbnail_invalid_params": "सङ्कुचितस्य विस्तारः अमान्यः ।",
+       "thumbnail_toobigimagearea": "$1 इत्यस्मात् बृहत्परिमाणस्य सञ्चिका अस्ति",
        "thumbnail_dest_directory": "लक्षस्य निदेशिकां सृष्टुं नैव शक्यते ।",
        "thumbnail_image-type": "चित्रस्य प्रकारः नानुमोदितः ।",
        "thumbnail_gd-library": "अपूर्णं जि.जि.ग्रन्थालयानुन्यासः : विनष्टः कार्यकलापः $1",
        "thumbnail_image-missing": "सञ्चिका विनष्टा इति भाति : $1",
+       "thumbnail_image-failure-limit": "एतत् थम्बलाईन् सिद्धं कर्तुं सद्यः जाताः बहवः असफलाः प्रयासाः सन्ति ($1 उत अधिकाः) । कृपया पुनः प्रयतताम् ।",
        "import": "पृष्ठानां निर्यातं करोतु",
-       "importinterwiki": "ट्रान्स् विकि आयातकाः",
-       "import-interwiki-text": "आयातं कर्तुं एकां विकिं एकं पुटं चिनोतु ।  \nपुनरावृत्तीनां दिनाङ्कानि, सम्पादनानि च सुरक्षितानि भविष्यन्ति। \nसर्वाः ट्रान्सविक्यायातक्रियाः नामाभिलेखिताः [[Special:Log/import|आयातसूचिकासु]] स्थापिताः ।",
+       "importinterwiki": "अन्यस्मात् विकि-जालस्थानात् पृष्ठानि आयातं करोतु",
+       "import-interwiki-text": "आयातं कर्तुम् कञ्चन विकि-प्रकल्पं, किञ्चित् पृष्ठं च चिनोतु ।\nसंस्करणस्य दिनाङ्कं, सम्पादकस्य नाम यथा स्थाने भविष्यति ।\nअन्यस्मात् विकि-प्रकल्पात् आयातकृताः सर्वाः संरक्षिताऽऽवल्यः [[Special:Log/import|आयातसंरक्षिताऽऽल्यां]] भविष्यन्ति ।",
+       "import-interwiki-sourcewiki": "स्रोत-विकि :",
+       "import-interwiki-sourcepage": "स्रोतपृष्ठम् :",
        "import-interwiki-history": "एतत्पुटार्थं सर्वेतिहासान् पुनरावृत्तीः च प्रकृतीः करोतु ।",
        "import-interwiki-templates": "प्राकृतीः अनर्भावयतु ।",
        "import-interwiki-submit": "आयातं करोतु ।",
+       "import-mapping-default": "मूलस्थितिम् आयातं करोतु",
+       "import-mapping-namespace": "नामाकाशे आयातं करोतु :",
+       "import-mapping-subpage": "एतस्य आधेयपृष्ठत्वेन आयातं करोतु :",
        "import-upload-filename": "सञ्चिकानाम",
-       "import-comment": "टिप्पणी:",
+       "import-comment": "टिप्पणी :",
        "importtext": "[[Special:Export|export utility]] एतेनानुबन्धेन स्रोतविकितः सञ्चिकानां निर्यातं करोतु । भवदीयसङ्गणके सुरक्ष्य अत्र उत्तारयतु ।",
        "importstart": "पुटानाम् आयातः....",
        "import-revision-count": "$1 {{PLURAL:$1|पुनरावृत्तिः}}",
        "importcantopen": "आयातसञ्चिकाः उद्घाटयितुं न शक्यते ।",
        "importbadinterwiki": "प्रदुष्टः अन्तर्विक्यनुबन्धः ।",
        "importsuccess": "आयातः समाप्तः ।",
-       "importnosources": "à¤\95à¥\8bऽपि à¤\9fà¥\8dरानà¥\8dसà¥\8dविà¤\95ि à¤\86यातà¤\83 à¤¨à¥\8bपलबà¥\8dधà¤\83 à¤\85पि à¤\9a à¤ªà¥\8dरतà¥\8dयà¤\95à¥\8dषà¥\87तिहाससà¥\8dय à¤\89तà¥\8dतारणà¤\82 à¤¨à¤¿à¤·à¥\8dà¤\95ियमà¥\8d ।",
+       "importnosources": "à¤\86नà¥\8dतर-विà¤\95ि-पà¥\8dरà¤\95लà¥\8dपसà¥\8dय à¤\95मपि à¤¸à¥\8dरà¥\8bतà¤\83 à¤\89लà¥\8dलिà¤\96ितà¤\82 à¤¨à¤¾à¤¸à¥\8dति à¥¤ à¤¤à¤¥à¤¾ à¤\9a à¤¸à¤¾à¤\95à¥\8dषातà¥\8d à¤\87तिहासà¤\97तायाà¤\83 à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ायाà¤\83 à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ायाà¤\83 à¤\89पारà¥\8bपणà¥\87 à¤ªà¥\8dरतिबनà¥\8dधà¤\83 à¤µà¤¿à¤¦à¥\8dयतà¥\87 ।",
        "importnofile": "कापि आयातसञ्चिका उत्तारिता ।",
        "importuploaderrorsize": "आयातसञ्चिकाः अनुत्तारिताः। अस्याः आकारः अधिकतरः अस्ति ।",
        "importuploaderrorpartial": "आयातसञ्चिकाः अनुत्तारिताः । सञ्चिकाः अपूर्णोत्तारिताः ।",
        "importuploaderrortemp": "अयातसञ्चिकानाम् उत्तारणम् असफलम् ।\nअनित्यः सम्पुटः विनष्टः ।",
        "import-parse-failure": "XML आयातस्य व्यवस्थायाः वैफल्यम् ।",
        "import-noarticle": "आयातं कर्तुं पुटानि न सन्ति ।",
-       "import-nonewrevisions": "सरà¥\8dवाà¤\83 à¤ªà¥\81नरावà¥\83तà¥\8dतयà¤\83 à¤ªà¥\82रà¥\8dवमà¥\87व à¤\86याताà¤\83 ।",
+       "import-nonewrevisions": "नà¥\88à¤\95सà¥\8dयापि à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤\86यातà¤\83 à¤\85भवतà¥\8d à¥¤ (सरà¥\8dवाणि à¤¸à¤\82सà¥\8dà¤\95रणानि à¤ªà¥\82रà¥\8dवमà¥\87व à¤µà¤¿à¤¦à¥\8dयामानि à¤¸à¤¨à¥\8dति à¤\85थवा à¤¦à¥\8bषयà¥\81à¤\95à¥\8dततà¥\8dवातà¥\8d à¤ªà¤°à¤¿à¤¤à¥\8dयà¤\95à¥\8dतानि)।",
        "xml-error-string": "$1 पङ्किः $2 इत्यस्मिन् , स्तम्भः $3 (बैट्स् $4): $5",
        "import-upload": "XML पाठान् उत्तारयतु ।",
        "import-token-mismatch": "सत्रस्य पाठानां नाशः ।\nपुनः प्रयतताम् ।",
        "import-invalid-interwiki": "निर्दिष्टविकितः आयातः न सम्भवति ।",
-       "import-error-edit": "\" $1 \"पुटस्य आयातः न शक्यते यतः तस्य सम्पादनुमति ते नास्ति ।",
-       "import-error-create": "\" $1 \"पुटस्य आयातः न शक्यते यतः ते सम्पादनस्य अनुमतिः नास्ति ।",
-       "import-error-interwiki": "\"$1\" पुटम् आयातं न यतः अस्य नाम बाह्यानुबन्धार्थं सुरक्षितम् । (अन्तर्विकि)",
-       "import-error-special": "\"$1\" पुटम् आयातं नैव यतः एतत् विशेषनामस्थानेन सम्बद्धं यत् अन्यपुटानि नानुमन्यते ।",
-       "import-error-invalid": "\"$1\" पुटं न आयातं यतः अस्य नाम अमान्यम् ।",
+       "import-error-edit": "\"$1\" पुष्ठस्य आयातः नाभवत्, यतः तस्य सम्पादनानुमतिः नास्ति ।",
+       "import-error-create": "\"$1\" पुष्ठस्य आयातः नाभवत्, यतः तस्य सम्पादनानुमतिः नास्ति ।",
+       "import-error-interwiki": "\"$1\" पुष्ठस्य आयातः नाभवत्, यतः तस्य तस्य नाम बाह्यानुबन्धार्थं सुरक्षितम् (अन्तर्विकि) ।",
+       "import-error-special": "\"$1\" पुष्ठस्य आयातः नाभवत्, यतः विशेषनामाकाशः अनुमतिं न यच्छति ।",
+       "import-error-invalid": "\"$1\" पुष्ठस्य आयातः नाभवत्, यतः यस्य पृष्ठस्य आयतः अभवत्, तत् विकि-प्रकल्पेऽस्मिन् अमान्यम् अस्ति ।",
+       "import-error-unserialize": "\"$1\" इत्येतेषु $2 संस्करणम् अक्रमिकं कर्तुं न शक्यते । एतत् संस्करणं $3 पाठप्रारूपं $4 एवं क्रमबद्धम् अकरोत् ।",
+       "import-error-bad-location": "$2 संस्करणं $3 इत्यस्य प्रारूपस्थस्य उपयोगं कृत्वा \"$1\" इत्यस्मिन् विक-प्रकल्पे पाठस्य उपयोगं करोति । तस्मिन् पृष्ठे यावत् तत् प्रारूपम् अयोग्यं न सद्धयति ।",
        "import-options-wrong": "असमीचीनः {{PLURAL:$2|विकल्पः|विकल्पाः}}: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "दत्तमूलपुटम् अमान्यशीर्षकयुक्तम् ।",
        "import-rootpage-nosubpage": "मूलपुटस्य \"$1\" इति नामस्थाने उपपुटानि नानुमतानि ।",
        "importlogpage": "आयातसूचिका ।",
        "importlogpagetext": "अन्यविकितः सम्पादितेतिहाससहितानि प्रशासकानाम् आयातपुटानि ।",
-       "import-logentry-upload-detail": "$1 {{PLURAL:$1|पà¥\81नरावà¥\83तà¥\8dतिà¤\83}}",
-       "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|पà¥\81नरावà¥\83तà¥\8dतिà¤\83}} $2 à¤\87तà¥\8dयà¥\87तसà¥\8dमातà¥\8d à¥¤",
+       "import-logentry-upload-detail": "$1 {{PLURAL:$1|सà¤\82सà¥\8dà¤\95रणसà¥\8dय|सà¤\82सà¥\8dà¤\95रणानामà¥\8d}} à¤\86यातà¤\83 à¤\85भवतà¥\8d",
+       "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|सà¤\82सà¥\8dà¤\95रणसà¥\8dय|सà¤\82सà¥\8dà¤\95रणानामà¥\8d}} à¤\86यातà¤\83 à¤\85भवतà¥\8d $2",
        "javascripttest": "जावालिपिपरीक्षणम् ।",
        "javascripttest-pagetext-noframework": "जावलिपिचालनपरीक्षार्थम् एतत्पुटम् आरक्षितम् ।",
        "javascripttest-pagetext-unknownframework": "अज्ञातपरीक्षाप्रक्रिया  $1",
+       "javascripttest-pagetext-unknownaction": "\"$1\" अज्ञातक्रिया ।",
        "javascripttest-pagetext-frameworks": "अधो दत्तेषु कञ्चिदेकां परीक्षाप्रक्रियां चिनोतु : $1",
        "javascripttest-pagetext-skins": "अनेन सह परीक्षां सञ्चालयितुं  काचित् त्वक् चिनोतु ।",
        "javascripttest-qunit-intro": "mediawiki.org. [$1 अभिलेखपरीक्षा] इत्यत्र पश्यतु ।",
        "tooltip-pt-preferences": "भवतः/भवत्याः इष्टतमानि",
        "tooltip-pt-watchlist": "भवतः/भवत्याः निरीक्षासूच्यां विद्यमानानां पृष्ठानाम् आवलिः",
        "tooltip-pt-mycontris": "भवतः/भवत्याः योगदानानाम् आवलिः",
-       "tooltip-pt-login": "समà¥\8dपà¥\8dरवà¥\87शाय à¤ªà¥\8dरà¥\8bतà¥\8dसहामहà¥\87 à¥¤ à¤ªà¤°à¤¨à¥\8dतà¥\81 à¤¸à¤®à¥\8dप्रवेशः ऐच्छिकः ।",
-       "tooltip-pt-logout": "निरà¥\8dà¤\97मनम्",
+       "tooltip-pt-login": "पà¥\8dरवà¥\87शाय à¤ªà¥\8dरà¥\8bतà¥\8dसहामहà¥\87 à¥¤ à¤ªà¤°à¤¨à¥\8dतà¥\81 प्रवेशः ऐच्छिकः ।",
+       "tooltip-pt-logout": "निरà¥\8dà¤\97मà¥\8dयताम्",
        "tooltip-pt-createaccount": "नूतनसदस्यतां प्राप्य प्रविश्यताम् इति सूच्यते किन्तु न एतद् अनिवार्यम्",
-       "tooltip-ca-talk": "विषयसहितानाà¤\82 à¤ªà¥\83षà¥\8dठानाà¤\82 à¤\9aरà¥\8dà¤\9aा",
+       "tooltip-ca-talk": "विषयसहितानाà¤\82 à¤ªà¥\83षà¥\8dठानाà¤\82 à¤¸à¤®à¥\8dभाषणमà¥\8d",
        "tooltip-ca-edit": "इदं पृष्ठं सम्पादयितुं शक्यते । रक्षणात्पूर्वं कृपया प्राग्दृश्यं दृश्यताम् ।",
        "tooltip-ca-addsection": "नूतनविभागः आरभ्यताम्",
        "tooltip-ca-viewsource": "इदं पृष्ठं संरक्षितं विद्यते । अस्य स्रोतः द्रष्टुं शक्यते ।",
        "tooltip-ca-delete": "इदं पृष्ठम् अपाक्रियताम्",
        "tooltip-ca-undelete": "अस्य पुटस्य अपमर्जनात् पूर्वम् अस्य सम्पादनानि पुनस्थापयतु ।",
        "tooltip-ca-move": "अस्य पृष्ठस्य शीर्षकं परिवर्त्यताम्",
-       "tooltip-ca-watch": "à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाà¤\82 योज्यताम्",
+       "tooltip-ca-watch": "à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\8c योज्यताम्",
        "tooltip-ca-unwatch": "भवतः/भवत्याः अवेक्षणसूच्याः इदं पृष्ठं निष्कास्यताम्",
        "tooltip-search": "{{SITENAME}} अन्विष्यताम्",
        "tooltip-search-go": "समानशिरोनामयुक्तं पृष्ठं विद्यते चेत् तत्र गम्यताम्",
        "tooltip-n-portal": "त्वया प्रकल्पविषये किं कर्तुं शक्यते, कुथं साहाय्यं प्राप्तव्यम्",
        "tooltip-n-currentevents": "वर्तमानप्रसङ्गानां पृष्ठभूमिका प्राप्यताम्",
        "tooltip-n-recentchanges": "नवीनपरिवर्तनानाम् आवलिः",
-       "tooltip-n-randompage": "à¤\85शà¥\83à¤\99à¥\8dà¤\96लं (random) पृष्ठं गम्यताम्",
+       "tooltip-n-randompage": "यादà¥\83à¤\9aà¥\8dà¤\9bिà¤\95ं (random) पृष्ठं गम्यताम्",
        "tooltip-n-help": "अन्वेषणस्थलम्",
        "tooltip-t-whatlinkshere": "अत्र सम्बद्धानां परिसन्धितानां विकि-पृष्ठानाम् आवलिः",
        "tooltip-t-recentchangeslinked": "एतत्पृष्ठसम्बद्धेषु पृष्ठेषु जातानि नवीनपरिवर्तनानि",
        "tooltip-feed-rss": "अस्मै पृष्ठाय आर-एस-एस-पूरणम्",
        "tooltip-feed-atom": "अस्मै पृष्ठाय अणुपूरणम्",
        "tooltip-t-contributions": "अस्य योजकस्य योगदानानाम् आवलिः",
-       "tooltip-t-emailuser": "एतस्मै योजकाय ई-पत्रं प्रेष्यताम्",
-       "tooltip-t-upload": "सञ्चिकाः आरोप्यन्ताम्",
+       "tooltip-t-emailuser": "एतस्मै योजकाय वि-पत्रं प्रेष्यताम्",
+       "tooltip-t-info": "एतस्य पृष्ठस्य विषये अधिकं विवरणम्",
+       "tooltip-t-upload": "सञ्चिकाः उपारोप्यन्ताम्",
        "tooltip-t-specialpages": "सर्वेषां विशिष्टपृष्ठानाम् आवलिः",
        "tooltip-t-print": "अस्य पृष्ठस्य मुद्रणयोग्या आवृत्तिः",
        "tooltip-t-permalink": "पृष्ठस्यास्य स्थायिपरिसन्धिः",
        "tooltip-preview": "भवता/भवत्या कृतानां परिवर्तनानां प्राग्दृश्यं दृश्यताम्, रक्षणात्पूर्वं कृपया इदम् उपयुज्यताम्।",
        "tooltip-diff": "भवता/भवत्या कृतानि परिवर्तनानि अत्र द्रष्टुं शक्यते",
        "tooltip-compareselectedversions": "पृष्ठस्य द्वयोः चितयोः आवृत्त्योः भेदः दृश्यताम्",
-       "tooltip-watch": "à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाà¤\82 योज्यताम्",
+       "tooltip-watch": "à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\8c योज्यताम्",
        "tooltip-watchlistedit-normal-submit": "शीर्षकानि अपनयतु ।",
        "tooltip-watchlistedit-raw-submit": "अवलोकनावलीं समुद्धरतु ।",
        "tooltip-recreate": "एतत्पुटं पूर्वमेव अपमर्जितः अतः पुन सृजतु ।",
        "tooltip-summary": "सङ्क्षिप्तसारांशः योज्यताम्",
        "anonymous": "{{SITENAME}} इत्यस्य {{PLURAL:$1||}} अनामकयोजकः ।",
        "siteuser": "{{SITENAME}} योजक $1",
-       "anonuser": "{{SITENAME}} अज्ञात योजक $1",
+       "anonuser": "{{SITENAME}} अज्ञातयोजकः $1",
        "lastmodifiedatby": "एतस्य पुटस्य अन्तिमपरिवर्तनं $1 दिनाङ्के $2 समये कृतम् ।",
        "othercontribs": "$1 इत्यस्य कार्यस्य अनुसारम् ।",
        "others": "अन्य",
        "siteusers": "{{SITENAME}} {{PLURAL:$2|योजक|योजक}} $1",
-       "anonusers": "{{SITENAME}} अज्ञात {{PLURAL:$2|योजक|योजक}} $1",
+       "anonusers": "{{SITENAME}} {{PLURAL:$2|अज्ञातयोजकः|अज्ञातयोजकाः}} $1",
        "creditspage": "पुटनां समाकलनानि ।",
        "nocredits": "अस्य पुटस्य समाकलनसूचना नोपलब्धा ।",
        "spamprotectiontitle": "स्पाम् सुरक्षाशोधनी ।",
        "spamprotectionmatch": "अधस्थपाठेन अस्माकं स्फांशोधनी लक्षिता : $1",
        "spambot_username": "मिडियाविकिअवकरशुद्धीकरणम् ।",
        "spam_reverting": "$1 इत्यनेन नानुबद्धनां प्राचीनपुनरावृत्तीनां पुनस्थापनं कुर्वन्ति ।",
-       "spam_blanking": "सरà¥\8dवाà¤\83 à¤ªà¥\81नरावà¥\83तà¥\8dतयà¤\83 $1 à¤\87तà¥\8dयसà¥\8dय à¤\85नà¥\81बनà¥\8dधाà¤\83 à¤ªà¥\82रà¥\8dणपाठाà¤\83 à¤\85पनà¥\80यनà¥\8dते ।",
-       "spam_deleting": "सरà¥\8dवाà¤\83 à¤ªà¥\81नरावà¥\83तà¥\8dतयà¤\83 $1 à¤\87तà¥\8dयसà¥\8dय à¤\85नà¥\81बनà¥\8dधाà¤\83 à¥¤ à¤ªà¥\82रà¥\8dणपाठाà¤\83 à¤\85पनà¥\80यनà¥\8dते ।",
+       "spam_blanking": "सरà¥\8dवà¥\87षà¥\81 à¤¸à¤\82सà¥\8dà¤\95रणà¥\87षà¥\81 $1 à¤\87तà¥\8dयà¥\87ताà¤\83 à¤ªà¤°à¤¿à¤¸à¤¨à¥\8dधयà¤\83 à¤¸à¤¨à¥\8dति à¥¤ à¤\85तà¤\83 à¤¸à¤®à¥\8dपà¥\82णà¤\83 à¤ªà¤¾à¤ à¤\83 à¤¨à¤¿à¤·à¥\8dà¤\95ासà¥\8dयते ।",
+       "spam_deleting": "सरà¥\8dवà¥\87षà¥\81 à¤¸à¤\82सà¥\8dà¤\95रणà¥\87षà¥\81 $1 à¤\87तà¥\8dयà¥\87ताà¤\83 à¤ªà¤°à¤¿à¤¸à¤¨à¥\8dधयà¤\83 à¤¸à¤¨à¥\8dति à¥¤ à¤\85तà¤\83 à¤¸à¤®à¥\8dपà¥\82णà¤\83 à¤ªà¤¾à¤ à¤\83 à¤¨à¤¿à¤·à¥\8dà¤\95ासà¥\8dयते ।",
        "simpleantispam-label": "अनिष्टसन्देशविरोधपरीक्षणम् ।\nअस्मिन् <strong>न</strong> पूर्यताम् !",
        "pageinfo-title": "\"$1\" कृते सूचनाः ।",
        "pageinfo-not-current": "क्षम्यताम्, पुरातनाभ्यः आवृत्तिभ्यः एषा सूचना दातुं न शक्यते।",
        "pageinfo-length": "पृष्ठदैर्घ्यम् (बैट्स्द्वारा)",
        "pageinfo-article-id": "पृष्ठाभिज्ञापकम्",
        "pageinfo-language": "पृष्ठसामग्र्याः भाषा",
-       "pageinfo-robot-policy": "चालकयन्त्रस्थितिः अन्विष्यताम्",
-       "pageinfo-robot-index": "अङ्कनयोग्यम्",
-       "pageinfo-robot-noindex": "अङ्कनायोग्यम्",
+       "pageinfo-content-model": "पृष्ठपाठस्य प्रारूपम्",
+       "pageinfo-robot-policy": "यन्त्रद्वारा अनुक्रमीकृतः",
+       "pageinfo-robot-index": "अनुमतिप्राप्तम्",
+       "pageinfo-robot-noindex": "अनुमतिः न प्राप्ता",
        "pageinfo-watchers": "पृष्ठावलोककानां सङ्ख्या ।",
-       "pageinfo-redirects-name": "एतत् पृष्ठं प्रति पुनर्निर्दिश्यते",
+       "pageinfo-few-watchers": "$1 तः न्यूनध्यानार्हः  {{PLURAL:$1|दृष्टा|दृष्टारः}}",
+       "pageinfo-redirects-name": "एतत् पृष्ठं प्रति पुनर्निर्दिष्टानां पृष्ठानां सङ्ख्या",
        "pageinfo-subpages-name": "अस्य पृष्ठस्य उपपृष्ठानि",
        "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|पुनर्निर्देशः|पुनर्निर्देशाः}}; $3 {{PLURAL:$3|न पुनर्निर्देशः|न-पुनर्निर्देशाः}})",
        "pageinfo-firstuser": "पृष्ठनिर्माता",
        "pageinfo-magic-words": "मान्त्रिक{{PLURAL:$1|शब्दः|शब्दाः}} ($1)",
        "pageinfo-hidden-categories": "गोपित{{PLURAL:$1|वर्गः|वर्गाः}} ($1)",
        "pageinfo-templates": "समायोजित{{PLURAL:$1|फलकम्|फलकानि}} ($1)",
+       "pageinfo-transclusions": "{{PLURAL:$1|पृष्ठं|पृष्ठानि}} समायोजितानि अत्र ($1)",
        "pageinfo-toolboxlink": "पृष्ठसूचनाः",
        "pageinfo-redirectsto": "इत्यत्र अनुप्रेष्यते",
        "pageinfo-redirectsto-info": "सूचना",
        "pageinfo-protect-cascading-yes": "आम्",
        "pageinfo-protect-cascading-from": "अधोलिखितेभ्यः संरक्षणविधिः सोपानवत् गच्छति",
        "pageinfo-category-info": "वर्गविषयकसूचना",
+       "pageinfo-category-total": "आहात्यसदस्यानां सङ्ख्या",
        "pageinfo-category-pages": "पृष्ठानां सङ्ख्या",
        "pageinfo-category-subcats": "उपवर्गानां सङ्ख्या",
        "pageinfo-category-files": "सञ्चिकानां सङ्ख्या",
        "patrol-log-page": "आरक्षणसूचिका ।",
        "patrol-log-header": "इयम् आरक्षितपुनरावृत्तीनां सूचिका अस्ति ।",
        "log-show-hide-patrol": "$1 इत्यस्य आरक्षणसूचिका ।",
+       "log-show-hide-tag": "$1 चिह्नाऽऽवलिः",
        "deletedrevision": "अपमर्जितप्राचीनपुनरावृत्तिः $1",
        "filedeleteerror-short": "सञ्चिकानपमर्जने दोषः : $1",
        "filedeleteerror-long": " सञ्चिकानामपमर्जने आगता समस्या  $1",
        "newimages-summary": "एतत् विशेषपुटम् सद्यः उत्तारितसञ्चिकाः दर्शयति ।",
        "newimages-legend": "शोधनी ।",
        "newimages-label": "सञ्चिकानाम (अथवा अस्य भागः)",
+       "newimages-showbots": "बॉट्-द्वारा उपारोहितं दृश्यताम्",
        "noimages": "शून्यदर्शनम् ।",
        "ilsubmit": "अन्वेषणम्",
        "bydate": "दिनाङ्कानुगुणम्",
        "minutes": "{{PLURAL:$1|$1 निमेषः|$1 निमेषाः}}",
        "hours": "{{PLURAL:$1|$1होरा|$1 होराः}}",
        "days": "{{PLURAL:$1|$1 दिनम्|$1 दिनानि}}",
+       "weeks": "{{PLURAL:$1|$1 सप्ताहः|$1 सप्ताहाः}}",
+       "months": "{{PLURAL:$1|$1 मासः|$1 मासाः}}",
+       "years": "{{PLURAL:$1|$1 वर्षं|$1 वर्षाणि}}",
        "ago": "$1 पूर्वम्",
        "just-now": "अधुनैव",
+       "hours-ago": "$1 {{PLURAL:$1|होरा|होराः}} पूर्वं",
+       "minutes-ago": "$1 {{PLURAL:$1|निमेषः|निमेषाः}}",
+       "seconds-ago": "$1 {{PLURAL:$1|क्षणम्|क्षणानि}} पूर्वं",
+       "monday-at": "$1 सोमवासरे",
+       "tuesday-at": "$1 मङ्गलवासरे",
+       "wednesday-at": "$1 बुधवासरे",
+       "thursday-at": "$1 गुरुवासरे",
+       "friday-at": "$1 शुक्रवासरे",
+       "saturday-at": "$1 शनिवासरे",
+       "sunday-at": "$1 रविवासरे",
+       "yesterday-at": "$1 ह्यः",
        "bad_image_list": "अत्र प्रारूपं एवं भवेत् -\n\nकेवलम् आवल्यन्तर्गताः विषयाः (* इति चिह्नात् आरभमाणाः पङ्क्तयः) आकलिताः ।\n\nपङ्क्त्यां विद्यमाना प्रथमा परिसन्धिः (link) दोषपूर्णया सञ्चिकया सह परिसन्धिता (linked) स्यादेव । तस्यामेव पङ्क्तौ उत्तरोत्तरं विद्यमानाः परिसन्धयः अपवादिताः ज्ञेयाः, अर्थात् अत्र तेषां पृष्ठानाम् आवलिरेव भविष्यति, येषु एषा सञ्चिका विद्यते ।",
        "metadata": "प्रदत्तांशः (दत्तांशविषयकदत्तांशः अयम्)",
        "metadata-help": "अनेन सह विस्तृतसूचना सल्लग्ना अस्ति, प्रतिबिम्बग्राहकेन (scanner) अङ्कीयछायाचित्रग्राहकेन (digital camera ) वा अस्याः सञ्चिकायाः रचना जाता स्यात् । \n\nएषा सञ्चिका यदि मूलावस्थात् परिवर्त्यते, तर्हि अत्रस्थानि कानिचित् विवरणानि परिवर्तितसञ्चिकायां पूर्णतया न दृश्यन्ते ।",
        "exif-colorspace": "वर्णावकाशः",
        "exif-componentsconfiguration": "प्रत्येकं भागस्य अर्थः ।",
        "exif-compressedbitsperpixel": "चित्रसङ्कोचविधानम् ।",
-       "exif-pixelydimension": "à¤\9aितà¥\8dरविसà¥\8dतारà¤\83 à¥¤",
+       "exif-pixelydimension": "à¤\9aितà¥\8dरपारà¥\8dथवमà¥\8d (width)",
        "exif-pixelxdimension": "चित्रैन्नत्यम् ।",
        "exif-usercomment": "योजकाभिप्रायः ।",
        "exif-relatedsoundfile": "सम्बद्धश्रवणसञ्चिका ।",
        "exif-specialinstructions": "विशेषसूचनाः ।",
        "exif-headline": "शीर्षकम् ।",
        "exif-credit": "श्रेयः/ प्रदाता",
-       "exif-source": "मà¥\82ल",
+       "exif-source": "सà¥\8dरà¥\8bतà¤\83",
        "exif-editstatus": "चित्रस्य सम्पादस्थितिः ।",
        "exif-urgency": "त्वरा",
        "exif-fixtureidentifier": "सङ्गमनाम ।",
        "exif-writer": "लेखकः ।",
        "exif-languagecode": "भाषा ।",
        "exif-iimversion": "IIM आवृत्तिः ।",
-       "exif-iimcategory": "वर्ग",
+       "exif-iimcategory": "वर्ग",
        "exif-iimsupplementalcategory": "संयोज्यवर्गः ।",
        "exif-datetimeexpires": "पश्चात् न उपयोजयतु ।",
        "exif-datetimereleased": "अस्मिन् दिने लोकार्पितम् ।",
        "exif-compression-3": "CCITT समूह ३ फेक्स  सङ्केतीकरणम् ।",
        "exif-compression-4": "CCITT समूहः३ फेक्स् सङ्केतीरणम् ।",
        "exif-copyrighted-true": "स्वामत्वरक्षितम् ।",
-       "exif-copyrighted-false": "सारà¥\8dà¤\9cनिà¤\95सà¥\8dथानमà¥\8d à¥¤",
+       "exif-copyrighted-false": "पà¥\8dरतिà¤\95à¥\83तà¥\8dयधिà¤\95ारà¤\83 à¤¨ à¤¨à¤¿à¤°à¥\8dधारितà¤\83",
        "exif-unknowndate": "अज्ञातदिनाङ्कः ।",
        "exif-orientation-1": "सामान्य",
        "exif-orientation-2": "तिर्यक् परिवर्तितम् ।",
        "exif-exposureprogram-7": "आलेख्य प्रकारः ।",
        "exif-exposureprogram-8": "आयतप्रकारः । (आयतचित्राणि पृष्ठभूमिकेन्द्रीकृतनि )",
        "exif-subjectdistance-value": "$1 मीटर्स् ।",
-       "exif-meteringmode-0": "अज्ञात",
+       "exif-meteringmode-0": "अज्ञातम्",
        "exif-meteringmode-1": "माध्य",
        "exif-meteringmode-2": "केन्द्रभारयुतं सर्वसामान्यम् ।",
        "exif-meteringmode-3": "प्रदेशः ।",
        "exif-meteringmode-5": "प्रकारः ।",
        "exif-meteringmode-6": "भागशः ।",
        "exif-meteringmode-255": "अन्यत्",
-       "exif-lightsource-0": "अज्ञात",
+       "exif-lightsource-0": "अज्ञातम्",
        "exif-lightsource-1": "दिवाप्रकाशः ।",
        "exif-lightsource-2": "प्रभासमानम् ।",
        "exif-lightsource-3": "उज्वलप्रकाशस्य तन्त्रीविशेषः",
        "exif-sharpness-0": "सामान्य",
        "exif-sharpness-1": "कोमलम् ।",
        "exif-sharpness-2": "कठिणम् ।",
-       "exif-subjectdistancerange-0": "अज्ञात",
+       "exif-subjectdistancerange-0": "अज्ञातम्",
        "exif-subjectdistancerange-1": "बृहत्",
        "exif-subjectdistancerange-2": "अवलोकनं पिदधातु ।",
        "exif-subjectdistancerange-3": "दूरदृश्यम् ।",
        "exif-urgency-other": "योजकनिरूपिता आद्यता : $1",
        "namespacesall": "सर्वाणि",
        "monthsall": "सर्वाणि",
-       "confirmemail": "à¤\88पत्रसङ्केतः प्रमाणीक्रियताम्",
-       "confirmemail_noemail": "भवतः योजकाद्यतायां व्यवस्थापितः विद्युन्मानपत्रसङ्केतः मान्यं नाश्ति ।  [[Special:Preferences|user preferences]]",
+       "confirmemail": "वि-पत्रसङ्केतः प्रमाणीक्रियताम्",
+       "confirmemail_noemail": "भवतः/भवत्याः मान्यः वि-पत्रसङ्केतः नास्ति । [[Special:Preferences|user preferences]] अत्र निर्धार्यताम् ।",
        "confirmemail_text": "{{SITENAME}} इत्यत्र विद्युन्मानसुविधोपयोगात् पूर्वं भवतः विद्युन्मानपत्रसङ्केतं मान्यं करोतु । \nभवतः सङ्केतं दृढीकरणसङ्केतं प्राप्तुं अधः दत्तं कड्मलं तुदतु ।\nतत्र पत्रं ससङ्केतम् अनुबन्धयुक्तं भवति । \nभवतः विद्युन्मानपत्रसङ्केतं प्रमाणीकर्तुम् अनेन अनुबन्धेन जालगवाक्षेन पूरयतु ।",
        "confirmemail_pending": "कश्चित् दृढीकरणस्य सङ्केतसङ्ख्या तावत् विद्युन्मानपत्रद्वारा ते प्रेषितम् । \nभवान् सद्यः योजकस्थानं निर्मितवान् । नूतनसङ्केतसङ्ख्या कतिपयनिमेषापर्यन्तं निरीक्षताम्,",
        "confirmemail_send": "दृढीकरणसङ्केतसङ्ख्यां प्रेषयतु ।",
        "confirmemail_invalid": "अमान्या दृढीकरणसङ्केतसङ्ख्या ।\nप्रायः सङ्केतसङ्ख्या विनष्टा ।",
        "confirmemail_needlogin": "भवतः विद्युन्मनपत्रसङ्केतं दृढयितुं भवान् $1 करोतु ।",
        "confirmemail_success": "भवतः विद्युन्मानपत्रसङ्केतः इदानीं दृढीकृतः अस्ति । [[Special:UserLogin|log in]]\nअधुना भवान् नामाभिलेखेन विकिविहरस्य आनन्दम् अनुभवितुं शक्नोति ।",
-       "confirmemail_loggedin": "भवतः विद्युन्मानपत्रसङ्केतः दृढीकृतः ।",
-       "confirmemail_subject": "{{SITENAME}}विद्युन्मानपत्रसङ्केतस्य दृढीकरणम् ।",
+       "confirmemail_loggedin": "भवतः वि-पत्रसङ्केतः दृढीकृतः ।",
+       "confirmemail_subject": "{{SITENAME}} वि-पत्रसङ्केतस्य दृढीकरणम् ।",
        "confirmemail_body": "कोऽपि अथवा भवान् $1 इति ऐपिसङ्केतद्वारा {{SITENAME}}इत्यस्मिन् \"$2\" इति नाम्ना योजकस्थाननिर्माणार्थम् अभ्यर्थनं दत्तवान् ।\nएतत् योजकस्थानं भवतः एव अपि च {{SITENAME}} इत्यस्मिन् उलब्धे विद्युन्मानपत्रसङ्केतः ।\nसुविधारम्भं कर्तुम् अधोदत्तानुबन्ध स्वस्य जालगवाक्षे उद्घाटयतु ।\n\n$3\n\nयदि एतदभ्यर्थनं भवान् न कृतवान् तर्हि एतत् अपकर्षितुम् अधो दतानुबन्धम् उद्घाटयतु ।\n\n$5\n\nइयं दृढीकरणसङ्केतसङ्ख्या $4 इत्यस्मिन् समाप्ता भवति ।",
        "confirmemail_body_changed": "कोऽपि अथवा भवान् $1 इति ऐपिसङ्केतद्वारा {{SITENAME}}इत्यस्मिन् \"$2\" इति योजस्थानस्य विद्युन्मानपत्रसङ्केतं परिवर्त्य दत्तवान्  ।\nअस्य विषयस्य दृढीकरणार्थम् एतत् योजकस्थानं भवतः एव अस्ति अपि च  {{SITENAME}}इत्यस्मिन् विद्युन्मानसौकर्यं पुनरारब्धुम् अधो दत्तानुबन्धं जालगवाक्षे उद्घाटयतु ।\n\n$3\n\nयदि एतत् योजकस्थानं भवतः नाश्ति तर्हि भवतः विद्युन्मानपत्रसङ्केतम् अपाकृष्टुं अधो दत्तानुबन्धं जालगवाक्षे उद्घाटयतु ।\n\n\n$5\nएतत् दृढीकर्तुं $6 इत्येतत् $7 इति होरायाः पश्चात् कार्यं न करोति ।",
        "confirmemail_body_set": "कोऽपि अथवा भवान् $1 इति ऐपिसङ्केतद्वारा {{SITENAME}}इत्यस्मिन् \"$2\" इति योजस्थानस्य विद्युन्मानपत्रसङ्केतं परिवर्त्य दत्तवान्  ।\nअस्य विषयस्य दृढीकरणार्थम् एतत् योजकस्थानं भवतः एव अस्ति अपि च  {{SITENAME}}इत्यस्मिन् विद्युन्मानसौकर्यं पुनरारब्धुम् अधो दत्तानुबन्धं जालगवाक्षे उद्घाटयतु ।\n\n$3\n\nयदि एतत् योजकस्थानं भवतः नाश्ति तर्हि भवतः विद्युन्मानपत्रसङ्केतम् अपाकृष्टुं अधो दत्तानुबन्धं जालगवाक्षे उद्घाटयतु ।\n\n\n$5\nएतत् दृढीकर्तुं $6 इत्येतत् $7 इति होरायाः पश्चात् कार्यं न करोति ।",
-       "confirmemail_invalidated": "विद्युन्मानपत्रसङ्केतस्य दृढीकरणम् अपकर्षितम् ।",
-       "invalidateemail": "विद्युन्मानपत्रस्य दृढीकरणम् अपकर्षतु ।",
+       "confirmemail_invalidated": "वि-पत्रसङ्केतस्य दृढीकरणं निरस्तीकृतम्",
+       "invalidateemail": "वि-पत्रस्य दृढीकरणं निरस्तीकृतम्",
        "scarytranscludedisabled": "अन्तर्विकीयः अन्तर्भवनं निष्क्रियम् ।",
        "scarytranscludefailed": "$1 कृते प्राकृतिः प्रार्थना न प्राप्ता ।",
+       "scarytranscludefailed-httpstatus": "[$1 : इत्यस्य कृते फलकसङ्कर्षणम् असफलम् HTTP $2]",
        "scarytranscludetoolong": "[URLअतिदीर्घा अस्ति ]",
        "deletedwhileediting": "पूर्वसूचना : भवतः सम्पादनारम्भात् पश्चात् एतत् पुटम् अपमर्जितम् ।",
        "confirmrecreate": "योजकः [[User:$1|$1]] ([[User talk:$1|सम्भाषणम्]]) सकारणं भवतः सम्पादनात् परं पुटमेतत् अपमर्जितम् । \n: ''$2''\nएतत्पुटं पुनर्निमातुम् इच्छति वेति दृढयतु ।",
        "recreate": "पुनर्निर्मीयताम्",
        "confirm_purge_button": "अस्तु",
        "confirm-purge-top": "अस्य पुटस्य इतिहाससङ्ग्रहं निर्मलं करोति वा ?",
-       "confirm-purge-bottom": "à¤\95सà¥\8dयà¤\9aिदपि à¤ªà¥\81à¤\9fसà¥\8dय à¤\85पमरà¥\8dà¤\9cनà¥\87न à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ा à¤¨à¤¿à¤°à¥\8dमला à¤­à¤µà¤¤à¤¿  à¤\85पि à¤\9a à¤¨à¥\82तनतमा à¤\86वà¥\83तà¥\8dतिà¤\83 à¤ªà¥\8dरà¤\95à¤\9fिता भवति ।",
+       "confirm-purge-bottom": "à¤\95सà¥\8dयà¤\9aिदपि à¤ªà¥\81à¤\9fसà¥\8dय à¤\85पमरà¥\8dà¤\9cनà¥\87न à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ा à¤¨à¤¿à¤°à¥\8dमला à¤­à¤µà¤¤à¤¿  à¤\85पि à¤\9a à¤¨à¥\82तनतमà¤\82 à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 à¤ªà¥\8dरà¤\95à¤\9fितà¤\82 भवति ।",
        "confirm-watch-button": "अस्तु",
        "confirm-watch-top": "इदं पृष्ठं भवतः अवेक्षणसूच्यां योजयाम ?",
        "confirm-unwatch-button": "अस्तु",
        "confirm-unwatch-top": "इदं पृष्ठं भवतः अवेक्षणसूच्याः निष्कास्यताम्",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "पूर्वतनं पृष्ठम्",
        "imgmultipagenext": "अग्रिमं पृष्ठम्",
        "imgmultigo": "गम्यताम् !",
        "imgmultigoto": "$1 पृष्ठं गम्यताम्",
+       "img-lang-default": "(यदभावे भाषा)",
+       "img-lang-info": "$1 इत्मात् एतत् चित्रं स्थापितम् । $2",
+       "img-lang-go": "गम्यताम्",
        "ascending_abbrev": "आरुह्",
        "descending_abbrev": "अवरुह्",
        "table_pager_next": "अग्रिमं पृष्ठम्",
        "table_pager_empty": "फलितानि न सन्ति",
        "autosumm-blank": "पृष्ठं रिक्तीकृतम्",
        "autosumm-replace": "\"$1\" इत्यनेन सह आधेस्य विनिमयः कृतः ।",
-       "autoredircomment": "[[$1]] à¤ªà¥\8dरति à¤ªà¥\81à¤\9fं पुनर्निदिष्टम् ।",
+       "autoredircomment": "[[$1]] à¤ªà¥\8dरति à¤ªà¥\83षà¥\8dठं पुनर्निदिष्टम् ।",
        "autosumm-new": "$1 नवीन पृष्ठं निर्मीत अस्ती",
+       "autosumm-newblank": "रिक्तं पृष्ठं निर्मितम्",
        "lag-warn-normal": "$1 {{PLURAL:$1|क्षणम्|क्षणानि}} इति काले सम्भूतपरिवर्तन प्रायः अस्यां सूचिकायां न दर्शितम् ।",
        "lag-warn-high": "अत्युन्नतदत्तांशवितारकस्य विलम्बत्वेन {{PLURAL:$1|क्षणम्|क्षणानि}} तः पूर्वं सम्भूतपरिवर्तनं सूचिकायां न दृश्यते ।",
        "watchlistedit-normal-title": "अवलोकनावलीं सम्पादयतु ।",
        "watchlistedit-raw-done": "भवतः अवलोकनावली उन्नतीकारोतु ।",
        "watchlistedit-raw-added": "{{PLURAL:$1|1शीर्षकम्|$1 शीर्षकानि}} संवृद्धानि ।",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1शीर्षकम्|$1 शीर्षकानि}} अपनीतानि ।",
+       "watchlistedit-clear-title": "निरीक्षासूचिः रिक्तीकृता",
+       "watchlistedit-clear-legend": "निरीक्षासूचिं रिक्तीक्रियताम् ।",
+       "watchlistedit-clear-explain": "सर्वाणि शीर्षकाणि भवतः/भवत्याः निरीक्षासूचेः निष्कासयिष्यामः ।",
+       "watchlistedit-clear-titles": "शीर्षकाणि :",
+       "watchlistedit-clear-submit": "निरीक्षासूचिः रिक्तीक्रियताम् (एतत् स्थायिपरिवर्तनम्)",
+       "watchlistedit-clear-done": "भवतः/भवत्याः निरीक्षासूचिः रक्त्यभवत् ।",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|1 शीर्षकं निष्कासितम्|$1 शीर्षकाणि निष्कासितानि}} :",
+       "watchlistedit-too-many": "बहुनि पृष्ठानि अत्र दर्शितुं विद्यन्ते ।",
+       "watchlisttools-clear": "निरीक्षासूचिं रिक्तीक्रियताम्",
        "watchlisttools-view": "योग्यपरिवर्तनानि दृश्यन्ताम्",
-       "watchlisttools-edit": "à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलिः दृश्यतां, सम्पाद्यतां च",
+       "watchlisttools-edit": "निरà¥\80à¤\95à¥\8dषासà¥\82à¤\9aिः दृश्यतां, सम्पाद्यतां च",
        "watchlisttools-raw": "विवरणरहिता अवलोकनावलिः सम्पाद्यताम्",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|सम्भाषणम्]])",
        "duplicate-defaultsort": "'''पूर्वसूचना''' \"$1\" इति पुरातनं मूलक्रमाङ्कनकुड्मलं विहाय  \"$2\" इति नवीनं मूलक्रमाङ्कनकुण्डलत्वेन स्वयमेव नयति एतत् ।",
+       "duplicate-displaytitle": "<strong>पूर्वसूचना :</strong> दृश्यमानं शीर्षकं \"$2\" पूर्वदृश्यमानम् एतस्य \"$1\" शीर्षकस्य स्थाने दृश्यते ।",
+       "invalid-indicator-name": "<strong>दोषः :</strong> पृष्ठस्थितेः द्योतकस्य पृष्ठस्य <code>नाम</code> रीक्तं न भवेत् ।",
        "version": "आवृत्तिः",
        "version-extensions": "अनुस्थापितानि विस्तरणानि ।",
-       "version-skins": "à¤\9bादन",
+       "version-skins": "तà¥\8dवà¤\95à¥\8d à¤¸à¥\8dथापà¥\8dयतामà¥\8d",
        "version-specialpages": "विशेषपृष्ठानि",
        "version-parserhooks": "विन्यासस्य आलम्बः ।",
        "version-variables": "भङ्गुरम्",
        "version-hook-name": "आलम्बस्य नाम ।",
        "version-hook-subscribedby": "सदस्यत्वम् अनेन प्राप्तम् ।",
        "version-version": "($1)",
-       "version-license": "अनुज्ञापत्रम्",
+       "version-no-ext-name": "[नाम नास्ति]",
+       "version-license": "मिडियाविकि-अनुज्ञापत्रम्",
+       "version-ext-license": "अनुज्ञापत्रम्",
+       "version-ext-colheader-name": "विस्तारक्षेत्रम्",
+       "version-skin-colheader-name": "त्वक्",
+       "version-ext-colheader-version": "संस्करणम्",
+       "version-ext-colheader-license": "अनुज्ञापत्रम्",
+       "version-ext-colheader-description": "वर्णनम्",
+       "version-ext-colheader-credits": "लेखकाः",
+       "version-license-title": "$1 कृते अनुज्ञापत्रम्",
+       "version-license-not-found": "एतस्य विस्तारक्षेत्राय अनुज्ञापत्रं न प्राप्तम्",
+       "version-credits-title": "$1 कृते कृतज्ञता",
+       "version-credits-not-found": "एतस्य विस्तारक्षेत्राय विस्तृतं कृतज्ञतासूचनं न प्राप्तम्",
        "version-poweredby-credits": "इयं विकिः अनेन सञ्चालिता '''[https://www.mediawiki.org/ MediaWiki]''', स्वामित्वम् © 2001 - $1  $2 ।",
        "version-poweredby-others": "अन्य",
+       "version-poweredby-translators": "translatewiki.net अनुवादकाः",
        "version-credits-summary": "[[Special:Version|MediaWiki]] इत्यत्र योगदानार्थं वयं अधोलिखितान् जनान् प्रशंसितुमिच्छामः।",
        "version-license-info": "मिडियाविकिः तु निश्शुल्कतन्त्रांशः ; भवान् पुनः वितर्तुं शक्नोति अथवा GNU सामान्यसार्वजनिकानुज्ञपत्रस्य नियमानुगुणं द्वीतीयावृत्तिम् अथवा अन्यनूतनावृतिं संस्कर्तुं शक्नोति । \n\nएषा बहूपयोगाय भवेत् इति धिया मिडियाविकिः वितीर्णा । किन्तु केनापि प्रमाणत्वेन विना दत्ता । अथवा निर्दिष्टोद्देशर्थे अनुकूलकरं वेति अपरिशील्य अथवा वाणिज्यस्य आनुषङ्गिकानुज्ञापत्रेण विना अपि मीडियाविकिः प्रदत्ता । विशेषविवरणप्राप्तये GNU सर्वजनसामान्यम् अनुज्ञापत्रं पश्यतु ।\n\n[{{SERVER}}{{SCRIPTPATH}}/COPYING काचित् प्रतिः, GNU सर्वजनसामान्यम् अनुज्ञापत्रम्] इत्येतत् भवान् स्वीकृतवान् । अनेन कार्यकलापेन सह , यदि नास्ति, निश्शुल्कतन्त्रज्ञानप्रतिष्ठानं पत्रं प्रेषयतु । सङ्केतः - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA or [//www.gnu.org/licenses/old-licenses/gpl-2.0.html सद्यसः पठितुमर्हति]",
        "version-software": "तन्त्रांशः अनुस्थापितः ।",
        "version-software-version": "आवृत्ति",
        "version-entrypoints": "प्रवेशबिन्दुः URLs",
        "version-entrypoints-header-entrypoint": "प्रवेशबिन्दुः ।",
-       "version-entrypoints-header-url": "URL",
+       "version-entrypoints-header-url": "सार्वसङ्केतः (URL)",
+       "version-libraries": "स्थापिताः सञ्चिकाः",
+       "version-libraries-library": "ग्रन्थालयः",
+       "version-libraries-version": "संस्करणम्",
+       "redirect": "सञ्चिका-योजक-पृष्ठेभ्यः उत संस्करणात् पुनर्निर्दिष्टम्",
+       "redirect-legend": "सञ्चिकायाः, पृष्ठात् वा पुनर्निर्दिष्टम्",
+       "redirect-summary": "एतत् विशिष्टपृष्ठं सञ्चिकां (सञ्चिकायाः नाम प्रदत्तम्) प्रति पुनर्निर्दिष्टम् अस्ति । पृष्ठं (अभिज्ञापकस्य संस्करणम् उत पृष्ठाभिज्ञापकं प्रदत्तम्), उत योजकपृष्ठम् (सङ्ख्यात्मकं योजकाभिज्ञापकं प्रदत्तम्) । उपयोगः : [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], उत [[{{#Special:Redirect}}/user/101]].",
+       "redirect-submit": "गम्यताम्",
+       "redirect-lookup": "अन्विष्याम् :",
+       "redirect-value": "मूल्यम्",
+       "redirect-user": "योजकाभिज्ञापकम्",
+       "redirect-page": "पृष्ठाभिज्ञापकम्",
+       "redirect-revision": "पृष्ठसंस्करणम्",
+       "redirect-file": "सञ्चिकानाम",
+       "redirect-not-exists": "मूल्यं न प्राप्तम्",
        "fileduplicatesearch": "प्रतिकृतिसञ्चिकार्थम् अन्विषतु ।",
        "fileduplicatesearch-summary": "सम्मिश्रमौल्यामूलयुतर्थं  प्रतिकृतिसञ्चिकार्थम् अन्विषतु ।",
        "fileduplicatesearch-legend": "प्रतिकृत्यर्थम् अन्विषतु ।",
        "fileduplicatesearch-result-n": "इति सञ्चिका {{PLURAL:$1|सादृश्यप्रतिकृतिः|$2 सादृश्यप्रतिकृतयः}}",
        "fileduplicatesearch-noresults": "\"$1\" इति नाम्ना सञ्चिका न दृष्टा ।",
        "specialpages": "विशिष्टपृष्ठानि",
-       "specialpages-note": "* साधारणं विशेषपुटम् । \n* <span class=\"mw-specialpagerestricted\">प्रतिद्धं विशेषपुटम् ।</span>",
+       "specialpages-note-top": "तालिका",
+       "specialpages-note": "* विशिष्टपृष्ठानि । \n* <span class=\"mw-specialpagerestricted\"> प्रतिबन्धितानि विशिष्टपृष्ठानि ।</span>",
        "specialpages-group-maintenance": "निर्वहणवृत्तानि ।",
        "specialpages-group-other": "अन्यविशेषपुटानि ।",
        "specialpages-group-login": "प्रविश्यताम् / लेखा सृज्यताम्",
        "specialpages-group-highuse": "अधिकोपयोगीनि पृष्ठानि",
        "specialpages-group-pages": "पृष्ठानाम् आवली",
        "specialpages-group-pagetools": "पृष्ठोपकरणानि",
-       "specialpages-group-wiki": "विà¤\95िदतà¥\8dताà¤\82शà¤\83 उपकरणानि च",
+       "specialpages-group-wiki": "सà¥\82à¤\9aना (data), उपकरणानि च",
        "specialpages-group-redirects": "विशेषपृष्ठानां पुनर्निदेशनम्",
        "specialpages-group-spam": "अनपेक्षितसन्देशस्य उपकरणानि",
+       "specialpages-group-developer": "विधिकारोपकरणानि",
        "blankpage": "रिक्तानि पृष्ठानि",
        "intentionallyblankpage": "इदं पृष्ठं बुद्ध्या एव रिक्तं रक्षितमस्ति ।",
        "external_image_whitelist": "# एषा पङ्क्तिः न परिवर्त्यताम् <pre>\n# अत्र केवलं सामान्यचिह्नानाम् उपयोगः क्रियताम् (यथा // इत्यनयोः मध्ये स्थापनीयः भागः)\n# बहिस्तात् आगतानां चित्राणां सार्वसङ्केतैः (U R L) सह एतेषां तुलना भवति\n# यत् चित्रम् अनुकूलं भवति तत् योज्यते, अन्यथा तस्य चित्रस्य परिसन्धिः योज्यते । \n# याः पङ्क्तयः # इत्यस्मात् आरभन्ते, ताः सूचनाः\n# अत्र सर्वं पक्षविगुणं (case-insensitive) वर्तते \n# सर्वान् regex भागान् अस्याः पङ्क्तेः उपरि स्थापयतु । एतां पङ्क्तिम् एवमेव स्थापयतु </pre>",
        "tags": "तर्कसिद्धानि परिवर्तनाङ्कनानि",
        "tag-filter": "[[Special:Tags|Tag]] शोधनी:",
        "tag-filter-submit": "शोधनी",
-       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|अङ्कनम्|अङ्कनानि}}]]: $2)",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|अङ्कनम्|अङ्कनानि}}]] : $2)",
        "tags-title": "अङ्कनानि",
        "tags-intro": "एतत्पुटं सार्थसूत्राणि दर्शयति यस्य कोऽपि तन्त्रांशः यत्किमपि सम्पादनम् अङ्कयितुं प्रयोजयति ।",
        "tags-tag": "अङ्कननाम",
        "tags-display-header": "परिवर्तितसूचीषु प्रदर्शनम्",
        "tags-description-header": "अर्थस्य समग्रवर्णनम्",
+       "tags-source-header": "स्रोतः",
+       "tags-active-header": "क्रार्यान्वितम् ?",
        "tags-hitcount-header": "अङ्कितानि परिवर्तनानि",
+       "tags-actions-header": "क्रियाः",
+       "tags-active-yes": "आम्",
+       "tags-active-no": "न",
+       "tags-source-extension": "विस्तारक्षेत्रेण व्याख्या",
+       "tags-source-manual": "योजकेन, बॉट् इत्यनेन च प्रयुक्तम्",
+       "tags-source-none": "अधिकसमयं यावत् नोपयुज्यते",
        "tags-edit": "सम्पाद्यताम्",
+       "tags-delete": "अपाक्रियताम्",
+       "tags-activate": "स्रक्रियम्",
+       "tags-deactivate": "असक्रियम्",
        "tags-hitcount": "$1 {{PLURAL:$1|परिवर्तनम्|परिवर्तनानि}}",
+       "tags-manage-no-permission": "भवतः/भवत्याः पार्श्वे परिवर्तनचिह्नानि सञ्चालयितुम् अनुमतिः नास्ति ।",
+       "tags-create-heading": "नूतनचिह्नं सृज्यताम्",
+       "tags-create-explanation": "यदभावे, नवीनरचितानि अङ्कनानि योजकेभ्यः, बॉट् इत्येतेभ्यश्च उपलब्धानि सन्ति ।",
+       "tags-create-tag-name": "अङ्कननाम :",
+       "tags-create-reason": "कारणम् :",
+       "tags-create-submit": "सृज्यताम्",
+       "tags-create-no-name": "अङ्कननाम निश्चयेन कथयतु ।",
+       "tags-create-invalid-chars": "अङ्कननामसु अल्पविरामः (<code>,</code>) उत (<code>/</code>) चिह्नं न भवेदेव ।",
+       "tags-create-invalid-title-chars": "पृष्ठस्य शीर्षके येषाम् अक्षराणाम् उपयोगः न भवति, तेषाम् अक्षराणाम् अङ्कनस्य नामत्वेन उपयोगः न करणीयः ।",
+       "tags-create-already-exists": "$1 इति अङ्कनं पूर्वमेव वर्तते ।",
+       "tags-create-warnings-above": "अथ {{PLURAL:$2|पूर्वसूचना उच्यते|पूर्वसूचनाः उच्यन्ते}} यदा अङ्कननिर्माणस्य प्रयत्नः भवति \"$1\" :",
+       "tags-create-warnings-below": "अङ्कनं सर्जितुं भवान्/भवती इच्छति ?",
+       "tags-delete-title": "अङ्कनं अपाक्रियताम्",
+       "tags-delete-explanation-initial": "भवान्/भवती दत्तांशात् $1 अङ्कनम् अपाकरोति ।",
+       "tags-delete-explanation-in-use": "{{PLURAL:$2|$2 revision or log entry|सर्वाणि $2 संस्करणानि च/उत अवेक्षणाऽऽवलिनिवेशात्}} इत्यस्मात् एतत् निष्कासितम्, यत् अधुना उपयोगरतम् अस्ति ।",
+       "tags-delete-explanation-warning": "एषा क्रिया <strong>अपरिवर्तनीया</strong>अस्ति । तथा च  तन्त्रांशस्य प्रबन्धकेनापि <strong> पूर्ववत् कर्तुं न शक्यते</strong> । अतः दृढनिश्चयानन्तरमेव एतत् अङ्कनम् अपाकरोतु ।",
+       "tags-delete-explanation-active": "<strong>\"$1\" इत्येत् अङ्कनम् अधुनापि सक्रियम् अस्ति ।  भविष्यत्काले अपि एतस्य उपयोगं कर्तुं शक्यते । </strong> भविष्यत्काले तस्य उपयोगं स्थगयितुम् अङ्कनस्य उपयोगस्थलं गत्वा निष्क्रियम् अकरोतु ।",
+       "tags-delete-reason": "कारणम् :",
+       "tags-delete-submit": "अङ्कनस्य अपाकरणम् अपरिवर्तनीयम्",
+       "tags-delete-not-allowed": "यावत् पर्यन्तं निश्चितं विस्तारकम् अङ्कनम् अपाकर्तुं निश्चितं न करोति, तावत् अङ्कनम् एतत् अपाकर्तुं न शक्यते ।",
+       "tags-delete-not-found": "\"$1\" इत्यङ्कनं न विद्यते ।",
+       "tags-delete-too-many-uses": "$1 इत्येतत् अङ्कनम् $2 अनेकेषु {{PLURAL:$2|संस्करणेषु}} उपयोज्यते । अर्थात् एतत् अपाकर्तुं न शक्यते ।",
+       "tags-delete-warnings-after-delete": "$1 इत्येत् अङ्कनम् अपाकृतं, परन्तु {{PLURAL:$2|पूर्वसूचना उच्यते|पूर्वसूचनाः उच्यन्ते}}",
+       "tags-activate-title": "सक्रियाङ्कनम्",
+       "tags-activate-question": "$1 इत्येतत् अङ्कनं भवान्/भवती सक्रियं कर्तुं गच्छति ।",
+       "tags-activate-reason": "कारणम् :",
+       "tags-activate-not-allowed": "\"$1\" इत्येतस्य अङ्कनस्य सक्रियतम् असम्भवम् अस्ति ।",
+       "tags-activate-not-found": "$1 अङ्कनं न विद्यते ।",
+       "tags-activate-submit": "स्रक्रियम्",
+       "tags-deactivate-title": "असक्रियाङ्कनम्",
+       "tags-deactivate-question": "$1 इत्येतत् अङ्कनं भवान्/भवती असक्रियं कर्तुं गच्छति ।",
+       "tags-deactivate-reason": "कारणम् :",
+       "tags-deactivate-not-allowed": "\"$1\" इत्येतस्य अङ्कनस्य असक्रियता न शक्यते ।",
+       "tags-deactivate-submit": "अस्रक्रियम्",
+       "tags-apply-no-permission": "स्वपरिवर्तनैः सह एतत् अङ्कनम् अपाकर्तुं भवतः/भवत्याः पार्श्वे अधिकारः नास्ति ।",
+       "tags-apply-not-allowed-one": "$1 अङ्कनं हस्तेन उपयोक्तुं न शक्नोति ।",
+       "tags-apply-not-allowed-multi": "हस्तेन {{PLURAL:$2|अङ्कनं|अङ्कनानि}} उपयोक्तुं न शक्नोति : $1",
+       "tags-update-no-permission": "वैय्यक्तिकसंस्करणात्, अवेक्षणाऽऽवल्यात् च अङ्कनम् अपाकर्तुम् उत स्थापयितुं भवतः/भवत्याः पार्श्वे अधिकारः नास्ति ।",
+       "tags-update-add-not-allowed-one": "$1 अङ्कनं हस्तेन उपयोक्तुं न शक्नोति ।",
+       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|एतत् अङ्कनं|एतानि अङ्कनानि}} $1 अङ्कनं हस्तेन उपयोक्तुं न शक्नोति ।",
+       "tags-update-remove-not-allowed-one": "$1 इत्येत् अङ्कनं निष्कासितुं न शक्नोति ।",
+       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|एतत् अङ्कनं|एतानि अङ्कनानि}} $1 अङ्कनं हस्तेन उपयोक्तुं न शक्नोति ।",
+       "tags-edit-title": "अङ्कानि सम्पाद्यन्ताम्",
+       "tags-edit-manage-link": "अङ्कानां प्रबन्धनं करोतु ।",
+       "tags-edit-revision-selected": "[[:$2]] इत्यस्य {{PLURAL:$1|चित-संस्करणं|चित-संस्करणानि}} :",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|चित-संरक्षिताऽऽवलेः घटना|संरक्षिताऽऽवलेः घटनाः}} :",
+       "tags-edit-revision-legend": "{{PLURAL:$1|एतत् संस्करमं|सर्वाणि $1 संस्करणानि}} इत्यस्मिन् योज्यताम् उत इत्यस्मात् निष्कास्यताम्",
+       "tags-edit-logentry-legend": "{{PLURAL:$1|एषा निरीक्षासूचिः|एताः $1 निरीक्षासूचयः}} इत्यस्मिन् योज्यताम् उत इत्यस्मात् निष्कास्यताम्",
+       "tags-edit-existing-tags": "विद्यामानि अङ्कानि :",
+       "tags-edit-existing-tags-none": "\"नैकम्\"",
+       "tags-edit-new-tags": "नवीनाङ्कनम् :",
+       "tags-edit-add": "एतत् अङ्कनं योजयतु :",
+       "tags-edit-remove": " एतत् अङ्कनम् अपाकरोतु :",
+       "tags-edit-remove-all-tags": "(सर्वाणि अङ्कानि अपाक्रियन्ताम्)",
+       "tags-edit-chosen-placeholder": "कानिचन अङ्कानि चिनोतु",
+       "tags-edit-chosen-no-results": "समानम् अङ्कनं न प्राप्तम्",
+       "tags-edit-reason": "कारणम् :",
+       "tags-edit-revision-submit": "{{PLURAL:$1|एतस्मै संस्करणाय|$1 एतेभ्यः संस्करणेभ्यः}} परिवर्तनानि प्रयुज्यताम्",
+       "tags-edit-logentry-submit": "{{PLURAL:$1|एतस्यै अवेक्षणावल्यै|$1 एताभ्यः अवेक्षणावलिभ्यः}} परिवर्तनानि प्रयुज्यताम्",
+       "tags-edit-success": "परिवर्तनानि योग्यरीत्या प्रयुञ्जितानि ।",
+       "tags-edit-failure": "$1 : परिवर्तनानि न प्रयुञ्जितानि",
+       "tags-edit-nooldid-title": "अयोग्यलक्ष्यस्य संस्करणम्",
+       "tags-edit-nooldid-text": "भवता/भवत्या प्रदत्तं संस्करणम् अविद्यामानम् अस्ति उत प्रदत्तं नियोजितः (function) यस्मिन् संस्करणे कार्यं करोति तत् निश्चितं नास्ति ।",
+       "tags-edit-none-selected": "इत्यस्मिन् योजयितुम् उत इत्यस्मात् निष्कासयितुं न्यूनातिन्यूनम् एकम् अङ्कनं चिनोतु कृपया ।",
        "comparepages": "पृष्ठानि तोल्यन्ताम्",
        "compare-page1": "पृष्ठम् १",
        "compare-page2": "पृष्ठम् २",
        "compare-revision-not-exists": "निर्दिष्टं संस्करनं न विद्यते ।",
        "dberr-problems": "क्षम्यताम् ! अस्मिन् जालपुटे तान्त्रिकसमस्याः अनुभूयमानाः सन्ति ।",
        "dberr-again": "किञ्चित् कालं प्रतीक्ष्य पुनः उपारोप्यताम् ।",
-       "dberr-info": "(दत्ताशं वितारकं सम्पर्कयितुं नैव शक्यते $1 )",
+       "dberr-info": "(दत्तांशस्य उपयोगः नैव शक्यते : $1)",
+       "dberr-info-hidden": "(दत्तांशस्य उपयोगः नैव शक्यते)",
        "dberr-usegoogle": "अत्रान्तरे भवान् गूगल् इति शोधनयन्त्रे अन्वेषणं कर्तुं शक्नोति ।",
        "dberr-outofdate": "अस्माकम् आधेयस्य तेषाम् अनुक्रमणिका कालातिक्रान्ता इति जानातु ।",
        "dberr-cachederror": "एषा सङ्ग्रहितप्रतिः अभ्यर्थितपुटस्य , एषा उन्नतीकृता अपि न स्यात् ।",
        "htmlform-submit": "उपस्थाप्यताम्",
        "htmlform-reset": "परिवर्तनानि पूर्वस्थितिं प्रति आनयतु",
        "htmlform-selectorother-other": "अन्य",
+       "htmlform-no": "न",
+       "htmlform-yes": "आम्",
+       "htmlform-chosen-placeholder": "एकं विकल्पं चिनोतु",
+       "htmlform-cloner-create": "अधिकं योज्यताम्",
+       "htmlform-cloner-delete": "निष्कास्यताम्",
+       "htmlform-cloner-required": "न्यूनातिन्यूनम् एकं मूल्यम् अपेक्ष्यते ।",
        "sqlite-has-fts": "$1 अन्वेषणसमर्थपूर्णपाठेन सह",
        "sqlite-no-fts": "$1 अन्वेषणसमर्थपूर्णपाठेन विना",
-       "logentry-delete-delete": "$1 इत्यनेन $3 पुटं निष्कासितम्",
-       "logentry-delete-restore": "$1 इत्यनेन $3 पृष्ठं प्रात्यानीतम्",
-       "logentry-delete-event": "$1 परिवर्तितदृश्यस्य {{PLURAL:$5|a log event|$5 log events}} $3: $4 इत्यस्मिन् ।",
-       "logentry-delete-revision": "$1 इत्येषः $3 पुटस्य {{PLURAL:$5|एका आवृत्तिः|$५ आवृत्तयः}}इत्यस्य दृश्यता परिवर्तिता $4",
-       "logentry-delete-event-legacy": "$1 इत्येतत् $3 पुटे  प्रवेशप्रक्रियायाः दृश्यताः परिवर्तिता ।",
-       "logentry-delete-revision-legacy": "$1 इत्येतत् $3 पुटे आवृत्तीनां दृश्यता  परिवर्तिता ।",
-       "logentry-suppress-delete": "$1 निग्रहितपुटम् $3",
-       "logentry-suppress-event": "$1 परिवर्तितदृश्यस्य {{PLURAL:$5|a log event|$5 log events}} $3: $4 इत्यस्मिन् ।",
-       "logentry-suppress-revision": "$1 इत्येषः $3 पुटस्य {{PLURAL:$5|एका आवृत्तिः|$५ आवृत्तयः}}इत्यस्य दृश्यता परिवर्तिता $4",
-       "logentry-suppress-event-legacy": "$1 इत्येतत् $3 पुटे  प्रवेशप्रक्रियायाः दृश्यताः परिवर्तिता ।",
-       "logentry-suppress-revision-legacy": "$1 इत्येतत् $3 पुटे आवृत्तीनां दृश्यता  परिवर्तिता ।",
-       "revdelete-content-hid": "à¤\86धà¥\87यà¤\82 à¤µà¤¿à¤²à¥\8bपितमà¥\8d",
+       "logentry-delete-delete": "$1 {{GENDER:$2|अपाकृतं}} पृष्ठं $3",
+       "logentry-delete-restore": "$1 {{GENDER:$2|पुनस्स्थापितं}} पृष्ठं $3",
+       "logentry-delete-event": "$3: $4 इत्यत्र {{PLURAL:$5|संरक्षिताऽऽवलेः घटनायाः|$5 संरक्षिताऽऽवलीनां घटनानां}} दर्शनीयता $1 द्वारा {{GENDER:$2|परिवर्तिता}}",
+       "logentry-delete-revision": "$3: $4 पृष्ठेस्मिन् {{PLURAL:$5|संस्करणस्य|$5 संस्करणानां}} दर्शनीयता $1 द्वारा {{GENDER:$2|परिवर्तिता}}",
+       "logentry-delete-event-legacy": "$3 इत्यत्र संरक्षिताऽऽवल्याः घटनानां दर्शनीयता $1 द्वारा {{GENDER:$2|परिवर्तिता}}",
+       "logentry-delete-revision-legacy": "$3 इत्यत्र संरक्षिताऽऽवलेः दर्शनीयता $1 द्वारा {{GENDER:$2|परिवर्तिता}}",
+       "logentry-suppress-delete": "$1 {{GENDER:$2|निरुद्धं (suppressed)}} पृष्ठं $3",
+       "logentry-suppress-event": "$3: $4 इत्यत्र {{PLURAL:$5|संरक्षिताऽऽवलेः घटनायाः|$5 संरक्षिताऽऽवलीनां घटनानां}} दर्शनीयता $1 द्वारा रहस्यपूर्णरीत्या {{GENDER:$2|परिवर्तिता}}",
+       "logentry-suppress-revision": "$3: $4 पृष्ठेस्मिन् {{PLURAL:$5|संस्करणस्य|$5 संस्करणानां}} दर्शनीयता $1 द्वारा रहस्यमयरीत्या {{GENDER:$2|परिवर्तिता}}",
+       "logentry-suppress-event-legacy": "$3 इत्यत्र संरक्षिताऽऽवल्याः घटनानां दर्शनीयता $1 द्वारा रहस्यमयरीत्या {{GENDER:$2|परिवर्तिता}}",
+       "logentry-suppress-revision-legacy": "$3 इत्यत्र संरक्षिताऽऽवलेः दर्शनीयता $1 द्वारा रहस्यमयरीत्या {{GENDER:$2|परिवर्तिता}}",
+       "revdelete-content-hid": "सामà¤\97à¥\8dरà¥\80 à¤\85पाà¤\95à¥\83ता",
        "revdelete-summary-hid": "सम्पादनसारः विलोपितः",
        "revdelete-uname-hid": "योजकस्य नाम सङ्गुप्तम् ।",
        "revdelete-content-unhid": "आधेयं न लोपितम्",
        "revdelete-uname-unhid": "योजकस्य नाम न लोपितम्",
        "revdelete-restricted": "प्रबन्धकानां प्रतिबन्धनानि आरोपितानि",
        "revdelete-unrestricted": "प्रबन्धकानां प्रतिबन्धनानि निष्कासितानि",
-       "logentry-move-move": "$1 {{GENDER:$2|moved}} $3 पुटं $4 प्रति चालितम्",
-       "logentry-move-move-noredirect": "$1 इति प्रयोक्त्रा $3 इति पृष्ठम् $4 इत्येतत् प्रति चालितं, अनुप्रेषणेन विना",
-       "logentry-move-move_redir": "↓\n$1 इत्यनेन $3 इति पृष्ठम् $4 इत्येतत् प्रति चालितं, अनुप्रेषणम् अतिक्रम्य",
-       "logentry-move-move_redir-noredirect": "$1 इति प्रयोक्त्रा $3 इति पृष्ठं $4 इत्येतत् प्रति चालितम्, अनुप्रेषणम् अतिक्रम्य, अनुप्रेषणमोचनेन च विना।",
-       "logentry-patrol-patrol": "$1 अङ्कितावृत्तिः $4 इति पुटस्य $3 आरक्षणम् ।",
-       "logentry-patrol-patrol-auto": "$1 इत्येतत् $3 पुटस्य $4 आवृत्तिं स्वयं चालितरूपात् आरक्षितम् ।",
-       "logentry-newusers-newusers": "$1 योजकलेखाम् असृजत्",
-       "logentry-newusers-create": "$1 योजकलेखाम् असृजत्",
-       "logentry-newusers-create2": "$1,  $3 इति योजकलेखाम् असृजत्",
-       "logentry-newusers-autocreate": "$1 लेखा स्वयमेव सृष्टं जातम्",
-       "logentry-rights-rights": "$1 इत्ययं $3 इत्यस्य समूहसदस्यतां $4 इत्यतः परिवर्त्य $5 इत्यकरोत्",
-       "logentry-rights-rights-legacy": "$1, $3 इत्यस्मै समूहसदस्यतां पर्यवर्तयत्",
-       "logentry-rights-autopromote": "$1 इत्ययं स्वचालितरूपेण $4 इत्यतः $5 इति यावत् पदोन्नतः",
+       "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-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-interwiki": "$3 अन्यविकि-प्रकल्पात् $1 {{GENDER:$2|आयतं कृतम्}}",
+       "logentry-merge-merge": "$1 {{GENDER:$2|मेलितं}} $3 इत्येतत् $4 इत्यस्मिन् ($5 परन्यन्तं संस्करणानि सन्ति)",
+       "logentry-move-move": "$1 इत्यनेन {{GENDER:$2|शीर्षकं परिवर्त्य}} $3 पृष्ठं $4 प्रति स्थानान्तरितम्",
+       "logentry-move-move-noredirect": "पुनर्निर्देशनम् अत्यक्त्वा $1 इत्यनेन $3 तः $4 पृष्ठं  {{GENDER:$2|स्थानान्तरितं}}",
+       "logentry-move-move_redir": "पुनर्निर्देशनं प्रति $1 इत्यनेन $3 तः $4 पृष्ठं  {{GENDER:$2|स्थानान्तरितं}}",
+       "logentry-move-move_redir-noredirect": "पुनर्निर्देशनं प्रति पुनर्निर्देशनम् अत्यक्त्वा $1 इत्यनेन $3 तः $4 पृष्ठं {{GENDER:$2|स्थानान्तरितं}}",
+       "logentry-patrol-patrol": "$1 द्वारा $3 इतिपृष्ठस्य $4 संस्करणं परिक्रमितं (patrolled) {{GENDER:$2|चिह्नितं}}",
+       "logentry-patrol-patrol-auto": "$1 द्वारा स्वतः $3 इतिपृष्ठस्य $4 संस्करणं परिक्रमितं (patrolled) {{GENDER:$2|चिह्नितं}}",
+       "logentry-newusers-newusers": "$1 योजकलेखा {{GENDER:$2|निर्मिता}}",
+       "logentry-newusers-create": "$1 योजकलेखा {{GENDER:$2|निर्मिता}}",
+       "logentry-newusers-create2": "$1 द्वारा $3 योजकलेखा {{GENDER:$2|निर्मिता}}",
+       "logentry-newusers-byemail": "$1 द्वारा $3 इति योजकलेखा {{GENDER:$2|सृष्टा}} कूटशब्दः ईपत्रमाध्यमेन प्रेषितः ।",
+       "logentry-newusers-autocreate": "$1 योजकलेखा स्वतः {{GENDER:$2|निर्मिता}}",
+       "logentry-rights-rights": "$1 इत्यनेन $3 इत्यस्य दलसमूहः $4 इत्यस्मात् परिवर्त्य  $5 {{GENDER:$2|कृतः}}",
+       "logentry-rights-rights-legacy": "$1 द्वारा $3 कृते दलसदस्यत्वं {{GENDER:$2|परिवर्तितं}}",
+       "logentry-rights-autopromote": "$4 तः $5 पर्यन्तं $1 इत्यनेन स्वतः {{GENDER:$2|संरक्षितम्}}",
        "logentry-upload-upload": "$1 {{GENDER:$2|निवेशितम्}} $3",
-       "rightsnone": "(कतम)",
+       "logentry-upload-overwrite": "$3 इत्यस्य नवीनं संस्करणं $1 {{GENDER:$2|उपारोहितं}}",
+       "logentry-upload-revert": "$1 {{GENDER:$2|उपारोहितम्}} $3",
+       "log-name-managetags": "अङ्कनव्यवस्थारनस्य निरीक्षासूचिः",
+       "log-description-managetags": "[[Special:Tags|अङ्कनेभ्यः]] एतस्य पृष्ठस्य प्रबन्धनं भवति । यतो हि प्रबन्धकेन हस्तेन कृतानि क्रार्याणि एव निरीक्षासूचौ दृश्यन्ते, अतः अङ्कनस्य निर्माणम्, अपाकरणं च विकि-तन्त्रांशेन एव भवति । तेन कृतं परिवर्तनम् निरीक्षासूचौ न दृश्यते ।",
+       "logentry-managetags-create": "\"$4\" अङ्कनं $1 {{GENDER:$2|सृष्टं}}",
+       "logentry-managetags-delete": "$1 इत्यनेन $4 अङ्कनम् {{GENDER:$2|अपाकृतम्}} ($5 इत्यस्मात् अपाकृतम् {{PLURAL:$5|संस्करणम् उत निरीक्षासूचिः|संस्करणानि उत निरीक्षासूचयः}})",
+       "logentry-managetags-activate": "योजकैः, बॉट् इत्येतैः च \"$4\" अङ्कनं $1 {{GENDER:$2|सक्रियं कृतं}}",
+       "logentry-managetags-deactivate": "योजकैः, बॉट् इत्येतैः च \"$4\" अङ्कनं $1 {{GENDER:$2|असक्रियं कृतं}}",
+       "log-name-tag": "अङ्कनस्य निरीक्षासूचिः",
+       "log-description-tag": "वैय्यक्तिकसंस्करणेभ्यः उत निरीक्षासूचिभ्यः [[Special:Tags|अङ्कनानि]] अपाभवन्ति उत स्थापितानि भवन्ति, तदा एतस्मिन् दृश्यन्ते । सम्पादनस्य भागरूपम् अपाकरणं, अन्यक्रिया वा अङ्कनत्वेन निरीक्षासूचौ न अन्तर्भवन्ति ।",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|स्थापितं}} {{PLURAL:$7|अङ्कनं}} $6 संस्करणात् $4 इत्येषु $3 पृष्ठानि",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|स्थापितं}} {{PLURAL:$7|अङ्कनं}} $6 संस्करणात् $5 इत्येषु $3 पृष्ठानि",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|अपाकृतं}} {{PLURAL:$9|अङ्कनं}} $8 संस्करणात् $4 इत्येषु $3 पृष्ठानि",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|अपाकृतम्}} {{PLURAL:$9|अङ्कनं}} $8 संस्करणात् $5 इत्येषु $3 पृष्ठानि",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|अद्यतनीकृतम्}} $4 संस्करणात् $3 इत्येषु $3 पृष्ठानि ({{PLURAL:$7|स्थापितानि}} $6; {{PLURAL:$9|अपाकृतम्}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|अद्यतनीकृतम्}} $5 संस्करणात् $3 इत्येषु $3 पृष्ठानि ({{PLURAL:$7|स्थापितानि}} $6; {{PLURAL:$9|अपाकृतम्}} $8)",
+       "rightsnone": "(नैकम्)",
        "revdelete-summary": "सम्पादनसांक्षेपिक",
        "feedback-adding": "पृष्ठे प्रतिस्पन्दः योजनीयः ...",
+       "feedback-back": "प्रतिगम्यताम्",
        "feedback-bugcheck": "उत्तमम् परिशीलयतु यत्  [ $1 known bugs] पूर्वमेव नासीत् इति ।",
        "feedback-bugnew": "अहं परीक्षितवान् ।  नूतनदोषं सूचयतु ।",
        "feedback-bugornote": "यदि भवान् कस्याश्चित् तान्त्रिकसमस्यायाः विषये विशदीकर्तुम् इच्छति तर्हि [$1 मत्कुणसञ्चिकां करोतु ।]\nअन्यथा चेत् भवान् सरलप्रपत्रम् उपयोक्तुं शक्नोति । भवतः टीका योजकनाम्ना सह भवतः जालगवाक्षेन सह  \"[$3 $2]\" इत्यस्मिन् पुटे योज्यते ।",
-       "feedback-cancel": "निवरà¥\8dतयतà¥\87",
+       "feedback-cancel": "निरसà¥\8dयतामà¥\8d",
        "feedback-close": "समापित",
+       "feedback-external-bug-report-button": "यान्त्रककार्यम् अङ्क्यताम्",
+       "feedback-dialog-title": "स्वप्रतिक्रियां लिखतु",
+       "feedback-dialog-intro": "स्वप्रतिक्रियां लेखितुं निम्नं सरलपत्रम् उपयोक्तुं शक्नोति   ।\nभवतः/भवत्याः योजकनामोल्लेखन सह $1 इत्यस्मिन् पृष्ठे भवतः/भवत्याः प्रतिक्रियां योजयिष्यामः ।",
+       "feedback-error-title": "दोषः",
        "feedback-error1": "API इत्यस्मात् दोषः : अज्ञातः परिणामः ।",
        "feedback-error2": "दोषः : सम्पादनं निष्फलं जातम्",
        "feedback-error3": "दोषः : ए पि ऐ तः प्रतिस्पन्दः न प्राप्तः",
+       "feedback-error4": "दोषः : दत्तप्रतिक्रियायाः शीर्षकस्थापनम् असफलम्",
        "feedback-message": "संदेश:",
-       "feedback-subject": "विषय:",
+       "feedback-subject": "विषयः :",
        "feedback-submit": "उपस्थाप्यताम्",
+       "feedback-terms": "मम योजकानुयोज्यस्य सूचना, मम गवेषकेन, कासंविधायाः संस्करणे सह मम प्रतिक्रिया च जनसामान्येभ्यः दृश्यमाना भविष्यति ।",
+       "feedback-termsofuse": "उपयोगनियमान्तर्गतम् अहं स्वप्रतिक्रियां दातुम् इच्छामि ।",
        "feedback-thanks": "धन्यवादः ! भवतः प्रतिस्पन्दः \"[ $2  $1 ]\" पृष्ठाय प्रेषितः अस्ति ।",
+       "feedback-thanks-title": "कृतज्ञतां निवेदयामि !",
+       "feedback-useragent": "योजकानुयोज्यः :",
        "searchsuggest-search": "अन्वेषणम्",
        "searchsuggest-containing": "विद्यन्ते......",
        "api-error-badaccess-groups": "भवान् अस्यां वीक्यां सञ्चिकाः उत्तारयितुम् नानुमतः ।",
        "api-error-ok-but-empty": "आन्तरिकदोषः : वितारकतः प्रतिस्पन्दः न प्राप्तः ।",
        "api-error-overwrite": "वर्तमानसञ्चिकायाः पुनर्लेखनं नानुमतम् ।",
        "api-error-stashfailed": "आन्तरिकदोषः : तात्कालिकसञ्चिकायाः रक्षणे वितारकः असमर्थः जातः ।",
+       "api-error-publishfailed": "आन्तरिकदोषः : तात्कालिकसञ्चिकायाः रक्षणे वितरकः असमर्थः जातः ।",
+       "api-error-stasherror": "गोपनीयस्थाने सञ्चिकायाः उपारोहणकाले दोषः समुद्भूतः ।",
+       "api-error-stashedfilenotfound": "यदा गुहितस्थाने सञ्चिकाम् उपारोहणस्य प्रयासः कृतः, तदा गुहितसञ्चिका न प्राप्ता ।",
+       "api-error-stashpathinvalid": "गुहितस्थानस्य यः मार्गः प्रदत्तः, सः अमान्यः अस्ति ।",
+       "api-error-stashfilestorage": "गोपनीयस्थाने सञ्चिकायाः उपारोहणकाले दोषः समुद्भूतः ।",
+       "api-error-stashzerolength": "वितरकः गुहितसञ्चिकां नाप्रापत्, यतो हि तस्य दीर्घ्यं नासीत् ।",
+       "api-error-stashnotloggedin": "गुहितस्थाने सञ्चिकाम् उपारोहितुं भवान्/भवती प्रविश्यताम् ।",
+       "api-error-stashwrongowner": "यां सञ्चिकां भवान्/भवती गुहिकस्थाने उपारोहितुं प्रयासं करोति, सा भवतः/भवत्याः नास्ति ।",
+       "api-error-stashnosuchfilekey": "गुहितस्थानस्य यां सञ्चिकायाः तालिकां भवान्/भवती इच्छति, सा न विद्यते ।",
        "api-error-timeout": "अपेक्षितावधौ वितारकेण प्रतिस्पन्दः न दर्शितः ।",
        "api-error-unclassified": "कश्चन अज्ञातः दोषः जातः ।",
        "api-error-unknown-code": "अज्ञातः दोषः \" $1 \"",
        "duration-decades": "$1 {{PLURAL:$1|दशकम्|दशकानि}}",
        "duration-centuries": "$1 {{PLURAL:$1|शतकम्|शतकानि}}",
        "duration-millennia": "$1 {{PLURAL:$1|सहस्राब्धः|सहस्राब्धाः}}",
+       "rotate-comment": "घटिपरिभ्रमणानुगुणं $1 {{PLURAL:$1|अंशेन|अंशैः}} चित्रं परिभ्रामितम् ।",
+       "limitreport-title": "अभिज्ञापकसूचनां परिवर्त्यताम्",
+       "limitreport-cputime": "सङ्गणकसमयस्य उपयोगः",
+       "limitreport-cputime-value": "$1 {{PLURAL:$1|निमेषः|निमेषाः}}",
+       "limitreport-walltime": "यथार्थसमस्य उपयोगः",
+       "limitreport-walltime-value": "$1 {{PLURAL:$1|निमेषः|निमेषाः}}",
+       "limitreport-ppvisitednodes": "नोड् गणयितुं पूर्वक्रिया अभवत्",
+       "limitreport-ppgeneratednodes": "नोड् गणयितुं पूर्वप्रक्रिया आरब्धा",
+       "limitreport-postexpandincludesize": "पश्चात् विस्तारयितुं आकारस्य आयातः",
+       "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|बैट्|बैट्स्}}",
+       "limitreport-templateargumentsize": "फलकस्य सन्दायकस्य (argument) आकारः",
+       "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|बैट्|बैट्स्}}",
+       "limitreport-expansiondepth": "पूर्णतः विस्तृता आकारगहनता",
+       "limitreport-expensivefunctioncount": "मूल्याधिकस्य पार्सर् नियोजितस्य गणना",
+       "expandtemplates": "फलकं विस्तीर्यताम्",
+       "expand_templates_intro": "विशिष्टे पृष्ठे पाठः, फलकानि च पौनःपुन्येन विस्तीर्णानि भवन्ति । \nएतत् पार्सर् नियोजितान् अपि विस्तारयति । यथा - \n<code><nowiki>{{</nowiki>#language:…}}</code>, विकारयः च \n<code><nowiki>{{</nowiki>CURRENTDAY}}</code>.\n<code><nowiki>{{}}</code> इत्यस्मिन् विद्यामानं सर्वम् एतत् विस्तारयति ।",
+       "expand_templates_title": "शीर्षकं विद्यते, {{FULLPAGENAME}} इत्यादिभ्यः :",
+       "expand_templates_input": "निवेशपाठः :",
        "expand_templates_output": "परिणामम्",
+       "expand_templates_xml_output": "XML परिणामः",
+       "expand_templates_html_output": "HTML अपक्वपरिणामः",
        "expand_templates_ok": "अस्तु",
+       "expand_templates_remove_comments": "टिप्पण्यः निष्कास्यताम्",
+       "expand_templates_remove_nowiki": "योजितं <nowiki> परिणामत्वेन अङ्कनं",
+       "expand_templates_generate_xml": "XML पार्स् वृक्षः दर्श्यताम्",
+       "expand_templates_generate_rawhtml": "अपक्वं HTML दर्श्यताम्",
        "expand_templates_preview": "प्राग्दृश्यम् दर्श्यताम्",
+       "expand_templates_preview_fail_html": "'''क्षम्यताम् ! प्रवेशसूचनायाः लोपत्वात् भवता/भवत्या कृतानि परिवर्तनानि रक्षितुं वयं न शक्तवन्तः ।\n\n<em>कारणं {{SITENAME}} इत्यत्र मूल-HTML-समर्थितं भवति । अतः JavaScript इत्यस्मात् रक्षितुं प्राग्दृश्यं निगूहितं भवति ।</em>\n\n<strong>भवता/भवत्या कृतं सम्पादनं यदि उचितमस्ति, तर्हि पुनः प्रयत्यताम् ।</strong>\n\nअधुनापि यदि सा एव समस्या अस्ति, तर्हि [[Special:UserLogout|निर्गमनं कृत्वा]] पुनः प्रविश्यताम् ।",
+       "expand_templates_preview_fail_html_anon": "<em>यतो हि {{SITENAME}} इत्यस्मिन् अपक्वं HTML समर्थितम् अस्ति, तथा च भवान्/भवती प्रवेशं न प्रापत्, अतः JavaScript इत्यस्मात् रक्षितुं प्राग्दृश्यं निगूहितम् </em>\n\n<strong>यदि एषः न्यासङ्गतः प्राग्दृश्यप्रयासः अस्ति, तर्हि कृपया [[Special:UserLogin|पुनःप्रविश्य]] प्रयतताम् </strong>",
+       "pagelanguage": "पृष्ठस्य भाषाचयकः",
+       "pagelang-name": "पृष्ठम्",
+       "pagelang-language": "भाषा",
+       "pagelang-use-default": "(यदभावे भाषा)",
+       "pagelang-select-lang": "चिता भाषा",
+       "right-pagelang": "पृष्ठस्य भाषा परिवर्त्यताम्",
+       "action-pagelang": "पृष्ठस्य भाषा परिवर्त्यताम्",
+       "log-name-pagelang": "भाषायाः निरीक्षासूचिः परिवर्त्यताम्",
+       "log-description-pagelang": "भाषापृष्ठे जानानां परिवर्तनानाम् अवेक्षणावऽऽवलिः अस्ति ।",
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|परिवर्तनानि}} $3 भाषापृष्ठाय $4 तः $5 पर्यन्तम्",
+       "default-skin-not-found": "अरे ! तव विकि कृते यदाभावे त्वक् <code dir=\"ltr\">$wgDefaultSkin</code> निर्धारिता अस्ति ।  <code>$1</code>-त्वेन उपलब्धं नास्ति ।\n\nतव स्थापनायां निम्नं अस्ति । {{PLURAL:$4|त्वक्|त्वचः}} । दृश्यताम् -  [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for information how to enable {{PLURAL:$4|it|them and choose the default}}.\n\n$2\n\n; MediaWiki इत्येत् सद्यः एव स्थापितम् :\n: git इत्यस्मात् स्थापितं स्यात् उत साक्षात् मूलस्रोतात् उपयञ्जते । एतत् सामान्यम् अस्ति । इतः काश्चन त्वचः अवतार्यताम्  [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory], द्वारा:\n:* अपवारोपणम् [https://www.mediawiki.org/wiki/Download tarball installer], which comes with several skins and extensions. You can copy and paste the <code>skins/</code> directory from it.\n:* इत्समात् वैय्यक्तिरूपेण त्वचः अवारोपणं शक्यम्  [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n: यदि भवान्/भवती मिडियाविकि विधिकारः अस्ति चेत् git द्वारा एतत् समीकर्तुं न शक्योत् ।\n\n; MediaWiki इत्येत् केवलम् अवगच्छति :\n: MediaWiki 1.24, नवीनं च (see [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). You can paste the following {{PLURAL:$5|line|lines}} into <code>LocalSettings.php</code> to enable {{PLURAL:$5|the|all}} installed {{PLURAL:$5|skin|skins}}:\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 दृश्यताम् -  [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for information how to enable \n\n; MediaWiki इत्येत् सद्यः एव स्थापितम् :\n: git इत्यस्मात् स्थापितं स्यात् उत साक्षात् मूलस्रोतात् उपयञ्जते । एतत् सामान्यम् अस्ति । इतः काश्चन त्वचः अवारोप्यताम्  [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory], द्वारा:\n:* अपवारोपणम् [https://www.mediawiki.org/wiki/Download tarball installer], which comes with several skins and extensions. You can copy and paste the <code>skins/</code> directory from it.\n:* इत्समात् वैय्यक्तिरूपेण त्वचः अवारोपणं शक्यम्  [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n: यदि भवान्/भवती मिडियाविकि विधिकारः अस्ति चेत् git द्वारा एतत् समीकर्तुं न शक्योत् ।\n\n; MediaWiki इत्येत् केवलम् अवगच्छति :\n: MediaWiki 1.24, नवीनं च (see [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). You can paste the following <code>LocalSettings.php</code> to enable \n\n; यदि केवलं परिवर्तुम् इच्छति... <code>LocalSettings.php</code>:\n: त्वचि वारद्वयं क्लिक् करोतु यदभावे रक्षतु...",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (समर्थीतम्)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''असमर्थीतम्''')",
+       "mediastatistics": "सञ्चिकानां सङ्ख्यिक्यः",
+       "mediastatistics-summary": "उपाहोतिसञ्चकानां विषये साङ्ख्यिकी । सञ्चिकायाः अद्यतनसंस्करणम् एव अत्र अन्तर्भवति । पुरातनम् उत अपाकृतं संस्करण् अत्र न अन्तर्भवति ।",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 बैटट्|$1 बैट्स्}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "MIME प्रकारः :",
+       "mediastatistics-table-extensions": "अन्यविस्तारकाः",
+       "mediastatistics-table-count": "सञ्चिकानां सङ्ख्या",
+       "mediastatistics-table-totalbytes": "मिश्रिताकारः",
+       "mediastatistics-header-unknown": "अज्ञातम्",
+       "mediastatistics-header-bitmap": "Bitmap चित्राणि",
+       "mediastatistics-header-drawing": "चित्रति (वेक्टर् चित्राणि)",
+       "mediastatistics-header-audio": "ध्वनिसञ्चिका",
+       "mediastatistics-header-video": "चलचित्रम्",
+       "mediastatistics-header-multimedia": "माध्यमं प्राप्नोतु",
+       "mediastatistics-header-office": "कार्यालयः",
+       "mediastatistics-header-text": "पाठात्मकम्",
+       "mediastatistics-header-executable": "निष्पादनयोग्यानि",
+       "mediastatistics-header-archive": "सङ्कुचितप्रारूपाः",
+       "json-warn-trailing-comma": "JSON इत्यस्मात् $1 {{PLURAL:$1|पूर्वतनः अल्पविरामः अपाभवत्|पूर्वतनाः अल्पविरामाः अपाभूवन्}}",
+       "json-error-unknown": "JSON इत्यस्मिन् काचित् समस्या विद्यते । दोषः : $1",
+       "json-error-depth": "अधिकतम स्टेक-विस्तारः विस्तृतः",
+       "json-error-state-mismatch": "JSON अमान्यः उत कुरुपः",
+       "json-error-ctrl-char": "अक्षरगतदोषस्य व्यवस्थापनं, कदाचित् अयोग्यरीत्या स्थापितः",
+       "json-error-syntax": "समवायदोषः",
+       "json-error-utf8": "UTF-8 अक्षराणि अयोग्यरीत्या स्थापितानि ।",
+       "json-error-recursion": "एकम् उत अधिकं पौनःपुन्यनियोगस्य मूल्यं स्थापितम् ।",
+       "json-error-inf-or-nan": "एकम् उत अधिकं NAN उत INF मूल्यं स्थापितम्",
+       "json-error-unsupported-type": "दत्तस्य मूल्यस्य स्थापनम् असफलम् अभवत् ।",
+       "headline-anchor-title": "अनेन विभागेन सह योज्यताम्",
        "special-characters-group-latin": "ल्याटिन्",
        "special-characters-group-latinextended": "ल्याटिन्-विस्तारितम्",
        "special-characters-group-ipa": "ऐपिए",
        "special-characters-group-devanagari": "देवनागरी",
        "special-characters-group-thai": "थाई",
        "special-characters-group-lao": "लाओ",
-       "special-characters-group-khmer": "खमेर"
+       "special-characters-group-khmer": "खमेर",
+       "special-characters-title-endash": "en dash",
+       "special-characters-title-emdash": "em dash",
+       "special-characters-title-minus": "minus sign"
 }
index 4a7696d..c765dee 100644 (file)
@@ -17,7 +17,7 @@
                        "Macofe"
                ]
        },
-       "tog-underline": "Suttalinia li culligamenti:",
+       "tog-underline": "Suttalinia li lijami:",
        "tog-hideminor": "Ammuccia li canciamenti nichi nta l'ùrtimi canciamenti",
        "tog-hidepatrolled": "Ammuccia li mudìfichi battugghiati nta l'ùrtimi canciamenti",
        "tog-newpageshidepatrolled": "Ammuccia li pàggini battugghiati di l'alencu dî pàggini cchiu' novi",
        "disclaimers": "Avvirtenzi",
        "disclaimerpage": "Project:Avvirtenzi ginirali",
        "edithelp": "Guida pî canciamenti",
+       "helppage-top-gethelp": "Guida",
        "mainpage": "Pàggina principali",
        "mainpage-description": "Pàggina principali",
        "policy-url": "Project:Policy",
        "readonly": "Basi di dati bluccata",
        "enterlockreason": "Spiega lu mutivu dû bloccu, spicificannu na stima di quannu veniravi livatu.",
        "readonlytext": "Com'ad ora la basi di dati è bluccata e nun sunnu pussìbbili junti o canciamenti; lu mutivu prubbabbili è la manutinzioni ordinària, finuta la quali la basi di dati turniravi normali.\n\nL'amministraturi chi la bluccau desi sta spiegazzioni: $1",
-       "missing-article": "La basi di dati nun attruvau lu testu di na pàggina ch'avìssi avutu a' attruvari, cu' nomu \"$1\" $2.\n\nSta cosa di sòlitu succedi quannu s'arrichiama, a' pàrtiri di na crunuluggìa o di nu cunfruntu tra virsioni, nu culligamentu a na pàggina chi' fu' cancillata.\n\nSi' nun è accussì, po' èssiri ca scupristi nu bug ntô software.\nPi' favuri signala stu fattu a' n'[[Special:ListUsers/sysop|amministraturi]], spicificannu l'URL.",
+       "missing-article": "La basi di dati nun attruvau lu testu di na pàggina ch'avìssi avutu a' attruvari, cu' nomu \"$1\" $2.\n\nSta cosa di sòlitu succedi quannu s'arrichiama, a' pàrtiri di na crunuluggìa o di nu cunfruntu tra virsioni, nu liami a na pàggina chi' fu' cancillata.\n\nSi' nun è accussì, po' èssiri ca scupristi nu bug ntô software.\nPi' favuri signala stu fattu a' n'[[Special:ListUsers/sysop|amministraturi]], spicificannu l'URL.",
        "missingarticle-rev": "(№ di virsioni: $1)",
        "missingarticle-diff": "(Diff: $1, $2)",
        "readonly_lag": "La basi di dati fu' bluccata autumaticamenti nta mentri ca li server di basi di dati slave si sincrunìzzanu cu' chiddu master",
        "internalerror": "Erruri nternu",
        "internalerror_info": "Erruri nternu: $1",
+       "internalerror-fatal-exception": "Eccizzioni fatali di tipu \"$1\"",
        "filecopyerror": "Nun fu' pussìbbili cupiari lu file \"$1\" nta \"$2\".",
        "filerenameerror": "Nun fu' pussìbbili canciari lu nomu dû file di \"$1\" a' \"$2\".",
        "filedeleteerror": "Nun fu pussìbbili cancillari lu file \"$1\".",
        "delete-hook-aborted": "Cancillazzioni annullata di n'hook.\nNun desi nudda spiegazzioni.",
        "no-null-revision": "Non fu' pussibbili criari na virsioni nulla pâ paggina \"$1\"",
        "badtitle": "Tìtulu nun bonu",
-       "badtitletext": "Lu tìtulu di pàggina addumannatu nun era vàlidu, era vacanti, o vinìa dûn culligamentu intir-linguìsticu o intir-wiki malu fattu.\nPutissi cuntèniri unu o cchiu' ssai caràttiri chi' nun su' cunsintuti ntê tìtula.",
+       "badtitletext": "Lu tìtulu di pàggina addumannatu nun era vàlidu, era vacanti, o vinìa dûn lijami intir-linguìsticu o intir-wiki malu fattu.\nPutissi cuntèniri unu o cchiu' ssai caràttiri chi' nun su' cunsintuti ntê tìtula.",
+       "title-invalid-empty": "Lu tìtulu addumannatu pâ pàggina è vacanti o puru cunteni sulu lu nomu dûn namespace.",
+       "title-invalid-utf8": "Lu tìtulu addumannatu pâ pàggina cunteni na siguenza UTF-8 nun vàlida.",
+       "title-invalid-interwiki": "Lu tìtulu addumannatu pâ pàggina cunteni ligami interwiki, ca ntê tìtula nun si ponnu adupirari.",
+       "title-invalid-talk-namespace": "Lu tìtulu addumannatu pâ pàggina si rifirisci a na pàggina di discussioni ca nun esisti.",
+       "title-invalid-characters": "Lu tìtulu addumannatu pâ pàggina cunteni caràttiri nun vàlidi: \"$1\".",
+       "title-invalid-relative": "Lu tìtulu havi un caminu rilativu. Li tìtuli di pàggina rilativi (./, ../) nun sunnu boni, picchì spissu nun si ponnu arruvari pi' menzu dî browser di l'utenti.",
+       "title-invalid-magic-tilde": "Lu tìtulu addumannatu pâ pàggina cunteni na siguenza maggica di tildi nun vàlida(<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Lu tìtulu addumannatu pâ pàggina è troppu longu. Nun havi a' èssiri cchiu' longu di {{PLURAL:$1|byte}} sutta cudìfica UTF-8.",
+       "title-invalid-leading-colon": "Lu tìtulu addumannatu pâ pàggina cunteni nu signu di du punti ô principiu, chi' nun è vàlidu.",
        "perfcached": "Li dati ca sèquinu sunnu stratti di na ''cache'' e putissiru nun èssiri aggiurnati. Ntâ ''cache'' {{PLURAL:$1|capi un risultatu|càpunu $1 risultati}} massimu.",
        "perfcachedts": "Li dati ca sèquinu sunnu stratti di na ''cache'', e furu aggiurnati l'ultima vota ô $1. Ntâ ''cache'' {{PLURAL:$4|capi un risultatu|capunu $4 risultati}} massimu.",
        "querypage-no-updates": "L'aggiurnamenti dâ pàggina sunnu timpuraniamenti suspisi. Li dati 'n chidda cuntinuti nun vèninu aggiurnati.",
        "wrongpassword": "La password chi' mittisti nun è giusta.\nPi' favuri prova n'àutra vota.",
        "wrongpasswordempty": "La password chi' mittisti era vacanti.\nPi' favuri prova n'àutra vota.",
        "passwordtooshort": "I password hannu a' èssiri longhi almenu {{PLURAL:$1|1 caràttiri|$1 caràttiri}}.",
+       "passwordtoolong": "Li password non pònnu èssiri cchiu' longhi di {{PLURAL:$1|1 caràttiri|$1 caràttiri}}.",
        "password-name-match": "La tò password havi a' èssiri diversa dû tò nomu utenti.",
        "password-login-forbidden": "L'usu di stu nomu utenti e password fu' pruibbitu.",
        "mailmypassword": "Azzera la password",
        "bold_tip": "Grassettu",
        "italic_sample": "Cursivu",
        "italic_tip": "Cursivu",
-       "link_sample": "Tìtulu dû culligamentu",
-       "link_tip": "Culligamentu nternu",
-       "extlink_sample": "http://www.example.com tìtulu dû culligamentu",
-       "extlink_tip": "Culligamentu esternu (ricurdàrisi lu prifissu http://)",
+       "link_sample": "Tìtulu dû lijami",
+       "link_tip": "Lijami di dintra",
+       "extlink_sample": "http://www.example.com tìtulu dâ lijami",
+       "extlink_tip": "Lijami di fora (ricurdàrisi lu prifissu http://)",
        "headline_sample": "Ntistazzioni",
        "headline_tip": "Suttantistazzioni",
        "nowiki_sample": "Nzirisci ccà lu testu nun furmattatu",
        "image_sample": "Asempiu.jpg",
        "image_tip": "File ncurpuratu",
        "media_sample": "Asempiu.ogg",
-       "media_tip": "Culligamentu a' file",
+       "media_tip": "Lijami a' file",
        "sig_tip": "A to firma cu' data e ura",
        "hr_tip": "Linia urizzuntali (usari cu' giudizziu)",
        "summary": "Riassuntu:",
        "missingcommentheader": "<strong>Accura:</strong> Nun havi statu spicificatu l'oggettu/ntistazzioni di stu cummentu. Primennu di novu \"{{int:savearticle}}\", lu canciamentu veni sarvatu senza avìrinni.",
        "summary-preview": "Antiprima dû riassuntu:",
        "subject-preview": "Antiprima di l'oggettu/ntistazzioni:",
+       "previewerrortext": "Mmattìu n'erruri nta l'ammustrari li to canciamenti.",
        "blockedtitle": "L'utenti è bluccatu",
        "blockedtext": "'''Stu nomu d'utenti o nnirizzu IP havi statu bluccatu.'''\n\nLu bloccu fu fattu di $1. Lu mutivu dû bloccu è: ''$2''.\n\n* Accuminzata dû bloccu: $8\n* Fini dû bloccu: $6\n* Ntirvallu dû bloccu: $7\n\nPoi cuntattari a $1 o a n'àutru [[{{MediaWiki:Grouppage-sysop}}|amministraturi]] pi discùtiri dû bloccu.\n\nNun poi usari la carattirìstica 'manna n'email a st'utenti' siddu nun è spicificatu nu nnirizzu email vàlidu nta li toi [[Special:Preferences|prifirenzi]] e siddu nun hai statu bluccatu di l'usari.\n\nLu tò nnirizzu IP attuali è $3, e lu nùmmiru ID dû bloccu è #$5.\n\nSpicìfica tutti li dittagghi pricidenti nta quarsiasi addumannata di chiarimenti.",
        "autoblockedtext": "Lu tò nnirizzu IP hà statu bluccatu automaticamenti pirchì fu usatu di n'àutru utenti, chi fu bluccatu di $1.\nLu mutivu è chistu:\n\n:''$2''\n\n* Accuminzata dû bloccu: $8\n* Fini dû bloccu: $6\n* Ntirvallu dû bloccu: $7\n\nPoi cuntattari a $1 o a n'àutru [[{{MediaWiki:Grouppage-sysop}}|amministraturi]] pi discùtiri dû bloccu.\n\nNun poi usari la carattirìstica 'manna n'email a st'utenti' siddu nun è spicificatu nu nnirizzu email vàlidu ntra li tòi [[Special:Preferences|prifirenzi]] e siddu nun fusti bluccatu di l'usari.\n\nLu tò nnirizzu IP attuali è $3, e l'ID dû bloccu è $5.\nPi favuri nclùdilu nta tutti li dumanni chi fai.",
        "accmailtitle": "Password mannata",
        "accmailtext": "Na password ginirata casualmenti pi' [[User talk:$1|$1]] fu' spiduta a $2. Si po' canciari di la pàggina di <em>[[Special:ChangePassword|canciamentu dâ password]]</em> comu unu trasi.",
        "newarticle": "(Novu)",
-       "newarticletext": "Siguisti nu culligamentu a' na pàggina ch'ancora nun esisti.\nPi' criari sta pàggina, accumenza a' scrìviri ccassutta (talìa la [$1 pàggina d'ajutu] p'aviri majuri nfurmazzioni).\nSi' agghicasti cca pi' sbagghiu, calca lu buttuni <strong>n' arreri</strong> dû to browser.",
+       "newarticletext": "Siguisti na lijami a' na pàggina ch'ancora nun esisti.\nPi' criari sta pàggina, accumenza a' scrìviri ccassutta (talìa la [$1 pàggina d'ajutu] p'aviri majuri nfurmazzioni).\nSi' agghicasti cca pi' sbagghiu, carca lu buttuni <strong>n' arreri</strong> dû to browser.",
        "anontalkpagetext": "----''Chista è la pàggina di discussioni di n’utenti anònimu, ca nun criau ancora n’accessu o ca nun l’usa.\nP’idintificàrilu è pirciò nicissariu usari lu nùmmiru di lu sò nnirizzu IP.\nLi nnirizzi IP ponnu pirò èssiri spartuti di cchiù utenti.\nSiddu sî n’utenti anònimu e riteni ca li cummenti prisenti nta sta pàggina nun si rifirìscinu a tia, [[Special:UserLogin/signup|crea n’accessu novu]] o [[Special:UserLogin|trasi]] cu chiddu ca già hai p’evitari d’èssiri cunfusu cu àutri utenti anònimi ‘n futuru.''",
        "noarticletext": "Nta stu mumentu la pàggina addumannata è vacanti. È pussìbbili [[Special:Search/{{PAGENAME}}|circari stu tìtulu]] nta l'àutri pàggini dû situ oppuru <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|action=edit}} circari ntê riggistra culligati] oppuru [{{fullurl:{{FULLPAGENAME}}|action=edit}} canciari la pàggina ora]</span>.",
        "noarticletext-nopermission": "Nta stu mumentu la pàggina addumannata è vacanti. È pussibbili [[Special:Search/{{PAGENAME}}|circari stu titulu]] nti àutri pàggini dû situ o <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} circari ntê riggistra culligati]</span>, ma nun hai li pirmissa pi criari sta pàggina.",
-       "missing-revision": "A virsioni #$1 dâ paggina ntitulata \"{{FULLPAGENAME}}\" nun esisti.\n\nStu fattu di sòlitu succedi quannu si segui nu culligamentu di crunuluggìa versu na pàggina chi' fu' cancillata.\nSi ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].",
+       "missing-revision": "A virsioni #$1 dâ paggina ntitulata \"{{FULLPAGENAME}}\" nun esisti.\n\nStu fattu di sòlitu succedi quannu si segui na lijami di crunuluggìa versu na pàggina chi' fu' cancillata.\nSi ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].",
        "userpage-userdoesnotexist": "L'account \"<nowiki>$1</nowiki>\" nun currispunni a n'utenti riggistratu. Virificari si si voli criari o canciari sta pàggina.",
        "userpage-userdoesnotexist-view": "U cuntu utenti \"$1\" nun è riggistratu.",
        "blocked-notice-logextract": "St'utenti pi' com'ora è bluccatu.\nComu rifirimentu ccassutta cc'è l'ùltima vuci dû riggìstru dî blocchi:",
        "content-model-javascript": "JavaScript",
        "content-json-empty-object": "Oggettu vacanti",
        "content-json-empty-array": "Vitturi vacanti",
+       "duplicate-args-warning": "<strong>Accura:</strong> [[:$1]] sta' chiamannu [[:$2]] cu' cchiu' ssai dûn valuri comu paràmitru \"$3\". Sarravi adupiratu sulu l'ùrtimu valuri spicificatu.",
        "duplicate-args-category": "Pàggini chi' cuntènunu chiamati a' template cu' argumenti duplicati",
        "duplicate-args-category-desc": "A pàggina cunteni chiamati a' template chi' adòpirunu argumenti duplicati, comu <code><nowiki>{{pippu|plutu=1|plutu=2}}</nowiki></code> o <code><nowiki>{{pippu|plutu|1=papirinu}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Accura: Sta pàggina cunteni troppi chiamati ê parser functions.\n\nAvissi a èssiri menu di $2, ô mumentu ci {{PLURAL:$1|nn'è $1|nni sunnu $1}}.",
        "history-feed-description": "Crunuluggìa dî canciamenti a' sta pàggina nta sta wiki",
        "history-feed-item-nocomment": "$1 lu $2",
        "history-feed-empty": "La pàggina chi' dumannasti nun esisti.\nPo' aviri statu cancillata dâ wiki, o puru canciata di nomu.\nProva a' [[Special:Search|circari ntâ wiki]] siddu cci sunnu pàggini novi chi' ti ponnu ntirissari.",
+       "history-edit-tags": "Cancia l'etichetti dî virsioni scigghiuti",
        "rev-deleted-comment": "(riassuntu dû canciamentu rimossu)",
        "rev-deleted-user": "(nomu utenti rimossu)",
        "rev-deleted-event": "(dittagghî dû riggistru rimossi)",
        "rev-showdeleted": "ammustra",
        "revisiondelete": "Cancella o annulla la cancillazzioni di virsioni",
        "revdelete-nooldid-title": "Virsioni oggettu nun vàlida",
-       "revdelete-nooldid-text": "O nun spicificasti la virsioni chi' havi a' èssiri oggettu di sta funzioni, o a virsioni chi' spicificasti nun esisti, o puru stai pruvannu a' ammucciari a virsioni currenti.",
+       "revdelete-nooldid-text": "O nun spicificasti nudda virsioni comu oggettu di sta funzioni, o la virsioni chi' spicificasti nun esisti, o puru stai pruvannu a' ammucciari la virsioni currenti.",
        "revdelete-no-file": "Lu file spicificatu nun esisti.",
        "revdelete-show-file-confirm": "Si' sicuru chi' voi talìari na virsioni cancillata dû file \"<nowiki>$1</nowiki>\" dû $2 ê $3?",
        "revdelete-show-file-submit": "Sì",
        "revdelete-edit-reasonlist": "Cancia li mutivazioni pi la cancillazzioni",
        "revdelete-offender": "Auturi dâ virsioni:",
        "suppressionlog": "Riggistru dî supprissioni",
-       "suppressionlogtext": "Ccassutta veni prisintatu n'elencu dî cancillazzioni e dî blocchi chi' cumpòrtunu l'ammucciata di cuntinutu a' l'occhî di l'aministraturi.\nSi po' cunsultari a [[Special:BlockList|lista dî blocchi]] pi' canùsciri i furbanni e i blocchi in viguri pi' com'ora.",
+       "suppressionlogtext": "Ccassutta cc'è n'elencu dî cancillazzioni e dî blocchi chi' cumpòrtunu l'ammucciata di cuntinutu a' l'occhî di l'amministratura.\nSi po' cunsultari la [[Special:BlockList|lista dî blocchi]] pi' canùsciri li furbanna e li blocchi in viguri pi' com'ora.",
        "mergehistory": "Junciuta dî crunuluggìi",
        "mergehistory-header": "Sta pàggina fa' jùnciri li crunuluggìi di du pàggini, abbuccannu li virsioni di na pàggina surgenti nta na pàggina cchiu' nova.\nAssicùriti ca stu canciamentu mantiniràvi la cuntinuità storica di la pàggina.",
        "mergehistory-box": "Junci li storii di dui pàggini:",
        "mergehistory-from": "Pàggina d'orìggini:",
        "mergehistory-into": "Pàggina di distinazioni:",
        "mergehistory-list": "Crunuluggìa chi' si po' jùnciri",
-       "mergehistory-merge": "Si pònnu jùnciri li virsioni di [[:$1]] nnicati ccassutta â crunuluggìa di [[:$2]].\nAdòpira la culonna chî buttuni di opzioni pi' jùnciri sulu li virsioni fatti nfina â data e l'ura spicificati.\nGuàrditi ca s'adòpiri culligamenti di navigazzioni la culonna veni azzirata.",
+       "mergehistory-merge": "Si pònnu jùnciri li virsioni di [[:$1]] nnicati ccassutta â crunuluggìa di [[:$2]].\nAdòpira la culonna chî buttuni di opzioni pi' jùnciri sulu li virsioni fatti nfina â data e l'ura spicificati.\nGuàrditi ca s'adòpiri lijami di navigazzioni la culonna veni azzirata.",
        "mergehistory-go": "Vidi li canciamenti ca ponnu èssiri junciuti",
        "mergehistory-submit": "Junci li virsioni",
        "mergehistory-empty": "Nudda virsioni di jùnciri.",
        "diff-multi-sameuser": "({{PLURAL:$1|Na diffirenza minzana|$1 diffirenzi minzani}} dû stissu utenti nun {{PLURAL:$1|mustrata|mustrati}})",
        "diff-multi-otherusers": "({{PLURAL:$1|Na diffirenza minzana|$1 diffirenzi minzani}} di {{PLURAL:$2|n'autru utenti|autri $2 utenti}} nun {{PLURAL:$1|mustrata|mustrati}})",
        "diff-multi-manyusers": "({{PLURAL:$1|Na diffirenza minzana|$1 diffirenzi minzani}} di cchiu' ssai di {{PLURAL:$2|n'autru utenti|autri $2 utenti}} nun {{PLURAL:$1|mustrata|mustrati}})",
-       "difference-missing-revision": "{{PLURAL:$2|Na virsioni|$2 virsioni}} di sta diffirenza ($1) {{PLURAL:$2|nun fu' truvata|nun furu truvati}}.\n\nStu fattu di sòlitu succedi quannu si segui nu culligamentu di diffirenza versu na pàggina chi' fu' cancillata.\nSi ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].",
+       "difference-missing-revision": "{{PLURAL:$2|Na virsioni|$2 virsioni}} di sta diffirenza ($1) {{PLURAL:$2|nun fu' truvata|nun furu truvati}}.\n\nStu fattu di sòlitu succedi quannu si segui nu lijami di diffirenza versu na pàggina chi' fu' cancillata.\nSi ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].",
        "searchresults": "Risurtati dâ risciduta",
        "searchresults-title": "Risurtati dâ risciduta di \"$1\"",
        "titlematches": "Currispunnenzi ntê tìtuli dî pàggini",
        "notextmatches": "Nudda currispunnenza ntô testu dî pàggini",
        "prevn": "li pricidenti {{PLURAL:$1|$1}}",
        "nextn": "li pròssimi {{PLURAL:$1|$1}}",
+       "prev-page": "pàggina arreti",
+       "next-page": "pàggina appressu",
        "prevn-title": "{{PLURAL:$1|Risultatu pricidenti|$1 risultati pricedenti}}",
        "nextn-title": "{{PLURAL:$1|Risultatu successivu|$1 risultata successivi}}",
        "shown-title": "Ammustra {{PLURAL:$1|nu risultatu|$1 risultati}} pi pàggina",
        "prefs-personal": "Prufilu di l'utenti",
        "prefs-rc": "Ùrtimi canciamenti",
        "prefs-watchlist": "Lista taliata",
+       "prefs-editwatchlist": "Cancia la lista taliata",
+       "prefs-editwatchlist-label": "Cancia li vuci dâ to lista taliata:",
+       "prefs-editwatchlist-edit": "Talìa e leva tìtuli dâ to lista taliata",
+       "prefs-editwatchlist-raw": "Cancia la lista taliata comu testu",
+       "prefs-editwatchlist-clear": "Svacanta la to lista taliata",
        "prefs-watchlist-days": "Nùmmiru di jorna a' ammustrari ntâ lista taliata:",
        "prefs-watchlist-days-max": "Màssimu $1 {{PLURAL:$1|jornu|jorna}}",
        "prefs-watchlist-edits": "Nùmmiru di canciamenti a' ammustrari ntâ lista taliata estinnuta:",
        "email": "Nnirizzu di posta elittrònica",
        "prefs-help-realname": "Lu nomu veru è facultativu.\nSiddu scegghî di furnìrilu, veni adupiratu pi' dàriti crèditu dû tò travagghiu.",
        "prefs-help-email": "Lu nnirizzu di posta elittrònica è facultativu, ma po' giuvari p'azzirari la password, ntô casu chi' tâ scordi.",
-       "prefs-help-email-others": "Poi videmma scègghîri di pirmèttiri ca l'autri ti cuntàttanu pi' posta elittrònica a' pàrtiri di culligamenti chi' si tròvanu ntê to pàggini d'utenti o di discussioni.\nLu tò nnirizzu nun veni rivilatu quannu l'àutri utenti ti cuntattanu.",
+       "prefs-help-email-others": "Poi videmma scègghîri di pirmèttiri ca l'autri ti cuntàttanu pi' posta elittrònica a' pàrtiri dî lijami chi' si tròvanu ntê to pàggini d'utenti o di discussioni.\nLu tò nnirizzu nun veni rivilatu quannu l'àutri utenti ti cuntàttunu.",
        "prefs-help-email-required": "Lu nnirizzu di posta elittrònica è obbligatoriu.",
        "prefs-info": "Nfurmazzioni essinziali",
        "prefs-i18n": "Intirnazziunalizzazioni",
        "userrights-lookup-user": "Gistisci li gruppi di l'utenti",
        "userrights-user-editname": "Metti nu nomu utenti:",
        "editusergroup": "Cancia li gruppi di l'utenti",
-       "editinguser": "Canciamentu dî dritti di l'utenti <strong>[[User:$1|$1]]</strong> $2",
+       "editinguser": "Stai canciannu li dritti di {{GENDER:$1|l'utenti}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Cancia li gruppi di l'utenti",
        "saveusergroups": "Sarva li gruppi di l'utenti",
        "userrights-groupsmember": "Membru di:",
        "right-override-export-depth": "Espurtari pàggini cu li pàggini culligati nfina ô quintu liveddu",
        "right-sendemail": "Mannari missaggi di posta elittrònica a' l'autri utenti",
        "right-passwordreset": "Taliari li missaggi di posta elittrònica d'azziramentu dî password",
+       "right-managechangetags": "Criari e cancillari [[Special:Tags|etichetti]] dâ basi di dati",
+       "right-applychangetags": "Appizzari [[Special:Tags|etichetti]] ntê propî canciamenti",
+       "right-changetags": "Agghiùnciri e livari a' piaciri [[Special:Tags|etichetti]] dî virsioni e dî vuci di riggistru",
        "newuserlogpage": "Riggistru di l'utenti novi",
        "newuserlogpagetext": "Chistu è nu riggistru di li criazzioni di utenti novi.",
        "rightslog": "Riggistru dî dritti di l'utenti",
        "action-viewmyprivateinfo": "taliari li to nfurmazzioni risirvati",
        "action-editmyprivateinfo": "canciari li to nfurmazzioni risirvati",
        "action-editcontentmodel": "canciari lu mudellu di cuntinutu di na pàggina",
+       "action-managechangetags": "criari e cancillari etichetti dâ basi di dati",
+       "action-applychangetags": "appizzari etichetti ntê to canciamenti",
+       "action-changetags": "agghiùnciri e livari a' piaciri etichetti dî virsioni e dî vuci di riggistru",
        "nchanges": "$1 {{PLURAL:$1|canciamentu|canciamenti}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|di l'ùltima vìsita}}",
        "enhancedrc-history": "crunuluggìa",
        "uploaddisabledtext": "Li carricamenti dî file sunnu disattivati.",
        "php-uploaddisabledtext": "Li carricamenti dî file sunnu disattivati ntô PHP.\nPi' favuri cuntrolla la mpustazzioni file_uploads.",
        "uploadscripted": "Stu file cunteni còdici HTML o di script, ca putissi èssiri ntirpitratu erruniamenti d'un browser web.",
+       "upload-scripted-pi-callback": "Nun si ponnu carricari file ca cuntènunu l'istruzzioni di prucessu xml-stylesheet.",
+       "uploaded-script-svg": "Fu' truvatu n'elimentu prugrammàbbili \"$1\" ntô file SVG carricatu.",
+       "uploaded-hostile-svg": "Fu' truvatu còdici CSS risicusu nta l'elimentu style dû file SVG carricatu.",
+       "uploaded-event-handler-on-svg": "Nun è cunsintutu di mpustari l'attribbuti gistura di eventi <code>$1=\"$2\"</code> ntê file SVG.",
+       "uploaded-href-attribute-svg": "Nun sunnu cunsintuti l'attribbuti href <code>&lt;$1 $2=\"$3\"&gt;</code> cu na distinazzioni ca nun è lucali (ad esempiu http://, javascript:, etc) ntê file SVG.",
+       "uploaded-href-unsafe-target-svg": "Fu' truvatu n'href cu na distinazzioni risicusa <code>&lt;$1 $2=\"$3\"&gt;</code> ntô file SVG carricatu.",
+       "uploaded-animate-svg": "Fu' truvata n'etichetta \"animate\" ca purrìa canciari href, adupirannu l'attribbutu \"from\" <code>&lt;$1 $2=\"$3\"&gt;</code>, ntô file SVG carricatu.",
+       "uploaded-setting-event-handler-svg": "Lu mpustari l'attribbuti dî gistura di l'eventi veni bluccatu; fu' truvatu <code>&lt;$1 $2=\"$3\"&gt;</code> ntô file SVG carricatu.",
+       "uploaded-setting-href-svg": "L'adupirari l'etichetta \"set\" p'agghiùnciri n'attribbutu \"href\" a' l'elimentu ginituri veni bluccatu.",
+       "uploaded-wrong-setting-svg": "L'adupirari l'etichetta \"set\" p'agghiùnciri na distinazzioni rimota/data/script a n'attribbutu quali è jè, è bluccatu. Fu' truvatu <code>&lt;set to=\"$1\"&gt;</code> ntô file SVG carricatu.",
+       "uploaded-setting-handler-svg": "Lu còdici SVG ca mposta l'attribbutu \"handler\" a na distinazzioni rimota/data/script veni bluccatu. Fu' truvatu <code>$1=\"$2\"</code> ntô file SVG carricatu.",
+       "uploaded-remote-url-svg": "Lu còdici SVG ca mposta n'attribbutu style quali è jè versu di n'URL rimota veni bluccatu. Fu' truvatu <code>$1=\"$2\"</code> ntô file SVG carricatu.",
+       "uploaded-image-filter-svg": "Fu' truvatu nu filtru di mmàggini cu' URL <code>&lt;$1 $2=\"$3\"&gt;</code> ntô file SVG carricatu.",
        "uploadscriptednamespace": "Stu file SVG cunteni nu namespace nun cunsintutu, \"$1\".",
        "uploadinvalidxml": "L'XML ntô file carricatu nun potti èssiri analizzatu sintatticamenti.",
        "uploadvirus": "Lu file cunteni un virus!\nDittagghî: $1",
        "listfiles-delete": "cancella",
        "listfiles-summary": "Sta pàggina spiciali ammustra tutti li file carricati.",
        "listfiles_search_for": "Ricerca dâ mmàggini di nomu:",
+       "listfiles-userdoesnotexist": "Nun cc'è riggistratu un cuntu a' nomu di l'utenti \"$1\".",
        "imgfile": "file",
        "listfiles": "Alencu dî file",
        "listfiles_thumb": "Miniatura",
        "linkstoimage": "{{PLURAL:$1|La pàggina siquenti richiàma|Li $1 pàggini siquenti richiàmanu}} stu file:",
        "linkstoimage-more": "Cci su' cchiu' ssai di $1 {{PLURAL:$1|pàggina|pàggini}} ca richiàmunu stu file.\nLa lista ccassutta ammustra sulu {{PLURAL:$1|la prima pàggina|li primi $1 pàggini}}.\nSi po' puru a' vìdiri [[Special:WhatLinksHere/$2|na lista cumpleta]].",
        "nolinkstoimage": "Nudda pàggina richiama stu file.",
-       "morelinkstoimage": "Ammustra [[Special:WhatLinksHere/$1|autri culligamenti]] a' stu file.",
+       "morelinkstoimage": "Ammustra [[Special:WhatLinksHere/$1|autri lijami]] versu di stu file.",
        "linkstoimage-redirect": "$1 (rimannu ô file) $2",
        "duplicatesoffile": "{{PLURAL:$1|Stu|Sti $1}} file {{PLURAL:$1|è nu dupppiuni|sunnu duppiuni}} di st'autru file ([[Special:FileDuplicateSearch/$2|cchiù dittagli]]):",
        "sharedupload": "Stu file veni di $1 e purrìa èssiri adupiratu di autri pruggetti.",
        "listduplicatedfiles-summary": "Chista è na lista dî file unni la virsioni cchiu' nova è nu duppiuni dâ virsioni cchiu' nova di quarchi' autru file. Sulu li file lucali su' pigghiati a' cunsiddirazzioni.",
        "listduplicatedfiles-entry": "[[:File:$1|$1]] havi [[$3|{{PLURAL:$2|nu duppiuni|$2 duppiuna}}]].",
        "unusedtemplates": "Template nun usati",
-       "unusedtemplatestext": "Sta pàggina elenca tutti li pàggini nto namespace {{ns:template}} ca nun sunnu nclusi nta nudda autra pàggina.\nPrima di cancillàrili è megghiu cuntrullari ca nun hannu autri culligamenti ca cci tràsunu.",
-       "unusedtemplateswlh": "autri culligamenti",
+       "unusedtemplatestext": "Sta pàggina elenca tutti li pàggini nto namespace {{ns:template}} ca nun sunnu nclusi nta nudda autra pàggina.\nPrima di cancillàrili è megghiu cuntrullari ca nun hannu autri lijami ca cci tràsunu.",
+       "unusedtemplateswlh": "autri lijami",
        "randompage": "Na pàggina a' muzzu",
        "randompage-nopages": "Nun cci su' pàggini {{PLURAL:$2|nta stu namespace|nta sti namespace}}: $1.",
        "randomincategory": "Na pàggina a' muzzu nta na catigurìa",
        "pageswithprop-prophidden-long": "valuri tistuali longu dâ prupietà ammucciatu ($1)",
        "pageswithprop-prophidden-binary": "valuri binariu dâ prupietà ammucciatu ($1)",
        "doubleredirects": "Rimanni duppî",
-       "doubleredirectstext": "Sta pàggina alenca li pàggini chi rimànnunu ad autri pàggini di rimannu.\nOgnin riga cunteni culligamenti a lu primu e a lu secunnu rimannu, sparti dâ distinazzioni dû secunnu rimannu, ca di sòlitu è la pàggina \"giusta\" unni avissi a' puntari macari lu primu rimannu.\nLi rimanni <del>sbarrati</del> hannu statu cunsati.",
+       "doubleredirectstext": "Sta pàggina alenca li pàggini chi' rimànnunu ad autri pàggini di rimannu.\nOgnin riga cunteni lijami versu lu primu e versu lu secunnu rimannu, sparti dâ distinazzioni dû secunnu rimannu, ca di sòlitu è la pàggina \"giusta\" unni avissi a' puntari macari lu primu rimannu.\nLi rimanni <del>sbarrati</del> hannu statu cunsati.",
        "double-redirect-fixed-move": "[[$1]] fu spustata.\nFu aggiurnata autumaticamenti e ora rimanna a [[$2]].",
        "double-redirect-fixed-maintenance": "Cunsatu autumaticamenti nu rimannu duppiu di [[$1]] a' [[$2]] ntôn sirvizzu di manutinzioni.",
        "double-redirect-fixer": "Cunsaturi dî rimanni",
        "brokenredirectstext": "Li rimanni siguenti pùntanu a' pàggini ca nun esìstinu:",
        "brokenredirects-edit": "cancia",
        "brokenredirects-delete": "cancella",
-       "withoutinterwiki": "Pàggini senza culligamenti intir-linguìstici",
-       "withoutinterwiki-summary": "Li pàggini siguenti nun hànnu culligamenti ê virsioni nta autri lingui.",
+       "withoutinterwiki": "Pàggini senza lijami intir-linguìstici",
+       "withoutinterwiki-summary": "Li pàggini siguenti nun hannu lijami versu dî virsioni nta l'autri lingui.",
        "withoutinterwiki-legend": "Prifissu",
        "withoutinterwiki-submit": "Ammustra",
        "fewestrevisions": "Pàggini cu' cchiu' picca virsioni",
        "nbytes": "$1 {{PLURAL:$1|byte|byte}}",
        "ncategories": "$1 {{PLURAL:$1|catigurìa|catigurìi}}",
        "ninterwikis": "$1 {{PLURAL:$1|interwiki}}",
-       "nlinks": "$1 {{PLURAL:$1|culligamentu|culligamenti}}",
+       "nlinks": "$1 {{PLURAL:$1|lijami}}",
        "nmembers": "$1 {{PLURAL:$1|membru|membra}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|membru|membra}}",
        "nrevisions": "$1 {{PLURAL:$1|rivisioni|rivisioni}}",
        "ntransclusions": "adupiratu nta $1 {{PLURAL:$1|pàggina|pàggini}}",
        "specialpage-empty": "Nun cci su' risultati pi' stu rennicuntu.",
        "lonelypages": "Pàggini òrfani",
-       "lonelypagestext": "Li pàggini ccassutta nun hannu culligamenti ca vèninu d'autri pàggini e nun su' trasclusi nta autri pàggini di {{SITENAME}}.",
+       "lonelypagestext": "Li pàggini ccassutta nun hannu lijami ca vèninu d'autri pàggini e nun su' trasclusi nta autri pàggini di {{SITENAME}}.",
        "uncategorizedpages": "Pàggini nun catigurizzati",
        "uncategorizedcategories": "Catigurìi nun catigurizzati",
        "uncategorizedimages": "File nun catigurizzati",
        "unusedimages": "File nun usati",
        "wantedcategories": "Catigurìi addumannati",
        "wantedpages": "Pàggini addumannati",
+       "wantedpages-summary": "Elencu dî pàggini ca nun esìstunu però hannu lu maggiuri nùmmiru di ligami versu d'iddi, lassannu stari li pàggini chi' comu ligami versu d'iddi hannu sulu rimanni. P'aviri n'elencu dî pàggini ca nun esìstunu però hannu rimanni versu d'iddi, talìa [[{{#special:BrokenRedirects}}|l'elencu dî rimanni rutti]].",
        "wantedpages-badtitle": "Tìtulu nun vàlidu ntô gruppu di risultati: $1",
        "wantedfiles": "File addumannati",
        "wantedfiletext-cat": "Li file ccassutta su' richiamati però nun esìstunu. Ntâ lista cci ponnu èssiri macari li file chi' stannu nta dipòsiti esterni, cu' tuttu chi' esìstunu. Sti fausi pusitivi sarrannu <del>sbarrati</del>. Sparti, li pàggini chi' nclùdunu file chi' nun esìstunu su' elincati nta [[:$1]].",
        "shortpages": "Pàggini curti",
        "longpages": "Pàggini longhi",
        "deadendpages": "Pàggini senza nisciuta",
-       "deadendpagestext": "Li pàggini siguenti sunnu privi di culligamenti versu autri pàggini di {{SITENAME}}.",
+       "deadendpagestext": "Li pàggini siguenti sunnu privi di lijami versu autri pàggini di {{SITENAME}}.",
        "protectedpages": "Pàggini prutetti",
        "protectedpages-indef": "Sulu prutizzioni a' tempu innitirminatu",
        "protectedpages-summary": "Sta pàggina elenca li pàggini già esistenti chi' comu ad ora su' prutetti. Pi' na lista dî tìtuli prutetti, chî quali vèni pruibbutu criari pàggini novi, talìa [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
        "ancientpages": "Pàggini cchiu' vecchî",
        "move": "Sposta",
        "movethispage": "Sposta sta pàggina",
-       "unusedimagestext": "Li file ccassutta esìstunu però nun sunnu ncurpurati nta nudda pàggina.\nAccura: autri siti web ponnu aviri culligamenti ôn file pi' menzu di URL diretti; li file addupirati a' sta manera putìssiru èssiri elincati ccassutta puru si' si nni fa' usu.",
+       "unusedimagestext": "Li file ccassutta esìstunu però nun sunnu ncurpurati nta nudda pàggina.\nAccura: autri siti web ponnu aviri lijami versu dûn file pi' menzu di URL diretti; li file addupirati a' sta manera putìssiru èssiri elincati ccassutta macari si' si nni fa' usu.",
        "unusedcategoriestext": "Li siguenti pàggini di catigurìi esìstunu, però nudda autra pàggina o catigurìa nni fa' usu.",
        "notargettitle": "Nudda distinazzioni",
        "notargettext": "Nun spicificasti na pàggina o puru n'utenti comu distinazzioni di st'opirazzioni.",
        "booksources-search-legend": "Ricerca di fonti libbrarî",
        "booksources-isbn": "Còdici ISBN:",
        "booksources-search": "Va cerca",
-       "booksources-text": "Ccassutta cc'è n'elencu di culligamenti versu autri siti ca vìnninu libbra novi e usati, e ponnu aviri majuri nfurmazzioni a' prupòsitu dî libbra ca stai circannu:",
+       "booksources-text": "Ccassutta cc'è n'elencu di lijami versu autri siti ca vìnninu libbra novi e usati, e ponnu aviri majuri nfurmazzioni a' prupòsitu dî libbra ca stai circannu:",
        "booksources-invalid-isbn": "Lu còdici ISBN chi' spicificasti nun pari bonu; cuntrolla si' nun cci furu sbagghî di ricupiatura.",
        "specialloguserlabel": "Fattu di l'utenti:",
        "speciallogtitlelabel": "Oggettu (tìtulu o utenti):",
        "logempty": "Nudda vuci currispunnenti ntô riggistru.",
        "log-title-wildcard": "Attrova tituli chi ncignanu cu",
        "showhideselectedlogentries": "Cancia la visibbilità dî vuci di riggistru scigghiuti",
+       "log-edit-tags": "Cancia l'etichetti dî vuci dû riggistru scigghiuti",
        "allpages": "Tutti li pàggini",
        "nextpage": "Pàggina appressu ($1)",
        "prevpage": "Pàggina avanti ($1)",
        "deletedcontributions": "Cuntribbuta di l'utenti cancillati",
        "deletedcontributions-title": "Cuntribbuta di l'utenti cancillati",
        "sp-deletedcontributions-contribs": "cuntribbuta",
-       "linksearch": "Risciduta dî culligamenti di fora",
+       "linksearch": "Risciduta dî lijami di fora",
        "linksearch-pat": "Esprissioni di risciduta:",
        "linksearch-ns": "Namespace:",
        "linksearch-ok": "Arriscedi",
        "post-expand-template-inclusion-category-desc": "La grannizza di sta pàggina passa <code>$wgMaxArticleSize</code> appressu a' l'espansioni di tutti li template, dunca certi template nun furu espannuti.",
        "post-expand-template-argument-category-desc": "Sta pàggina veni cchiu' granni di <code>$wgMaxArticleSize</code> appressu chi' s'espànni l'argumentu dûn template (quarchi' cosa nta parèntisi graffi tripli, comu <code>{{{Pippu}}}</code>).",
        "expensive-parserfunction-category-desc": "Sta pàggina adòpira troppi funzioni di l'analizzaturi sintatticu custusi (comu <code>#ifexist</code>). Talìa [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
-       "broken-file-category-desc": "Sta pàggina cunteni nu culligamentu a' file ruttu (nu culligamentu a' nu file chi' nun esisti).",
-       "hidden-category-category-desc": "Sta catigurìa cunteni <code><nowiki>__HIDDENCAT__</nowiki></code> ntô corpu dâ so pàggina, cosa chi' nâ fa' spuntari supra ê pàggini ntô riquatru dî culligamenti ê catigurìi comu mpustazzioni pridifinuta.",
+       "broken-file-category-desc": "Sta pàggina cunteni nu lijami a' file ruttu (nu lijami pi' ncurpurari nu file chi' nun esisti).",
+       "hidden-category-category-desc": "Sta catigurìa cunteni <code><nowiki>__HIDDENCAT__</nowiki></code> ntô corpu dâ so pàggina, cosa chi' nâ fa' spuntari comu mpustazzioni pridifinuta dintra dû riquatru dî lijami ê catigurìi ntê pàggini.",
        "trackingcategories-nodesc": "Nudda discrizzioni dispunìbbili.",
        "trackingcategories-disabled": "Sta catigurìa è disattivata",
        "mailnologin": "Nuddu nnirizzu pi' mannari",
        "emailccsubject": "Copia dû missaggiu ca mannasti a' $1: $2",
        "emailsent": "Missaggiu di posta elittrònica mannatu",
        "emailsenttext": "Lu to missaggiu di posta elittrònica fu' mannatu.",
-       "emailuserfooter": "Stu missaggiu fu' mannatu di $1 a' $2 attraversu dâ funzioni \"Manna nu missàggiu di posta elittrònica a' l'utenti\" supra a' {{SITENAME}}.",
+       "emailuserfooter": "Stu missaggiu fu' mannatu di $1 a' $2 pi' menzu dâ funzioni \"{{int:emailpage}}\" supra a' {{SITENAME}}.",
        "usermessage-summary": "Lassatu nu missaggiu di sistema.",
        "usermessage-editor": "Missaggeri di sistema",
        "watchlist": "Lista taliata",
        "undeleterevdel": "Lu ricùpiru nun veni fattu siddu pròvuca la cancillazzioni parziali dâ virsioni currenti dâ pàggina o dû file.\nNta stu casu, hai a' livari lu signu di spunta o l'ammucciamentu dâ virsioni cancillata cchiu' ricenti.",
        "undeletehistorynoadmin": "Sta pàggina fu' cancillata.\nLu mutivu dâ cancillazzioni è ammustratu ccà sutta, nzèmmula ê dittagghî di l'utenti ca canciaru sta pàggina prima dâ so cancillazzioni.\nLu testu cuntinutu ntê virsioni cancillati è dispunìbbili sulu a' l'amministratura.",
        "undelete-revision": "Virsioni cancillata di $1 (dû $4 ê $5) di $3:",
-       "undeleterevision-missing": "Virsioni nun vàlida o mancanti.\nPo' èssiri chi' hai un culligamentu sbagghiatu, o puru la virsioni hâ statu già ricupirata o livata di l'archiviu.",
+       "undeleterevision-missing": "Virsioni nun vàlida o mancanti.\nPo' èssiri chi' hai na lijami sbagghiata, o puru la virsioni hâ statu già ricupirata o livata di l'archiviu.",
        "undelete-nodiff": "Nun fu attruvata nudda virsioni passata.",
        "undeletebtn": "Ricùpira",
        "undeletelink": "talìa/ricùpira",
        "namespace": "Namespace:",
        "invert": "Inverti la silizzioni",
        "tooltip-invert": "Scègghî sta casedda p'ammucciari li canciamenti chi' su' fatti a' pàggini dû namespace silizzunatu (e macari dû so namespace assuciatu, si' la casedda rilativa è scigghiuta)",
+       "tooltip-whatlinkshere-invert": "Signa sta casedda p'ammucciari li ligami chi' vènunu di pàggini dû namespace scigghiutu.",
        "namespace_association": "Namespace assuciatu",
        "tooltip-namespace_association": "Scègghî sta casedda pi' nclùdiri macari u namespace di discussioni o principali assuciatu ô namespace silizzunatu",
        "blanknamespace": "(Principali)",
        "nolinkshere-ns": "Nun ci sugnu pàggini chi puntano a '''[[:$1]]''' ntô namespace silizziunatu.",
        "isredirect": "pàggina di rinnirizzamentu",
        "istemplate": "trasclusioni",
-       "isimage": "culligamentu ô file",
+       "isimage": "lijami ô file",
        "whatlinkshere-prev": "{{PLURAL:$1|pricidenti|pricidenti $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|succissivu|succissivi $1}}",
        "whatlinkshere-links": "← liami",
        "whatlinkshere-hideredirs": "$1 li rimanni",
        "whatlinkshere-hidetrans": "$1 li trasclusioni",
-       "whatlinkshere-hidelinks": "$1 li culligamenti",
-       "whatlinkshere-hideimages": "$1 li culligamenti a' file",
+       "whatlinkshere-hidelinks": "$1 li lijami",
+       "whatlinkshere-hideimages": "$1 li lijami a' file",
        "whatlinkshere-filters": "Filtri",
        "autoblockid": "Bloccu autumàticu #$1",
        "block": "Bluccari a' n'utenti",
        "blocklog-showsuppresslog": "St'utenti havi statu bluccatu e ammucciatu ntô passatu.\nComu rifirimentu ccassutta cc'è lu riggistru dî supprissioni:",
        "blocklogentry": "hà bluccatu [[$1]]; scadenza $2 $3",
        "reblock-logentry": "Canciau li mpustazzioni dû bloccu pi [[$1]] cu na scadenza di $2 $3",
-       "blocklogtext": "Chistu è l'alencu di l'azzioni di bloccu e sbloccu di l'utenti.\nLi nnirizzi IP bluccati autumaticamenti nun sunnu alincati.\nCunzurtari l'[[Special:BlockList|alencu dî blocchi]] pi' vìdiri i furbanni e' i blocchi chi' sunnu 'n viguri pi' com'ora.",
+       "blocklogtext": "Chistu è l'alencu di l'azzioni di bloccu e sbloccu di l'utenti.\nLi nnirizzi IP bluccati autumaticamenti nun sunnu alincati.\nCunzurtari l'[[Special:BlockList|alencu dî blocchi]] pi' vìdiri li furbanna e' li blocchi chi' sunnu 'n viguri pi' com'ora.",
        "unblocklogentry": "sbluccau a' \"$1\"",
        "block-log-flags-anononly": "sulu utenti anònimi",
        "block-log-flags-nocreate": "criazzioni account bluccata",
        "move-over-sharedrepo": "== U file già esisti ==\n[[:$1]] già esisti ntôn dipòsitu cunnivisu. Spustari nu file nta chistu titulu suprascriviravi u file cunnivisu.",
        "file-exists-sharedrepo": "U nomu di file scigghiutu già è adupiratu ntôn dipòsitu cunnivisu.\nPi' favuri scegghî n'autru nomu.",
        "export": "Esporta pàggini",
-       "exporttext": "È pussìbbili espurtari lu testu e la cronoluggìa dî canciamenti di na pàggina o d'un gruppu di pàggini n furmatu XML pi mpurtàrili n àutri siti ca utilìzzanu lu software MediaWiki, attraversu la pàggina [[Special:Import|d'importu]].\n\nP'espurtari li pàggini innicari li tìtuli ntâ casella di testu suttastanti, unu pi riga, e spicificari siddu s'addisìa attèniri la virsioni currenti e tutti li virsioni pricidenti, cu li dati dâ cronoluggìa dâ pàggina, oppuru surtantu l'ùrtima virsioni e li dati currispunnenti a l'ùrtimu canciamentu.\n\nNta st'ùrtimu casu si pò macari utilizzari un culligamentu, p'asempiu [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] p'espurtari \"[[{{MediaWiki:Mainpage}}]]\".",
+       "exporttext": "È pussìbbili espurtari lu testu e la cronoluggìa dî canciamenti di na pàggina o d'un gruppu di pàggini n furmatu XML pi mpurtàrili n àutri siti ca utilìzzanu lu software MediaWiki, attraversu la pàggina [[Special:Import|d'importu]].\n\nP'espurtari li pàggini innicari li tìtuli ntâ casella di testu suttastanti, unu pi riga, e spicificari siddu s'addisìa attèniri la virsioni currenti e tutti li virsioni pricidenti, cu li dati dâ cronoluggìa dâ pàggina, oppuru surtantu l'ùrtima virsioni e li dati currispunnenti a l'ùrtimu canciamentu.\n\nNta st'ùrtimu casu si pò macari utilizzari na lijami, p'asempiu [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] p'espurtari \"[[{{MediaWiki:Mainpage}}]]\".",
        "exportall": "Esporta tutti i pàggini",
        "exportcuronly": "Ncludi sulu la rivisioni attuali, nun la ntera cronoluggìa",
        "exportnohistory": "---- '''Nota:''' l'espurtazzioni dâ ntera cronoluggìa dî pàggini attraversu sta nterfaccia hà stata disattivata pi mutivi ligati a li pristazzioni dû sistema.",
        "import-interwiki-history": "Copia la ntera cronoluggìa di sta pàggina",
        "import-interwiki-templates": "Includi tutti li template",
        "import-interwiki-submit": "Mporta",
+       "import-mapping-default": "Importa ntê distinazzioni pridifinuti",
+       "import-mapping-namespace": "Importa nta nu namespace:",
+       "import-mapping-subpage": "Importa comu suttapàggini di sta pàggina:",
        "import-upload-filename": "Nomu file:",
        "import-comment": "Oggettu:",
        "importtext": "Pi favuri, esporta lu file dâ wiki surgenti adupirannu [[Special:Export|a funziunalità d'espurtazzioni]].\nSàrvalu supra a' lu tò computer e carrìcalu ccà.",
        "importfailed": "Mpurtazzioni nun arrinisciuta: $1",
        "importunknownsource": "Tipu d'orìggini scanusciutu pi la mpurtazzioni",
        "importcantopen": "Mpussìbbili grapiri lu file di mpurtazzioni",
-       "importbadinterwiki": "Culligamentu inter-wiki erratu",
+       "importbadinterwiki": "Lijami inter-wiki erratu",
        "importsuccess": "Mpurtazzioni arrinisciuta.",
        "importnosources": "Nun hâ statu difinuta nudda wiki d'unni mpurtari e li carricamenti diretti dâ cronuluggìa sunnu disattivati.",
        "importnofile": "Nun hà statu carrcatu nuddu file pi la mpurtazzioni.",
        "import-invalid-interwiki": "E' mpussìbbili mpurtari dû pruggettu wiki nnicatu.",
        "import-error-edit": "A pàggina \"$1\" nun fu' mpurtata picchì nun hai u pirmissu di canciàrila.",
        "import-error-create": "La pàggina \"$1\" nun fu' mpurtata picchì nun hai u pirmissu di criàrila.",
-       "import-error-interwiki": "A pàggina \"$1\" nun fu' mpurtata picchì u so nomu è risirvatu pû culligamentu esternu (interwiki).",
+       "import-error-interwiki": "La pàggina \"$1\" nun fu' mpurtata picchì lu so nomu è risirvatu pî lijami di fora (inter-wiki).",
        "import-error-special": "A pàggina \"$1\" nun fu' mpurtata picchì apparteni a' nu namespace spiciali chi' nun cunsenti pàggini.",
        "import-error-invalid": "A pàggina \"$1\" nun fu' mpurtata picchì u nomu unni sarrìa mpurtata nun è vàlidu supra a' sta wiki.",
        "import-error-unserialize": "A virsioni $2 dâ pàggina \"$1\" nun si potti di-sirializzari. Era signatu chi' sta virsioni adupirava u mudellu di cuntinutu $3 sirializzatu comu $4.",
        "javascripttest": "Virìfichi JavaScript",
        "javascripttest-pagetext-noframework": "Sta pàggina è risirvata pi' l'esicuzzioni dî virìfichi JavaScript.",
        "javascripttest-pagetext-unknownframework": "Framework di virìfica \"$1\" scanusciutu.",
+       "javascripttest-pagetext-unknownaction": "Azzioni scanusciuta \"$1\".",
        "javascripttest-pagetext-frameworks": "Pi' favuri scegghî unu dî siguenti framework di virìfica: $1",
        "javascripttest-pagetext-skins": "Scegghî na peddi câ quali esiguìri i virìfichi:",
        "javascripttest-qunit-intro": "Talìa [$1 a ducumintazzioni a' prupositu dî virìfichi] supra a' mediawiki.org.",
        "spamprotectiontext": "La pàggina ca vulevi sarvari hà statu bluccata dû filtru anti-spam. Chistu è prubbabbirmenti duvutu â prisenza di nu liami a nu situ sternu bluccatu.",
        "spamprotectionmatch": "Lu nostru filtru anti-spam hà ndividuatu lu testu siquenti: $1",
        "spambot_username": "MediaWiki - sistema di rimuzzioni spam",
-       "spam_reverting": "Ripristinata l'ùrtima virsioni priva di culligamenti a $1",
-       "spam_blanking": "Pàggina svacantata, tutti li virsioni cuntinìanu culligamenti a $1",
-       "spam_deleting": "Pàggina cancillata, tutti li virsioni cuntinìunu culligamenti a' $1",
+       "spam_reverting": "Ripristinata l'ùrtima virsioni priva di lijami versu $1",
+       "spam_blanking": "Pàggina svacantata, tutti li virsioni cuntinìunu lijami versu $1",
+       "spam_deleting": "Pàggina cancillata, tutti li virsioni cuntinìunu lijami versu $1",
        "simpleantispam-label": "Cuntrollu anti spam.\n<strong>NUN</strong> jìnchiri stu campu!",
        "pageinfo-title": "Nfurmazzioni supra a' \"$1\"",
        "pageinfo-not-current": "Sfurtunatamenti, nun è pussìbbili furnìri sti nfurmazzioni pî virsioni vecchî.",
        "pageinfo-protect-cascading-yes": "Sì",
        "pageinfo-protect-cascading-from": "Pìgghia prutizzioni a' cascata di",
        "pageinfo-category-info": "Nfurmazzioni supra â catigurìa",
+       "pageinfo-category-total": "Nùmmiru tutali di membri",
        "pageinfo-category-pages": "Nùmmiru di pàggini",
        "pageinfo-category-subcats": "Nùmmiru di suttacatigurìi",
        "pageinfo-category-files": "Nùmmiru di file",
        "patrol-log-page": "Riggìstru dî battugghî",
        "patrol-log-header": "Chistu è nu riggìstru dî virsioni battugghiati.",
        "log-show-hide-patrol": "$1 lu riggistru dî battugghî",
+       "log-show-hide-tag": "$1 lu riggistru di l'etichetti",
        "deletedrevision": "Cancillata na virsioni vecchia di $1",
        "filedeleteerror-short": "Erruri ntâ cancillazzioni dû file: $1",
        "filedeleteerror-long": "Mmatteru erruri ntô tintativu di cancillari lu file:\n\n$1",
        "saturday-at": "Sàbbatu ê $1",
        "sunday-at": "Dumìnica ê $1",
        "yesterday-at": "Ajeri ê $1",
-       "bad_image_list": "Lu furmatu è lu siguenti:\n\nSu' pigghiati a' cunsiddirazzioni sulu li vuci d'elenchi puntati (li righi ca accumènzanu cû sìmmulu *).\nLu primu culligamentu nta ogni' riga havi a' puntari ôn file nun addisiatu.\nSi' cci su' autri culligamenti nta stissa riga, su' cunsiddirati comu eccizzioni, vali a' diri pàggini unni lu file po' èssiri ncurpuratu.",
+       "bad_image_list": "Lu furmatu è lu siguenti:\n\nSu' pigghiati a' cunsiddirazzioni sulu li vuci d'elenchi puntati (li righi ca accumènzanu cû sìmmulu *).\nLa prima lijami nta ogni' riga havi a' puntari ôn file nun addisiatu.\nSi' cci su' autri lijami ntâ stissa riga, su' cunsiddirati comu eccizzioni, vali a' diri pàggini unni lu file po' èssiri ncurpuratu.",
        "metadata": "Metadati",
        "metadata-help": "Stu file cunteni autri nfurmazzioni, prubbabbirmenti agghiunciuti dâ màchina futugràfica o dû scanner adupirati pi' criàrilu o diggitalizzàrilu.\nSiddu lu file hâ statu canciatu dâ so cunnizzioni origginali, certi dittagghî putìssiru nun currispùnniri ô statu novu dû file.",
        "metadata-expand": "Ammustra li nfurmazzioni dittagghiati",
        "exif-devicesettingdescription": "Discrizzioni mpustazzioni dispusitivu",
        "exif-subjectdistancerange": "Scala distanza suggettu",
        "exif-imageuniqueid": "ID unìvucu mmàggini",
-       "exif-gpsversionid": "Virsioni dî tag GPS",
+       "exif-gpsversionid": "Virsioni di l'etichetta GPS",
        "exif-gpslatituderef": "Latitùtini Nord o Sud",
        "exif-gpslatitude": "Latitùtini",
        "exif-gpslongituderef": "Lungitùtini Est o Ovest",
        "exif-originaldocumentid": "Idintificaturi unìvucu dû ducumentu origginali",
        "exif-licenseurl": "URL dâ licenza di drittu d'auturi",
        "exif-morepermissionsurl": "Nfurmazzioni pâ cuncissioni di autri licenzi",
-       "exif-attributionurl": "Quannu si fa' usu di st'òpira, si prega di mèttiri nu culligamentu a'",
+       "exif-attributionurl": "Quannu si fa' usu di st'òpira, si prega di mèttiri na lijami versu",
        "exif-preferredattributionname": "Quannu si fa' usu di st'òpira, si prega di attribuìrinni a patirnità a'",
        "exif-pngfilecomment": "Cummentu dû file PNG",
        "exif-disclaimer": "Dichiarazzioni di esclusioni di rispunsabbilità",
        "monthsall": "tutti",
        "confirmemail": "Cunfirma dû nnirizzu di posta elittrònica",
        "confirmemail_noemail": "Nun hà statu ndicatu un ndirizzu e-mail vàlidu ntê propi [[Special:Preferences|prifirenzi]].",
-       "confirmemail_text": "{{SITENAME}} dumanna la cunvàlida dû to nnirizzu di posta elittrònica pi' putìri adupirari li funziunalità assuciati.\nCalca lu buttuni ccassutta pi' mannari nu missaggiu e-mail di cunfirma a lu to nnirizzu.\nNtô missaggiu cci sarravi nu culligamentu cuntinenti un còdici;\ncàrrica ddu culligamentu cu lu to browser pi' cunfirmari ca lu to nnirizzu di posta elittrònica è vàlidu.",
+       "confirmemail_text": "{{SITENAME}} dumanna la cunvàlida dû to nnirizzu di posta elittrònica pi' putìri adupirari li funziunalità assuciati.\nCalca lu buttuni ccassutta pi' mannari nu missaggiu e-mail di cunfirma a lu to nnirizzu.\nNtô missaggiu cci sarravi na lijami cuntinenti un còdici;\ncàrrica dda lijami cu lu to browser pi' cunfirmari ca lu to nnirizzu di posta elittrònica è vàlidu.",
        "confirmemail_pending": "Già nu còdici di cunfirma t'havi statu mannatu via posta elittrònica;\nsiddu hai criatu lu to cuntu di picca tempu, è mègghiu ch'aspètti l'arrivu dû còdici pi' quarchi minutu prima di pruvari a' addumannàrinni unu novu.",
        "confirmemail_send": "Manna un còdici di cunfirma via e-mail",
        "confirmemail_sent": "Missaggiu e-mail di cunfirma mannatu.",
        "confirmemail_success": "Lu ndirizzu e-mail è cunfirmatu. Ora è pussìbbili esèquiri l'accessu e fari chinu usu dû situ.",
        "confirmemail_loggedin": "Lu tò nnirizzu email fu ora cunfirmatu.",
        "confirmemail_subject": "Cunfirma dû nnirizzu di posta elittronica pi' {{SITENAME}}",
-       "confirmemail_body": "Quarchidunu, prubbabbilmenti tu stissu, dû nnirizzu IP $1,\nriggistrau un cuntu \"$2\" cu stu nnirizzu di posta elittrònica supra a' {{SITENAME}}.\n\nPi' cunfirmari ca stu cuntu apparteni pi' davera a' tia,\ne attivari i funziunalità di posta elittronica supra a' {{SITENAME}},\napri stu culligamentu cû to browser:\n\n$3\n\nSi' nveci stu cuntu *nun t'apparteni*, clicca stu culligamentu\npi' nigari a cunfirma dû nnirizzu di posta elittronica:\n\n$5\n\nStu còdici di cunfirma scadi û $4.",
-       "confirmemail_body_changed": "Quarchidunu, prubbabbilmenti tu stissu, dû nnirizzu IP $1,\ncanciau u nnirizzu di posta elittrònica dû cuntu \"$2\" supra a' {{SITENAME}} mpustannulu a' chistu.\n\nPi' cunfirmari ca stu cuntu apparteni pi' davera a' tia,\ne attivari n'autra vota i funziunalità di posta elittronica supra a' {{SITENAME}},\napri stu culligamentu cû to browser:\n\n$3\n\nSi' nveci stu cuntu *nun t'apparteni*, clicca stu culligamentu\npi' nigari a cunfirma dû nnirizzu di posta elittrònica:\n\n$5\n\nStu còdici di cunfirma scadi û $4.",
-       "confirmemail_body_set": "Quarchidunu, prubbabbilmenti tu stissu, dû nnirizzu IP $1,\nmpustau stu nnirizzu di posta elittrònica pû cuntu \"$2\" supra a' {{SITENAME}}.\n\nPi' cunfirmari ca stu cuntu apparteni pi' davera a' tia,\ne attivari i funziunalità di posta elittronica supra a' {{SITENAME}},\napri stu culligamentu cû to browser:\n\n$3\n\nSi' nveci stu cuntu *nun t'apparteni*, clicca stu culligamentu\npi' nigari a cunfirma dû nnirizzu di posta elittrònica:\n\n$5\n\nStu còdici di cunfirma scadi û $4.",
+       "confirmemail_body": "Quarchidunu, prubbabbilmenti tu stissu, dû nnirizzu IP $1,\nriggistràu un cuntu \"$2\" cu stu nnirizzu di posta elittrònica supra a' {{SITENAME}}.\n\nPi' cunfirmari ca stu cuntu apparteni pi' davera a' tia,\ne attivari li funziunalità di posta elittrònica supra a' {{SITENAME}},\napri sta lijami cû to browser:\n\n$3\n\nSi' nveci stu cuntu *nun t'apparteni*, clicca sta lijami\npi' nigari la cunfirma dû nnirizzu di posta elittrònica:\n\n$5\n\nStu còdici di cunfirma scadi û $4.",
+       "confirmemail_body_changed": "Quarchidunu, prubbabbilmenti tu stissu, dû nnirizzu IP $1,\ncanciàu u nnirizzu di posta elittrònica dû cuntu \"$2\" supra a' {{SITENAME}} mpustannulu a' chistu.\n\nPi' cunfirmari ca stu cuntu apparteni pi' davera a' tia,\ne attivari n'autra vota i funziunalità di posta elittrònica supra a' {{SITENAME}},\napri sta lijami cû to browser:\n\n$3\n\nSi' nveci stu cuntu *nun t'apparteni*, clicca sta lijami\npi' nigari la cunfirma dû nnirizzu di posta elittrònica:\n\n$5\n\nStu còdici di cunfirma scadi û $4.",
+       "confirmemail_body_set": "Quarchidunu, prubbabbilmenti tu stissu, dû nnirizzu IP $1,\nmpustàu stu nnirizzu di posta elittrònica pû cuntu \"$2\" supra a' {{SITENAME}}.\n\nPi' cunfirmari ca stu cuntu apparteni pi' davera a' tia,\ne attivari li funziunalità di posta elittrònica supra a' {{SITENAME}},\napri sta lijami cû to browser:\n\n$3\n\nSi' nveci stu cuntu *nun t'apparteni*, clicca sta lijami\npi' nigari la cunfirma dû nnirizzu di posta elittrònica:\n\n$5\n\nStu còdici di cunfirma scadi û $4.",
        "confirmemail_invalidated": "Cunvàlida dû nnirizzu di posta elittronica nigata",
        "invalidateemail": "Nigazzioni dâ cunvàlida dâ posta elittrònica",
        "scarytranscludedisabled": "[La nchiusioni di pàggini tra siti wiki nun è attiva]",
        "lag-warn-high": "A càusa di nu ritardu eccissivu nta l'aggiurnamentu dô server di databbasi, li canciamenti appurtati {{PLURAL:$1|nta l'ùrtimu secundu|nta l'ùrtimi $1 secundi}} ponnu nun èssiri nta sta lista.",
        "watchlistedit-normal-title": "Cancia pàggini taliati",
        "watchlistedit-normal-legend": "Eliminazzioni di pàggini dâ lista dê pàggini taliati",
-       "watchlistedit-normal-explain": "Ccassutta cci su' li tìtuli ntâ to lista taliata.\nPi' livàrinni unu, scegghî la casedda a' latu d'iddu, e clicca \"{{int:Watchlistedit-normal-submit}}\".\nPoi puru [[Special:EditWatchlist/raw|canciari la lista 'n forma testuali]].",
+       "watchlistedit-normal-explain": "Ccassutta cci sunnu li tìtuli dâ to lista taliata.\nPi' livàrinni unu, scegghî la casedda a' latu d'iddu, e clicca \"{{int:Watchlistedit-normal-submit}}\".\nPoi puru [[Special:EditWatchlist/raw|canciari la lista sutta forma di testu]].",
        "watchlistedit-normal-submit": "Elìmina pàggini",
        "watchlistedit-normal-done": "Dâ lista dê pàggini taliati hà{{PLURAL:$1|&nbsp;stata eliminata na pàggina|nnu stati eliminati $1 pàggini}}:",
-       "watchlistedit-raw-title": "Cancia li pàggini taliati 'n forma testuali",
-       "watchlistedit-raw-legend": "Canciamentu testuali pàggini taliati",
+       "watchlistedit-raw-title": "Canciamentu dâ lista taliata sutta forma di testu",
+       "watchlistedit-raw-legend": "Canciamentu dâ lista taliata sutta forma di testu",
        "watchlistedit-raw-explain": "Ccassutta cci su' li tìtuli ntâ to lista taliata, chi' si po' canciari agghiuncennu e livannu tituli, unu pi' riga.\nQuannu hai finutu, clicca \"{{int:Watchlistedit-raw-submit}}\".\nPoi puru [[Special:EditWatchlist|canciari a lista dâ pàggina tradizziunali]].",
        "watchlistedit-raw-titles": "Pàggini:",
-       "watchlistedit-raw-submit": "Aggiorna la lista",
+       "watchlistedit-raw-submit": "Aggiorna la lista taliata",
        "watchlistedit-raw-done": "La tò lista dê pàggini taliati vinni aggiurnata.",
        "watchlistedit-raw-added": "{{PLURAL:$1|Fu junciuta na pàggina|Foru junciuti $1 pàggini}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|&nbsp;Vinni scancillata na pàggina|Foru scancillati $1 pàggini}}:",
        "watchlistedit-too-many": "Cci su' troppu pàggini p'ammustràrili cca.",
        "watchlisttools-clear": "Svacanta la lista taliata",
        "watchlisttools-view": "Talìa li canciamenti rilivanti",
-       "watchlisttools-edit": "Talìa e cancia la lista",
-       "watchlisttools-raw": "Cancia la lista 'n forma testuali",
+       "watchlisttools-edit": "Talìa e cancia la lista taliata",
+       "watchlisttools-raw": "Cancia la lista taliata sutta forma di testu",
        "iranian-calendar-m1": "Farvardin",
        "iranian-calendar-m2": "Ordibehesht",
        "iranian-calendar-m3": "Khordad",
        "specialpages-group-developer": "Stigghi dû sviluppaturi",
        "blankpage": "Pàggina vacanti",
        "intentionallyblankpage": "Sta pàggina è lassata vacanti apposta e è usata pi benchmark, ecc.",
-       "external_image_whitelist": " #Lassari sta riga pi' com'è ora, senza tuccàrila<pre>\n#Mèttiri li frammenti dî sprissioni rigulari (sulu la parti ca va' mmenzu ê //) ccassutta\n#Sarrannu cunfruntati cu l'URL dî mmàggini esterni (hotlinked)\n#Chiddi ca currispùnnunu sarrannu ammustrati comu mmàggini, pi' l'autri veniravi ammustratu sulu nu culligamentu a la mmàggini\n#Li righi ca accumencianu cu' # sunnu trattati comu cummenti\n#Nun cc'è diffirenza tra majusculi e minusculi\n\n#Mèttiri tutti li frammenti di sprissioni rigulari supra a' sta riga. Lassa sta riga pi' com'è ora, senza tuccàrila</pre>",
-       "tags": "Tag di canciamenti validi",
-       "tag-filter": "Filtru dô [[Special:Tags|Tag]]",
+       "external_image_whitelist": " #Lassari sta riga pi' com'è ora, senza tuccàrila<pre>\n#Mèttiri li frammenti dî sprissioni rigulari (sulu la parti ca va' mmenzu ê //) ccassutta\n#Sarrannu cunfruntati cu l'URL dî mmàggini esterni (hotlinked)\n#Chiddi ca currispùnnunu sarrannu ammustrati comu mmàggini, pi' l'autri veniravi ammustrata sulu na lijami a' la mmàggini\n#Li righi ca accumencianu cu' # sunnu trattati comu cummenti\n#Nun cc'è diffirenza tra majusculi e minusculi\n\n#Mèttiri tutti li frammenti di sprissioni rigulari supra a' sta riga. Lassari sta riga pi' com'è ora, senza tuccàrila</pre>",
+       "tags": "Etichetti dî canciamenti validi",
+       "tag-filter": "Filtra pi' [[Special:Tags|etichetta]]",
        "tag-filter-submit": "Filtra",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Etichetta|Etichetti}}]]: $2)",
-       "tags-title": "Tag",
-       "tags-intro": "Sta pàggina elenca l'etichetti ca lu software putissi associari a nu canciamentu e lu loru significatu",
+       "tags-title": "Etichetti",
+       "tags-intro": "Sta pàggina elenca l'etichetti cu li quali lu software po' marcari nu canciamentu, e lu significatu ca hannu.",
        "tags-tag": "Nomu di l'etichetta",
        "tags-display-header": "Aspettu nâ lista di canciamenti",
        "tags-description-header": "Discrizzioni cumpleta dô significatu",
+       "tags-source-header": "Pruvinenza",
        "tags-active-header": "Attivu?",
-       "tags-hitcount-header": "Canciamenti che hanno tag",
+       "tags-hitcount-header": "Canciamenti cu' etichetti",
+       "tags-actions-header": "Azzioni",
        "tags-active-yes": "Sì",
        "tags-active-no": "No",
+       "tags-source-extension": "Difinuta di n'estinsioni",
+       "tags-source-manual": "Appizzata a' manu di utenti e bot",
+       "tags-source-none": "Nun è cchiu' usata",
        "tags-edit": "cancia",
+       "tags-delete": "cancella",
+       "tags-activate": "attiva",
+       "tags-deactivate": "disattiva",
        "tags-hitcount": "$1 {{PLURAL:$1|canciamentu|canciamenti}}",
+       "tags-manage-no-permission": "Nun hai lu pirmissu di gistiri l'etichetti dî canciamenti.",
+       "tags-create-heading": "Crìa n'etichetta nova",
+       "tags-create-explanation": "Comu mpustazzioni pridifinuta, l'etichetti novi sunnu dispunìbbili a' èssiri adupirati di l'utenti e dî bot.",
+       "tags-create-tag-name": "Nomu di l'etichetta:",
+       "tags-create-reason": "Mutivu:",
+       "tags-create-submit": "Crìa",
+       "tags-create-no-name": "Hai a' spicificari lu nomu di l'etichetta.",
+       "tags-create-invalid-chars": "Li nomi di l'etichetti nun pònnu cuntèniri vìrguli (<code>,</code>) o sbarri p'avanti (<code>/</code>).",
+       "tags-create-invalid-title-chars": "Li nomi di l'etichetti nun pònnu cuntèniri li caràttiri chi' nun si ponnu adupirari ntê tìtuli dî pàggini.",
+       "tags-create-already-exists": "L'etichetta \"$1\" già esisti.",
+       "tags-create-warnings-above": "{{PLURAL:$2|Mmattìu st'avvertimentu|Mmatteru st'avvertimenti}} ntô criari l'etichetta \"$1\":",
+       "tags-create-warnings-below": "Voi cuntinuari e criari l'etichetta?",
+       "tags-delete-title": "Cancillazzioni di n'etichetta",
+       "tags-delete-explanation-initial": "Stai cancillannu l'etichetta \"$1\" dâ basi di dati.",
+       "tags-delete-explanation-in-use": "Sarravi livata di {{PLURAL:$2|$2 virsioni o vuci di riggistru|tutti li $2 virsioni o vuci di riggistru}} unni è appizzata com'ad ora.",
+       "tags-delete-explanation-warning": "St'opirazzioni è <strong>irrivirsìbbili</strong> e <strong>nuddu la po' annullari</strong>, mancu l'amministratura dâ basi di dati. Hai a' èssiri sicuru chi' è chista l'etichetta chi' voi cancillari.",
+       "tags-delete-explanation-active": "<strong>L'etichetta \"$1\" ancora è attiva, e cuntinuiravi a' èssiri appizzata.</strong> Pi' fari finiri stu fattu, vai ntê banni unni st'etichetta è mpustata pi' èssiri appizzata, e disattìvila di ddani.",
+       "tags-delete-reason": "Mutivu:",
+       "tags-delete-submit": "Cancella difinitivamenti st'etichetta",
+       "tags-delete-not-allowed": "L'etichetti difinuti di n'estinsioni nun si ponnu cancillari, eccettu quannu l'estinsioni lu cunsenti esprissamenti.",
+       "tags-delete-not-found": "L'etichetta \"$1\" nun esisti.",
+       "tags-delete-too-many-uses": "L'etichetta \"$1\" havi statu appizzata nta cchiu' ssai di $2 {{PLURAL:$2|virsioni}}, e pi' chistu mutivu nun si po' cancillari.",
+       "tags-delete-warnings-after-delete": "L'etichetta \"$1\" fu' cancillata bona, però {{PLURAL:$2|mmattìu st'avvirtimentu|mmatteru st'avvirtimenti}}:",
+       "tags-activate-title": "Attivazzioni di n'etichetta",
+       "tags-activate-question": "Stai attivannu l'etichetta \"$1\".",
+       "tags-activate-reason": "Mutivu:",
+       "tags-activate-not-allowed": "Nun si po' attivari l'etichetta \"$1\".",
+       "tags-activate-not-found": "L'etichetta \"$1\" nun esisti.",
+       "tags-activate-submit": "Attiva",
+       "tags-deactivate-title": "Disattivazzioni di n'etichetta",
+       "tags-deactivate-question": "Stai disattivannu l'etichetta \"$1\".",
+       "tags-deactivate-reason": "Mutivu:",
+       "tags-deactivate-not-allowed": "Nun si po' disattivari l'etichetta \"$1\".",
+       "tags-deactivate-submit": "Disattiva",
+       "tags-apply-no-permission": "Nun hai lu pirmissu di appizzari etichetti ntê to canciamenti.",
+       "tags-apply-not-allowed-one": "Nun è cunsintutu di appizzari l'etichetta \"$1\" a' manu.",
+       "tags-apply-not-allowed-multi": "Nun è cunsintutu di appizzari {{PLURAL:$2|st'etichetta|st'etichetti}} a' manu: $1",
+       "tags-update-no-permission": "Nun hai lu pirmissu di agghiùnciri o livari l'etichetti di canciamentu dî sìnguli virsioni o vuci di riggistru.",
+       "tags-update-add-not-allowed-one": "Nun è cunsintutu di agghiùnciri l'etichetta \"$1\" a' manu.",
+       "tags-update-add-not-allowed-multi": "Nun è cunsintutu di agghiùnciri {{PLURAL:$2|st'etichetta|st'etichetti}} a' manu: $1",
+       "tags-update-remove-not-allowed-one": "Nun è cunsintutu di livari l'etichetta \"$1\".",
+       "tags-update-remove-not-allowed-multi": "Nun è cunsintutu di livari {{PLURAL:$2|st'etichetta|st'etichetti}} a' manu: $1",
+       "tags-edit-title": "Canciamentu di l'etichetti",
+       "tags-edit-manage-link": "Gistisci l'etichetti",
+       "tags-edit-revision-selected": "{{PLURAL:$1|Virsioni scigghiuta|Virsioni scigghiuti}} di [[:$2]]:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Eventu dû riggistru scigghiutu|Eventi dû riggistru scigghiuti}}:",
+       "tags-edit-revision-legend": "Agghiunci o leva etichetti di {{PLURAL:$1|sta virsioni|tutti li $1 virsioni}}",
+       "tags-edit-logentry-legend": "Agghiunci o leva etichetti di {{PLURAL:$1|sta vuci di riggistru|tutti li $1 vuci di riggistru}}",
+       "tags-edit-existing-tags": "Etichetti esistenti:",
+       "tags-edit-existing-tags-none": "''Nudda''",
+       "tags-edit-new-tags": "Etichetti novi:",
+       "tags-edit-add": "Agghiunci st'etichetti:",
+       "tags-edit-remove": "Leva st'etichetti:",
+       "tags-edit-remove-all-tags": "(leva tutti l'etichetti)",
+       "tags-edit-chosen-placeholder": "Scegghî quarchi etichetta",
+       "tags-edit-chosen-no-results": "Nun si truvàu nudda etichetta ca currispunni",
+       "tags-edit-reason": "Mutivu:",
+       "tags-edit-revision-submit": "Àpplica li canciamenti a' {{PLURAL:$1|sta virsioni|$1 virsioni}}",
+       "tags-edit-logentry-submit": "Àpplica li canciamenti a' {{PLURAL:$1|sta vuci di riggistru|$1 vuci di riggistru}}",
+       "tags-edit-success": "Li canciamenti furu applicati boni.",
+       "tags-edit-failure": "Nun si pòttiru applicari li canciamenti:\n$1",
+       "tags-edit-nooldid-title": "Virsioni oggettu nun vàlida",
+       "tags-edit-nooldid-text": "O nun spicificasti nudda virsioni comu oggettu di sta funzioni, o puru la virsioni spicificata nun esisti.",
+       "tags-edit-none-selected": "Pi' favuri scegghi ammenu una etichetta, di agghiùnciri o livari.",
        "comparepages": "Cunfrunta pàggini",
        "compare-page1": "Pàggina 1",
        "compare-page2": "Pàggina 2",
        "dberr-info": "(Impussìbbili accèdiri â basi di dati: $1)",
        "dberr-info-hidden": "(Impussìbbili accèdiri â basi di dati)",
        "dberr-usegoogle": "Poi pruvari a circari supra Google ammentri.",
-       "dberr-outofdate": "Nota ca la loru indicizzazioni dê nostri cuntintinuta po essiri nun aggiurnata.",
+       "dberr-outofdate": "Nota ca la so innicizzazioni dû nostru cuntinutu po' nun èssiri aggiurnata.",
        "dberr-cachederror": "Chista ca segui è na copia cache da pàggina richiesta, e putissi essiri nun aggiurnata.",
        "htmlform-invalid-input": "Ci su prublema cu l'input nseritu",
        "htmlform-select-badoption": "Lu valori spicificatu nun è n'opzioni valida.",
        "revdelete-uname-unhid": "nomu utenti ammustratu",
        "revdelete-restricted": "misi ristrizzioni pi' l'amministratura",
        "revdelete-unrestricted": "livati ristrizzioni pi' l'amministratura",
+       "logentry-block-block": "$1 {{GENDER:$2|bluccàu}} a' {{GENDER:$4|$3}} cûn tempu di scadenza di $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|sbluccàu}} a' {{GENDER:$4|$3}}",
+       "logentry-block-reblock": "$1 {{GENDER:$2|canciàu}} li mpustazzioni dû bloccu di {{GENDER:$4|$3}} cûn tempu di scadenza di $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|bluccàu}} a' {{GENDER:$4|$3}} cûn tempu di scadenza di $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|canciàu}} li mpustazzioni dû bloccu di {{GENDER:$4|$3}} cûn tempu di scadenza di $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|impurtàu}} $3 pi' menzu dûn carricamentu di file",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|impurtàu}} $3 di n'autra wiki",
        "logentry-merge-merge": "$1 {{GENDER:$2|juncìu}} $3 nta $4 (virsioni nfina ô $5)",
        "logentry-move-move": "$1 {{GENDER:$2|spustau}} la pàggina $3 nti $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|spustau}} a pàggina $3 nta $4 senza lassari nu rimannu",
        "logentry-upload-upload": "$1 {{GENDER:$2|carricau}} $3",
        "logentry-upload-overwrite": "$1 {{GENDER:$2|carricau}} na virsioni nova di $3",
        "logentry-upload-revert": "$1 {{GENDER:$2|carricau}} $3",
+       "log-name-managetags": "Riggistru dâ gistioni di l'etichetti",
+       "log-description-managetags": "Sta pàggina elenca l'opirazzioni amministrativi chi' riguàrdunu l'[[Special:Tags|etichetti]]. Lu riggìstru cunteni sulu l'azzioni chi' furu fatti a' manu di n'amministraturi; l'etichetti ponnu puru èssiri criati e cancillati dû software dâ wiki senza lassari vuci nta stu riggistru.",
+       "logentry-managetags-create": "$1 {{GENDER:$2|criàu}} l'etichetta «$4»",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|cancillàu}} l'etichetta \"$4\" (livata di $5 {{PLURAL:$5|virsioni o vuci di riggistru}})",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|attivàu}} l'etichetta «$4» pi' l'usu di utenti e bot",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|disattivàu}} l'etichetta \"$4\" pi' l'usu di l'utenti e dî bot",
+       "log-name-tag": "Riggistru di l'etichetti",
+       "log-description-tag": "Sta pàggina ammustra quannu l'utenti agghiunciunu o lèvunu [[Special:Tags|etichetti]] di sìnguli virsioni o vuci di riggistru. Stu riggistru nun rifirisci li variazzioni di l'etichetti chi' succèdunu ntô cuntestu di nu canciamentu, na cancillazzioni, o n'autra opirazzioni comu a' chisti.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|agghiuncìu}} l'{{PLURAL:$7|etichetta|etichetti}} $6 â virsioni $4 dâ pàggina $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|agghiuncìu}} {{PLURAL:$7|l'etichetta|l'etichetti}} $6 â vuci di riggistru $5 dâ pàggina $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|livàu}} {{PLURAL:$9|l'etichetta|l'etichetti}} $8 dâ virsioni $4 dâ pàggina $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|livàu}} l'{{PLURAL:$9|etichetta|etichetti}} $8 dâ vuci di riggistru $5 dâ pàggina $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|canciàu}} l'etichetti dâ virsioni $4 dâ pàggina $3 ({{PLURAL:$7|nn'agghiuncìu}} $6; {{PLURAL:$9|nni livàu}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|aggiurnàu}} l'etichetti ntâ vuci di riggistru $5 dâ pàggina $3 ({{PLURAL:$7|nn'agghiuncìu}} $6; {{PLURAL:$9|nni livàu}} $8)",
        "rightsnone": "(nuddu)",
        "revdelete-summary": "riassuntu dô canciamentu",
        "feedback-adding": "Agghiuncimentu dû cummentu â pàggina...",
+       "feedback-back": "Arreti",
        "feedback-bugcheck": "Bonu! Sulu cuntrolla chi' nun è unu dî [$1 bug già canusciuti].",
        "feedback-bugnew": "Cuntrullai. Signala nu bug novu",
        "feedback-bugornote": "Si' si' bonu a' discrìviri un prubblema tècnicu di manera dittagghiata, pi' favuri [$1 signala nu bug].\nSi' no, poi adupirari u mòdulu facilitatu ccassutta. U to cummentu sarravi agghiunciutu â pàggina \"[$3 $2]\", nsemmula ô to nomu utenti.",
        "feedback-cancel": "Annulla",
        "feedback-close": "Finutu",
+       "feedback-external-bug-report-button": "Signala nu prubblema tècnicu",
+       "feedback-dialog-title": "Lassa nu cummentu",
+       "feedback-dialog-intro": "Poi adupirari stu mòdulu facili ccassutta pi' lassari lu to cummentu. Stu cummentu sarravi agghiunciutu â pàggina «$1», nsemmula ô to nomu utenti.",
+       "feedback-error-title": "Erruri",
        "feedback-error1": "Erruri: Risultatu di l'API nun ricanusciutu",
        "feedback-error2": "Erruri: A mudìfica nun riniscìu",
        "feedback-error3": "Erruri: Nudda risposta di l'API",
+       "feedback-error4": "Erruri: Nun fu' pussìbbili pubblicari ntô tìtulu dû cummentu spicificatu",
        "feedback-message": "Missaggiu:",
        "feedback-subject": "Oggettu:",
        "feedback-submit": "Manna",
+       "feedback-terms": "Capisciu ca li nfurmazzioni dû me aggenti di l'utenti cuntènunu li virsioni pricisi dû me browser e dû me sistema opirativu, e ca sti nfurmazzioni sarrannu cunnivisi pubblicamenti a' latu dû me cummentu.",
+       "feedback-termsofuse": "Accunsentu a' lassari lu me cummentu in cuncurdanza cu' li Cunnizzioni d'Usu.",
        "feedback-thanks": "Grazzî! U to cummentu fu' affissu ntâ pàggina \"[$2 $1]\".",
+       "feedback-thanks-title": "Ti ringrazziamu!",
+       "feedback-useragent": "Aggenti di l'utenti:",
        "searchsuggest-search": "Risciduta",
        "searchsuggest-containing": "chi' cunteni...",
        "api-error-badaccess-groups": "Nun hai u pirmissu di carricari file nta sta wiki.",
        "log-name-pagelang": "Riggistru dî canci di lingua",
        "log-description-pagelang": "Chistu è nu riggistru dî canciamenti â lingua dî pàggini.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|canciau}} a lingua dâ pàggina $3 di $4 a' $5.",
-       "default-skin-not-found": "Whoops! La peddi pridifinuta dâ to wiki, mpustata nta <code dir=\"ltr\">$wgDefaultSkin</code> comu <code>$1</code>, nun è dispunìbbili.\n\nA' quantu pari la to installazzioni ncludi li peddi ccasutta. Talìa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manuali: Cunfigurazzioni dî peddi] p'istruzzioni supra a' comu s'attìvunu e comu si scegghî chidda pridifinuta.\n\n$2\n\n; Si' hai installatu MediaWiki ora ora:\n: E' prubbàbbili chi' l'installasti dû git, o direttamenti dû còdici surgenti nta quarchi' autra manera. Allura sta cosa è privista. Prova e installa quarchi' peddi di [https://www.mediawiki.org/wiki/Category:All_skins l'archìviu dî peddi di mediawiki.org], a na manera di chisti:\n:* Scàrrica [https://www.mediawiki.org/wiki/Download lu prugramma d'installazzioni in furmatu tar], chi' cunteni tanti peddi ed estinsioni. Poi cupiari e ncuddari la cartella <code>skins/</code> di ddadintra.\n:* Scàrrica a' una a' una quarchi' peddi in furmatu tar di [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clona via git unu dî dipòsiti <code>mediawiki/skins/*</code> ntâ cartella <code dir=\"ltr\">skins/</code> dâ to installazzioni di MediaWiki.\n: Fari accussì' nun avissi a' ntirfirìri cû to dipòsitu git si' si' nu sviluppaturi di MediaWiki.\n\n; Si' hai aggiurnatu MediaWiki ora ora:\n: MediaWiki virsioni 1.24 e succissivi nun attìvunu cchiu' di manera autumàtica i peddi installati (talìa [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manüali: Scuperta autumatica dî peddi]). Poi cupiari e ncuddari sti righi nta <code>LocalSettings.php</code> p'attivari tutti li peddi chi' sunnu pi' com'ora installati:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si' hai mudificatu <code>LocalSettings.php</code> ora ora:\n: Cuntrolla chi' nun sbagghiasti a' scriviri li nomi dî peddi.",
-       "default-skin-not-found-no-skins": "Whoops! La peddi pridifinuta dâ to wiki, mpustata nta <code dir=\"ltr\">$wgDefaultSkin</code> comu <code>$1</code>, nun è dispunìbbili.\n\nNun hai nudda peddi installata.\n\n; Si' hai installatu o puru aggiurnatu MediaWiki ora ora:\n: E' prubbàbbili chi' l'installasti dû git, o direttamenti dû còdici surgenti nta quarchi' autra manera. Allura sta cosa è privista. MediaWiki virsioni 1.24 e succissivi nun cuntènunu nudda peddi ntô dipòsitu principali. Prova e installa quarchi' peddi di [https://www.mediawiki.org/wiki/Category:All_skins l'archìviu dî peddi di mediawiki.org], a na manera di chisti:\n:* Scàrrica [https://www.mediawiki.org/wiki/Download u prugramma d'installazzioni in furmatu tar], chi' cunteni tanti peddi ed estinsioni. Poi cupiari e ncuddari a cartella <code>skins/</code> di ddadintra.\n:* Scàrrica a' una a' una quarchi' peddi in furmatu tar di [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clona via git unu dî dipòsiti <code>mediawiki/skins/*</code> ntâ cartella <code dir=\"ltr\">skins/</code> dâ to installazzioni di MediaWiki.\n: Fari accussì' nun avissi a' ntirfirìri cû to dipòsitu git si' si' nu sviluppaturi di MediaWiki. Talìa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manüali: Cunfigurazzioni dî peddi] p'istruzzioni supra a' comu s'attìvunu i peddi e comu si scegghî chidda pridifinuta.",
+       "default-skin-not-found": "Whoops! La peddi pridifinuta dâ to wiki, mpustata nta <code dir=\"ltr\">$wgDefaultSkin</code> comu <code>$1</code>, nun è dispunìbbili.\n\nA' quantu pari la to istallazzioni ncludi {{PLURAL:$4|la peddi|li peddi}} ccasutta. Talìa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manuali: Cunfigurazzioni dî peddi] p'istruzzioni supra a' comu {{PLURAL:$4|s'attìva|s'attìvunu e comu si scegghî chidda pridifinuta}}.\n\n$2\n\n; Si' hai istallatu MediaWiki ora ora:\n: E' prubbàbbili ca l'istallasti dû git, o direttamenti dû còdici surgenti nta quarchi' n'autra manera. Allura sta cosa è privista. Prova e istalla quarchi' peddi di [https://www.mediawiki.org/wiki/Category:All_skins l'archìviu dî peddi di mediawiki.org], a na manera di chisti:\n:* Scàrrica [https://www.mediawiki.org/wiki/Download lu prugramma d'istallazzioni in furmatu tar], ca cunteni tanti peddi ed estinsioni. Poi cupiari e ncuddari la cartella <code>skins/</code> di ddadintra.\n:* Scàrrica a' una a' una quarchi' peddi ntô furmatu tar di [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Adòpira Git pi' scarricari peddi].\n: Lu fari accussi' nun avissi a' ntirfirìri cû to dipòsitu git si' si' nu sviluppaturi di MediaWiki.\n\n; Si' hai aggiurnatu MediaWiki ora ora:\n: MediaWiki virsioni 1.24 e succissivi nun attìvunu cchiu' di manera autumàtica li peddi istallati (talìa [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manüali: Scuperta autumatica dî peddi]). Poi cupiari e ncuddari {{PLURAL:$5|sta riga|sti righi}} nta <code>LocalSettings.php</code> p'attivari {{PLURAL:$5|la peddi ca è istallata pi' com'ora|tutti li peddi ca sunnu istallati pi' com'ora}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si' hai mudificatu <code>LocalSettings.php</code> ora ora:\n: Cuntrolla ca nun sbagghiasti a' scrìviri li nomi dî peddi.",
+       "default-skin-not-found-no-skins": "Whoops! La peddi pridifinuta dâ to wiki, mpustata nta <code dir=\"ltr\">$wgDefaultSkin</code> comu <code>$1</code>, nun è dispunìbbili.\n\nNun hai nudda peddi installata.\n\n; Si' hai installatu o puru aggiurnatu MediaWiki ora ora:\n: E' prubbàbbili chi' l'installasti dû git, o direttamenti dû còdici surgenti nta quarchi' autra manera. Allura sta cosa è privista. MediaWiki virsioni 1.24 e succissivi nun cuntènunu nudda peddi ntô dipòsitu principali. Prova e installa quarchi' peddi di [https://www.mediawiki.org/wiki/Category:All_skins l'archìviu dî peddi di mediawiki.org], a na manera di chisti:\n:* Scàrrica [https://www.mediawiki.org/wiki/Download u prugramma d'installazzioni in furmatu tar], chi' cunteni tanti peddi ed estinsioni. Poi cupiari e ncuddari a cartella <code>skins/</code> di ddadintra.\n:* Scàrrica a' una a' una quarchi' peddi in furmatu tar di [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Adòpira Git pi' scarricari peddi].\n: Fari accussì' nun avissi a' ntirfirìri cû to dipòsitu git si' si' nu sviluppaturi di MediaWiki. Talìa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manüali: Cunfigurazzioni dî peddi] p'istruzzioni supra a' comu s'attìvunu i peddi e comu si scegghî chidda pridifinuta.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (attivata)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''disattivata''')",
        "mediastatistics": "Statìstichi supra ê file multimidiali",
        "json-error-recursion": "U valuri di cudificari havi unu o cchiu' ssai rifirimenti ricursivi",
        "json-error-inf-or-nan": "U valuri di cudificari havi unu o cchiu' ssai valuri NAN o INF",
        "json-error-unsupported-type": "Fu' passatu nu valuri dûn tipu chi' nun si po' cudificari",
+       "headline-anchor-title": "Ligami versu sta sizzioni",
        "special-characters-group-latin": "Latinu",
        "special-characters-group-latinextended": "Latinu estinnutu",
        "special-characters-group-ipa": "IPA",
        "special-characters-group-greek": "Grecu",
        "special-characters-group-cyrillic": "Cirillicu",
        "special-characters-group-arabic": "Àrabbu",
+       "special-characters-group-arabicextended": "Àrabbu estinnutu",
        "special-characters-group-persian": "Persianu",
        "special-characters-group-hebrew": "Ebbreu",
        "special-characters-group-bangla": "Bengalisi",
+       "special-characters-group-tamil": "Tamil",
        "special-characters-group-telugu": "Telugu",
        "special-characters-group-sinhala": "Singalisi",
        "special-characters-group-gujarati": "Gujarati",
+       "special-characters-group-devanagari": "Devanàgari",
        "special-characters-group-thai": "Tailannisi",
        "special-characters-group-lao": "Lao",
-       "special-characters-group-khmer": "Khmer"
+       "special-characters-group-khmer": "Khmer",
+       "special-characters-title-endash": "liniedda enni",
+       "special-characters-title-emdash": "liniedda emmi",
+       "special-characters-title-minus": "signu menu"
 }
index c337c98..6735a93 100644 (file)
        "view": "See",
        "view-foreign": "See oan $1",
        "edit": "Eedit",
-       "edit-local": "Eedit local description",
+       "edit-local": "Eedit the local descreeption",
        "create": "Ceaut",
        "create-local": "Eik local descreeption",
        "editthispage": "Eedit this page",
        "jumptonavigation": "navigation",
        "jumptosearch": "rake",
        "view-pool-error": "Sarrie, the servers ar owerlaided at the moment.\nOwer monie uisers ar ettlin tae see this page.\nPlease wait ae while afore ye ettle tae access this page again.\n\n$1",
-       "generic-pool-error": "Sorry, the servers are owerloadit at the moment.\nToo mony uisers are tryin tae view this resoorce.\nPlease wait a while afore you try tae access this resoorce again.",
+       "generic-pool-error": "Sairrie, the servers ar owerlaidit the nou.\nOwwer monie uisers ar attemptin tae see this resoorce.\nPlease wait a while afore ye attempt tae access this resoorce again.",
        "pool-timeout": "Timeout waitin fer the lock",
        "pool-queuefull": "Pool line is ful",
        "pool-errorunknown": "Onknawn mistak.",
        "newarticle": "(New)",
        "newarticletext": "Ye'v follaed aen airtin til ae page that disna exeest yet. Tae cræft the page, stairt typin in the kist ablo (see the [$1 heelp page] fer mair info). Gif ye'r here bi mistak, jist clap yer brouser's <strong>back</strong> button.",
        "anontalkpagetext": "----\n<em>This is the discussion page fer aen anonymoos uiser that's naw cræftit aen accoont yet, or that disna uise it.</em>\nWe maun therefore uise the numerical IP address tae identifie him/her.\nSic aen IP address can be shaired bi several uisers.\nGif ye'r aen anonymos uiser n feel that onreelavant comments hae been directed at ye, please [[Special:UserLogin/signup|cræft aen accoont]] or [[Special:UserLogin|log in]] tae avoid futur confusion wi ither anonymoos uisers.",
-       "noarticletext": "Thaur's naw tex oan this page the nou. \nYe can [[Special:Search/{{PAGENAME}}|rake fer this page teitle]] in ither pages,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} rake the related logs],\nor [{{fullurl:{{FULLPAGENAME}}|action=edit}} eidit this page].</span>",
+       "noarticletext": "Thaur's naw tex oan this page the nou. \nYe can [[Special:Search/{{PAGENAME}}|rake fer this page teitle]] in ither pages,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} rake the related logs],\nor [{{fullurl:{{FULLPAGENAME}}|action=edit}} eedit this page].</span>",
        "noarticletext-nopermission": "Thaur's nae tex in this page the nou.\nYe can [[Special:Search/{{PAGENAME}}|rake fer this page title]] in ither pages, or <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} rake the relatit logs]</span>, but ye dinna hae permeession tae cræft this page.",
        "missing-revision": "The reveesion #$1 o the page named \"{{FULLPAGENAME}}\" disna exeest.\n\nThis is uissuallie caused bi follaein aen ootdated histerie airtin til ae page that haes been delytit.\nDetails can be foond in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} delytion log].",
        "userpage-userdoesnotexist": "Uiser accoont \"<nowiki>$1</nowiki>\" hasnae been registerit. Please check gin ye wint tae mak or eidit this page.",
        "revdelete-unsuppress": "Remuiv restreections oan restored reveesions",
        "revdelete-log": "Raison:",
        "revdelete-submit": "Applie til selected {{PLURAL:$1|reveesion|reveesions}}",
-       "revdelete-success": "Reveesion veesibeelitie successfully updated.",
-       "revdelete-failure": "Reveesion veesibeelitie coudna be updated:\n$1",
-       "logdelete-success": "Log veesibeelitie successfully set.",
+       "revdelete-success": "Reveesion veesibeelitie successfullie updatit.",
+       "revdelete-failure": "Reveesion veesibeelitie coudna be updatit:\n$1",
+       "logdelete-success": "Log veesibeelitie successfullie set.",
        "logdelete-failure": "Log veesibddlitie coudna be set:\n$1",
        "revdel-restore": "chynge veesibeelitie",
        "pagehist": "Page histerie",
        "powersearch-togglelabel": "Chec':",
        "powersearch-toggleall": "Aw",
        "powersearch-togglenone": "Nane",
-       "powersearch-remember": "Remember selection for futur rakes",
+       "powersearch-remember": "Mynd selection fer futur rakes",
        "search-external": "Eixternal rake",
        "searchdisabled": "Rakin throu {{SITENAME}} is disabled fer performance raisons. Ye can rake bi wa o Google juist nou. Mynd that thair indexes o {{SITENAME}} content micht be oot o date.",
        "search-error": "Ae mistak haes occurred while rakin: $1",
        "license": "Licensin:",
        "license-header": "Licensin",
        "nolicense": "Nane selectit",
-       "licenses-edit": "Eedit license options",
+       "licenses-edit": "Eedit license opties",
        "license-nopreview": "(Luikower naw available)",
        "upload_source_url": "(yer chosen file fae ae valid, publeeclie accessible URL)",
        "upload_source_file": "(yer chosen file fae yer computer)",
index 8bb2d3f..f81d91e 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Aursani",
                        "아라",
-                       "Fayazburiro"
+                       "Fayazburiro",
+                       "Sindhu"
                ]
        },
        "tog-underline": "هيٺان ڏنل لڪير واري لنڪ",
        "october-date": "آڪٽوبر $1",
        "november-date": "نَوِمبر $1",
        "december-date": "ڊسمبر $1",
+       "pagecategories": "{{PLURAL:$1|زمرو|زمرا}}",
        "category_header": "\"$1\" زمري جا صفحا",
        "subcategories": "ذيلي زمرا",
        "category-media-header": " \"$1\" زمري اندر ذريعات",
        "category-empty": "''في الوقت هن زمري ۾ ڪي به صفحا يا ذريعات شامل ناهن.''",
+       "hidden-categories": "{{PLURAL:$1|لڪيل زمرو|لڪيل زمرا}}",
        "hidden-category-category": "لڪل زمرا",
        "listingcontinuesabbrev": "جاري..",
        "about": "بابت",
        "moredotdotdot": "اڃا...",
        "mypage": "منهنجو صفحو",
        "mytalk": "ڳاله ٻوله",
+       "navigation": "رهنمائي",
        "and": "&#32;۽",
        "qbfind": "ڳوليو",
        "qbbrowse": "جھانگيو",
        "qbmyoptions": "منهنجا صفحا",
        "faq": "ڪپوس",
        "faqpage": "Project:ڪپوس",
+       "namespaces": "نانءُ پولار:",
+       "variants": "اقسام",
+       "navigation-heading": "رهنما مينيو",
        "errorpagetitle": "چُڪَ",
        "returnto": "$1 ڏانهن وَرو.",
        "tagline": "{{SITENAME}} طرفان",
        "site-atom-feed": "$1 اڻو روان رسد",
        "page-rss-feed": "\"$1\" RSS برق مواد",
        "page-atom-feed": "\"$1\" اڻو روان رسد",
-       "red-link-title": "$1 (اÚ\83ا Ù\84Ú©Ù\8aÙ\84 Ù\86اÙ\87ي)",
+       "red-link-title": "$1 (صÙ\81Ø­Ù\88 Ù\88جÙ\88د Ù\86Ù\87 Ù¿Ù\88 Ø±Ú©ي)",
        "nstab-main": "صفحو",
        "nstab-user": "تعارفي صفحو",
        "nstab-media": "ذريعاتي صفحو",
        "acct_creation_throttle_hit": "معاف ڪجَو، اوهان اڳي ئي $1 کاتا کولي چڪا آهيو. ان کان وڌيڪ نه ٿا کولي سگھجن.",
        "accountcreated": "کاتو کلي چڪو",
        "accountcreatedtext": "$1 نالي يوزر کاتو کلي چڪو آھي.",
+       "pt-login": "لاگ ان ٿيو",
+       "pt-createaccount": "کاتو کوليو",
        "changepassword": "ڳجھو لفظ تبديل ڪريو",
        "retypenew": "نئون ڳجھو لفظ ٻيهر ٽائيپ ڪندا:",
        "bold_sample": "گهري تحرير",
        "template-semiprotected": "(نيم تحفظيل)",
        "nocreatetext": "{{SITENAME}} نوان صفحا سرجڻ جي روڪَ ڪئي آهي.\nتوهان اڳي ئي موجود صفحن کي سنواري سگھو ٿا، يا [[Special:UserLogin|لاگ اِن ٿي يا نئون کاتو کولي سگھو ٿا]].",
        "recreate-moveddeleted-warn": "'''خبردار: توهان اهڙو صفحو نئين سر سرجي رهيا آهيو جيڪو اڳي ڊاٺو ويو آهي.'''\n\nبهتر ٿيندو ته توهان سوچي وٺو ته ڇا ان صفحي کي سنوارڻ بهتر ٿيندو.\nتوهآن جي سهوليت خاطر هتي ان صفحي جو ڊاٺ لاگ ميسر ڪجي ٿو:",
+       "duplicate-args-warning": "وارننگ: [[:$2]]کي [[:$1]] ڪال ڪري رهيو آهي، ساڻ هڪ کان وڌيڪ قدرن لاءِ ’$3‘ پيراميٽرس لاءِ. فقط آخري قدر مهيا ڪيل استعمال ڪيو ويندو.",
        "viewpagelogs": "هن صفحي جا لاگ ڏسو",
        "currentrev": "هاڻوڪو مسودو",
        "revisionasof": "$1 وارو پرت",
        "lineno": "سِٽَ $1:",
        "compareselectedversions": "چونڊيل پرت ڀيٽيو",
        "editundo": "اڻڪريو",
+       "searchresults": "ڳولا نتيجا",
+       "searchresults-title": "”$1“ لاءِ ڳولا نتيجا",
        "prevn": "پويان {{PLURAL:$1|$1}}",
        "nextn": "اڳيان {{PLURAL:$1|$1}}",
        "viewprevnext": "ڏسو ($1 {{int:pipe-separator}} $2) ($3)",
+       "search-result-size": "$1 ({{PLURAL:$2|لفظُ|$2 لفظَ}})",
        "preferences": "ترجيحات",
        "mypreferences": "منهنجون ترجيحات",
        "skin-preview": "پيش نگاهه",
        "minoreditletter": "م",
        "newpageletter": "ن",
        "boteditletter": "گ",
+       "rc-change-size-new": "$1 {{PLURAL:$1|بائيٽ|بائيٽس}} تبديليءَ کان پوءِ",
        "recentchangeslinked": "لاڳاپيل تبديليون",
        "recentchangeslinked-feed": "لاڳاپيل تبديليون",
        "recentchangeslinked-toolbox": "لاڳاپيل تبديليون",
        "upload": "فائيل چاڙهيو",
        "uploadbtn": "فائيل چاڙهيو",
        "uploadlogpage": "چاڙهه لاگ",
+       "upload-scripted-pi-callback": "ان فائيل کي اپلوڊ نه ٿو ڪري سگهي جنهن ۾ ايڪس ايم ايل اسٽائيل شيٽ جون پراسيسنگ هدايتون شامل هجن.",
+       "uploaded-script-svg": "اسڪرپٽ جوڳو ايليمينٽ ”$1” مليو آهي، اپلوڊ ٿيل ايس وي جي فائيل ۾.",
+       "uploaded-hostile-svg": "اپلوڊ ٿيل ايس وي جي فائيل جو غير محفوظ سي ايس ايس ۾ اسٽائيل ايلمينٽ مليو",
+       "uploaded-event-handler-on-svg": "واقعي جون هينڊل ڪندڙ وصفون \n<code>$1=\"$2\"</code> ايس وي جي فائيل ۾ اجازت نه آهي.",
+       "uploaded-href-attribute-svg": "Href خاصيتون \n<code>&lt;$1 $2=\"$3\"&gt;</code> نان لوڪل ٽارگيٽ سان جهڙوڪ ( http://, javascript:, وغيره) ايس وي جي فائيل ۾ اجازت مليل نه آهن",
+       "uploaded-href-unsafe-target-svg": "href جو غير محفوظ نشانو مليو آهي <code>&lt;$1 $2=\"$3\"&gt;</code> اپلوڊ ٿيل ايس وي جي فائيل ۾",
+       "uploaded-animate-svg": "”اينيميٽ“ ٽيگ ڳوليو  جيڪا ٿي سگهي ٿو href کي تبديل ڪري رهي هجي. \"form\" وصف استعمال ڪندي <code>&lt;$1 $2=\"$3\"&gt;</code> اپلوڊ ٿيل ايس وي جي فائيل ۾",
+       "uploaded-setting-event-handler-svg": "واقعي کي هينڊل ڪندڙ جي سيٽنگ جون وصفون بلاڪ ٿيل آهن. \n<code>&lt;$1 $2=\"$3\"&gt;</code> اپلوڊ ٿيل ايس وي جي فائيل ۾ مليو",
+       "uploaded-setting-href-svg": "\"set\"  ٽيگ کي \"href\" وصف استعمال ڪندي بنيادي عنصر کي بلاڪ ڪيو ويو آهي",
+       "uploaded-wrong-setting-svg": "\"set\" ٽيگ کي استعمال ڪندي رموٽ/ڊيٽا/اسڪرپٽ ٽارگيٽ کي ڪنهن وصف سان جوڙڻ کي بلاڪ ڪيو ويو آهي. \n<code>&lt;set to=\"$1\"&gt;</code>اپلوڊ ٿيل ايس وي جي فائيل ۾ مليو آهي.",
+       "uploaded-setting-handler-svg": "اهي ايس وي جي جيڪي ”هينڊل ڪندڙ“ وصفن کي رموٽ/ڊيٽا/اسڪرپٽ کي سيٽ ٿا ڪن، کي بلاڪ ڪيو ويو آهي.<code>$1=\"$2\"</code> مليو آهي اپلوڊ ٿيل ايس وي جي فائيل ۾.",
+       "uploaded-remote-url-svg": "ايس وي جي جيڪا سيٽ ڪري ٿي ڪنهن اسٽائيل وصف  رموٽ يو آر ايل سان  بلاڪ ٿيل آهي.\n <code>$1=\"$2\"</code> اپلوڊ ٿيل ايس وي جي فائيل ۾ مليو",
+       "uploaded-image-filter-svg": "هن يو آر ايل سان <code>&lt;$1 $2=\"$3\"&gt;</code> اميج فلٽر مليو آهي، اپلوڊ ٿيل ايس وي جي فائيل ۾،",
        "listfiles": "فائيل فهرست",
        "file-anchor-link": "فائيل",
        "filehist": "فائيل جي سوانح",
        "filehist-dimensions": "ماپَ",
        "filehist-filesize": "فائيل سائيز",
        "filehist-comment": "تاثرات",
-       "imagelinks": "ڳنڍڻا",
+       "imagelinks": "فائيل جو استعمال",
        "linkstoimage": "هن فائيل سان {{PLURAL:$1|هيٺيون صفحو ڳنڍيل آهي |$1 هيٺيان صفحا ڳنڍيل آهن}}:",
        "nolinkstoimage": "هن فائيل سان ڪو به صفحو ڳنڍيل ناهي.",
        "sharedupload": "هيءَ هڪ شراڪتي چاڙهه آهي، تنهنڪري ان کي ٻيون رٿائون به استعمال ڪري سگھن ٿيون.",
        "tooltip-pt-mycontris": "منهنجون ڀاڱيداريون",
        "tooltip-pt-login": "توهان کي همٿائجي ٿو ته توهان لاگ اِن ٿيو، بهرحال اهو لازمي ناهي.",
        "tooltip-pt-logout": "لاگ آئوٽ",
+       "tooltip-pt-createaccount": "توهان جي همٿ افزائي ڪئي وئي آهي ته هڪ کاتو کوليو ۽ لاگ ان ٿيو؛ جيتوڻيڪ، اهو ضروري نه آهي",
        "tooltip-ca-talk": "موادي صفحي تي بحث",
        "tooltip-ca-edit": "توهان هيءُ صفحو سنواري سگھو ٿا. مهرباني ڪري سانڍڻ کان اڳ پيش نگاهه جو اختيار استعمال ڪندا.",
        "tooltip-ca-addsection": "هن بحث تي تاثرات درج ڪرايو",
        "tooltip-ca-viewsource": "هيءُ صفحو تحفظيل آهي. توهان ان جو ڪوڊ ڏسي سگھو ٿا.",
+       "tooltip-ca-history": "هن صفحي جون گذريل نظرثانيون",
        "tooltip-ca-protect": "هيءُ صفحو تحفظيو",
        "tooltip-ca-delete": "هيءُ صفحو ڊاهيو",
        "tooltip-ca-move": "هيءُ صفحو چوريو",
        "tooltip-ca-watch": "هيءُ صفحو پنهنجي ٽيٽ فهرست ۾ شامل ڪريو",
        "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-t-contributions": "هن يُوزر جون ڀاڱيداريون ڏسو",
        "tooltip-t-emailuser": "هن يُوزر کي برق ٽپال اماڻيو",
        "tooltip-t-upload": "فائيل چاڙهيو",
        "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-compareselectedversions": "هن صفحي جن ٻن چونڊيل پرتن درميان تفاوت ڏسو.",
        "tooltip-watch": "هيءُ صفحو پنهنجي ٽيٽ فهرست ۾ شامل ڪريو",
        "anonymous": "{{SITENAME}} جا نامعلوم يوزرس",
+       "pageinfo-toolboxlink": "صفحي جي معلومات",
        "previousdiff": "← اڳوڻو تفاوت",
        "nextdiff": "نئون تفاوت -->",
        "file-info-size": "$1 × $2 عڪسلون، فائيل سائيز: $3، MIME ٽائيپ: $4",
        "file-nohires": "اڃا سنهو تحلل ميسر ناهي.",
        "svg-long-desc": "ايس وي جي فائيل، اٽڪل $1 × $2 عڪسلون، فائيل سائيز: $3",
        "show-big-image": "سنهو ترين تحلل",
+       "show-big-image-size": "$1*$2 پڪزلس",
        "newimages": "نون فائيلن جي گيلري",
        "noimages": "ڏسڻ لاءِ ڪجھه ناهي.",
        "bydate": "تاريخوار",
        "metadata": "اعدادِ اعداد",
        "metadata-expand": "توسيعي تفصيل ڏيکاريو",
        "metadata-collapse": "توسيعي تفصيل لڪايو",
+       "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-imagewidth": "ويڪر",
        "exif-imagelength": "اوچائي",
        "exif-bitspersample": "ٻٽڻيون في جُز",
        "watchlisttools-raw": "ڪچي ٽيٽ فهرست سنواريو",
        "version": "ورزن",
        "specialpages": "خاص صفحا",
-       "specialpages-group-users": "يوزرس ۽ حق"
+       "specialpages-group-users": "يوزرس ۽ حق",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|ٽيگ|ٽيگز}}]]: $2)",
+       "searchsuggest-search": "ڳوليو"
 }
index 27b1838..327f92e 100644 (file)
@@ -46,6 +46,7 @@
        "tog-watchdefault": "මම සංස්කරණය කරන පිටු හා ගොනු මාගේ මුර ලැයිස්තුවට එක් කරන්න",
        "tog-watchmoves": "මම ගෙනයන පිටු හා ගොනු මාගේ මුර ලැයිස්තුවට එක් කරන්න",
        "tog-watchdeletion": "මම මකා දමන පිටු සහ ගොනු මාගේ මුර ලැයිස්තුවට එක් කරන්න",
+       "tog-watchrollback": "මම මගේ මුර-ලැයිස්තුවෙහි කිරීමට වරදක්ද සිදු එහිදී පිටු එකතු කරන්න",
        "tog-minordefault": "සියළු සංස්කරණයන් පෙර-නිමියෙන් සුළු-සංස්කරණ ලෙස සලකුණු කරන්න",
        "tog-previewontop": "සංස්කරණ කොටුවට ඉදිරියෙන් පෙර-දසුන පෙන්වන්න",
        "tog-previewonfirst": "පළමු සංස්කරණයෙහිදී පෙර-දසුන පෙන්වන්න",
        "thursday": "බ්‍රහස්පතින්දා",
        "friday": "සිකුරාදා",
        "saturday": "සෙනසුරාදා",
-       "sun": "ඉරි:",
-       "mon": "සඳු:",
-       "tue": "අඟ:",
-       "wed": "බදා:",
+       "sun": "ඉරිදා",
+       "mon": "සඳුදා",
+       "tue": "අඟ",
+       "wed": "බදාදා",
        "thu": "බ්‍රහ:",
        "fri": "සිකු:",
        "sat": "සෙන:",
        "july": "ජූලි",
        "august": "අගෝස්තු",
        "september": "සැප්තැම්බර්",
-       "october": "à¶\94à¶\9aà·\8aතà·\9cමà·\8aබර්",
+       "october": "à¶\94à¶\9aà·\8aතà·\9dබර්",
        "november": "නොවැම්බර්",
        "december": "දෙසැම්බර්",
        "january-gen": "ජනවාරි",
        "december-gen": "දෙසැම්බර්",
        "jan": "ජන",
        "feb": "පෙබ",
-       "mar": "මාර්",
+       "mar": "මාර්තු",
        "apr": "අප්‍රේ",
        "may": "මැයි",
        "jun": "ජූනි",
        "pagecategories": "{{PLURAL:$1|ප්‍රවර්ගය|ප්‍රවර්ග}}",
        "category_header": "\"$1\" ප්‍රවර්ගයට අයත් පිටු",
        "subcategories": "උපප්‍රවර්ග",
-       "category-media-header": "\"$1\" à¶´à·\8aâ\80\8dරà·\80රà·\8aà¶\9cයට à¶\85යතà·\8a මාධ්‍ය",
+       "category-media-header": "\"$1\" à¶´à·\8aâ\80\8dරà·\80රà·\8aà¶\9cයà·\9a à¶\87තà·\92 මාධ්‍ය",
        "category-empty": "''දැනට මෙම ප්‍රවර්ගය පිටු හෝ මාධ්‍ය හෝ නොදරයි.''",
        "hidden-categories": "{{PLURAL:$1|සැඟවුනු ප්‍රවර්ගය|සැඟවුනු ප්‍රවර්ග}}",
        "hidden-category-category": "සැඟවුනු ප්‍රවර්ග",
        "about": "පිළිබඳ",
        "article": "පටුන",
        "newwindow": "(නව කවුළුවක විවෘතවේ)",
-       "cancel": "අත් හරින්න",
+       "cancel": "අත්හරින්න",
        "moredotdotdot": "තවත්...",
        "morenotlisted": "තවත් දේ ලැයිස්තුගත කොට නොමැත...",
        "mypage": "පිටුව",
        "print": "මුද්‍රණය කරන්න",
        "view": "දසුන",
        "view-foreign": "$1 බලන්න",
-       "edit": "සංස්කරණය",
+       "edit": "සංස්කරණය කරන්න",
        "edit-local": "ස්ථානික විස්තරය සංස්කරනය කරන්න",
        "create": "තනන්න",
        "create-local": "ස්ථානීය විස්තරයක් එක් කරන්න",
        "personaltools": "පුද්ගලික මෙවලම්",
        "articlepage": "අන්තර්ගත පිටුව නරඹන්න",
        "talk": "සාකච්ඡාව",
-       "views": "දà·\98à·\82à·\8aටà·\92",
+       "views": "දà·\83à·\94නà·\8a",
        "toolbox": "මෙවලම්",
        "userpage": "පරිශීලක පිටුව නරඹන්න",
        "projectpage": "ව්‍යාපෘති පිටුව නරඹන්න",
        "otherlanguages": "වෙනත් භාෂා වලින්",
        "redirectedfrom": "($1 වෙතින් යළි-යොමු කරන ලදි)",
        "redirectpagesub": "පිටුව යළි-යොමු කරන්න",
-       "redirectto": "යළියොමුව:",
+       "redirectto": "à·\80à·\99ත à¶ºà·\85à·\92යà·\9cමà·\94à·\80:",
        "lastmodifiedat": "මෙම පිටුව අවසන් වරට වෙනස් කරන ලද්දේ $1 දිනදී, $2 වේලාවෙහිදීය.",
        "viewcount": "මෙම පිටුවට {{PLURAL:$1|එක් වරක්|$1 වරක්}} පිවිස ඇත.",
        "protectedpage": "ආරක්ෂිත පිටුව",
        "pool-timeout": "අගුල සඳහා බලාපොරොත්තුවෙන් සිටීම කල් ඉකුත්වනලදී",
        "pool-queuefull": "පොරොත්තු ලේඛනය පිරී ඇත",
        "pool-errorunknown": "හඳුනා නොගත් දෝෂය",
+       "pool-servererror": "මේ හැමදෙයක්ම ඒ ප්රති සේවා ($1) ලබාගත නොහැක.",
        "poolcounter-usage-error": "පරිශීලන දෝෂය: $1",
        "aboutsite": "{{SITENAME}} පිළිබඳ",
        "aboutpage": "Project:පිළිබඳ",
        "copyright": " අන්ලෙසකින් සඳහන්කර නැති සෑම විටෙකම අන්තර්ගතය $1 යටතේ ඇත.",
-       "copyrightpage": "{{ns:project}}:à¶\9aරà·\8aතà·\98-හිමිකම්",
+       "copyrightpage": "{{ns:project}}:පà·\8aâ\80\8dරà¶\9aà·\8fà·\81න හිමිකම්",
        "currentevents": "කාලීන සිදුවීම්",
        "currentevents-url": "Project:කාලීන සිදුවීම්",
        "disclaimers": "වියාචනයන්",
        "disclaimerpage": "Project:පොදු වියාචන",
-       "edithelp": "සංස්කරණ උදවු",
+       "edithelp": "සංස්කරණයට උදවු",
+       "helppage-top-gethelp": "උදව්",
        "mainpage": "මුල් පිටුව",
        "mainpage-description": "මුල් පිටුව",
        "policy-url": "Project:ප්‍රතිපත්තිය",
        "newmessageslinkplural": "{{PLURAL:$1|නව පණිවුඩයක්|999=nනව පණිවුඩ}}",
        "newmessagesdifflinkplural": "අවසන් {{PLURAL:$1|වෙනස්වීම|999=වෙනස්වීම්}}",
        "youhavenewmessagesmulti": "ඔබ හට $1 හි නව පණිවුඩ ඇත",
-       "editsection": "සංස්කරණය",
+       "editsection": "සංස්කරණය කරන්න",
        "editold": "සංස්කරණය",
        "viewsourceold": "මූලාශ්‍රය නරඹන්න",
        "editlink": "සංස්කරණය",
        "feed-invalid": "දායකත්ව පෝෂකයෙහි ශෛලිය අනීතිකය.",
        "feed-unavailable": "සමග්‍රහ පෝෂකයන් නොමැත",
        "site-rss-feed": "$1 RSS පෝෂකය",
-       "site-atom-feed": "$1 අටොම් පෝෂකය",
+       "site-atom-feed": "$1 Atom පෝෂකය",
        "page-rss-feed": "\"$1\" ආර්එස්එස් පෝෂකය",
-       "page-atom-feed": "\"$1\" අටොම් පෝෂකය",
+       "page-atom-feed": "\"$1\" Atom පෝෂකය",
        "feed-atom": "Atom",
        "feed-rss": "RSS",
        "red-link-title": "$1 (පිටුව නොපවතියි)",
        "readonly_lag": "ගෝල(slave) දත්තසංචිත සර්වරයන්හි ක්‍රියාශීලිත්වය  ගුරු(master) සර්වර මට්ටමට පත් වන තෙක් දත්තසංචිතය ස්වයංක්‍රීව අගළුලා ඇත",
        "internalerror": "අභ්‍යන්තර දෝෂය",
        "internalerror_info": "අභ්‍යන්තර දෝෂය: $1",
+       "internalerror-fatal-exception": "වර්ගය මාරක හැර, \"$1\"",
        "filecopyerror": "\"$1\" ගොනුව \"$2\" වෙත පිටපත් කිරීමට නොහැකි විය.",
        "filerenameerror": "\"$1\" ගොනුව \"$2\" බවට යළි-නම්-කිරීම සිදු කල නොහැකි විය.",
        "filedeleteerror": "\"$1\" ගොනුව මකා-දැමිය නොහැකි විය.",
        "cannotdelete": "\"$1\" පිටුව හෝ ගොනුව හෝ මකා දැමිය නොහැකි විය.\nඅනෙකෙකු විසින් දැනටමත් ‍මකා දැමීම සිදු කර ඇතිවා විය හැක.",
        "cannotdelete-title": "\"$1\" පිටුව මැකිය නොහැක",
        "delete-hook-aborted": "හසුර මගින් මකාදැමුම රෝධනය කෙරිණි.\nඑයට පැහැදිලි කිරීමක් ලබා නොදුනි.",
+       "no-null-revision": "\"$1\" පිටුව සඳහා නව ශුන්ය සංශෝධනය නිර්මාණය කළ නොහැකි විය",
        "badtitle": "නුසුදුසු ශීර්ෂයක්",
        "badtitletext": "අයැද ඇති පිටු ශීර්ෂය අනීතික, හිස් හෝ වැරදි ලෙස සබැඳි අන්තර්-භාෂා/අන්තර්-විකී ශීර්ෂයකි.\nශීර්ෂයන්හි භාවිතා කල නොහැකි අක්ෂර එකක් හෝ කිහිපයක් හෝ එහි අඩංගු වී ඇතිවා විය හැක.",
+       "title-invalid-empty": "අයැද ඇති පිටු ශීර්ෂය හිස් හෝ ආශ්රිත නාම අවකාශය ටැග පෙරහන: නම පමණක් අඩංගු වේ.",
+       "title-invalid-utf8": "අයැද ඇති පිටු ශීර්ෂය වලංගු නොවන UTF-8 වෙත අනුක්රමය අඩංගු වේ.",
+       "title-invalid-interwiki": "මාතෘකාව ලෙස අන්තර්විකී සබැඳිය, අඩංගු වේ.",
+       "title-invalid-talk-namespace": "අයැද ඇති පිටු ශීර්ෂය නොපවතියි හැකි සාකච්ඡා පිටුව වේ.",
+       "title-invalid-characters": "අයැද ඇති පිටු ශීර්ෂය අනීතික අක්ෂර: \"$1\".",
+       "title-invalid-relative": "මාතෘකාව සාපේක්ෂ මාර්ගය වේ. පරිශීලක බ්රවුසරය මගින් මෙහෙයවන විට ඔවුන් බොහෝ විට ළඟාවිය නොහැකි වනු ඇත නිසා සාපේක්ෂ ඇතිවා (./, ../), වලංගු නොවේ.",
+       "title-invalid-magic-tilde": "අයැද ඇති පිටු ශීර්ෂය අනීතික මැජික් tilde අනුපිළිවෙල (<nowiki>~~~</nowiki>) අඩංගු වේ.",
+       "title-invalid-too-long": "අයැද ඇති පිටු ශීර්ෂය දිග වැඩිය. එය තවදුරටත් UTF-8 කේතනාංකයෙන් {{PLURAL:$1|බයිට|බයිට්}} $1 වඩා විය යුතුය.",
+       "title-invalid-leading-colon": "අයැද ඇති පිටු ශීර්ෂය ආරම්භයේ දී වලංගු නොවන බඩවැල අඩංගු වේ.",
        "perfcached": "පහත දැක්වෙන දත්ත පූර්වාපේක්‍ෂිතව සංචිත කෙරී ඇති (කෑෂ් කෙරී ඇති) බැවින් ඒවා යවත්කාලීන නොවීමට ඉඩ ඇත. {{PLURAL:$1|එක් ප්‍රතිඵලයකට|ප්‍රතිඵල $1 කට}} උපරිමයකට යටත්ව පූර්වාපේක්‍ෂිතව සංචිත කෙරී ඇත.",
        "perfcachedts": "පහත දත්ත පූර්වාපේක්‍ෂීව සංචිත කෙරී ඇති (කෑෂ් කෙරී ඇති) අතර, අවසන් වරට යාවත්කාලීන කර ඇත්තේ  $1 දීය. {{PLURAL:$4|එක් ප්‍රතිඵලයක|ප්‍රතිඵල $4 ක}} උපරිමයකට යටත්ව පූර්වාපේක්‍ෂීව සංචිත කෙරී ඇත.",
        "querypage-no-updates": "මෙම පිටුව සඳහා යාවත්කාල කිරීම් දැනට අක්‍රීය කොට ඇත.\nදැනට මෙහිදී දත්ත පුනස්ථාපනය සිදු නොවේ.",
        "viewyourtext": "'''ඔබගේ සංස්කරණ''' නැරඹීම සහ මූලාශ්‍රය පිටපත් කිරීම ඔබට කල හැක:",
        "protectedinterface": "මෙම පිටුව විසින්, මෘදුකාංගය සඳහා අතුරුමුව පෙළ සපයන අතර එබැවින් අපයෙදුම වැලැක්වීම සඳහා එය අවුරා ඇත.",
        "editinginterface": "<strong>අවවාදයයි:</strong> මෘදුකාංගයට අතුරුමුව පෙළ සැපයීමට භාවිතා වන පිටුවක් ඔබ විසින් සංස්කරණය කරනු ලබයි.\nමෙම පිටුවට සිදු කරන වෙනස්වීම් විසින් අනෙකුත් පරිශීලකයන්ගේ පරිශීලක අතුරුමුවෙහි පෙනුමට බලපෑම් එල්ල කෙරෙනු ඇත.",
+       "translateinterface": "සියලු විකියන් පරිවර්තන සඳහා එකතු කිරීමට හෝ වෙනස් කිරීමට, [//translatewiki.net/ translatewiki.net], මීඩියාවිකි ප්රාදේශීයකරන ව්යාපෘතිය භාවිතා කරන්න.",
        "cascadeprotected": "\"තීරු දර්ශන\" විකල්පය සක්‍රීයනය කොට එමගින් ආරක්‍ෂණය කල පහත දැක්වෙන {{PLURAL:$1|පිටුව|පිටු}} අඩංගු කර ඇති බැවින්, මෙම පිටුව සංස්කරණය කිරීමෙන් වලකා ඇත:\n$2",
        "namespaceprotected": "'''$1''' නාමඅවකාශයෙහි පිටු සංස්කරණය කිරීමට ඔබහට අවසර නොමැත.",
        "customcssprotected": "මෙම CSS පිටුව සංස්කරණය කිරීමට ඔබට අවසර නොමැත්තේ එහි අනෙකුත් පරිශීලකයෙකුගේ පුද්ගලික පරිස්ථිතීන් අඩංගු බැවිනි.",
        "ns-specialprotected": "විශේෂ පිටු සංස්කරණය කිරීම සිදු කල නොහැක.",
        "titleprotected": "මෙම ශීර්ෂ-නාමය තැනීම  [[User:$1|$1]] විසින් වාරණය කොට ඇත.\nමේ සඳහා  ''$2''  හේතුව දක්වා ඇත.",
        "filereadonlyerror": "\"$2\"දත්ත ගොනුවේ කියවීමට පමණක් ඇති ආකාරයට ඇති නිසා \"$1\" ගොනුව සංස්කරණය කල නොහැක.\n\nමෙය අගුලු දැමූ පරිගණක පරිපාලක \"$3\" හේතුව ඉදිරිපත්කර ඇත.",
+       "invalidtitle-knownnamespace": "වලංගු නොවන ආශ්රිත නාම අවකාශය ටැග පෙරහන හිමිකම් \"$2\" හා පෙළ \"$3\"",
+       "invalidtitle-unknownnamespace": "නොදන්නා ආශ්රිත නාම අවකාශය ටැග පෙරහන අංකය $1 හා පෙළ \"$2\" සමඟ වලංගු නොවන මාතෘකාවක්",
        "exception-nologin": "ප්‍රවිෂ්ට වී නොමැත",
        "exception-nologin-text": "මෙම පිටුවට ප්‍රවේශ වීමට හෝ ඉල්ලුම් කරන ලද ක්‍රියාව සිදුකිරීම සඳහා කරුණාකර ඔබගේ ගිණුමට ප්‍රවේශ වන්න.",
+       "exception-nologin-text-manual": "මෙම පිටුව හෝ ක්රියාන්විත වෙත පිවිසිය හැකි බව $1 කරන්න.",
        "virus-badscanner": "අයෝග්‍ය වික්‍යාසයකි: අඥාත වයිරස සුපිරික්සකයකි: ''$1''",
        "virus-scanfailed": "පරිලෝකනය අසාර්ථක විය (කේතය $1)",
        "virus-unknownscanner": "නොහඳුනන ප්‍රතිවයිරසයක්:",
        "welcomeuser": "ආයුබෝවන්, $1!",
        "welcomecreation-msg": "ඔබගේ ගිණුම තනා ඇත.\nඔබගේ [[Special:Preferences|{{SITENAME}} අභිරුචීන්]] නෙස් කිරීමට අමතක නොකරන්න.",
        "yourname": "පරිශීලක නාමය:",
-       "userlogin-yourname": "පරà·\92à·\81à·\93ලà¶\9a à¶±à¶¸",
-       "userlogin-yourname-ph": "à¶\94බà¶\9cà·\9a à¶´à¶»à·\92à·\81à·\93ලà¶\9a à¶±à¶¸ ඇතුළු කරන්න",
+       "userlogin-yourname": "පරà·\92à·\81à·\93ලà¶\9a à¶±à·\8fමය",
+       "userlogin-yourname-ph": "à¶\94බà¶\9cà·\9a à¶´à¶»à·\92à·\81à·\93ලà¶\9a à¶±à·\8fමය ඇතුළු කරන්න",
        "createacct-another-username-ph": "ඔබගේ පරිශීලක නම ඇතුළු කරන්න",
        "yourpassword": "මුරපදය:",
-       "userlogin-yourpassword": "මුර පදය",
-       "userlogin-yourpassword-ph": "ඔබගේ මුර පදය ඇතුළු කරන්න",
-       "createacct-yourpassword-ph": "මුර පදයක් ඇතුළු කරන්න",
+       "userlogin-yourpassword": "මුරපදය",
+       "userlogin-yourpassword-ph": "ඔබගේ මුරපදය ඇතුළු කරන්න",
+       "createacct-yourpassword-ph": "මුරපදයක් ඇතුළු කරන්න",
        "yourpasswordagain": "මුරපදය යළි ඇතුළු කරන්න:",
-       "createacct-yourpasswordagain": "මුර පදය සනාථ කරන්න",
-       "createacct-yourpasswordagain-ph": "මුර පදය යළි ඇතුළු කරන්න",
+       "createacct-yourpasswordagain": "මුරපදය සනාථ කරන්න",
+       "createacct-yourpasswordagain-ph": "මුරපදය යළි ඇතුළු කරන්න",
        "remembermypassword": "මාගේ පිවිසීම මෙම ගවේෂක මතකයෙහි (උපරිම ලෙස {{PLURAL:$1|දින|දින}}) $1 ක් මතක තබාගන්න",
-       "userlogin-remembermypassword": "මà·\8f à¶´à·\8aâ\80\8dරà·\80à·\92à·\82à·\8aටයà·\99à·\84à·\92 තබන්න",
+       "userlogin-remembermypassword": "මà·\8f à¶´à·\8aâ\80\8dරà·\80à·\92à·\83à·\93මà·\8a à¶­à¶­à·\8aà·\80යà·\9aම තබන්න",
        "userlogin-signwithsecure": "ආරක්‍ෂිත සබඳතාව භාවිතා කරන්න",
        "yourdomainname": "ඔබගේ වසම:",
        "password-change-forbidden": "ඔබට මෙම විකියෙහි මුරපද වෙනස් කල නොහැක.",
        "gotaccountlink": "පිවිසෙන්න",
        "userlogin-resetlink": "ඔබේ පිවිසුම් තොරතුරු අමතකද?",
        "userlogin-resetpassword-link": "ඔබේ මුරපදය නැති වුනාද?",
-       "userlogin-helplink2": "à¶\9cà·\92ණà·\94ම à·\80à·\99ත à¶´à·\8aâ\80\8dරà·\80à·\9aà·\81 à·\80ීම සඳහා උදවු",
+       "userlogin-helplink2": "à¶\9cà·\92ණà·\94ම à·\80à·\99ත à¶´à·\92à·\80à·\92à·\83ීම සඳහා උදවු",
        "userlogin-loggedin": "ඔබ දැනටමත් {{GENDER:$1|}} ලෙස පිවිසී ඇත.\nනව පරිශීලකයෙකු ලෙස ඇතුළු වීමට පහත ආකෘතිය පුරවන්න.",
        "userlogin-createanother": "තවත් ගිණුමක් ආරම්භ කරන්න",
        "createacct-emailrequired": "වි-තැපෑල ලිපිනය",
-       "createacct-emailoptional": "වි-තැපෑල ලිපිනය (විකල්ප)",
-       "createacct-email-ph": "ඔබගේ වි-තැපෑල ලිපිනය ඇතුළු කරන්න",
+       "createacct-emailoptional": "විද්‍යුත් ලිපිනය (අනිවාර්ය නැත)",
+       "createacct-email-ph": "ඔබගේ විද්‍යුත් ලිපිනය ඇතුළු කරන්න",
        "createacct-another-email-ph": "ඊ මේල් ලිපිනය ඇතුළත් කරන්න.",
        "createaccountmail": "තාවකාලික අහුඹු මුර පදයක් භාවිතා කර එය පහත දක්වා ඇති විද්යුත් තැපැල් ලිපිනයට යවන්න",
        "createacct-realname": "නියම නම (වෛකල්පීය)",
        "createaccountreason": "හේතුව:",
        "createacct-reason": "හේතුව",
        "createacct-reason-ph": "ඔබ තවත් ගිණුමක් තනන්නේ කුමක් නිසාද",
-       "createacct-captcha": "ආරක්ෂක පරික්ෂාව",
-       "createacct-imgcaptcha-ph": "à¶\89à·\84තà·\92නà·\8a à¶¯à·\90à¶\9aà·\8aà·\80ෙන වචනය ඇතුළත් කරන්න",
+       "createacct-captcha": "ආරක්‍ෂක පරික්‍ෂාව",
+       "createacct-imgcaptcha-ph": "à¶\89à·\84තà·\92නà·\8a à¶´à·\99නෙන වචනය ඇතුළත් කරන්න",
        "createacct-submit": "ඔබේ ගිණුම තනන්න",
        "createacct-another-submit": "තවත් ගිණුමක් ආරම්භ කරන්න",
        "createacct-benefit-heading": "{{වෙබ් අඩවි නම}} ඔබ වැනි අයෙක් විසින් නිමවා ඇත",
        "wrongpassword": "ඇතුලත් කල මුරපදයක් වැරදියි.\nනැවත උත්සාහකරන්න.",
        "wrongpasswordempty": "මුරපදයක් ඇතුලත් කර නැත\nනැවත උත්සාහ කරන්න.",
        "passwordtooshort": "මුරපදය අඩුම වශයෙන් {{PLURAL:$1|එක් අක්ෂරයක්|අක්ෂර $1 ක්}} සහිත විය යුතුය.",
+       "passwordtoolong": "{{PLURAL:$1|අනුලකුණු 1|අනුලකුණු $1}} කට වඩා මුරපදය දිගු විය නොහැකිය.",
        "password-name-match": "ඔබගේ මුරපදය, ඔබගේ පරිශීලක නාමයෙන් වෙනස් එකක් විය යුතුය.",
        "password-login-forbidden": "මෙම පරිශීලක නාමයේ හා මුරපදයේ භාවිතය වලක්වා ඇත.",
        "mailmypassword": "මුරපදය ප්‍රත්‍යාරම්භ කරන්න",
        "changeemail-submit": "විද්‍යුත් තැපෑල  වෙනස් කරන්න",
        "changeemail-throttled": "ඔබ විසින් මෑතදී  පමණට වඩා වාර ගණනක් පිවිසීමෙහි උත්සාහයන් දරා ඇත.\nයළි උත්සාහ කිරීමට පෙර $1 වේලාවක් රැඳී සිටින්න.",
        "resettokens": "සංකේත නැවත සකසන්න",
+       "resettokens-text": "ඔබ මෙතනයි ඔබගේ ගිණුම හා සම්බන්ධ ඇතැම් පෞද්ගලික දත්ත වෙත ප්රවේශ ඉඩ දෙන ටෝකන් පත් සැකසිය හැක. \n\nඔබ වැරදී කෙනෙකු සමග හෝ ඔබගේ ගිණුම වෙනස් කර තිබේ නම්, ඔවුන් හවුල් නම් ඔබ එය කළ යුත්තේ.",
+       "resettokens-no-tokens": "නැවත සකස් කිරීමට කිසිදු ටෝකන් පත් වේ.",
        "resettokens-legend": "සංකේත නැවත සකසන්න",
        "resettokens-tokens": "සංකේත:",
        "resettokens-token-label": "$1 (පවතින අගය: $2)",
-       "bold_sample": "තදකුරු පෙළ",
-       "bold_tip": "තදකුරු පෙළ",
-       "italic_sample": "ඇලකුරු පෙළ",
-       "italic_tip": "ඇලකුරු පෙළ",
+       "resettokens-watchlist-token": "වෙබ් සංග්රහය (Atom/RSS) සඳහා සංකේත [[Special:Watchlist|ඔබගේ මුර-ලැයිස්තුවෙහි පිටු වෙනස්කම්]]",
+       "resettokens-done": "ටෝකන් පත් යළි පිහිටුවන්න.",
+       "resettokens-resetbutton": "තෝරාගත් ටෝකන් පත් යළි පිහිටුවන්න",
+       "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": "à¶\86à¶\9aà·\98තà·\92à¶\9aරණය-නà·\9cà¶\9aල à¶´à·\99à·\85 à¶¸à·\99à·\84à·\92 à¶»à·\94à·\80න්න",
+       "headline_tip": "2වන මට්ටමේ සිරස්තලය",
+       "nowiki_sample": "à¶\86à¶\9aà·\98තà·\92à¶\9aරණය-නà·\9cà¶\9aල à¶´à·\99à·\85 à¶¸à·\99à·\84à·\92 à¶\87තà·\94à·\85à·\94à¶\9aරන්න",
        "nowiki_tip": "විකි ආකෘතිකරණය නොසලකාහරින්න",
        "image_sample": "නිදසුන.jpg",
        "image_tip": "කා වැද්දූ ගොනුව",
        "media_sample": "නිදසුන.ogg",
        "media_tip": "ගොනු සබැඳිය",
-       "sig_tip": "වේලා-මුද්‍රාව හා සමග ඔබගේ විද්‍යුත් අත්සන",
+       "sig_tip": "වේලා මුද්‍රාව හා සමග ඔබගේ විද්‍යුත් අත්සන",
        "hr_tip": "තිරස් පේළිය (අවම වශයෙන් භාවිතා කරන්න)",
        "summary": "සාරාංශය:",
        "subject": "විෂයය/සිරස් තලය:",
        "preview": "පෙරදසුන",
        "showpreview": "පෙරදසුන පෙන්වන්න",
        "showdiff": "වෙනස්කිරීම් පෙන්වන්න",
-       "anoneditwarning": "<strong>අවවාදයයි:</strong> ඔබ පරිශීලකයෙකු වශයෙන් පද්ධතියට ප්‍රවිෂ්ට වී නොමැත.\nඔබගේ අයිපී යොමුව මෙම පිටුවෙහි සංස්කරණ ඉතිහාසයෙහි වාර්තාගත වෙනු ඇත\nඔබ <strong>[$1 පිවිසීම]</strong> හෝ <strong>[$2 ගිණුමක් තැනීම]</strong> කලහොත්, ඔබගේ සංස්කරණයන් වෙනත් ප්‍රතිලාභ සමග, ඔබගේ පරිශීලක නාමය ඉදිරියේ දැක්වෙනු ඇත.",
+       "blankarticle": "<Strong>අවවාදයයි: </strong> ඔබ නිර්මාණය කරන පිටුව හිස් වේ. ඔබ ක්ලික් නම් \"{{int:savearticle}}\" නැවතත්, පිටුව කවර හෝ අන්තර්ගතයක් නොමැතිව නිර්මාණය කරනු ඇත.",
+       "anoneditwarning": "<strong>අවවාදයයි:</strong> ඔබ පරිශීලකයෙකු වශයෙන් පද්ධතියට පිවිස නැත.\nඔබගේ IP යොමුව මෙම පිටුවෙහි සංස්කරණ ඉතිහාසයෙහි වාර්තාගත වෙනු ඇත.\nඔබ <strong>[$1 පිවිසීම]</strong> හෝ <strong>[$2 ගිණුමක් තැනීම]</strong> කලහොත්, ඔබගේ සංස්කරණ ඔබගේ පරිශීලක නමින් දැක්වීම සහ වෙනත් ප්‍රතිලාභ ලැබෙනු ඇත.",
        "anonpreviewwarning": "අවවාදයයි: ඔබ පරිශීලකයෙකු වශයෙන් පද්ධතියට ප්‍රවිෂ්ට වී නොමැත. එමනිසා මෙම පිටුවෙහි සංස්කරණ ඉතිහාසයෙහි, ඔබගේ අන්තර්ජාල ලිපිනය සටහන් කරගැනීමට සිදුවනු ඇත.",
        "missingsummary": "'''සිහිගැන්වීමයි:''' ඔබ විසින් සංස්කරණ සාරාංශයක් සපයා නොමැත.\nඔබ නැවතත් සුරැකීම ක්ලික් කලහොත්, ඔබගේ සංස්කරණය එවැන්නක් විරහිතවම සුරැකෙනු ඇත.",
+       "selfredirect": "<Strong>අවවාදයයි:</strong> ඔබ තමන් වෙත මෙම පිටුව හරවා යවයි ඇත. \nඔබ යළි-යොමුවීම් සඳහා වැරදි ඉලක්කය නිශ්චිතව දක්වා ඇති විය හැක, හෝ ඔබ වැරදි පිටුව සංස්කරණය කල හැක. \nඔබ ක්ලික් නම් \"{{int:savearticle}}\" නැවතත්, යළි-යොමුවීම් කෙසේ හෝ නිර්මාණය කරනු ඇත.",
        "missingcommenttext": "කරුණාකර පහතින් පරිකථනයක් ඇතුළු කරන්න.",
        "missingcommentheader": "'''සිහිගැන්වීමයි:''' මෙම පරිකථනය සඳහා ඔබ විසින් විෂයයක්/සිරස්තලයක් සපයා නොමැත.\nඔබ නැවතත් \"{{int:savearticle}}\" ක්ලික් කලහොත්, ඔබගේ සංස්කරණය එවැන්නක් විරහිතවම සුරැකෙනු ඇත.",
        "summary-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ඔබගේ වත්මන් අන්තර්ජාල ලිපිනය  $3 වන අතර, වාරණ අනන්‍යතාවය #$5 වේ.\nඔබ විසින් සිදු කරන ඕනෑම විමසුමකදී ඉහත සියළු විස්තර අඩංගු කරන්න.",
        "autoblockedtext": "$1 විසින් වාරණයට ලක්වූ වෙනත් පරිශීලකයෙකු විසින් භාවිත කල බැවින්  ඔබගේ අන්තර්ජාල ලිපිනය ස්වයංක්‍රීය ලෙස වාරණයට ලක්ව ඇත.\nමේ සඳහා දී ඇති හේතුව පහත වේ:\n\n:''$2''\n\n* වාරණයෙහි ඇරඹුම: $8\n* වාරණයයෙහි අවසානය: $6\n* අදහස් කරන ලද  වාරණ-ලාභී: $7\n\nවාරණය පිළිබඳ සංවාදයකට එළඹීමෙනු වස්, $1 හෝ  වෙනත් [[{{MediaWiki:Grouppage-sysop}}|පරිපාලකයෙකු]] හෝ සම්බන්ධ කරගැනීමට ඔබ හට හැකිය.\n\nඔබගේ  [[Special:Preferences|ගිණුම් අභිරුචි]] වල, වලංගු විද්‍යුත්-තැපැල් ලිපිනයක් නිරූපනය කොට  ඇති නම් හා ඔබ විසින් එය භාවිත කිරීම වාරණය කොට නොමැති නම් මිස,  'මෙම පරිශීලකයාට විද්‍යුත්-තැපෑලක් යවන්න' යන අංගය ඔබ විසින් භාවිතා කල නොහැකිය.\n\nඔබගේ වත්මන් අන්තර්ජාල ලිපිනය  $3 වන අතර, වාරණ අනන්‍යතාවය #$5 වේ.\nඔබ විසින් සිදු කරන ඕනෑම විමසුමකදී ඉහත සියළු විස්තර අඩංගු කරන්න.",
        "newarticle": "(නව)",
        "newarticletext": "බැඳියක් ඔස්සේ පැමිණ ඔබ පිවිස ඇත්තේ දැනට නොපවතින පිටුවකටයි.\nමෙම ලිපිය තැනීමට අවශ්‍ය නම්, පහත ඇති කොටුව තුල අකුරු ලිවීම අරඹන්න (වැඩිදුර තොරතුරු සඳහා [$1 උදවු පිටුව] බලන්න).\nඔබ මෙහි පිවිස ඇත්තේ අත්වැරැද්දකින් නම්, ඔබගේ ගවේෂකයෙහි '''ආපසු''' බොත්තම ඔබන්න.",
        "anontalkpagetext": "----''මෙම සංවාද පිටුව අයත් වන්නේ තවමත් ගිණුමක් තනා නැති හෝ එසේ කොට එනමුදු එය භාවිතා නොකරන හෝ නිර්නාමික පරිශීලකයෙකුටය.\nඑබැවින්, ඔහු/ඇය හැඳින්වීමට සංඛ්‍යාත්මක IP ලිපිනය භාවිතා කිරීමට අප හට සිදුවේ.\nපරිශීලකයන් කිහිප දෙනෙකු විසින් මෙවැනි IP ලිපිනයක් හවුලේ පරිහරණය කරනවා විය හැක.\nඔබ නිර්නාමික පරිශීලකයෙකු නම් හා ඔබ පිළිබඳ අනනුකූල පරිකථනයන් සිදුවෙන බවක් ඔබට හැ‍ඟේ නම්, අනෙකුත් නිර්නාමික පරිශීලකයන් හා සමග  මෙවැනි සංකූලතා ඇතිවීම වලක්වනු වස්,  කරුණාකර  [[Special:UserLogin/signup|ගිණුමක් තැනීමට]] හෝ [[Special:UserLogin|ප්‍රවිෂ්ට වීමට]]  කාරුණික වන්න.''",
-       "noarticletext": "දැනට මෙම පිටුවෙහි කිසිදු පෙළක් නොමැත.\nඅනෙකුත් පිටුවල  [[Special:Search/{{PAGENAME}}|මෙම පිටු ශීර්ෂය සඳහා ගවේශනය කිරීම]] හෝ,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} අදාළ ලඝු-සටහන් සඳහා ගවේෂණය කිරීම],\nහෝ [{{fullurl:{{FULLPAGENAME}}|action=edit}} මෙම පිටුව සංස්කරණය කිරීම] හෝ ඔබ විසින් සිදු කල හැක</span>.",
+       "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මෙය සාමාන්යයෙන් මකා දැමූ පිටුවක ඉතිහාසය සබැඳියන් යල් පැනගිය පහත සඳහන් හේතු වේ [{{fullurl:{{#Special:Log}}/මකන්න|page={{FULLPAGENAMEE}}}} මැකීමේ ලොගය].",
        "userpage-userdoesnotexist": "\"<nowiki>$1</nowiki>\" යන පරිශීලක ගිණුම ලේඛනගත කොට නොමැත.\nඔබ හට මෙම පිටුව තැනීමට/සංස්කරණය කිරීමට ඇවැසිද යන බව විමසා බලන්න.",
        "userpage-userdoesnotexist-view": "\"$1\" පරිශීලක ගිණුම ලියාපදිංචි කර නොමැත.",
        "blocked-notice-logextract": "මෙම පරිශීලකයා දැනට අවහිර කරනු ලැබ ඇත.\nආශ්‍රය තකා නවතම අවහිර කිරීම් ලඝු-සටහන පහත සැපයේ:",
        "session_fail_preview": "'''කණගාටුයි! සැසි දත්ත හානියක් හේතුවෙන් අප විසින් ඔබගේ  සංස්කරණය ක්‍රියායයනය කිරීමට නොහැකි වී ඇත.\nකරුණාකර නැවත උත්සාහ කරන්න.\nඑයද ප්‍රතිඵල විරහිත නම්, [[Special:UserLogout|නිෂ්ක්‍රමණය වීම]] හා නැවත ප්‍රවිෂ්ට වීම අත්හදා බලන්න.'''",
        "session_fail_preview_html": "'''කණගාටුයි! සැසි දත්ත හානියක් හේතුවෙන්, අප විසින් ඔබගේ සංස්කරණය ක්‍රියායනය කිරීම සිදු කල නොහැකි විය.'''\n\n''{{SITENAME}} විසින් නොනිමි HTML සක්‍රීය කොට ඇති බැවින්, ජාවාස්ක්‍රිප්ට් ප්‍රහාරයන්ගෙන් වැලකීමේ පූර්වොපායයක් ලෙස, පෙර-දසුන සඟවා ඇත.''\n\n'''මෙය නීත්‍යානුකූල සංස්කරණ උත්සාහයයක් නම්,  නැවත උත්සාහ කරන්න.\nඑසේ කල තන්හීද අසාර්ථක නම්, [[Special:UserLogout|නිෂ්ක්‍රමණය වී]] නැවත ප්‍රවිෂ්ට වීම අත්හදා බලන්න.'''",
        "token_suffix_mismatch": "''' ඔබගේ සේවාලාභියා විසින් සංස්කරණ ටෝකනයෙහි විරාම අක්ෂර  කලවම් කිරීම නිසා ඔබගේ සංස්කරණය නිෂ්ප්‍රභා කර ඇත.\nසංස්කරණය නිෂ්ප්‍රභා කරන ලද්දේ පිටු පෙළ දූෂණය වීම වැලැක්වීමටය.\nදෝෂ-සපිරි වෙබ්-පාදක නිර්නාමික නියුතු සේවාවක් ඔබ විසින් භාවිත කිරීම නිසා මෙය සමහරවිට සිදුවිය හැක.'''",
+       "edit_form_incomplete": "<strong>සංස්කරණ ආකෘති සමහර කොටස් සේවාදායකය වෙත ළඟා වූයේ නැත; ඔබගේ සංස්කරණයන් මෙලෙස පරික්ෂා කර, යළි උත්සාහ එම ද්විත්ව-පරික්ෂා කරන්න.</strong>",
        "editing": "$1 සංස්කරණය කරමින් පවතියි",
        "creating": "$1 තනමින්",
        "editingsection": "$1 (ඡේදය) සංස්කරණය කරමින් පවතියි",
        "permissionserrorstext": "පහත දැක්වෙන {{PLURAL:$1|හේතුව|හේතූන්}} නිසා, ඔබ හට එය සිදුකිරීමට අවසර ලබා දීමට නොහැක:",
        "permissionserrorstext-withaction": "පහත {{PLURAL:$1|හේතුව|හේතු}} නිසා, ඔබ හට $2 සඳහා අවසර නොමැත:",
        "recreate-moveddeleted-warn": "'''අවවාදයයි: පෙරදී මකාදැමුණු පිටුවක් ඔබ විසින් යළි-තනමින් පවතියි.'''\n\nමෙම පිටුව සංස්කරණය තවදුරටත් සිදු කරලීම සුදුසු දැයි එබ විසින් සලකා බැලිය යුතුව ඇත.\nමෙම පිටුව සඳහා මකාදැමීම් හා ගෙන යෑම් ලඝු-සටහන් ඔබගේ පහසුව තකා මෙහි දක්වා ඇත:",
-       "moveddeleted-notice": "මà·\99ම à¶´à·\92ටà·\94à·\80 à¶¸à¶\9aà·\8fදමà·\8f à¶\87ත.\nපà·\92ටà·\94à·\80 à·\83ඳà·\84à·\8f à¶¸à¶\9aà·\8fදà·\90මà·\93මà·\8a à·\84à·\8f à¶\9cà·\99න à¶ºà·\91මà·\8a à¶½à¶\9dà·\94-à·\83ටà·\84නà·\8a à¶\94බà¶\9cà·\9a à¶´à·\84à·\83à·\94à·\80 à¶­à¶\9aà·\8f à¶¸à·\99à·\84à·\92 පහත දක්වා ඇත.",
+       "moveddeleted-notice": "මà\9aà·\8fදà·\90මà·\96 à¶´à·\92ටà·\94à·\80à¶\9aà·\92.\nපà·\92ටà·\94à·\80 à·\83ඳà·\84à·\8f à¶¸à¶\9aà·\8fදà·\90මà·\93මà·\8a à·\84à·\8f à¶\9cà·\99න à¶ºà·\91මà·\8a à·\83ටà·\84නà·\8a පහත දක්වා ඇත.",
        "log-fulllog": "මුළු සටහනම නරඹන්න",
        "edit-hook-aborted": "හසුර මගින් සංස්කරණය රෝධනය කෙරිණි.\nඑය කිසිදු පැහැදිලි කිරීමක් නොදුනි.",
        "edit-gone-missing": "පිටුව යාවත්කාල කිරීම සිදුකල නොහැකි විය.\nඑය මකා දමා ඇති බවක් පෙනේ.",
        "postedit-confirmation-saved": "ඔබගේ සංස්කරණය සුරකින ලදී.",
        "edit-already-exists": "නව පිටුවක් තැනිය නොහැකි විය.\nඑය දැනටමත් පවතියි.",
        "defaultmessagetext": "සාමාන්‍ය පණිවුඩ පෙළ",
+       "content-failed-to-parse": "$1 ආකෘතිය සඳහා $2 අන්තර්ගතයට විග්රහ කළ අසාර්ථක විය: $3",
        "invalid-content-data": "වලංගු නොවන අන්තර්ගත දත්ත",
+       "content-not-allowed-here": "\"$1\" අන්තර්ගතයට [[$2]] පිටුවේ අවසර නැත",
        "editwarning-warning": "අවධානයට: මෙම පිටුවෙන් නික්ම යාම ඔබ සිදු කළ වෙනස්කම් නැතිවී යෑමට හේතු විය හැක.\nඔබ ප්‍රවිෂ්ටවී ඇත්නම්, ඔබගේ වරණයන්වල \"සංසකරණය කිරීම්\" කොටසේ ඇති මෙම අනතුරු ඇඟවීම අක්‍රීය කළ හැක.",
        "editpage-notsupportedcontentformat-title": "අන්තර්ගත සකැස්ම ක්‍රියා නොකරයි",
+       "editpage-notsupportedcontentformat-text": "අන්තර්ගතය ආකෘතිය $1 අන්තර්ගතය ආදර්ශ $2 විසින් පහසුකම් සපයන්නේ නැත.",
        "content-model-wikitext": "විකිපෙළ",
        "content-model-text": "සාමාන්‍ය පෙළ",
        "content-model-javascript": "ජාවාස්ක්‍රිප්ට්",
        "content-model-css": "CSS",
+       "content-json-empty-object": "හිස් වස්තුව",
+       "content-json-empty-array": "හිස් අරාය",
+       "duplicate-args-category": "සැකිල්ල ඇමතුම් තුළ අනුපිටපත් තර්ක යොදා ගනිමින් පිටු",
+       "duplicate-args-category-desc": "<nowiki>{{foo|bar=1|bar=2}}</nowiki></code> හෝ <code><nowiki>{{foo|bar|1=baz}}</nowiki></code> යනුවෙන් මෙම පිටුව සැකිල්ල එවැනි ලෙස තර්ක යොදා අනුපිටපත් ඇමතුම්, අඩංගු වේ.",
        "expensive-parserfunction-warning": "අවවාදයයි: මෙම පිටුවෙහි අධිවැය ව්‍යාකරණ විග්‍රහ ශ්‍රිත කැඳවුම් (expensive parser function calls) පමණට වඩා ඇත.\n\nඑහි තිබිය යුතු වූයේ  {{PLURAL:$2|එක් කැඳවුමකට |කැඳවුම් $2 ට }} අඩුවෙන් වුවද, මෙහි දැනට  {{PLURAL:$1|එක් කැඳවුමක්|කැඳවුම්  $1 ක්}} අඩංගුව ඇත.",
        "expensive-parserfunction-category": "අධිවැය ව්‍යාකරණ විග්‍රහ ශ්‍රිත කැඳවුම් පමණට වඩා ඇති පිටු",
        "post-expand-template-inclusion-warning": "අවවාදයයි: සැකිලි අඩංගු කිරීමේ ප්‍රමාණය අවසර ලබා දී ඇති පමණට වඩා විශාලයි.\nසමහරක් සැකිලි අඩංගු නොකරනු ඇත.",
        "parser-template-loop-warning": "සැකිලි ලූපය අනාවරණය කෙරිණි: [[$1]]",
        "parser-template-recursion-depth-warning": "සැකිලි ආවර්තනික අධිකත්ව සීමාව ඉක්මවිණි ($1)",
        "language-converter-depth-warning": "භාෂා පරිවර්තක අධිකත්ව සීමාව ඉක්මවා ඇත ($1)",
+       "node-count-exceeded-category": "මංසල ගණන් ඉක්මවා ඇති පිටු",
+       "node-count-exceeded-category-desc": "මෙම පිටුව උපරිම මංසල ගණන් ඉක්මවා යයි.",
+       "node-count-exceeded-warning": "පිටුව මංසල ගණන් ඉක්මවා",
+       "expansion-depth-exceeded-category": "පුළුල් ගැඹුරු ඉක්මවා ඇති පිටු",
+       "expansion-depth-exceeded-category-desc": "මෙම පිටුව උපරිම පුළුල් ගැඹුරු ඉක්මවා යයි.",
+       "expansion-depth-exceeded-warning": "පිටුව පුළුල් ගැඹුරු ඉක්මවා",
+       "parser-unstrip-loop-warning": "Unstrip ලූප අනාවරණය",
+       "parser-unstrip-recursion-limit": "Unstrip සහානුයාත සීමාව ($1) ඉක්මවා",
+       "converter-manual-rule-error": "අත්පොත භාෂා පරිවර්තනය පාලනය අනාවරණය දෝෂ",
        "undo-success": "මෙම සංස්කරණය අහෝසි කල හැක.\nපහත දක්වා ඇති සැසැඳුම පරික්ෂා කර බලා ඔබගේ අභිලාෂය මෙයමැයි තහවුරු කොට ගෙන, සංස්කරණය අහෝසිකිරීම සඳහා පහත දැක්වෙන වෙනස්වීම් සුරකින්න.",
        "undo-failure": "පරස්පර විරෝධී අතරමැදි සංස්කරණ හේතුවෙන් මෙම සංස්කරණය අහෝසි කල නොහැක.",
        "undo-norev": "එය නොපැවතීම නිසාවෙන් හෝ එය මකා දමා ඇති නිසාවෙන් මෙම සංස්කරණය අහෝසි කිරීම කල නොහැකි විය.",
+       "undo-nochange": "මෙම සංස්කරණය දැනටමත් අතහැර දමන ලද කර ඇති බව පෙනී යයි.",
        "undo-summary": " [[Special:Contributions/$2|$2]] මගින් සිදුකල  $1 සංශෝධනය අහෝසි කරන්න ([[User talk:$2|සාකච්ඡා]])",
+       "undo-summary-username-hidden": "සැඟවුණු පරිශීලකයෙක් විසින් සංශෝධනය $1 අස් කරන්න",
        "cantcreateaccounttitle": "ගිණුම තැනිය නොහැක",
        "cantcreateaccount-text": "මෙම IP ලිපිනය ('''$1''') මගින් ගිණුම් තැනීම [[User:$3|$3]] විසින් වාරණය කොට ඇත.\n\n$3 විසින් සපයා ඇති හේතුව ''$2'' වේ",
+       "cantcreateaccount-range-text": "ඔබේ IP ලිපිනය ('' '$4' '') ද ඇතුළත් වන පරාසය තුළ IP ලිපිනයන් '' '$1', '' සිට ගිණුම් තැනීම  [[User:$3|$3]] විසින් වාරණය කොට ඇත. $3 විසින් දී ඇති හේතුව '' '$2' වේ",
        "viewpagelogs": "මෙම පිටුව පිලිබඳ සටහන් නරඹන්න",
        "nohistory": "මෙම පිටුව සඳහා සංස්කරණ ඉතිහාසයක් නොමැත.",
        "currentrev": "නවතම සංශෝධනය",
        "history-feed-description": "විකියෙහි මෙම පිටුව සඳහා ඇති සංශෝධන ඉතිහාසය",
        "history-feed-item-nocomment": "$1 විසින් $2 හිදී",
        "history-feed-empty": "අයැදුනු පිටුව නොපවතියි.\nඑය විකියෙන් මකා දමා හෝ නම-වෙනස් කොට ඇතිවා විය හැකිය.\nඅදාල නව පිටු සඳහා  [[Special:Search|විකිය තුල ගවේෂණය]] අත්හදා බලන්න.",
+       "history-edit-tags": "තෝරාගත් සංශෝධනයන්ගේ සංස්කරණය කරන්න ටැග",
        "rev-deleted-comment": "(සංස්කරණ සාරාංශය ඉවත් කරන ලදි)",
        "rev-deleted-user": "(පරිශීලක-නාමය ඉවත් කරන ලදි)",
        "rev-deleted-event": "(ලඝු-සටහන් ඉවත් කරන ලදී)",
        "rev-deleted-user-contribs": "[පරිශීපක නාමය හෝ ලිපිනය ඉවත් කළා - දායකත්ව මඟින් සඟවන ලද සංස්කරණය]",
        "rev-deleted-text-permission": "මෙම පිටු සංශෝධනය '''මකා දමා ඇත'''.\nවැඩි විස්තර බොහෝ විට [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} මකාදැමීම් ලඝු-සටහන] වෙත තිබීමට ඉඩ ඇත.",
+       "rev-suppressed-text-permission": "මෙම පිටු සංශෝධනය <strong> යටපත් කරන්න </strong> වී ඇත. විස්තර මර්දනය ලඝු-සටහන  [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log] සොයා ගත හැක.",
        "rev-deleted-text-unhide": "මෙම පිටුව සංශෝධනය කිරීම '''මකා දමා ඇත'''.\nමේ පිලිබඳ විස්තර බොහෝවිට [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} මකා දැමීම් ලඝු-සටහනෙහි] තිබීමට ඉඩ ඇත.\nඔබට ඇවැසි නම් [$1 මෙම වෙනස නැරඹීම] තවමත් සිදුකල හැක.",
        "rev-suppressed-text-unhide": "මෙම පිටුව සංශෝධනය කිරීම \"'මකා දමා ඇත\"'.\nවිස්තර [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} යටපත් කිරීම් ලඝු-සටහනේ] තිබීමට ඉඩ ඇත.\nඔබ ඉදිරියට යෑමට කැමතිනම් පරිපාලකයෙකු වශයෙන් තවමත් ඔබට [$1 මෙම සංශෝධනය නැරඹීමට] හැකිය.",
        "rev-deleted-text-view": "මෙම පිටු සංශෝධනය '''මකා දමා ඇත'''.\nපරිපාලකයෙකු වශයෙන් එය ඔබහට නැරඹිය හැක; වැඩි විස්තර බොහෝ විට [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} මකාදැමීම් ලඝු-සටහන] වෙත තිබීමට ඉඩ ඇත.",
        "rev-showdeleted": "පෙන්වන්න",
        "revisiondelete": "සංශෝධන මකා දමන්න/මකා දැමීම ප්‍රතිලෝම කරන්න",
        "revdelete-nooldid-title": "ඉලක්කගත සංශෝධනය අනීතිකයි",
-       "revdelete-nooldid-text": "මෙම කාර්යය ඉටු කිරීම සඳහා එක්කෝ ඔබ විසින් ඉලක්කගත සංශෝධනය(න්) නොදක්වයි,\nසඳහන් කල සංශෝධනය නොපවතියි, නැතහොත්, වත්මන් සංශෝධනය සැඟවීමට ඔබ යත්න දරයි.",
+       "revdelete-nooldid-text": "මෙම කාර්යය ඉටු කිරීම සඳහා එක්කෝ ඔබ විසින් ඉලක්කගත සංශෝධන නොදක්වයි, සඳහන් කල සංශෝධනය නොපවතියි, නැතහොත්, වත්මන් සංශෝධනය සැඟවීමට ඔබ යත්න දරයි.",
        "revdelete-no-file": "නිවේශිත ගොනුව නොපවතියි.",
        "revdelete-show-file-confirm": "$2 දින $3 වේලාවේදී මකාදැමුනු \"<nowiki>$1</nowiki>\" ගොනුවෙහි සංශෝධනයක් නැරඹීමට ඔබ හට සහතික වශයෙන් ඇවැසිද?",
        "revdelete-show-file-submit": "ඔව්",
+       "revdelete-selected-text": "{{PLURAL:$1|තෝරාගත් සංශෝධනය|තෝරාගත් සංශෝධනයන්}} [[:$2]] හි:",
+       "revdelete-selected-file": "{{PLURAL:$1|තෝරාගත් ගොනු සංස්කරණය|තෝරාගත් ගොනු අනුවාදයන්}} හි, [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|තෝරාගත් ලඝු-සිදුවීම|තෝරාගත් ලඝු-සිදුවීම්}}:",
+       "revdelete-text-text": "මකාදැමුණු සංශෝධනයන්ගේ තවමත් පිටුවේ ඉතිහාසය තුළ දිස් වනු ඇත, නමුත් ඒවායේ අන්තර්ගතයෙන් අමතර කොටස් මහජනයාට නොහැකි වනු ඇත.",
+       "revdelete-text-file": "මකාදැමුණු ගොනු අනුවාදයන් තවමත් ගොනු ඉතිහාසය තුළ දිස් වනු ඇත, නමුත් ඒවායේ අන්තර්ගතයෙන් අමතර කොටස් මහජනයාට නොහැකි වනු ඇත.",
+       "logdelete-text": "මකාදැමුම් ලඝු-සටහන සිදුවීම් තවමත් ලඝු-සටහන් සඳහා පෙනී යන්නේ ය, එහෙත් ඒවායේ අන්තර්ගතයෙන් අමතර කොටස් මහජනයාට නොහැකි වනු ඇත.",
+       "revdelete-text-others": "අතිරේක සීමා වෙන් වේ නම් මිස, වෙනත් පරිපාලකයන්ට තවදුරටත්, සැඟවුණු අන්තර්ගතයට ප්රවේශ එය මක දැමීම ප්රතිලෝම කිරීම හැකි වනු ඇත.",
        "revdelete-confirm": "කරුණාකර ඔබ මෙය කිරීමට අදහස් කරන බවත්,එහි ප්‍රතිඵලය අවබෝධ කර ගන්නා බවත්,මෙය සිදු කරනුයේ [[{{MediaWiki:Policy-url}}| ප්‍රතිපත්තියට]] අනුකූලව බවත් තහවුරු කරන්න.",
-       "revdelete-suppress-text": "යටපත්කිරීම පහත අවස්ථාවන්හිදී  '''පමණක්''' භාවිතා කල යුතුය:\n* නුසුදුසු පෞද්ගලික තොරතුරු\n*: ''නිවසෙහි ලිපින හා දුරකතන අංක ආදිය.''",
+       "revdelete-suppress-text": "යටපත්කිරීම පහත අවස්ථාවන්හිදී  <strong>පමණක්</strong> භාවිතා කල යුතුය:\n* නුසුදුසු පෞද්ගලික තොරතුරු\n*: ''නිවසෙහි ලිපින හා දුරකතන අංක ආදිය.''",
        "revdelete-legend": "දෘශ්‍ය අවහිරකිරීම් සකසන්න",
        "revdelete-hide-text": "සංශෝධන පෙළ",
        "revdelete-hide-image": "ගොනු අන්තර්ගතය සඟවන්න",
        "mergehistory-empty": "සංශෝධනයන් කිසිවක් ඒකාබද්ධ කල නොහැක.",
        "mergehistory-success": " [[:$1]] හි  {{PLURAL:$3|සංශෝධනයක්|සංශෝධන  $3 ක්}}සාර්ථක ලෙස   [[:$2]] හා සමග ඒකාබද්ධ කරන ලදි.",
        "mergehistory-fail": "ඉතිහාස ඒකාබද්ධය සිදු කල නොහැක, පිටු හා වේලා පරාමිතීන් නැවත පිරික්සා බලන්න.",
+       "mergehistory-fail-toobig": "ඉතිහාසය $1 සීමාව වඩා ලෙස ඒකාබද්ධය සිදු කල නොහැක, {{PLURAL:|සංශෝධනය|සංශෝධන $1}} ගෙන ඇත.",
        "mergehistory-no-source": "මූලාශ පිටුව $1 නොපවතී.",
        "mergehistory-no-destination": "අන්ත පිටුව $1 නොපවතී.",
        "mergehistory-invalid-source": "මූල පිටුව නීතික ශීර්ෂයක් සහිත විය යුතුය.",
        "lineno": "$1 පේළිය:",
        "compareselectedversions": "තෝරාගත් සංශෝධන සසඳන්න",
        "showhideselectedversions": "තෝරාගත් සංශෝධන පෙන්වන්න/සඟවන්න",
-       "editundo": "අහෝසි",
+       "editundo": "අහෝසි කරන්න",
        "diff-empty": "(වෙනසක් නොමැත)",
        "diff-multi-sameuser": "(නොපෙන්වන එම පරිශීලකයා මගින් {{PLURAL:$1|එක් අතරමැදි සංස්කරණයක්|අතරමැදි සංස්කරණ $1ක්}})",
+       "diff-multi-otherusers": "({{PLURAL:$1|එක් අතරමැදි සංශෝධනය|අතරමැදි සංශෝධන $1}} විසින් {{PLURAL:$2|තවත් එක් පරිශීලක|පරිශීලක $2}} පෙන්වා නැත)",
        "diff-multi-manyusers": "(පරිශීලකයන් $2 කට වඩා වැඩි ගණනකගේ ආසන්න පුනරීක්‍ෂණ $1ක් පෙන්වා නොමැත)",
+       "difference-missing-revision": "{{PLURAL:$2|එක් සංශෝධනයක්|සංශෝධන $2}} මෙම වෙනස, ($1), {{PLURAL:$2|ලදී|ලද}} ක් සොයාගත නොහැකි විය.\n\nමෙය සාමාන්යයෙන් මකා දැමූ පිටුවක යල් පැන ගිය වෙනස පහත සබැඳිය නිසා වේ. [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} මකාදැමීම් ලඝු-සටහන]. විස්තර සොයා ගත හැක.",
        "searchresults": "ගවේෂණ ප්‍රතිඵල",
        "searchresults-title": "\"$1\" සඳහා ගවේෂණ ප්‍රතිඵල",
        "titlematches": "පිටු ශීර්ෂය ගැළපෙයි",
        "notextmatches": "පිටු පෙළ කිසිවක් නොගැළපෙයි",
        "prevn": "පෙර {{PLURAL:$1|$1}}",
        "nextn": "ඊළඟ {{PLURAL:$1|$1}}",
+       "prev-page": "පෙර පිටුව",
+       "next-page": "ඊළඟ පිටුව",
        "prevn-title": "පූර්ව {{PLURAL:$1|ප්‍රතිඵලය|ප්‍රතිඵලයන් $1}}",
        "nextn-title": "මීලඟ {{PLURAL:$1|ප්‍රතිඵලය|ප්‍රතිඵල $1}}",
        "shown-title": "එක් පිටුවකට {{PLURAL:$1|ප්‍රතිඵලයක්|ප්‍රතිඵල $1 ක්}} බැගින් පෙන්වන්න",
        "searchprofile-articles": "අන්තර්ගත පිටු",
        "searchprofile-images": "බහුමාධ්‍ය",
        "searchprofile-everything": "සියල්ල",
-       "searchprofile-advanced": "à\8bà·\83à·\83à·\8a",
+       "searchprofile-advanced": "à·\80à·\90ඩà·\92දà·\94ර",
        "searchprofile-articles-tooltip": "$1 හි ගවේෂණය කරන්න",
        "searchprofile-images-tooltip": "ගොනු සඳහා ගවේෂණය කරන්න",
        "searchprofile-everything-tooltip": "සියළු අන්තර්ගතය ගවේෂණය කරන්න (සාකච්ඡා පිටුද ඇතුළුව)",
        "search-result-category-size": "{{PLURAL:$1|එක් සාමාජීකයෙන්|සාමාජීකයන් $1 ක්}} ({{PLURAL:$2|එක් උප-ප්‍රවර්ගයක්|උප-ප්‍රවර්ග $2 ක්}}, {{PLURAL:$3|එක් ගොනුවක්|ගොනු $3 ක්}})",
        "search-redirect": "($1 යළි-යොමු කරන්න)",
        "search-section": "($1 ඡේදය)",
+       "search-category": "(ප්‍රවර්ගය $1)",
        "search-file-match": "(ගොනු දත්ත සැසදේ)",
        "search-suggest": "ඔබ අදහස් කළේ මෙයද: $1",
        "search-interwiki-caption": "සොයුරු ව්‍යාපෘති",
        "searchrelated": "ආශ්‍රිත",
        "searchall": "සියල්ල",
        "showingresults": "#'''$2''' ගෙන් ආරම්භ කොට, {{PLURAL:$1|ප්‍රතිඵල '''1'''  ක් |ප්‍රතිඵල '''$1''' ක්}} දක්වා පහත පෙන්වා ඇත.",
+       "showingresultsinrange": "ක් දක්වා පහත පෙන්වා {{PLURAL:$1|<strong>1</strong> ප්‍රතිඵල|<strong>$1</strong> ප්‍රතිඵල}} පරාසය තුළ #<strong>$2</strong> සිට #<strong>$3</strong>.",
        "search-showingresults": "{{PLURAL:$4|ප්‍රතිඵල <strong>$3</strong> කින් <strong>$1</strong> ක්|ප්‍රතිඵල <strong>$3</strong> කින් <strong>$1 සිට $2</strong> දක්වා}}",
        "search-nonefound": "විමසුම හා ගැලපෙන ප්‍රතිඵල කිසිවක් නොමැත.",
        "powersearch-legend": "වැඩිමනත් ගවේෂණය",
        "searchdisabled": "{{SITENAME}} ගවේෂණය අක්‍රීය කොට ඇත.\nමේ අතරතුර ඔබ හට ගූගල් ඔස්සේ ගවේෂණය කල හැක.\n{{SITENAME}} අන්තර්ගතය පිළිබඳ ඔවුන්ගේ සූචි යල් පැන ගොස් ඇතිවා විය හැකි බව සටහන් කර ගන්න.",
        "search-error": "සෙවීම් සිදුකිරීමේදී වැරද්දක් මතුවී ඇත: $1",
        "preferences": "අභිරුචි",
-       "mypreferences": "à¶\85භà·\92රà·\94චà·\93න්",
+       "mypreferences": "à¶\85භà·\92රà·\94චà·\92 à·\83à·\90à¶\9aà·\83à·\94ම්",
        "prefs-edits": "සංස්කරණයන් සංඛ්‍යාව:",
+       "prefsnologintext2": "ඔබගේ අභිරුචි වෙනස් කිරීම වෙත ප්රවිෂ්ට වන්න.",
        "prefs-skin": "ඡවිය",
        "skin-preview": "පෙරදසුන",
        "datedefault": "අභිරුචියක් නොමැත",
        "prefs-personal": "පරිශීලක පැතිකඩ",
        "prefs-rc": "‍නව වෙනස්වීම්",
        "prefs-watchlist": "මුර-ලැයිස්තුව",
+       "prefs-editwatchlist": "මුර-ලැයිස්තුව සංස්කරණය කරන්න",
+       "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": "ආවර්ධිත මුර-ලැයිස්තුවෙහි පෙන්විය යුතු උපරිම වෙනස්වීම් සංඛ්‍යාව:",
        "recentchangesdays-max": "(උපරිමයෙන් {{PLURAL:$1|එක් දිනක්|දින $1 ක්}})",
        "recentchangescount": "පෙරනිමියෙන් පෙන්විය යුතු සංස්කරණ ගණන:",
        "prefs-help-recentchangescount": "මෑත වෙනස්වීම්, පිටු ඉතිහාසයන්, සහ ලඝු-සටහන් මෙයට ඇතුලත් වෙති.",
+       "prefs-help-watchlist-token2": "මෙම ඔබගේ මුර-ලැයිස්තුවෙහි වෙබ් ආහාර සඳහා රහස් යතුර වේ. එය දන්නා ඕනෑම අයෙකුට ඔබගේ මුරලැයිස්තුව කියවිය, එය හවුල් නොවන හැකි වනු ඇත. ඔබ, කිරීමට අවශ්ය නම්, [[Special:ResetTokens|ඔබ එය සැකසිය හැක]].",
        "savedprefs": "අභිරුචීන් සුරැකිනි.",
        "timezonelegend": "වේලා කලාපය:",
        "localtime": "ප්‍රාදේශීය වේලාව:",
        "yourrealname": "සැබෑ නාමය:",
        "yourlanguage": "භාෂාව:",
        "yourvariant": "අන්තර්ගත භාෂා විචල්‍ය:",
+       "prefs-help-variant": "මෙම විකියෙහි අන්තර්ගතය පිටු ප්රදර්ශනය කිරීමට ඔබ කැමති ප්රභේද්යයක් හෝ orthography.",
        "yournick": "නව අත්සන:",
        "prefs-help-signature": "සාකච්ඡා පිටුව මත සටහන් \"<nowiki>~~~~</nowiki>\" මඟින් අත්සන් තැබිය යුතු අතර එය ඔබේ අත්සන හා කාල මුද්‍රාව බවට පරිවර්තනය වනු ඇත.",
        "badsig": "නොනිමි අත්සන අනීතිකයි.\nHTML ටැගයන් පිරික්සන්න.",
        "prefs-tokenwatchlist": "ටෝකනය",
        "prefs-diffs": "වෙනස",
        "prefs-help-prefershttps": "ඔබගේ අභිරුචිය මීළඟ ඇතුළු වීමේ සිට ක්‍රියාත්මක වනු ඇත.",
+       "prefswarning-warning": "ඔබ තවමත් සුරැකීමට ලක් කොට නොමැත ඇති බව ඔබේ මනාපයන් වෙනස්කම් සිදුකර ඇත. ඔබ \"$1\" ක්ලික් තොරව මෙම පිටුව නිවාඩු නම්, ඔබේ මනාපයන් යාවත්කාලීන කළ නොහැකි වනු ඇත.",
+       "prefs-tabs-navigation-hint": "ඉඟිය: ඔබ ටැබ් ලැයිස්තුවේ ඇති ටැබ් අතර සැරිසැරීම වම් හා දකුණු ඊතල සහිත යතුරු භාවිතා කළ හැක.",
        "email-address-validity-valid": "විද්‍යුත්-තැපැල් ලිපිනය අනීතික බවක් පෙනෙයි.",
        "email-address-validity-invalid": "වලංගු විද්‍යුත් ලිපිනයක් ඇතුලත් කරන්න",
        "userrights": "පරිශීලක හිමිකම් කළමනාකරණය",
        "userrights-lookup-user": "පරිශීලක කණ්ඩායම් කළමනාකරණය කරන්න",
        "userrights-user-editname": "පරිශීලක-නාමයක් ආදායනය කරන්න:",
        "editusergroup": "පරිශීලක කණ්ඩායම් සංස්කරණය කරන්න",
-       "editinguser": "'''[[User:$1|$1]]''' $2 පරිශීලකයාගේ පරිශීලක හිමිකම්",
+       "editinguser": "{{GENDER:$1|පරිශීලක}} <strong>[[User:$1|$1]]</strong> $2 $2 පරිශීලකයාගේ පරිශීලක හිමිකම්",
        "userrights-editusergroup": "පරිශීලක කණ්ඩායම් සංස්කරණය කරන්න",
        "saveusergroups": "පරිශීලක කණ්ඩායම් සුරකින්න",
        "userrights-groupsmember": "ඉදිරි කාණ්ඩයන්හි සාමාජිකයෙකි:",
        "userrights-changeable-col": "ඔබට වෙනස් කල හැකි කණ්ඩායම්",
        "userrights-unchangeable-col": "ඔබට වෙනස් කල නොහැකි කණ්ඩායම්",
        "userrights-irreversible-marker": "$1*",
+       "userrights-conflict": "පරිශීලක හිමිකම් වෙනස්කම් ගැටුම්! සමාලෝචනය සහ ඔබේ වෙනස්කම් සනාථ කරන්න.",
+       "userrights-removed-self": "ඔබ සාර්ථකව ඔබේ ම හිමිකම් ඉවත් කර ඇත. ඒ නිසා, ඔබ තවදුරටත් මෙම පිටුව වෙත පිවිසිය හැකි ය.",
        "group": "කණ්ඩායම:",
        "group-user": "පරිශීලකයෝ",
        "group-autoconfirmed": "ස්වයංක්‍රීයව-චිරස්ථිතවූ පරිශීලකයෝ",
        "right-move": "පිටු ගෙනයන්න",
        "right-move-subpages": "පිටු ඒවායේ උපපිටු ද සමග ගෙනයන්න",
        "right-move-rootuserpages": "මූල පරිශීලක පිටු ගෙනයන්න",
+       "right-move-categorypages": "ප්රවර්ග පිටු ගෙනයන්න",
        "right-movefile": "ගොනු ගෙනයන්න",
        "right-suppressredirect": "පිටුවක් ගෙනයන විට පැරණි නම වෙතින් යළි-යොමුවක් නොතනන්න",
        "right-upload": "ගොනු උඩුගත කරන්න",
        "right-writeapi": "ලිවීම්  API භාවිතය",
        "right-delete": "පිටු මකා දමන්න",
        "right-bigdelete": "විශාල ඉතිහාස ඇති පිටු මකා දමන්න",
+       "right-deletelogentry": "විශේෂිත ලඝු සටහන් ඇතුළත් කිරීම් හා මක දැමීම ප්රතිලෝම කිරීම සිදු",
        "right-deleterevision": "පිටුවල විශේෂිත සංශෝධනයන් මකා දැමීම හා මක දැමීම ප්‍රතිලෝම කිරීම සිදු කරන්න",
        "right-deletedhistory": "ඒවායෙහි ආශ්‍රිත පෙළ රහිතව, මකාදැමුනු ඉතිහාස සංලේඛයන් නරඹන්න",
        "right-deletedtext": "මකා දැමූ සංශෝධන අතරතුර මකා දැමූ පෙළ හා වෙනස්වීම් පෙන්වන්න",
        "right-browsearchive": "මකාදැමූ පිටු ගවේෂණය කරන්න",
        "right-undelete": "පිටුවක් මකාදැමීම ප්‍රතිලෝම කරන්න",
        "right-suppressrevision": "පරිපාලකවරුන් වෙතින් සඟවා ඇති සංශෝධනයන් විමර්ශනය කොට ප්‍රතිෂ්ඨාපනය කරන්න",
+       "right-viewsuppressed": "ඕනෑම පරිශීලකයෙකුට සඟවා දැක්ම අනුවාදයන්",
        "right-suppressionlog": "පෞද්ගලික සටහන් නරඹන්න",
        "right-block": "අනෙකුත් පරිශීලකයන් සංස්කරණය කිරීමෙන් වාරණය කරන්න",
        "right-blockemail": "පරිශීලකයාගේ විද්‍යුත්-තැපැල් යැවීමේ හැකියාව වාරණය කරන්න",
        "right-proxyunbannable": "ප්‍රතියුක්තයන්ගේ ස්වයංක්‍රීයව වාරණයන් මඟහරින්න",
        "right-unblockself": "ඔවුන් විසින්ම වාරණයෙන් මුදවීම",
        "right-protect": "ආරක්ෂණ මට්ටම් වෙනස් කරමින් ආරක්ෂිත පිටු සංස්කරණය කරන්න",
-       "right-editprotected": "ආරක්ෂිත පිටු සංස්කරණය කරන්න (තීරු-දර්ශන ආරක්ෂණය විරහිත)",
+       "right-editprotected": "ආරක්ෂිත පිටු සංස්කරණය කරන්න \"{{int:protect-level-sysop}}\"",
+       "right-editsemiprotected": "ලෙස ආරක්ෂා සංස්කරණය කරන්න පිටු \"{{int:protect-level-autoconfirmed}}\"",
+       "right-editcontentmodel": "පිටුවෙහි ඇති අන්තර්ගතය ආකෘතිය සංස්කරණය කරන්න",
        "right-editinterface": "පරිශීලක අතුරු-මුව සංස්කරණය කරන්න",
        "right-editusercssjs": "අනෙකුත් පරිශීලකයන්ගේ  CSS හා JS ගොනු සංස්කරණය කරන්න",
        "right-editusercss": "අනෙකුත් පරිශීලකයන්ගේ  CSS ගොනු සංස්කරණය කරන්න",
        "right-edituserjs": "අනෙකුත් පරිශීලකයන්ගේ  JS ගොනු සංස්කරණය කරන්න",
+       "right-editmyusercss": "ඔබේ ම පරිශීලක CSS ගොනු සංස්කරණය කරන්න",
+       "right-editmyuserjs": "ඔබේ ම පරිශීලක ජාවාස්ක්රිප්ට් ගොනු සංස්කරණය කරන්න",
        "right-viewmywatchlist": "ඔබගේ මුර-ලැයිස්තුව පෙන්වන්න",
+       "right-editmywatchlist": "ඔබේ ම මුර-ලැයිස්තුවෙහි සංස්කරණය කරන්න. සමහර ක්රියාකාරකම් තවමත් පවා මෙම අයිතිය නොමැතිව පිටු එකතු වේ සලකන්න.",
        "right-viewmyprivateinfo": "ඔබගේ පෞද්ගලික දත්ත පෙන්වන්න (උදා. විද්‍යුත් තැපැල් ලිපිනය, නිවැරදි නම)",
        "right-editmyprivateinfo": "ඔබගේ පෞද්ගලික දත්ත සංස්කරණය කරන්න (උදා. විද්‍යුත් තැපැල් ලිපිනය, නිවැරදි නම)",
        "right-editmyoptions": "ඔබගේ අභිරුචියන් සංස්කරණය කරන්න",
        "right-override-export-depth": "5වන මට්ටම දක්වා සබැඳි පිටු ද සහිතව පිටු නිර්යාත කරන්න",
        "right-sendemail": "අනෙක් පරිශීලකයන්ට ඊ-ලිපි යවන්න",
        "right-passwordreset": "මුරපද යලි සැකසීම් විද්‍යුත් තැපෑලයන් නරඹන්න",
+       "right-managechangetags": "දත්ත සමුදාය සිට [[Special:Tags|ඇමුණුම්]] නිර්මාණය කර මකා",
+       "right-applychangetags": "ඉල්ලුම් කරන්න කෙනෙකුගේ වෙනස්කම් සමග, [[Special:Tags|ඇමිණුම්]]",
+       "right-changetags": "තනි තනි අනුවාදයන් සහ ලඝු සටහන් ඇතුළත් කිරීම් මත අත්තනෝමතික [[Special:Tags|ඇමිණුම්]] එකතු හෝ ඉවත්",
        "newuserlogpage": "පරිශීලකයන් තැනීමේ සටහන",
        "newuserlogpagetext": "මෙය පරිශිලකයන් තැනීම පිළිබඳ සටහනකි.",
        "rightslog": "පරිශීලක හිමිකම් සටහන",
        "action-move": "මෙම පිටුව ගෙනයන්න",
        "action-move-subpages": "මෙම පිටුව හා එහි උප පිටු ගෙන යන්න",
        "action-move-rootuserpages": "මූල පරිශීලක පිටු ගෙනයන්න",
+       "action-move-categorypages": "ප්රවර්ග පිටු ගෙනයන්න",
        "action-movefile": "මෙම ගොනුව ගෙනයන්න",
        "action-upload": "මෙම ගොනුව උඩුගත කරන්න",
        "action-reupload": "දැනට පවතින මෙම ගොනුව අධිලිවීමකට ලක්කරන්න",
        "action-suppressionlog": "මෙම පෞද්ගලික සටහන නරඹන්න",
        "action-block": "මෙම පරිශීලකයා සංස්කරණය කිරීමෙන් වාරණය කරන්න",
        "action-protect": "මෙම පිටුවේ රැකවරණ මට්ටම් වෙනස් කරන්න",
-       "action-import": "වෙනත් විකියක් වෙතින් මෙම පිටුව ආයාත කරන්න",
-       "action-importupload": "ගොනු උඩුගත කිරීමක් වෙතින් මෙම පිටුව ආයාත කරන්න",
+       "action-rollback": "සුවිශේෂ පිටුවක් අවසන් වරට සංස්කරණය කල පරිශීලකයෙකුගේ සංස්කරණයන් විගසින් පුනරාවර්තනය කරන්න",
+       "action-import": "අනෙකුත් විකියන්ගෙන් පිටු ආයාත කරන්න",
+       "action-importupload": "ගොනු උඩුගත කිරීමකින් පිටු ආයාත කරන්න",
        "action-patrol": "අනෙකුන්ගේ සංස්කරණ, පරික්‍ෂාකර බැලූ ලෙස සලකුණු කරගන්න",
        "action-autopatrol": "ඔබගේ සංස්කරණය, පරික්‍ෂාකර බැලූ ලෙස සලකුණු කරවාගන්න",
        "action-unwatchedpages": "මුර-නොකෙරෙන පිටු ලැයිස්තුව නරඹන්න",
        "action-viewmywatchlist": "ඔබගේ මුර-ලැයිස්තුව පෙන්වන්න",
        "action-viewmyprivateinfo": "ඔබගේ පෞද්ගලික තොරතුරු පෙන්වන්න",
        "action-editmyprivateinfo": "ඔබගේ පෞද්ගලික තොරතුරු සංස්කරණය කරන්න",
+       "action-editcontentmodel": "පිටුවෙහි ඇති අන්තර්ගතය ආකෘතිය සංස්කරණය",
+       "action-managechangetags": "දත්ත සමුදාය සිට ටැග්ස් නිර්මාණය කිරීම හා මකා",
+       "action-applychangetags": "ඔබේ වෙනස්කම් සමග ටැග් අයදුම්",
+       "action-changetags": "තනි තනි අනුවාදයන් සහ ලඝු සටහන් ඇතුළත් කිරීම් මත අත්තනෝමතික ටැග්ස් එකතු හෝ ඉවත්",
        "nchanges": "$1 {{PLURAL:$1|වෙනස්වීම|වෙනස්වීම්}}",
+       "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|පසුගිය සංචාරය සිට}}",
        "enhancedrc-history": "ඉතිහාසය",
        "recentchanges": "මෑත වෙනස්කිරීම්",
        "recentchanges-legend": "‍නව වෙනස්වීම් සැකසුම් තෝරාගැනීම",
        "recentchanges-summary": "මෙම පිටුවේ විකියට සිදුකල ඉතා මෑත වෙනස්වීම් පසුහඹන්න.",
+       "recentchanges-noresult": "මෙම උපමානයන් හා ගැලපෙන වෙනස්වීම් දී ඇති කාල සීමාව තුළ කිසිදු වෙනසක් සිදුවී නොමැත.",
        "recentchanges-feed-description": "මෙම පෝෂකයෙහි විකියට බොහෝ මෑතදී සිදුකල වෙනස්වීම් හෙළිකරන්න.",
-       "recentchanges-label-newpage": "මà·\99ම à·\83à¶\82à·\83à·\8aà¶\9aරණය à¶±à·\80 à¶´à·\92ටà·\94à·\80à¶\9aà·\8a à¶±à·\92රà·\8aමà·\8fණය à¶\9aරන à¶½à¶¯à·\93",
+       "recentchanges-label-newpage": "මà·\99ම à·\83à¶\82à·\83à·\8aà¶\9aරණය à¶¸à¶\9cà·\92නà·\8a à¶±à·\80 à¶´à·\92ටà·\94à·\80à¶\9aà·\8a à¶±à·\92රà·\8aමà·\8fණය à¶\9aà·\99රà·\92නà·\92",
        "recentchanges-label-minor": "මෙය සුළු සංස්කරණයකි",
        "recentchanges-label-bot": "මෙය රොබෝවක් විසින් කරන ලද සංස්කරණයකි",
        "recentchanges-label-unpatrolled": "මෙම සංස්කරණය තවම විමර්ශනය කර නොමැත",
        "recentchanges-label-plusminus": "පිටුවේ බයිට ගණන මෙපමණකින් වෙනස් වී ඇත",
-       "recentchanges-legend-heading": "'''Legend:'''",
+       "recentchanges-legend-heading": "'''විස්තරය:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|නව පිටු ලැයිස්තුව]] ද බලන්න)",
-       "rcnotefrom": "'''$2''' න් පසු සිදුවී ඇති වෙනස්කම් මෙහි පහත දැක්වේ ('''$1''' ක ප්‍රමාණයක උපරිමයක් පෙන්වා ඇත).",
+       "rcnotefrom": "{{PLURAL:$5|වෙනස්කම|වෙනස්කම්}} න් පසු සිදුවී ඇති <strong>$3, $4</strong> මෙහි පහත දැක්වේ (<strong>$1</strong> ක ප්‍රමාණයක උපරිමයක් පෙන්වා ඇත).",
        "rclistfrom": "$3 $2 සිට බලපැවැත්වෙන මෑත වෙනස්වීම් පෙන්වන්න",
        "rcshowhideminor": "සුළු සංස්කරණ $1",
        "rcshowhideminor-show": "පෙන්වන්න",
        "rcshowhideliu": "ලේඛනගත පරිශීලකයෝ $1",
        "rcshowhideliu-show": "පෙන්වන්න",
        "rcshowhideliu-hide": "සඟවන්න",
-       "rcshowhideanons": "නà·\92රà·\8aනà·\8fමà·\92à¶\9a à¶´à¶»à·\92à·\81à·\93ලà¶\9aයනà·\8a $1",
+       "rcshowhideanons": "නà·\92රà·\8aනà·\8fමà·\92à¶\9a à¶´à¶»à·\92à·\81à·\93ලà¶\9aයà·\9d $1",
        "rcshowhideanons-show": "පෙන්වන්න",
        "rcshowhideanons-hide": "සඟවන්න",
        "rcshowhidepatr": "පරික්‍ෂා කර බැලූ සංස්කරණයන් $1",
        "rcshowhidepatr-show": "පෙන්වන්න",
        "rcshowhidepatr-hide": "සඟවන්න",
-       "rcshowhidemine": "මගේ සංස්කරණයන් $1",
+       "rcshowhidemine": "මගේ සංස්කරණ $1",
        "rcshowhidemine-show": "පෙන්වන්න",
        "rcshowhidemine-hide": "සඟවන්න",
        "rclinks": "අවසන් දින $2 තුලදී සිදුවී ඇති අවසන් වෙනස්වීම් $1 පෙන්නුම් කරන්න<br />$3",
        "largefileserver": "සේවාදායකයේ හැඩගස්වීම ප්‍රකාර ඉඩ ලබා දෙන ප්‍රමාණයට වඩා මෙම ගොනුව විශාලය.",
        "emptyfile": "ඔබ විසින් උඩුගත කරන ලද ගොනුව හිස් බවක් පෙනේ.\nමෙය සමහරවිට ගොනු  නාමයේ මුද්‍රණ දෝෂයක් නිසා විය හැක.\nඔබට නිසැකවම මෙම ගොනුව උඩුගත කිරීමට අවශ්‍යයද යන්න පරික්‍ෂා කර බලන්න.",
        "windows-nonascii-filename": "විශේෂ අක්ෂර සහිත ගොනු නාම සදහා මෙම විකිය සහය නොදක්වයි.",
-       "fileexists": "මෙම නම සහිත ගොනුවක් දැනටමත් පවතියි, මෙය වෙනස් කල යුතු බවට ඔබට නිසැක නොවේ නම්, කරුණාකර <strong>[[:$1]]</strong> පරික්ෂා කර බලන්න .\n[[$1|thumb]]",
+       "fileexists": "මෙම නම සහිත ගොනුවක් දැනටමත් පවතියි, මෙය වෙනස් කල යුතු බවට ඔබට නිසැක නොවේ නම්, කරුණාකර <strong>[[:$1]]</strong> {{GENDER:|ඔබ}}පරික්ෂා කර බලන්න .\n[[$1|thumb]]",
        "filepageexists": "මෙම ගොනුව සඳහා විස්තර පිටුව දැනටමත් <strong>[[:$1]]</strong> හි තනා ඇති නමුත්, මෙම නම ඇති කිසිදු ගොනුවක් දැනට නොපවතියි.\nඔබ විසින් ඇතුලත් කෙරෙන සාරාංශය විස්තර පිටුවෙහි දිස් නොවනු ඇත.\nසාරාංශය එහි  දිස්කෙරුමට,  ඔබ විසින් එය හස්තීය ලෙස සංස්කරණය කෙරුම සිදුකල යුතු වේ.\n[[$1|thumb]]",
-       "fileexists-extension": "එක්වැනි නමක් ඇති ගොනුවක් පවතී: [[$2|thumb]]\n* උඩුගත කෙරෙන ගොනුවේ නම: <strong>[[:$1]]</strong>\n* පවතින ගොනුවේ නම: <strong>[[:$2]]</strong>\nකරුණාකර වෙනත් නමක් තෝරාගන්න.",
+       "fileexists-extension": "එක්වැනි නමක් ඇති ගොනුවක් පවතී: [[$2|thumb]]\n* උඩුගත කෙරෙන ගොනුවේ නම: <strong>[[:$1]]</strong>\n* පවතින ගොනුවේ නම: <strong>[[:$2]]</strong>\nකරුණාකර වෙනත් නමක් තෝරාගන්න?",
        "fileexists-thumbnail-yes": "ගොනුව, කුඩා ප්‍රමාණයේ රූපයක් බව පෙනී යයි ''(සිඟිති-රූපය)''. [[$1|thumb]]\nකරුණාකර <strong>[[:$1]]</strong> ගොනුව පරික්‍ෂා කර බලන්න.\nපරික්‍ෂා කර බැලූ ගොනුවෙහි අඩංගු වන්නේ මුලික ප්‍රමාණයෙහි රූපයම නම් අමතර සිඟිති-රූපයක් උඩුගත කිරීම අවශ්‍ය නොවේ.",
        "file-thumbnail-no": "ගොනු නම <strong>$1</strong> යන්නෙන් ආරම්භ වේ.\nඑය කුඩාකල ප්‍රමාණයෙහි රූපයක් බව පෙනී යයි  ''(සිඟිති-රූපය)''.\nපූර්ණ විසර්ජනය සහිත මෙම රූපය ඔබ සතු වෙයි නම් මෙය උඩුගත කරන්න, නැතහොත් ගොනු නාමය වෙනස් කරන්න.",
        "fileexists-forbidden": "මෙම නම ඇති ගොනුවක් දැනටමත් පවතින අතර, එය උඩින් ලීවීම සිදුකල නොහැක.\nකෙසේ හෝ ඔබගේ ගොනුව උඩුගත කිරීමට ඔබට ඇවැසි නම්, කරුණාකර නැවත ගොස් නව නමක් භාවිතා කරන්න. [[File:$1|thumb|center|$1]]",
        "fileexists-shared-forbidden": "මෙම නම සහිත ගොනුවක් හවුල් ගොනු සුරක්‍ෂිතාගාරයෙහි දැනටමත් පවතියි.\nඔබ හ‍ට මෙම ගොනුව උඩුගත කිරීම කෙසේ හෝ සිදුකිරීමට ඇවැසි නම්, කරුණාකර පෙරළා ගොස් අළුත් නමක් භාවිතා කරන්න. [[File:$1|thumb|center|$1]]",
        "file-exists-duplicate": "මෙම ගොනුව පහත  {{PLURAL:$1|ගොනුවෙහි|ගොනු වල}} අනුපිටපතකි:",
        "file-deleted-duplicate": "මෙම ([[:$1]]) ගොනුවට සර්වසාම්‍ය ගොනුවක් පෙරදී මකාදමා ඇත.\nඑය යළි-උඩුගත කිරීම සඳහා කටයුතු කිරීමට පෙර එම ගොනුවෙහි මකාදැමීම් ඉතිහාසය ඔබ විසින් පරීක්ෂා කර බැලිය යුතුව ඇත.",
+       "file-deleted-duplicate-notitle": "මෙම ගොනුවට සර්වසම ගොනුව මින් පෙර මකා දැමීම සිදු කර ඇති අතර, මාතෘකාව යටපත් කර ඇත. එය යළි-උඩුගත කිරීම සඳහා කටයුතු කිරීමට පෙර තත්ත්වය සමාලෝචනය කිරීම යටපත් ගොනුව දත්ත බැලීම කිරීමේ හැකියාව සහිත අයෙක් ඇසිය යුතුය.",
        "uploadwarning": "උඩුගත කිරීම් අවවාදයකි",
        "uploadwarning-text": "කරුණාකර පහත ගොනු විස්තරය වෙනස් කර නැවත උත්සාහ කරන්න.",
        "savefile": "ගොනුව සුරකින්න",
        "uploaddisabledtext": " {{SITENAME}} හි ගොනු උඩුගත කිරීම් අක්‍රීය කර ඇත.",
        "php-uploaddisabledtext": "PHP හි ගොනු උඩුගතකිරීම් අක්‍රීය කොට ඇත.\nකරුණාකර  ගොනු_උඩුගතකිරීම් පරිස්ථිතිය පරික්ෂා කර බලන්න.",
        "uploadscripted": "වෙබ් බ්‍රවුසරයක් මගින් සාවද්‍ය ලෙස අර්ථ පැහැදිය හැකි HTML හෝ ලේඛන ක්‍රම තේතයක් මෙම ගොනුවේ අඩංගු වේ.",
+       "uploadscriptednamespace": "මෙම SVG ගොනුව නීති විරෝධී නාම අවකාශය ටැග පෙරහන: \"$1\" අඩංගු වේ.",
+       "uploadinvalidxml": "උඩුගත දී මෙම XML කියවූ කළ නොහැකි විය.",
        "uploadvirus": "මෙම ගොනුවෙහි වයිරසයක් අඩංගුය! විස්තර: $1",
        "uploadjava": "මෙය ZIP ගොනුවක් වන අතර ජාවා .class ගොනු අඩංගු වෙයි.\nජාවා ගොනු උඩුගත කිරීම සදහා අවසර ලබා නොදේ, මන්ද ඒවා ආරක්ෂිත අවහිරතා මගහැර යාමට හේතු විය හැක.",
        "upload-source": "මූලාශ්‍ර ගොනුව",
        "upload-misc-error-text": "උඩුගත කිරීමේදී හඳුනාගත නොහැකි දෝෂයක් සිදුවිය.\nURLහි නීතික බව හා ප්‍රවේශ්‍ය බව තහවුරුකරගෙන නැවත උත්සාහ කරන්න.\nගැටළුව තවදුරටත් පවතී නම්, [[Special:ListUsers/sysop|පරිපාලකවරයෙකු]] අමතන්න.",
        "upload-too-many-redirects": "අන්තර්ජාල ලිපිනයෙහි පමණට වඩා යළි-යොමුවීම් අඩංගු වෙයි",
        "upload-http-error": "HTTP දෝෂයක් හට ගැනිණි: $1",
+       "upload-copy-upload-invalid-domain": "පිටපත් උඩුගත කිරීම් මෙම වසම සිට ලබා ගත නොහැකි වේ.",
        "backend-fail-stream": "$1 ගොනුව ප්‍රවාහ කල නොහැක.",
        "backend-fail-backup": "$1 ගොනුව උපස්ථ කල නොහැක.",
        "backend-fail-notexists": "$1 ගොනුව නොපවතියි.",
        "backend-fail-notsame": "$1 හී හඳුනා නොගත් ගොනුවක් දැනටමත් පවතියි.",
        "backend-fail-invalidpath": "$1 යනු වලංගු ගබඩාකරණ මඟක් නොවේ.",
        "backend-fail-delete": "$1 ගොනුව මකාදැමිය නොහැක.",
+       "backend-fail-describe": "ගොනුව \"$1\" සඳහා පාරදත්ත වෙනස් කළ නොහැක.",
        "backend-fail-alreadyexists": "$1 ගොනුව දැනටමත් පවතියි.",
        "backend-fail-store": "$1 ගොනුව $2 හීදි ගබඩා කල නොහැක .",
        "backend-fail-copy": "$1 ගොනුව $2 වෙත පිටපත් කල නොහැක .",
        "backend-fail-create": "$1 ගොනුව ලිවිය නොහැකි විය.",
        "backend-fail-maxsize": "{{PLURAL:$2|බයිට එකකට|බයිට $2 කට}} වඩා විහාල බැවින්  $1 ගොනුව ලිවිය නොහැකි විය.",
        "backend-fail-readonly": "ගබඩා බැක්එන්ඩය \"$1\" දැනට කියවීම-පමණක් සඳහා වෙයි. දක්වා ඇති හේතුව නම්: \"''$2''\"",
+       "backend-fail-synced": "මෙම ගොනුව \"$1\" අභ්යන්තර ගබඩා backends තුළ අස්ථාවර වේ",
+       "backend-fail-connect": "ගබඩා ශයට, \"$1\" වෙත සම්බන්ධ විය නොහැක.",
+       "backend-fail-internal": "නොදන්නා දෝෂයක් ගබඩා ශයට, \"$1\" තුළ සිදු විය.",
+       "backend-fail-contenttype": "\"$1\" ට ගබඩා කිරීම සඳහා ගොනුවේ අන්තර්ගතයේ වර්ගය තීරණය කළ නොහැක.",
+       "backend-fail-batchsize": "මෙම ගබඩා ශයට $1 ගොනු එක් කණ්ඩායමක් දෙන ලදී{{PLURAL:$1|මෙහෙයුම|මෙහෙයුම්}}; සීමාව වේ $2 {{PLURAL:$2|මෙහෙයුම|මෙහෙයුම්}}.",
        "backend-fail-usable": "අවසර ප්‍රමාණවත් නොවීම නිසාවෙන් හෝ නාමාවලී/බහාලුම් නොමැති වීම නිසාවෙන් \"$1\" ගොනුව කියවිය හෝ ලිවිය හෝ නොහැකි විය.",
+       "filejournal-fail-dbconnect": "ගබඩා ශයට, \"$1\" සඳහා සඟරාවක් දත්ත සමුදායට සම්බන්ධ විය නොහැක.",
+       "filejournal-fail-dbquery": "ගබඩා ශයට, \"$1\" සඳහා සඟරාවක් දත්ත යාවත්කාලීන කිරීමට නොහැකි විය.",
        "lockmanager-notlocked": "\"$1\" හී අගුළු ඇරිය නොහැක; එය අගුළු දමාද නොමැත.",
        "lockmanager-fail-closelock": "\"$1\" සඳහා වූ අගුලු ගතකර ඇති ගොනුව වැසිය නොහැක.",
        "lockmanager-fail-deletelock": "\"$1\" සඳහා වූ අගුලු ගතකර ඇති ගොනුව මැකිය නොහැක.",
        "lockmanager-fail-acquirelock": "\"$1\" සඳහා වූ අගුලු දැමීම ලබා ගත නොහැක.",
        "lockmanager-fail-openlock": "\"$1\" සඳහා වූ අගුලු ගතකර ඇති ගොනුව විවෘත කල නොහැක.",
        "lockmanager-fail-releaselock": "\"$1\" සඳහා වූ අගුලු දැමීම නිදහස් කල නොහැක.",
+       "lockmanager-fail-db-bucket": "බාල්දිය $1 තරම් අගුල දත්ත හා සම්බන්ධ කිරීමට නොහැකි විය.",
        "lockmanager-fail-db-release": "$1 දත්ත ගබඩාවෙහි අගුලු අත්හල නොහැක.",
+       "lockmanager-fail-svr-acquire": "සේවාදායක $1 මත අගුල් ලබාගැනීමට නොහැකි විය.",
        "lockmanager-fail-svr-release": "$1 සර්වරයෙහි අගුලු අත්හල නොහැක.",
        "zip-file-open-error": "ZIP පිරික්සුම් සඳහා ගොනුව විවෘත කරද්දී දෝෂයක් ඇති විය.",
        "zip-wrong-format": "සඳහන් ගොනුව ZIP ගොනුවෙහි නොතිබිණි.",
        "license": "බලය ලබා දීම:",
        "license-header": "බලපත්‍රීකරණය",
        "nolicense": "කිසිවක් තෝරාගෙන නැති",
+       "licenses-edit": "සංස්කරණය කරන්න බලපත්රය විකල්ප",
        "license-nopreview": "(පෙර-දසුන  නැරඹිය නොහැක)",
        "upload_source_url": "(වලංගු සහ ප්‍රජාවට විවෘත URL ලිපිනයකි)",
-       "upload_source_file": " (ඔබගේ පරිගණකයේ ගොනුවකි)",
+       "upload_source_file": "(ඔබගේ පරිගණකයේ ගොනුවකි)",
+       "listfiles-delete": "මකන්න",
        "listfiles-summary": "මෙම විශේෂ පිටුවෙහි දැක්වෙන්නේ සියළු උඩුගත කල ගොනුය.",
        "listfiles_search_for": "මාධ්‍ය නාමය සඳහා ගවේෂණය කරන්න:",
+       "listfiles-userdoesnotexist": "\"$1\" පරිශීලක ගිණුම ලියාපදිංචි කර නොමැත.",
        "imgfile": "ගොනුව",
        "listfiles": "ගොනු ලැයිස්තුව",
        "listfiles_thumb": "සිඟිති-රූපය",
        "listfiles-latestversion-no": "නැත",
        "file-anchor-link": "ගොනුව",
        "filehist": "ගොනු ඉතිහාසය",
-       "filehist-help": "එම අවස්ථාවෙහිදී  ගොනුව පැවැති ආකාරය නැරඹීම ඔබ හට රිසි නම්  දිනය/වේලාව මත ක්ලික් කරන්න.",
+       "filehist-help": "එම අවස්ථාවෙහිදී  ගොනුව පැවැති ආකාරය නැරඹීම දිනය/වේලාව මත ක්ලික් කරන්න.",
        "filehist-deleteall": "සියල්ල මකන්න",
        "filehist-deleteone": "මකන්න",
        "filehist-revert": "ප්‍රතිවර්තනය",
        "filehist-current": "වත්මන්",
        "filehist-datetime": "දිනය/වේලාව",
-       "filehist-thumb": "à·\83à·\92à¶\9fà·\92තà·\92-රූපය",
-       "filehist-thumbtext": " $1à·\80න à·\80à·\92ට à¶\85නà·\94à·\80à·\8fදය à·\83ඳà·\84à·\8f à·\83à·\92à¶\9fà·\92තà·\92-රූපය",
+       "filehist-thumb": "à\9aà·\94ඩà·\8f-රූපය",
+       "filehist-thumbtext": " $1à·\80න à·\80à·\92ට à¶\85නà·\94à·\80à·\8fදය à·\83ඳà·\84à·\8f à\9aà·\94ඩà·\8f-රූපය",
        "filehist-nothumb": "සිඟිති-රූපයක් නොමැත",
        "filehist-user": "පරිශීලක",
        "filehist-dimensions": "මාන",
        "filehist-filesize": "ගොනුවේ විශාලත්වය",
        "filehist-comment": "පරිකථනය",
        "imagelinks": "ගොනු භාවිතය",
-       "linkstoimage": "මà·\99ම à¶\9cà·\9cනà·\94à·\80ට  {{PLURAL:$1|ලà·\92පà·\92ය à¶¶à·\90â\80\8dඳà·\99යà·\92|ලà·\92පà·\92 $1 à¶\9aà·\8a à¶¶à·\90ඳà·\99තà·\92}}:",
+       "linkstoimage": "මà·\99ම à¶\9cà·\9cනà·\94à·\80ට  {{PLURAL:$1|ලà·\92පà·\92ය à¶¶à·\90â\80\8dඳà·\99යà·\92|ලà·\92පà·\92 $1 à¶\9aà·\8a à¶¶à·\90ඳà·\9a}}:",
        "linkstoimage-more": "මෙම ගොනුවට {{PLURAL:$1|පිටුවකට |පිටු  $1 කට}} වඩා වැඩි ගණනක් සබැ‍ඳේ.\nමෙම පිටුවට පමණක් අදාළ වන {{PLURAL:$1|පළමු පිටු සබැඳිය|පළමු පිටු සබැඳියන් $1 }} මෙහි පහත ලැයිස්තුවෙහි දැක්වේ.\n [[Special:WhatLinksHere/$2|සම්පූර්ණ ලැයිස්තුව]]ක්ද තිබේ.",
        "nolinkstoimage": "මෙම ගොනුවට සබැඳෙන පිටු කිසිවක් නොමැත.",
        "morelinkstoimage": "මෙම ගොනුව සඳහා [[Special:WhatLinksHere/$1|තවත් සබැඳි]] තිබේදැයි නරඹන්න.",
        "sharedupload": "මෙම ගොනුව $1 වෙතින් වන අතර අනෙකුත් ව්‍යාපෘතින් සඳහාද භාවිතා කල හැකි වෙයි.",
        "sharedupload-desc-there": "මෙම ගොනුව  $1 වෙතින් වන අතර අනෙකුත් ව්‍යාපෘතීන් විසින්ද භාවිතා කල හැක.\nවැඩි විස්තර සඳහා කරුණාකර [$2 ගොනු විස්තර පිටුව] බලන්න.",
        "sharedupload-desc-here": "මෙම ගොනුව  $1 වෙතින් වන අතර අනෙකුත් ව්‍යාපෘතීන් විසින්ද භාවිතා කල හැක.\nඑහි [$2 ගොනු විස්තර පිටුව] තුල අඩංගු විස්තර මෙහි පහත දැක්වෙයි.",
+       "sharedupload-desc-edit": "මෙම ගොනුව $1 වෙතින් වන අතර අනෙකුත් ව්යාපෘතීන් විසින්ද භාවිතා කල හැක. සමහර විට ඔබ එහි එහි [$2 ගොනු විස්තර පිටුව] තුල අඩංගු විස්තර සංස්කරණය කරන්න ඕනේ.",
+       "sharedupload-desc-create": "මෙම ගොනුව $1 වෙතින් වන අතර අනෙකුත් ව්යාපෘතීන් විසින්ද භාවිතා කල හැක. සමහර විට ඔබ එහි එහි [$2 ගොනු විස්තර පිටුව] තුල අඩංගු විස්තර සංස්කරණය කරන්න ඕනේ.",
        "filepage-nofile": "මෙම නම සහිත ගොනුවක් නොපවතියි.",
        "filepage-nofile-link": "මෙම නම සහිත ගොනුවක් නොපවතින නමුදු, ඔබ විසින් [$1 එය උඩුගතතිරීම] සිදුකල හැක.",
        "uploadnewversion-linktext": "මෙම ගොනුවෙහි නව අනුවාදයක් උඩුගත කරන්න",
        "shared-repo-from": "$1 වෙතින්",
        "shared-repo": "හවුල් සුරක්ෂිතාගාරයකි",
-       "upload-disallowed-here": "à¶\94බට à¶¸à·\99ම à¶\9cà·\9cනà·\94à·\80 à¶\8bඩින් ලිවිය නොහැක.",
+       "upload-disallowed-here": "à¶\94බට à¶¸à·\99ම à¶\9cà·\9cනà·\94à·\80 à¶¸à¶­ින් ලිවිය නොහැක.",
        "filerevert": "$1 ප්‍රතිවර්තනය කරන්න",
        "filerevert-legend": "ගොනුව ප්‍රතිවර්තනය කරන්න",
        "filerevert-intro": "ඔබ විසින්  '''[[Media:$1|$1]]''' ප්‍රතිවර්තනය කරමින් පවතින්නේ  [ $2 දින, $3 වේලාවේ පැවැති $4 අනුවාදයටයි ].",
        "download": "බාගතකිරීම",
        "unwatchedpages": "මුර-නොකෙරෙන පිටු",
        "listredirects": "යළි-යොමුවීම් ලැයිස්තුව",
+       "listduplicatedfiles": "අනුපිටපත් ගොනු ලැයිස්තුව",
+       "listduplicatedfiles-summary": "මෙම ගොනුවේ බොහෝ මෑතදී සමහර අනෙකුත් ගොනු වඩාත් මෑත අනුවාදය අනුපිටපතක් කොහෙද ගොනු ලැයිස්තුවකි. එකම දේශීය ගොනු ලෙස සලකනු ලැබේ.",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]] ඇත [[$3|{{PLURAL:$2|අනුපිටපතක්|$2 අනුපිටපත්}}]].",
        "unusedtemplates": "භාවිතා නොවූ සැකිලි",
        "unusedtemplatestext": "වෙනත් පිටුවක අඩංගු කොට නොමැති, සැකිලි නාමඅවකාශයෙහි සියළු පිටු මෙම පිටුවෙහි ලැයිස්තුගත කොට ඇත.\nඒවා මකාදැමීමට පෙර, සැකිලි සඳහා වෙනත් සබැඳි තිබේදැයි පරික්ෂා කර බැලීමට සුපරික්‍ෂාකාරී වන්න.",
        "unusedtemplateswlh": "අනෙකුත් සබැඳියන්",
        "randompage-nopages": "පහත {{PLURAL:$2|නාමඅවකාශය|නාමඅවකාශ}}:$1 හි කිසිදු පිටුවක් නොමැත.",
        "randomincategory": "ප්‍රවර්ගයේ අහඹු පිටු",
        "randomincategory-invalidcategory": "\"$1\" වලංගු ප්‍රවර්ග නාමයක් නොවේ.",
-       "randomincategory-nopages": " [[:ප්‍රවර්ගය:$1|$1]] ප්‍රවර්ගයේ පිටු නොමැත.",
+       "randomincategory-nopages": "[[:Category:$1|$1]] ප්‍රවර්ගයේ පිටු නොමැත.",
+       "randomincategory-category": "ප්‍රවර්ගය:",
        "randomincategory-legend": "ප්‍රවර්ගයේ අහඹු පිටු",
        "randomredirect": "අහුඹු යළි-යොමුකිරීම",
        "randomredirect-nopages": "\"$1\" නාම-අවකාශයෙහි යළි-යොමුවීම් නොමැත.",
        "statistics-users": "ලේඛනගත  [[Special:ListUsers|පරිශීලකයෝ]]",
        "statistics-users-active": "ක්‍රියාශීලි පරිශීලකයන්",
        "statistics-users-active-desc": "පසුගිය {{PLURAL:$1|දිනය|දින $1}} තුලදී කිසියම් ක්‍රියාවක් සිදු කල පරිශීලකයන්",
+       "pageswithprop": "පිටු දේපලක් සහිත පිටු",
+       "pageswithprop-legend": "පිටු දේපලක් සහිත පිටු",
+       "pageswithprop-text": "මෙම පිටුව කිසියම් සුවිශේෂී පිටුවක දේපල භාවිතා කරන පිටු ලැයිස්තුගත කරයි.",
        "pageswithprop-prop": "ගුණ නාමය:",
        "pageswithprop-submit": "යන්න",
+       "pageswithprop-prophidden-long": "සඟවා දිගු පෙළ දේපල වටිනාකම ($1)",
        "pageswithprop-prophidden-binary": "ද්විමය ගුණ අගය සැඟවී ($1)",
        "doubleredirects": "ද්විත්ව යළි-යොමුකිරීම්",
        "doubleredirectstext": "අනෙකුත් යළි-යොමුවීම් පිටුවලට යළි-යොමුවන පිටුවල ලැයිස්තුවක් මෙම පිටුවේ දැක්වේ.\nඑක් එක් පේළියක අඩංගු වන්නේ පළමු හා දෙවන යළි-යොමුවීම් වලට සබැඳි හා ඒ සමග පළමු යළි-යොමුව එල්ල වන්නාවූ, සාමාන්‍යයෙන් \"සත්‍ය\" ඉලක්ක පිටුව වන, දෙවන යළි-යොමුවේ ඉලක්කයයි.<del>කපා හැරි</del> නිවේශිතයන් පිලිබඳ ගැටළු විසඳා ඇත.",
-       "double-redirect-fixed-move": "[[$1]] ගෙන ගොස් ඇත, එය දැන් [[$2]] වෙතට යළි-යොමුවකි",
+       "double-redirect-fixed-move": "[[$1]] ගෙන ගොස් ඇත.\nඑය දැන් [[$2]] වෙතට යළි-යොමුවකි.",
        "double-redirect-fixed-maintenance": "[[$1]] සිට [[$2]] දක්වා ද්විත්ව යළි-යොමුකිරීමක් පිළිසකර කරමිනි.",
        "double-redirect-fixer": "යළි-යොමුවීම් උපස්ථායක",
        "brokenredirects": "භින්න වූ ආපසු හැරවුම්",
        "ncategories": "{{PLURAL:$1|එක් ප්‍රවර්ගයකි|ප්‍රවර්ගයන් $1 කි}}",
        "ninterwikis": "{{PLURAL:$1|අන්තර්විකි}} $1 ක්",
        "nlinks": "{{PLURAL:$1|එක් සබැඳියකි|සබැඳියන් $1 කි}}",
-       "nmembers": "{{PLURAL:$1|එක් සාමාජිකයෙකි|සාමාජීකයන් $1 කි}}",
+       "nmembers": "{{PLURAL:$1|එක් සාමාජිකයෙකි|සාමාජිකයෝ $1 කි}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|සාමාජිකයන්|සාමාජික}}",
        "nrevisions": "{{PLURAL:$1|එක් සංශෝධනයකි|සංශෝධන $1 කි }}",
        "nviews": " {{PLURAL:$1|නැරඹුම් එකකි|නැරඹුම් $1 කි}}",
        "nimagelinks": "{{PLURAL:$1|පිටු|පිටු}} $1 ක භාවිතාකර ඇත",
        "unusedimages": "භාවිතා නොවූ ගොනු",
        "wantedcategories": "අවශ්‍ය ප්‍රවර්ග",
        "wantedpages": "අවශ්‍ය පිටු",
+       "wantedpages-summary": "පමණක් ඔවුන්ට සම්බන්ධ යළි-යොමුකරයි ඇති පිටු හැර ඔවුන්ට වඩාත් සබැඳි සමග නොවන පවතින පිටු ලැයිස්තුව. ඔවුන්ට සම්බන්ධ යළි-යොමුකරයි ඇති බව නොපවතින පිටු ලැයිස්තුවක් සඳහා, බලන්න [[{{#special:BrokenRedirects}}]].",
        "wantedpages-badtitle": "ප්‍රතිඵල ගොන්නේ අනීතික ශීර්ෂය: $1",
        "wantedfiles": "අවශ්‍ය ගොනු",
+       "wantedfiletext-cat": "පහත සඳහන් ගොනු භාවිතා කරන නමුත් පවතින නැහැ. විදේශ නිධි වලින් ගොනු නොතකා ලැයිස්තු ගත හැක. එවන් ඕනෑම බොරු ලංගමයෙන් <del> </del> පෙන්වා පහර කරනු ඇත. [[:$1]]. මීට අමතරව, පවතින නොවන බව එබ්බවීමට පිටු ලැයිස්තු ගත කර ඇත.",
+       "wantedfiletext-cat-noforeign": "පහත සඳහන් ගොනු භාවිතා කරන නමුත් පවතින නැහැ. [[:$1]]. මීට අමතරව, පවතින නොවන බව එබ්බවීමට පිටු ලැයිස්තු ගත කර ඇත.",
+       "wantedfiletext-nocat": "පහත සඳහන් ගොනු භාවිතා කරන නමුත් පවතින නැහැ. විදේශ නිධි වලින් ගොනු නොතකා ලැයිස්තු ගත හැක. එවන් ඕනෑම බොරු ලංගමයෙන් <del> </del> පෙන්වා පහර කරනු ඇත.",
+       "wantedfiletext-nocat-noforeign": "පහත සඳහන් ගොනු භාවිතා කරන නමුත් පවතින නැහැ.",
        "wantedtemplates": "අවශ්‍ය සැකිලි",
        "mostlinked": "පිටු වලට බෙහෙවින්ම සබැඳි",
        "mostlinkedcategories": "ප්‍රවර්ගයන්ට බෙහෙවින්ම සබැඳි",
        "mostlinkedtemplates": "සැකිලි වලට බෙහෙවින්ම සබැඳි",
        "mostcategories": "ප්‍රවර්ගයන් බොහෝමයක් සහිත පිටු",
        "mostimages": "ගොනු වලට බෙහෙවින්ම සබැඳි",
+       "mostinterwikis": "වඩාත් අන්තර්විකී සහිත පිටු",
        "mostrevisions": "වඩාත්ම සංශෝධන සහිත පිටු",
        "prefixindex": "උපසර්ගය සහිත සියළු පිටු",
        "prefixindex-namespace": "උපසර්ගය සමඟ ඇති සියලුම පිටු ($1 නාමඅවකාශය)",
+       "prefixindex-strip": "ලැයිස්තුවේ තීරය උපසර්ගය",
        "shortpages": "කෙටි පිටු",
        "longpages": "දිගු පිටු",
        "deadendpages": "අපගත-සීමා පිටු",
        "deadendpagestext": "පහත පිටු, {{SITENAME}} හි අනෙකුත් පිටු වෙත සබැඳී නොමැත.",
        "protectedpages": "ආරක්ෂිත පිටු",
        "protectedpages-indef": "අනිශ්චිත ආරක්ෂණයන් පමණයි",
+       "protectedpages-summary": "දැනට ආරක්ෂිත වී පිටු පවතින මෙම පිටුවෙහි ලැයිස්තුගත. [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]] නිර්මාණය ගෙන් සුරක්ෂිත බව නාම ලැයිස්තුවක් සඳහා, බලන්න.",
        "protectedpages-cascade": "තීරු-දර්ශන ආරක්ෂණයන් පමණයි",
+       "protectedpages-noredirect": "සඟවන්න යළි-යොමුකරයි",
        "protectedpagesempty": "මෙම පරාමිතීන් හා සමග සැලකූ කල,  කිසිදු පිටුවක් දැනට ආරක්ෂිත වී නොමැත.",
+       "protectedpages-timestamp": "කාලමුද්‍රාව",
        "protectedpages-page": "පිටුව",
        "protectedpages-expiry": "ඉකුත් වන්නේ",
        "protectedpages-performer": "පරිශීලකයා සුරැකීම",
        "protectedpages-unknown-timestamp": "අඥාත",
        "protectedpages-unknown-performer": "නොදන්නා පරිශීලක",
        "protectedtitles": "ආරක්‍ෂිත ශීර්ෂයන්",
+       "protectedtitles-summary": "දැනට මෙම පිටුවෙහි නිර්මාණය ගෙන් සුරක්ෂිත බව මාතෘකා ලැයිස්තුගත කරයි. [[{{#special:ProtectedPages}}|{{int:protectedpages}}]] ආරක්ෂා කරන බව දැනට පවතින පිටු ලැයිස්තුවක් සඳහා, බලන්න.",
        "protectedtitlesempty": "මෙම පරාමිතීන් හා සමග සැලකූ කල, කිසිදු ශීර්ෂයක් දැනට ආරක්ෂිත වී නොමැත.",
        "listusers": "පරිශීලක ලැයිස්තුව",
        "listusers-editsonly": "සංස්කරණයන් සිදුකර ඇති පරිශීලකයන් පමණක් පෙන්වන්න",
        "alllogstext": "{{SITENAME}} හි සියළු සුගම ලඝු-සටහන් හි සංයුක්ත සංදර්ශකය.\nලඝු-සටහන් වර්ගය, පරිශීලක නාමය හෝ  බලපෑම එල්ල වූ පිටුව තෝරාගැනුමෙන් ඔබහට නැරඹුමෙහි පුළුල අඩු කර ගත හැක.",
        "logempty": "ලඝු-සටහනෙහි ගැලපෙන අයිතමයන් කිසිවක් නොමැත.",
        "log-title-wildcard": "මෙම පෙළෙන් ඇරඹෙන ශීර්ෂ සඳහා ගවේෂණය කරන්න",
+       "showhideselectedlogentries": "තෝරාගත් ලඝු සටහන් ඇතුළත් කිරීම් වෙනස් දෘශ්යතාව",
+       "log-edit-tags": "තෝරාගත් ලඝු සටහන් ඇතුළත් කිරීම් සංස්කරණය ටැග්ස්",
        "allpages": "සියළු පිටු",
        "nextpage": "මීළඟ පිටුව ($1)",
        "prevpage": "පෙර පිටුව ($1)",
        "allpagesbadtitle": "සපයා ඇති පිටු ශීර්ෂය අනීතික විය නැතහොත් එහි අන්තර්-භාෂා හෝ අන්තර් විකී උපසර්ගයක් අඩංගු විය.\nශීර්ෂයන්හි අඩංගු විය නොහැකි අක්ෂර එකක් හෝ කිහිපයක් හෝ එහි අඩංගු වී තිබිය හැක.",
        "allpages-bad-ns": "{{SITENAME}} හි  \"$1\" නාමඅවකාශය නොමැත.",
        "allpages-hide-redirects": "යළි-යොමු සඟවන්න",
+       "cachedspecial-viewing-cached-ttl": "ඔබ දක්වා $1 පැරණි විය හැකි මෙම පිටුවේ පූර්වාපේක්ෂිතව සංචිත අනුවාදය, නරඹන.",
+       "cachedspecial-viewing-cached-ts": "ඔබ සම්පූර්ණයෙන්ම සත්ය නොවිය හැකි මෙම පිටුවේ කැච් අනුවාදය, නරඹන.",
        "cachedspecial-refresh-now": "නවතමය නරඹන්න.",
        "categories": "ප්‍රවර්ග",
        "categoriespagetext": "පහත {{PLURAL:$1|ප්‍රවර්ගයෙහි අන්තර්ගතය |ප්‍රවර්ගයන්හි අන්තර්ගතයන්}} වනුයේ පිටු හෝ මාධ්‍යයන්ය.\n[[Special:UnusedCategories|භාවිතනොවූ  ප්‍රවර්ගයන්]] මෙහි පෙන්වා දක්වා නොමැත.\n [[Special:WantedCategories|අවශ්‍ය ප්‍රවර්ගයන්]]ද බලන්න.",
        "linksearch-pat": "ගවේෂණ රටාව:",
        "linksearch-ns": "නාම-අවකාශය:",
        "linksearch-ok": "ගවේෂණය",
-       "linksearch-text": "\"*.wikipedia.org\" වැනි ආදේශක භාවිතා කල හැක.\nඅඩුම තරමින් උසස්-මට්ටමේ වසමක් අවශ්‍යයි, නිදසුනක් ලෙස \"*.org\".<br />\nසහය දක්වන ප්‍රෝටෝකොලයන්: <code>$1</code> (ඔබේ සෙවුමෙහි මේවා කිසිවක් නොයොදන්න).",
+       "linksearch-text": "\"*.wikipedia.org\" වැනි ආදේශක භාවිතා කල හැක.\nඅඩුම තරමින් උසස්-මට්ටමේ වසමක් අවශ්‍යයි, නිදසුනක් ලෙස \"*.org\".<br />\nසහය දක්වන : <code>$1</code> (ඔබේ සෙවුමෙහි මේවා කිසිවක් නොයොදන්න). {{PLURAL:$2|ප්‍රෝටෝකොලය|ප්‍රෝටෝකොලයන්}}:",
        "linksearch-line": "$2 වෙතින් $1 සබැඳිණි",
        "linksearch-error": "ආදේශක  පෙනීසිටිය හැක්කේ සත්කාරකනාමය ආරම්භයෙහි පමණයි.",
        "listusersfrom": "‍මෙම අකුරෙන් පටන්ගෙන පරිශීලකයන් ප්‍රදර්ශනය කරන්න:",
        "listusers-blocked": "(වාරණය කොට)",
        "activeusers": "සක්‍රීය පරිශීලකයන් ලැයිස්තුව",
        "activeusers-intro": "මෙය පසුගිය $1 {{PLURAL:$1|දිනය|දින}}තුළ යම් ක්‍රියාකාරකමක් කළ පරිශීලකයන්ගේ ලැයිස්තුවකි.",
-       "activeusers-count": "{{PLURAL:$1|à¶\91à¶\9aà·\8a à·\83à¶\82à·\83à·\8aà¶\9aරණයà¶\9aà·\8a|à·\83à¶\82à·\83à·\8aà¶\9aරණ $1 ක්}} අවසන් {{PLURAL:$3|දිනය|දින $3}} තුළ",
+       "activeusers-count": "{{PLURAL:$1|à¶\91à¶\9aà·\8a à¶´à·\92යà·\80රà¶\9aà·\8a|පà·\92යà·\80ර $1 ක්}} අවසන් {{PLURAL:$3|දිනය|දින $3}} තුළ",
        "activeusers-from": "මෙයින් ඇරඹෙන පරිශීලකයන් පෙන්වන්න:",
        "activeusers-hidebots": " bots සඟවන්න",
        "activeusers-hidesysops": "පරිපාලකයින් සඟවන්න",
        "activeusers-noresult": "කිසිදු පරිශීලකයෙකු හමුනොවිණි.",
        "listgrouprights": "පරිශීලක කාණ්ඩ හිමිකම්",
        "listgrouprights-summary": "මෙම විකියේ අර්ථදක්වා ඇති පරිශීලක කාණ්ඩ ලැයිස්තුවක් ඔවුනට අදාළ ප්‍රවේශ හිමිකම්ද සමගින් මෙහි පහත ලැයිස්තුගත කොට ඇත.\nපුද්ගලික හිමිකම් පිළිබඳ  [[{{MediaWiki:Listgrouprights-helppage}}|වැඩිමනත් තොරතුරු]] පැවතිය හැක.",
-       "listgrouprights-key": "* <span class=\"listgrouprights-granted\">හිමිකම ප්‍රදානය කෙරිණි </span>\n* <span class=\"listgrouprights-revoked\">හිමිකම අහෝසි කෙරිණි </span>",
+       "listgrouprights-key": "ආඛ්යායිකාව:\n* <span class=\"listgrouprights-granted\">හිමිකම ප්‍රදානය කෙරිණි </span>\n* <span class=\"listgrouprights-revoked\">හිමිකම අහෝසි කෙරිණි </span>",
        "listgrouprights-group": "කාණ්ඩය",
        "listgrouprights-rights": "හිමිකම්",
        "listgrouprights-helppage": "Help:කාණ්ඩ හිමිකම්",
        "listgrouprights-removegroup-self": "{{PLURAL:$2|කාණ්ඩය|කාණ්ඩයන්}} ස්වීය ගිණුමෙන් ඉවත් කරන්න: $1",
        "listgrouprights-addgroup-self-all": "සි‍යළු කාණ්ඩයන් ස්වීය ගිණුමට එක්කරන්න",
        "listgrouprights-removegroup-self-all": "සියළු කාණ්ඩයන් ස්වීය ගිණුමෙන් ඉවත් කරන්න",
+       "listgrouprights-namespaceprotection-header": "නාමඅවකාශය සීමා",
+       "listgrouprights-namespaceprotection-namespace": "නාමඅවකාශය",
+       "listgrouprights-namespaceprotection-restrictedto": "පරිශීලක සංස්කරණය කිරීමට ඉඩ (ව) රයිට්",
+       "trackingcategories": "රංග ශිල්පීන් ප්රවර්ග",
+       "trackingcategories-summary": "ස්වයංක්රීයව මාධ්යවිකි මෘදුකාංග විසින් ජනාකීර්ණ වන කාණ්ඩ සොයා ගැනීමට මෙම පිටුවෙහි ලැයිස්තුගත. නාමඅවකාශය: ඔවුන්ගේ නම් {{ns:8}} අදාළ පද්ධති පණිවුඩ වෙනස් වෙනස් කළ හැක.",
+       "trackingcategories-msg": "ට්රැකින් ප්රවර්ගය",
+       "trackingcategories-name": "පණිවිඩය නම",
+       "trackingcategories-desc": "ප්රවර්ගය ඇතුලත් නිර්ණායක",
+       "noindex-category-desc": "එය මත මැජික් වචනය <code> <nowiki> __ NOINDEX __ </nowiki> </code> ඇති අතර එම ධජය ඉඩ කර තිබෙන නාමඅවකාශයෙහි නිසා මෙම පිටුව රොබෝවරු සුචිගත කර නැත.",
+       "index-category-desc": "මෙම පිටුව එය මත <code> <nowiki> __ සූචිය __ </nowiki> </code> ඇත (හා බව ධජය ඉඩ කර තිබෙන නාමඅවකාශයෙහි මිල), සහ ඒ නිසා එය සාමාන්යයෙන් නොවන තැන රොබෝවරු සුචිගත කර ඇත.",
+       "post-expand-template-inclusion-category-desc": "පිටු විශාලත්වය නිසා සමහර සැකිලි පුළුල් නැත, සියලු සැකිලි පුළුල් කරමින් <code>$wgMaxArticleSize</code> වඩා විශාල වේ.",
+       "post-expand-template-argument-category-desc": "මෙම පිටුව සැකිලි තර්කය (<code> {{{ෆූ}}} </code> වැනි ත්රිත්ව සඟල යමක්,) පුළුල් කරමින් <code> $wgMaxArticleSize </code> වඩා විශාල වේ.",
+       "expensive-parserfunction-category-desc": "මෙම පිටුව (<code> #ifexist </code> වැනි) බොහෝ මිල අධික විග්රහ ශ්රිතයන් කර ගනී. [: $WgExpensiveParserFunctionLimit https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit ස්වයංක්රීය ගියර් සහිත මෝටර් රථ] බලන්න.",
+       "broken-file-category-desc": "මෙම පිටුව බිඳුණු ගොනු සබැඳිය (ගොනුව නොපවතියි විට ගොනු ඉස්මතු කරලීම සඳහා සබැඳිය) අඩංගු වේ.",
+       "trackingcategories-nodesc": "ලබා ගත විස්තරයක් නොමැත.",
+       "trackingcategories-disabled": "ප්‍රවර්ගය අක්‍රියයි",
        "mailnologin": "යායුතු ලිපිනය නොමැත",
        "mailnologintext": "අනෙකුත් පරිශීලකයන්හට  විද්‍යුත්-තැපැල් යැවුමට පෙරාතුව, ඔබ [[Special:UserLogin|ප්‍රවිෂ්ට වී]], ඔබගේ  [[Special:Preferences|අභිරුචියන්හි]]  නීතික විද්‍යුත්-තැපැල් ලිපිනයක් සඳහන් කර තිබිය යුතුය.",
        "emailuser": "මෙම පරිශීලක වෙත විද්‍යුත්-ලිපියක් යවන්න",
+       "emailuser-title-target": "මෙම {{GENDER:$1|පරිශීලක}} ඊ-තැපැල් කරන්න",
        "emailuser-title-notarget": " පරිශීලකට විද්‍යුත්-ලිපියක් යවන්න",
        "emailpage": " පරිශීලකට විද්‍යුත්-ලිපියක් යවන්න",
-       "emailpagetext": "මෙම පරිශීලකයා හට විද්‍යුත්-තැපෑල් පණිවුඩයක් යැවීම සඳහා මෙම ආකෘති පත්‍රය භාවිතා කිරීමට ඔබ හට හැක.\nලබන්නා විසින් සෘජු ලෙස ඔබ හට පිළිතුරු එවනු හැකි වන පරිදි, ඔබ විසින් [[Special:Preferences|ඔබගේ පරිශීලක අභිරුචියන්]] හි ඇතුළත් කල විද්‍යුත්-තැපැල් ලිපිනය,  විද්‍යුත්-තැපෑලෙහි \"වෙතින්\" ලිපිනයෙහි පෙන්නුම් කරනු ඇත.",
+       "emailpagetext": "මෙම {{GENDER:$1|පරිශීලකයා}} හට විද්‍යුත්-තැපෑල් පණිවුඩයක් යැවීම සඳහා මෙම ආකෘති පත්‍රය භාවිතා කිරීමට ඔබ හට හැක.\nලබන්නා විසින් සෘජු ලෙස ඔබ හට පිළිතුරු එවනු හැකි වන පරිදි, ඔබ විසින් [[Special:Preferences|ඔබගේ පරිශීලක අභිරුචියන්]] හි ඇතුළත් කල විද්‍යුත්-තැපැල් ලිපිනය,  විද්‍යුත්-තැපෑලෙහි \"වෙතින්\" ලිපිනයෙහි පෙන්නුම් කරනු ඇත.",
        "defemailsubject": "{{SITENAME}} පරිශීලක \"$1\" වෙතින් විද්‍යුත්-තැපෑල",
        "usermaildisabled": "ඔබගේ විද්‍යුත්-තැපෑල අක්‍රීය කොට ඇත",
        "usermaildisabledtext": "මෙම විකියෙහි අනෙකුත් පරිශීලකයන් හට විද්‍යුත්-ගැපැල් යැවීමට ඔබ හට නොහැක",
        "emailccsubject": "$1: $2 වෙත ඔබගේ පණිවුඩය පිටපත් කරන්න",
        "emailsent": "විද්‍යුත්-තැපෑල යවන ලදි",
        "emailsenttext": "ඔබගේ  විද්‍යුත්-තැපැල්  පණිවුඩය යවා ඇත.",
-       "emailuserfooter": "{{SITENAME}} හි  \" පරිශීලකට විද්‍යුත්-තැපැලක් යවන්න\" ශ්‍රිතය අනුසාරයෙන් $1 විසින්  $2  වෙත  විද්‍යුත්-තැපෑලක් යවන ලදි.",
+       "emailuserfooter": "{{SITENAME}} හි \"{{int:emailpage}}\" ශ්‍රිතය අනුසාරයෙන් $1 විසින්  $2  වෙත  විද්‍යුත්-තැපෑලක් යවන ලදි.",
        "usermessage-summary": "පද්ධති පණිවුඩයක් තබමි.",
        "usermessage-editor": "පද්ධති පණිවුඩ කරු",
        "watchlist": "මුරලැයිස්තුව",
        "mywatchlist": "මුර-ලැයිස්තුව",
        "watchlistfor2": "$1 සඳහා ($2)",
        "nowatchlist": "ඔබගේ මුර-ලැයිස්තුවේ කිසිදු අයිතමයක් නොමැත.",
-       "watchlistanontext": "à¶\94බà¶\9cà·\9a à¶¸à·\94ර-ලà·\90යà·\92à·\83à·\8aතà·\94à·\80à·\99à·\84à·\92 à¶\85යà·\92තම à¶±à·\90රඹà·\93මට à·\84à·\9d à·\83à¶\82à·\83à·\8aà¶\9aරණය à¶\9aà·\92රà·\93මට à·\84à·\9d à¶\9aරà·\94ණà·\8fà¶\9aර $1 à·\83පà·\94රන්න.",
+       "watchlistanontext": "à¶\94බà¶\9cà·\9a à¶¸à·\94ර-ලà·\90යà·\92à·\83à·\8aතà·\94à·\80à·\99à·\84à·\92 à¶\85යà·\92තම à¶±à·\90රඹà·\93මට à·\84à·\9d à·\83à¶\82à·\83à·\8aà¶\9aරණය à¶\9aà·\92රà·\93මට à¶´à·\8aරà·\80à·\92à·\82à·\8aට à·\80න්න.",
        "watchnologin": "ප්‍රවිෂ්ට වී නොමැත",
        "addwatch": "මුර ලැයිස්තුවට එක් කරන්න",
        "addedwatchtext": "\"[[:$1]]\" පිටුව ඔබගේ [[Special:Watchlist|මුර-ලැයිස්තුවට]] එක් කොට ඇත.\nමෙම පිටුවට සහ එයට අදාළ සාකච්ඡා පිටුවට ඉදිරියෙහිදී සිදු කෙරෙන වෙනස්කිරීම් ලයිස්තුගත වන අතර, ‍තෝරාගැනීමේගැනීමෙහි පහසුව තකා,  [[Special:RecentChanges|මෑත වෙනස්වීම් ලැයිස්තුව]]  තුල මෙම පිටුව  '''තදකුරු''' වලින් දක්වනු ඇත.",
+       "addedwatchtext-short": "මෙම පිටුව, \"$1\" පිටුව ඔබගේ මුර ද එක් කර ඇත.",
        "removewatch": "මුරලැයිස්තුවෙන් ඉවත් කරන්න",
        "removedwatchtext": "මෙම \"[[:$1]]\"  පිටුව  [[Special:Watchlist|ඔබගේ  මුර-ලැයිස්තුවෙන්]] ඉවත් කරන ලදි.",
+       "removedwatchtext-short": "මෙම පිටුව, \"$1\" පිටුව ඔබගේ මුර ඉවත් කර ඇත.",
        "watch": "මුර කරන්න",
        "watchthispage": "මෙම පිටුව මුර කරන්න",
        "unwatch": "මුර නොකරන්න",
        "unwatchthispage": "මුර-කිරීම නවතින්න",
        "notanarticle": "අන්තර්ගත පිටුවක් නොවේ",
        "notvisiblerev": "සංශෝධනය මකාදමා ඇත",
-       "watchlist-details": "සාකච්ඡා පිටු නොගිණුනු කල, ඔබගේ මුර ලැයිස්තුවෙහි {{PLURAL:$1|එක් පිටුවක්|පිටු $1 ක්}} ඇත.",
+       "watchlist-details": "සාකච්ඡා පිටු නොගිණුනු කල, ඔබගේ මුර ලැයිස්තුවෙහි {{PLURAL:$1|$1 පිටුවක්|පිටු $1 ක්}} ඇත.",
        "wlheader-enotif": "විද්‍යුත් තැපැල් දැනුම්දීම සක්‍රීයයි.",
        "wlheader-showupdated": "ඔබ විසින් ඒවාට අවසන් වරට පිවිසුනු පසුව වෙනස්ව තිබෙන පිටු <strong>තදකුරු</strong> වලින් පෙන්වා ඇත.",
        "wlnote": "පහත දැක්වෙන්නේ $3, $4 මෙන්, අවසන් {{PLURAL:$2|පැය|පැය '''$2''' }} තුලදී සිදු කෙරී ඇති {{PLURAL:$1|අවසන් වෙනස්වීම්යි |අවසන් වෙනස්වීම්  '''$1''' යි}}.",
        "watcherrortext": "මුර-ලැයිස්තු සැකසුම් වෙනස් කිරීමේදී \"$1\"හට අපහසුතාවක් හට ගැණිනි.",
        "enotif_reset": "පිවිසුනු සියළු පිටු සලකුණු කරන්න",
        "enotif_impersonal_salutation": "{{SITENAME}} පරිශීලක",
+       "enotif_subject_deleted": "{{SITENAME}} $1 පිටුව $2 විසින් {{GENDER:$2|මකන}} ලදී",
+       "enotif_subject_created": "{{SITENAME}} $1 පිටුව $2 විසින් {{GENDER:$2|තනන}} ලදී",
+       "enotif_subject_moved": "{{SITENAME}} $1 පිටුව $2 විසින් {{GENDER:$2|ගෙන යන}} ලදී",
+       "enotif_subject_restored": "{{SITENAME}} $1 පිටුව $2 විසින් {{GENDER:$2|ප්‍රතිසාධනය}} ලදී",
+       "enotif_subject_changed": "{{SITENAME}} $1 පිටුව $2 විසින් {{GENDER:$2|වෙනස් කරන}} ලදී",
+       "enotif_body_intro_deleted": "මෙම {{SITENAME}} විසින් $1 පිටුව {{GENDER:$2|මකා}} ඇත $3 බලන්න, $2 වන විට ඇමෙරිකානු ඩොලර් PAGEEDITDATE මත.",
        "enotif_lastvisited": "ඔබගේ අවසාන පිවිසුමට පසු සිදුවූ සියළු වෙනස්වීම් නැරඹුමට $1 බලන්න.",
        "enotif_lastdiff": "මෙම වෙනස නැරඹීම සඳහා $1 බලන්න.",
        "enotif_anon_editor": "නිර්නාමික පරිශීලක $1",
        "actioncomplete": "ක්‍රියාව සමාප්තයි",
        "actionfailed": "කාර්යය අසාර්ථක විය",
        "deletedtext": "\"$1\" මකා දමා ඇත.\nමෑත මකාදැමීම් පිළිබඳ වාර්තාවක් සඳහා $2 බලන්න.",
-       "dellogpage": "මà¶\9aà·\8fදà·\90මà·\94මà·\8a à¶½à·\9cà¶\9cය",
+       "dellogpage": "මà¶\9aà·\8fදà·\90මà·\94මà·\8a à·\83ටà·\84න",
        "dellogpagetext": "පහත දැක්වෙන්නේ ඉතා මෑතදී සිදු කර ඇති මකාදැමීම් ලැයිස්තුවකි.",
        "deletionlog": "මකා-දැමුම් ලඝු-සටහන",
        "reverted": "පෙර සංශෝධනය වෙත ප්‍රතිවර්තනය කෙරිණි",
        "delete-warning-toobig": "මෙම පිටුවට, {{PLURAL:$1|එක් සංශෝධනයකට|සංශෝධන $1 කට}} වඩා වැඩි විශාල සංස්කරණ ඉතිහාසයක් ඇත.\nමෙය මකාදැමීම  {{SITENAME}} හි දත්ත-ගබඩා ක්‍රියාකාරකම් වලට අවහිරතා පැන නැංවීමට හේතු විය හැක;\nපරිස්සමින් ඉදිරි කටයුතු කරන්න.",
        "deleting-backlinks-warning": "'''ප්‍රවේශමෙන්:''' ඔබ සූදානම් වන්නේ ඔබ පරිශීලනය කරන පිටුවට සම්බන්ධ වූ අනෙක් පිටු මකා දැමීමටයි.",
        "rollback": "සංස්කරණයන් පුනරාවර්තනය කරන්න",
-       "rollbacklink": "පà·\8aâ\80\8dරතà·\92à·\80රà·\8aතනය",
+       "rollbacklink": "පà·\83à·\94පà·\99රà·\85à·\94ම",
        "rollbacklinkcount": "{{PLURAL:$1|සංස්කරණ}} $1 ක් ආපසු පෙරලන්න",
        "rollbackfailed": "පුනරාවර්තනය අසාර්ථකයි",
        "cantrollback": "සංස්කරණය ප්‍රතිවර්තනය කල නොහැක;\nඅවසන් දායකයා මෙම පිටුවේ එකම කතෘවරයාද වෙයි.",
        "prot_1movedto2": "[[$2]] දක්වා [[$1]] ගෙනයන ලදි",
        "protect-badnamespace-title": "ආරක්ෂිතකළ-නොහැකි නාමඅවකාශය",
        "protect-badnamespace-text": "මෙම නාමඅවකාශයෙහි තිබෙන පිටු ආරක්ෂණය කල නොහැක.",
+       "protect-norestrictiontypes-title": "ආරක්ෂිතකළ-නොහැකි පිටුව",
        "protect-legend": "ආරක්‍ෂණය තහවුරු කරන්න",
        "protectcomment": "හේතුව:",
        "protectexpiry": "ඉකුත් වීම:",
        "namespace_association": "ආශ්‍රිත නාම අවකාශය",
        "tooltip-namespace_association": "තෝරාගත් නාම අවකාශය හා සම්බන්ධ සාකච්ඡා හෝ විෂයය නාම අවකාශය ඇතුළත් කිරීමට මෙම කොටුව ලකුණු කරන්න",
        "blanknamespace": "(ප්‍රධාන)",
-       "contributions": "{{GENDER:$1|පරිශීලකගේ}} දායකත්වයන්",
+       "contributions": "{{GENDER:$1|පරිශීලකගේ}} දායකත්ව",
        "contributions-title": " $1 සඳහා පරිශීලක දායකත්වයන්",
        "mycontris": "දායකත්ව",
        "contribsub2": "{{GENDER:$3|$1}} සඳහා ($2)",
        "isredirect": "පිටුව යළි-යොමුකරන්න",
        "istemplate": "අන්තහ්කරණය",
        "isimage": "ගොනු සබැඳිය",
-       "whatlinkshere-prev": "{{PLURAL:$1|පà·\96රà·\8aà·\80|පà·\96රà·\8aà·\80 $1}}",
+       "whatlinkshere-prev": "{{PLURAL:$1|පà·\99ර|පà·\99ර $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|ඉදිරි|ඉදිරි $1}}",
        "whatlinkshere-links": "← සබැඳි",
        "whatlinkshere-hideredirs": "යළියොමු $1",
-       "whatlinkshere-hidetrans": "$1 අන්තර්ගතයන්",
-       "whatlinkshere-hidelinks": "සබැඳියන් $1",
+       "whatlinkshere-hidetrans": "$1 transclusions",
+       "whatlinkshere-hidelinks": "සබැඳි $1",
        "whatlinkshere-hideimages": "ගොනු සබැඳි $1",
        "whatlinkshere-filters": "පෙරහන්",
        "autoblockid": "ස්වයංවාරණය #$1",
        "blocklist-nousertalk": "ස්වීය සාකච්ඡා පිටුව සංස්කරණය කල නොහැක",
        "ipblocklist-empty": "වාරණ-ලැයිස්තුව හිස්ය.",
        "ipblocklist-no-results": "අයැදුනු අන්තර්ජාල ලිපිනය හෝ පරිශීලක නාමය හෝ වාරණයකට ලක්ව නොමැත.",
-       "blocklink": "à·\80à·\8fරණය",
+       "blocklink": "à\85à·\80à·\84à·\92ර à¶\9aරනà·\8aන",
        "unblocklink": "වාරණයෙන් ඉවත්වන්න",
        "change-blocklink": "වාරකය වෙනස් කරන්න",
        "contribslink": "දායකත්ව",
        "import": "පිටු ආයාත කරන්න",
        "importinterwiki": "අන්තර්විකී ආයාතය",
        "import-interwiki-text": "ආයාත කිරීම සඳහා විකියක් හා පිටු ශීර්ෂයක් තෝරාගන්න.\nසංශෝධන දිනයන් හා සංස්කාරකවරුන්ගේ නම් සංරක්‍ෂණය කෙරෙනු ඇත.\nසියළු අන්තර්විකි ආ‍යාත ක්‍රියාවන් [[Special:Log/import|ආයාත ලඝු-සටහනෙහි]] සටහන් වනු ඇත.",
+       "import-interwiki-sourcewiki": "මූලාශ්‍ර විකිය:",
        "import-interwiki-sourcepage": "මූලාශ්‍ර පිටුව:",
        "import-interwiki-history": "මෙම පිටුව සඳහා සියළු ඉතිහාස අනුවාදයන් පිටපත් කරන්න",
        "import-interwiki-templates": "සියළු සැකිලි අන්තර්ගත කරන්න",
        "tooltip-pt-anonuserpage": "සංස්කරණයට ඔබ භාවිතා කරමින් පවතින අන්තර්ජාල ලිපිනය සඳහා පරිශීලක පිටුව",
        "tooltip-pt-mytalk": "ඔබගේ සංවාද පිටුව",
        "tooltip-pt-anontalk": "මෙම අන්තර්ජාල ලිපිනයෙන් කර ඇති සංස්කරණයන් පිළිබඳ සාකච්ඡාව",
-       "tooltip-pt-preferences": "මගේ අභිරුචි",
+       "tooltip-pt-preferences": "මගේ අභිරුචි සැකසුම්",
        "tooltip-pt-watchlist": "වෙනස්වීම් සිදුවී තිබේදැයි යන්න පිලිබඳව ඔබගේ විමසුමට ලක්ව ඇති පිටු ලැයිස්තුව",
-       "tooltip-pt-mycontris": "ඔබගේ දායකත්වයන් ලැයිස්තුව‍",
-       "tooltip-pt-login": "පà·\92à·\80à·\92à·\83à·\93ම à¶\9aà·\99රà·\99à·\84à·\92 à¶\94බ à¶\8bදà·\8aâ\80\8dයà·\9dà¶\9cà·\92මතà·\8a à¶\9aà·\99රà·\99යà·\92. à¶\91à·\84à·\99තà·\8a, à¶\91ය à¶\85නà·\92à·\80à·\8fරà·\8aය à¶±à·\90ත",
+       "tooltip-pt-mycontris": "ඔබගේ දායකත්ව ලැයිස්තුව‍",
+       "tooltip-pt-login": "à¶\85ඩà·\80à·\92යට à¶´à·\92à·\80à·\92à·\83à·\93මට à¶\94බà·\80 à¶¯à·\92රà·\92à¶\9cà·\90නà·\8aà·\80à·\9a. à¶\91à·\84à·\99තà·\8a à¶´à·\92à·\80à·\92à·\83à·\93ම à¶\85නà·\92à·\80à·\8fරà·\8aය à¶±à·\9cà·\80à·\9a.",
        "tooltip-pt-logout": "නික්මීම",
        "tooltip-pt-createaccount": "ඔබ ගිණුමක් තනා පිවිසෙන්නේ නම් මැනවි; කෙසේ වුවත්, එය අනිවාර්ය නොවේ.",
        "tooltip-ca-talk": "අන්තර්ගත පිටුව පිළිබඳ සාකච්ඡාව",
-       "tooltip-ca-edit": "à¶\94බâ\80\8dට à¶¸à·\99ම à¶´à·\92ටà·\94à·\80 à·\83à¶\82à·\83à·\8aà¶\9aරණය à¶\9aල à·\84à·\90à¶\9a. à·\83à·\94රà·\90à¶\9aà·\93මට à¶´à·\99ර à¶\9aරà·\94ණà·\8fà¶\9aර à¶´à·\99රදà·\83à·\94න à¶¶à·\9cතà·\8aතම à¶·à·\8fà·\80à·\92තà·\8f à¶\9aරනà·\8aන",
-       "tooltip-ca-addsection": "නà·\80 à¶¡à·\9aදයක් අරඹන්න",
+       "tooltip-ca-edit": "à¶\94බâ\80\8dට à¶¸à·\99ම à¶´à·\92ටà·\94à·\80 à·\83à¶\82à·\83à·\8aà¶\9aරණය à¶\9aල à·\84à·\90à¶\9a. à·\83à\82à¶\9aරණ à·\83à·\94රà·\90à¶\9aà·\93මට à¶´à·\99ර à¶´à·\99රදà·\83à·\94න à¶¶à·\9cතà·\8aතම à¶·à·\8fà·\80à·\92තà·\8fà¶\9aà·\92රà·\93ම à¶ºà·\9dà¶\9cà·\8aâ\80\8dයà·\80à·\9a.",
+       "tooltip-ca-addsection": "නà·\80 à¶\9aà·\9cටà·\83ක් අරඹන්න",
        "tooltip-ca-viewsource": "මෙම පිටුව ආරක්‍ෂණය කොට ඇත.\nඔබට එහි මූලාශ්‍රය නැරඹිය හැක.",
-       "tooltip-ca-history": "මෙම පිටුවේ පෙර සංශෝධනයන්",
+       "tooltip-ca-history": "මෙම පිටුවේ පෙර සංශෝධන",
        "tooltip-ca-protect": "මෙම පිටුව ආරක්‍ෂණය කරන්න",
        "tooltip-ca-unprotect": "මෙම පිටුවෙහි ආරක්ෂණ තත්වය වෙනස් කරන්න",
        "tooltip-ca-delete": "මේ පිටුව මකන්න",
        "tooltip-search": "{{SITENAME}} ගවේෂණය",
        "tooltip-search-go": "මෙම නාමය එලෙසම ඇති පිටුවක් ඇත්නම් එය වෙත යන්න",
        "tooltip-search-fulltext": "මෙම පෙළ සඳහා පිටු ගවේෂණය කරන්න",
-       "tooltip-p-logo": "මà·\94ලà·\8a à¶´à·\92ටà·\94à·\80â\80\8dට à¶´à·\92à·\80à·\92à·\83à·\99න්න",
+       "tooltip-p-logo": "මà·\94ලà·\8a à¶´à·\92ටà·\94à·\80â\80\8dට à¶ºන්න",
        "tooltip-n-mainpage": "මුල් පිටුව‍ට පිවිසෙන්න",
        "tooltip-n-mainpage-description": "මුල් පිටුව‍ට පිවිසෙන්න",
        "tooltip-n-portal": "ව්‍යාපෘතිය පිළිබඳ විස්තර, ඔබට කල හැකි දේ, තොරතුරු සොයාගත හැකි තැන්",
        "tooltip-n-currentevents": "කාලීන සිදුවීම් පිළිබඳ පසුබිම් තොරතුරු සොයා දැනගන්න",
        "tooltip-n-recentchanges": "විකියෙහි මෑත වෙනස්කිරීම් ලැයිස්තුවක්",
-       "tooltip-n-randompage": "අහඹු පිටුවක් බා ගත කරන්න",
+       "tooltip-n-randompage": "අහඹුලෙස පිටුවක් පෙන්වන්න",
        "tooltip-n-help": "සොයා දැනගත හැකි තැන",
        "tooltip-t-whatlinkshere": "මෙය හා සබැ‍ඳෙන සියළු විකි පිටු ලැයිස්තුවක්",
-       "tooltip-t-recentchangeslinked": "මà·\99ම à¶´à·\92ටà·\94à·\80 à·\84à·\8f à·\83බà·\90ඳà·\92 à¶´à·\92ටà·\94à·\80ල â\80\8dනà·\80 à·\80à·\99නà·\83à·\8aà·\80ීම්",
+       "tooltip-t-recentchangeslinked": "මà·\99ම à¶´à·\92ටà·\94à·\80 à·\84à·\8f à·\83බà·\90ඳà·\92 à¶´à·\92ටà·\94à·\80ල â\80\8dනà·\80 à·\80à·\99නà·\83à·\8aà\9aà·\92රීම්",
        "tooltip-feed-rss": "මෙම පිටුව සඳහා RSS පෝෂකය",
-       "tooltip-feed-atom": "මෙම පිටුව සඳහා අටෝම් පෝෂකය",
-       "tooltip-t-contributions": "මà·\99ම à¶´à¶»à·\92à·\81à·\93ලà¶\9aයà·\8fà\9cà·\9a à¶¯à·\8fයà¶\9aතà·\8aà·\80 à¶½à·\90යà·\92à·\83à·\8aතà·\94à·\80 à¶±à¶»à¶¹à¶±à·\8aන",
+       "tooltip-feed-atom": "මෙම පිටුව සඳහා Atom පෝෂකය",
+       "tooltip-t-contributions": "මෙම පරිශීලකයගේ දායකත්ව ලැයිස්තුව නරඹන්න",
        "tooltip-t-emailuser": "මෙම පරිශීලකයාට විද්‍යුත්-තැපෑලක් යවන්න",
        "tooltip-t-upload": "ගොනු උඩුගත කරන්න",
-       "tooltip-t-specialpages": "සියලු විශේෂ පිටු ලැයිස්තුවක්",
+       "tooltip-t-specialpages": "සියලු විශේෂ පිටුවල ලැයිස්තුවක්",
        "tooltip-t-print": "මෙම පිටුවෙහි මුද්‍රිත අනුවාදය",
        "tooltip-t-permalink": "පිටුවෙහි මෙම අනුවාදයට ස්ථාවර සබැඳිය",
        "tooltip-ca-nstab-main": "අන්තර්ගත පිටුව නරඹන්න",
        "tooltip-ca-nstab-category": "ප්‍රවර්ග පිටුව නරඹන්න",
        "tooltip-minoredit": "මෙය සුළු සංස්කරණයක් ලෙස සටහන් කරන්න",
        "tooltip-save": "වෙනස්කිරීම් සුරකින්න",
-       "tooltip-preview": "ඔබ‍ කල  වෙනස්කිරීම් පෙර-දසුන් කර, ඉන් අනතුරුව සුරැකීමට කාරුණික වන්න!",
+       "tooltip-preview": "ඔබ‍ කල වෙනස්කිරීම් මුලින් පෙර-දසුන්කර, ඉන්පසු සුරැකීම යෝග්‍යවේ !",
        "tooltip-diff": "පෙළෙහි ඔබ සිදුකල වෙනස්වීම් මොනවාදැයි දක්වන්න.",
        "tooltip-compareselectedversions": "මෙම පිටුවෙහි, තෝරාගෙන ඇති අනුවාද දෙක අතර වෙනස්කම් බලන්න.",
        "tooltip-watch": "මෙම පිටුව ඔබගේ මුර-ලැයිස්තුවට එක් කරන්න",
        "tooltip-recreate": "පිටුව මකාදමා ඇති වුවද, එය යළි-නිර්මාණය කරන්න",
        "tooltip-upload": "උඩුගත කිරීම අරඹන්න",
        "tooltip-rollback": "\"ප්‍රතිවර්තනය\" එක් වරක් ක්ලික් කිරීමෙහි ප්‍රතිඵලය වනුයේ, සංස්කරණය(න්) ප්‍රතිවර්තනය වී, අවසන් දායකයා විසින් සැදූ මෙම පිටුව වෙත පිටුව ගෙන ඒමයි.",
-       "tooltip-undo": "\"අහෝසි\" මගින් සිදුකෙරෙනුයේ මෙම සංස්කරණය ප්‍රතිවර්තනය කොට, සංස්කරණ-ආකෘතිය, පෙරදසුන් මාදිලියෙහි විවෘත කිරීමයි.\nසාරාංශයෙහි, මේ පිළිබඳව හේතුවක් පල කිරීමට, ඔබට ඉඩ සැලසේ.",
+       "tooltip-undo": "\"අහෝසිය\" මගින් සිදුකෙරෙනුයේ මෙම සංස්කරණය ප්‍රතිවර්තනය කොට, සංස්කරණ-ආකෘතිය, පෙරදසුන් මාදිලියෙහි විවෘත කිරීමයි.\nමෙමගින් සාරාංශයෙහි හේතුවක් පල කිරීමට ඔබට ඉඩ සැලසේ.",
        "tooltip-preferences-save": "අභිරුචීන් සුරකින්න",
        "tooltip-summary": "කෙටි සාරාංශයක් ඇතුළත් කරන්න",
        "common.css": "/* මෙහි CSS  බහාලීම සියළු ඡවියයන් භාවිතා කරන පරිශීලකයන් හට බලපෑම් සිදු කල හැක */",
        "pageinfo-article-id": "පිටු අනන්‍යනාංකය",
        "pageinfo-language": "පිටු අන්තර්ගතයේ භාෂාව",
        "pageinfo-robot-policy": "සෙවුම් එන්ජිම් තත්ත්වය",
-       "pageinfo-robot-index": "à·\83à·\94චà·\92මය",
-       "pageinfo-robot-noindex": "à·\83à·\94චà·\92මය නොවන",
+       "pageinfo-robot-index": "à\85නà·\94මත",
+       "pageinfo-robot-noindex": "à\85නà·\94මත නොවන",
        "pageinfo-watchers": "පිටු මුරකරන්නන් සංඛ්‍යාව",
        "pageinfo-redirects-name": "මෙම පිටුවට යළියොමු ගණන",
        "pageinfo-subpages-name": "මෙම පිටුවෙහි උපපිටු",
        "pageinfo-recent-edits": "මෑත සංස්කරණ සංඛ්‍යාව (අවසන් $1 තුලදී)",
        "pageinfo-recent-authors": "මෑත ප්‍රභින්න කර්තෘවරුන් සංඛ්‍යාව",
        "pageinfo-magic-words": "මැජික් {{PLURAL:$1|වචනය|වචන}} ($1)",
-       "pageinfo-toolboxlink": "පිටු තොරතුරු",
+       "pageinfo-toolboxlink": "පිටුවේ තොරතුරු",
        "pageinfo-redirectsto": "වෙත යළියොමු කරන්න",
        "pageinfo-redirectsto-info": "තොරතුරු",
        "pageinfo-contentpage": "අන්තර්ගත පිටුවක් ලෙස ගණනය ගණනය කර ඇත",
        "patrol-log-page": "පරික්ෂාකිරීම් සටහන",
        "patrol-log-header": "මෙය පරික්‍ෂාකර බැලූ සංශෝධනයන්ගේ ලඝු-සටහනකි.",
        "log-show-hide-patrol": "පරික්‍ෂාකිරීම් ලඝු-සටහන් $1",
+       "log-show-hide-tag": "$1 ටැගය ලඝු-සටහන",
        "deletedrevision": "පැරැණි සංශෝධනය $1 මකාදමන ලදි",
        "filedeleteerror-short": "ගොනුව මකාදැමීමේ දෝෂය: $1",
        "filedeleteerror-long": "ගොනුව මකාදැමීමේදී දෝෂයන් හමුවුණි:\n\n$1",
        "file-info": "ගොනු විශාලත්වය: $1, MIME වර්ගය: $2",
        "file-info-size": "$1 × $2 පික්සල, ගොනු විශාලත්වය: $3, MIME ශෛලිය: $4",
        "file-info-size-pages": "$1 × $2 පික්සල, ගොනු තරම: $3, MIME වර්ගය: $4, $5 {{PLURAL:$5|පිටුව|පිටු}}",
-       "file-nohires": "මà·\99යට à¶\89à·\84ල à·\80à·\92à·\83රà·\8aජනයà¶\9aà·\8a à¶¯à¶\9aà·\8aà·\80à·\8f à¶\91à·\85ඹà·\92ය නොහැක.",
+       "file-nohires": "මà·\99යට à¶\89à·\84ල à·\80à·\92à·\83රà·\8aජනයà¶\9aà·\8a à¶½à¶¶à·\8fà¶\9cත නොහැක.",
        "svg-long-desc": "SVG ගොනුව, නාමමාත්‍රිකව $1 × $2 පික්සල්, ගොනු විශාලත්වය: $3",
+       "svg-long-desc-animated": "සජීවීකරණය SVG ගොනුව, නාමමාත්රිකව $1 × $2 පික්සල, ගොනු විශාලත්වය: $3",
        "svg-long-error": "අනීතික SVG ගොනුව: $1",
        "show-big-image": "මුල් ගොනුව",
-       "show-big-image-preview": "මà·\99ම à¶´à·\99රදà·\83à·\94නà·\99à·\84à·\92 à¶­à¶»à¶¸: $1.",
+       "show-big-image-preview": "මà·\99ම à¶´à·\99රදà·\83à·\94නà·\99à·\84à·\92 à·\80à·\92à·\81à·\8fලතà·\8aà·\80ය: $1.",
        "show-big-image-other": "අනෙකුත් {{PLURAL:$2|විභේදනය|විභේදනයන්}}: $1.",
        "show-big-image-size": "$1 × $2  පික්සල",
        "file-info-gif-looped": "වලිත",
        "file-info-png-looped": "ලුපගත වී ඇත",
        "file-info-png-repeat": "$1 {{PLURAL:$1|එක් වරක්| $1 වරක්}} ප්‍රතිවාදනය කෙරිණි",
        "file-info-png-frames": "$1 {{PLURAL:$1|රාමුව|රාමු}}",
+       "file-no-thumb-animation": "<Strong> සටහන: හේතුවෙන් තාක්ෂණික සීමාවන් නිසා, මෙම ගොනුවේ සිඟිති සජීවිකරණ නොවේ කිරීම </strong>.",
+       "file-no-thumb-animation-gif": "<Strong> සටහන: හේතුවෙන් තාක්ෂණික සීමාවන් නිසා, මෙවැනි එකක් ලෙස ඉහළ විභේදනයක් GIF ගොණු රූප සිඟිති සජීවිකරණ නොවේ කිරීම </strong>.",
        "newimages": "නව ගොනු ගැලරිය",
        "imagelisttext": "පහත දැක්වෙන්නේ  $2 අනුව සුබෙදුනු {{PLURAL:$1|ගොනුවක|ගොනු '''$1''' ක}} ලැයිස්තුවකි.",
        "newimages-summary": "මෙම විශේෂ පිටුව, අවසානයට උඩුගත කෙරුණු ගොනු පෙන්වයි.",
        "newimages-legend": "පෙරහන",
        "newimages-label": "ගොනු නාමය (හෝ එයින් කොටසක්):",
+       "newimages-showbots": "රොබෝ විසින් උඩුගත කිරීම් පෙන්වන්න",
        "noimages": "පෙනෙන්නට කිසිවක් නොමැත.",
        "ilsubmit": "ගවේෂණය",
        "bydate": "දිනය මගිනි",
        "minutes": "{{PLURAL:$1|$1 මිනිත්තුව|$1 මිනිත්තු}}",
        "hours": "{{PLURAL:$1|$1 පැය|$1 පැය}}",
        "days": "{{PLURAL:$1|$1 දවස|$1 දවස්}}",
+       "weeks": "{{PLURAL:$1|සතිය $1|සති $1}}",
        "ago": "$1 පෙර",
        "just-now": "මේ දැන්",
        "bad_image_list": "ආකෘතිය පහත පරිදි වේ:\n\nලැයිස්තු අයිතම පමණක් (* යන්නෙන් ආරම්භ වන පේළි) සළකා බලනු ලැබේ.\nපේළියක් මත ඇති පළමු සබැඳිය අයහපත් ගොනුවකට යොමු වන සබැඳියක් විය යුතුය.\nඑම පේළියෙහිම ඉනික්බිති හමුවන ඕනෑම සබැඳියක් සලකනු ලබන්නේ ව්‍යහිවාරයක් ලෙසටය, එනම්, ගොනු එක පේළියට පැවතිය හැකි පිටු.",
        "metadata-help": "සමහරවිට ඩිජිටල් කැමරාවක් හෝ ස්කෑනරයක් හෝ භාවිතයෙන්, නිමැවා හෝ සංඛ්‍යාංකකරණය (ඩිජිටල්කරණය) කොට එක් කල , අමතර තොරතුරු මෙම ගොනුවේ අඩංගුය.\nගොනුව මුලින්ම පැවැති තත්ත්වයෙහි සිට විකරණය කොට තිබේ නම්, සමහරක් තොරතුරු විකරිත ගොනුව පූර්ණ වශයෙන් පිළිඹිමු නොකරනු ඇත.",
        "metadata-expand": "විස්තීරණය කරන ලද විස්තර පෙන්වන්න",
        "metadata-collapse": "විස්තීරණය කරන ලද විස්තර සඟවන්න",
-       "metadata-fields": "Image metadata fields listed in this message will be included on image page display when the metadata table is collapsed.\nOthers will be hidden by default.\n* make\n* මාදිලිය\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* කලාකරු\n* ප්‍රකාශන හිමිකම\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "metadata-fields": "Image metadata fields listed in this message will be included on image page display when the metadata table is collapsed.\nOthers will be hidden by default.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "පළල",
        "exif-imagelength": "උස",
        "exif-bitspersample": "එක් සංරචකයකට බිට් ගණන",
        "confirm-watch-top": "මෙම පිටුව ඔබගේ මුර-ලැයිස්තුවට එක් කරන්නද?",
        "confirm-unwatch-button": "හරි",
        "confirm-unwatch-top": "මෙම පිටුව ඔබගේ මුර-ලැයිස්තුවෙන් ඉවත් කරන්නද?",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← පෙර පිටුව",
        "imgmultipagenext": "මීළඟ පිටුව →",
        "imgmultigo": "යන්න!",
        "imgmultigoto": " $1 පිටුවට යන්න",
+       "img-lang-default": "(පෙරනිමි භාෂාව)",
+       "img-lang-go": "යන්න",
        "ascending_abbrev": "ආරෝහණ",
        "descending_abbrev": "අවරෝහණ",
        "table_pager_next": "ඊළඟ පිටුව",
        "version-libraries": "ස්ථාපිත පුස්තකාල",
        "version-libraries-library": "පුස්තකාලය",
        "version-libraries-version": "අනුවාදය",
+       "redirect-submit": "යන්න",
+       "redirect-value": "අගය:",
+       "redirect-user": "පරිශීලක අනන්‍යාංකය:",
+       "redirect-page": "පිටු අනන්‍යනාංකය",
+       "redirect-revision": "පිටු සංශෝධනය",
        "redirect-file": "ගොනුනාමය",
+       "redirect-not-exists": "අගය හමු නොවුණි",
        "fileduplicatesearch": "අනුපිටපත් ගොනු සඳහා ගවේෂණය කරන්න",
        "fileduplicatesearch-summary": "එහි පූරක අගය පාදක කර ගෙන අනුපිටපත් ගොනු සඳහා ගවේෂණය කරන්න.",
        "fileduplicatesearch-legend": "අනුපිටපතක් සඳහා ගවේෂණය කරන්න",
        "fileduplicatesearch-result-n": "\"$1\" ගොනුවට {{PLURAL:$2|සර්වසම අනුපිටපතක්|සර්වසම අනුපිටපත් $2 ක්}} ඇත.",
        "fileduplicatesearch-noresults": "\"$1\" නමින් ගොනුවක් හමු නොවුණි",
        "specialpages": "විශේෂ පිටු",
+       "specialpages-note-top": "ප්‍රබන්ධය",
        "specialpages-note": "* සාමාන්‍ය විශේෂ පිටු.\n* <span class=\"mw-specialpagerestricted\">සීමිත විශේෂ පිටු.</span>\n* <span class=\"mw-specialpagecached\">කෑෂිත වි‍ශේෂ පිටු (යල් පැන ගිය විය හැක).</span>",
        "specialpages-group-maintenance": "නඩත්තු වාර්තා",
        "specialpages-group-other": "අනෙකුත් විශේෂ පිටු",
        "tags-tag": " ටැග් නම",
        "tags-display-header": "වෙනස්කම් ලැයිස්තුන්හී පෙනුම",
        "tags-description-header": "තේරුමෙහි පූර්ණ විස්තරය",
+       "tags-source-header": "මූලාශ්‍රය",
+       "tags-active-header": "සක්‍රීය?",
        "tags-hitcount-header": "ටැගගත කෙරුණු වෙනස්කම්",
+       "tags-actions-header": "ක්‍රියා",
+       "tags-active-yes": "ඔව්",
+       "tags-active-no": "නැත",
        "tags-edit": "සංස්කරණය",
+       "tags-delete": "මකන්න",
+       "tags-activate": "සක්‍රියනය",
+       "tags-deactivate": "අක්‍රියනය",
        "tags-hitcount": "{{PLURAL:$1|වෙනස්කම|වෙනස්කම් $1 }}",
+       "tags-manage-no-permission": "ඔබ වෙනස් ටැග්ස් කළමනාකරණය කිරීමට අවසර නැත.",
+       "tags-create-heading": "නව ටැගයක් තනන්න",
+       "tags-create-explanation": "සුපුරුදු පරිදි, අලුතින් නිර්මාණය ටැග්ස් භාවිතා කරන්නන් හා රොබෝ විසින් භාවිතය සඳහා ලබාගත හැකි වේ.",
+       "tags-create-tag-name": "ටැග් නම:",
+       "tags-create-reason": "හේතුව:",
+       "tags-create-submit": "තනන්න",
+       "tags-create-no-name": "ඔබ ටැගය නමක් ලබාදිය යුතුය.",
+       "tags-create-invalid-chars": "ටැග නම් කොමා (<code>,</code>) හෝ ඉදිරි ඇළ සළකුණ (<code>/</code>) අඩංගු නොවිය යුතුය.",
+       "tags-create-invalid-title-chars": "ටැග නම් පිටුවේ ශීර්ෂයන්හි භාවිතා කල නොහැකි අක්ෂර එකක් ඇතුළත් නොවිය යුතුය.",
+       "tags-create-already-exists": "\"$1\" ටැගය දැනටමත් පවතියි.",
+       "tags-create-warnings-below": "ඔබ ටැගය නිර්මාණය දිගටම කැමතිද?",
+       "tags-delete-title": "ටැගය ඉවත් කරන්න",
+       "tags-delete-explanation-initial": "ඔබ දත්ත සමුදාය සිට ටැගය \"$1\" මකා දැමිමට පිවිස ඇත.",
+       "tags-delete-reason": "හේතුව:",
+       "tags-delete-submit": "ආපසු හැරවිය නොහැකි මෙම ටැගය මකා",
+       "tags-delete-not-allowed": "දීර්ඝ විශේෂයෙන් එය ඉඩ හැර දිගුවක් මගින් අර්ථ දක්වා ඇති ඇමිණුම් ඉවත් කල නොහැක.",
+       "tags-delete-not-found": "\"$1\" ටැගය නොපවතියි.",
+       "tags-activate-title": "ටැගය සක්‍රියනය කරන්න",
+       "tags-activate-question": "ඔබ \"$1\" ටැගය සක්‍රියනය කිරීමට ය.",
+       "tags-activate-reason": "හේතුව:",
+       "tags-activate-not-allowed": "\"$1\" ටැගය සක්රීය කිරීමට හැකි නොවේ.",
+       "tags-activate-not-found": "\"$1\" ටැගය නොපවතියි.",
+       "tags-activate-submit": "සක්‍රියනය",
+       "tags-deactivate-title": "ටැගය අක්‍රියනය කරන්න",
+       "tags-deactivate-question": "ඔබ \"$1\" ටැගය අක්‍රියනය කිරීමට ය.",
+       "tags-deactivate-reason": "හේතුව:",
+       "tags-deactivate-submit": "අක්‍රියනය",
+       "tags-apply-no-permission": "ඔබ ඔබේ වෙනස්කම් සමග වෙනස් ටැග්ස් අයදුම් කිරීමට අවසර නැත.",
+       "tags-apply-not-allowed-one": "ටැගය, \"$1\" අතින් අයදුම් කිරීමට අවසර නැත.",
+       "tags-update-no-permission": "ඔබ තනි අනුවාදයන් හෝ ලඝු සටහන් ඇතුළත් කිරීම් වලින් වෙනස් ටැග්ස් එකතු කිරීම හෝ ඉවත් කිරීම සඳහා අවසර නොමැත.",
+       "tags-update-add-not-allowed-one": "ටැගය, \"$1\" අතින් එකතු කිරීමට අවසර නැත.",
+       "tags-update-remove-not-allowed-one": "ටැගය, \"$1\" ඉවත් කිරීමට අවසර නැත.",
+       "tags-edit-title": "ටැග සංස්කරණය කරන්න",
+       "tags-edit-manage-link": "ටැග කළමනාකරණය",
        "comparepages": "පිටු සසඳන්න",
        "compare-page1": "පිටුව 1",
        "compare-page2": "පිටුව 2",
        "htmlform-submit": "යොමුකරන්න",
        "htmlform-reset": "වෙනස්කිරීම් අහෝසිකරන්න",
        "htmlform-selectorother-other": "වෙනත්",
+       "htmlform-no": "නැහැ",
+       "htmlform-yes": "ඔව්",
+       "htmlform-chosen-placeholder": "විකල්පයක් තෝරන්න",
+       "htmlform-cloner-create": "තව එක් කරන්න",
+       "htmlform-cloner-delete": "ඉවත් කරන්න",
+       "htmlform-cloner-required": "අවම වශයෙන් එක් වටිනාකම අවශ්ය වේ.",
        "sqlite-has-fts": "$1 සම්පූර්ණ-පෙළ සෙවුම් සහය සමග",
        "sqlite-no-fts": "$1 සම්පූර්ණ-පෙළ සෙවුම් සහය රහිතව",
        "logentry-delete-delete": "$1 විසින් $3 පිටුව {{GENDER:$2|මකා දමන ලදී}}",
        "expand_templates_remove_nowiki": "ප්‍රතිපලයෙහි <nowiki> ටැග යටපත් කරන්න",
        "expand_templates_generate_xml": "XML ව්‍යාකරණ විග්‍රහ රුක පෙන්වන්න",
        "expand_templates_preview": "පෙරදසුන",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (සක්‍රියයි)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''අක්‍රියයි''')",
+       "mediastatistics": "මාධ්‍ය සංඛ්‍යාලේඛන",
+       "mediastatistics-nbytes": "{{PLURAL:$1|බයිට් $1|බයිට් $1}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "MIME වර්ගය",
+       "mediastatistics-header-bitmap": "බිට්මැප් රූප",
+       "mediastatistics-header-drawing": "ඇඳීම් (දෛශික පින්තූර)",
+       "mediastatistics-header-audio": "ශ්‍රව්‍ය",
+       "mediastatistics-header-video": "වීඩියෝ",
+       "mediastatistics-header-multimedia": "සරු මාධ්‍ය",
+       "mediastatistics-header-office": "කාර්යාලය",
+       "mediastatistics-header-text": "පෙළමය",
+       "mediastatistics-header-executable": "ක්‍රියාත්මක කළ හැකි",
+       "mediastatistics-header-archive": "හැකිළුෑ ආකෘති",
+       "json-error-unknown": "මෙම JSON සමග ගැටළුවක් ඇති විය. දෝෂය: $1",
+       "json-error-depth": "උපරිම ගැඹුර අඩුක්කුව ඉක්මවා ඇත",
+       "json-error-state-mismatch": "වලංගු නොවන හෝ විකෘති JSON",
+       "json-error-ctrl-char": "සමහර විට වැරදි ලෙස කේතනාංකය සහිත පාලන චරිතය දෝෂයක්,",
+       "json-error-syntax": "කාරක-රීති දෝෂය",
+       "json-error-utf8": "සමහර විට වැරදි ලෙස කේතනාංකය සහිත විකෘති UTF-8 වෙත චරිත,",
+       "json-error-recursion": "කේතක කිරීමට වටිනාකම එකක් හෝ ඊට වැඩි ආවර්තනික යොමු",
+       "json-error-inf-or-nan": "අගය එකක් හෝ ඊට වැඩි නන් හෝ වලස්මුල්ල අධ්යාපන වටිනාකම් කේතනාංකය සහිත විය",
+       "json-error-unsupported-type": "සඳහන් කළ නොහැකි වර්ගය එහි වටිනාකම ලබා දී",
+       "headline-anchor-title": "මෙම අංශය වෙත සබැඳිය",
        "special-characters-group-latin": "ලතින් අක්ෂර",
        "special-characters-group-latinextended": "දීර්ඝ කළ ලතින් අක්ෂර",
        "special-characters-group-ipa": "IPA(ජාත්‍යන්තර වාග්විෂයක හෝඩිය)",
index b5c989e..77ec228 100644 (file)
@@ -30,7 +30,8 @@
                        "Matthew Greg",
                        "Ата",
                        "Macofe",
-                       "TomášPolonec"
+                       "TomášPolonec",
+                       "Mikulas1"
                ]
        },
        "tog-underline": "Podčiarkovať odkazy:",
        "license": "Licencovanie:",
        "license-header": "Licencovanie",
        "nolicense": "Nič nebolo vybrané",
+       "licenses-edit": "Uprav možnosti licencie",
        "license-nopreview": "(Náhľad nie je dostupný)",
        "upload_source_url": " (platný, verejne prístupný URL)",
        "upload_source_file": " (súbor na vašom počítači)",
index e99bc7a..b2b4911 100644 (file)
        "no-null-revision": "Ne morem ustvariti nove ničelne redakcije strani »$1«",
        "badtitle": "Nepravilen naslov",
        "badtitletext": "Navedeni naslov strani je neveljaven, prazen, napačno povezan k drugim jezikom oziroma wikiprojektom.\nMorda vsebuje enega ali več nepodprtih znakov.",
+       "title-invalid-empty": "Zahtevani naslov strani je prazen ali pa vsebuje samo ime imenskega prostora.",
+       "title-invalid-utf8": "Zahtevani naslov strani vsebuje neveljavno zaporedje UTF-8.",
+       "title-invalid-interwiki": "Želen naslov vsebuje povezavo interwiki, ki je ni mogoče uporabiti v naslovih.",
+       "title-invalid-talk-namespace": "Zahtevani naslov strani se nanaša na pogovorno stran, ki ne more obstajati.",
+       "title-invalid-characters": "Zahtevani naslov strani vsebuje neveljavne znake: »$1«.",
+       "title-invalid-relative": "Naslov ima relativno pot. Relativni naslovi strani (./, ../) niso veljavni, saj pogosto niso dosegljivi, ko jih obravnava uporabnikov brskalnik.",
+       "title-invalid-magic-tilde": "Zahtevani naslov strani vsebuje neveljavno čarobno zaporedje tild (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Zahtevani naslov strani je predolg. Ne sme biti daljši od $1 {{PLURAL:$1|bajta|bajtov}} v kodiranju UTF-8.",
+       "title-invalid-leading-colon": "Zahtevani naslov strani na začetku vsebuje neveljavno dvopičje.",
        "perfcached": "Navedeni podatki so shranjeni v predpomnilniku in morda niso popolnoma posodobljeni. V predpomnilniku {{PLURAL:$1|je|sta|so|je}} na razpolago največ $1 {{PLURAL:$1|rezultat|rezultata|rezultate|rezultatov}}.",
        "perfcachedts": "Prikazani podatki so shranjeni v predpomnilniku in so bili zadnjič osveženi $1. V predpomnilniku {{PLURAL:$4|je|sta|so|je}} na razpolago največ $4 {{PLURAL:$4|rezultat|rezultata|rezultate|rezultatov}}.",
        "querypage-no-updates": "Posodobitve za to stran so trenutno onemogočene. Tukajšnji podatki se v kratkem ne bodo osvežili.",
        "userrights-lookup-user": "Upravljanje z uporabniškimi skupinami",
        "userrights-user-editname": "Vpišite uporabniško ime:",
        "editusergroup": "Uredi uporabniške skupine",
-       "editinguser": "Urejanje pravic uporabnika '''[[User:$1|$1]]''' $2",
+       "editinguser": "Urejanje pravic {{GENDER:$1|uporabnika|uporabnice}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Urejanje uporabniških skupin",
        "saveusergroups": "Shrani spremembe",
        "userrights-groupsmember": "Član skupine:",
        "unusedimages": "Osirotele datoteke",
        "wantedcategories": "Želene kategorije",
        "wantedpages": "Želene strani",
-       "wantedpages-summary": "Seznam neobstoječih strani z največ povezavami, ki kažejo na njih, izključujoč preusmeritve. Za seznam neobstoječih strani, ki so ciljne strani preusmeritev, glejte [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "Seznam neobstoječih strani z največ povezavami, ki kažejo na njih, izključujoč preusmeritve. Za seznam neobstoječih strani, ki so ciljne strani preusmeritev, glejte [[{{#special:BrokenRedirects}}|seznam pretrganih preusmeritev]].",
        "wantedpages-badtitle": "Neveljaven naslov v končnem nizu: $1",
        "wantedfiles": "Želene datoteke",
        "wantedfiletext-cat": "Naslednje datoteke so uporabljene, vendar ne obstajajo. Navedene so morda tudi datoteke iz zunanjih hramb, čeprav obstajajo. Vsi takšni lažni pozitivi bodo <del>prečrtani</del>. Poleg tega so strani, ki vključujejo neobstoječe datoteke, navedene na [[:$1]].",
        "unwatchthispage": "Prenehaj opazovati stran",
        "notanarticle": "Ni članek",
        "notvisiblerev": "Redakcija je bila izbrisana",
-       "watchlist-details": "Na vašem spisku nadzorov je $1 {{PLURAL:$1|stran|strani|strani}}; pogovorne strani niso štete posebej.",
+       "watchlist-details": "Na vašem spisku nadzorov {{PLURAL:$1|je $1 stran|sta $1 strani|so $1 strani|je $1 strani}}; pogovorne strani niso štete posebej.",
        "wlheader-enotif": "Obveščanje po elektronski pošti je omogočeno.",
        "wlheader-showupdated": "Strani, spremenjene od vašega zadnjega ogleda, so prikazane '''krepko'''.",
        "wlnote": "{{PLURAL:$1|Navedena je zadnja|Navedeni sta zadnji|Navedene so zadnje|Navedenih je zadnjih}} <strong>$1</strong> {{PLURAL:$1|sprememba|spremembi|spremembe|sprememb}} v {{PLURAL:$2|zadnji <strong>$2</strong> uri|zadnjih <strong>$2</strong> urah}}, od $3, $4.",
        "log-name-pagelang": "Dnevnik spreminjanja jezika",
        "log-description-pagelang": "Dnevnik sprememb jezika strani.",
        "logentry-pagelang-pagelang": "$1 je {{GENDER:$2|spremenil|spremenila|spremenil(-a)}} jezik strani $3 z jezika $4 na jezik $5.",
-       "default-skin-not-found": "Ups! Privzeta koža vašega wikija, določena v <code dir=\"ltr\">$wgDefaultSkin</code> kot <code>$1</code>, ni na voljo.\n\nKot kaže, vaša namestitev vsebuje {{PLURAL:$4|kožo, navedeno|2=koži, navedeni|3=kože, navedene|4=kože, navedene|kož, navedenih}} spodaj. Oglejte si [https://www.mediawiki.org/wiki/Manual:Skin_configuration Priročnik: Konfiguracija kož] za več informacij, kako {{PLURAL:$4|jo omogočiti in nastaviti kot privzeto|ju omogočiti in nastaviti kot privzeti|jih omogočiti in nastaviti kot privzete}}.\n\n$2\n\n; Če ste MediaWiki pravkar namestili:\n: Verjetno ste ga namestili z git ali neposredno iz izvorne kode na kakšen drug način. To je pričakovano. Poskusite namestiti nekaj kož z [https://www.mediawiki.org/wiki/Category:All_skins imenika kož mediawiki.org] tako:\n:* Prenesite [https://www.mediawiki.org/wiki/Download namestitveni program tarball], ki vsebuje nekaj kož in razširitev. Iz njega lahko kopirate in prilepite mapo <code>skins/</code>.\n:* Prenesite tarballe posamezne kož z [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Klonirajte enega od repozitorijev <code>mediawiki/skins/*</code> z git v mapo <code dir=\"ltr\">skins/</code> vaše namestitve MediaWiki.\n: Če ste razvijalec MediaWiki, to ne sme poseči v vaš repozitorij git.\n\n; Če ste MediaWiki pravkar posodobili:\n: MediaWiki 1.24 in novejši nameščenih kož več ne omogočijo samodejno (oglejte si [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Priročnik: Samodejno odkrivanje kož]). V <code>LocalSettings.php</code> lahko prilepite {{PLURAL:$5|naslednjo vrstico|naslednji vrstici|naslednje vrstice}}, da omogočite trenutno {{PLURAL:$4|nameščeno kožo|2=nameščeni koži|3=nameščene kože|4=nameščene kože|nameščenih kož}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Če ste pravkar spremenili <code>LocalSettings.php</code>:\n: Ponovno preverite imena kož, če ste se morda zatipkali.",
-       "default-skin-not-found-no-skins": "Ups! Privzeta koža vašega wikija, določena v <code dir=\"ltr\">$wgDefaultSkin</code> kot <code>$1</code>, ni na voljo.\n\nNimate nameščenih kož.\n\n; Če ste MediaWiki pravkar namestili ali posodobili:\n: Verjetno ste ga namestili z git ali neposredno iz izvorne kode na kakšen drug način. To je pričakovano. MediaWiki 1.24 in novejši nimajo vključene nobene kože v glavnem repozitoriju. Poskusite namestiti nekaj kož z [https://www.mediawiki.org/wiki/Category:All_skins imenika kož mediawiki.org] tako:\n:* Prenesite [https://www.mediawiki.org/wiki/Download namestitveni program tarball], ki vsebuje nekaj kož in razširitev. Iz njega lahko kopirate in prilepite mapo <code dir=\"ltr\">skins/</code>.\n:* Prenesite tarballe posamezne kož z [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Klonirajte enega od repozitorijev <code>mediawiki/skins/*</code> z git v mapo <code>skins/</code> vaše namestitve MediaWiki.\n: Če ste razvijalec MediaWiki, to ne sme poseči v vaš repozitorij git. Oglejte si [https://www.mediawiki.org/wiki/Manual:Skin_configuration Priročnik: Konfiguracija kož] za več informacij, kako jih omogočiti in nastaviti kot privzete.",
+       "default-skin-not-found": "Ups! Privzeta koža vašega wikija, določena v <code dir=\"ltr\">$wgDefaultSkin</code> kot <code>$1</code>, ni na voljo.\n\nKot kaže, vaša namestitev vsebuje {{PLURAL:$4|kožo, navedeno|2=koži, navedeni|3=kože, navedene|4=kože, navedene|kož, navedenih}} spodaj. Oglejte si [https://www.mediawiki.org/wiki/Manual:Skin_configuration Priročnik: Konfiguracija kož] za več informacij, kako {{PLURAL:$4|jo omogočiti in nastaviti kot privzeto|ju omogočiti in nastaviti kot privzeti|jih omogočiti in nastaviti kot privzete}}.\n\n$2\n\n; Če ste MediaWiki pravkar namestili:\n: Verjetno ste ga namestili z git ali neposredno iz izvorne kode na kakšen drug način. To je pričakovano. Poskusite namestiti nekaj kož z [https://www.mediawiki.org/wiki/Category:All_skins imenika kož mediawiki.org] tako:\n:* Prenesite [https://www.mediawiki.org/wiki/Download namestitveni program tarball], ki vsebuje nekaj kož in razširitev. Iz njega lahko kopirate in prilepite mapo <code>skins/</code>.\n:* Prenesite tarballe posamezne kož z [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Uporaba Gita za prenos kož].\n: Če ste razvijalec MediaWiki, to ne sme poseči v vaš repozitorij git.\n\n; Če ste MediaWiki pravkar posodobili:\n: MediaWiki 1.24 in novejši nameščenih kož več ne omogočijo samodejno (oglejte si [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Priročnik: Samodejno odkrivanje kož]). V <code>LocalSettings.php</code> lahko prilepite {{PLURAL:$5|naslednjo vrstico|naslednji vrstici|naslednje vrstice}}, da omogočite {{PLURAL:$4|nameščeno kožo|2=nameščeni koži|3=nameščene kože|4=nameščene kože|nameščenih kož}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Če ste pravkar spremenili <code>LocalSettings.php</code>:\n: Ponovno preverite imena kož, če ste se morda zatipkali.",
+       "default-skin-not-found-no-skins": "Ups! Privzeta koža vašega wikija, določena v <code dir=\"ltr\">$wgDefaultSkin</code> kot <code>$1</code>, ni na voljo.\n\nNimate nameščenih kož.\n\n; Če ste MediaWiki pravkar namestili ali posodobili:\n: Verjetno ste ga namestili z git ali neposredno iz izvorne kode na kakšen drug način. To je pričakovano. MediaWiki 1.24 in novejši nimajo vključene nobene kože v glavnem repozitoriju. Poskusite namestiti nekaj kož z [https://www.mediawiki.org/wiki/Category:All_skins imenika kož mediawiki.org] tako:\n:* Prenesite [https://www.mediawiki.org/wiki/Download namestitveni program tarball], ki vsebuje nekaj kož in razširitev. Iz njega lahko kopirate in prilepite mapo <code dir=\"ltr\">skins/</code>.\n:* Prenesite tarballe posamezne kož z [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Uporaba Gita za prenos kož].\n: Če ste razvijalec MediaWiki, to ne sme poseči v vaš repozitorij git. Oglejte si [https://www.mediawiki.org/wiki/Manual:Skin_configuration Priročnik: Konfiguracija kož] za več informacij, kako jih omogočiti in nastaviti kot privzete.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (omogočeno)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''onemogočeno''')",
        "mediastatistics": "Statistika predstavnosti",
index 40f2b12..97f3641 100644 (file)
        "api-error-unknown-code": "Qalad la aqoon: \"$1\"",
        "api-error-unknown-warning": "Digniin la aqoon: $1",
        "api-error-uploaddisabled": "Soo gelinta waa laga xiray wikigaan.",
-       "limitreport-title": "Faahin caddeymo:",
+       "limitreport-title": "Faahfaahin caddeymo:",
        "limitreport-cputime": "Waqtiga adeegsiga CPU",
        "limitreport-walltime": "Waqtiga dhabta ah adeegsiga",
        "limitreport-ppvisitednodes": "Tirooyinka gutinada ee maskaxda",
-       "limitreport-ppgeneratednodes": "Gutinada ay horay u soo booqatay maskaxda"
+       "limitreport-ppgeneratednodes": "Gutinada ay horay u soo booqatay maskaxda",
+       "limitreport-expensivefunctioncount": "Tirada isle'egta gutinada xilgudashada"
 }
index 33372e1..137331a 100644 (file)
@@ -54,7 +54,7 @@
        "tog-shownumberswatching": "Trego numrin e përdoruesve që vëzhgojnë këtë faqe",
        "tog-oldsig": "Nënshkrimi ekzistues:",
        "tog-fancysig": "Mbaje nënshkrimin si wikitekst (pa lidhje automatike)",
-       "tog-uselivepreview": "Trego pamjen në mënyrë të drejtëpërdrejtë (kërkon JavaScript) (eksperimentale)",
+       "tog-uselivepreview": "Trego pamjen në mënyrë të drejtëpërdrejtë",
        "tog-forceeditsummary": "Më njofto kur e lë përmbledhjen e redaktimit bosh",
        "tog-watchlisthideown": "Fshih redaktimet e mia nga lista e faqeve të vëzhguara",
        "tog-watchlisthidebots": "Fshih redaktimet e robotëve nga lista e faqeve të vëzhguara",
        "otherlanguages": "Në gjuhë të tjera",
        "redirectedfrom": "(Përcjellë nga $1)",
        "redirectpagesub": "Faqe përcjellëse",
+       "redirectto": "Përcjellim për tek:",
        "lastmodifiedat": "Kjo faqe është ndryshuar për herë te fundit më $1, në orën $2.",
        "viewcount": "Kjo faqe është shikuar {{PLURAL:$1|një|$1 herë}} .",
        "protectedpage": "Faqe e mbrojtur",
        "pool-queuefull": "Radha e proceseve është mbushur",
        "pool-errorunknown": "Gabim i panjohur",
        "pool-servererror": "Pishinë e  numerimit  te shërbimit nuk është në dispozicion (<span class=\"notranslate\" translate=\"asnjë\">$1</span>).",
+       "poolcounter-usage-error": "Gabim përdorimi: $1",
        "aboutsite": "Rreth {{SITENAME}}",
        "aboutpage": "Project:Rreth",
        "copyright": "Përmbajtja është në disponim nëpërmjet licencës $1 ose tregohet ndryshe.",
        "disclaimers": "Shfajësimet",
        "disclaimerpage": "Project:Shfajësimet e përgjithshme",
        "edithelp": "Ndihmë për redaktim",
+       "helppage-top-gethelp": "Ndihmë",
        "mainpage": "Faqja kryesore",
        "mainpage-description": "Faqja kryesore",
        "policy-url": "Project:Politika e rregullave",
        "hidetoc": "fshih",
        "collapsible-collapse": "Ngushtoje",
        "collapsible-expand": "Zgjeroje",
+       "confirmable-confirm": "A je {{GENDER:$1|i|e}} sigurt?",
        "confirmable-yes": "PO",
        "confirmable-no": "Jo",
        "thisisdeleted": "Shiko ose rikthe $1?",
        "no-null-revision": "I pamundur krijimi rishikimi  i ri për faqen bosh \"$ 1\"",
        "badtitle": "Titull i pasaktë",
        "badtitletext": "Titulli i faqes që kërkuat nuk ishte i saktë, ishte bosh, ose ishte një titull ndër-gjuhësor/inter-wiki me lidhje të pasaktë.\nMund të përmbajë një ose më shumë germa, të cilat nuk mund të përdoren në tituj.",
+       "title-invalid-empty": "Titulli i faqes së kërkuar është bosh ose përmban vetëm emrin e një hapësire.",
+       "title-invalid-interwiki": "Titulli përmban një lidhje ndërwiki",
+       "title-invalid-talk-namespace": "Titulli i faqes së kërkuar i referohet një faqeje diskutimi që nuk mund të ekzistojë.",
+       "title-invalid-characters": "Titulli i faqes së kërkuar përmban karaktere të pavlefshme: \"$1\".",
        "perfcached": "nformacioni i mëposhtëm është kopje e ruajtur dhe mund të mos jetë i përditësuar. E shumta  {{PLURAL:$1|një rezultat është|$1 rezultate janë}} ruajtur në kopje.",
        "perfcachedts": "Informacioni i mëposhtëm është një kopje e rifreskuar më $1. E shumta  {{PLURAL:$4|një rezultat është|$4 rezultate janë}} ruajtur në kopje.",
        "querypage-no-updates": "Përditësimet për këtë faqe për momentin janë të ç'aktivizuara.\nKëtu informacioni nuk do të jetë i përditësuar.",
        "wrongpassword": "Fjalëkalimi që futët nuk është i saktë. Provoni përsëri!",
        "wrongpasswordempty": "Fjalëkalimi juaj ishte bosh. Ju lutemi provoni përsëri.",
        "passwordtooshort": "Fjalëkalimi juaj është i pavlefshëm ose tepër i shkurtër. Ai duhet të ketë së paku {{PLURAL:$1|1 shkronjë|$1 shkronja}} dhe duhet të jetë i ndryshëm nga emri i përdoruesit.",
+       "passwordtoolong": "Fjalëkalimet nuk mund të jenë më të gjatë se {{PLURAL:$1|1 karakter|$1 karaktere}}.",
        "password-name-match": "Fjalëkalimi juaj duhet të jetë i ndryshëm nga emri juaj.",
        "password-login-forbidden": "Përdorimi i kësaj nofke dhe fjalëkalimi është i ndaluar.",
        "mailmypassword": "Ridergo fjalekalimin",
        "passwordreset-emailtext-ip": "Dikush (ndoshta ju, nga IP adresa $1) kërkoi një kujtesë për \ndetajet e llogarisë suaj {{SITENAME}} ($4).Përdoruesi në vijim {{PLURAL:$3|llogari është|llogaritë janë}} të lidhur me këtë postë elektronike:\n\n$2\n\n{{PLURAL:$3|Ky fjalëkalim i përkohshëm|Këto fjalëkalime të përkohshme}} do të përfundojë për {{PLURAL:$5|një ditë|$5 ditë}}.\n\nJu duhet të kyçeni dhe të zgjidhni një fjalëkalim të ri tani. Nëse dikush tjetër e ka bërë këtë kërkesës, ose në qoftë se ju mbani mend fjalëkalimin tuaj origjinal, dhe ju nuk dëshirojni të ndryshoni atë, ju mund të injoroni këtë mesazh dhe do të vazhdoni përdorimin e fjalëkalimit tuaj të vjetër.",
        "passwordreset-emailtext-user": "Përdoruesi  $1 në {{SITENAME }} ka kërkuar një kujtesë për të dhënat e llogarisë suaj për {{SITENAME }} ($4). Përdoruesi në vijim {{PLURAL:$3 | llogaria është | llogaritë janë}} të lidhur me këtë postë elektronike: \n\n$2\n\n{{PLURAL:$3 | Ky fjalëkalim i përkohshëm | Këto fjalëkalime të përkohshme}} do të përfundojë në {{PLURAL:$5 | një ditë | $5 ditë}}.\nJu duhet të kyçeni dhe të zgjidhni një fjalëkalim të ri tani. Nëse dikush tjetër e ka bërë këtë kërkesës, ose në qoftë se ju mbani mend fjalëkalimin tuaj origjinal, dhe ju nuk dëshirojni të ndryshoni atë, ju mund të injoroni këtë mesazh dhe do të vazhdoni përdorimin e fjalëkalimit tuaj të vjetër.",
        "passwordreset-emailelement": "Nofka: $1\nFjalëkalimi i përkohshëm: $2",
-       "passwordreset-emailsent": "Një korrespondencë kujtese është dërguar",
-       "passwordreset-emailsent-capture": "U dërgua një e-mail kujtesë, i cili tregohet më poshtë.",
+       "passwordreset-emailsent": "Një email për rivendosjen e fjalëkalimit është dërguar.",
+       "passwordreset-emailsent-capture": "Një email për rivendosjen e fjalëkalimit është dërguar, i cili tregohet më poshtë.",
        "passwordreset-emailerror-capture": "U dërgua një e-mail kujtesë, i cili tregohet më poshtë, por dërgesa për tek përdoruesi qe e pamundur: $1",
        "changeemail": "Ndrysho postën elektronike",
        "changeemail-text": "Plotësoni këtë formular për të ndryshuar adresën tuaj të postës elektronike. Ju duhet të shkruani fjalëkalimin tuaj për të konfirmuar këtë ndryshim.",
        "changeemail-oldemail": "Posta elektronike e aktuale:",
        "changeemail-newemail": "Posta elektronike e re:",
        "changeemail-none": "(asgjë)",
+       "changeemail-password": "Fjalëkalimi juaj i {{SITENAME}}:",
        "changeemail-submit": "Ndrysho postën elektronike",
+       "changeemail-throttled": "Ju keni bërë shumë tentativa hyrjeje.\nJu lutemi prisni $1 përpara se të provoni sërish.",
+       "resettokens-token-label": "$1 (vlera aktuale: $2)",
        "bold_sample": "Stil i theksuar i tekstit",
        "bold_tip": "Stil i theksuar i tekstit",
        "italic_sample": "Tekst i pjerrët",
        "preview": "Shqyrto",
        "showpreview": "Shfaq për shqyrtim",
        "showdiff": "Trego ndryshimet",
-       "anoneditwarning": "'''Kujdes:''' Ju nuk jeni identifikuar. \nAdresa juaj IP do të regjistrohet në historinë e redaktimeve të kësaj faqeje.",
+       "blankarticle": "<strong>Kujdes:</strong> Faqja që po krijoni është boshe.\nNëse klikoni \"{{int:savearticle}}\" përsëri, faqja do të krijohet pa ndonjë përmbajtje.",
+       "anoneditwarning": "<strong>Kujdes:</strong> Ju nuk jeni të regjistruar. Adresa juaj IP do të jetë e dukshme publikisht në ju bëni ndonjë redaktim. Nëse <strong>[$1 hyni]</strong> ose <strong>[$2 krijoni një llogari]</strong>, redaktimet tuaja do t'i atribuohen emrit tuaj të përdoruesit, së bashku me përfitime të tjera.",
        "anonpreviewwarning": "\"Ju nuk jeni identifikuar. Ruajtja e ndryshimeve do të bëjë që adresa juaj IP të regjistrohet në historikun e redaktimeve të kësaj faqeje.\"",
        "missingsummary": "'''Vërejtje:''' Ju nuk keni lënë shënim për redaktimet e kryera.\nNëse klikoni \"{{int:savearticle}}\" përsëri, redaktimet tuaja do të ruhen pa shënim.",
        "missingcommenttext": "Ju lutemi bëni një koment më poshtë.",
index a6c9c59..877c32c 100644 (file)
        "delete-hook-aborted": "Брисање је прекинула кука.\nНије дато никакво образложење.",
        "badtitle": "Неисправан наслов",
        "badtitletext": "Наслов странице је неисправан, празан или је међујезички или међувики наслов погрешно повезан.\nМожда садржи знакове који се не могу користити у насловима.",
+       "title-invalid-characters": "Тражени наслов има неважеће карактере: „$1“.",
        "perfcached": "Следећи подаци су кеширани и могу бити застарели. Кеш садржи највише {{PLURAL:$1|један резултат|$1 резултата|$1 резултата}}.",
        "perfcachedts": "Следећи подаци су кеширани и последњи пут су ажурирани $2 у $3. У кешу {{PLURAL:$4|1=је доступан највише један резултат|су доступна највише $4 резултата|је доступно највише $4 резултата}}.",
        "querypage-no-updates": "Ажурирање ове странице је тренутно онемогућено.\nПодаци који се овде налазе могу бити застарели.",
        "createacct-benefit-heading": "{{SITENAME}} је направљен од стране људи као што сте ви.",
        "createacct-benefit-body1": "{{PLURAL:$1|измена}}",
        "createacct-benefit-body2": "{{PLURAL:$1|страница|странице}}",
-       "createacct-benefit-body3": "скорашњих {{PLURAL:$1|доприноса}}",
+       "createacct-benefit-body3": "{{PLURAL:$1|активни корисник|активних корисника}}",
        "badretype": "Унете лозинке се не поклапају.",
        "userexists": "Корисничко име је заузето. Изаберите друго.",
        "loginerror": "Грешка при пријављивању",
        "listfiles-delete": "обриши",
        "listfiles-summary": "Ова посебна страница приказује све послате датотеке.",
        "listfiles_search_for": "Назив датотеке:",
+       "listfiles-userdoesnotexist": "Кориснички налог „$1“ није регистрован.",
        "imgfile": "датотека",
        "listfiles": "Списак датотека",
        "listfiles_thumb": "Минијатура",
        "sp-contributions-blocked-notice-anon": "Овој ИП адреси је тренутно забрањен приступ.\nИзвештај о блокираним корисницима се налази испод:",
        "sp-contributions-search": "Претрага доприноса",
        "sp-contributions-username": "ИП адреса или корисничко име:",
-       "sp-contributions-toponly": "Ð\9fÑ\80икажи Ñ\81амо најновије измене",
-       "sp-contributions-newonly": "Ð\9fÑ\80икажи Ñ\81амо измене којима су направљене нове странице",
+       "sp-contributions-toponly": "Само најновије измене",
+       "sp-contributions-newonly": "Само измене којима су направљене нове странице",
        "sp-contributions-submit": "Претражи",
        "whatlinkshere": "Шта води овде",
        "whatlinkshere-title": "Странице које су повезане са „$1“",
index 1ad6b7e..6c1ba97 100644 (file)
        "createacct-benefit-heading": "{{SITENAME}} je napravljen od strane ljudi kao što ste vi.",
        "createacct-benefit-body1": "{{PLURAL:$1|izmena|izmene}}",
        "createacct-benefit-body2": "{{PLURAL:$1|stranica|stranice}}",
-       "createacct-benefit-body3": "skorašnjih {{PLURAL:$1|doprinosa}}",
+       "createacct-benefit-body3": "{{PLURAL:$1|aktivni korisnik|aktivnih korisnika}}",
        "badretype": "Unete lozinke se ne poklapaju.",
        "userexists": "Korisničko ime je zauzeto. Izaberite drugo.",
        "loginerror": "Greška pri prijavljivanju",
        "sp-contributions-blocked-notice-anon": "Ovoj IP adresi je trenutno zabranjen pristup.\nIzveštaj o blokiranim korisnicima se nalazi ispod:",
        "sp-contributions-search": "Pretraga doprinosa",
        "sp-contributions-username": "IP adresa ili korisničko ime:",
-       "sp-contributions-toponly": "Prikaži samo najnovije izmene",
-       "sp-contributions-newonly": "Prikaži samo izmene kojima su napravljene nove stranice",
+       "sp-contributions-toponly": "Samo najnovije izmene",
+       "sp-contributions-newonly": "Samo izmene kojima su napravljene nove stranice",
        "sp-contributions-submit": "Pretraži",
        "whatlinkshere": "Šta vodi ovde",
        "whatlinkshere-title": "Stranice koje su povezane sa „$1“",
index 17bdc05..94ca2f1 100644 (file)
        "pool-queuefull": "Antrian geus pinuh",
        "pool-errorunknown": "Éror teu dipikawanoh",
        "pool-servererror": "Palayanan ''pool counter'' teu disadiakeun ($1).",
+       "poolcounter-usage-error": "Galat pamakéan: $1",
        "aboutsite": "Ngeunaan {{SITENAME}}",
        "aboutpage": "Project:Ngeunaan",
        "copyright": "Eusina ditangtayungan ku $1 iwal lamun disebutkeun béda.",
        "disclaimers": "Bantahan",
        "disclaimerpage": "Project:Bantahan_umum",
        "edithelp": "Pitulung ngédit",
+       "helppage-top-gethelp": "Pitulung",
        "mainpage": "Tepas",
        "mainpage-description": "Tepas",
        "policy-url": "Project:Kawijakan",
        "nospecialpagetext": "<strong>Anjeun ménta kaca husus nu teu dipikawanoh.</strong>\nKaca husus anu bener bisa ditempo béréndélanana dina [[Special:SpecialPages|{{int:specialpages}}]].",
        "error": "Kasalahan",
        "databaseerror": "Kasalahan gudang data",
+       "databaseerror-text": "Aya galat kueri pangkalan data. Ieu bisa jadi totondén aya bug dina sopwérna.",
+       "databaseerror-textcl": "Aya galat kueri pangkalan data.",
        "databaseerror-query": "Kueri: $1",
        "databaseerror-function": "Fungsi: $1",
        "databaseerror-error": "Eror: $1",
        "readonly_lag": "Pangkalan datana sacara otomatis dikonci nalika server pangkalan data sekundér disalin kana master",
        "internalerror": "Kasalahan internal",
        "internalerror_info": "Kasalahan internal: $1",
+       "internalerror-fatal-exception": "Mahiwal dina ketikan \"$1\"",
        "filecopyerror": "Teu bisa nyalin koropak \"$1\" ka \"$2\".",
        "filerenameerror": "Teu bisa ngaganti ngaran koropak \"$1\" jadi \"$2\".",
        "filedeleteerror": "Teu bisa ngahapus koropak \"$1\".",
        "directorycreateerror": "Henteu bisa nyieun diréktori \"$1\".",
+       "directoryreadonlyerror": "Diréktori \"$1\" ukur-baca.",
+       "directorynotreadableerror": "Diréktori \"$1\" henteu bisa dibaca.",
        "filenotfound": "Teu bisa manggihan koropak \"$1\".",
        "unexpected": "Peunteun di luar hontalan: \"$1\"=\"$2\".",
        "formerror": "Kasalahan: teu bisa ngirim formulir",
        "badarticleerror": "Peta ieu teu bisa dipigawé na kaca ieu.",
        "cannotdelete": "Kaca atawa berkas \"$1\" teu bisa dihapus.\nSigana geus dihapus ku nu séjén.",
        "cannotdelete-title": "Hanteu bisa ngahapus kaca \"$1\"",
+       "delete-hook-aborted": "Hapusan dibolaykeun ku hook.\nTaya pedaran nanaon.",
+       "no-null-revision": "Henteu bisa nyieun révisi null anyar pikeun kaca \"$1\"",
        "badtitle": "Judul goréng",
        "badtitletext": "Judul kaca nu dipénta teu bener, kosong, atawa judul antarbasa atawa antarwikina salah tutumbu.",
+       "title-invalid-empty": "Judul kaca anu dipénta kosong atawa ukur ngandung ngaran hiji ngaranspasi.",
+       "title-invalid-utf8": "Judul kaca anu dipénta ngandung sékuén UTF-8 anu henteu sah.",
+       "title-invalid-interwiki": "Judul kaca anu dipundut ngandung tutumbu interwiki anu henteu bisa dipaké dina judul.",
+       "title-invalid-talk-namespace": "Judul kaca anu dipénta nujul ka kaca obrolan anu teu mungkin aya.",
+       "title-invalid-characters": "Judul kaca anu dipénta ngandung karakter anu henteu sah: \"$1\".",
+       "title-invalid-relative": "Judul ngandung jalur rélatip. Judul kaca rélatip (./, ../) henteu sah, kusabab bakal mindeng teu kahontal nalika dibuka maké browser pamaké.",
+       "title-invalid-magic-tilde": "Judul kaca anu dipénta ngandung sékuéns gelombang sulap (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Judul kaca anu dipundut panjang teuing. Ulah leuwih ti $1 {{PLURAL:$1|bit}} dina panyandi UTF-8.",
+       "title-invalid-leading-colon": "Judul kaca anu dipénta dimimitian ku kolon anu henteu sah.",
        "perfcached": "Data di handap ieu mangrupa 'cache' sahingga bisa jadi henteu mutahir. 'Cache' nyadiakeun paling loba {{PLURAL:$1|hiji hasil|$1 hasil}}.",
        "perfcachedts": "Data di handap mangrupa 'cache' anu panungtungan diropéa $1. 'Cache' nyadiakeun paling loba {{PLURAL:$4|hiji hasil|$4 hasil}}.",
        "querypage-no-updates": "Pangrobahan ahir ti kaca ieu keur dipaéhkeun. Data anu aya di dieu ayeuna moal dimuat deui.",
        "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": "Kaca ieu eusina teks antarmuka pikeun dipaké ku pakakas beyé sarta geus dikunci pikeun ngahindar ti kasalahan.",
-       "editinginterface": "'''Awas:''' 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.\nPikeun alihbasa, mangga sumping ka [//translatewiki.net/wiki/Main_Page?setlang=en 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 [//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.",
        "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'''.",
        "ns-specialprotected": "Kaca dina ngaranspasi {{ns:special}} teu bisa di édit.",
        "titleprotected": "Ieu judul dikonci ku [[User:$1|$1]] kalawan alesan ''$2''.",
        "filereadonlyerror": "Berkas \"$1\" teu bisa dirobah kusabab répositori \"$2\" keur dina mode ukur-maca.\n\nKuncén anu ngonci méré alesan: \"$3\".",
+       "invalidtitle-knownnamespace": "Judul henteu sah kusabab ngandung ngaranspasi \"$2\" jeung téks \"$3\"",
+       "invalidtitle-unknownnamespace": "Judul henteu sah kusabab ngandung angka ngaranspasi $1 jeung tulisan \"$2\"",
        "exception-nologin": "Henteu asup log",
        "exception-nologin-text": "Mangga asup log pikeun bisa asup atawa ngarobah ieu kaca.",
        "exception-nologin-text-manual": "Mangga $1 pikeun bisa asup atawa ngarobah ieu kaca.",
        "wrongpassword": "Sandi nu diasupkeun teu cocog. Mangga cobian deui.",
        "wrongpasswordempty": "Sandina can kaeusian. Cobaan deui!",
        "passwordtooshort": "Sandina kudu diwangun ku sahanteuna {{PLURAL:$1|1 karakter|$1 karakter}}.",
+       "passwordtoolong": "Kecap sandi teu bisa leuwih ti {{PLURAL:$1|1 karakter|$1 karakter}}.",
        "password-name-match": "Sandi anjeun kudu béda ti landihan.",
        "password-login-forbidden": "Sandiasma jeung sandina teu bisa dipaké.",
        "mailmypassword": "Setél ulang kecap sandi",
        "pt-userlogout": "Kaluar log",
        "php-mail-error-unknown": "Kasalahan nu teu kanyahoan dina fungsi PHP surélék().",
        "user-mail-no-addy": "Nyobaan ngirim surélék tanpa alamat.",
+       "user-mail-no-body": "Nyobaan ngirim surélék kosong atawa eusina pondok pisan.",
        "changepassword": "Robah sandi",
        "resetpass_announce": "Pikeun nganggeuskeun asup log, anjeun kudu nyieun kecap sandi anyar.",
        "resetpass_text": "<!-- Tambahkeun téks di dieu -->",
        "resetpass-recycled": "Mangga ganti kecap sandi anjeun ku nu anyar.",
        "resetpass-temp-emailed": "Anjeun asup log migunakeun sandi témporér. Pikeun nganggeuskeun asup log, anjeun kudu nyieun kecap sandi anyar di dieu:",
        "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.",
        "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.}}",
        "passwordreset-legend": "Setél ulang sandi",
        "passwordreset-disabled": "Dina ieu wiki, sandi teu bisa disetél ulang.",
        "passwordreset-emaildisabled": "Fitur surélék ditumpurkeun di ieu wiki.",
        "passwordreset-username": "Sandiasma:",
        "passwordreset-domain": "Domain:",
        "passwordreset-capture": "Témbongkeun surat-é hasilna?",
+       "passwordreset-capture-help": "Upama anjeun nyéntang ieu kotak, surélék (anu ngirimkeun kecap sandi saheulaanan) bakal ditémbongkeun ka anjeun sarta dikirimkeun ka pamakéna.",
        "passwordreset-email": "Alamat surélék:",
        "passwordreset-emailtitle": "Wincikan akun di {{SITENAME}}",
-       "passwordreset-emailtext-ip": "Aya (bisa jadi Anjeun, ti alamat IP $1) ménta dibéjaan ngeunaan akun di {{SITENAME}} ($4). {{PLURAL:$3|Akun|Akun-akun}} di handap patali jeung alamat ieu surélék:\n\n$2\n\n{{PLURAL:$3|Ieu sandi saheulaanan|Ieu sandi saheulaanan}} anu bakal kadaluwarsa dina témpo {{PLURAL:$5|sapoé|$5 poé}}.\nAnjeun kudu asup sarta milih sandi anyar ayeuna. Lamun nu séjén nyieun ieu paménta, atawa lamun Anjeun geus inget sandi aslina sarta moal dirobah, ieu surat teu kudu diwaro.",
-       "passwordreset-emailtext-user": "Hiji jalma (bisa jadi Anjeun, ti alamat IP $1) ménta pangéling-ngéling nu wincik tina akun pikeun {{SITENAME}} ($4).\n{{PLURAL:$3|Akun|Akun-akun}} di handap patali jeung alamat surélék ieu:\n\n$2\n\n{{PLURAL:$3|Sandi saheulaanan|Sandi saheulaanan}} ieu bakal kadaluwarsa dina témpo {{PLURAL:$5|sapoé|$5 poé}}.\nAnjeun kudu asup sarta milih sandi anyar ayeuna. Lamun jalma séjén nyieun\nieu pamundut atawa lamun Anjeun inget sandi asli sarta moal \nngarobah deui, Anjeun bisa teu maliré ieu talatah sarta terus ngagunakeun sandi heubeul.",
+       "passwordreset-emailtext-ip": "Aya (sigana anjeun, ti alamat IP $1) ménta nyetél ulang kecap sandi pikeun {{SITENAME}} ($4). {{PLURAL:$3|Akun}} di handap tumali jeung alamat ieu surélék:\n\n$2\n\n{{PLURAL:$3|Ieu sandi saheulaanan}} bakal kadaluwarsa dina témpo {{PLURAL:$5|sapoé|$5 poé}}.\nAnjeun kudu asup sarta milih sandi anyar ayeuna. Lamun teu rumasa nyieun ieu paménta, atawa lamun geus inget sandi aslina sarta moal dirobah, ieu surat teu kudu diwaro.",
+       "passwordreset-emailtext-user": "Pamaké $1 di {{SITENAME}} ménta nyetél ulang sandi anjeun di {{SITENAME}} ($4). {{PLURAL:$3|Akun}} di handap tumali jeung alamat surélék ieu:\n\n$2\n\n{{PLURAL:$3|Ieu sandi saheulaanan}} bakal kadaluwarsa dina témpo {{PLURAL:$5|sapoé|$5 poé}}.\nAnjeun kudu asup sarta milih sandi anyar ayeuna. Lamun henteu rumasa nyieun ieu pamundut atawa lamun geus inget sandi asli sarta moal ngarobah deui, ieu talatah teu kudu dipaliré.",
        "passwordreset-emailelement": "Sandiasma: $1\nSandi saheulaanan: $2",
-       "passwordreset-emailsent": "Surélék pangéling geus dikirim.",
+       "passwordreset-emailsent": "Surélék pikeun nyetél ulang kecap sandi geus dikirim.",
+       "passwordreset-emailsent-capture": "Surélék pikeun nyetél ulang kecap sandi geus dikirim, sakumaha ditémbongkeun di handap.",
+       "passwordreset-emailerror-capture": "Surélék pikeun nyetél ulang kecap sandi geus dijieun, sakumaha ditémbongkeun di handap, tapi gagal ngirim ka {{GENDER:$2|pamaké}}: $1",
        "changeemail": "Ganti alamat surélék",
        "changeemail-text": "Lengkepan ieu formulir pikeun ngaganti alamat surélék. Anjeun bakal kudu ngasupkeun sandi pikeun ngonfirmasi ieu parobahan.",
        "changeemail-no-info": "Anjeun kudu asup log pikeun bisa muka ieu kaca sacara langsung.",
        "changeemail-none": "(euweuh)",
        "changeemail-password": "Kecap sandi {{SITENAME}} Anjeun:",
        "changeemail-submit": "Ganti surélék",
+       "changeemail-throttled": "Anjeun loba teuing gagal asup log.\nTungguan $1 saméméh nyobaan deui.",
+       "resettokens": "Rését token",
+       "resettokens-text": "Anjeun bisa ngarését token sangkan bisa muka sababaraha data-data pribadi anu tumali jeung akun anjeun di dieu.\n\nAnjeun kudu ngarését lamun kungsi teu kahaja ngabéjaan anu séjén atawa lamun aya anu nyusup kana akun anjeun.",
+       "resettokens-no-tokens": "Taya token pikeun dirését.",
+       "resettokens-legend": "Rését token",
        "resettokens-tokens": "Token:",
+       "resettokens-token-label": "$1 (ajén ayeuna: $2)",
+       "resettokens-watchlist-token": "Token pikeun asupan raramat (Atom/RSS) [[Special:Watchlist|parobahan kana kaca-kaca anu diponcorong]]",
+       "resettokens-resetbutton": "Setél token anu dipilih",
        "bold_sample": "Téks kandel",
        "bold_tip": "Téks kandel",
        "italic_sample": "Tulisan déngdék",
        "anoneditwarning": "<strong>Awas:</strong> Anjeun can asup log. Lamun ngédit, alamat IP anjeun bakal katempo ku balaréa. Lamun anjeun <strong>[$1 asup log]</strong> atawa <strong>[$2 nyieun akun]</strong>, ngaran anjeun bakal natrat dina jujutan éditanana, kalayan sababaraha kauntungan lianna.",
        "anonpreviewwarning": "\"Anjeun can asup log. Mun disimpen, alamat IP anjeun bakal kacatet dina jujutan ieu kaca.\"",
        "missingsummary": "'''Pépéling:''' Anjeun can ngeusian sari éditan. Mun anjeun ngaklik deui Simpen, éditan anjeun bakal disimpen tanpa sari éditan",
+       "selfredirect": "<strong>Awas:</strong> Anjeun ngalihkeun ieu kaca ka asalna.\nAnjeun sigana salah ngasupkeun tujul alihan, atawa ngédit kaca anu salah.\nUpama anjeun ngaklik deui \"{{int:savearticle}}\", alihanana bakal angger dijieun.",
        "missingcommenttext": "Mangga tulis koméntar di handapeun ieu.",
        "missingcommentheader": "'''Pépéling''': Anjeun can ngeusian judul pikeun ieu koméntar.\nMun anjeun ngaklik deui \"{{int:savearticle}}\", éditan anjeun bakal disimpen tanpa koméntar.",
        "summary-preview": "Ringkesan pramidang:",
        "subject-preview": "Sawangan subyek/tajuk:",
+       "previewerrortext": "Aya éror nalika nyobaan nyawang robahan anjeun.",
        "blockedtitle": "Pamaké dipeungpeuk",
        "blockedtext": "'''Ngaran pamaké atawa alamat IP anjeun dipeungpeuk.'''\n\nDipeungpeuk ku $1.\nAlesanana ''$2''.\n\n* Mimiti dipeungpeuk : $8\n* dipeungpeuk kadaluarsa dina: $6\n* Sasaran nudipeungpeuk : $7\n\nAnjeun bisa nepungan $1 atawa salasahiji [[{{MediaWiki:Grouppage-sysop}}|kuncén]] séjén pikeun nyawalakeun hal ieu.\n'''Catet''': yén anjeun teu bisa maké fungsi \"surélékan pamaké ieu\" mun anjeun teu ngadaptarkeun alamat surélék nu sah kana [[Special:Preferences|préferénsi pamaké]] anjeun.\n\nAlamat IP anjeun $3 jeung ID na #$5.\nLampirkeun informasi ieu dina unggal ''query'' anjeun.",
        "autoblockedtext": "Alamat IP anjeun otomatis dipeungpeuk sabab dipaké ku pamaké séjén nu geus dipeungpeuk ku $1, kalawan alesan:\n\n:''$2''\n\n*Mimiti dipeungpeuk: $8\n*Kadaluwarsa peungpeuk: $6\n*Sasaran peungpeuk: $7\n\nAnjeun bisa nepungan $1 atawa [[{{MediaWiki:Grouppage-sysop}}|kuncé]] lianna pikeun ngabadamikeun ieu peungpeukan.\n\nCatet yén anjeun moal bisa migunakeun fitur \"surélékan ieu pamaké\" mun alamat surélék anu didaptarkeun dina [[Special:Preferences|préferénsi pamaké]]na teu sah, sarta teu dipeungpeuk tina migunakeun ieu fitur.\n\nAlamat IP Anjeun ayeuna nyaéta $3, sarta ID peungpeukan anjeun #$5.\nMangga sebatkeun éta ID dina pamundut-pamundut anjeun.",
        "loginreqlink": "asup log",
        "loginreqpagetext": "Mun hayang muka kaca séjénna, Anjeun kudu $1.",
        "accmailtitle": "Sandi geus dikirim.",
-       "accmailtext": "Sandi acak pikeun [[User talk:$1|$1]] geus dikirimkeun ka $2.\n\nSandi pikeun rekening anyar ieu bisa diganti dina kaca ''[[Special:ChangePassword|ganti sandi]]'' sanggeus asup log.",
+       "accmailtext": "Sandi acak pikeun [[User talk:$1|$1]] geus dikirim ka $2. Éta sandi bisa diganti dina kaca ''[[Special:ChangePassword|ganti sandi]]'' sanggeus asup log.",
        "newarticle": "(anyar)",
        "newarticletext": "Anjeun geus nuturkeun tutumbu ka kaca nu can aya.\nPikeun nyieun kaca, mimitian ku ngetik jeroeun kotak di handap\n(tempo [$1 kaca pitulung] pikeun leuwih écés).\nMun anjeun ka dieu teu ngahaja, klik baé tombol '''back''' na panyungsi anjeun.",
-       "anontalkpagetext": "----''Ieu mangrupa kaca sawala pikeun pamaké anonim nu can (henteu) nyieun rekening, kusabab kitu alamat IP dipaké dina hal ieu pikeun nyirikeun anjeunna. Alamat IP ieu bisa dipaké ku sababaraha urang. Mun anjeun salasahiji pamaké anonim sarta ngarasa aya koméntar nu teu pakait geus ditujukeun ka anjeun, leuwih hadé [[Special:UserLogin|nyieun rekening atawa asup log]] sangkan teu pahili jeung pamaké anonim séjén.''",
+       "anontalkpagetext": "----\n<em>Ieu mangrupa kaca sawala pikeun pamaké anonim anu can nyieun akun, atawa anu henteu maké.</em>\nKu kituna kapaksa make alamat IP pikeun nyirikeun anjeunna. Alamat IP ieu bisa dipaké ku sababaraha jalma. Lamun anjeun salasahiji pamaké anonim sarta ngarasa aya koméntar nu teu pakait geus ditujukeun ka anjeun, mangga [[Special:UserLogin/signup|nyieun akun]] atawa [[Special:UserLogin|asup log]] sangkan teu pacorok jeung pamaké anonim lianna.",
        "noarticletext": "Kiwari can aya téks dina ieu kaca.\nAnjeun bisa [[Special:Search/{{PAGENAME}}|nyusud judul ieu kaca]] dina kaca séjén,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} nyusud log nu tumali],\natawa [{{fullurl:{{FULLPAGENAME}}|action=edit}} ngédit ieu kaca]</span>.",
        "noarticletext-nopermission": "Kiwari can aya téks dina ieu kaca.\nAnjeun bisa [[Special:Search/{{PAGENAME}}|nyusud judul ieu kaca]] dina kaca séjén,atawa <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} nyusud log nu tumali]</span>, tapi teu wenang pikeun nyieun ieu kaca.",
+       "missing-revision": "Révisi #$1 kaca \"{{FULLPAGENAME}}\" teu aya.\n\nKajadian ieu biasana kusabab nuturkeun tutumbu jujutan kaca anu geus dihapus.\nWincikanana bisa ditempo di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log hapusan].",
        "userpage-userdoesnotexist": "Rekening pamaké \"<nowiki>$1</nowiki>\" tacan kadaptar. Mangga tilikan lamun anjeun hoyong ngadamel/ngédit kaca ieu.",
        "userpage-userdoesnotexist-view": "Rekening pamaké \"$1\" teu aya dina daptar.",
        "blocked-notice-logextract": "Ieu pamaké keur dipeungpeuk.\nPikeun rujukan, éntri log panungtung dipidangkeun di handap:",
-       "clearyourcache": "'''Catetan:''' Sanggeus nyimpen, anjeun perlu ngosongkeun sindangan panyungsi anjeun pikeun nempo parobahanana:\n'''Mozilla/Safari/Konqueror:''' pencét & tahan ''Shift'' bari ngaklik ''Reload'' (atawa pencét ''Ctrl-Shift-R''), '''IE:''' pencét ''Ctrl-F5'', '''Opera:''' pencét ''F5''.",
+       "clearyourcache": "<strong>Catet:</strong> Sanggeus nyimpen, anjeun kudu narabas singgahan panyungsi anjeun pikeun nempo parobahanana.\n* <strong>Firefox/Safari:</strong> Tahan <em>Shift</em> bari ngaklik <em>Reload</em>, atawa pencét boh <em>Ctrl-F5</em> atawa <em>Ctrl-R</em> (<em>⌘-R</em> dina Mac)\n* <strong>Google Chrome:</strong> Pencét <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> dina Mac)\n* <strong>Internet Explorer:</strong> Tahan <em>Ctrl</em> bari ngaklik <em>Refresh</em>, atawa pencét <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Kosongkeun singgahan dina <em>Tools → Preferences</em>",
        "usercssyoucanpreview": "Tip:''' Paké tombol \"{{int:showpreview}}\" pikeun nyobaan CSS anyar anjeun méméh nyimpen.",
        "userjsyoucanpreview": "Tip:''' Paké tombol \"{{int:showpreview}}\" pikeun nyobaan JavaScript anyar anjeun méméh nyimpen.",
        "usercsspreview": "'''Inget yén anjeun ukur nyawang css pamaké anjeun, can disimpen!'''",
        "updated": "(Geus diropéa)",
        "note": "'''Catetan:'''",
        "previewnote": "'''Inget yén ieu ukur pratayang, can disimpen.'''\nÉditan anjeun can disimpen!",
+       "continue-editing": "Miang ka bagian ngédit",
        "previewconflict": "Sawangan ieu mangrupa eunteung pikeun téks na rohangan ngédit sakumaha bakal katémbong mun ku anjeun disimpen.",
        "session_fail_preview": "'''Punten! Kami teu bisa ngolah éditan anjeun alatan leungitna data rintakan. Mangga cobian deui. Mun tetep teu bisa, cobi kaluar log lajeng lebet deui.'''",
        "session_fail_preview_html": "'''Punten! Kami teu bisa ngolah éditan anjeun sabab leungitna data rintakan.'''\n\n''Kusabab {{SITENAME}} ngawenangkeun dipakéna HTML atah, pramidangna disumputkeun pikeun nyegah panarajang JavaScript.''\n\n'''Mun ieu éditan bener, mangga cobian deui. Mun tetep teu metu, cobi [[Special:UserLogout|kaluar log]] heula, lajeng lebet deui.'''",
        "yourdiff": "Béda",
        "copyrightwarning": "Perhatikeun yén sadaya kontribusi ka MediaWiki dianggap medal dina panangtayungan lisénsi $2 (tempo $1 pikeun jéntréna). Mun anjeun teu miharep tulisan anjeun dirobah sarta disebarkeun deui, ulah dilebetkeun ka dieu.<br />\nAnjeun ogé jangji yén tulisan ieu dijieun ku sorangan, atawa disalin ti ''domain'' umum atawa sumberdaya bébas séjénna. '''ULAH NGASUPKEUN KARYA NU MIBANDA HAK CIPTA TANPA IDIN!'''",
        "copyrightwarning2": "Catet yén sadaya kontribusi ka {{SITENAME}} bisa diédit, dirobah, atawa dihapus ku kontributor séjén. Mun anjeun teu miharep tulisan anjeun dirobah, ulah ngintunkeun ka dieu.<br />\nAnjeun ogé mastikeun yén ieu téh pituin tulisan anjeun, atawa salinan ti domain umum atawa sumberdaya bébas séjénna (tempo $1 pikeun écésna).\n'''ULAH NGINTUNKEUN KARYA NU MIBANDA HAK CIPTA TANPA WIDI!'''",
-       "longpageerror": "'''SALAH: Téks anu dikirimkeun gedéna $1 kb, leuwih ti maksimum $2 kb. Téks teu bisa disimpen.'''",
+       "longpageerror": "<strong>Éror: téks anu dikirimkeun panjangna {{PLURAL:$1|hiji kilobit|$1 kilobit}}, leuwih ti maksimum {{PLURAL:$2|hiji kilobit|$2 kilobit}}.</strong>\nTeu bisa disimpen.",
        "readonlywarning": "<strong>Awas: pangkalan data dikonci pikeun diropéa, anjeun moal bisa nyimpen éditan anjeun ayeuna.</strong>\nMun perlu, simpen heula téksna kana berkas téks pikeun diasupkeun deui séjén mangsa.\n\nKuncén anu ngonci pangkalan data méré katerangan: $1",
        "protectedpagewarning": "'''AWAS: ieu kaca dikonci sarta ngan bisa dirobah ku pamaké nu statusna kuncén.'''\nÉntri log panungtungan ditémbongkeun di handap:",
        "semiprotectedpagewarning": "'''Catetan''': ieu kaca dikonci sarta ukur bisa dirobah ku pamaké nu geus kadaptar.\nÉntri log panungtung dibéréndélkeun di handap:",
        "edit-gone-missing": "Kaca teu bisa dianyarkeun,\nsigana kusabab geus dihapus.",
        "edit-conflict": "Éditan bantrok",
        "edit-no-change": "Éditan anjeun teu diwaro, kusabab taya nu robah dina tulisanana.",
+       "postedit-confirmation-created": "Kaca geus dijieun.",
        "postedit-confirmation-saved": "Éditan anjeun tos disimpen.",
        "edit-already-exists": "Teu bisa nyieun kaca anyar.\nArtikelna geus aya.",
        "defaultmessagetext": "Téks ti dituna",
        "invalid-content-data": "Data eusi henteu valid",
        "content-not-allowed-here": "Eusi \"$1\" teu diijinan di kaca [[$2]]",
+       "editwarning-warning": "Ninggalkeun ieu kaca bakal ngaleungitkeun parobahan anu tas dijieun.\nUpama anjeun geus asup log, anjeun bisa numpurkeun ieu talatah dina bagian \"{{int:prefs-editing}}\" préferénsi anjeun.",
+       "editpage-notsupportedcontentformat-title": "Format eusi teu dirojong",
+       "editpage-notsupportedcontentformat-text": "Format eusi $1 teu dirojong ku modél eusi $2.",
        "content-model-wikitext": "wikitéks",
        "content-model-text": "téks polos",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "content-json-empty-object": "Obyék kosong",
+       "content-json-empty-array": "Larik kosong",
+       "duplicate-args-warning": "<strong>Awas:</strong> [[:$1]] nyalukan [[:$2]] ku leuwih ti hiji ajén pikeun paraméter \"$3\". Ngan ajén panungtung anu bakal dipaké.",
+       "duplicate-args-category": "Kaca maké argumén ganda dina caluk citakan",
+       "duplicate-args-category-desc": "Éta kaca ngandung caluk citakan anu maké argumén ganda, kawas <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> atawa <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Inget!: Kaca ieu ngandung réa teuing maké fungsi ''parser''.\n\nAyeuna aya {{PLURAL:$1|$1 panggilan|$1 panggilan}}, sakuduna kurang ti $2 {{PLURAL:$2|panggilan|panggilan}}.",
        "expensive-parserfunction-category": "Kaca kalawan réa teuing maké fungsi parser",
        "post-expand-template-inclusion-warning": "Inget! : Ukuran citakan anu dipaké badag teuing.\nSawatara citakan baris teu diasupkeun.",
        "post-expand-template-argument-category": "Kaca kalawan argumén citakan anu teu dipaliré",
        "parser-template-loop-warning": "Katangén ayana citakan anu patumpang tindih: [[$1]]",
        "parser-template-recursion-depth-warning": "Citakan patumpang tindih ngaleuwihan wates($1)",
+       "language-converter-depth-warning": "Parobah basa ngaleuwihan wates jerona ($1)",
+       "expansion-depth-exceeded-category": "Kaca-kaca anu jero ékspansina leuwih ti wates",
+       "expansion-depth-exceeded-category-desc": "Kacana ngaleuwihan wates jero ékspansina.",
+       "expansion-depth-exceeded-warning": "Kaca ngaleuwihan jero ékspansi",
        "undo-success": "Éditan ieu bisa dibolaykeun. Mangga pariksa babandingan di handap pikeun mastikeun mémang anjeun miharep éta parobahan. Mun geus yakin, mangga simpen parobahanana pikeun ngabolaykeun éditan.",
        "undo-failure": "Éditan teu bisa dibolaykeun alatan kaselang ku éditan séjén.",
        "undo-norev": "Éditan ieu henteu bisa bolaykeun alatan kaca henteu kapanggih atawa geus dihapus.",
        "undo-summary": "←Ngabolaykeun révisi $1 ku [[Special:Contributions/$2|$2]] ([[User talk:$2|Obrolan]])",
+       "undo-summary-username-hidden": "Bolaykeun révisi $1 ku pamaké nyumput",
        "cantcreateaccounttitle": "Rekening teu bisa dijieun",
        "cantcreateaccount-text": "Nyieun rekening ti ieu alamat IP ('''$1''') dipeungpeuk ku [[User:$3|$3]].\n\nAlesanana $3 cenah ''$2''.",
+       "cantcreateaccount-range-text": "Nyieun akun ti alamat IP dina rentang '''$1''', kaasup alamat IP anjeun ('''$4'''), dipeungpeuk ku [[User:$3|$3]].\n\nAlesan $3 nyaéta ''$2''",
        "viewpagelogs": "Tempo log kaca ieu",
        "nohistory": "Teu aya jujutan édit pikeun kaca ieu.",
        "currentrev": "Révisi kiwari",
        "currentrev-asof": "Révisi mangsa $1",
        "revisionasof": "Révisi nurutkeun $1",
-       "revision-info": "Révisi per $1; $2",
+       "revision-info": "Révisi per $1 ku {{GENDER:$6|$2}}$7",
        "previousrevision": "← Révisi leuwih heubeul",
        "nextrevision": "Révisi nu leuwih anyar →",
        "currentrevisionlink": "Témbongkeun révisi kiwari",
        "history-feed-description": "Sajarah révisi kaca ieu di wiki",
        "history-feed-item-nocomment": "$1 dina $2",
        "history-feed-empty": "Kaca nu dipundut teu kapanggih.\nBisa jadi geus dihapus ti wiki atawa diganti ngaranna.\nCobaan [[Special:Search|sungsi di wiki]] pikeun kaca-kaca nu sarimbag.",
+       "history-edit-tags": "Édit tag révisi anu dipilih",
        "rev-deleted-comment": "(rangkuman éditan dihapus)",
        "rev-deleted-user": "(ngaran pamaké geus dihapus)",
-       "rev-deleted-event": "(lampah log dihapus)",
+       "rev-deleted-event": "(wincikan log geus dihapus)",
        "rev-deleted-user-contribs": "[Ngaran pamaké atawa alamat IP dihapus - suntingan disumputkeun tina daptar kontribusi]",
        "rev-deleted-text-permission": "Révisi ieu kaca geus '''dihapus'''.\nPedaran lengkepna bisa dipilari di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log hapusan]",
-       "rev-deleted-text-unhide": "Révisi ieu kaca geus '''dihapus'''.\nLengkepna bisa ditéang dina [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log hapusan].\nSalaku kuncén, mun perlu, anjeun bisa kénéh [$1 nempo ieu révisi].",
-       "rev-suppressed-text-unhide": "Révisi ieu kaca geus '''dihapus'''.\nLengkepna bisa dipaluruh dina [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log hapusan].\nSalaku kuncén, mun perlu, anjeun bisa kénéh [$1 nempo ieu révisi].",
-       "rev-deleted-text-view": "Révisi ieu kaca geus '''dihapus'''.\nSalaku administrator, anjeun angger bisa nempo; pedaran lengkepna bisa dipilari di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log hapusan].",
+       "rev-suppressed-text-permission": "Révisi ieu kaca geus <strong>disuprési</strong>.\nWincikanana bisa dipaluruh di [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} log suprési].",
+       "rev-deleted-text-unhide": "Révisi ieu kaca geus <strong>dihapus</strong>.\nWincikanana bisa dipaluruh di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log hapusan].\nAnjeun kénéh [$1 nempo ieu révisi] lamun perlu.",
+       "rev-suppressed-text-unhide": "Révisi ieu kaca geus <strong>disuprési</strong>.\nWincikanana bisa dipaluruh di [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} log suprési].\nAnjeun bisa kénéh [$1 nempo ieu révisi] lamun perlu.",
+       "rev-deleted-text-view": "Révisi ieu kaca geus <strong>dihapus</strong>.\nAnjeun bisa kénéh nempo; wincikanana bisa dipaluruh di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log hapusan].",
+       "rev-suppressed-text-view": "Révisi ieu kaca geus <strong>disuprési</strong>.\nAnjeun bisa kénéh nempo; wincikanana bisa dipaluruh di [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} log suprési].",
        "rev-deleted-no-diff": "Anjeun teu bisa némbongkeun bédana kusabab révisina geus '''dihapus'''.\nLeuwih lengkepna bisa ditéang di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log hapusan].",
        "rev-suppressed-no-diff": "Anjeun teu bisa ningali ieu parobahan ku sabab salah sahiji tina éditan geus ''dihapus'''.",
-       "rev-deleted-unhide-diff": "Salahsahiji révisi dina ieu béda geus '''dihapus'''.\nLengkepna bisa dipilari di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log hapusan].\nSalaku kuncen, mun perlu, anjeun bisa kénéh [$1 nempo bédana].",
+       "rev-deleted-unhide-diff": "Salasahiji révisi dina ieu jujutan geus <strong>dihapus</strong>.\nWincikanana bisa dipaluruh di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log hapusan].\nAnjeun bisa kénéh [$1 nempo jujutanana], lamun perlu.",
+       "rev-suppressed-unhide-diff": "Salasahiji révisi ieu jujutan geus <strong>disuprés</strong>.\nWincikanana bisa dipaluruh di [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} log suprési].\nAnjeun bisa kénéh [$1 muka ieu jujutan] lamun perlu.",
        "rev-delundel": "témbongkeun/sumputkeun",
        "rev-showdeleted": "témbongkeun",
        "revisiondelete": "Hapus/bolay ngahapus révisi",
        "revdelete-no-file": "Berkas anu ditujul teu kapanggih.",
        "revdelete-show-file-confirm": "Anjeun yakin rék nempo révisi anu geus dihapus dina berkas \"<nowiki>$1</nowiki>\" ti $2 nepi ka $3?",
        "revdelete-show-file-submit": "Enya",
-       "logdelete-selected": "{{PLURAL:$1|pilihan keur log|pilihan keur log}}:",
+       "revdelete-selected-text": "{{PLURAL:$1|Révisi dipilih}} ti [[:$2]]:",
+       "revdelete-selected-file": "{{PLURAL:$1|Vérsi berkas dipilih}} ti [[:$2]]:",
+       "logdelete-selected": "{{PLURAL:$1|Kajadian log dipilih}}:",
        "revdelete-confirm": "Mangga geura konfirmasi yen Anjeun gaduh maksad pikeun ngalakukeun hal ieu, paham kana konsekwensina, tur nu dilakukeun ieu teh luyu sareng [[{{MediaWiki:Policy-url}}|kawijakanana]]",
        "revdelete-suppress-text": "Nyumputkeun revisi '''ukur''' bisa digunakeun keur kasus-kasus di handap ieu:\n* Informasi nu boga potensi mitenah\n* Informasi pribadi nu teu pantes\n*: ''alamat imah katut nomer telepon, nomer kartu identitas, jeung lian-liana.''",
        "revdelete-legend": "Setél réstriksi révisi:",
        "revertmerge": "Pisahkeun",
        "mergelogpagetext": "Di handap ieu béréndélan prosés gabung jujutan kaca.",
        "history-title": "Jujutan révisi \"$1\"",
+       "difference-title": "Béda révisi \"$1\"",
+       "difference-title-multipage": "Béda antara kaca \"$1\" jeung \"$2\"",
        "difference-multipage": "(béda antarkaca)",
        "lineno": "Baris ka-$1:",
        "compareselectedversions": "Bandingkeun vérsi nu dipilih",
        "showhideselectedversions": "Témbongkeun/sumputkeun révisi nu dipilih",
        "editundo": "bolaykeun",
+       "diff-empty": "(taya bédana)",
        "diff-multi-manyusers": "({{PLURAL:$1|Hiji révisi antara|$1 révisi antara}} karya leuwih ti {{PLURAL:$2|pamaké|pamaké}} teu ditémbongkeun)",
        "searchresults": "Hasil maluruh",
        "searchresults-title": "Hasil nyusud \"$1\"",
        "notextmatches": "Teu aya téks kaca nu cocog",
        "prevn": "{{PLURAL:$1|$1}} saméméhna",
        "nextn": "{{PLURAL:$1|$1}} salajengna",
+       "prev-page": "kaca saméméhna",
+       "next-page": "kaca salajengna",
        "prevn-title": "$1 {{PLURAL:$1|hasil|hasil}} saméméhna",
        "nextn-title": "$1 {{PLURAL:$1|hasil|hasil}} salajengna",
        "shown-title": "Témbongkeun $1 {{PLURAL:$1|hasil|hasil}} per kaca",
        "viewprevnext": "Témbongkeun ($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-exists": "'''Dina wiki ieu geus aya kaca nu ngaranna \"[[:$1]]\"'''",
-       "searchmenu-new": "'''Jieun kaca \"[[:$1]]\" dina ieu wiki!'''",
+       "searchmenu-new": "<strong>Jieun kaca \"[[:$1]]\" di ieu wiki!</strong> {{PLURAL:$2|0=|Tempo ogé kaca anu kapanggih tina panyungsi.}}",
        "searchprofile-articles": "Kaca eusi",
        "searchprofile-images": "Multimédia",
        "searchprofile-everything": "Sagala",
        "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": "(alihan $1)",
        "search-section": "(bagean $1)",
+       "search-category": "(kategori $1)",
+       "search-file-match": "(cocog jeung eusi berkas)",
        "search-suggest": "Meureun maksud Anjeun nyaéta: $1",
        "search-interwiki-caption": "Proyék sawargi",
        "search-interwiki-default": "Hasil ti $1:",
        "searchrelated": "patula-patali",
        "searchall": "sadayana",
        "showingresults": "Di handap ieu némbongkeun {{PLURAL:$1|'''1''' hasil|'''$1''' hasil}}, dimimitianku  #'''$2'''.",
+       "showingresultsinrange": "Di handap dipidangkeun nepi ka {{PLURAL:$1|<strong>1</strong> hasil}} ti #<strong>$2</strong> nepi ka #<strong>$3</strong>.",
+       "search-showingresults": "{{PLURAL:$4|Hasil <strong>$1</strong> ti <strong>$3</strong>|Hasil <strong>$1 - $2</strong> ti <strong>$3</strong>}}",
        "search-nonefound": "Euweuh hasil nu cocog jeung kueri.",
        "powersearch-legend": "Panéangan tuluy",
        "powersearch-ns": "Téangan di ngaranspasi:",
        "preferences": "Préferénsi",
        "mypreferences": "Préferénsi",
        "prefs-edits": "Jumlah éditan:",
+       "prefsnologintext2": "Mangga asup log pikeun ngarobah préferénsi anjeun.",
        "prefs-skin": "Kulit",
        "skin-preview": "Pramidang",
        "datedefault": "Tanpa préferénsi",
        "prefs-personal": "Data pamaké",
        "prefs-rc": "Panémbong robahan anyar jeung tukung",
        "prefs-watchlist": "Awaskeuneun",
+       "prefs-editwatchlist": "Ropéa awaskeuneun",
+       "prefs-editwatchlist-label": "Ropéa éntri anu aya dina awaskeuneun:",
        "prefs-watchlist-days": "Jumlah poé anu ditémbongkeun dina daptar awaskeuneun:",
        "prefs-watchlist-days-max": "Panglilana $1 {{PLURAL:$1|poé|poé}}",
        "prefs-watchlist-edits": "Jumlah parobahan maksimum nu ditémbongkeun dina daptar panjang awaskeuneun:",
        "right-deletedtext": "Témbongkeun téks anu dihapus jeung parobahan antara révisi-révisi anu dihapus",
        "right-browsearchive": "Sungsi kaca nu geus dihapus",
        "right-undelete": "Balikeun deui kaca",
-       "right-suppressrevision": "Mariksa jeung mulangkeun révisi anu disumputkeun ti kuncén",
+       "right-suppressrevision": "Némbongkeun jeung nyumputkeun révisi spésifik ti para pamaké",
        "right-viewsuppressed": "Témbongkeun révisi anu disumputkeun ti pamaké lianna",
        "right-suppressionlog": "Nempo log privat",
        "right-block": "Peungpeuk pamaké lain tina ngédit",
        "recentchanges-label-bot": "Ieu parobahan dijieun ku bot",
        "recentchanges-label-unpatrolled": "Ieu éditan can karoris",
        "recentchanges-legend-heading": "'''Pedaran:'''",
-       "recentchanges-legend-newpage": "$1 - kaca anyar",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (tempo ogé [[Special:NewPages|béréndélan kaca anyar]])",
        "rcnotefrom": "Di handap ieu parobahan saprak <b>$2</b> (nu ditémbongkeun nepi ka <b>$1</b>).",
        "rclistfrom": "Témbongkeun nu anyar robah nepi ka $3 $2",
        "rcshowhideminor": "$1 éditan minor",
        "upload-proto-error": "Salah protokol",
        "upload-file-error": "Kasalahan internal",
        "upload-misc-error": "Kasalahan muat anu teu kanyahoan",
+       "upload-http-error": "Aya galat HTTP: $1",
+       "backend-fail-backup": "Teu bisa nyadangkeun berkas \"$1\".",
        "backend-fail-notexists": "Berkas $1 euweuh.",
        "backend-fail-notsame": "Berkas anu teu-identik geus aya di $1.",
        "backend-fail-invalidpath": "$1 perenahna henteu absah.",
        "backend-fail-delete": "Teu bisa ngahapus berkas $1.",
+       "backend-fail-describe": "Teu bisa ngarobah metadata pikeun berkas: \"$1\"",
        "backend-fail-alreadyexists": "Berkas $1 geus aya.",
        "backend-fail-store": "Hanteu bisa nyimpen berkas $1 di $2.",
        "backend-fail-copy": "Teu bisa nyalin berkas $1 ka $2.",
        "backend-fail-writetemp": "Teu bisa nulis kana berkas sementara.",
        "backend-fail-closetemp": "Teu bisa nutup berkas sementara.",
        "backend-fail-read": "Teu bisa maca berkas $1.",
-       "backend-fail-create": "Teu bisa nyieun berkas $1.",
+       "backend-fail-create": "Teu bisa nulis berkas \"$1\".",
+       "backend-fail-maxsize": "Teu bisa nulis berkas \"$1\" kusabab leuwih ti {{PLURAL:$2|hiji bit|$2 bit}}.",
        "backend-fail-contenttype": "Teu bisa nangtukeun tipeu eusi berkas anu badé disimpen di \"$1\".",
        "lockmanager-notlocked": "Teu bisa muka konci \"$1\" kusabab teu dikonci.",
        "lockmanager-fail-closelock": "Teu bisa nutup berkas konci pikeun \"$1\".",
        "sharedupload-desc-here": "Ieu berkas asalna ti $1 anu bisa jadi dipaké ku proyék séjén. \nPedaran ti [$2 kaca pedaranana] dipidangkeun di handap.",
        "uploadnewversion-linktext": "ngamuatkeun vérsi anyar koropak ieu",
        "shared-repo-from": "ti $1",
+       "upload-disallowed-here": "Anjeun teu bisa nimpah ieu berkas.",
        "filerevert": "balikkeun $1",
        "filerevert-legend": "Balikkeun gambar",
        "filerevert-intro": "Anjeun keur mulangkeun '''[[Media:$1|$1]]''' ka [vérsi $4, $3, $2].",
        "namespace": "Ngaranspasi:",
        "invert": "Balikkeun pilihan",
        "blanknamespace": "(Utama)",
-       "contributions": "Kontribusi ti kontributor",
+       "contributions": "Kontribusi {{GENDER:$1|pamaké}}",
        "contributions-title": "Sumbangan tulisan ti $1",
        "mycontris": "Kontribusi",
        "contribsub2": "Pikeun {{GENDER:$3|$1}} ($2)",
        "tooltip-pt-mycontris": "Daptar tulisan Anjeun",
        "tooltip-pt-login": "Leuwih hadé asup log, sanajan teu wajib",
        "tooltip-pt-logout": "Kaluar log",
+       "tooltip-pt-createaccount": "Najan henteu kudu, Anjeun leuwih hadé nyieun akun sarta asup log",
        "tooltip-ca-talk": "Sawala ngeunaan eusi kaca",
        "tooltip-ca-edit": "Anjeun bisa ngédit kaca ieu. Paké tombol pramidang méméh nyimpen.",
        "tooltip-ca-addsection": "Jieun bahasan anyar",
        "pageinfo-watchers": "Jumlah nu ngawaskeun",
        "pageinfo-edits": "Jumlah éditan",
        "pageinfo-authors": "Jumlah kontributor nu béda",
+       "pageinfo-toolboxlink": "Émbaran kaca",
        "pageinfo-contentpage-yes": "Enya",
        "pageinfo-protect-cascading-yes": "Enya",
        "markaspatrolleddiff": "Tandaan salaku geus diriksa",
        "confirm_purge_button": "Heug",
        "confirm-purge-top": "Hapus sindangan kaca ieu?",
        "imgmultipageprev": "&larr; kaca saacana",
-       "imgmultipagenext": "kaca salajeungna &rarr;",
+       "imgmultipagenext": "kaca salajengna →",
        "imgmultigo": "Téang!",
        "imgmultigoto": "Jung ka kaca $1",
        "ascending_abbrev": "naék",
        "descending_abbrev": "turun",
-       "table_pager_next": "Kaca salajeungna",
+       "table_pager_next": "Kaca salajengna",
        "table_pager_prev": "Kaca saacana",
        "table_pager_first": "Kaca mimiti",
        "table_pager_last": "Kaca tung-tung",
        "watchlisttools-view": "Témbongkeun parobahan nu patali",
        "watchlisttools-edit": "Témbongkeun sarta édit béréndélan awaskeuneun",
        "watchlisttools-raw": "Robah béréndélan awaskeuneun",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|obrolan]])",
        "duplicate-defaultsort": "'''Awas''': Konci runtuyan asal \"$2\" ngalindih konci runtuyan asal \"$1\" anu saméméhna.",
        "version": "Vérsi",
        "version-extensions": "Éksténsi nu diinstal",
        "external_image_whitelist": " #Antepkeun ieu baris sakumaha ayana<pre>\n#Paké fragmén éxprési régulér (ukur bagian anu aya di antara //) di handap\n#Ieu fragmén bakal dicocogkeun jeung URL gambar-gambar éksternal\n#Fragmén anu cocog bakal dipidangkeun minangka gambar, lamun henteu nu katémbong ukur tutumbuna #Baris nu dimimitian ku # bakal dianggap koméntar\n#Ieu teu ngabédakeun gedé leutikna aksara\n#Teundeun sakabéh fragmén éxprési régulér luhureun ieu baris. Antepkeun ieu baris sakumaha ayana</pre>",
        "tag-filter": "Saringan [[Special:Tags|tag]]:",
        "tag-filter-submit": "Saring",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag}}]]: $2)",
        "tags-title": "Tag",
        "tags-tag": "Ngaran tag",
        "tags-edit": "édit",
        "htmlform-submit": "Kirim",
        "htmlform-reset": "Bolaykeun parobahan",
        "htmlform-selectorother-other": "Lianna",
+       "logentry-delete-delete": "$1 {{GENDER:$2|ngahapus}} kaca $3",
        "revdelete-restricted": "akses geus dibatesan ukur keur kuncén",
        "revdelete-unrestricted": "Watesan akses kuncén dihapuskeun",
+       "logentry-newusers-create": "Akun pamaké $1 jeus {{GENDER:$2|dijieun}}",
        "rightsnone": "(euweuh)",
        "revdelete-summary": "ringkesan ngédit",
        "feedback-cancel": "Bolay",
index f54e92c..cce2fd2 100644 (file)
@@ -65,7 +65,8 @@
                        "Boom",
                        "Marfuas",
                        "Macofe",
-                       "Aaoo"
+                       "Aaoo",
+                       "Josve05a"
                ]
        },
        "tog-underline": "Stryk under länkar:",
        "no-null-revision": "Kunde inte skapa ny tom version för sidan \"$1\"",
        "badtitle": "Felaktig titel",
        "badtitletext": "Den begärda sidtiteln är antingen ogiltig eller tom, eller så är titeln felaktigt länkad från en annan wiki.\nDen kan innehålla ett eller flera tecken som inte får användas i sidtitlar.",
+       "title-invalid-empty": "Den begärda sidtiteln är tom eller innehåller bara namnet på en namnrymd.",
+       "title-invalid-utf8": "Den begärda sidtiteln innehåller en ogiltig UTF-8-sekvens.",
+       "title-invalid-interwiki": "Den begärda sidtiteln innehåller en interwiki-länk, vilka inte kan användas i titlar.",
+       "title-invalid-talk-namespace": "Den begärda sidtiteln hänvisar till en diskussionssida som inte kan existera.",
+       "title-invalid-characters": "Den begärda sidtiteln innehåller ogiltiga tecken: \"$1\".",
+       "title-invalid-relative": "Titeln har relativa sökvägar. Relativa sidtitlar (./, ../) är ogiltiga då de oftast är onåbara när de hanteras av en användares webbläsare.",
+       "title-invalid-magic-tilde": "Den begärda sidans titel innehåller ogiltiga magiska tildesekvenser (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Den begärda sidtiteln är för lång. Det får inte vara längre än $1 {{PLURAL:$1|byte}} i UTF-8-kodning.",
+       "title-invalid-leading-colon": "Den begärda sidans titel innehåller ett ogiltigt kolon i början.",
        "perfcached": "Följande data är cachad och är möjligtvis inte helt uppdaterad. Maximalt {{PLURAL:$1|ett|$1}} resultat finns {{PLURAL:$1|tillgängligt|tillgängliga}} i cachen.",
        "perfcachedts": "Följande data är cachad och uppdaterades senast $1. Maximalt {{PLURAL:$4|ett|$4}} resultat finns {{PLURAL:$4|tillgängligt|tillgängliga}} i cachen.",
        "querypage-no-updates": "Uppdateringar för den här sidan är för närvarande inaktiverade.\nData kommer i nuläget inte att uppdateras.",
        "userrights-lookup-user": "Hantera användargrupper",
        "userrights-user-editname": "Skriv in ett användarnamn:",
        "editusergroup": "Ändra användargrupper",
-       "editinguser": "Ändrar rättigheter för användaren '''[[User:$1|$1]]''' $2",
+       "editinguser": "Ändrar rättigheter för {{GENDER:$1|användaren}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Ändra användargrupper",
        "saveusergroups": "Spara användargrupper",
        "userrights-groupsmember": "Medlem i:",
        "right-sendemail": "Skicka e-post till andra användare",
        "right-passwordreset": "Visa e-postmeddelanden med lösenordsåterställning",
        "right-managechangetags": "Skapa och radera [[Special:Tags|taggar]] från databasen",
+       "right-applychangetags": "Tillämpa [[Special:Tags|taggar]] tillsammans med ens ändringar",
        "newuserlogpage": "Logg över nya användare",
        "newuserlogpagetext": "Detta är en logg över nya användarkonton.",
        "rightslog": "Användarrättighetslogg",
        "action-editmyprivateinfo": "redigera din privata information",
        "action-editcontentmodel": "ändra innehållsmodellen för en sida",
        "action-managechangetags": "skapa och radera taggar från databasen",
+       "action-applychangetags": "tillämpa taggar tillsammans med dina ändringar",
        "nchanges": "$1 {{PLURAL:$1|ändring|ändringar}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|sedan senaste besöket}}",
        "enhancedrc-history": "historik",
        "uploaddisabled": "Uppladdningsfunktionen är avstängd",
        "copyuploaddisabled": "Uppladdning med URL avstängt.",
        "uploaddisabledtext": "Uppladdning av filer är avstängd.",
-       "php-uploaddisabledtext": "PHP filuppladdningar är avaktiverade. Kolla inställningarna för file_uploads.",
+       "php-uploaddisabledtext": "Filuppladdningar i PHP är avaktiverade. \nKolla inställningarna för file_uploads.",
        "uploadscripted": "Denna fil innehåller HTML eller script som felaktigt kan komma att tolkas av webbläsare.",
-       "uploadscriptednamespace": "Denna SVG-fil innehåller den ogiltiga namnrymden \"$1\"",
+       "uploaded-script-svg": "Hittade skriptelementet \"$1\" i den uppladdade SVG-filen.",
+       "uploaded-hostile-svg": "Hittade osäker CSS i den uppladdade filens stilelement.",
+       "uploaded-href-unsafe-target-svg": "Hittade href till ett osäkert mål <code>&lt;$1 $2=\"$3\"&gt;</code> i den uppladdade SVG-filen.",
+       "uploaded-animate-svg": "Hittades taggen \"animate\" som kan ändra href med hjälp av attributen \"from\" <code>&lt;$1 $2=\"$3\"&gt;</code> i den uppladdade SVG-filen.",
+       "uploaded-image-filter-svg": "Hittade bildfilter med URL: <code>&lt;$1 $2=\"$3\"&gt;</code> i den uppladdade SVG-filen.",
+       "uploadscriptednamespace": "Denna SVG-fil innehåller den ogiltiga namnrymden \"$1\".",
        "uploadinvalidxml": "XML-koden i den uppladdade filen kunde inte tolkas.",
        "uploadvirus": "Filen innehåller virus! Detaljer: $1",
-       "uploadjava": "Filen är en ZIP-fil som innehåller en Java .class fil.\nUppladdning av Java filer tillåts inte, eftersom de kan orsaka att säkerhetsbegränsningar kan kringgås.",
+       "uploadjava": "Filen är en ZIP-fil som innehåller en Java .class-fil.\nUppladdning av Java filer tillåts inte eftersom de kan orsaka att säkerhetsbegränsningar kan kringgås.",
        "upload-source": "Källfil",
        "sourcefilename": "Ursprungsfilens namn:",
        "sourceurl": "Källans URL:",
        "filedelete-success": "'''$1''' har raderats.",
        "filedelete-success-old": "Versionen av '''[[Media:$1|$1]]''' från $2 kl. $3 har raderats.",
        "filedelete-nofile": "Filen '''$1''' finns inte.",
-       "filedelete-nofile-old": "Den versionen av '''$1''' kan inte raderas eftersom den inte finns.",
+       "filedelete-nofile-old": "Det finns ingen arkiverad version av <strong>$1</strong> med angivna egenskaper.",
        "filedelete-otherreason": "Annan/ytterligare anledning:",
        "filedelete-reason-otherlist": "Annan anledning",
        "filedelete-reason-dropdown": "*Vanliga anledningar till radering\n** Upphovsrättsbrott\n** Dubblettfil",
        "filedelete-maintenance": "Radering och återställning av filer har tillfälligt avaktiverats under underhåll.",
        "filedelete-maintenance-title": "Kan inte radera filen",
        "mimesearch": "MIME-sökning",
-       "mimesearch-summary": "Denna sidan gör det möjligt att filtrera filer via dess MIME-typ.\nIndata: contenttype/subtype, t.ex. <code>image/jpeg</code>.",
+       "mimesearch-summary": "Denna sidan gör det möjligt att filtrera filer via dess MIME-typ.\nIndata: contenttype/subtype eller contenttype/*, t.ex. <code>image/jpeg</code>.",
        "mimetype": "MIME-typ:",
        "download": "ladda ner",
        "unwatchedpages": "Obevakade sidor",
        "pageswithprop-prophidden-long": "dold långt textegenskapsvärde ($1)",
        "pageswithprop-prophidden-binary": "dold binärt egenskapsvärde ($1)",
        "doubleredirects": "Dubbla omdirigeringar",
-       "doubleredirectstext": "Det här är en lista över sidor som dirigerar om till andra omdirigeringssidor. \nVarje rad innehåller länkar till den första och andra omdirigeringsidan, samt till målet för den andra omdirigeringen. Målet för den andra omdirigeringen är ofta den \"riktiga\" sidan, som den första omdirigeringen egentligen ska leda till.\n<del>Överstrukna</del> poster har åtgärdats.",
+       "doubleredirectstext": "Det här är en lista över sidor som omdirigerar till andra omdirigeringssidor. \nVarje rad innehåller länkar till den första och andra omdirigeringssidan, samt till målet för den andra omdirigeringen. Målet för den andra omdirigeringen är ofta den \"riktiga\" sidan som den första omdirigeringen egentligen ska leda till.\n<del>Överstrukna</del> poster har åtgärdats.",
        "double-redirect-fixed-move": "[[$1]] har flyttats.\nDen uppdaterades automatiskt och är nu en omdirigering till [[$2]].",
        "double-redirect-fixed-maintenance": "Fixar automatiskt dubbel omdirigering från [[$1]] till [[$2]] i ett underhållsjobb.",
        "double-redirect-fixer": "Omdirigeringsrättaren",
        "nviews": "$1 {{PLURAL:$1|visning|visningar}}",
        "nimagelinks": "Används på $1 {{PLURAL:$1|sida|sidor}}",
        "ntransclusions": "används på $1 {{PLURAL:$1|sida|sidor}}",
-       "specialpage-empty": "Den här sidan är tom.",
+       "specialpage-empty": "Det finns inga resultat för denna rapport.",
        "lonelypages": "Föräldralösa sidor",
        "lonelypagestext": "Följande sidor länkas inte till eller inkluderas på någon annan sida på {{SITENAME}}.",
        "uncategorizedpages": "Ej kategoriserade sidor",
        "unusedimages": "Oanvända filer",
        "wantedcategories": "Önskade kategorier",
        "wantedpages": "Önskade sidor",
-       "wantedpages-summary": "Lista över obefintliga sidor som är mest länkade, exklusive sidor som endast är länkade med omdirigeringar. För en lista över obefintliga sidor som endast är länkade med omdirigeringar, se [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "Lista över ej existerande sidor som har flest länkar till dem, exklusive sidor som endast har omdirigeringar som länkar till dem. För en lista över ej existerande sidor som endast länkas till från omdirigeringar, se [[{{#special:BrokenRedirects}}|listan över trasiga omdirigeringar]].",
        "wantedpages-badtitle": "Ogiltig titel bland resultaten: $1",
        "wantedfiles": "Önskade filer",
-       "wantedfiletext-cat": "Följande filer används men finns inte. Filer från utländska databaser kan vara listade trots att de inte finns. Sådana falska realiteter kommer att <del>tas bort</del>. Sidor som bäddar in filer som inte finns listas upp på [[:$1]].",
+       "wantedfiletext-cat": "Följande filer används men finns inte. Filer från utländska databaser kan vara listade trots att de inte finns. Sådana falska träffar kommer att <del>tas bort</del>. Sidor som bäddar in filer som inte finns listas på [[:$1]].",
        "wantedfiletext-cat-noforeign": "Följande filer används men finns inte. Sidor som bäddar in filer som inte finns listas i [[:$1]].",
        "wantedfiletext-nocat": "Följande filer används men finns inte. Filer från utländska databaser kan vara listade trots att de inte finns. Sådana falska realiteter kommer att <del>tas bort</del>.",
        "wantedfiletext-nocat-noforeign": "Följande filer används men finns inte.",
        "logempty": "Inga matchande träffar i loggen.",
        "log-title-wildcard": "Sök efter sidtitlar som börjar med texten",
        "showhideselectedlogentries": "Visa/Dölj markerade loggposter",
-       "log-edit-tags": "Redigera märken i valda loggposter",
+       "log-edit-tags": "Redigera taggar i valda loggposter",
        "allpages": "Alla sidor",
        "nextpage": "Nästa sida ($1)",
        "prevpage": "Föregående sida ($1)",
        "tooltip-pt-preferences": "Dina inställningar",
        "tooltip-pt-watchlist": "Listan över sidor du bevakar för ändringar",
        "tooltip-pt-mycontris": "Lista över dina bidrag",
-       "tooltip-pt-login": "Inloggning ger tillgång till fler funktioner, och kan vara nödvändigt, för den som vill redigera sidor.",
+       "tooltip-pt-login": "Du uppmuntras att logga in, men det är inget krav",
        "tooltip-pt-logout": "Logga ut",
        "tooltip-pt-createaccount": "Du uppmuntras att skapa ett konto och logga in, men det är inte obligatoriskt",
        "tooltip-ca-talk": "Diskussion om innehållssidan",
        "tag-filter-submit": "Filter",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Märke|Märken}}]]: $2)",
        "tags-title": "Märken",
-       "tags-intro": "Denna sida listar de märken som mjukvaran kan markera en redigering med, och deras betydelse.",
+       "tags-intro": "Denna sida listar de taggar som mjukvaran kan markera en redigering med, och deras betydelse.",
        "tags-tag": "Märkesnamn",
        "tags-display-header": "Utseende på listor över ändringar",
        "tags-description-header": "Full beskrivning av betydelse",
        "tags-deactivate-reason": "Anledning:",
        "tags-deactivate-not-allowed": "Det är inte möjligt att inaktivera taggen \"$1\".",
        "tags-deactivate-submit": "Inaktivera",
+       "tags-apply-no-permission": "Du har inte behörighet att tillämpa taggar på dina ändringar",
        "tags-apply-not-allowed-one": "Märket \"$1\" kan inte läggas till manuellt.",
        "tags-apply-not-allowed-multi": "Följande {{PLURAL:$2|märke|märken}} kan inte läggas till manuellt: $1",
+       "tags-update-no-permission": "Du har inte behörighet att lägga till eller ta bort taggar från individuella sidversioner eller loggposter.",
        "tags-update-add-not-allowed-one": "Märket \"$1\" kan inte läggas till manuellt.",
        "tags-update-add-not-allowed-multi": "Följande {{PLURAL:$2|märke|märken}} kan inte läggas till manuellt: $1",
        "tags-update-remove-not-allowed-one": "Märket \"$1\" får inte tas bort.",
        "tags-edit-chosen-placeholder": "Välj några märken",
        "tags-edit-chosen-no-results": "Inga överensstämmande märken hittades",
        "tags-edit-reason": "Anledning:",
-       "tags-edit-revision-submit": "Verkställ ändringar för {{PLURAL:$1|denna sidversion|$1 sidversioner}}",
+       "tags-edit-revision-submit": "Tillämpa ändringar för {{PLURAL:$1|denna sidversion|$1 sidversioner}}",
        "tags-edit-logentry-submit": "Verkställ ändringar för {{PLURAL:$1|denna loggpost|$1 loggposter}}",
        "tags-edit-success": "Ändringarna verkställdes.",
        "tags-edit-failure": "Ändringarna kunde inte verkställas:\n$1",
        "revdelete-restricted": "satte begränsningar för administratörer",
        "revdelete-unrestricted": "tog bort begränsningar för administratörer",
        "logentry-block-block": "$1 {{GENDER:$2|blockerade}} {{GENDER:$4|$3}} med en varaktighet på $5 $6",
-       "logentry-block-unblock": "$1 {{GENDER:$2|upphävde blockeringen för}} {{GENDER:$4|$3}}",
+       "logentry-block-unblock": "$1 {{GENDER:$2|avblockerade}} {{GENDER:$4|$3}}",
        "logentry-block-reblock": "$1 {{GENDER:$2|ändrade}} blockeringsinställningar för {{GENDER:$4|$3}} med en varaktighet på $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2|blockerade}} {{GENDER:$4|$3}} med en varaktighet på $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|ändrade}} blockeringsinställningar för {{GENDER:$4|$3}} med en varaktighet på $5 $6",
        "logentry-managetags-activate": "$1 {{GENDER:$2|aktiverade}} taggen \"$4\" för användning av användare och botar.",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|inaktiverade}} taggen \"$4\" för användning av användare och botar.",
        "log-name-tag": "Märkeslogg",
+       "log-description-tag": "Denna sida visar när användare har lagt till eller tagit bort [[Special:Tags|taggar]] från individuella sidversioner eller loggposter. Loggen registrerar inte handlingar där märken hanteras i redigeringar, raderingar eller liknande handlingar.",
        "logentry-tag-update-add-revision": "$1 {{GENDER:$2|lade till}} {{PLURAL:$7|märket|märkena}} $6 för sidversionen $4 av sidan $3",
        "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|lade till}} {{PLURAL:$7|märket|märkena}} $6 till loggposten $5 för siden $3",
        "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|tog bort}} {{PLURAL:$9|märket|märkena}} $8 från sidversionen $4 av sidan $3",
        "log-name-pagelang": "Språkändringslogg",
        "log-description-pagelang": "Detta är en logg över ändringar i sidspråken.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|ändrade}} sidspråket för $3 från $4 till $5.",
-       "default-skin-not-found": "Ojsan! Standardutseendet för din wiki, definierad i <code dir=\"ltr\">$wgDefaultSkin</code> som <code>$1</code>, är inte tillgängligt.\n\nDin installation verkar innehålla följande {{PLURAL:$4|utseende|utseenden}}. Se [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manualen: Utseendeinställningar] för information om hur du aktiverar {{PLURAL:$4|det|dem}} och hur standard väljs.\n\n$2\n\n; Om du precis installerat MediaWiki:\n: Du installerade troligen från git, eller direkt från källkoden via någon annan metod. Detta är normalt. Försök att installera några utseenden från [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org:s utseendekatalog], genom att:\n:* Ladda ner [https://www.mediawiki.org/wiki/Download tarball-installeraren], som kommer med flera utseenden och tillägg. Du kan klippa och klistra in <code>skins/</code>-katalogen från den.\n:* Ladda ner individuella tarballs med utseenden från [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Klona ett av <code>mediawiki/skins/*</code>-centralförvaren in i <code dir=\"ltr\">skins/</code>-arkiven i din MediaWiki-installation.\n: Att göra detta borde inte påverka ditt git-centralförvar om du är en MediaWiki-utvecklare. \n\n; Om du precis har uppgraderat MediaWiki:\n: MediaWiki 1.24 och nyare aktiverar ej längre automatiskt installerade utseenden (se [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Automatisk identifiering av utseenden]). Du kan klistra in följande {{PLURAL:$5|rad|rader}} i <code>LocalSettings.php</code> för att aktivera {{PLURAL:$5|det för närvarande installerade utseendet|alla för närvarande installerade utseenden}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Om du precis har modifierat <code>LocalSettings.php</code>:\n: Dubbelkolla namnen för utseendena för att identifiera stavfel.",
-       "default-skin-not-found-no-skins": "Ojsan! Standardutseendet för din wiki, definierad i <code>$wgDefaultSkin</code> som <code>$1</code>, är inte tillgängligt.\n\nDu har inga installerade utseenden.\n\n; Om du precis installerat eller uppdaterat MediaWiki:\n: Du installerade troligen från git, eller direkt från källkoden via någon annan metod. Detta är att förvänta. MediaWiki 1.24 och nyare inkluderar inte några utseenden i det huvudsakliga centralförvaret. Försök att installera några utseenden från [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org:s utseendekatalog], genom att:\n:* Ladda ner [https://www.mediawiki.org/wiki/Download tarball-installeraren], som kommer med flera utseenden och tillägg. Du kan klipp-och-klistra in <code dir=\"ltr\">skins/</code>-katalogen från den.\n:* Ladda ner individuella tarballs med utseende från [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Klona ett av <code>mediawiki/skins/*</code>-centralförvaren in i <code>skins/</code>-katalogen i din MediaWiki-installation.\n: Att göra detta borde inte påverka ditt git-centralförvar om du är en MediaWiki-utvecklare. Se [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manualen: Utseendeinställningar] för information om hur utseenden aktiveras och hur standardutseendet väljs.",
+       "default-skin-not-found": "Ojsan! Standardutseendet för din wiki, definierad i <code dir=\"ltr\">$wgDefaultSkin</code> som <code>$1</code>, är inte tillgängligt.\n\nDin installation verkar innehålla följande {{PLURAL:$4|utseende|utseenden}}. Se [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manualen: Utseendeinställningar] för information om hur du aktiverar {{PLURAL:$4|det|dem}} och hur standard väljs.\n\n$2\n\n; Om du precis installerat MediaWiki:\n: Du installerade troligen från git, eller direkt från källkoden via någon annan metod. Detta är normalt. Försök att installera några utseenden från [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org:s utseendekatalog], genom att:\n:* Ladda ner [https://www.mediawiki.org/wiki/Download tarball-installeraren], som kommer med flera utseenden och tillägg. Du kan klippa och klistra in <code>skins/</code>-katalogen från den.\n:* Ladda ner individuella tarballs med utseenden från [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Använd Git för att ladda ner utseenden].\n: Att göra detta borde inte påverka ditt git-centralförvar om du är en MediaWiki-utvecklare. \n\n; Om du precis har uppgraderat MediaWiki:\n: MediaWiki 1.24 och nyare aktiverar ej längre automatiskt installerade utseenden (se [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Automatisk identifiering av utseenden]). Du kan klistra in följande {{PLURAL:$5|rad|rader}} i <code>LocalSettings.php</code> för att aktivera {{PLURAL:$5|det installerade utseendet|alla installerade utseenden}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Om du precis har modifierat <code>LocalSettings.php</code>:\n: Dubbelkolla namnen för utseendena för att identifiera stavfel.",
+       "default-skin-not-found-no-skins": "Ojsan! Standardutseendet för din wiki, definierad i <code>$wgDefaultSkin</code> som <code>$1</code>, är inte tillgängligt.\n\nDu har inga installerade utseenden.\n\n; Om du precis installerat eller uppdaterat MediaWiki:\n: Du installerade troligen från git, eller direkt från källkoden via någon annan metod. Detta är att förvänta. MediaWiki 1.24 och nyare inkluderar inte några utseenden i det huvudsakliga centralförvaret. Försök att installera några utseenden från [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org:s utseendekatalog], genom att:\n:* Ladda ner [https://www.mediawiki.org/wiki/Download tarball-installeraren], som kommer med flera utseenden och tillägg. Du kan klipp-och-klistra in <code dir=\"ltr\">skins/</code>-katalogen från den.\n:* Ladda ner individuella tarballs med utseende från [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Använd Git för att ladda ner utseenden].\n: Att göra detta borde inte påverka ditt git-centralförvar om du är en MediaWiki-utvecklare. Se [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manualen: Utseendeinställningar] för information om hur utseenden aktiveras och hur standardutseendet väljs.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (aktiverad)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''inaktiverad''')",
        "mediastatistics": "Mediastatistik",
index a46d488..fb258dc 100644 (file)
@@ -15,7 +15,8 @@
                        "아라",
                        "Baba Tabita",
                        "Rich Farmbrough",
-                       "Kipala"
+                       "Kipala",
+                       "Kwisha"
                ]
        },
        "tog-underline": "Wekea mstari viungo:",
        "tog-hidepatrolled": "Ficha kurasa zilizofanyiwa doria kwenye mabadiliko ya karibuni",
        "tog-newpageshidepatrolled": "Ficha kurasa zilizofanyiwa doria kwenye orodha ya kurasa mpya",
        "tog-extendwatchlist": "Tanua orodha ya maangalizi ili kuonyesha mabadiliko yote yaliyofanyika, si hilo la mwisho tu.",
-       "tog-usenewrc": "Mabadiliko ya kundi kwa kurasa kwenye mabadiliko ya karibuni na maangalizi (JavaScript inahitajika)",
+       "tog-usenewrc": "Mabadiliko ya kundi kwa kurasa kwenye mabadiliko ya karibuni na orodha ya maangalizi",
        "tog-numberheadings": "Vichwa vya habari vijipange namba-vyenyewe",
        "tog-showtoolbar": "Onyesha mwambaa wa zana za kuhariria",
        "tog-editondblclick": "Hariri ukurasa kwa kubonyeza mara mbili",
-       "tog-editsectiononrightclick": "Wezesha sehemu ya kuandikia kwa kubonyeza kitufe cha kulia cha puku yako juu ya sehemu ya majina husika (JavaScript)",
+       "tog-editsectiononrightclick": "Wezesha sehemu ya kuandikia kwa kubonyeza kitufe cha kulia cha puku yako kwa kubonyeza kwenye vichwa vya sehemu",
        "tog-watchcreations": "Ongeza kurasa nilizoumba katika maangalizi yangu",
        "tog-watchdefault": "Ongeza kurasa zote nilizohariri katika maangalizi yangu",
        "tog-watchmoves": "Ongeza kurasa zote nilizohamisha katika maangalizi yangu",
        "tog-watchdeletion": "Ongeza kurasa zote nilizofuta katika maangalizi yangu",
+       "tog-watchrollback": "Ongeza kurasa nilizo fanyua kwa orodha yangu ya kutazama",
        "tog-minordefault": "Weka alama zote za mabadiliko madogo kama matumizi mbadala",
        "tog-previewontop": "Onyesha mandhari kabla ya sanduku la kuhariria",
        "tog-previewonfirst": "Onyesha mandhari unapoanza kuhariri",
@@ -42,7 +44,7 @@
        "tog-shownumberswatching": "Onyesha idadi ya watumiaji waangalizi",
        "tog-oldsig": "Sahihi iliyopo:",
        "tog-fancysig": "Weka sahihi tu (bila kujiweka kiungo yenyewe)",
-       "tog-uselivepreview": "Tumia kihakikio cha papohapo (JavaScript) (Experimental)",
+       "tog-uselivepreview": "Tumia kihakikio cha papohapo",
        "tog-forceeditsummary": "Nishtue pale ninapoingiza muhtasari mtupu wa kuhariri",
        "tog-watchlisthideown": "Ficha kuhariri kwangu kwenye orodha ya maangalizi",
        "tog-watchlisthidebots": "Ficha uhariri wa vikaragosi kwenye orodha ya maangalizi",
        "tog-showhiddencats": "Onyesha jamii zilizofichwa",
        "tog-norollbackdiff": "Ondoa faili za diff baada ya kufanyakazi ya kurejesha",
        "tog-useeditwarning": "Unionyeshe ilani ninapotaka kutoka kwenye ukurasa ninouhariri, bila kuhifadhi mabadiliko",
+       "tog-prefershttps": "Tumia muunganisho ulio salama wakati nimeingia",
        "underline-always": "Muda wote",
        "underline-never": "Kamwe",
-       "underline-default": "Kivinjari mbadala",
+       "underline-default": "Mtazamo au kivinjari mbadala",
        "editfont-style": "Mtindo wa maandishi kwenye sanduku la kuhariri:",
        "editfont-default": "Kivinjari msingi",
        "editfont-monospace": "Mwandiko wa monospaced",
        "permalink": "Kiungo cha daima",
        "print": "Chapisha",
        "view": "Tazama",
+       "view-foreign": "Tazama kwa $1",
        "edit": "Hariri",
+       "edit-local": "Hariri maelezo ya humu humu",
        "create": "Anzisha kurasa",
+       "create-local": "Ongeza maelezo ya humu humu",
        "editthispage": "Hariri ukurasa huu",
        "create-this-page": "Anzisha ukurasa huu",
        "delete": "Futa",
        "deletethispage": "Futa ukurasa huo",
+       "undeletethispage": "Rudisha ukurasa ukiofutwa",
        "undelete_short": "Rudisha {{PLURAL:$1|haririo moja|maharirio $1}}",
        "viewdeleted_short": "Tazama {{PLURAL:$1|sahihisho lililofutwa moja|masahihisho yaliyofutwa $1}}",
        "protect": "Linda",
        "otherlanguages": "Lugha zingine",
        "redirectedfrom": "(Elekezwa kutoka $1)",
        "redirectpagesub": "Ukurasa wa kuelekeza",
+       "redirectto": "Inaelekeza kwa:",
        "lastmodifiedat": "Ukurasa huu umebadilishwa kwa mara ya mwisho tarehe $1, saa $2.",
        "viewcount": "Ukurasa huu umetembelewa mara {{PLURAL:$1|moja tu|$1}}.",
        "protectedpage": "Ukurasa uliolindwa",
        "jumptonavigation": "urambazaji",
        "jumptosearch": "tafuta",
        "view-pool-error": "Samahani, seva zimezidiwa kwa wakati huu.\nWatumiaji wengi mno wanajaribu kutazama ukurasa huu.\nTafadhali subiri kwa muda kadhaa kabla ya kujaribu kufungua tena.\n\n$1",
+       "generic-pool-error": "Samahani, seva zimezidiwa kwa wakati huu.\nWatumiaji wengi wanajaribu kutazama ukurasa huu.\nTafadhali subiri kiasi kabla ya kujaribu kufungua tena.",
        "pool-timeout": "Muda umeisha inasubiria kufunga",
        "pool-queuefull": "Foleni ya michakato imejaa",
        "pool-errorunknown": "Hitilafu isiyojulikana",
+       "pool-servererror": "Huduma ya kuhesabu haipatikani ($1).",
+       "poolcounter-usage-error": "Hitilafu ya matumizi: $1",
        "aboutsite": "Kuhusu {{SITENAME}}",
        "aboutpage": "Project:Kuhusu",
-       "copyright": "Yaliyomo yafuata $1.",
+       "copyright": "Yaliyomo yanapatikana kwa $1 isipokuwa pale imeelezwa.",
        "copyrightpage": "{{ns:project}}:Hakimiliki",
        "currentevents": "Matukio ya hivi karibuni",
        "currentevents-url": "Project:Matukio ya hivi karibuni",
        "disclaimers": "Kanusho",
        "disclaimerpage": "Project:Kanusho kwa jumla",
        "edithelp": "Usaidizi kwa uhariri",
+       "helppage-top-gethelp": "Msaada",
        "mainpage": "Mwanzo",
        "mainpage-description": "Mwanzo",
        "policy-url": "Project:Sera",
        "hidetoc": "ficha",
        "collapsible-collapse": "Kunja",
        "collapsible-expand": "Tanua",
+       "confirmable-confirm": "Wewe ni {{GENDER:$1|you}} kwa uhakika?",
        "confirmable-yes": "Ndio",
        "confirmable-no": "Habana",
        "thisisdeleted": "Tazama au rudisha $1?",
        "nospecialpagetext": "<strong>Umeomba ukurasa maalumu batili.</strong>\n\nOrodha ya kurasa maalumu zinapatika kwenye [[Special:SpecialPages|{{int:kurasamaalumu}}]].",
        "error": "Hitilafu",
        "databaseerror": "Hitilafu ya hifadhidata",
+       "databaseerror-text": "Hitilafu katika ombi la hifadhidata limetokea.\nHii inaonyesha kuna kasoro katika programu.",
+       "databaseerror-textcl": "Hitilafu la ombi la hifadhidata imetokea.",
+       "databaseerror-query": "Ombi: $1",
+       "databaseerror-function": "Kutendakazi: $1",
        "databaseerror-error": "Hitilafu: $1",
        "laggedslavemode": "'''Ilani:'''Labda masahihisho ya hivi karibuni bado hayajaonekana.",
        "readonly": "Hifadhidata imefungika",
        "readonly_lag": "Kihifadhidata kimejifunga chenyewe wakati seva za kifadhidata joli imedakwa na seva ya utawala",
        "internalerror": "Hitilafu ya ndani",
        "internalerror_info": "Hitilafu ya ndani: $1",
+       "internalerror-fatal-exception": "Ubaguzi mbaya wa aina ya \"$1\"",
        "filecopyerror": "Haikuweza kunakili faili \"$1\" kwa \"$2\".",
        "filerenameerror": "Haikuweza kubadilisha jina la faili \"$1\" kwa \"$2\".",
        "filedeleteerror": "Haikuweza kufuta faili \"$1\".",
        "directorycreateerror": "Haikuweza kuanzisha saraka ya \"$1\".",
+       "directoryreadonlyerror": "Kumbukumbu \"$1\" ni ya kusoma pekee.",
+       "directorynotreadableerror": "Kumbukumbu \"$1\" haisomeki.",
        "filenotfound": "Haikuweza kutafuta faili \"$1\".",
        "unexpected": "Jambo lisilotegemewa: \"$1\"=\"$2\".",
        "formerror": "Hitilafu: haikufaulu kuweka fomu",
        "badarticleerror": "Ukurasa huu hauwezi kutendewa kitendo hiki.",
        "cannotdelete": "Haikuweza kufuta kurasa au faili linaloitwa \"$1\".\nHuenda likawa tayari lishafutwa na mtu mwingine.",
        "cannotdelete-title": "Wezi futa ukurasa \"$1\"",
+       "delete-hook-aborted": "Kufuta kumesitishwa na hook.\nSikupeana sababu yoyote.",
+       "no-null-revision": "Haingetengeneza toleo lipya la null \"$1\"",
        "badtitle": "Jina halifai",
        "badtitletext": "Jina la ukurasa ulilotaka ni batilifu, tupu, au limeungwa vibaya na jina la lugha nyingine au Wiki nyingine.  Labda linazo herufi moja au zaidi ambazo hazitumiki katika majina.",
+       "title-invalid-empty": "Mada ya ukurasa ulio omba uko tupu ama uko na jina tu la namespace.",
+       "title-invalid-utf8": "Ukurasa ulioombwa uko na mwandamano batili wa UTF-8.",
+       "title-invalid-interwiki": "Mada iko na kiungo cha wiki ambacho hakiwezi kutumika katika mada.",
+       "title-invalid-talk-namespace": "Mada ya ukurasa ulioombwa unaashiria ukurasa wa mazungumzi ambao hauko.",
+       "title-invalid-characters": "Jina la ukurasa ulilotaka ina herufi batili: \"$1\"",
+       "title-invalid-magic-tilde": "Jina la ukurasa ulilotaka ina batili uchawi tilde mlolongo\n(<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Jina la ukurasa ulilotaka ni refu sana. Ni lazima lisizidi baiti $1 katika usimbaji wa UTF-8.",
+       "title-invalid-leading-colon": "Jina la ukurasa ulilotaka ina koloni batili mwanzoni.",
        "perfcached": "Data zifuatazo zimekachewa na huenda zisiwe za kisasa. Mwisho wa {{PLURAL:$1|jibu moja linapatikana|majibu $1 yanapatikana}} katika kache.",
        "perfcachedts": "Data zifuatazo zimetoka kwenye kache iliobadilishwa mara ya mwisho saa $3, tarehe $2. Mwisho wa {{PLURAL:$4|jibu moja linapatikana|majibu $4 yanapatikana}} katika kache.",
        "querypage-no-updates": "Mabadiliko kwa ajili ya ukurasa huu yamesimamishwa.\nData za hapa haziwezi kunawirishwa kwa sasa.",
        "viewsource-title": "Tazama chanzo cha $1",
        "actionthrottled": "Tendo limesimamishwa",
        "actionthrottledtext": "Ikiwa kama hatua ya kupambana na uharibifu, umefika kikomo katika kutenda jambo hili kwa mara nyingi mno tena kwa kipindi cha muda mfupi kama huu, na umevuka kiwango hiki.\nTafadhali jaribu tena baada ya muda mfupi.",
-       "protectedpagetext": "Ukurasa huu umefungwa ili kuepuka uhariri.",
+       "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.",
-       "editinginterface": "'''Ilani:''' Una hariri ukurasa unaotumika kutoa maelezo ya msingi ya bidhaa pepe.\nMabadiliko katika ukurasa huu yataathiri mwonekano mzima wa viungo vya watumiaji wengine.\nKwa lengo la kutaka kutafsiri, tafadhali fikiria kutumia  [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], kwa kuweka miradi ya MediaWiki kwa kienyeji.",
+       "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.",
+       "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.",
        "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.",
        "mypreferencesprotected": "Huna ruhusa kuhariri mapendekezo yako.",
        "ns-specialprotected": "Kurasa maalumu haziwezi kuhaririwa.",
        "titleprotected": "Jina hili limekingwa lisiumbwe na [[User:$1|$1]].\nSababu zilizotolewa ni \"''$2''\".",
+       "filereadonlyerror": "Haiwezi kurekebisha faili \"$1\" kwa sababu faili \"$2\" iko katika hali ya kusoma tu.\n\nMsimamizi aliyeifunga  hakutoa sababu yoyote: \"$3\".",
+       "invalidtitle-knownnamespace": "Kichwa ni batili na eneo la jina \"$2\" na maandishi \"$3\"",
+       "invalidtitle-unknownnamespace": "Kichwa ni batili na haijulikani eneo la jina $1 na maandishi \"$2\"",
        "exception-nologin": "Hujaingia",
-       "exception-nologin-text": "Ukurasa huu unahitaji kuwa mtumiaji awe ameingia katika wiki hii.",
+       "exception-nologin-text": "Tafadhali ingia ili uweze kuona ukurasa huu au tendo.",
+       "exception-nologin-text-manual": "Tafadhali ingia $1 ili uweze kuona ukurasa huu au tendo.",
        "virus-badscanner": "Usanidi mbaya: kiskani virusi hakijulikani: ''$1''",
        "virus-scanfailed": "skani imeshindwa (msimbo $1)",
        "virus-unknownscanner": "kipambana na virusi haijulikani:",
-       "logouttext": "'''Umetoka kwenye akaunti yako.'''\n\nUnaweza kuendelea kutumia {{SITENAME}} bila kutaja jina lako, au unaweza <span class='plainlinks'>[$1 kuingia tena]</span> kwenye akaunti yako. Kumbuka kwamba kurasa nyingine zitaendelea kuonekana kana kwamba bado hujatoka kwenye akaunti yako, hadi utakaposafisha kache ya kivinjari.",
+       "logouttext": "<strong>Umetoka kwenye akaunti yako.</strong>\n\nJua kwamba kurasa zingine zinaweza endelea kuonyeshwa ni kana kwamba umeingia hadi ufute kashe yako ya kivinjari.",
        "welcomeuser": "Karibu, $1!",
+       "welcomecreation-msg": "Akaunti yako imeundwa.\nUnaweza kubadili {{SITENAME}}[[Special:Preferences|mapendekezo]] kama unataka.",
        "yourname": "Jina la mtumiaji:",
        "userlogin-yourname": "Jina la mtumiaji",
        "userlogin-yourname-ph": "Weka jina lako la mtumiaji",
        "createacct-yourpasswordagain": "Thibitisha neno la siri",
        "createacct-yourpasswordagain-ph": "Weka neno la siri tena",
        "remembermypassword": "Kumbuka kuingia kwangu katika kivinjari hiki (kwa muda usiozidi {{PLURAL:$1|siku}} $1)",
+       "userlogin-remembermypassword": "Niweke kama nimeingia",
+       "userlogin-signwithsecure": "Tumia muunganisho salama",
        "yourdomainname": "Tovuti yako:",
        "password-change-forbidden": "Hauwezi kubadili nywila katika Wiki hii.",
        "externaldberror": "Huenda kulikuwa na hitilafu ya database au labda hauruhusiwi kubadilisha akaunti yako ya nje.",
        "gotaccountlink": "Ingia",
        "userlogin-resetlink": "Umesahau maelezo yako ya kuingia?",
        "userlogin-resetpassword-link": "Je, umesahau neno la siri?",
+       "userlogin-helplink2": "Saidia na kuingia",
+       "userlogin-loggedin": "Haujaingia kama {{GENDER:$1|$1}}.\nTumia fomu hapa chini ili uweze kuingia kama mtumiaji mwingine.",
+       "userlogin-createanother": "Unda akaunti nyingine",
        "createacct-emailrequired": "Anwani ya barua pepe",
        "createacct-emailoptional": "Anwani ya barua pepe (si lazima)",
        "createacct-email-ph": "Weka anwani yako ya barua pepe",
        "createacct-another-email-ph": "Weka anwani ya barua pepe",
        "createaccountmail": "Tumia neno la siri la muda tu na kulituma kwa anwani ya barua pepe ilivyoingizwa",
-       "createacct-realname": "Jina la kweli (si lazima)",
+       "createacct-realname": "Jina la kweli (sio lazima)",
        "createaccountreason": "Sababu:",
        "createacct-reason": "Sababu",
-       "createacct-benefit-heading": "{{SITENAME}} inatengenezwa na watu kama wewe.",
+       "createacct-reason-ph": "Mbona unaunda akaunti mpya",
+       "createacct-captcha": "Kuangalia usalama",
+       "createacct-imgcaptcha-ph": "Ingiza maandishi unayoyaona hapo juu",
+       "createacct-submit": "Unda akaunti yako",
+       "createacct-another-submit": "Unda akaunti nyingine",
+       "createacct-benefit-heading": "{{SITENAME}} imetengenezwa na watu kama wewe.",
        "createacct-benefit-body1": "{{PLURAL:$1|haririo|maharirio}}",
        "createacct-benefit-body2": "{{PLURAL:$1|ukurasa|kurasa}}",
        "createacct-benefit-body3": "{{PLURAL:$1|mhariri|wahariri}} wa hivi karibuni",
        "badretype": "Maneno uliyoyaandika ni tofauti.",
        "userexists": "Jina la mtumiaji uliloingiza tayari linatumika.\nTafadhali chagua jina lingine.",
        "loginerror": "Hitilafu ya kuingia",
+       "createacct-error": "Hitilafu ya kuunda akaunti",
        "createaccounterror": "Haikufaulu kuanzisha akaunti: $1",
        "nocookiesnew": "Umesajiliwa, lakini bado hujaingizwa. {{SITENAME}} inatumia ''kuki'' ili watumiaji waingizwe. Tarakilishi yako inazuia ''kuki''. Tafadhali, ondoa kizuizi hicho halafu uingie kwa kutumia jina jipya na neno la siri.",
        "nocookieslogin": "{{SITENAME}} inatumia kuki ili watumiaji waweze kuingia.\nTarakilishi yako inakataa kupokea kuki.\nTafadhali, ondoa kizuizi hicho, halafu jaribu tena.",
        "wrongpassword": "Umeingiza neno la siri la makosa.\nJaribu tena.",
        "wrongpasswordempty": "Neno la siri lilikuwa tupu. Jaribu tena.",
        "passwordtooshort": "Ni lazima neno la siri liwe na {{PLURAL:$1|herufi}} $1 au zaidi.",
+       "passwordtoolong": "Neno lasiri haliwezi kuwa refu kuliko {{PLURAL:$1|1 character|$1 characters}}.",
        "password-name-match": "Neno lako la siri lazima liwe tofauti na jina lako la mtumiaji.",
        "password-login-forbidden": "Utumiaji wa jina hili na neno lake siri imekatazwa.",
        "mailmypassword": "Nitumie neno la siri jipya kwa barua-pepe",
        "noemailcreate": "Unahitajika utoe anwani halali ya barua pepe",
        "passwordsent": "Neno jipya la siri limeshatumwa kwenye anwani ya barua pepe ya \"$1\".\nTafadhali, ingia baada ya kulipokea.",
        "blocked-mailpassword": "Anwani yako ya IP imezuiwa kuhariri {{SITENAME}}, kwa hiyo hairuhusiwi kuomba neno jipya la siri, kwa lengo la kuzuia uharibifu.",
-       "eauthentsent": "Tumekutuma barua pepe ili kuhakikisha anwani yako.\nKabla ya kutuma barua pepe nyingine kwenye akaunti hiyo, itabidi ufuate maelezo katika barua utakayopokea,\nkuthibitisha kwamba wewe ndiyo ni mwenye akaunti.",
-       "throttled-mailpassword": "Kikumbusho cha neno la siri tayari kimeshatumwa kwako, ndani ya {{PLURAL:$1|saa iliyopita|masaa $1 yaliyopita}}.\nIli kuzuia uhuni, ni kikumbusho kimoja tu cha neno la siri ambacho utatumiwa kwa kila {{PLURAL:$1|saa|masaa $1}}.",
+       "eauthentsent": "Tumekutuma barua pepe ili kuhakikisha anwani yako.\nKabla ya kutuma barua pepe nyingine kwenye akaunti hiyo, itabidi ufuate maelezo katika barua uliyopokea,\nkuthibitisha kwamba wewe ndiyo mwenye akaunti.",
+       "throttled-mailpassword": "Kikumbusho cha neno la siri tayari kimetumwa kwako, ndani ya {{PLURAL:$1|saa iliyopita|masaa $1 yaliyopita}}.\nIli kuzuia uhuni, ni kikumbusho moja tu la neno la siri ambalo utatumiwa kwa kila {{PLURAL:$1|saa|masaa $1}}.",
        "mailerror": "Hitilafu ilitokea wakati ulivyoituma barua pepe: $1",
        "acct_creation_throttle_hit": "Watembeleaji wa wiki hii waliotumia anwani yako ya IP, wamefungua {{PLURAL:$1|akaunti 1|akaunti $1}} katika siku iliyopita, ambayo inaruhusiwa hasa kwa kipindi cha muda huu.\nMajibu yake, watumiaji wanaotumia anwani ya IP hii hawawezi kufungua akaunti nyingine tena kwa muda huu.",
-       "emailauthenticated": "Anwani yako ya barua pepe iliyakinishwa saa $3, tarehe $2.",
-       "emailnotauthenticated": "Anwani ya barua pepe yako bado haijahakikiwa.\nHakuna hata barua  pepe moja itakayotumwa kwa lolote katika vipengele hivi vifuatavyo.",
+       "emailauthenticated": "Anwani yako ya barua pepe iliyakinishwa saa $3,tarehe $2.",
+       "emailnotauthenticated": "Anwani ya barua pepe yako bado haijahakikishwa.\nHakuna hata barua  pepe moja itakayotumwa kwa lolote katika vipengele hivi vifuatavyo.",
        "noemailprefs": "Weka anwani ya barua pepe kwenye mapendekezo ili uweze kutumia zana hizi.",
        "emailconfirmlink": "Yakinisha anwani yako ya barua pepe",
        "invalidemailaddress": "Anwani ya barua pepe haiwezi kukubalika ikiwa inaonekana kuwa na muundo batili.\nTafadhali ingiza anwani ya miundo-mizuri au acha tupu kipengele hicho.",
        "cannotchangeemail": "Anwani za barua pepe haziwezi kubadilishwa katika akaunti za wiki hii.",
        "emaildisabled": "Tovuti hii haiwezi kutuma barua pepe.",
        "accountcreated": "Akaunti imeundwa",
-       "accountcreatedtext": "Akaunti imeundwa kwa ajili ya mtumiaji $1.",
+       "accountcreatedtext": "Akaunti ya mtumiaji kwa [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) imeundwa.",
        "createaccount-title": "Kuanzisha akaunti kwa ajili ya {{SITENAME}}",
        "createaccount-text": "Kuna mtu amesajili akaunti kwa kutumia anwani ya barua pepe yako kwenye  {{SITENAME}} ($4) anaitwa \"$2\", yenye neno la siri \"$3\".\nInabidi uingie na kisha ubadilishe neno la siri lako sasa.\n\nUnaweza kupuuza ujumbe huu, endapo akaunti hii ilianzishwa kimakosa.",
-       "login-throttled": "Umejaribu kadha wa kadha kuingia akaunti hii.\nTafadhali subiri kwanza kabla ya kujaribu tena.",
+       "login-throttled": "Umejaribu mara kadha wa kadha kuingia katika akaunti.\nTafadhali subiri $1 kabla ya kujaribu tena.",
        "login-abort-generic": "Kuingia kwako hakujafaulu: Iliachishwa",
+       "login-migrated-generic": "Akaunti yako imehamishwa na jina lako la mtumiaji halipo tena katika wiki hii.",
        "loginlanguagelabel": "Lugha: $1",
        "suspicious-userlogout": "Ombi lako la kutoka kwenye akaunti yako limehiniwa, kwa sababu inaonekana kwamba ombi lilitumwa na kivinjari kilichoharibika au seva ya kuwakilisha yenye kache.",
+       "createacct-another-realname-tip": "Jina halisi ni ya hiari.\nUkichagua kulitoa, litatumika kwa ajili ya kutoa maelezo kwa ajili ya kazi ya mtumiaji.",
        "pt-login": "Ingia",
        "pt-login-button": "Ingia",
+       "pt-createaccount": "Unda akaunti",
        "pt-userlogout": "Toka",
        "php-mail-error-unknown": "Hitilafu isiyojulikana katika ufanyajikazi wa barua za PHP ().",
        "user-mail-no-addy": "Umejaribu kutuma barua pepe bila anwani ya barua pepe.",
+       "user-mail-no-body": "Umejaribu kutuma barua pepe yenye maudhui madogo madogo sana au tupu.",
        "changepassword": "Badilisha neno la siri",
-       "resetpass_announce": "Umeingia na msimbo wa barua pepe wa muda tu.\nKumalizia kuingia ndani, ni lazima urekebishe neno la siri jipya hapa:",
+       "resetpass_announce": "Umeingia na msimbo wa barua pepe wa muda tu.\nKumaliza kuingia, lazima uunde neno lipya la siri.",
        "resetpass_header": "Kubadilisha neno la siri la akaunti",
        "oldpassword": "Neno la siri la zamani",
        "newpassword": "Neno jipya la siri:",
        "retypenew": "Andika neno la siri tena:",
        "resetpass_submit": "Rekebisha neno la siri na uingie",
-       "changepassword-success": "Neno lako la siri limefanikiwa kubadilishwa! Sasa unaingia...",
+       "changepassword-success": "Neno lako la siri limefanikiwa kubadilishwa!",
+       "changepassword-throttled": "Umejaribu mara kadha wa kadha kuingia katika akaunti.\nTafadhali subiri $1 kabla ya kujaribu tena.",
        "resetpass_forbidden": "Maneno ya siri hayawezi kubadilishwa",
        "resetpass-no-info": "Lazima uwe umeingia ili kuweza kutumia kurasa hii moja kwa moja.",
        "resetpass-submit-loggedin": "Badilisha neno la siri",
        "resetpass-submit-cancel": "Batilisha",
        "resetpass-wrong-oldpass": "Neno la siri la muda au la sasa ni batili.\nInawezekana ikawa tayari umefaulu kubadilisha neno lako la siri au neno la siri jipya la muda.",
+       "resetpass-recycled": "Tafadhali seti neno lako la siri upya tofauti na la sasa.",
+       "resetpass-temp-emailed": "Ulingia na kodi isiyo ya kudumu ya barua pepe.\nKumaliza kuingia, lazime uunde neno lipya la siri:",
        "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",
        "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.}}",
        "passwordreset-legend": "Seti upya neno la siri",
        "passwordreset-disabled": "Kuweka neno la siri jipya kumeshitishwa katika wiki hii.",
+       "passwordreset-emaildisabled": "Vipengee vya barua pepe vimelemazwa katika wiki hii.",
        "passwordreset-username": "Jina la mtumiaji:",
        "passwordreset-domain": "Miliki",
        "passwordreset-capture": "Ioneshe barua-pepe itakayotumwa?",
        "passwordreset-capture-help": "Iwapo utatia alama kisanduku hiki, barua-pepe (pamoja na nenosiri la muda) litaoneshwa kwako na vilevile litatumwa kwa mtumiaji.",
        "passwordreset-email": "Anwani ya barua pepe:",
        "passwordreset-emailtitle": "Maelezo ya akaunti kwenye {{SITENAME}}",
-       "passwordreset-emailtext-ip": "Kuna mtu (huenda ikawa ni wewe, kutoka anwani ya IP $1) aliyeomba neno la siri la akaunti yako liwekwe upya katika {{SITENAME}} ($4). {{PLURAL:$3|Akaunti inayofuata imeunganishwa|Akaunti zinazofuata zimeunganishwa}} na anwani ya barua pepe hii:\n\n$2\n\n{{PLURAL:$3|Neno la siri hili litakwisha|Maneno ya siri haya yatakwisha}} baada ya siku {{PLURAL:$5|$5}}.\nTafadhali ingia sasa na uchague neno jipya la siri. Kama mtu mwingine ameomba hili, au ikiwa umekumbuka neno lako la siri na hutaki kulibadilisha tena, basi usijali ujumbe huu, na uendelee kutumia neno la siri lako la zamani.",
-       "passwordreset-emailtext-user": "Mtumiaji $1 kwenye {{SITENAME}} ameomba neno la siri la akaunti yako liwekwe upya katika {{SITENAME}} ($4). {{PLURAL:$3|Akaunti inayofuata imeunganishwa|Akaunti zinazofuata zimeunganishwa}} na anwani ya barua pepe hii:\n\n$2\n\n{{PLURAL:$3|Neno la siri hili litakwisha|Maneno ya siri haya yatakwisha}} baada ya siku {{PLURAL:$5}}.\nTafadhali ingia sasa na uchague neno jipya la siri. Kama mtu mwingine ameomba hili, au ikiwa umekumbuka neno lako la siri na hutaki kulibadilisha tena, basi usijali ujumbe huu, na uendelee kutumia neno la siri lako la zamani.",
+       "passwordreset-emailtext-ip": "Kuna mtu (huenda ikawa ni wewe, kutoka anwani ya IP $1) aliyeomba neno la siri la akaunti yako liwekwe upya katika {{SITENAME}} ($4). {{PLURAL:$3|Akaunti inayofuata imeunganishwa|Akaunti zinazofuata zimeunganishwa}} na anwani ya barua pepe hii:\n\n$2\n\n{{PLURAL:$3|Neno la siri hili litakwisha|Maneno ya siri haya yatakwisha}} baada ya siku {{PLURAL:$5|$5}}.\nUnafaa kuingia sasa na uchague neno jipya la siri. Kama mtu mwingine ameomba hili, au ikiwa umekumbuka neno lako la siri na hutaki kulibadilisha tena, basi usijali ujumbe huu, na uendelee kutumia neno la siri lako la zamani.",
+       "passwordreset-emailtext-user": "Mtumiaji $1 kwenye {{SITENAME}} ameomba neno la siri la akaunti yako liwekwe upya katika {{SITENAME}} ($4). {{PLURAL:$3|Akaunti inayofuata imeunganishwa|Akaunti zinazofuata zimeunganishwa}} na anwani ya barua pepe hii:\n\n$2\n\n{{PLURAL:$3|Neno la siri hili litakwisha|Maneno ya siri haya yatakwisha}} baada ya siku {{PLURAL:$5|one day|$5 siku}}.\nTafadhali ingia sasa na uchague neno jipya la siri. Kama mtu mwingine ameomba hili, au ikiwa umekumbuka neno lako la siri na hutaki kulibadilisha tena, basi usijali ujumbe huu, na uendelee kutumia neno la siri lako la zamani.",
        "passwordreset-emailelement": "Jina la mtumiaji: $1\nNeno la siri la muda: $2",
-       "passwordreset-emailsent": "Barua pepe ya ukumbusho imetumwa.",
-       "passwordreset-emailsent-capture": "Barua pepe ya ukukumbusho imetumwa, ambayo inaonekana hapo chini.",
-       "passwordreset-emailerror-capture": "Barua pepe ya ukukumbusho imetengenezwa, ambayo inaonekana hapo chini, lakini kuituma kwa mtumiaji imeshindikana: $1",
+       "passwordreset-emailsent": "Barua pepe ya ukumbusho wa neno la siri imetumwa.",
+       "passwordreset-emailsent-capture": "Barua pepe ya ukukumbusho wa neno la siri imetumwa, ambayo inaonekana hapo chini.",
+       "passwordreset-emailerror-capture": "Barua pepe ya ukukumbusho wa neno la siri imetengenezwa, ambayo inaonekana hapo chini, lakini kuituma kwa mtumiaji {{GENDER:$2|user}} kumeshindikana: $1",
        "changeemail": "Badilisha anwani ya barua pepe",
        "changeemail-text": "Jaza fomu hii ili kubadilisha anwani yako ya barua pepe. Itabidi uingize neno lako la siri ili kukamilisha badiliko hili.",
        "changeemail-no-info": "Lazima uwe umeingia ili kuweza kutumia kurasa hii moja kwa moja.",
        "changeemail-oldemail": "Anwani ya barua pepe ya sasa:",
        "changeemail-newemail": "Anwani mpya ya barua pepe:",
        "changeemail-none": "(hakuna)",
-       "changeemail-password": "Neno lako la siri kuingia {{SITENAME}}:",
+       "changeemail-password": "Neno lako la siri la {{SITENAME}}:",
        "changeemail-submit": "Badilisha anwani ya barua pepe",
+       "changeemail-throttled": "Umejaribu mara nyingi sana kuingia.\nTafadhali subiri $1 kabla ya kujaribu tena.",
+       "resettokens": "Weka vibazi upya",
+       "resettokens-no-tokens": "Hakuna vibazi vya kuseti upya.",
+       "resettokens-legend": "Weka vibazi upya",
+       "resettokens-tokens": "Vibazi:",
+       "resettokens-token-label": "$1 (current value: $2)",
+       "resettokens-done": "Seti vibazi upya.",
+       "resettokens-resetbutton": "Seti vibazi ulivyochagua upya",
        "bold_sample": "Maandishi ya kooze",
        "bold_tip": "Kukoozesha maandishi",
        "italic_sample": "Matini ya italiki",
        "preview": "Hakiki",
        "showpreview": "Onyesha hakikisho la mabadiliko",
        "showdiff": "Onyesha mabadiliko",
-       "anoneditwarning": "'''Ilani:''' Wewe hujaingia rasmi kwenye tovuti. Anwani ya IP ya tarakilishi yako itahifadhiwa katika historia ya uhariri wa ukurasa huu.",
+       "blankarticle": "<strong>Ilani:</strong>Ukurasa uliounda ni mtupu.\nUlibofya  \"{{int:savearticle}}\" tena, ukurasa utaundwa bila maudhui yoyote.",
+       "anoneditwarning": "<strong>Ilani:</strong> Wewe hujaingia rasmi kwenye tovuti. Anwani ya IP ya tarakilishi itaonekana na umma. Uki <strong>[$1 log in]</strong> au <strong>[$2 create an account]</strong>, hariri zako zitahusishwa na jina lako la mtumiaji pamoja na manufaa mengine.",
        "anonpreviewwarning": "''Hujaingia rasmi kwenye tovuti. Ukihifadhi ukurasa anwani ya IP ya tarakilishi yako itahifadhiwa katika historia ya uhariri wa ukurasa huu.''",
        "missingsummary": "'''Taarifa:''' Hujaandika muhtasari ya kuhariri.\nUkibonyeza 'Hifadhi ukurasa' tena, badilisho lako litahifadhiwa bila muhtasari.",
        "missingcommenttext": "Tafadhali andika muhtasari chini.",
        "missingcommentheader": "'''Kikumbusho:''' Hujaweka kichwa cha habari/mada kwa ajili ya maelezo haya.\nIwapo utabonyeza tena Hifadhi, haririo lako litahifadhiwa bila kichwa cha habari.",
        "summary-preview": "Hakikisho la muhtasari:",
        "subject-preview": "Hakikisha kichwa cha habari/mada:",
+       "previewerrortext": "Hitilafu ilitokea wakati ya kujaribu hakikisho mabadiliko yako.",
        "blockedtitle": "Mtumiaji amezuiwa",
        "blockedtext": "'''Jina lako la mtumiaji au anwani yako ya IP imezuiwa.'''\n\nUmezuiwa na $1.\nSababu aliyetambua ni ''$2''\n\n* Mwanzo wa uzuio: $8\n* Mwisho wa uzuio: $6\n* Aliyezuiwa: $7\n\nUnaweza kuwasiliana na $1 au [[{{MediaWiki:Grouppage-sysop}}|mkabidhi]] kuzungumza uzuio.\nHuwezi kutumia kipengele cha 'kumtuma mtumiaji barua pepe' isipopatikana anwani halisi ya barua pepe katika\n[[Special:Preferences|mapendekezo ya akaunti]] yako, na usipozuiwa kuitumia.\nAnwani yako ya IP ni $3, na namba ya uzuio ni #$5. Tafadhali taja namba hizi ukitaka kuwasiliana kuhusu uzuio huu.",
        "autoblockedtext": "Anwani yako ya IP imezuiwa na mashine kwa sababu ilikuwa ikitumiwa na mtumiaji mwingine, ambaye amezuiliwa na $1.\nSababu zilizotolewa ni hizi:\n\n:''$2''\n\n* Imeanza kuzuiwa: $8\n* Mwisho wa kuzuiwa: $6\n* Mzuiwaji aliyenuiwa: $7\n\nUnaweza kuwasiliana na $1 au mmoja kati ya [[{{MediaWiki:Grouppage-sysop}}|wakabidhi]] wengine ili kujadili uzuio.\n\nElewa kwamba huwezi kutumia kipengele cha \"umtumie barua pepe mtuaji huyu\" bila ya kuwa na anwani halali iliosajiliwa kwenye [[Special:Preferences|mapendekezo ya mtumiaji]] na uwe hujazuiliwa kuitumia.\n\nAnwani yako ya sasa ya IP ni $3, na namba ya kuzuiliwa ni #$5.\nTafadhali jumlisha maelezo yote ya juu kwenye kila ulizo utakalolifanya.",
        "loginreqlink": "uingie",
        "loginreqpagetext": "Inabidi $1 ili uweze kutazama kurasa zingine.",
        "accmailtitle": "Neno la siri limetumwa.",
-       "accmailtext": "Neno la siri limetolewa na programu kwa ajili ya [[User talk:$1|$1]] na limetumwa kwa $2.\n\nUnaweza kubadilisha neno la siri hili kwenye ukurasa wa ''[[Special:ChangePassword|kubadilisha neno la siri]]'' baada ya kuingia kwenye wiki.",
+       "accmailtext": "Neno la siri limetolewa na programu kwa ajili ya [[User talk:$1|$1]] na limetumwa kwa $2.\n\nUnaweza kubadilisha neno la siri hilo kwenye ukurasa wa ''[[Special:ChangePassword|kubadilisha neno la siri]]'' baada ya kuingia.",
        "newarticle": "(Mpya)",
        "newarticletext": "Ukurasa unaotaka haujaandikwa bado. Ukipenda unaweza kuuandika wewe mwenyewe kwa kutumia sanduku la hapa chini (tazama [$1 Mwongozo] kwa maelezo zaidi). Ukifika hapa kwa makosa, bofya kibonyezi '''back''' (nyuma) cha programu yako.",
        "anontalkpagetext": "----''Huu ni ukurasa wa majadiliano wa mtumiaji ambaye hana jina na bado hajaumba akaunti bado, au hajawahi kutumia kabisa.\nKwa hiyo tunatumia namba za anwani ya IP yake kumtambulisha.\nAnwani ya IP kama hiyo inaweza kutumika na watumiaji kadhaa.\nLabda itakusumbua kwamba kuna maoni mengine yanawekwa hapa na unaamini kwamba haya maoni hayakulengi. Ikiwa hivyo, tafadhali [[Special:UserLogin/signup|fungua akaunti]] au  [[Special:UserLogin|ingia]] ili kuepuka kuchanganywa na watumiaji wengine ambao hawana jina.''",
        "copyrightwarning": "Tafadhali zingatia kwamba makala yote ya {{SITENAME}} unayoyaandika yanafuata $2 (tazama $1 kwa maelezo zaidi).\nUsipotaka maandishi yako yaweze kuharirishwa bure na kutolewa wakati wowote, basi usiyaandike hapa.<br />\nUnakuwa unaahidi kwamba maandishi unayoyaingia ni yako tu, au uliyapata kutoka bure au ni mali ya watu wote. '''USITOLEE MAKALA YALIYOHIFADHIWA HAKI ZAO ZA KUTUMIWA BILA KUPATA RUHUSA HALALI!'''",
        "copyrightwarning2": "Tafadhali elewa kwamba michango yote ya {{SITENAME}} inaweza kuhahariwa, kubadilishwa, au kuondolewa na wachangiaji wengine.\nIkiwa hutaki maandishi yako yasihaririwe na yeyote, basi usiyaweke hapa.<br />\nPia una tuahidi kwamba umeandika haya wewe mwenyewe, au umenakili kutoka katika tovuti ya umma au chanzo cha wazi sawa na hiki (tazama  $1 kwa maelezo).\n'''Usiandike makala yenye hakimiliki bila ya ruhusa halali!'''",
        "longpageerror": "'''Hitilafu: Maandishi uliyoyaweka yana {{PLURAL:$1|kilobaiti $1}}, ambayo ni urefu kuliko kiwango cha kawaida cha kilobaiti $2.'''\nHayawezi kuhifadhiwa.",
-       "readonlywarning": "'''Onyo: Hifadhidata imefungwa kwa ajili ya matengenezo, kwa hiyo hautakuwa na uwezo wa kuhifadhi maharirio yako kwa sasa.'''\nUnaweza kukata-na-kabandika maandishi yako kwenye faili na kulihifadhi kwa ajili ya baadaye.\n\nMkabidhi aliyefunga ametoa maelezo haya: $1",
+       "readonlywarning": "<strong>Onyo: Hifadhidata imefungwa kwa ajili ya matengenezo, kwa hiyo hautakuwa na uwezo wa kuhifadhi maharirio yako kwa sasa.</strong>\nUnaweza kukata-na-kabandika maandishi yako kwenye faili na kulihifadhi kwa ajili ya baadaye.\n\nMkabidhi aliyefunga ametoa maelezo haya: $1",
        "protectedpagewarning": "'''ILANI: Ukurasa huu unakingwa kwa hiyo watumiaji wenye haki za wakabidhi tu wanaweza kuuhariri.'''\nRejea kumbukumbu ya mwisho inayoandikwa chini:",
        "semiprotectedpagewarning": "'''Ilani:''' Ukurasa huu umefungwa kwa hiyo watumiaji waliojisajili tu ndiyo wanaweza kuuhariri.\nRejea kumbukumbu ya mwisho inayoandikwa chini:",
        "cascadeprotectedwarning": "'''Ilani:''' Ukurasa huu umefungwa kwa hiyo watumiaji wenye uwezo wa ukabidhi tu ndiyo wanaweza kuuhariri, kwa sababu umejumlishwa kwenye {{PLURAL:$1|ukurasa huu mwingine wenye|kurasa hizi zingine zenye}} ulindaji kwa kurasa chini yake:",
        "nocreate-loggedin": "Huna ruhusa ya kuanzisha ukurasa mpya.",
        "sectioneditnotsupported-title": "Kuhariri sehemu kwa sehemu haiwezikani",
        "sectioneditnotsupported-text": "Haiwezikani kuhariri ukurasa huu sehemu kwa sehemu.",
-       "permissionserrors": "Hitilafu za ruhusa",
+       "permissionserrors": "Kuna hitilafu ya ruhusa.",
        "permissionserrorstext": "Huna ruhusa ya kufanya hivyo, kwa ajili ya sababu {{PLURAL:$1|ifuatayo|zifuatazo}}:",
        "permissionserrorstext-withaction": "Huruhusiwi $2, kwa sababu {{PLURAL:$1|hiyo|hizo}}:",
        "recreate-moveddeleted-warn": "'''Ilani: Unatengeneza tena ukurasa uliofutwa tayari.'''\n\nFikiria kama inafaa kuendelea kuhariri ukurasa huu.\nKumbukumbu za kufuta na kuhamisha ukurasa huu zinapatikana hapa kukusaidia:",
        "moveddeleted-notice": "Ukurasa huu umefutwa.\nKumbukumbu za kufuta na kuhamisha ukurasa huu zimetolewa chini, ili zifikike kwa urahisi.",
        "log-fulllog": "Tazama kumbukumbu zote",
+       "edit-hook-aborted": "Hariri imekomeshwa na ndoano.\nHaikutoa maelezo.",
        "edit-gone-missing": "Haikuwezakana kusasisha ukurasa.\nInaonekana kwamba ukurasa umefutwa.",
        "edit-conflict": "Mgongano wa kuhariri.",
        "edit-no-change": "Uhariri wako haukufanikiwa, kwa sababu hapakuwa na mabadiliko yoyote kwenye maandishi.",
+       "postedit-confirmation-created": "Ukurasa huu umeundwa.",
+       "postedit-confirmation-restored": "Ukurasa huu umerudishwa.",
        "postedit-confirmation-saved": "Haririo lako limehifadhiwa.",
        "edit-already-exists": "Haikufanikiwa kuanzisha ukurasa mpya.\nUkurasa wa jina hilo unapatikana tayari.",
        "defaultmessagetext": "Ujumbe uliopo",
+       "content-failed-to-parse": "Imeshindwa kuchanganua $2 yaliyomo kwa muundo $1: $3",
+       "invalid-content-data": "Data batili ya yaliyomo",
+       "content-not-allowed-here": "Maudhui \"$1\"  hayakubaliwi katika ukurasa [[$2]]",
        "editwarning-warning": "Ukitoka kwenye ukurasa huu labda utapoteza madabiliko uliyoyafanya.\nUnaweza kuondoa ilani hii ukienda kwenye sehemu ya \"{{int:prefs-editing}}\" kwenye mapendekezo yako.",
+       "editpage-notsupportedcontentformat-title": "Muundo wa maudhui hauungwi mkono",
+       "editpage-notsupportedcontentformat-text": "Muundo wa yaliyomo kwa $1 hayaungwi mkono na muundo wa $2.",
+       "content-model-wikitext": "Maandishi ya kiwiki",
+       "content-model-text": "Nakala wazi",
        "content-model-javascript": "HatiJava",
+       "content-json-empty-object": "Kifaa kilicho wazi",
+       "content-json-empty-array": "Safu tupu",
+       "duplicate-args-category": "Kurasa zinazotumia marudio ya hoja katika wito wa kigezo",
        "post-expand-template-inclusion-warning": "'''Ilani:''' Kigezo kinajumlisha ukubwa uliozidi mno.\nBaadhi ya vigezo havitaweza kuingizwa.",
        "post-expand-template-inclusion-category": "Kurasa ambapo vigezo vinajumlisha ukubwa uliozidi",
        "post-expand-template-argument-warning": "'''Ilani:'''Ukurasa huu una angalau kigezo kimoja au zaidi vye matatizo, ambavyo ukubwa wake wa kupanuliwa unazidi mipaka. Kwa hiyo sehemu za vigezo havitaonekana.",
        "post-expand-template-argument-category": "Kurasa zenye shida ya vigezo vilivyorukwa",
+       "parser-template-recursion-depth-warning": "Kigezo cha marudio kimefikia mwisho ($1)",
+       "language-converter-depth-warning": "Kigeuzi cha lugha kimafikia mwisho ($1)",
+       "node-count-exceeded-category": "Kurasa ambapo hesabu ya kipingili ilizidi",
+       "node-count-exceeded-category-desc": "Ukurasa huu unapita hesabu ya juu ya kipingili.",
+       "node-count-exceeded-warning": "Ukurasa ulipita hesabu ya kipingili",
+       "expansion-depth-exceeded-category": "Kurasa ambapo kina cha upana kilizidi",
+       "expansion-depth-exceeded-category-desc": "Ukurasa unazidi upeo wa kina cha upanuzi.",
+       "expansion-depth-exceeded-warning": "Ukurasa ulizidi kina cha upanuzi",
+       "parser-unstrip-loop-warning": "Unstrip kitanzi kimegunduliwa",
+       "converter-manual-rule-error": "Kosa liligunduliwa katika utawala wa ubadilishaji mwongozo wa lugha",
        "undo-success": "Sahihisho linaweza kutenguliwa.\nTafadhali tazama linganisho lililopo chini ili kuthibitisha kwamba kutengua ndiyo inayotakiwa, na kisha uhifadhi mabadiliko ili kukamilisha kutengua sahihisho.",
        "undo-failure": "Haririo halikuweza kutenguliwa kwa kufuatia mgongano wa maharirio katikati.",
        "undo-norev": "Haririo halikuweza kutenguliwa kwa sababu halipo au limeshafutwa.",
+       "undo-nochange": "Hariri inaonekana kuwa tayari imerudishwa tena.",
        "undo-summary": "Tengua pitio $1 lililoandikwa na [[Special:Contributions/$2|$2]] ([[User talk:$2|Majadiliano]])",
+       "undo-summary-username-hidden": "Tednua toleo $1 na mtumiaji aliyejificha",
        "cantcreateaccounttitle": "Kushindwa kusajili akaunti",
        "cantcreateaccount-text": "Kusajili akaunti kwa kutumia anwani ya IP hii ('''$1''') imezuiwa na [[User:$3|$3]].\n\nSababu iliyotolewa na $3 ni ''$2''",
        "viewpagelogs": "Tazama kumbukumbu kwa ukurasa huu",
        "currentrev": "Toleo la sasa",
        "currentrev-asof": "Toleo la sasa la $1",
        "revisionasof": "Pitio la $1",
-       "revision-info": "Pitio la $1 aliyefanya $2",
+       "revision-info": "Pitio kulingana na tarehe $1 na {{GENDER:$6|$2}}$7",
        "previousrevision": "← Pitio lililotangulia",
        "nextrevision": "Pitio linalofuata →",
        "currentrevisionlink": "Toleo la sasa",
        "history-feed-description": "Kumbukumbu za mapitio ya ukurasa huu",
        "history-feed-item-nocomment": "$1 kwenye $2",
        "history-feed-empty": "Ukurasa ulioomba haupatikani.\nLabda umeshafutwa, au umebadilishwa jina.\nJaribu [[Special:Search|kutafuta kurasa mpya zinazohusika kwenye wiki]].",
+       "history-edit-tags": "Hariri vitambulisho vya marekebisho uliyoteua",
        "rev-deleted-comment": "(muhtasari wa kuhariri ulifutwa)",
        "rev-deleted-user": "(jina la mtumiaji lilifutwa)",
-       "rev-deleted-event": "(ingizo lilifutwa)",
+       "rev-deleted-event": "(maelezo yametolewa)",
        "rev-deleted-user-contribs": "[jina la mtumiaji au anwani wa IP umetolewa - sahihisho lilifichwa kutoka kwa orodha ya michango]",
        "rev-deleted-text-permission": "Pitio hilo la ukurasa '''lilifutwa'''.\nMaelezo mengine yapo kwenye [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} kumbukumbu ya kufuta].",
+       "rev-suppressed-text-permission": "Pitio la ukurasa huu <strong>limefichwa</strong>.\nUnaweza kutazama maelezo mengine kwenye [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} kumbukumbu ya ufichaji]",
        "rev-deleted-text-unhide": "Pitio la ukurasa huu '''limefutwa'''.\nMaelezo yanaweza kupatikana kwenye [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} kumbukumbu ya ufutaji].\nBado unaweza [$1 kutazama sahihisho hili] iwapo utapenda kuendelea.",
        "rev-suppressed-text-unhide": "Pitio la ukurasa huu '''limefichwa'''.\nMaelezo yanaweza kupatikana kwenye [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} kumbukumbu ya ufichaji].\nBado unaweza [$1 kutazama sahihisho hili] iwapo utapenda kuendelea.",
        "rev-deleted-text-view": "Pitio hilo la ukurasa huu '''limefutwa'''.\nUnaweza kulitazama; maelezo mengine yapo kwenye [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} kumbukumbu ya ufutaji].",
        "rev-suppressed-text-view": "Pitio la ukurasa huu '''limefichwa'''.\nUnaweza kulitazama; maelezo mengine yapo kwenye [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} kumbukumbu ya ufichaji].",
+       "rev-deleted-no-diff": "Hauwezi kuona badiliko hili maana toleo moja ya ukurasa <strong>lilifutwa</strong>.\nMaelezo mengine yapo kwenye [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} kumbukumbu ya kufuta].",
+       "rev-suppressed-no-diff": "Hauwezi kuona badiliko hili maana toleo moja ya ukurasa <strong>lilifutwa</strong>.",
        "rev-deleted-unhide-diff": "Pitio la ukurasa huu '''limefutwa'''.\nMaelezo yanaweza kupatikana kwenye [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} kumbukumbu ya ufutaji].\nBado unaweza [$1 kutazama sahihisho hili] iwapo utapenda kuendelea.",
        "rev-suppressed-unhide-diff": "Pitio la ukurasa huu '''limefutwa'''.\nMaelezo yanaweza kupatikana kwenye [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} kumbukumbu ya ufutaji].\nBado unaweza [$1 kutazama sahihisho hili] iwapo utapenda kuendelea.",
        "rev-deleted-diff-view": "Pitio hilo la ukurasa huu '''limefutwa'''.\nUnaweza masasisho; maelezo mengine yapo kwenye [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} kumbukumbu ya ufutaji]",
+       "rev-suppressed-diff-view": "Toleo moja la mapitio ya mabadiliko <strong>limefichwa</strong>\nUnaweza kutazama maelezo mengine kwenye [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} kumbukumbu ya ufichaji]",
        "rev-delundel": "onyesha/ficha",
        "rev-showdeleted": "onyesha",
        "revisiondelete": "Kufuta/kurudisha mapitio",
+       "revdelete-nooldid-title": "Lengo la marekebisho batili",
        "revdelete-no-file": "Faili ulilotaja halipatikani.",
        "revdelete-show-file-confirm": "Ni kweli kwamba unataka kulitazama pitio lililofutwa la faili linaloitwa \"<nowiki>$1</nowiki>\" la tarehe $2 na saa $3?",
        "revdelete-show-file-submit": "Ndiyo",
+       "revdelete-selected-text": "{{PLURAL:$1|Selected revision|Toleo zilizochaguliwa}} za [[:$2]]:",
+       "revdelete-selected-file": "{{PLURAL:$1|Selected file version|Toleo za faili zilizochaguliwa}} of [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|Tukio la kumbukumbu lililoteuliwa|Matukio ya kumbukumbu yaliyoteuliwa}}:",
+       "revdelete-text-text": "Mapitio yaliyofutwa bado yataonekana katika historia ya ukurasa, lakini sehemu ya maudhui hayo hayataonekana kwa umma.",
+       "revdelete-text-file": "Mapitio ya faili yaliyofutwa bado yataonekana katika historia ya ukurasa, lakini sehemu ya maudhui hayo hayataonekana kwa umma.",
+       "logdelete-text": "Mapitio ya kufutwa kwa kumbukumbu yaliyofutwa bado yataonekana katika kumbukumbu, lakini sehemu ya maudhui hayo hayataonekana kwa umma.",
+       "revdelete-text-others": "Wasimamizi wengine bado wako na uwezo wa kupata maudhui ya siri na kwa kutofuta hilo, isipokuwa vikwazo vya ziada vikiwekwa.",
        "revdelete-confirm": "Tafadhali uthibitishe kwamba unataka kufanya hivyo, pamoja na kwamba unaelewa matokeo yake, na unafanya hivyo kutokana na [[{{MediaWiki:Policy-url}}|sera yetu]].",
-       "revdelete-suppress-text": "Kuficha kunaruhisiwa '''tu''' wakati hizo:\n* Taarifa zinazowezekana kwamba ni za kukashifu\n* Taarifa za mtu binafsi zisizofaa\n*: ''anwani za nyumbani na namba za simu, namba za vitambulisho, na kadhalika.''",
+       "revdelete-suppress-text": "Kuficha kunaruhisiwa <strong>tu</strong> wakati wa matukio yafuatayo:\n* Taarifa zinazowezekana kuwa ni za kukashifu\n* Taarifa za mtu binafsi zisizofaa\n*: ''anwani za nyumbani na namba za simu, namba za vitambulisho, na kadhalika.''",
        "revdelete-legend": "Kubana maelezo yanayoonekana",
        "revdelete-hide-text": "Ficha maandishi ya pitio",
        "revdelete-hide-image": "Ficha yaliyomo kwenye faili",
        "deletedhist": "Historia iliyofutwa",
        "revdelete-hide-current": "Hitilafu ya kuficha pitio lililotengenezwa saa $2, tarehe $1: hilo ndilo pitio la sasa hivi.\nHaliwezi kufichwa.",
        "revdelete-show-no-access": "Huruhusiwi kuona hii.",
-       "revdelete-reason-dropdown": "*Sababu za kufuta zinazotokea mara kwa mara\n** Ukiukaji wa hakimiliki\n** Taarifa za mtu binafsi zisizofaa\n** Taarifa zinazowezekana kwamba ni za kukashifu",
+       "revdelete-modify-no-access": "Kosa kubadilisha bidhaa tarehe $2, $1: Bidhaa imewekwa alama ya \"vikwazo\".\nHakuna vile unavyoweza kuifikia.",
+       "revdelete-modify-missing": "Kosa kubadilisha kipengele $1: Inakosa kutoka kwa hifadhidata!",
+       "revdelete-no-change": "<strong>Ilani:</strong> kipengele cha tarehe $2, $1 tayari kilikuwa kimeomba mipangilio ya kuonekana.",
+       "revdelete-reason-dropdown": "*Sababu za kufuta za mara kwa mara\n** Ukiukaji wa hatimiliki\n** Taarifa za mtu binafsi zisizofaa\n** Taarifa zinazowezekana kwamba ni za kukashifu\n** Jina la mtumiaji lisilo halali",
        "revdelete-otherreason": "Sababu nyingine:",
        "revdelete-reasonotherlist": "Sababu nyingine",
        "revdelete-edit-reasonlist": "Kuhariri orodha ya sababu za kufuta",
        "suppressionlog": "Kumbukumbu za kuficha",
        "suppressionlogtext": "Hapo chini panaonyeshwa orodha ya matukio ya ufutaji na ya uzuio ambayo maelezo yao yamefichwa kutoka kwa wakabidhi.\nTazama [[Special:BlockList|IP block orodha ya uzuio wa IP]] kuona orodha ya zuio zilizopo sasa hivi.",
        "mergehistory": "Unganisha historia za kurasa",
+       "mergehistory-header": "Ukurasa huu unakuwezesha kuunganisha marekebisho ya historia ya chanzo cha ukurasa katika ukurasa mpya zaidi.\nHakikisha kwamba mabadiliko haya yataendeleza kihistoria ukurasa mwendelezo.",
        "mergehistory-box": "Unganisha mapitio ya kurasa mbili:",
        "mergehistory-from": "Ukurasa wa chanzo:",
        "mergehistory-into": "Ukurasa wa mwishilio:",
+       "mergehistory-list": "Historia ya kuhariri inayoweza kushikanishwa",
+       "mergehistory-go": "Onyesha hariri ambazo zinaweza kushikanishwa",
        "mergehistory-submit": "Unganisha mapitio",
        "mergehistory-empty": "Hakuna mapitio yanayoweza kuunganishwa",
        "mergehistory-success": "{{PLURAL:$3|Pitio $3 la [[:$1]] liliingizwa|Mapitio $3 ya [[:$1]] yaliingizwa}} ndani ya [[:$2]].",
        "compareselectedversions": "Linganisha mapitio mawili uliyochagua",
        "showhideselectedversions": "Onyesha/ficha mapitio yaliyoteuliwa",
        "editundo": "tengua",
+       "diff-empty": "(Hakuna tofauti)",
        "searchresults": "Matokeo ya utafutaji",
        "searchresults-title": "Matokeo ya utafutaji kwa ajili ya \"$1\"",
        "titlematches": "Kurasa zinazo majina yenye maneno ya ulizo",
        "notextmatches": "Maandishi yaliyotafutwa hayakupatikana kwenye kurasa zo zote",
        "prevn": "{{PLURAL:$1|uliotangulia|$1 zilizotangulia}}",
        "nextn": "{{PLURAL:$1|ujao|$1 zijazo}}",
+       "prev-page": "Ukurasa uliotangulia",
+       "next-page": "Ukurasa ujao",
        "prevn-title": "{{PLURAL:$1|Tokeo $1 lililotangulia|Matokeo $1 yaliyotangulia}}",
        "nextn-title": "{{PLURAL:$1|Tokeo $1 lijalo|Matokeo $1 yajayo}}",
        "shown-title": "{{PLURAL:$1|Lionyewshwe tokeo|Yaonyeshwe matokeo}} $1 kwa kila ukurasa",
        "viewprevnext": "Tazama ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''Ukurasa wa \"[[:$1]]\" upo kwenye wiki hii'''",
-       "searchmenu-new": "'''Anzisha ukurasa wa \"[[:$1]]\" katika wiki hii!'''",
+       "searchmenu-new": "<strong>Anzisha ukurasa wa \"[[:$1]]\" katika wiki hii!'''{{PLURAL:$2|0=|See also the page found with your search.|Tazama pia matokeo kupatikana.}}",
        "searchprofile-articles": "Kurasa kwa kusudi ya wiki",
        "searchprofile-images": "Picha na kadhalika",
        "searchprofile-everything": "Zote",
        "search-result-category-size": "{{PLURAL:$1|ukurasa 1|kurasa $1}} ({{PLURAL:$2|kijamii 1|vijamii $2}}, {{PLURAL:$3|faili 1|mafaili $3}})",
        "search-redirect": "(elekezo toka kwa $1)",
        "search-section": "(fungu $1)",
+       "search-category": "(Kusanyiko $1)",
+       "search-file-match": "(inafanana na yalioymo katika faili)",
        "search-suggest": "Je, ulitaka kutafuta: $1",
        "search-interwiki-caption": "Miradi ya jumuia",
-       "search-interwiki-default": "Matokeo toka $1:",
+       "search-interwiki-default": "Matokeo kutoka $1:",
        "search-interwiki-more": "(zaidi)",
        "search-relatedarticle": "Zingine zinazofanana",
        "searchrelated": "zingine zinazofanana",
        "powersearch-togglelabel": "Chagua:",
        "powersearch-toggleall": "Chagua yote",
        "powersearch-togglenone": "Usichague",
+       "powersearch-remember": "Kumbuka chaguo kwa kutafuta kwa siku zijazo",
        "search-external": "Kutafuta nje",
        "searchdisabled": "Kutafuta {{SITENAME}} kumesimamishwa.\nUnaweza kutafuta kwa kutumia Google punde si punde.\nUjue lakini kwamba kumbukumbu za {{SITENAME}} kule Google labda zilipitwa na wakati.",
+       "search-error": "Hitilafu imerokea ikitafuta: $1",
        "preferences": "Mapendekezo",
        "mypreferences": "Mapendekezo",
        "prefs-edits": "Idadi ya marekebisho:",
+       "prefsnologintext2": "Tafadhlai ingia ili ubadilishe mapendelo yako.",
        "prefs-skin": "Umbo",
        "skin-preview": "Hakiki",
        "datedefault": "Chaguo-msingi",
        "prefs-personal": "Kuhusu mtumiaji",
        "prefs-rc": "Mabadiliko ya karibuni",
        "prefs-watchlist": "Maangalizi",
+       "prefs-editwatchlist": "Hariri orodha ya maangalizi",
+       "prefs-editwatchlist-label": "Hariri orodha ya maangalizi:",
+       "prefs-editwatchlist-edit": "Tazama na utoe mada kutoka orodha ya maangalizi",
+       "prefs-editwatchlist-raw": "Hariri maangalizi ghafi",
+       "prefs-editwatchlist-clear": "Futa orodha ya maangalizi",
        "prefs-watchlist-days": "Ionyeshwe siku ngapi kwenye orodha ya maangalizi?",
        "prefs-watchlist-days-max": "Isizidi {{PLURAL:$1|siku}} $1",
        "prefs-watchlist-edits": "Upeo ya idadi ya mabadiliko yatakayoonyeshwa kwenye orodha ya maangalizi iliyotanuka:",
        "prefs-email": "Hitiari za barua pepe",
        "prefs-rendering": "Umbo",
        "saveprefs": "Hifadhi",
-       "restoreprefs": "Rudisha mapendekezo ya msingi",
+       "restoreprefs": "Rudisha mapendekezo ya msingi(katika sehemu zote)",
        "prefs-editing": "Kuhariri",
        "rows": "Mistari:",
        "columns": "Safu:",
        "timezoneregion-indian": "Bahari ya Hindi",
        "timezoneregion-pacific": "Bahari ya Pasifiki",
        "allowemail": "Wezesha barua pepe toka kwa watumiaji wengine",
-       "prefs-searchoptions": "Hitiari za kutafuta",
+       "prefs-searchoptions": "Tafuta",
        "prefs-namespaces": "Maeneo ya wiki",
        "default": "chaguo-msingi",
        "prefs-files": "Mafaili",
        "prefs-reset-intro": "Unaweza kutumia ukurasa huu ili kurudisha mapendekezo yako kwenye yale ya msingi ya tovuti.\nHutaweza kulibatilisha tendo hili baadaye.",
        "prefs-emailconfirm-label": "Kuhakikisha barua pepe:",
        "youremail": "Barua pepe yako:",
-       "username": "Jina la mtumiaji:",
-       "prefs-memberingroups": "Mwanachama wa {{PLURAL:$1|kundi la|makundi ya}}:",
+       "username": "{{GENDER:$1|Username}}:",
+       "prefs-memberingroups": "{{GENDER:$2|Member}} wa {{PLURAL:$1|group|groups}}:",
        "prefs-registration": "Wakati wa kusajili:",
        "yourrealname": "Jina lako halisi:",
        "yourlanguage": "Lugha:",
        "gender-female": "Anahariri kurasa za wiki",
        "prefs-help-gender": "Si lazima: inatumika kwenye lugha zinazokuwa na mtindo wa kuitana tofauti kwa ajili ya wanaume na wanawake, ili bidhaa pepe itumie mtindo sahihi.\nTaarifa hii itakuwa wazi.",
        "email": "Barua pepe",
-       "prefs-help-realname": "Jina la kweli si lazima. Ukichagua kutaja jina lako hapa, litatumiwa kuonyesha kwamba ndiyo ulifanya kazi unayochangia.",
+       "prefs-help-realname": "Jina la kweli si lazima. \nUkichagua kutaja jina lako hapa, litatumiwa kuonyesha kwamba ndiyo ulifanya kazi unayochangia.",
        "prefs-help-email": "Barua-pepe sio lazima, lakini inawezesha kupokea neno jipya la siri kwa kupitia barua-pepe yako endapo utakuwa umelisahau.",
        "prefs-help-email-others": "Unaweza pia kuwezesha wengine wawasiliane nawe kwa njia ya ukurasa wako wa mtumiaji au ukurasa wako wa majadiliano. Anwani ya barua-pepe yako haioneshwi wakati watumiaji wanawasiliana na wewe.",
        "prefs-help-email-required": "Barua pepe inahitajika.",
        "prefs-signature": "Sahihi",
        "prefs-dateformat": "Jinsi inayoandikwa tarehe",
        "prefs-timeoffset": "Kuweka saa tofauti na saa ya seva",
-       "prefs-advancedediting": "Hitiari za hali ya juu",
+       "prefs-advancedediting": "Chaguo za ujumla",
        "prefs-editor": "Mhariri",
        "prefs-preview": "Hakiki",
        "prefs-advancedrc": "Hitiari za hali ya juu",
        "prefs-advancedwatchlist": "Hitiari za hali ya juu",
        "prefs-displayrc": "Hitiari za kutandaza",
        "prefs-displaywatchlist": "Mapendekezo ya kuzinza",
+       "prefs-tokenwatchlist": "Ishara",
        "prefs-diffs": "Tofauti",
+       "prefs-help-prefershttps": "Upendeleo huu utachukua athari kwenye kuingia kwako kujayo.",
        "email-address-validity-valid": "Anwani ya barua pepe inaonekana kuwa sawa",
        "email-address-validity-invalid": "Ingiza anwani halisi ya barua pepe",
        "userrights": "Usimamizi wa wezo za mtumiaji",
        "userrights-no-interwiki": "Huna ruhusa ya kuhariri haki za mtumiaji kwenye wiki zingine.",
        "userrights-nodatabase": "Hakuna hifadhidata inayoitwa $1 au haimo katiko jumuia hii ya wiki.",
        "userrights-nologin": "Lazima [[Special:UserLogin|uingie ndani]] ya akaunti ya mkabidhi ili kupanga haki za mtumiaji.",
-       "userrights-notallowed": "Akaunti yako haina ruhusa ya kuongeza au kutoa haki za mtumiaji.",
+       "userrights-notallowed": "Hauna ruhusa ya kupea au kunyimana haki za mtumiaji.",
        "userrights-changeable-col": "Makundi unayoweza kuyabadilisha",
        "userrights-unchangeable-col": "Makundi usiyoweza kuyabadilisha",
+       "userrights-conflict": "Mgongano wa haki za mtumiaji! Tafadhali pitia na uthibitishe mabadiliko yako.",
+       "userrights-removed-self": "Umefanikiwa kundoa haki zako mwenyewe. Kwa hivo, hauna uwezo wa kupata ukurasa huu.",
        "group": "Kundi:",
        "group-user": "Watumiaji",
        "group-autoconfirmed": "Watumiaji waliothibitishwa na tarakilishi",
        "right-move": "Kuhamisha kurasa",
        "right-move-subpages": "Kuhamisha kurasa pamoja na kurasa zake ndogo",
        "right-move-rootuserpages": "Kuhamisha kurasa za watumiaji",
+       "right-move-categorypages": "Songeza kundi ya kurasa",
        "right-movefile": "Kuhamisha mafaili",
        "right-suppressredirect": "Usianzishe elekezo kutoka katika kurasa za chanzo wakati kuhamisha kurasa",
        "right-upload": "Kupakia mafaili",
        "right-reupload-shared": "Kupuuza mafaili yaliyopo hifadhi ya pamoja ya faili hapo wiki hii",
        "right-upload_by_url": "Kupakia mafaili kutoka kwa URL",
        "right-purge": "Safisha kache za wavuti kwa ajili ya ukurasa usio na uthibitisho",
-       "right-autoconfirmed": "Hariri kurasa zilizokingwa-kiasi",
+       "right-autoconfirmed": "Haiwekewi kizuizi na kiwangi cha IP",
+       "right-bot": "Tendewa kama mchakato otomatiki",
        "right-nominornewtalk": "Isiwe kwamba maharirio madogo kwenye kurasa za majadiliano fyatua kunijulisha kuhusu jumbe mpya",
+       "right-apihighlimits": "Tumia mipaka ya juu katika hoja ya API",
        "right-writeapi": "Tumia API ya kuandika",
        "right-delete": "Kufuta kurasa",
        "right-bigdelete": "Kufuta kurasa zenye mabadiliko mengi",
+       "right-deletelogentry": "Kufuta na kutofuta maingizo maalum ya kumbukumbu",
        "right-deleterevision": "Kufuta na kurudisha mapitio fulani ya kurasa",
        "right-deletedhistory": "Kutazama kumbukumbu za historia zilizofutwa, bila kuona maandiko yaliyomo",
        "right-deletedtext": "Kutazama maandishi yaliyofutwa na mabadiliko kati ya mapitio yaliyofutwa",
        "right-browsearchive": "Kutafuta kwenye kurasa zilizofutwa",
        "right-undelete": "Kurudisha ukurasa uliofutwa",
-       "right-suppressrevision": "Kuangalia na kurudisha mapitio yaliyofichwa kwa wakabidhi",
+       "right-suppressrevision": "Tazama, ficha na fichua mapitio maalum ya kurasa kutoka kwa mtumiaji yoyote",
+       "right-viewsuppressed": "Tazama toleo zilizofichiwa mtimiaji yeyote",
        "right-suppressionlog": "Kutazama kumbukumbu za faragha",
        "right-block": "Kuwazuia watumiaji wengine wasihariri",
        "right-blockemail": "Kumzuia mtumiaji asitume barua-pepe",
        "right-hideuser": "Kuzuia jina la mtumiaji, lisionekane mbele ya kadamnasi",
-       "right-protect": "Badilisha viwango vya ulinzi na hariri kurasa zilizolindwa",
+       "right-unblockself": "Ondoa kizuizi mwenyewe",
+       "right-protect": "Badilisha viwango vya ulinzi na hariri kurasa za kuteleza zilizolindwa",
+       "right-editprotected": "Hariri kurasa zilizozuliliwa kama \"{{int:protect-level-sysop}}\"",
+       "right-editsemiprotected": "Hariri kurasa zilizozuiwa kama \"{{int:protect-level-autoconfirmed}}\"",
+       "right-editcontentmodel": "Hariri yaliyomo katika ukurasa",
        "right-editinterface": "Kuhariri kusano ya mtumiaji",
        "right-editusercssjs": "Hariri mafaili ya CSS na Hatijava ya watumiaji wengine",
        "right-editusercss": "Hariri mafaili ya CSS ya watumiaji wengine",
        "right-edituserjs": "Hariri mafaili ya JavaScript ya watumiaji wengine",
+       "right-editmyusercss": "Hariri faili zako za CSS",
+       "right-editmyuserjs": "Hariri faili zako za HatiJava",
+       "right-viewmywatchlist": "Tazama orodha yako ya maangalizi",
+       "right-editmywatchlist": "Hariri orodha yako mwenyewe ya maangalizi.Angalia baadhi ya hatua bado zitaongeza kurasa hata bila haki hii.",
+       "right-viewmyprivateinfo": "Tazama data yako ya faragha (Kwa mfano barua pepe, jina la ukweli)",
+       "right-editmyprivateinfo": "Hariri data yako ya faragha (Kwa mfano barua pepe, jina halisi)",
        "right-editmyoptions": "Hariri mapendekezo yako binafsi",
+       "right-markbotedits": "Weka alama kwa masasahisho yaliyofanywa kama hari za roboti",
+       "right-noratelimit": "Haiathiriki na kiwango cha mipaka",
        "right-import": "Kuleta kurasa kutoka kwa wiki zingine",
        "right-importupload": "Ingiza kurasa kutoka kwa faili lililopakiwa",
+       "right-patrol": "Weka alama kwamba hariri zingine zimepitiwa",
+       "right-autopatrol": "Fanya mahariri yako mwenyewe kuwekwa alama kiotomatiki kama yalipitiwa",
+       "right-patrolmarks": "Angalia mabadiliko ya hivi karibuni alama doria",
        "right-unwatchedpages": "Kutazama orodha ya kurasa zisizofuatiliwa",
        "right-mergehistory": "Kuunganisha historia ya kurasa zingine",
        "right-userrights": "Kubadilisha wezo zote za watumiaji",
        "right-userrights-interwiki": "Kuhariri wezo za watumiaji kwenye wiki zingine",
        "right-siteadmin": "Kufunga na kufungua hifadhidata",
+       "right-override-export-depth": "Kuuza nje kurasa ikiwa ni pamoja na kurasa zilizounganishwa hadi kina cha 5",
        "right-sendemail": "Kutuma barua-pepe kwa watumiaji wengine",
        "right-passwordreset": "Onesha barua pepe zinazoweka neno la siri upya",
+       "right-managechangetags": "Unda na ufute [[Special:Tags|tags]] kutoka kwa hifadhidata",
+       "right-applychangetags": "Weka [[Special:Tags|tags]] pamoja na mabadiliko yangu",
        "newuserlogpage": "Kumbukumbu za kuanzisha akaunti za watumiaji",
        "newuserlogpagetext": "Hii ni kumbukumbu ya akaunti mpya zilizosajiliwa.",
        "rightslog": "Kumbukumbu za vyeo vya watumiaji",
        "action-createpage": "kuanzisha kurasa",
        "action-createtalk": "kuanzisha kurasa za majadiliano",
        "action-createaccount": "kusajili akaunti hii ya mtumiaji",
+       "action-history": "Tazama historia ya ukurasa huu",
        "action-minoredit": "kutia alama ya badiliko dogo",
        "action-move": "kuhamisha ukurasa huu",
        "action-move-subpages": "kuhamisha ukurasa huu, pamoja na kurasa zake ndogo",
        "action-move-rootuserpages": "kuhamisha kurasa za watumiaji",
+       "action-move-categorypages": "songeza kurasa za makundi",
        "action-movefile": "kuhamisha faili hili",
        "action-upload": "kupakia faili hili",
        "action-reupload": "kuandikiza faili lililopo tayari",
        "action-suppressionlog": "kutazama kumbukumbu za faragha",
        "action-block": "kumzuia mtumiaji huyu asihariri",
        "action-protect": "badilisha viwango vya ulinzi vya ukurasa huu",
-       "action-import": "kuleta ukurasa huu kutoka kwa wiki nyingine",
-       "action-importupload": "Ingiza ukurasa huu kutoka kwa faili lilopakiwa",
+       "action-import": "Leta kurasa kutoka kwa wiki nyingine",
+       "action-importupload": "Leta kurasa kutoka kwa faili iliyopakiwa",
        "action-unwatchedpages": "kutazama orodha ya kurasa zisizofuatiliwa",
        "action-mergehistory": "kuunganisha historia ya ukurasa huu",
        "action-userrights": "kubadilisha wezo zote za watumiaji",
        "action-viewmywatchlist": "angalia orodha ya maangalizi yako",
        "action-viewmyprivateinfo": "angalia habari yako binafsi",
        "action-editmyprivateinfo": "hariri habari yako binafsi",
+       "action-managechangetags": "unde na ufute lebo kutoka kwa hifadhidata",
+       "action-applychangetags": "weka lebo pamoja na mabadiliko yako",
+       "action-changetags": "ongeza ama utoe lebo za kiholela kwa matoleo na miingizo ya kumbukumbu",
        "nchanges": "{{PLURAL:$1|badiliko|mabadiliko}} $1",
+       "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|tabgu kutembea kwa mwisho}}",
        "enhancedrc-history": "historia",
        "recentchanges": "Mabadiliko ya karibuni",
        "recentchanges-legend": "Machaguo ya 'mabadaliko ya karibuni'",
        "recentchanges-summary": "Orodha ya mabadilisho yaliyofanywa katika {{SITENAME}} siku zilizopita.",
+       "recentchanges-noresult": "Hakuna mabadiliko wakati wa muda huo unaolingana na vigezo hivi.",
        "recentchanges-feed-description": "Tumia tawanyiko hili kufuatilia mabadiliko yote ya hivi karibuni katika Wiki.",
        "recentchanges-label-newpage": "Ukurasa mpya ulianzishwa hapo",
        "recentchanges-label-minor": "Hili ni badiliko dogo",
        "recentchanges-label-bot": "Sahihisho hili lilitekelezwa na bot",
        "recentchanges-label-unpatrolled": "Haririo hili bado halijafanyiwa doria",
-       "recentchanges-legend-newpage": "$1 - ukurasa mpya",
-       "rcnotefrom": "Hapo chini yaonekana mabadiliko tangu '''$2''' (tunaonyesha hadi '''$1''').",
+       "recentchanges-label-plusminus": "Ukubwa ukurasa kubadilishwa na hii idadi ya baiti",
+       "recentchanges-legend-heading": "'''Simulizi:'''",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (pia tazama [[Special:NewPages|orodha ya kurasa mpya]])",
+       "rcnotefrom": "Hapo chini {{PLURAL:$5|is the change|yaonekana mabadiliko}} tangu <strong>$3,$4</strong> (hadi <strong>$1</strong>tunaonyesha).",
        "rclistfrom": "Onyesha mabadiliko mapya kuanzia $3 $2",
        "rcshowhideminor": "$1 mabadiliko madogo",
        "rcshowhideminor-show": "Onyesha",
        "rcshowhidebots": "roboti $1",
        "rcshowhidebots-show": "Onyesha",
        "rcshowhidebots-hide": "Ficha",
-       "rcshowhideliu": "watumiaji $1 waliojisajili",
+       "rcshowhideliu": "watumiaji $1 waliosajiliwa",
        "rcshowhideliu-show": "Onyesha",
        "rcshowhideliu-hide": "Ficha",
        "rcshowhideanons": "$1 watumiaji bila majina",
        "number_of_watching_users_pageview": "[idadi ya {{PLURAL:$1|watumiaji}} wanaoufuatilia ni $1]",
        "rc_categories": "Chagua jamii zingine (uzitenge na kigawaji hiki \"|\")",
        "rc_categories_any": "Yoyote",
+       "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} baada ya mabadiliko",
        "newsectionsummary": "/* $1 */ mjadala mpya",
        "rc-enhanced-expand": "Onyesha maelezo",
        "rc-enhanced-hide": "Ficha maelezo mengine",
        "reuploaddesc": "Kubatilisha kupakia na kurudi kwenye fomu ya kupakia",
        "upload-tryagain": "Wasilisha maelezo ya faili lililobadilishwa",
        "uploadnologin": "Hujaingia",
-       "uploadnologintext": "Lazima [[Special:UserLogin|uingie akaunti yako]] ile upakie mafaili.",
+       "uploadnologintext": "Tafadhali $1 ili kupakia faili.",
+       "upload_directory_missing": "Saraka upakiaji ($1) inakosekana na haikuweza kuundwa kwa Seva ya mtandao.",
+       "upload_directory_read_only": "Saraka ya upakiaji ($1) haiwezi kuandikika katika seva ya mtandao.",
        "uploaderror": "Hitilafu ya kupia",
        "upload-recreate-warning": "'''Ilani: Faili lenye jina hilo limeshafutwa au limeshasogezwa.'''\n\nRejea kumbukumbu za kufuta au kuhamisha ukurasa huu zinazotolewa chini:",
        "uploadtext": "Tumia fomu hapo chini kwa kupakizia mafaili.\nKwa kutazama au kutafuta faili zilizopakiwa awali, tafadhali nenda kwenye [[Special:FileList|orodha ya mafaili yaliyopakiwa]]. Kwa zile faili ambazo zishapitiwa, basi angalia [[Special:Log/upload|kumbukumbu ya mafaili]]. Kwa mafaili yaliyofutwa, tafadhali [[Special:Log/delete|tazama hapa]].\n\nKwa kutumia faili katika makala, tumia moja kati ya viungo vifuatavyo:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Picha.jpg]]</nowiki></code>''' kwa kutumia toleo zima la faili\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Picha.png|200px|thumb|left|maelezo ya picha]]</nowiki></code>''' tumia pixel 200 kwa ukubwa mzuri na sehemu ya 'maelezo ya picha' ikiwa kama maelezo husika na picha iliyopo\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' kwa kuunga moja kwa moja bila kuonyesga faili",
-       "upload-permitted": "Aina ya mafaili yanayoruhusiwa: $1.",
-       "upload-preferred": "Aina za mafaili yaliyopendelewa: $1.",
-       "upload-prohibited": "Aina za mafaili yanayokataliwa: $1.",
+       "upload-permitted": "Faili iliyoruhusiwa {{PLURAL:$2|type|aina}}: $1.",
+       "upload-preferred": "Aina za faili iliyopendelewa {{PLURAL:$2|type|types}}: $1.",
+       "upload-prohibited": "Aina za faili iliyokataliwa {{PLURAL:$2|type|types}}: $1.",
        "uploadlogpage": "Kumbukumbu ya upakiaji",
        "uploadlogpagetext": "Hapo chini kuna orodha wa mafaili yaliyopakizwa hivi karibuni.\nTazama [[Special:NewFiles|mkusanyiko wa mafaili mapya]] kuona picha zenyewe.",
        "filename": "Jina la faili",
        "filename-tooshort": "Jina la faili ni fupi mno.",
        "filetype-banned": "Aina hili la faili haliruhusiwi.",
        "verification-error": "Faili hili halikupitishwa katika ukaguzi wa faili.",
+       "hookaborted": "Mabadiliko uliyojaribu kufanya yamekataliwa na ugani.",
        "illegal-filename": "Jina hilo la faili haliruhusiwi.",
        "overwrite": "Kuandikiza faili lililopo tayari hairuhusiwi.",
        "unknown-error": "Ilitokea hitilafu isiyojulikana.",
        "largefileserver": "Faili hili ni kubwa kuliko seva ilivyopangwa kuruhusu.",
        "emptyfile": "Faili ulilolipakia linaonekana kuwa tupu.\nHii huenda ikawa jina lake limeandikwa vibaya.\nTafadhali uhakikishe kwamba ni kweli unataka kupakia faili hili.",
        "windows-nonascii-filename": "Wiki hii haiwezi kutumia majina ya mafaili yenye herufi maalumu.",
-       "fileexists": "Faili lenye jina hili lipo tayari, tafadhali tazama <strong>[[:$1]]</strong> ikiwa una mashaka kuhusu kulibadilisha.\n[[$1|thumb]]",
+       "fileexists": "Faili lenye jina hili lipo tayari, tafadhali tazama <strong>[[:$1]]</strong> ikiwa {{GENDER:|una}} mashaka kuhusu kulibadilisha.\n[[$1|thumb]]",
        "filepageexists": "Ukurasa wa maelezo kwa ajili ya faili hili tayari umeshaanzishwa katika <strong>[[:$1]]</strong>, lakini hakuna faili lenye jina hili kwa sasa.\nMuhtasari utakaoandika hautaonekana katika ukurasa wa maelezo.\nKufanya muhtasari wako uonekana pale, utahitajika uhariri ukurasa kwa mikono.\n[[$1|thumb]]",
-       "fileexists-extension": "Faili lenye jina linalofanana nalo lipo tayari:[[$2|thumb]]\n* Jina la faili linalopakiwa: <strong>[[:$1]]</strong>\n* Jina la faili lililopo tayari: <strong>[[:$2]]</strong>\nTafadhali chagua jina lingine.",
+       "fileexists-extension": "Faili lenye jina linalofanana nalo lipo tayari:[[$2|thumb]]\n* Jina la faili unayopakia: <strong>[[:$1]]</strong>\n* Jina la faili iliyopo tayari: <strong>[[:$2]]</strong>\nJe ungetaka kuchagua jina lingine?",
        "fileexists-thumbnail-yes": "Faili linaonekana kuwa ni ''picha'' iliyopunguzwa ukubwa.\n[[$1|thumb]]\nTafadhali tazama faili la <strong>[[:$1]]</strong>.\nIkiwa faili hili linaonyesha picha ile ile kwa ukubwa wa kawaida hakuna haja ya kupakia faili lingine la picha ndogo.",
        "file-thumbnail-no": "Jina la faili linaanza na <strong>$1</strong>.\nInaonekana kuwa ni picha iliyopunguzwa ukubwa''(thumbnail)''.\nIkiwa unaoyo picha hii kwa ukubwa wa kawaida tafadhali pakia picha hii, vinginevyo tafadhali badilisha jina la faili.",
        "fileexists-forbidden": "Faili lenye jina hili lipo tayari, na haliwezi kuandikizwa.\nKama unataka kupakia faili lako, tafadhali rudia kwa kutumia jina lingine. [[File:$1|thumb|center|$1]]",
        "uploaddisabledtext": "Upakiaji wa mafaili umelemazwa.",
        "php-uploaddisabledtext": "Upakiaji wa mafaili umelemazwa katika PHP.\nTafadhali utazame kipimo cha file_uploads.",
        "uploadscripted": "Faili hili lina HTML au misimbo ambazo labda itaeleweka vibaya na kivinjari.",
+       "uploadscriptednamespace": "Faili ya SVG iko na jina batili \"$1\".",
+       "uploadinvalidxml": "XML katika faili iliyopakiwa haikuchanganuliwa.",
        "uploadvirus": "Faili lina kirusi!\nMaelezo mengine: $1",
        "uploadjava": "Faili ZIP hili lina faili Java .class humo ndani.\nHairuhusiki kupakia mafaili ya Java, kwa sababu yanawezesha kusababisha vizuio vya usalama kuzungukwa.",
        "upload-source": "Faili la chanzo",
        "upload-misc-error-text": "Hitilafu isiyojulikana ilitokea wakati wa kupakia.\nTafadhali uhakikishe kwamba URL ni halali na inafikika, halafu jaribu tena.\nTatizo likiendelea, uwasiliane na [[Special:ListUsers/sysop|mkabidhi]].",
        "upload-too-many-redirects": "URL ilikuwa na maelekezo mengi mno",
        "upload-http-error": "Imetokea hitilafu ya HTTP: $1",
+       "upload-copy-upload-invalid-domain": "Nakala ulivyopakia hazipatikani kwenye kikoa hiki.",
        "backend-fail-stream": "Haikuweza kutafuta faili \"$1\".",
+       "backend-fail-backup": "Haingeweka hifadhi rudufu ya faili \"$1\".",
        "backend-fail-notexists": "faili $1 haipo",
+       "backend-fail-hashes": "Hakuweza kupata hash za faili kwa ajili ya kulinganisha.",
+       "backend-fail-notsame": "Faili isiyofanana tayari ipo katika \"$1\".",
+       "backend-fail-invalidpath": "\"$1\" sio njia mwafaka ya kuhifadhi.",
        "backend-fail-delete": "Haikuweza kufuta faili \"$1\".",
+       "backend-fail-describe": "Haingebadilisha metadata ya faili \"$1\".",
        "backend-fail-alreadyexists": "Faili $1 linapatikana tayari.",
        "backend-fail-store": "Haikuweza kunakili faili \"$1\" kwa \"$2\".",
        "backend-fail-copy": "Haikuweza kunakili faili \"$1\" kwa \"$2\".",
        "backend-fail-closetemp": "Haikuweza kufunga faili ya muda.",
        "backend-fail-read": "Haikuweza kusoma faili \"$1\".",
        "backend-fail-create": "Haikuweza kuandika faili \"$1\".",
+       "backend-fail-maxsize": "Haingeadika katika faili \"$1\"  maana ni kubwa kuliko {{PLURAL:$2|one byte|baiti $2 }}.",
+       "lockmanager-notlocked": "Haiwezi kufungua \"$1\"; haijafungwa.",
+       "lockmanager-fail-closelock": "Haingeweza kufunga faili ya \"$1\".",
+       "lockmanager-fail-deletelock": "Haiwezi kufuta faili ya kufunga ya \"$1\".",
+       "lockmanager-fail-acquirelock": "Haiwezi pata kufuli ya \"$1\".",
+       "lockmanager-fail-openlock": "Haingefungua faili ya kufunga ya \"$1\".",
+       "lockmanager-fail-releaselock": "Haingewachilia kufuri ya \"$1\".",
        "zip-file-open-error": "Ilitokea hitilafu wakati wa kufungua faili kwa ajili ya ukaguzi wa ZIP.",
        "zip-wrong-format": "Faili lililotajwa si faili la ZIP.",
        "zip-bad": "Faili hili la ZIP limevurugika ama haliwezikusomeka.\nHaliwezi kukaguliwa vilivyo kwa sababu za kiusalama.",
        "zip-unsupported": "Faili hili la ZIP ambalo linatumia vipengele ambavyo haviungwi mkono na MediaWiki.\nHaliwezi kukaguliwa vilivyo kwa sababu za kiusalama.",
+       "uploadstash-clear": "Futa faili zilizofichwa",
+       "uploadstash-nofiles": "Hauna faili zilizofichwa.",
+       "uploadstash-errclear": "Kufuta faili hakukufaulu.",
        "uploadstash-refresh": "Zimua orodha ya mafaili",
        "img-auth-accessdenied": "Ruksa imekataliwa",
-       "img-auth-nologinnWL": "",
+       "img-auth-badtitle": "Haiwezi kuunda mada halali kutoka \"$1\".",
+       "img-auth-nologinnWL": "Haujaingia na \"$1\" haiko kwa orodha ya walioidhinishwa.",
        "img-auth-nofile": "Hakuna faili la \"$1\".",
        "img-auth-isdir": "",
+       "img-auth-streaming": "Inapeperusha \"$1\".",
        "img-auth-noread": "Mtumiaji hana fursa ya kusoma \"$1\".",
        "http-invalid-url": "URL batili: $1",
+       "http-invalid-scheme": "VISARA vyenye \"$1\" haviungwi mkono.",
        "http-request-error": "Ombi la HTTP limeshindikana kutokana na hitilafu isiyojulikana.",
        "http-read-error": "Hitilafu ya kusoma HTTP.",
        "http-timed-out": "Ombi la HTTP muda umepita.",
        "license": "Hatimiliki:",
        "license-header": "Hatimiliki",
        "nolicense": "Haikuchaguliwa",
+       "licenses-edit": "Hariri chagua za leseni",
        "license-nopreview": "(Hakikisho hakipatikani)",
        "upload_source_url": "(URL halali, inayopatikana kwa umma)",
-       "upload_source_file": "(faili kwenye tarakilishi yako)",
-       "listfiles-summary": "Ukurasa huu maalum unaonyesha mafaili yote yaliyopakiwa.\nIkichujwa na mtumiaji, toleo la mafaili pekee ambayo mtumiaji ameyapakia hivi karibuni ndiyo yatakayoonekana.",
+       "upload_source_file": "(faili uliyochagua kwenye tarakilishi yako)",
+       "listfiles-delete": "futa",
+       "listfiles-summary": "Ukurasa huu maalum unaonyesha mafaili yote yaliyopakiwa.",
        "listfiles_search_for": "Tafuta jina la faili:",
+       "listfiles-userdoesnotexist": "Akaunti \"$1\" ya mtumiaji haijasajiliwa.",
        "imgfile": "faili",
        "listfiles": "Orodha ya mafaili",
        "listfiles_thumb": "Picha ndogo",
        "listfiles_size": "Ukubwa",
        "listfiles_description": "Maelezo",
        "listfiles_count": "Matoleo",
+       "listfiles-show-all": "Jumuisha na toleo nzee za picha",
+       "listfiles-latestversion": "Toleo la sasa",
        "listfiles-latestversion-yes": "Ndiyo",
        "listfiles-latestversion-no": "Hapana",
        "file-anchor-link": "Faili",
        "uploadnewversion-linktext": "Pakia toleo jipya la faili hili",
        "shared-repo-from": "kutoka kwa $1",
        "shared-repo": "hifadhi ya pamoja",
+       "upload-disallowed-here": "Unaweza kuandika juu ya faili hii.",
        "filerevert": "Rejesha $1",
        "filerevert-legend": "Rejesha faili",
        "filerevert-intro": "Unataka kulirudisha faili la '''[[Media:$1|$1]]''' hadi [$4 pitio la saa $3, tarehe $2].",
        "download": "pakua",
        "unwatchedpages": "Kurasa zisizofuatiliwa",
        "listredirects": "Maelekezo",
+       "listduplicatedfiles": "orodhesha faili zenye marudio",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]] iko na [[$3|{{PLURAL:$2|a duplicate|marudio $2 }}]].",
        "unusedtemplates": "Vigezo ambavyo havitumiwi",
        "unusedtemplatestext": "Ukurasa huu unaorodhesha kurasa zote katika eneo la wiki la {{ns:template}} zisizowekwa ndani ya ukurasa mwingine.\nKumbuka kuhakikisha kwamba hakuna viungo vingine vinavyoelekea kigezo fulani kabla hujakifuta.",
        "unusedtemplateswlh": "viungo vingine",
        "randompage": "Ukurasa wa bahati",
        "randompage-nopages": "Hakuna kurasa katika {{PLURAL:$2|eneo la wiki lifuatalo|maeneo ya wiki yafuatayo}}: $1.",
+       "randomincategory": "Ukurasa wa bahati katika jamii",
+       "randomincategory-invalidcategory": "\"$1\" sio jina halali la jamii.",
+       "randomincategory-nopages": "Hakuna kurasa katika [[:Category:$1|$1]] jamii.",
+       "randomincategory-category": "Kundi:",
+       "randomincategory-legend": "Ukurasa wa bahati katika jamii",
        "randomredirect": "Elekezo la bahati",
        "randomredirect-nopages": "Hakuna maelekezo katika eneo la wiki la \"$1\".",
        "statistics": "Takwimu",
        "statistics-users": "[[Special:ListUsers|Watumiaji]] waliojisajiri",
        "statistics-users-active": "Watumiaji wanaofanya kazi",
        "statistics-users-active-desc": "Watumiaji waliofanya kazi katika siku {{PLURAL:$1|iliyopita|$1 zilizopita}}",
+       "pageswithprop": "Kurasa zenye sifa za ukurasa",
+       "pageswithprop-legend": "Kurasa zenye sifa za ukurasa",
+       "pageswithprop-text": "Ukurasa huu unairidhesha kurasa zenye sifa fulani ya ukurasa.",
        "pageswithprop-submit": "Nenda",
        "doubleredirects": "Maelekezo mawilimawili",
        "doubleredirectstext": "Ukurasa huu unaorodhesha kurasa zinazoelekeza kurasa zingine za kuelekeza.\nKatika kila mstari kuna viungo vinavyokwenda katika kurasa za kuelekeza zote mbili, pamoja na ukurasa wa mwishilio mwa elekezo la pili. Ukurasa huu wa mwishilio huwa ni ukurasa unaostahili kuelekezwa kutoka kwa ukurasa wa kuelekeza wa kwanza. Vitu <del>vilivyokatwa kwa mstari</del> vimeshatatuliwa.",
-       "double-redirect-fixed-move": "[[$1]] umehamishwa.\nSasa unaelekeza kwa [[$2]].",
+       "double-redirect-fixed-move": "[[$1]] umehamishwa.\nIlisasishwa kiaotomatiki na sasa utaelekezwa kwa [[$2]].",
        "double-redirect-fixed-maintenance": "Elekezo maradufu inarekebishwa kutoka [[$1]] kwenda [[$2]].",
        "double-redirect-fixer": "Boti ya kurekebisha maelekezo",
        "brokenredirects": "Maelekezo yenye hitilafu",
        "fewestrevisions": "Kurasa zenye mapitio machache kuliko zote",
        "nbytes": "{{PLURAL:$1|baiti|baiti}} $1",
        "ncategories": "{{PLURAL:$1|jamii|jamii}} $1",
+       "ninterwikis": "$1 {{PLURAL:$1|interwiki|baina ya wiki}}",
        "nlinks": "{{PLURAL:$1|kiungo|viungo}} $1",
        "nmembers": "{{PLURAL:$1|kitu|vitu}} $1",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|member|wanachama}}",
        "nrevisions": "{{PLURAL:$1|pitio|mapitio}} $1",
        "nviews": "{{PLURAL:$1|mtazamaji|mitazamaji}} $1",
        "nimagelinks": "Inatumika katika {{PLURAL:$1|ukurasa moja tu|kurasa $1}}",
        "wantedpages": "Kurasa zinazotakiwa",
        "wantedpages-badtitle": "Kichwa batili katika seti ya matokeo: $1",
        "wantedfiles": "Mafaili yanayokosekana",
+       "wantedfiletext-nocat-noforeign": "Faili zifuatazo zimetumika lakini hazipo.",
        "wantedtemplates": "Vigezo vinavyotakiwa",
        "mostlinked": "Kurasa zinazoungwa kuliko zote",
        "mostlinkedcategories": "Jamii zinazoungwa kuliko zote",
        "mostlinkedtemplates": "Vigezo vinavyoungwa kuliko zote",
        "mostcategories": "Kurasa zenye jamii kuliko zote",
        "mostimages": "Mafaili yanayoungwa kuliko yote",
+       "mostinterwikis": "Kurasa zenye baina ya wiki",
        "mostrevisions": "Kurasa zenye mapitio mengi kuliko zote",
        "prefixindex": "Kurasa zote zenye viambishi awali",
        "prefixindex-namespace": "Kurasa zote zenye kiambishi awali ($1)",
        "protectedpages": "Kurasa zinazolindwa",
        "protectedpages-indef": "Ulinzi kwa muda usiojulikana tu",
        "protectedpages-cascade": "Mpangilio wa ulindaji tu",
+       "protectedpages-noredirect": "Ficha vielekezo",
        "protectedpagesempty": "Hakuna kurasa zinazolindwa kwa sasa kwa vigezo hivi.",
+       "protectedpages-timestamp": "Tarehe na saa",
        "protectedpages-page": "Ukurasa",
+       "protectedpages-expiry": "Itakwisha",
+       "protectedpages-performer": "Inalinda mtumiaji",
+       "protectedpages-params": "Vigezo vya ulinzi",
        "protectedpages-reason": "Sababu",
        "protectedpages-unknown-timestamp": "Haijulikani",
        "protectedpages-unknown-performer": "Mtumiaji asiyejulikana",
        "listusers": "Orodha ya Watumiaji",
        "listusers-editsonly": "Onyesha watumiaji wenye kuhariri tu",
        "listusers-creationsort": "Panga kwa tarehe ya kuanzishwa",
+       "listusers-desc": "Ratibu kulingana na utaratibu wa kushuka",
        "usereditcount": "{{PLURAL:$1|haririo|maharirio}} $1",
        "usercreated": "{{GENDER:$3|Iliwekewa}} saa $2 tarehe $1",
        "newpages": "Kurasa mpya",
        "movethispage": "Hamisha ukurasa huu",
        "unusedcategoriestext": "Kurasa za jamii zifuatazo zinapatikana, ingawaje hakuna ukurasa wala jamii nyingine inayotumia kurasa hizi.",
        "notargettitle": "Hakuna lengo",
+       "nopagetitle": "Hakuna ukurasa uliolengwa kama huo",
        "pager-newer-n": "{{PLURAL:$1|1 ya karibu zaidi|$1 ya karibu zaidi}}",
        "pager-older-n": "{{PLURAL:$1|$1 ya zamani zaidi}}",
        "suppress": "Uangalizi",
+       "apihelp": "Usaisiz wa API",
+       "apihelp-no-such-module": "Moduli \"$ 1\" haikupatikana.",
        "booksources": "Vyanzo vya vitabu",
        "booksources-search-legend": "Tafuta mahali panopopatikana kitabu",
+       "booksources-search": "Tafuta",
        "booksources-invalid-isbn": "ISBN iliyoandikwa haonekani kuwa halali; hakikisha kwamba ni sawa na chanzo halisi cha ISBN.",
        "specialloguserlabel": "Mtendaji:",
        "speciallogtitlelabel": "Kusudio (jina la ukurasa au mtumiaji):",
        "listgrouprights-addgroup-self-all": "Kuongeza makundi yote katika akaunti ya binafsi",
        "listgrouprights-removegroup-self-all": "Kuondoa makundi yote kutoka akaunti ya binafsi",
        "trackingcategories-name": "Kichwa cha ujumbe",
+       "trackingcategories-nodesc": "Hakuna maelezo yamepatikana.",
+       "trackingcategories-disabled": "Kikundi kimelemazwa",
        "mailnologin": "Hakuna anwani wa kutuma",
        "mailnologintext": "Ukitaka kutuma barua pepe kwa watumiaji wengine inabidi uwe [[Special:UserLogin|umeshaingia kwenye akaunti yako]] na pia uwe na anwani ya barua pepe sahihi pale [[Special:Preferences|mapendekezo yako]].",
        "emailuser": "Mtumie mtumiaji huyu barua pepe",
        "watchnologin": "Hujaingia",
        "addwatch": "Ongeza kwenye orodha ya maangalizi",
        "addedwatchtext": "Ukurasa \"[[:$1]]\" umewekwa kwenye [[Special:Watchlist|maangalizi]] yako.\nMabadiliko katika ukurasa huo na ukurasa wake wa majadiliano utaonekana hapo.",
+       "addedwatchtext-short": "Ukurasa \"$1\" umeongezwa katika orodha yako ya mangalio.",
        "removewatch": "Ondoa kutoka orodha ya maangalizi",
        "removedwatchtext": "Ukurasa \"[[:$1]]\" umeondoshwa kutoka katika [[Special:Watchlist|maangalizi yako]].",
+       "removedwatchtext-short": "Ukurasa \"$1\" umetolewa kutoka orodha yako ya mangalio.",
        "watch": "Fuatilia",
        "watchthispage": "Fuatilia ukurasa huu",
        "unwatch": "Acha kufuatilia",
        "unwatchthispage": "Acha kufuatilia",
        "notanarticle": "Ukurasa nje ya kusudi ya wiki",
        "notvisiblerev": "Haririo ya mwisho, iliotendwa na mtumiaji mwingine, imefutwa",
-       "watchlist-details": "Unafuatilia {{PLURAL:$1|ukurasa $1|kurasa $1}} bila kuzingatia kurasa za majadiliano.",
-       "wlheader-enotif": "Huduma ya kuarifu kwa barua pepe imewezeshwa.",
-       "wlheader-showupdated": "Kurasa zilizobadilika tangu ulivyotembelea mara ya mwisho zinaonyeshwa katika hali ya '''kukooza'''",
+       "watchlist-details": "{{PLURAL:$1|ukurasa $1|kurasa $1}} bkatika orodha ya maangalio, bila kuhesabu kurasa za maongeo.",
+       "wlheader-enotif": "Huduma ya kuarifu kwa barua-pepe imewezeshwa.",
+       "wlheader-showupdated": "Kurasa zilizobadilika tangu ulivyotembelea mara ya mwisho zinaonyeshwa <strong>bold</strong>.",
        "wlnote": "{{PLURAL:$1|is the last change|Mabadiliko '''$1''' ya}} mwisho katika {{PLURAL:$2|hour|masaa '''$2''' yaliyopita yanaonyeshwa}} chini, ilivyokuwa saa $4, tarehe $3.",
        "wlshowlast": "Onyesha kutoka masaa $1 siku $2",
        "watchlist-options": "Hitiari za maangalizi",
        "prot_1movedto2": "alihamisha [[$1]] hadi [[$2]]",
        "protect-badnamespace-title": "Eneo la wiki lisiloweza kulindwa",
        "protect-badnamespace-text": "Kurasa zilizopo katika eneo hili la wiki haziwezi kulindwa",
+       "protect-norestrictiontypes-title": "Ukurasa hauwezi kulindwa",
        "protect-legend": "Hakikisha ukingo",
        "protectcomment": "Sababu:",
        "protectexpiry": "Itakwisha:",
        "undeletepagetitle": "'''Ifuatayo ni mapitio yaliyofutwa ya [[:$1|$1]]'''.",
        "viewdeletedpage": "Tazama kurasa zilizofutwa",
        "undelete-fieldset-title": "Kurudisha mapitio",
+       "undelete-nodiff": "Hakuna toleo la awali limepatikana.",
        "undeletebtn": "Rudisha",
        "undeletelink": "onyesha/rejesha",
        "undeleteviewlink": "tazama",
        "undelete-search-box": "Tafuta kwenye kurasa zilizofutwa",
        "undelete-search-prefix": "Onyesha kurasa kuanzia na:",
        "undelete-search-submit": "Tafuta",
+       "undelete-error": "Hitilafu ya kutfutua ukurasa",
        "undelete-error-short": "Hitilafu wakati wa kurudisha faili: $1",
-       "undelete-error-long": "Ilitokea hitilafu wakati wa kurudisha faili:\n\n$1",
+       "undelete-error-long": "Hitilafu zilitokea wakati wa kurudisha faili:\n\n$1",
        "undelete-show-file-submit": "Ndiyo",
        "namespace": "Chagua eneo la wiki:",
        "invert": "Geuza uteuzi",
        "unlockdbsuccesssub": "Kufungua hifadhidata kumefaulu",
        "lockdbsuccesstext": "Hifadhidata imefungwa.<br />\nKumbuka [[Special:UnlockDB|kuifungua tena]] baada ya kumaliza kuitengeneza.",
        "unlockdbsuccesstext": "Hifadhidata imefunguliwa.",
-       "databasenotlocked": "Hifadhidata haijafunguliwa.",
+       "databasenotlocked": "Hifadhidata haijafungwa.",
        "lockedbyandtime": "(kwa $1 saa $3 tarehe $2)",
        "move-page": "Hamisha $1",
        "move-page-legend": "Kuhamisha ukurasa",
        "movepagetalktext": "Ukurasa wa majadiliano wa ukurasa huu utasogezwa pamoja yake\n'''ila:'''\n*tayari kuna ukurasa wa majadiliano (usiyo tupu) kwenye jina jipya, au\n*ukifuta tiki katika kisanduku hapa chini.\n\nKama tayari kuna ukurasa au ukifuta tiki, itabidi usogeze au uunganishe ukurasa kwa mkono ukitaka.",
        "movearticle": "Ukurasa wa majadiliano wa ukurasa huu utasogezwa pamoja yake '''ila:'''\n*tayari kuna ukurasa wa majadiliano (usiyo tupu) kwenye jina jipya, au\n*ukifuta tiki katika kisanduku hapa chini.\n\nKama tayari kuna ukurasa au ukifuta tiki, itabidi usogeze au uunganishe ukurasa kwa mkono ukitaka.",
        "moveuserpage-warning": "'''Ilani:''' Unatarajia kuhamisha ukurasa wa mtumiaji. Tafadhali kumbuka kwamba ni ukurasa tu utakaohamishwa; jina la mtumiaji ''haitabadilishwa''.",
-       "movenologintext": "Lazima uwe mtumiaji uliyesajiliwa na [[Special:UserLogin|uliyeingizwa]] ili uhamishe ukurasa.",
+       "movenologintext": "Lazima uwe mtumiaji aliyesajiliwa na [[Special:UserLogin|uliyeingia]] ili uhamishe ukurasa.",
        "movenotallowed": "Huna ruhusa ya kuhamisha kurasa.",
-       "movenotallowedfile": "Huna ruhusa ya kuhamisha mafaili.",
-       "cant-move-user-page": "Huna fursa ya kuhamisha ukurasa wa mtumiaji (isopokuwa kurasa ndogo).",
+       "movenotallowedfile": "Hauna ruhusa ya kuhamisha faili.",
+       "cant-move-user-page": "Huna ruhusa ya kuhamisha kurasa za watumiaji (isopokuwa kurasa ndogo).",
        "cant-move-to-user-page": "Huna ruhusa ya kuhamisha ukurasa katika ukurasa wa mtumiaji (isipokuwa katika ukurasa mdogo wa mtumiaji).",
        "newtitle": "Kuelekeza jina jipya:",
        "move-watch": "Fuatilia ukurasa huu",
        "exif-datetime": "Tarehe na saa ya kubadilisha faili",
        "exif-imagedescription": "Jina la picha",
        "exif-make": "Mtengenezaji wa kamera",
-       "exif-model": "Aina ya<!--Mtindo wa--> kamera",
+       "exif-model": "Mtindo wa kamera",
        "exif-software": "Bidhaa pepe inayotumika",
        "exif-artist": "Mwandishi",
        "exif-copyright": "Mwenye hatimiliki",
        "exif-gpsaltituderef": "Rejeo ya mwinuko",
        "exif-gpsaltitude": "Mwinuko",
        "exif-gpsmeasuremode": "Jinsi ya kupima",
-       "exif-gpsspeedref": "Kizio cha kupima mwendo",
-       "exif-gpsspeed": "Mwendo wa sanduku la GPS",
+       "exif-gpsspeedref": "Kizio cha kupima kasi",
+       "exif-gpsspeed": "Kasi ya kipokeaji cha GPS",
        "exif-gpstrack": "Mwelekeo wa harakati",
        "exif-gpsimgdirection": "Mwelekeo wa picha",
        "exif-gpsdestlatitude": "Latitudo ya kikomo",
        "exif-gpsdestlongitude": "Longitudo ya kikomo",
-       "exif-gpsdestdistance": "Mbali wa kikomo",
+       "exif-gpsdestdistance": "Umbali wa kikomo",
        "exif-gpsareainformation": "Jina la eneo la GPS",
        "exif-gpsdatestamp": "Tarehe ya GPS",
-       "exif-jpegfilecomment": "Maoni juu ya faili la JPEG",
-       "exif-keywords": "Maneno yahusika",
+       "exif-jpegfilecomment": "Maoni juu ya faili ya JPEG",
+       "exif-keywords": "Maneno muhimu",
        "exif-worldregioncreated": "Eneo la dunia palipopigwa picha",
        "exif-countrycreated": "Nchi palipopigwa picha",
        "exif-countrycodecreated": "Msimbo wa nchi picha palipopigwa",
        "exif-citydest": "Mji umeonyeshwa",
        "exif-objectname": "Jina fupi",
        "exif-specialinstructions": "Maelekezo maalum",
-       "exif-headline": "Kichwa cha habari",
+       "exif-headline": "Kichwa",
        "exif-source": "Chanzo",
        "exif-urgency": "Umuhimu",
        "exif-writer": "Mwandishi",
        "exif-label": "Lebo",
        "exif-copyrighted": "Hali ya hakimiliki",
        "exif-copyrightowner": "Mwenye hatimiliki",
-       "exif-pngfilecomment": "Maoni juu ya faili la PNG",
+       "exif-pngfilecomment": "Maoni juu ya faili ya PNG",
        "exif-disclaimer": "Kanusho",
        "exif-contentwarning": "Ilani ya maduhui",
-       "exif-giffilecomment": "Maoni juu ya faili la GIF",
+       "exif-giffilecomment": "Maoni juu ya faili ya GIF",
        "exif-intellectualgenre": "Aina ya kifaa",
        "exif-personinimage": "Mtu aliyepigwa picha",
        "exif-copyrighted-true": "Yenye hatimiliki",
-       "exif-unknowndate": "Tarehe haijulikani",
+       "exif-unknowndate": "Tarehe isiyojulikana",
        "exif-orientation-1": "Kawaida",
        "exif-componentsconfiguration-0": "haipo",
        "exif-exposureprogram-0": "Haijafafanuliwa",
        "exif-gpsdop-poor": " Si nzuri ($1)",
        "exif-objectcycle-a": "Asubuhi tu",
        "exif-objectcycle-p": "Jioni tu",
-       "exif-objectcycle-b": "Asubuhi na jioni zote mbili",
+       "exif-objectcycle-b": "Asubuhi na jioni",
        "exif-gpsdirection-t": "Mwelekeo halisi",
        "exif-gpsdirection-m": "Mwelekeo wa sumaku",
        "exif-ycbcrpositioning-1": "Katikati",
        "fileduplicatesearch-result-n": "Faili la \"$1\" lina {{PLURAL:$2|kifani 1|vifani $2}}.",
        "fileduplicatesearch-noresults": "Faili linaloitwa \"$1\" halikupatikana.",
        "specialpages": "Kurasa maalum",
+       "specialpages-note-top": "Simulizi",
        "specialpages-note": "* Kurasa maalum za kawaida.\n* <span class=\"mw-specialpagerestricted\">Kurasa maalum zisizoonekana na wote.</span>\n* <span class=\"mw-specialpagecached\">Kurasa maalum zinazotoka \"cache\" (might be obsolete).</span>",
        "specialpages-group-maintenance": "Ripoti za kurekebisha na kutunza kurasa",
        "specialpages-group-other": "Kurasa maalum zingine",
        "htmlform-float-invalid": "Kitu ulichokiandika si namba.",
        "htmlform-int-toolow": "Namba uliyoiandika iko chini ya kiwango cha chini cha $1",
        "htmlform-int-toohigh": "Namba uliyoiandika iko juu ya kiwango cha juu cha $1",
-       "htmlform-required": "Ni lazima kujaza kitu hapa",
-       "htmlform-submit": "Wasilisha",
+       "htmlform-required": "Ni lazima kujaza kitu hapa.",
+       "htmlform-submit": "Kuwasilisha",
        "htmlform-reset": "Tengua mabadiliko",
        "htmlform-selectorother-other": "Nyingine",
        "htmlform-no": "Hapana",
        "htmlform-yes": "Ndiyo",
-       "logentry-delete-delete": "$1 alifuta ukurasa wa $3",
-       "logentry-delete-restore": "$1 alirudisha ukurasa wa $3",
-       "logentry-delete-event": "$1 alibadilisha hali ya kuonekana wazi ya {{PLURAL:$5|kumbukumbu $5}} katika $3: $4",
+       "logentry-delete-delete": "$1 {{GENDER:$2|alifuta}} ukurasa wa $3",
+       "logentry-delete-restore": "$1 {{GENDER:$2|alirudisha}} ukurasa wa $3",
+       "logentry-delete-event": "$1  {{GENDER:$2|alibadilisha}} hali ya kuonekana wazi ya {{PLURAL:$5|kumbukumbu $5}} katika $3: $4",
        "logentry-delete-revision": "$1 alibadilisha hali ya kuonekana wazi ya {{PLURAL:$5|pitio 1|mapitio $5}} kwenye ukurasa wa $3: $4",
        "logentry-delete-event-legacy": "$1 alibadilisha hali ya kuonekana wazi ya kumbukumbu za $3",
        "logentry-delete-revision-legacy": "$1 alibadilisha hali ya kuonekana wazi ya mapitio ya ukurasa $3",
-       "logentry-suppress-delete": "$1 alificha ukurasa wa $3",
+       "logentry-suppress-delete": "$1 {{GENDER:$2|alificha}} ukurasa wa $3",
        "logentry-suppress-event": "$1 alibadilisha kwa siri hali ya kuonekana wazi {{PLURAL:$5|kumbukumbu $5}} katika $3: $4",
        "logentry-suppress-revision": "$1 alibadilisha kwa siri hali ya kuonekana wazi {{PLURAL:$5|kumbukumbu $5 ya|kumbukumbu $5 za}} ukurasa wa $3: $4",
        "logentry-suppress-event-legacy": "$1 alibadilisha kwa siri hali ya kuonekana wazi ya kumbukumbu za $3",
-       "logentry-suppress-revision-legacy": "$1 alibadilisha kwa siri hali ya kuonekana wazi mapitio ya ukurasa $3",
+       "logentry-suppress-revision-legacy": "$1 {{GENDER:$2|alibadilisha}} kwa siri hali ya kuonekana wazi mapitio ya ukurasa $3",
        "revdelete-content-hid": "maudhui yamefichwa",
        "revdelete-summary-hid": "historia ya kuhariri imefichwa",
        "revdelete-uname-hid": "jina la mtumiaji limefichwa",
        "revdelete-uname-unhid": "jina la mtumiaji halijafichwa",
        "revdelete-restricted": "aliwazuia pia wakabidhi wasiyaone maelezo",
        "revdelete-unrestricted": "aliwarudishia wakabidhi uwezo wa kuona maelezo",
-       "logentry-move-move": "$1 alihamisha ukurasa wa $3 hadi $4",
-       "logentry-newusers-newusers": "$1 alianzisha akaunti ya mtumiaji",
-       "logentry-newusers-create": "$1 alianzisha akaunti ya mtumiaji",
+       "logentry-move-move": "$1 {{GENDER:$2|alihamisha}} ukurasa wa $3 hadi $4",
+       "logentry-newusers-newusers": "Akaunti ya mtumiaji $1 {{GENDER:$2|iliundwa}}",
+       "logentry-newusers-create": "Akaunti ya mtumiaji $1 {{GENDER:$2|iliundwa}}",
        "logentry-newusers-create2": "$1 alianzisha akaunti ya mtumiaji $3",
-       "logentry-newusers-autocreate": "Akaunti ya mtumiaji $1 ilianzishwa na mashine",
+       "logentry-newusers-autocreate": "Akaunti ya mtumiaji $1 {{GENDER:$2|ilianzishwa}} na mashine",
        "rightsnone": "(hana)",
        "revdelete-summary": "muhtasari wa kuhariri",
-       "feedback-adding": "Maoni yako yanaongezwa katika ukurasa...",
+       "feedback-adding": "Maoni yanaongezwa katika ukurasa...",
        "feedback-back": "Rudi",
        "feedback-cancel": "Batilisha",
        "feedback-close": "Tayari",
        "feedback-error-title": "Kosa",
-       "feedback-error1": "Hitilafu: Matokeo ya API hayafahamiki",
-       "feedback-error2": "Hitilafu: Hiririo halikufaulu",
-       "feedback-error3": "Hitilafu: API ya wiki haiitiki",
+       "feedback-error1": "Hitilafu: Hatokeo ya API hayafahamiki",
+       "feedback-error2": "Hitilafu: Hariri haikufaulu",
+       "feedback-error3": "Hitilafu: API ya wiki haitoi majibu",
        "feedback-message": "Ujumbe:",
        "feedback-subject": "Mada:",
        "feedback-submit": "Wasilisha",
        "api-error-illegal-filename": "Jina hilo la faili haliruhusiwi.",
        "api-error-unclassified": "Ilitokea hitilafu isiyojulikana.",
        "api-error-unknown-code": "Hitilafu isiyojulikana: \"$1\".",
-       "api-error-unknown-warning": "Ilani isiyojulikana: \"$1\".",
-       "api-error-unknownerror": "Hitilafu isiyojulikana: \"$1\".",
+       "api-error-unknown-warning": "Ilani isiojulikana: \"$1\".",
+       "api-error-unknownerror": "Hitlafu isiyojulikana: \"$1\".",
        "api-error-uploaddisabled": "Kupakia kumelemazwa katika wiki hii.",
        "duration-seconds": "{{PLURAL:$1|sekunde}} $1",
        "duration-minutes": "{{PLURAL:$1|dakika}} $1",
        "duration-weeks": "{{PLURAL:$1|wiki}} $1",
        "duration-years": "{{PLURAL:$1|mwaka|miaka}} $1",
        "duration-centuries": "{{PLURAL:$1|karne}} $1",
+       "limitreport-cputime": "Muda wa mtumizi ya CPU",
+       "limitreport-cputime-value": "$1 {{PLURAL:$1|second|sekunde}}",
+       "limitreport-walltime": "Matumizi ya hivi sasa",
+       "limitreport-walltime-value": "$1 {{PLURAL:$1|second|sekunde}}",
+       "expandtemplates": "Panua vigezo",
+       "expand_templates_input": "Ingiza mandishi",
+       "expand_templates_output": "Tokeo",
+       "expand_templates_xml_output": "Tokeo la XML",
        "expand_templates_ok": "Sawa",
+       "expand_templates_remove_comments": "Ondoa maoni",
        "expand_templates_preview": "Hakiki",
+       "pagelanguage": "Kichaguzi cha lugha ya ukurasa",
+       "pagelang-name": "Ukurasa",
+       "pagelang-language": "Lugha",
+       "pagelang-use-default": "Tumia lugha chaguo msingi",
+       "pagelang-select-lang": "Chagua lugha",
+       "right-pagelang": "Badilisha lugha ya ukurasa",
+       "action-pagelang": "badilisha lugha ya ukurasa",
+       "log-name-pagelang": "Badili lugha ya kumbukumbu",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (imewezeshwa)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''imelemazwa''')",
+       "mediastatistics": "Takwimu za media",
+       "mediastatistics-table-mimetype": "Aina ya MIME",
+       "mediastatistics-table-count": "Idadi ya mafaili",
+       "mediastatistics-table-totalbytes": "Ukubwa kwa pamoja",
+       "mediastatistics-header-unknown": "Haijulikani",
+       "mediastatistics-header-bitmap": "Picha za bitmap",
+       "mediastatistics-header-drawing": "Michoro (Picha za vector)",
+       "mediastatistics-header-office": "Ofisi",
+       "mediastatistics-header-text": "Maandishi",
+       "json-error-syntax": "Makosa ya kisintaksia",
+       "headline-anchor-title": "Weka kiungo cha sehemu hii",
        "special-characters-group-latin": "Kilatini",
        "special-characters-group-latinextended": "Kilatini kilichoongezwa",
        "special-characters-group-ipa": "Herufi za Fonetiki za Kimataifa (IPA)",
        "special-characters-group-persian": "Kiajemi",
        "special-characters-group-hebrew": "Kiyahudi",
        "special-characters-group-bangla": "Kibangla",
+       "special-characters-group-tamil": "\nKitamil",
        "special-characters-group-telugu": "Kitelugu",
        "special-characters-group-sinhala": "Kisinhala",
        "special-characters-group-gujarati": "Kigujarati",
+       "special-characters-group-devanagari": "Kidevanagari",
        "special-characters-group-thai": "Kitai",
        "special-characters-group-lao": "Kilao",
-       "special-characters-group-khmer": "Kikhmeri"
+       "special-characters-group-khmer": "Kikhmeri",
+       "special-characters-title-minus": "alama ya kutoa"
 }
index 812277b..881e620 100644 (file)
        "userlogin-yourname-ph": "Wszkryflej swoje mjano użytkowńika",
        "createacct-another-username-ph": "Wszkryflej mjano użytkowńika",
        "yourpassword": "Hasło:",
+       "userlogin-yourpassword": "Hasło",
        "userlogin-yourpassword-ph": "Wszkryflej swoje hasło",
        "createacct-yourpassword-ph": "Wszkryflej hasło",
        "yourpasswordagain": "Naszkryflej ausdruk zaś",
        "gotaccountlink": "Naloguj śe",
        "userlogin-resetlink": "Zapomńoł żeś dane lo nalogowańo?",
        "userlogin-resetpassword-link": "Ńy pamjyntosz hasła?",
+       "userlogin-helplink2": "Hilfa przi logůwańu",
        "userlogin-loggedin": "Zalogowano kej {{GENDER:$1|$1}}. Użyj formulara půńiżyj, coby zalogować śe kej inkszy używocz.",
        "userlogin-createanother": "Twůrz inksze kůnto",
        "createacct-emailrequired": "E-brif",
        "suspicious-userlogout": "Polecyńe wylogowańo uostoło uodćepńynte skiż tygo co wyglůnda, aże uostoło posłane bez uszkodzůna przeglůndarka abo buforujůncy serwer proxy.",
        "createacct-another-realname-tip": "Wszkryflańy twojigo mjana a nazwiska ńy je końyczne.\nKej bydźesz chćoł je podoć, bydům użyte, coby dokůmyntowoć Twoje autorstwo.",
        "pt-login": "Zaloguj sie",
+       "pt-login-button": "Zalogůj sie",
        "pt-createaccount": "Twōrz nowe konto",
+       "pt-userlogout": "Uodloguj śe",
        "php-mail-error-unknown": "Ńyznany feler we funkcyji mail()",
        "user-mail-no-addy": "Průba posłańo e‐brifa bez adresu uodbjorcy",
        "user-mail-no-body": "Bůła průba posłańo e-brifa uo blank abo krůtkim tekśće.",
        "currentrev": "Aktuelno wersyjo",
        "currentrev-asof": "Aktuelno wersyjo na dźyń $1",
        "revisionasof": "Wersyjo ze dńa $1",
-       "revision-info": "Wersyjo s dńa $1; $2",
+       "revision-info": "Wersyjo ze dńo $1 autorstwa {{GENDER:$6|$2}}$7",
        "previousrevision": "← starszo wersyjo",
        "nextrevision": "Nostympno wersyjo→",
        "currentrevisionlink": "Aktualno wersyjo",
        "revertmerge": "Uodkupluj",
        "mergelogpagetext": "Půńiżyj je lista uostatńich kuplowań historyji půmjyńań zajtůw.",
        "history-title": "Gyszichta sprowjyń \"$1\"",
+       "difference-title": "$1: Růżńice mjyndzy wersyjůma",
        "difference-multipage": "(Porůwnańy zajt)",
        "lineno": "Lińijo $1:",
        "compareselectedversions": "zrůwnej uobrane wersyje",
        "searchrelated": "podane",
        "searchall": "wszyjske",
        "showingresults": "To lista na keryj je {{PLURAL:$1|'''1''' wyńik|'''$1''' wyńikůw}}, sztartujůnc uod nůmery '''$2'''.",
+       "search-showingresults": "{{PLURAL:$4|Rezultat <strong>$1</strong> ze <strong>$3</strong>|Rezultaty <strong>$1 - $2</strong> ze <strong>$3</strong>}}",
        "search-nonefound": "Ńy mo wynikůw, kere uodpadajům kryterjům zapytańo.",
        "powersearch-legend": "Sznupańy zaawansowane",
        "powersearch-ns": "Sznupej we przestrzyńach mjan:",
        "rcnotefrom": "Půńiżej pokazano půmjyńańo zrobjůne pů <b>$2</b> (ńy wjyncyj kej <b>$1</b> pozycji).",
        "rclistfrom": "Ukoż půmjyńańa uod $3 $2",
        "rcshowhideminor": "$1 drobne půmjyńańa",
+       "rcshowhideminor-show": "Pokoż",
        "rcshowhideminor-hide": "Schrůń",
        "rcshowhidebots": "$1 boty",
        "rcshowhidebots-show": "Pokoż",
+       "rcshowhidebots-hide": "Schrůń",
        "rcshowhideliu": "$1 zaregisztrowanych",
        "rcshowhideliu-hide": "Schrůń",
        "rcshowhideanons": "$1 anůńimowych",
+       "rcshowhideanons-show": "Pokoż",
        "rcshowhideanons-hide": "Schrůń",
        "rcshowhidepatr": "$1 uowjerzůne",
        "rcshowhidemine": "$1 uody mje sprowjůne",
+       "rcshowhidemine-show": "Pokoż",
        "rcshowhidemine-hide": "Schrůń",
        "rclinks": "Ukoż uostatńe $1 sprowjyń bez uostatńe $2 dńi.<br />$3",
        "diff": "zmj.",
        "suppress": "Oversight",
        "booksources": "Kśůnžki",
        "booksources-search-legend": "Sznupej za zdrzůdłůma kśůnżkowymi",
+       "booksources-search": "Sznupej",
        "booksources-text": "Půńiżyj je lista uodnośńikůw do inkszych witryn, kere pośredńiczům we sprzedaży nowych a używanych buchůw, a tyż můgům mjeć dolsze informacyje uo poszukiwanym bez ćebje buchu.",
        "booksources-invalid-isbn": "Podany numer ISBN zostoł rozpoznany kej felerny. Sprowdź aże podany numer je zgodny s numerym kery je we zdrzůdle.",
        "specialloguserlabel": "Užytkowńik:",
        "watchlisttools-view": "Pokož wažńijše pomjyńańo",
        "watchlisttools-edit": "Pokož i zmjyńoj pozorliste",
        "watchlisttools-raw": "Zmjyńoj surowo pozorlista",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|dyskusyjo]])",
        "duplicate-defaultsort": "Pozůr: Zmjarkowanym kluczym sortowańo bydźe \"$2\" a zastůmpi uůn zawczasu używany klucz \"$1\".",
        "version": "Wersjo",
        "version-extensions": "Zainstalowane rozšeřyńa",
        "logentry-delete-delete": "$1 {{GENDER:$2|wyćepoł|wyćepała}} zajta $3",
        "revdelete-restricted": "naštaluj uograničyńo do administratorůw",
        "revdelete-unrestricted": "wycofej uograničyńo do administratorůw",
+       "logentry-move-move": "$1 {{GENDER:$2|przećep|przećepła}} zajta $3 do $4",
        "logentry-newusers-create": "Kůnto {{GENDER:$2|używocza}} $1 uostało stworzůne",
+       "logentry-upload-upload": "$1 {{GENDER:$2|posłoł|posłała}} $3",
        "rightsnone": "podstawowo",
        "revdelete-summary": "uopis pomjyńań",
        "searchsuggest-search": "Sznupej",
index 6befde3..9db8359 100644 (file)
@@ -38,7 +38,8 @@
                        "தமிழ்த்தம்பி",
                        "Macofe",
                        "AntanO",
-                       "கலைவாணன்"
+                       "கலைவாணன்",
+                       "Mohammed Ammar"
                ]
        },
        "tog-underline": "இணைப்புகளுக்கு அடிக்கோடிடு",
@@ -55,6 +56,7 @@
        "tog-watchdefault": "நான் தொகுக்கும் பக்கங்கள் மற்றும் கோப்புகளை என் கவனிப்புப் பட்டியலில் சேர்",
        "tog-watchmoves": "நான் நகர்த்தும் பக்கங்கள் மற்றும் கோப்புகளை என் கவனிப்புப் பட்டியலில் சேர்.",
        "tog-watchdeletion": "நான் நீக்கும் பக்கங்கள் மற்றும் கோப்புகளை என் கவனிப்புப் பட்டியலில் சேர்",
+       "tog-watchrollback": "நான் பின்மாற்றம் செய்த எனது கவனிப்பு பட்டியலில் பக்கங்களை சேர்",
        "tog-minordefault": "இயல்பிருப்பாக அனைத்து தொகுப்புகளையும் சிறியது எனக் குறித்துக்கொள்.",
        "tog-previewontop": "தொகுப்புப் பெட்டிக்கு முன்பு முன்தோற்றத்தைக் காட்டு",
        "tog-previewonfirst": "முதல் தொகுப்பில் முன்தோற்றத்தைக் காட்டு",
@@ -65,7 +67,7 @@
        "tog-shownumberswatching": "கவனிக்கும் பயனர்களின் எண்ணிக்கையைக் காட்டவும்",
        "tog-oldsig": "நடப்பு கையொப்பம்:",
        "tog-fancysig": "வெற்றுக் கையொப்பம் (தானியங்கி இணைப்பின்றி)",
-       "tog-uselivepreview": "நேரடி முன்தோற்றத்தைப் பயன்படுத்துங்கள் (சோதனையிலுள்ளது)",
+       "tog-uselivepreview": "நேரடி முன்தோற்றத்தைப் பயன்படுத்து (சோதனையிலுள்ளது)",
        "tog-forceeditsummary": "தொகுப்புச் சுருக்கம் வெற்றாக இருக்கும் போது எனக்கு நினைவூட்டு",
        "tog-watchlisthideown": "எனது தொகுப்புக்களைக் கவனிப்புப் பட்டியலிலிருந்து மறை",
        "tog-watchlisthidebots": "தானியங்கித் தொகுப்புக்களைக் கவனிப்புப் பட்டியலிலிருந்து மறை",
        "permalink": "நிலையான இணைப்பு",
        "print": "அச்சிடு",
        "view": "பார்வையிடு",
+       "view-foreign": "$1 இல் பார்",
        "edit": "தொகு",
+       "edit-local": "தன்விவரத்தை திருத்து",
        "create": "உருவாக்கு",
+       "create-local": "தன்னிட விளக்கத்தை சேர்",
        "editthispage": "இப்பக்கத்தைத் தொகு",
        "create-this-page": "இப்பக்கத்தை உருவாக்கு",
        "delete": "நீக்கவும்",
        "jumptonavigation": "வழிசெலுத்தல்",
        "jumptosearch": "தேடுக",
        "view-pool-error": "பொறுத்தருள்க, அனைத்து வழங்கிகளும் தற்போது மிகுபயன்பாட்டில் உள்ளன.\nபல பயனர்கள் இப்பக்கத்தைப் பார்க்க விழைகின்றனர்.\nநீங்கள் மறுபடியும் இப்பக்கத்தை அணுக முயலும் முன் சற்றே பொறுக்கவும்.\n\n$1",
+       "generic-pool-error": "பொறுத்தருள்க, அனைத்து வழங்கிகளும் தற்போது மிகுபயன்பாட்டில் உள்ளன.\nபல பயனர்கள் இதனைப் பார்க்க விழைகின்றனர்.\nநீங்கள் மறுபடியும் இப்பக்கத்தை அணுக முயலும் முன் சற்றே பொறுக்கவும்.",
        "pool-timeout": "நேரம் முடிந்துவிட்டது. பூட்ட காத்திருக்கிறது.",
        "pool-queuefull": "பணி வரிசையில் இடம் இல்லை",
        "pool-errorunknown": "அறியப்படாத தவறு",
+       "pool-servererror": "pool counter சேவை தற்போது கிடைக்கவில்லை ($1).",
+       "poolcounter-usage-error": "பயன்பாட்டு வழு: $1",
        "aboutsite": "{{SITENAME}} பற்றி",
        "aboutpage": "Project:விவரம்",
        "copyright": "குறிக்கப்படப்படாவிட்டால் உள்ளடக்கங்கள் $1 இன் கீழ் கிடைக்கின்றன.",
        "disclaimers": "பொறுப்புத் துறப்புகள்",
        "disclaimerpage": "Project:பொதுவான பொறுப்புத் துறப்புகள்",
        "edithelp": "தொகுத்தலுக்கான உதவி",
+       "helppage-top-gethelp": "உதவி",
        "mainpage": "முதற் பக்கம்",
        "mainpage-description": "முதற் பக்கம்",
        "policy-url": "Project:கொள்கை",
        "youhavenewmessagesfromusers": "உங்களுக்கு $1 {{PLURAL:$3|வேறொரு பயனரிடம்|$3 பயனர்களிடம்}} இருந்து உள்ளது ($2).",
        "youhavenewmessagesmanyusers": "உங்களுக்கு பல பயனர்களிடமிருந்து $1 பதிய செய்திகள்  உள்ளன ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|ஒரு புதிய செய்தி|999=புதிய செய்திகள்}}",
-       "newmessagesdifflinkplural": "கடைசி {{PLURAL:$1|மாற்றம்|மாற்றங்கள்}}",
+       "newmessagesdifflinkplural": "கடைசி {{PLURAL:$1|மாற்றம்|999=மாற்றங்கள்}}",
        "youhavenewmessagesmulti": "$1 இல் உங்களுக்கு புதிய செய்திகள் காத்திருக்கின்றன",
        "editsection": "தொகு",
        "editold": "தொகு",
        "hidetoc": "மறை",
        "collapsible-collapse": "சுருக்கு",
        "collapsible-expand": "விரிவாக்கு",
+       "confirmable-confirm": "{{GENDER:$1|நீங்கள்}} உறுதியாக உள்ளீரா?",
        "confirmable-yes": "ஆம்",
        "confirmable-no": "இல்லை",
        "thisisdeleted": "$1 பார்க்கவா அல்லது மீள்விக்கவா?",
        "nospecialpagetext": "<strong>நீங்கள் செல்லுபடியற்ற சிறப்புப் பக்கமொன்றை கோரியிருக்கிறீர்கள்.</strong>\n\nசெல்லுபடியான எல்லாச் சிறப்புப் பக்கங்களின் பட்டியல் [[Special:SpecialPages|இங்கே]] தரப்பட்டுள்ளது.",
        "error": "தவறு",
        "databaseerror": "தரவுத்தள தவறு",
+       "databaseerror-text": "தரவுதள வினவல் வழு ஏற்பட்டுள்ளது.\nஇது மென்பொருள் பிழையைக் குறிக்கலாம்.",
+       "databaseerror-textcl": "தரவுதள வினவல் பிழை ஏற்பட்டுள்ளது.",
+       "databaseerror-query": "வினவல்: $1",
+       "databaseerror-function": "செயற்கூறு: $1",
+       "databaseerror-error": "பிழை: $1",
        "laggedslavemode": "எச்சரிக்கை: இப்பக்கம் அண்மையில் இற்றைப்படுத்தப்படாமல் இருக்கலாம்.",
        "readonly": "தரவுத்தளம் பூட்டப்பட்டுள்ளது",
        "enterlockreason": "பூட்டுக்கான காரணத்தைத் தருக. பூட்டு எப்பொழுது திறக்கப்படும் என்பதையும் குறிப்பிடுக.",
        "readonly_lag": "இரண்டாம் நிலை தரவுத்தளங்கள் தலைமை தரவுத்தளத்துடன் இணைந்துக் கொள்ளும் வரை தரவுத்தளம் தானியகக்மாக பூட்டப்பட்டுள்ளது",
        "internalerror": "உள்ளகத் தவறு",
        "internalerror_info": "உள்ளகத் தவறு: $1",
+       "internalerror-fatal-exception": "இடரார்ந்த விதிவிலக்கு வகை \"$1\"",
        "filecopyerror": "\"$1\" இலிருந்து \"$2\" க்கு கோப்பை நகல் செய்ய முடியவில்லை.",
        "filerenameerror": "\"$1\" இலிருந்து \"$2\" க்கு கோப்பை பெயர்மாற்ற முடியவில்லை.",
        "filedeleteerror": "\"$1\" கோப்பை நீக்க முடியவில்லை.",
        "directorycreateerror": "\"$1\" அடைவை உருவாக்க முடியவில்லை.",
+       "directoryreadonlyerror": "கோப்பகம் \"$1\" படிக்க மட்டும் கூடியது.",
+       "directorynotreadableerror": "கோப்பகம் \"$1\" படிக்க முடியாதது.",
        "filenotfound": "\"$1\" கோப்பைக் கண்டுபிடிக்க முடியவில்லை.",
        "unexpected": "எதிர்பாராத பெறுமானம்: \"$1\"=\"$2\".",
        "formerror": "தவறு: படிவத்தை சமர்ப்பிக்க முடியவில்லை",
        "cannotdelete": "\"$1\" பக்கத்தையோ கோப்பையோ நீக்க முடியாது. (வேறு யாராலோ ஏற்கெனவே நீக்கப்பட்டிருக்கலாம்.)",
        "cannotdelete-title": "\"$1\" பக்கத்தை நீக்க முடியாது",
        "delete-hook-aborted": "நீக்கல்  hook ஆல் தடைசெய்யப்பட்டது.\nஅது எந்த விளக்கமும் அளிக்கவில்லை.",
+       "no-null-revision": "பக்கம் \"$1\" க்கு வெற்று மீள்பார்வை உருவாக்க இயலாது",
        "badtitle": "பழுதுள்ள தலைப்பு",
        "badtitletext": "கோரப்பட்ட பக்கத்தின் தலைப்பு செல்லாது, வெறுமை, அல்லது பிழையாக இணைக்கப்பட்ட மொழிகளிடை அல்லது விக்கியிடைத் தலைப்பாகும்.",
+       "title-invalid-empty": "கேட்கப்பட்ட பக்கத் தலைப்பு காலியானது அல்லது பெயரிடைவெளியின் பெயரை மட்டும் கொண்டுள்ளது.",
+       "title-invalid-utf8": "கேட்கப்பட்ட பக்கத்தலைப்பு செல்லாத UTF-8 வரிசைமுறை கொண்டுள்ளது.",
+       "title-invalid-interwiki": "கேட்கப்பட்ட பக்கத்தலைப்பு தலைப்பில் பயன்படுத்த முடியாத ஒரு இடை விக்கி இணைப்பை கொண்டுள்ளது.",
+       "title-invalid-talk-namespace": "கேட்கப்பட்ட பக்கத்தலைப்பு இல்லாத ஒரு பேச்சுப்பக்கத்தை குறிக்கிறது.",
+       "title-invalid-characters": "கேட்கப்பட்ட பக்கத்தலைப்பு ஒரு செல்லாத எழுத்துரு கொண்டுள்ளது: \"$1\".",
+       "title-invalid-relative": "தலைப்பு ஒரு சார்பு பாதை கொண்டது. சார்பு பக்கத் தலைப்புகள் (./, ../) ஆகியவை செல்லாதவை, ஏனெனில் அவை பயனரின் உலாவியால் கையாளப்படும் போது அடிக்கடி தொடமுடியாமல் போகின்றன.",
+       "title-invalid-magic-tilde": "கேட்கப்பட்ட பக்கத்தலைப்பு செல்லாத அலைக்குறியீடு வரிசை கொண்டுள்ளது (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "கேட்கப்பட்ட பக்கத்தலைப்பு நீளமானது. அது UTF-8 குறியீட்டில் $1 {{PLURAL:$1|பைட்டை|பைட்டுகளை}} விட அதிகமாக இருக்கக்கூடாது.",
+       "title-invalid-leading-colon": "கேட்கப்பட்ட பக்கத்தலைப்பு ஒரு செல்லாத அரைப்புள்ளியை முதலில் கொண்டுள்ளது.",
        "perfcached": "பின்வரும் தரவுகள் இடைக்கிடங்கில் உள்ளன,  தரவுகள் புதுப்பித்தநிலையில் இல்லாமல் இருக்கலாம். அதிக அளவாக  {{PLURAL:$1|ஒரு முடிவு|$1 முடிவுகள்}} இடைக்கிடங்கில் இருக்கலாம்.",
        "perfcachedts": "பின்வரும் தரவுகள் இடைமாற்றைக் கொண்டுள்ளன, தரவுகள் கடைசியாக  $1 இல் புதுபிக்கப்பட்டுள்ளன.அதிகபட்சமாக {{PLURAL:$4|ஒரு முடிவு|$4 முடிவுகள்}} இடைமாற்றில் இருக்கலாம்.",
        "querypage-no-updates": "இப்பக்கத்துக்கான இற்றைப்படுத்தல்கள் செயலிழக்கச் செய்யப்பட்டுள்ளன. இங்கே உள்ளத் தரவுகள் தற்சமயம் இற்றைப்படுத்தப்படமாட்டாது.",
        "protectedpagetext": "இப்பக்கம் தொகுக்கப்படுவதையோ அல்லது பிற செயல்களைத் தவிர்ப்பதற்காகவோ பூட்டப்பட்டுள்ளது.",
        "viewsourcetext": "நீங்கள் இந்தப் பக்கத்தின் மூலத்தைப் பார்க்கவும் அதனை நகலெடுக்கவும் முடியும்:",
        "viewyourtext": "நீங்கள் இந்த பக்கத்திற்கான ''' உங்கள் திருத்தங்களுக்கான ''' மூலத்தைக் காணவும்  நகலெடுக்கவும் முடியும்.",
-       "protectedinterface": "இப்பக்கம் இம்மென் பொருளுக்கான பயனர் இடைமுக உரைகளை வழங்குகிறது, விசம தொகுப்புக்களை தவிர்ப்பதற்க்காக இப்பக்கம் பூட்டப்பட்டுள்ளது.",
-       "editinginterface": "'''எச்சரிக்கை:''' நீங்கள் இம்மென் பொருளுக்கான பயனர் இடைமுக உரைகளை வழங்கும் பக்கமொன்றை தொகுக்க முயற்சி செய்கிறீர்கள். இதில் செய்யப்படும் மாற்றங்கள் ஏனைய பயனர்களது பயனர் இடைமுகங்களிலும் மாற்றங்களை ஏற்படுத்தும். மொழிபெயர்ப்புகளுக்கு, அருள் கூர்ந்து மிடியாவிக்கி மொழிபெயர்ப்புத் திட்டமான [//translatewiki.net/wiki/Main_Page?setlang=ta பீட்டாவிக்கி] திட்டத்தை பயன்படுத்தவும்.",
+       "protectedinterface": "இப்பக்கம் இம்மென் பொருளுக்கான பயனர் இடைமுக உரைகளை வழங்குகிறது, விசம தொகுப்புக்களை தவிர்ப்பதற்க்காக இப்பக்கம் பூட்டப்பட்டுள்ளது.\nஅனைத்து விக்கியிலும் மொழிபெயர்ப்பைச் சேர்க்க அல்லது மாற்ற, தயவு செய்து [//translatewiki.net/ translatewiki.net], மீடியா விக்கியின் தன்மொழியாக்க திட்டம் பயன்படுத்துங்கள்.",
+       "editinginterface": "<strong>எச்சரிக்கை:</strong>நீங்கள் இம்மென் பொருளுக்கான பயனர் இடைமுக உரைகளை வழங்கும் பக்கமொன்றை தொகுக்க முயற்சி செய்கிறீர்கள். இதில் செய்யப்படும் மாற்றங்கள் ஏனைய பயனர்களது பயனர் இடைமுகங்களிலும் மாற்றங்களை ஏற்படுத்தும்.",
+       "translateinterface": "அனைத்து விக்கிகளிலும் மொழிபெயர்ப்பு சேர்க்க அல்லது மாற்ற, தயவு செய்து மீடியா விக்கி மொழிபெயர்ப்பு திட்டமான [//translatewiki.net/ translatewiki.net] ஐ பயன்படுத்துங்கள்.",
        "cascadeprotected": "படிநிலைக் காப்புக்குட்படுத்தப்பட்டுள்ள பின்வரும் {{PLURAL:$1|பக்கத்தில்|பக்கங்களில்}} இப்பக்கம் இணைக்கப் பட்டுள்ளமையால் இப்பக்கம் தொகுப்பதிலிருந்து காக்கப்பட்டுள்ளது:$2",
        "namespaceprotected": "'''$1''' பெயர்வெளியில் தொகுப்புக்களைச் செய்வதற்கு உங்களுக்கு அனுமதி கிடையாது.",
        "customcssprotected": "வேறு பயனர் ஒருவரின் தனிப்பட்ட அமைப்புகள் காணப்படுவதால் இப்பக்கத்தை தொகுக்க உங்களுக்கு அனுமதி கிடையாது.",
        "invalidtitle-unknownnamespace": "அறியப்படாத பெயரிடைவெளி $1 மற்றும் உரை $2 கொண்ட தலைப்பு செல்லாது",
        "exception-nologin": "புகுபதிகை செய்யப்படவில்லை.",
        "exception-nologin-text": "இந்த பக்கம் / செய்கை செய்ய அருள்கூர்ந்து புகுபதிகை செய்யவும்.",
+       "exception-nologin-text-manual": "இந்த பக்கத்தை அணுக அல்லது இயக்க தயவு செய்து $1.",
        "virus-badscanner": "சரியற்ற உள்ளமைவு: அறியப்படாத வைரஸ் வருடி: '' $1 ''",
        "virus-scanfailed": "வருடல் நடைபெறவில்லை (குறியீடு $1)",
        "virus-unknownscanner": "அறியப்படாத வைரசெதிர்ப்பு:",
        "gotaccountlink": "புகுபதிகை",
        "userlogin-resetlink": "உங்கள் புகுபதிகைக் குறிப்புகளை மறந்துவிட்டீர்களா?",
        "userlogin-resetpassword-link": "உங்கள் கடவுச் சொல்லை மறந்து விட்டீர்களா?",
+       "userlogin-helplink2": "உள்நுழைவதற்கு உதவி",
+       "userlogin-loggedin": "நீங்கள் {{GENDER:$1|$1}} ஆக புகுபதியவில்லை.\nகீழ் உள்ள படிவத்தை பயன்படுத்தி இன்னொரு பயனராக புகுபதிவு செய்க.",
        "userlogin-createanother": "மற்றொரு கணக்கு ஒன்றை உருவாக்கவும்",
        "createacct-emailrequired": "மின்னஞ்சல் முகவரி",
        "createacct-emailoptional": "மின்னஞ்சல் முகவரி (விருப்பத்தேர்வு)",
        "wrongpassword": "நீங்கள் கொடுத்த கடவுச்சொல் சரியன்று. மீண்டும் முயல்க.",
        "wrongpasswordempty": "நீங்கள் வெற்றுக் கடவுச் சொல்லை அளித்திருக்கிறீர்கள். திரும்ப முயலவும்.",
        "passwordtooshort": "கடவுச்சொற்களில் குறைந்தது {{PLURAL:$1|1 எழுத்து முதல் |$1 எழுத்துக்களாவது}} இருக்க வேண்டும்.",
+       "passwordtoolong": "கடவுச்சொற்கள் {{PLURAL:$1|1 எழுத்து|$1 எழுத்துக்களை}} விட அதிகமாக இருக்க முடியாது.",
        "password-name-match": "உங்கள் பயனர் பெயரிலிருந்து உங்கள் கடவுச்சொல் முற்றிலும் மாறுபட்டிருக்க வேண்டும்.",
        "password-login-forbidden": "இந்த பயனர்பெயர் மற்றும் கடவுச்சொல்லை உபயோகிப்பது தடைசெய்யப்பட்டுள்ளது.",
        "mailmypassword": "கடவுச்சொல்லை மீட்டமை",
        "createaccount-text": "யாரோ ஒருவர் உங்கள் மின்னஞ்சல் முவரிக்காக {{SITENAME}} ($4) தளத்தில் கணக்கொண்றை தொடங்கியுள்ளார். கணக்கின் பெயர் \"$2\", கடவுச்சொல் \"$3\". நீங்கள் இப்போது புகுபதிகைச் செய்து கடவுச்சொல்லை மாற்ற வேண்டும்.\n\nஇக்கணக்கு தவறுதலாக தொடங்கப்பட்டிருந்தால், இத்தகவலைப் புறக்கணிக்கலாம்.",
        "login-throttled": "தாங்கள் மிக அண்மையில் பலமுறை புகுபதிகை செய்ய முயற்சி செய்துள்ளீர்கள்.\n\nமீண்டும் முயற்சிக்கும் முன் $1 காத்திருக்கவும்.",
        "login-abort-generic": "உங்கள் உள்நுழைவு தோல்வியுற்றது - Aborted",
+       "login-migrated-generic": "உங்கள் கணக்கு நகர்த்தப்பட்டுள்ளது, மேலும் உங்கள் பயனர்பெயரில் இந்த விக்கியில் இல்லை.",
        "loginlanguagelabel": "மொழி: $1",
        "suspicious-userlogout": "உங்கள் விடுபதிகை கோரிக்கை மறுக்கப்பட்டது ஏனென்றால் அது அறுபட்ட உலாவி அல்லது மாற்று இடைக்கிடங்கியால் அனுப்பப்பட்டுள்ளது.",
        "createacct-another-realname-tip": "உண்மையான பெயர் கட்டாயமற்றது.\nநீங்கள் இதை கொடுத்தால் உங்கள் ஆக்கங்களுக்கான உரிமையளிப்புகளின் போது இது பயன்படும்.",
        "retypenew": "புதிய கடவுச்சொல்லை மீண்டும் தட்டச்சிடு",
        "resetpass_submit": "கடவுச்சொல்லை பதிவுசெய்து புகுபதிகை செய்",
        "changepassword-success": "உங்களது கடவுச்சொல் வெற்றிகரமாக மாற்றப்பட்டுள்ளது!",
+       "changepassword-throttled": "தாங்கள் மிக அண்மையில் பலமுறை புகுபதிகை செய்ய முயற்சி செய்துள்ளீர்கள்.\nமீண்டும் முயற்சிக்கும் முன் $1 காத்திருக்கவும்.",
        "resetpass_forbidden": "கடவுச்சொற்கள் மாற்றப்பட முடியாது",
        "resetpass-no-info": "இப்பக்கத்தை நேரடியாக அணுகுவதற்கு நீங்கள் புகுபதிகை செய்திருக்கவேண்டும்.",
        "resetpass-submit-loggedin": "கடவுச்சொல்லை மாற்று",
        "resetpass-submit-cancel": "விட்டுவிடு",
        "resetpass-wrong-oldpass": "செல்லுபடியற்ற தற்காலிகமான அல்லது நடப்புக் கடவுச்சொல்.\nஉங்கள் கடவுச் சொல்லை நீங்கள் வெற்றிகரமாக மாற்றிவிட்டீர்கள் அல்லது புதிய தற்காலிகக் கடவுச்சொல்லைக் கோரியுள்ளீர்கள்.",
+       "resetpass-recycled": "தயவுசெய்து தற்போது கடவுச்சொல் போன்று இல்லாமல் புதியாதக உங்கள் கடவுச்சொல்லை மாற்றுக.",
+       "resetpass-temp-emailed": "நீங்கள் தற்காலிகமாக மின்னஞ்சல் செய்யப்பட்ட குறியீடுடன் புகுபதிந்துள்ளீர்.\nபுகுபதிவை நிறைவு செய்ய, புதிய கடவுச்சொல்லை இங்கு உருவாக்குங்கள்:",
        "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}}\" அழுத்துங்கள்.",
        "passwordreset": "கடவுச்சொல்லை மீட்டமை",
        "passwordreset-text-one": "உங்கள் கடவுச்சொல்லை மீட்டமைக்க இந்த படிவத்தை நிறைவு செய்க.",
        "passwordreset-text-many": "{{PLURAL:$1|உங்கள் கடவுச்சொல்லை மீட்டமைக்க புலங்கள் ஒன்றினை நிரப்பவும்.}}",
        "passwordreset-emailelement": "பயனர் பெயர்:  $1\nதற்காலிகக் கடவுச்சொல்: $2",
        "passwordreset-emailsent": "கடவுச்சொல் மீட்டமைக்கும் மின்னஞ்சல் அனுப்பப்பட்டது.",
        "passwordreset-emailsent-capture": "கீழே காண்பிக்கப்பட்டுள்ளது போல் கடவுச்சொல் மீட்டமைக்கும் மின்னஞ்சல் அனுப்பப்பட்டது.",
-       "passwordreset-emailerror-capture": "கடவுச்சொல் மீட்டமைக்கும் மின்னஞ்சல்  உருவாக்கப்பட்டுவிட்டது, அது கீழே காட்டப்பட்டுள்ளது, ஆனால் பயனீட்டாளருக்கு அனுப்புவது தோல்வியடைந்தது:$1",
+       "passwordreset-emailerror-capture": "கடவுச்சொல் மீட்டமைக்கும் மின்னஞ்சல்  உருவாக்கப்பட்டுவிட்டது, அது கீழே காட்டப்பட்டுள்ளது, ஆனால் {{GENDER:$2|user}} அனுப்புவது தோல்வியடைந்தது:$1",
        "changeemail": "மின்னஞ்சல் முகவரியை மாற்று",
        "changeemail-text": "இந்த படிவத்தை உங்கள் மின்னஞ்சல் முகவரியை மாற்ற பூர்த்தி செய்யவும். நீங்கள் இந்த மாற்றத்தை உறுதிசெய்ய உங்கள் கடவுச்சொல்லை உள்ளிட வேண்டிவரும்.",
        "changeemail-no-info": "இப்பக்கத்தை நேரடியாக அணுகுவதற்கு நீங்கள் புகுபதிகை செய்திருக்கவேண்டும்.",
        "changeemail-none": "(எதுவுமில்லை)",
        "changeemail-password": "உங்கள் {{SITENAME}} கடவுச்சொல்:",
        "changeemail-submit": "மின்னஞ்சலை மாற்று",
+       "changeemail-throttled": "நீங்கள் பல புகுபதியும் முயற்சி செய்துள்ளீர்கள்.\nமீண்டும் முயற்சிக்கும் முன் தயவு செய்து $1 காத்திருக்கவும்.",
+       "resettokens": "வில்லைகளை மறுஅமை",
+       "resettokens-text": "இங்கு உங்கள் கணக்கின் தனிப்பட்ட தகவல்களுக்கு அணுகல் அளிக்கும் சீட்டுகளை புதுப்பிக்கலாம்.\n\nநீங்கள் அதனை எவருடனும் தவறுதலாக பகிர்ந்தாலோ அல்லது உங்கள் கணக்கு களவாடப்பட்டிருந்தாலோ கண்டிப்பாக செய்ய வேண்டும்.",
+       "resettokens-no-tokens": "புதுப்பிக்க எந்த சீட்டும் இல்லை.",
+       "resettokens-legend": "புதுப்பிப்பு சீட்டுகள்",
+       "resettokens-tokens": "வில்லைகள்:",
+       "resettokens-token-label": "$1 (தற்போதைய மதிப்பு: $2)",
+       "resettokens-watchlist-token": "[[Special:Watchlist|உங்கள் கவனிப்புப் பட்டியல் பக்களின் மாற்றத்திற்கான]] வலை ஓடைச் (Atom/RSS) சீட்டுகள்",
+       "resettokens-done": "சீட்டுகள் புதுப்பிப்பு.",
+       "resettokens-resetbutton": "தேர்தெடுத்த வில்லைகளை மறுஅமை",
        "bold_sample": "தடித்த எழுத்துக்கள்",
        "bold_tip": "தடித்த எழுத்து",
        "italic_sample": "சாய்வெழுத்து",
        "preview": "முன்தோற்றம்",
        "showpreview": "முன்தோற்றம் காட்டு",
        "showdiff": "மாற்றங்களைக் காட்டு",
+       "blankarticle": "<strong>எச்சரிக்கை:</strong> நீங்கள் வெற்றுப்பக்கத்தை உருவாக்குகிறீர்கள்.\n\"{{int:savearticle}}\" ஐ மீண்டும் அழுத்தினால், எந்த உள்ளடக்கமும் இன்றி பக்கம் உருவாக்கப்படும்.",
        "anoneditwarning": "<strong>எச்சரிக்கை:</strong> நீங்கள் புகுபதிகை செய்யவில்லை. நீங்கள் தொகுத்தால் உங்கள் ஐ.பி. முகவரி எல்லோருக்கும் தெரியும்படி இருக்கும். நீங்கள் <strong>[$1 புகுபதிகை செய்தாலோ]</strong> அல்லது <strong>[$2 புதிய கணக்கு உருவாக்கினாலோ]</strong>, பிற பயன்களோடு நீங்கள் செய்யும் தொகுப்புகள் உங்கள் பயனர் பெயரோடு தொடர்புப்படுத்திக்காட்டப்படும்.",
        "anonpreviewwarning": "நீங்கள் புகுபதிகை செய்யவில்லை. இந்த பக்கத்தை சேமித்தால் உஙகள் ஐ.பி. முகவரி இதன் வரலாற்றுப் பக்கத்தில் பதிவாகும்.",
        "missingsummary": "'''நினைவூட்டல்:''' நீர் தொகுப்புச் சுருக்கமொன்றைக் கொடுக்கவில்லை.\nஇன்னொரு முறை பக்கத்தை சேமி என்பதை அழுத்தினால் உங்கள் தொகுப்பு சுருக்கமெதுவுமில்லாமல் சேமிக்கப்படும்.",
+       "selfredirect": "<strong>எச்சரிக்கை:</strong> நீங்கள் இப்பக்கத்தை இதற்கே வழிமாற்றுகிறீர்கள்.\nநீங்கள் வழிமாற்றுக்கான இலக்கை தவறாக குறிப்பிட்டிருக்கலாம், அல்லது தவறான பக்கத்தை திருத்திக் கொண்டிருக்கலாம்.\n\"{{int:savearticle}}\" ஐ மீண்டும் அழுத்தினால், எவ்வகையிலாது வழிமாற்று உருவாக்கப்படும்.",
        "missingcommenttext": "கீழே சுருக்கமொன்றக் குறிப்பிடவும்.",
        "missingcommentheader": "'''நினைவூட்டல்:'''  தாங்கள் தொகுத்தற்கான சுருக்கமான உரையை கொடுக்கவில்லை.\n\nஇன்னொருமுறை 'சேமி' என்பதனை அழுத்தினால் எந்தவித சுருக்கமான உரையின்றி சேமிக்கப்படும்.",
        "summary-preview": "சுருக்க முன்தோற்றம்:",
        "subject-preview": "உட்பொருள்/தலைப்பு முன்தோற்றம்:",
+       "previewerrortext": "உங்கள் மாற்றங்களை முன்தோற்றம் காட்ட முயற்சிக்கும் போது பிழை ஏற்பட்டது.",
        "blockedtitle": "பயனர் தடுக்கப்பட்டுள்ளார்",
        "blockedtext": "'''உங்கள் பயனர் பெயர் அல்லது ஐ.பி. முகவரி தடுக்கப்பட்டுள்ளது.'''\n\n''$2'' காரணத்தை(களை)க் காட்டி $1 உங்களை தடை செய்துள்ளார்.\n\n* தடை தொடக்கம்: $8\n* தடை முடிவு: $6\n* தடை செய்யப்பட்டவர்: $7\n\n$1 பயனரையோ அல்லது வேறு [[{{MediaWiki:Grouppage-sysop}}|நிர்வாகி]] ஒருவரையோ அனுகி தடைப் பற்றி கலந்துரையாடலாம். 'இப் பயனருக்கு மின்னஞ்சல் செய்' என்ற வசதியை நீங்கள் பயன்படுத்துவதுலிருந்து தடைச் செய்யப்பட்டிருந்தாலோ அல்லது [[Special:Preferences|என் விருப்பத்தேர்வுகள்]] பக்கத்தில் இயங்குநிலையிலுள்ள மின்னஞ்சல் முகவரியை தராத போதோ பயனருக்கு மின்னஞ்சல் செய்ய முடியாது. உங்களது தற்போதைய ஐ.பி. முகவரி $3 மற்றும் தடை எண்  #$5 என்பவற்றை கேள்விகள் கேட்கும் போது கட்டாயம் குறிப்பிடவும்.",
        "autoblockedtext": "உங்கள் ஐ.பி. முகவரி தடை செய்யப்பட்டுள்ளது. அதே முகவரியைப் பயன்படுத்தித் தொக்குத்த யாரோ ஒரு பயனர் பின்வரும் காரணங்களுக்காகத் தடை செய்யப்பட்டுள்ளார். அதனால் உங்களால் தொகுக்க முடியவில்லை. அதற்கான காரணம் பின்வருமாறு:\n\n:''$2''\n\n* தடை தொடக்கம்: $8\n* தடை முடிவு: $6\n* தடை செய்யப்பட்டவர்: $7\n\n$1 எனும் பயனரையோ வேறு [[{{MediaWiki:Grouppage-sysop}}|நிர்வாகி]] ஒருவரையோ அனுகித் தடையைப் பற்றி கலந்துரையாடலாம்.\n\n\"இப் பயனருக்கு மின்னஞ்சல் செய்\" என்ற வசதியை நீங்கள் பயன்படுத்துவதிலிருந்து தடைச் செய்யப்பட்டிருந்தாலோ அல்லது [[Special:Preferences|என் விருப்பத்தேர்வுகள்]] பக்கத்தில் இயங்குநிலையிலுள்ள மின்னஞ்சல் முகவரியைத் தராதபோதோ பயனருக்கு மின்னஞ்சல் செய்ய முடியாது.\n\nஇதைப் பற்றிய உங்கள் கேள்விகளைக் கேட்கும்போது உங்களது தற்போதைய ஐ.பி. முகவரி $3 மற்றும் தடை எண் #$5 ஆகியவற்றைக் கட்டாயம் குறிப்பிடவும்.",
        "edit-gone-missing": "இப்பக்கத்தை நிகழ்நிலைப் படுத்தமுடியவில்லை.\nஇது நீக்கப்பட்டதாக இருக்கலாம்.",
        "edit-conflict": "முரண்பாடுகளைத் தொகுக்கவும்.",
        "edit-no-change": "வாசகங்களுக்கு எந்த மாற்றமும் செய்யப்படவில்லை என்பதனால் உங்கள் தொகுப்பு புறக்கணிக்கப்பட்டது.",
+       "postedit-confirmation-created": "இந்தப் பக்கம் உருவாக்கபட்டுள்ளது",
+       "postedit-confirmation-restored": "இந்தப் பக்கம் மீட்டமைக்கப்பட்டது.",
        "postedit-confirmation-saved": "உங்களது தொகுப்பு சேமிக்கப்பட்டது.",
        "edit-already-exists": "புதிய பக்கமொன்றை உருவாக்க முடியாது.\nஇப்பக்கம் ஏற்கனவே உள்ளது.",
        "defaultmessagetext": "இயல்பிருப்பு தகவல் உரை",
+       "content-failed-to-parse": "உள்ளடக்கம் $2 வகை $1 க்காக பாகுபடுத்தல் தோல்வி: $3",
        "invalid-content-data": "செல்லாத உள்ளடக்கத் தரவு",
        "content-not-allowed-here": "\"$1\" உள்ளடக்கம் [[$2]] பக்கத்தில் அனுமதிக்கப்படவில்லை.",
+       "editwarning-warning": "இந்த பக்கத்தை விட்டு செல்வது நீங்கள் ஏற்படுத்திய மாற்றங்களை இழக்க வழிவகுக்கும்.\nநீங்கள் புகுபதிந்திருந்தால், இந்த எச்சரிக்கையை உங்கள் விருப்பத்தேர்வில் உள்ள \"{{int:prefs-editing}}\" பகுதி மூலம் நீக்கலாம்.",
+       "editpage-notsupportedcontentformat-title": "உள்ளடக்க அமைப்பு ஆதரவில்லாதது",
+       "editpage-notsupportedcontentformat-text": "உள்ளடக்க அமைப்பு $1 ஆனது உள்ளடக்க வகை $2 ஆல் ஆதரிக்கப்படாதது.",
        "content-model-wikitext": "விக்கிஉரை",
        "content-model-text": "எளிய உரை",
        "content-model-javascript": "ஜாவா ஸ்கிரிப்ட்",
        "content-model-css": "சிஎஸ்எஸ்",
+       "content-json-empty-object": "காலி பொருள்",
+       "content-json-empty-array": "காலி அணி",
+       "duplicate-args-category": "வார்ப்புரு அழைப்பில் ஒத்த விவாதங்களை கொண்ட பக்கங்கள்",
+       "duplicate-args-category-desc": "இப்பக்கம் விவாதங்களின் ஒத்த வடிவங்களைப் பயன்படுத்தும் வார்ப்புருக்களை, எடுத்துக்காட்டக <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> or <code><nowiki>{{foo|bar|1=baz}}</nowiki></code> கொண்டுள்ளது.",
        "expensive-parserfunction-warning": "எச்சரிக்கை: இப்பக்கம் அதிகளவு இலக்கணப் பாகுபடுத்திச் சார்புகளைக் கொண்டுள்ளது.\n\nஇது $2 {{PLURAL:$2|சார்புக்கும்|சார்புகளுக்கும் }} குறைவான இலக்கணப் பாகுபடுத்திச் சார்புகளைக் கொண்டிருக்க வேண்டும், ஆனால் தற்போது இதில் {{PLURAL:$1|$1 சார்பு|$1 சார்புகள்}} உள்ளன.",
        "expensive-parserfunction-category": "அதிகளவு இலக்கணப் பாகுபடுத்திச் சார்புகளைக் கொண்ட பக்கங்கள்",
        "post-expand-template-inclusion-warning": "''' எச்சரிக்கை:'' ' வார்ப்புருக்கான அளவு மிக அதிகமாக உள்ளது.\nசில வார்ப்புருக்கள்  சேர்க்கப்பட மாட்டது.",
        "parser-template-recursion-depth-warning": "வார்ப்புரு மறுநிகழ்வு (recursion) ஆழம் வரம்பை மீறிவிட்டது ( $1 )",
        "language-converter-depth-warning": "மொழி மாற்றியின் ஆழம் வரம்பை மீறிவிட்டது ( $1 )",
        "node-count-exceeded-category": "பக்கங்கள் எங்கு முடிச்சு எண்ணிக்கை மிகவும் அதிகரித்துள்ளது",
+       "node-count-exceeded-category-desc": "இப்பக்கம் அதிகபட்ச முடிச்சு எண்ணிக்கையைத் தாண்டியது.",
        "node-count-exceeded-warning": "பக்க வரம்பை மீறிவிட்டது முடிச்சு எண்ணிக்கை",
        "expansion-depth-exceeded-category": "பக்கங்கள் எங்கு விரிவு ஆழம் மீறிவிட்டது",
+       "expansion-depth-exceeded-category-desc": "இந்த பக்கம் அதிகபட்ச விரிவு ஆழத்தைத் தாண்டியது",
        "expansion-depth-exceeded-warning": "விரிவு ஆழம் பக்க வரம்பை மீறிவிட்டது",
+       "parser-unstrip-loop-warning": "Unstrip வளையம் காணப்பட்டது",
+       "parser-unstrip-recursion-limit": "Unstrip மீள்தோன்றும் எல்லை மீறப்பட்டது ($1)",
        "converter-manual-rule-error": "கைமுறை மொழி மாற்றம் விதியில் பிழை கண்டுபிடிக்கப்பட்டது",
        "undo-success": "இத்தொகுப்பை மீளமைக்க முடியும். தயவு செய்து, கீழே காட்டப்பட்டுள்ள ஒப்பீட்டைப் பார்த்து, நீங்கள் செய்ய முயற்சிப்பது இதுதானா? என்பதை உறுதிப்படுத்திக் கொண்டு '''பக்கத்தைச் சேமிக்கவும்''' என்பதன் மேல் சொடுக்கவும்.",
        "undo-failure": "முரண்பாடான இடைப்பட்டத் தொகுப்புகள் காரணமாக இத்தொகுப்பை மீளமைக்க முடியாது.",
        "undo-norev": "தங்களின் தொகுப்பு இல்லாததாலோ அல்லது நீக்கப்பட்டதாலோ இத்தொகுப்பை மீளமைக்க முடியாது.",
+       "undo-nochange": "திருத்தங்கள் ஏற்கனவே நீக்கப்பட்டதாக தோன்றுகிறது.",
        "undo-summary": "[[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]]) பயனரால் செய்யப்பட்ட திருத்தம் $1 இல்லாது செய்யப்பட்டது",
+       "undo-summary-username-hidden": "மறை பயனரால் செய்யப்பட்ட மீள்பார்வை $1 ஐ நீக்கு",
        "cantcreateaccounttitle": "கணக்கைத் தொடக்க முடியாது",
        "cantcreateaccount-text": "இந்த இணைய விதிமுறை இலக்க முகவரியிலிருந்து (IP address) ('''$1''') பயனர் கணக்குகள் தொடங்குவதை பயனர் [[User:$3|$3]] தடை செய்துள்ளார்.\n\nஇதற்காக $3 கொடுத்துள்ள காரணங்கள்  ''$2''",
+       "cantcreateaccount-range-text": "இந்த இணைய விதிமுறை இலக்க முகவரி அளவில் உள்ள(IP address) '''$1''',  உங்கள் முகவரி ('''$4''') உட்பட, பயனர் கணக்குகள் தொடங்குவதை [[User:$3|$3]] தடை செய்துள்ளார்.\n\nஇதற்காக $3 கொடுத்துள்ள காரணங்கள் ''$2''",
        "viewpagelogs": "இப்பக்கத்துக்கான பதிகைகளைப் பார்",
        "nohistory": "இப் பக்கத்துக்குத் தொகுப்பு வரலாறு இல்லை.",
        "currentrev": "நடைமுறையிலுள்ள திருத்தம்",
        "history-feed-description": "விக்கியில் இப்பக்கத்துக்கான திருத்த வரலாறு",
        "history-feed-item-nocomment": "$2 இல் $1",
        "history-feed-empty": "நீங்கள் கோரியப் பக்கம் இல்லை.\nஇப்பக்கம் விக்கியில் நீக்கப்பட்டோ நகர்த்தப்பட்டோ இருக்கலாம்.\nபொருத்தமான புதியப் பக்கங்களைத் [[Special:Search|இந்த விக்கியில் தேடவும்]].",
+       "history-edit-tags": "தேர்ந்தெடுத்த மீள்பார்வைகளின் திருத்தல் அடையாளங்கள்",
        "rev-deleted-comment": "(திருத்தப்பட்ட சுருக்கம் நீக்கப்பட்டது)",
        "rev-deleted-user": "(பயனர் பெயர் நீக்கப்பட்டது)",
-       "rev-deleted-event": "(பதிவà¯\81 à®\9aà¯\86யறà¯\8dபாà®\9fà¯\81 நீக்கப்பட்டது)",
+       "rev-deleted-event": "(à®\9aà¯\86யறà¯\8dபாà®\9fà¯\8dà®\9fà¯\81 à®ªà®¤à®¿à®µà¯\81 à®µà®¿à®µà®°à®®à¯\8d நீக்கப்பட்டது)",
        "rev-deleted-user-contribs": "பயனர் பெயர் அல்லது ஐ.பி. முகவரி நீக்கப்பட்டுள்ளது - இந்தத் தொகுப்பு பங்களிப்புகள் பட்டியலில் இருந்து மறைக்கப்பட்டுள்ளது",
        "rev-deleted-text-permission": "இந்த பக்கத்திருத்தம்  '''நீக்கப்பட்டுள்ளது'''.\n\nஇது தொடர்பான விவரங்களை [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} நீக்கல் பதிகையில்] காணலாம்.",
+       "rev-suppressed-text-permission": "இந்த பக்கத்திருத்தம் <strong>நசுக்கப்பட்டுள்ளது</strong>.\nஇது தொடர்பான விவரங்களை [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} நசுக்கப்பட்ட பதிகையில்] காணலாம்.",
        "rev-deleted-text-unhide": "இப்பக்கத்தின் திருத்தம் '''நீக்கப்பட்டது'''.\n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} நீக்குதல் குறிப்பேடு ]இதில் மற்ற விவரங்களை காணலாம்.\nநீங்கள் தொடர விரும்பினால் இந்த $1 திருத்தத்தை இன்னும் காணலாம்.",
        "rev-suppressed-text-unhide": "இப்பக்கத்தின் திருத்தம் '''நசுக்கப்பட்டது'''.\n[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} நசுக்கப்படுதல் குறிப்பேடு ]இதில் மற்ற விவரங்களை காணலாம்.\nநீங்கள் தொடர விரும்பினால் இந்த $1 திருத்தத்தை நீங்கள் இன்னும் காணலாம்.",
        "rev-deleted-text-view": "இந்த பக்கத்திருத்தம்  '''நீக்கப்பட்டுள்ளது'''.\n\nஇது தொடர்பான விவரங்களை [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} நீக்கல் பதிகையில்] காணலாம்.",
        "revdelete-no-file": "தாங்கள் குறிப்பிட்ட கோப்புக்கள் இங்கில்லை.",
        "revdelete-show-file-confirm": "\"<nowiki>$1</nowiki>\" கோப்பின் $2-தேதி,  $3-நேரத்தில் நீக்கப்பட்ட திருத்தத்தை தாங்கள் காணவேண்டுமா ?",
        "revdelete-show-file-submit": "ஆம்",
+       "revdelete-selected-text": "[[:$2]] இன் {{PLURAL:$1|Selected revision|தேர்ந்தெடுத்த திருத்தங்கள்}}:",
+       "revdelete-selected-file": "[[:$2]] இன் {{PLURAL:$1|Selected revision|தேர்ந்தெடுத்த கோப்பு திருத்தங்கள்}}:",
        "logdelete-selected": "தெரிவு செய்யப்பட்ட பதிகை {{PLURAL:$1|நிகழ்வு|நிகழ்வுகள்}}:",
+       "revdelete-text-text": "அழிக்கபட்ட திருத்தங்கள் பக்க வரலாற்று தோன்றும், ஆனால் அவற்றின் உள்ளடக்கங்களின் பகுதிகள் பொதுப்பயனரால் அணுக இயலாதது.",
+       "revdelete-text-file": "அழிக்கபட்ட திருத்தங்கள் பக்க வரலாற்று தோன்றும், ஆனால் அவற்றின் உள்ளடக்கங்களின் பகுதிகள் பொதுப்பயனரால் அணுக இயலாதது.",
+       "logdelete-text": "அழிக்கபட்ட செயற்பாட்டு பதிவுகள், செயற்பாட்டு வரலாற்றுப் பதிவில் தோன்றும், ஆனால் அவற்றின் உள்ளடக்கங்களின் பகுதிகள் பொதுப்பயனரால் அணுக இயலாதது.",
+       "revdelete-text-others": "வேறு கட்டுப்பாடுகள் விதிக்கபடாத வரை, மற்ற நிர்வாகிகள் மறைக்கபட்ட உள்ளடக்கங்களை அணுகலாம் மற்றும் அவற்றை மீட்கலாம்.",
        "revdelete-confirm": "நீங்கள் கண்டிப்பாக இதைச் செய்ய விரும்புகிறீர்கள் என்பதையும்,  இதன் விளைவுகளை புரிந்துகொண்டிருக்கின்றீர்கள் என்பதையும், மேலும் நீங்கள் [[{{MediaWiki:Policy-url}}|செயல் திட்டம்]] படி செய்கிறீர்கள் என்பதையும் உறுதிசெயுங்கள்.",
-       "revdelete-suppress-text": "ஒடுக்கப்படுவது கீழ்காணும் '''காரணங்களுக்காக''' மட்டுமே செய்யப்படும்.\n*அவதூறான தீங்கு விளைவிக்கக்கூடிய தகவல்\n*தகாத தனிப்பட்ட தகவல்கள்\n*\"வீட்டு முகவரிகள் மற்றும் தொலைபேசி எண்கள் ,சமூக பாதுகாப்பு எண்கள், மேலும்.,\"",
+       "revdelete-suppress-text": "ஒடுக்கப்படுவது கீழ்காணும் '''காரணங்களுக்காக''' <strong>மட்டுமே</strong> செய்யப்படும்:\n*அவதூறான தீங்கு விளைவிக்கக்கூடிய தகவல்\n*தகாத தனிப்பட்ட தகவல்கள்\n*: <em>வீட்டு முகவரிகள் மற்றும் தொலைபேசி எண்கள் ,சமூக பாதுகாப்பு எண்கள், மேலும்.</em>",
        "revdelete-legend": "பார்வையியழுமைக் கட்டுப்பாடுகளை ஏற்படுத்துக",
-       "revdelete-hide-text": "திருத்த உரையை மறை",
+       "revdelete-hide-text": "திருத்த உரையை மறைக்க",
        "revdelete-hide-image": "கோப்பின் உள்ளடக்கங்களை மறை",
-       "revdelete-hide-name": "à®\9aà¯\86யறà¯\8dபாà®\9fà¯\8dà®\9fà¯\88யà¯\81à®®à¯\8d à®\87லà®\95à¯\8dà®\95à¯\88யà¯\81à®®à¯\8d மறை",
+       "revdelete-hide-name": "à®\87லà®\95à¯\8dà®\95à¯\81 à®®à®±à¯\8dà®±à¯\81à®®à¯\8d à®\9aà¯\86யறà¯\8dபாà®\9fà¯\8dà®\9fà¯\81 à®\85ளவà¯\81à®\95ளà¯\88 மறை",
        "revdelete-hide-comment": "தொகுப்புச் சுருக்கம்",
        "revdelete-hide-user": "தொகுப்பவரின் ஐ.பி./பயனர்பெயர்",
        "revdelete-hide-restricted": "குறிப்புக்களை அதிகாரிகள் உட்பட எல்லோரிடமிருந்தும் மறைத்துவிடு (காட்டத்தேவையில்லை).",
        "revdelete-modify-missing": "உருப்படி அடையாளம் $1 ஐ திருத்துவதில் பிழை:இது தரவுதளத்திலிருந்து காணாமல் போயுள்ளது.",
        "revdelete-no-change": "''' எச்சரிக்கை:'' ' $2, $1  தேதியிடப்பட்ட உருப்படி ஏற்கனவே கோரிய பார்க்ககூடிய அமைப்புகளை கொண்டுள்ளது.",
        "revdelete-concurrent-change": "$2 ,  $1 நாளிட்ட உருப்படிகளை மாற்றியமைப்பதில் பிழை:  நீங்கள் மாற்ற முனைந்த பொழுது, வேறு யாரோ இருப்புநிலையை மாற்றியுள்ளார்கள் போல் தெரிகின்றது.  பதிவேட்டைச் சரி பார்க்கவும்.",
+       "revdelete-only-restricted": "$2 நாளிட்ட உருப்படியை மறைப்பதில் பிழை, $1: மற்றவர்களின் பார்வை விருப்பங்களில் ஒன்றைத் தேர்ந்தெடுக்காமல் நீங்கள் உருப்படிகளை நிர்வாகிகளின் பார்வையிலிருந்து ஒடுக்க இயலாது.",
        "revdelete-reason-dropdown": "*பொதுவான நீக்கு காரணங்கள்\n** பதிப்புரிமை மீறல்\n** பொருத்தமற்ற கருத்து அல்லது தனிநபர் தகவல் வெளியிட்டமை\n** பொருத்தமற்ற பயனர்பெயர்\n** அவதூறாகக் கொள்ளக்கூடிய உள்ளடக்கம்",
        "revdelete-otherreason": "வேறு மேலதிக காரணம்:",
        "revdelete-reasonotherlist": "வேறு காரணம்",
        "mergehistory-empty": "இணைக்கப்படக்கூடிய திருத்தங்கள் எதுவுமில்லை.",
        "mergehistory-success": "[[:$1]] பக்கத்தின் {{PLURAL:$3|ஒரு திருத்தம்|$3 திருத்தங்கள்}} வெற்றிகரமாக [[:$2]] பக்கத்தில் இணைக்கப்பட்ட{{PLURAL:$3|து|ன}}.",
        "mergehistory-fail": "வரலாற்றை இணைக்க முடியவில்லை. அருள் கூர்ந்து நேரங்களை ஒரு முறை சரி பார்க்கவும்.",
+       "mergehistory-fail-toobig": "$1 அளவுக்கு மேல் வரலாறு இணைப்பு செய்ய இயலவில்லை {{PLURAL:$1|revision|திருத்தங்கள்}} நகர்த்தப்படும்.",
        "mergehistory-no-source": "மூலப் பக்கம் $1 இல்லை.",
        "mergehistory-no-destination": "இலக்குப் பக்கம் $1 இல்லை.",
        "mergehistory-invalid-source": "மூலப் பக்கம் செல்லுபடியான பக்கமாக இருக்க வேண்டும்.",
        "showhideselectedversions": "தெரிவு செய்யப்பட்ட மாற்றங்களை காட்டு/மறை",
        "editundo": "மீளமை",
        "diff-empty": "(வேறுபாடு ஏதுமில்லை)",
+       "diff-multi-sameuser": "(பயனரால் செய்யப்பட {{PLURAL:$1|ஒரு இடைப்பட்ட திருத்தம்|$1 இடைப்பட்ட திருத்தங்கள்}}  காட்டப்படவில்லை.)",
+       "diff-multi-otherusers": "({{PLURAL:$2|பயனரால்|$2 பயனர்களால்}} செய்யப்பட்ட {{PLURAL:$1|ஒரு இடைப்பட்ட திருத்தம்|$1 இடைப்பட்ட திருத்தங்கள்}}  காட்டப்படவில்லை.)",
        "diff-multi-manyusers": "({{PLURAL:$2|பயனரால்|$2 பயனர்களால்}} செய்யப்பட்ட {{PLURAL:$1|ஒரு இடைப்பட்ட திருத்தம்|$1 இடைப்பட்ட திருத்தங்கள்}}  காட்டப்படவில்லை.)",
+       "difference-missing-revision": "இந்த வேறுபாட்டின் ($1) {{PLURAL:$2|ஒரு திருத்தம்|$2 திருத்தங்கள்}} {{PLURAL:$2|கண்டறியப்பட்டது|கண்டறியப்பட்டன}}.\n\nஇது வழக்கமாக அழிக்கப்பட்ட பக்கத்தின் ஒரு காலவதியான வேறுபாட்டு இணைப்பு காரணமாக ஏற்படுகிறது.\nமேலும் விவரங்களை [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} நீக்கல் பதிவில்] காணலாம்.",
        "searchresults": "தேடல் முடிவுகள்",
        "searchresults-title": "\"$1\" இற்கான தேடல் முடிவுகள்",
        "titlematches": "கட்டுரைத் தலைப்புப் பொருந்துகிறது",
        "notextmatches": "கட்டுரை உரை எதுவும் பொருந்தவில்லை",
        "prevn": "முன் {{PLURAL:$1|$1}}",
        "nextn": "அடுத்த {{PLURAL:$1|$1}}",
+       "prev-page": "முந்தைய பக்கம்",
+       "next-page": "அடுத்த பக்கம்",
        "prevn-title": "முந்திய $1 {{PLURAL:$1|முடிவு|முடிவுகள்}}",
        "nextn-title": "அடுத்த $1 {{PLURAL:$1|முடிவு|முடிவுகள்}}",
        "shown-title": "ஒரு பக்கத்திற்கு $1 {{PLURAL:$1|முடிவு|முடிவுகள்}} காட்டவும்",
        "search-result-category-size": "{{PLURAL:$1|1 உறுப்பினர்|$1 உறுப்பினர்கள்}} ({{PLURAL:$2|1 துணைப்பகுப்பு|$2 துணைப்பகுப்புகள்}}, {{PLURAL:$3|1 கோப்பு|$3 கோப்புகள்}})",
        "search-redirect": "(பக்க வழிமாற்றம் $1)",
        "search-section": "(பிரிவு $1)",
+       "search-category": "(பகுப்பு $1)",
+       "search-file-match": "(கோப்பு உள்ளடக்கத்துடன் பொருந்துகிறது)",
        "search-suggest": "நீங்கள் கருதியது இதையா: $1",
        "search-interwiki-caption": "உறவுத் திட்டங்கள்",
-       "search-interwiki-default": "$1 à®¤à®³à®¤à¯\8dதினà¯\8d முடிவுகள்:",
+       "search-interwiki-default": "$1 à®¤à®³à®¤à¯\8dதிலிரà¯\81நà¯\8dதà¯\81 முடிவுகள்:",
        "search-interwiki-more": "(மேலும்)",
        "search-relatedarticle": "தொடர்புடையவை",
        "searchrelated": "தொடர்புடையவை",
        "searchall": "அனைத்தும்",
        "showingresults": "'''$2''' இலிருந்து தொடங்கும்  {{PLURAL:$1|'''1''' முடிவு கீழே காட்டப்பட்டுள்ளது|'''$1''' முடிவுகள் கீழே காட்டப்பட்டுள்ளன}}.",
+       "showingresultsinrange": "#<strong>$2</strong> இலிருந்து #<strong>$3</strong> வரை  உள்ள  {{PLURAL:$1|<strong>1</strong> முடிவு|<strong>$1</strong> முடிவுகள்}} கீழே காட்டப்படுகின்றன.",
+       "search-showingresults": "{{PLURAL:$4|முடிவு <strong>$1</strong> இன் <strong>$3</strong>|முடிவுகள்<strong>$1 - $2</strong> இன் <strong>$3</strong>}}",
        "search-nonefound": "உங்கள் வினவலுக்கான முடிவுகள் எதுவும் இல்லை.",
        "powersearch-legend": "மேம்பட்ட தேடல்",
        "powersearch-ns": "பெயர்வெளிகளில் தேடவும்",
        "preferences": "விருப்பங்கள்",
        "mypreferences": "விருப்பத்தேர்வுகள்",
        "prefs-edits": "தொகுப்புகளின் எண்ணிக்கை:",
+       "prefsnologintext2": "உங்கள் விருப்பத்தேர்வுகளை மாற்ற புகுபதிகை செய்.",
        "prefs-skin": "முகப்புறை",
        "skin-preview": "முன்தோற்றம்",
        "datedefault": "விருப்பத்தேர்வுகள் இல்லை",
        "prefs-personal": "பயனர் தரவு",
        "prefs-rc": "அண்மைய மாற்றங்கள்",
        "prefs-watchlist": "கவனிப்புப் பட்டியல்",
+       "prefs-editwatchlist": "கவனிப்புப் பட்டியலைத் தொகு",
+       "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": "விரிவாக்கப்பட்ட கவனிப்புப் பட்டியலில் காட்டவேண்டிய தொகுப்புகளின் எண்ணிக்கை:",
        "recentchangesdays-max": "மிக அதிகமாக $1 {{PLURAL:$1|நாள்|நாட்கள்}}",
        "recentchangescount": "மொத்தத் தொகுப்புக்களின் எண்ணிக்கையைத் தானாகவே காட்ட:",
        "prefs-help-recentchangescount": "அண்மைய மாற்றங்களையும், பக்கத்தின் வரலாறுகளையும் பதிவேட்டுப் பதிவுகளையும் உள்ளடக்கியதாகும்.",
+       "prefs-help-watchlist-token2": "உங்கள் கவனிப்புப்பட்டியலின் வலை ஓடைக்கு இது இரகசிய சாவி.\nஇதை அறிந்த எவரும் உங்கள் கவனிப்பு பட்டியலை வாசிக்கலாம், எனவே இதை பகிராதீர்கள்.\nதேவை ஏற்படின், [[Special:ResetTokens|நீங்கள் அதனை புதுப்பிக்கலாம்]].",
        "savedprefs": "உங்கள் விருப்பத்தேர்வுகள் சேமிக்கப்பட்டுள்ளன.",
        "timezonelegend": "நேர வலயம்:",
        "localtime": "உள்ளூர் நேரம்:",
        "prefs-emailconfirm-label": "மின்னஞ்சலை உறுதிசெய்தல்:",
        "youremail": "மின்னஞ்சல்:",
        "username": "{{GENDER:$1|பயனர் பெயர்}}:",
-       "prefs-memberingroups": "பின்வரும் {{PLURAL:$1|குழு|குழுக்களில்}} உறுப்பினர்:",
+       "prefs-memberingroups": "பின்வரும் {{PLURAL:$1|குழு|குழுக்களில்}} {{GENDER:$2|உறுப்பினர்}}:",
        "prefs-registration": "பதிவு செய்யும் நேரம்:",
        "yourrealname": "உண்மைப் பெயர்:",
        "yourlanguage": "மொழி:",
        "gender-female": "பெண்",
        "prefs-help-gender": "விருப்பத்தேர்வை அமைப்பது இங்கள் விருப்பம்.\nஒருவரைக் குறிப்பிடும்பொழுது, அவருடைய பால் சரியானதாக இருக்க மென்கலம் பயன்படுத்தும் தகவல்.\nஇத்தகவல் பொதுவில் கிடைக்கும்படி இனி இருக்கும்.",
        "email": "மின்னஞ்சல்",
-       "prefs-help-realname": "à®\89ணà¯\8dà®®à¯\88யான à®ªà¯\86யரà¯\8d à®\95à®\9fà¯\8dà®\9fாயமறà¯\8dறதà¯\81. à®¨à¯\80à®\99à¯\8dà®\95ளà¯\8d à®\87தà¯\88 à®\95à¯\8aà®\9fà¯\81தà¯\8dதாலà¯\8d à®\89à®\99à¯\8dà®\95ளà¯\8d à®\86à®\95à¯\8dà®\95à®\99à¯\8dà®\95ளà¯\81à®\95à¯\8dà®\95ான à®\89ரிமà¯\88யளிபà¯\8dபà¯\81à®\95ளினà¯\8d à®ªà¯\8bதà¯\81 à®\87தà¯\81 à®ªà®¯à®©à¯\8dபà®\9fà¯\81ம்.",
+       "prefs-help-realname": "à®\89ணà¯\8dà®®à¯\88யான à®ªà¯\86யரà¯\8d à®\95à®\9fà¯\8dà®\9fாயமறà¯\8dறதà¯\81. à®\87à®°à¯\81பà¯\8dபினà¯\81à®®à¯\8d à®¨à¯\80à®\99à¯\8dà®\95ளà¯\8d à®µà®´à®\99à¯\8dà®\95ினாலà¯\8d à®\89à®\99à¯\8dà®\95ளà¯\8d à®\86à®\95à¯\8dà®\95à®\99à¯\8dà®\95ளà¯\81à®\95à¯\8dà®\95ான à®\89ரிமà¯\88யளிபà¯\8dபà¯\81à®\95ளினà¯\8d à®ªà¯\8bதà¯\81 à®ªà®¯à®©à¯\8dபà®\9fà¯\81தà¯\8dதபà¯\8dபà®\9fலாம்.",
        "prefs-help-email": "மின்னஞ்சல் விருப்பத் தேர்வு,  ஆனால் உங்கள் கடவுச்சொல் உங்களுக்கு நினைவில்லையென்றால், புதிய கடவுச்சொல்லை மீட்டமைக்க தேவைப்படும்.",
        "prefs-help-email-others": "உங்கள் பேச்சுப் பக்கத்தில் உள்ள இணைப்பு மூலம் பிற பயனர்கள் உங்களுக்கு மின்னஞ்சல் அனுப்புதலை நீங்கள் தெரிவு செய்யலாம். பிற பயனர்கள் உங்களைத் தொடர்பு கொள்ளும் அதே வேளையில் உங்கள் மின்னஞ்சல் முகவரி வெளிப்படுத்தப்பட மாட்டாது.",
        "prefs-help-email-required": "மின்னஞ்சல் முகவரி தேவை.",
        "prefs-advancedwatchlist": "மேம்பட்ட விருப்பத்தேர்வுகள்",
        "prefs-displayrc": "விருப்பத்தேர்வுகளைக் காட்டு",
        "prefs-displaywatchlist": "விருப்பத்தேர்வுகளைக் காட்டு",
+       "prefs-tokenwatchlist": "வில்லை",
        "prefs-diffs": "வித்தியாசங்கள்",
        "prefs-help-prefershttps": "இந்த விருப்பத்தேர்வு உங்களின் அடுத்த புகுபதிகையிலிருந்து செயல்பாட்டுக்கு வரும்.",
+       "prefswarning-warning": "நீங்கள் உங்கள் விருப்பத்தேர்வுகளில் செய்த மாற்றங்கள் சேமிக்கப்படவில்லை. நீங்கள் $1 இதனை அழுத்தாமல் இப்பக்கத்தை விட்டுச் சென்றால் உங்கள் விருப்பத் தேர்வுகள் புதுப்பிக்கப்படாது.",
+       "prefs-tabs-navigation-hint": "குறிப்பு:கீற்றுகளின் பட்டியலில் இடது மற்றும் வலது அம்புக்குறி தட்டச்சுகளைப் பயன்படுத்தி நகரலாம்.",
        "email-address-validity-valid": "மின்னஞ்சல் முகவரி முறையானதாகத் தோன்றுகிறது",
        "email-address-validity-invalid": "முறையான மின்னஞ்சல் முகவரியை உள்ளிடுக",
        "userrights": "பயனர் அனுமதி முகாமைத்துவம்",
        "userrights-lookup-user": "பயனர்க் குழுக்களைப் பராமரி",
        "userrights-user-editname": "பயனர் பெயரொன்றை இடுக:",
        "editusergroup": "பயனர் குழுக்களை தொகு",
-       "editinguser": "'''[[User:$1|$1]]''' $2  பயனருக்கான அனுமதிகளை மாற்றல்",
+       "editinguser": "பயனர் {{GENDER:$1|பயனர்}} <strong>[[User:$1|$1]]</strong> $2  பயனருக்கான அனுமதிகளை மாற்றல்",
        "userrights-editusergroup": "பயனர் குழுக்களை தொகு",
        "saveusergroups": "பயனர் குழுக்களை சேமி",
        "userrights-groupsmember": "உறுப்பினர்:",
        "right-move": "பக்கத்தை நகர்த்து",
        "right-move-subpages": "துணைப் பக்கங்களுடன் பக்கத்தை நகர்த்தவும்",
        "right-move-rootuserpages": "மூலப் பயனர் பக்கத்தை நகர்த்தவும்",
+       "right-move-categorypages": "பகுப்பு பக்கங்களை நகர்த்து",
        "right-movefile": "கோப்புக்களை நகர்த்தவும்",
        "right-suppressredirect": "பக்கங்களை நகர்த்தும்பொழுது, மூலப்பக்கத்தில் இருந்து வழிமாற்றுகளை உருவாக்காதீர்",
        "right-upload": "கோப்புகளைப் பதிவேற்றுக",
        "right-browsearchive": "நீக்கப்பட்ட பக்கங்களை தேடுக",
        "right-undelete": "பக்கமொன்றை மீட்டெடுக்கவும்",
        "right-suppressrevision": "எந்தவொரு பயனரிடமிருந்தும் குறிப்பிட்ட பக்கத் திருத்தங்களை பார்வையிடுக, மறைக்கவும், வெளிக்காட்டவும்",
+       "right-viewsuppressed": "மற்ற பயனரிடமிருந்து மறைக்கப்பட்ட திருத்தங்களைப் பார்",
        "right-suppressionlog": "தனிப்பட்ட பதிவுகளை பார்க்க",
        "right-block": "ஏனைய பயனர்கள் தொகுப்பதை தடுக்கவும்",
        "right-blockemail": "பயனர் மின்னஞ்சல் அனுப்புவதை தடுக்கவும்",
        "right-hideuser": "பயனர்பெயரை தடுத்து, மறைக்கவும்",
        "right-ipblock-exempt": "ஐ.பி (IP) தடுப்புகளையும், தானியங்கியான தடுப்புகளையும், வரம்புவரையான தடுப்புகளையும் மீறிச் செயல்படுக.",
        "right-proxyunbannable": "தானாக தடுப்புகப்பட்ட  Proxies ஐ மீறு.",
-       "right-unblockself": "தà®\99à¯\8dà®\95ளà¯\87 à®¤à®\9fà¯\81பà¯\8dபà¯\81 à®¨à¯\80à®\95à¯\8dà®\95à¯\81",
+       "right-unblockself": "நà¯\80à®\99à¯\8dà®\95ளà¯\87 à®¤à®\9fà¯\81பà¯\8dபà¯\81 à®¨à¯\80à®\95à¯\8dà®\95à¯\81à®\95",
        "right-protect": "பாதுகாப்பு மட்டங்களை மாற்று மற்றும் தொடர்-பாதுகாக்கப்பட்ட பக்கங்களை திருத்து",
-       "right-editprotected": "( வடிவமான பாதுகாப்பு இல்லாமல்) பாதுகாக்கப்பட்ட பக்கங்களை திருத்து",
+       "right-editprotected": "\"{{int:protect-level-sysop}}\" ஆல் பாதுகாக்கப்பட்ட பக்கங்களை திருத்து",
+       "right-editsemiprotected": "\"{{int:protect-level-autoconfirmed}}\" ஆல் பாதுகாக்கப்பட்ட பக்கங்களை திருத்து",
+       "right-editcontentmodel": "பக்கத்தின் உள்ளடக்க வகையைத் திருத்து",
        "right-editinterface": "பயனர் இடைமுகப்பை தொகுக்கவும்",
        "right-editusercssjs": "மற்ற பயனர்களின் CSS மற்றும் JavaScript கோப்புகளை திருத்து",
        "right-editusercss": "மற்ற பயனர்களின் CSS கோப்புகளை திருத்து",
        "right-edituserjs": "மற்ற பயனர்களின் சாவாநிரல் (JavaScript) கோப்புகளைத் திருத்து",
+       "right-editmyusercss": "உங்களின் CSS கோப்புகளைத் திருத்து",
+       "right-editmyuserjs": "உங்கள் JavaScript கோப்புகளைத் திருத்து",
+       "right-viewmywatchlist": "உமது கவனிப்புப்பட்டியலைப் பார்",
+       "right-editmywatchlist": "உங்கள் கவனிப்புப் பட்டியலைத் திருத்து. கவனிக்க சில செயல்கள் உரிமையின்றி பக்கங்களைச் சேர்க்கலாம்.",
+       "right-viewmyprivateinfo": "உங்கள் தனிப்பட்ட தகவல்களைப் பார் (e.g. மின்னஞ்சல் முகவரி, உண்மைப் பெயர்)",
+       "right-editmyprivateinfo": "உங்கள் தனிப்பட்ட தகவலைத் திருத்து (e.g. மின்னஞ்சல் முகவரி, உண்மைப் பெயர்)",
+       "right-editmyoptions": "உங்கள் விருப்பத் தேர்வுகளைத் திருத்து",
        "right-rollback": "கடைசி தொகுப்பை விரைவாக முன்னிலையாக்கல்",
        "right-markbotedits": "முந்நிலையாக்கல்களை தானியக்க தொகுப்பாக குறிக்கவும்",
        "right-noratelimit": "விகித வரம்புகளால் பாதிக்கப்படாது",
        "right-override-export-depth": "பக்கங்களை ஏற்றுமதி செய் அத்துடன் இணைத்த பக்கங்கள் ஆழம் 5 வரை சேர்த்து ஏற்றுமதி செய்",
        "right-sendemail": "மற்ற பயனர்களுக்கு மின்னஞ்சல் அனுப்பு",
        "right-passwordreset": "கடவுச்சொல் மீட்டமை மின்னஞ்சல்களை காண்.",
+       "right-managechangetags": "தரவுதளத்திலிருந்து [[Special:Tags|அடையாளங்களை]] உருவாக்கு மற்றும் நீக்கு",
+       "right-applychangetags": "ஒருவரின் மாற்றத்துடன் [[Special:Tags|அடையாளங்களை]] செயற்படுத்து",
+       "right-changetags": "தனியொருவரின் திருத்தம் மற்றும் செயற்பாட்டு பதிவுகளில்  [[Special:Tags|அடையாளங்களை]] சேர் அல்லது நீக்கு",
        "newuserlogpage": "பயனர் உருவாக்கம் பற்றிய குறிப்பு",
        "newuserlogpagetext": "இது பயனர் படைப்புகளின் பதிவு ஆகும்.",
        "rightslog": "பயனர் உரிமைகள் பதிகை",
        "action-createpage": "பக்கங்களை உருவாக்கவும்",
        "action-createtalk": "உரையாடல் பக்கங்களை உருவாக்கவும்",
        "action-createaccount": "இந்தப் பயனர் கணக்கை உருவாக்கவும்",
+       "action-history": "இப்பக்க வரலாற்றை பார்",
        "action-minoredit": "இந்த தொகுப்பை சிறுதொகுப்பு என்று குறிப்பிடவும்",
        "action-move": "இந்தப் பக்கத்தை நகர்த்தவும்",
        "action-move-subpages": "இந்தப் பக்கத்தையும் அதன் துணைப்பக்கங்களையும் நகர்த்தவும்",
        "action-move-rootuserpages": "மூலப் பயனர் பக்கங்களை நகர்த்தவும்",
+       "action-move-categorypages": "பகுப்பு பக்கங்களை நகர்த்து",
        "action-movefile": "இந்தக் கோப்பை நகர்த்தவும்",
        "action-upload": "இந்தக் கோப்பைப் பதிவிறக்கவும்",
        "action-reupload": "தற்போதுள்ள கோப்பின் மேலெழுதுங்கள்",
        "action-sendemail": "மின்னஞ்சல்கள் அனுப்பு",
        "action-editmywatchlist": "உங்கள் கவனிப்பு பட்டியலை தொகு",
        "action-viewmywatchlist": "உங்கள் கவனிப்பு பட்டியலை பார்",
+       "action-viewmyprivateinfo": "உங்கள் தனிப்பட்ட தகவல்களைப் பார்",
+       "action-editmyprivateinfo": "உங்கள் தனிப்பட்ட தகவல்களைத் திருத்து",
+       "action-editcontentmodel": "பக்கத்தின் உள்ளடக்க வகையைத் திருத்து",
+       "action-managechangetags": "தரவுதளத்திலிருந்து அடையாளங்களை உருவாக்கு அல்லது நீக்கு",
+       "action-applychangetags": "உங்கள் மாற்றங்களுடன் அடையாளங்களைச் செயற்படுத்து",
+       "action-changetags": "தனியொருவரின் திருத்தம் மற்றும் செயற்பாட்டு பதிவுகளில் அடையாளங்களைச் சேர் அல்லது நீக்கு",
        "nchanges": "{{PLURAL:$1|ஓர் மாற்றம்|$1 மாற்றங்கள்}}",
+       "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|கடந்த வருகையிலிருந்து}}",
        "enhancedrc-history": "வரலாறு",
        "recentchanges": "அண்மைய மாற்றங்கள்",
        "recentchanges-legend": "அண்மைய மாற்றங்களின் தேர்வுகள்",
        "recentchanges-summary": "இந்த விக்கிக்கு மிக அண்மையில் செய்யப்பட்ட மாற்றங்களை, இந்தப் பக்கத்தில் காணலாம்.",
+       "recentchanges-noresult": "கொடுக்கபட்ட காலகட்டத்தில் வரையறுக்கு பொருத்தமான எந்த மாற்றங்களும் இல்லை.",
        "recentchanges-feed-description": "இவ்வுள்ளீட்டில் இந்த விக்கியில் செய்யப்பட்ட் மிக அண்மைய மாற்றங்கள் கவனிக்கப்படுகின்றன.",
        "recentchanges-label-newpage": "இந்தத் தொகுப்பு ஒரு புதிய பக்கத்தை உருவாக்கியுள்ளது",
        "recentchanges-label-minor": "இது ஒரு சிறு தொகுப்பு",
        "recentchanges-label-plusminus": "இத்தனை பைட்டுகளுக்கு பக்கத்தின் அளவு மாற்றப்பட்டுள்ளது",
        "recentchanges-legend-heading": "'''குறியீட்டு விளக்கம்:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|புதிய பக்கங்கள் பட்டியலையும்]] காணவும்)",
-       "rcnotefrom": "கீழே காணப்படுவது '''$2''' இலிருந்து செய்யப்பட்ட மாற்றங்களாகும் ('''$1''' வரைக் காட்டப்பட்டுள்ளது).",
+       "rcnotefrom": "கீழே காணப்படுவது <strong>$3, $4</strong> இலிருந்து செய்யப்பட்ட (<strong>$1</strong> வரைக் காட்டப்பட்டுள்ளது) {{PLURAL:$5|மாற்றமாகும்.|மாற்றங்களாகும்.}}",
        "rclistfrom": "$3 $2 தொடக்கம் செய்யப்பட்ட புதிய மாற்றங்களைக் காட்டவும்",
        "rcshowhideminor": "சிறிய தொகுப்புகளை $1",
        "rcshowhideminor-show": "காட்டு",
        "rcshowhidebots-show": "காட்டு",
        "rcshowhidebots-hide": "மறை",
        "rcshowhideliu": "$1 பதிவு செய்துள்ள பயனர்கள்",
+       "rcshowhideliu-show": "காட்டு",
        "rcshowhideliu-hide": "மறை",
        "rcshowhideanons": "அடையாளம் காட்டாத பயனர்களை $1",
        "rcshowhideanons-show": "காட்டு",
        "rcshowhideanons-hide": "மறை",
        "rcshowhidepatr": "$1 கவனிக்கப்பட்ட தொகுப்புக்கள்",
+       "rcshowhidepatr-show": "காட்டு",
+       "rcshowhidepatr-hide": "மறை",
        "rcshowhidemine": "என் தொகுப்புகளை $1",
        "rcshowhidemine-show": "காட்டு",
        "rcshowhidemine-hide": "மறை",
        "upload_directory_read_only": "பதிவேற்ற அடைவு ($1) வழங்கனால் எழுதப்படமுடியாது.",
        "uploaderror": "பதிவேற்றத் தவறு",
        "upload-recreate-warning": "''' எச்சரிக்கை: அந்த பெயர் உள்ள கோப்பு நீக்கப்பட்டு அல்லது நகர்த்தப்பட்டு இருக்கலாம்.''' நீக்கல் மற்றும் நகர்த்தல் குறிப்பேடு உங்கள் வசதிக்காக இங்கு அளிக்கப்படுகிறது.",
-       "uploadtext": "à®\95à¯\8bபà¯\8dபà¯\81à®\95à¯\8dà®\95ளà¯\88 à®ªà®¤à®¿à®µà¯\87à®±à¯\8dà®± à®ªà®¿à®©à¯\8dவரà¯\81à®®à¯\8d à®ªà®\9fிமதà¯\8dதà¯\88பà¯\8d à®ªà®¯à®©à¯\8dபà®\9fà¯\81தà¯\8dதவà¯\81à®®à¯\8d.\nà®®à¯\81னà¯\8dனரà¯\8d à®ªà®¤à®¿à®µà¯\87à®±à¯\8dறமà¯\8d à®\9aà¯\86யà¯\8dயபà¯\8dபà®\9fà¯\8dà®\9f à®ªà®\9fிமà®\99à¯\8dà®\95ளà¯\88பà¯\8d à®ªà®¾à®°à¯\8dபà¯\8dபதறà¯\8dà®\95à¯\81 à®\85லà¯\8dலதà¯\81 à®¤à¯\87à®\9fà¯\81வதறà¯\8dà®\95à¯\81, [[Special:FileList|பதிவà¯\87à®±à¯\8dறமà¯\8d à®\9aà¯\86யà¯\8dயபà¯\8dபà®\9fà¯\8dà®\9f à®ªà®\9fிமà®\99à¯\8dà®\95ளினà¯\8d à®ªà®\9fà¯\8dà®\9fிய]]லà¯\81à®\95à¯\8dà®\95à¯\81à®\9aà¯\8d à®\9aà¯\86லà¯\8dலவà¯\81à®®à¯\8d. à®ªà®¤à®¿à®µà¯\87à®±à¯\8dà®±à®\99à¯\8dà®\95ளà¯\81à®®à¯\8d à®¨à¯\80à®\95à¯\8dà®\95லà¯\8dà®\95ளà¯\81à®®à¯\8d [[Special:Log/upload|பதிவà¯\87à®±à¯\8dறபà¯\8d à®ªà®¤à®¿à®\95à¯\88யிலà¯\8d]] à®ªà®¤à®¿à®¯à®ªà¯\8dபà®\9fà¯\8dà®\9fà¯\81ளà¯\8dளன.\n\nà®\89à®\99à¯\8dà®\95ளà¯\8d à®\95à®\9fà¯\8dà®\9fà¯\81à®°à¯\88à®\95ளிலà¯\8d à®ªà®\9fிமà®\99à¯\8dà®\95ளà¯\88à®\9aà¯\8d à®\9aà¯\87à®°à¯\8dபà¯\8dபதறà¯\8dà®\95à¯\81,\n'''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki>''' à®\85லà¯\8dலதà¯\81\n'''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|பà®\9fிம à®ªà®±à¯\8dறிய à®\89à®°à¯\88]]</nowiki>''' à®\87ணà¯\88பà¯\8dபà¯\81 à®µà®\9fிவதà¯\8dதà¯\88யà¯\81à®®à¯\8d, à®\92ளி,à®\92லிà®\95à¯\8dà®\95à¯\8bபà¯\8dபà¯\81à®\95ளà¯\81à®\95à¯\8dà®\95à¯\81 '''<nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki>''' à®\87ணà¯\88பà¯\8dபà¯\81வà®\9fிவதà¯\8dதà¯\88யà¯\81à®®à¯\8d à®ªà®¯à®©à¯\8dபà®\9fà¯\81தà¯\8dதவà¯\81à®®à¯\8d.",
-       "upload-permitted": "அனுமதிக்கப்பட்ட கோப்பு வகைகள்: $1.",
-       "upload-preferred": "விரும்பத்தக்க கோப்பு வகைகள்: $1.",
-       "upload-prohibited": "தà®\9fà¯\88à®\9aà¯\8d à®\9aà¯\86யà¯\8dயபà¯\8dபà®\9fà¯\8dà®\9f à®\95à¯\8bபà¯\8dபà¯\81 à®µà®\95à¯\88à®\95ளà¯\8d: $1.",
+       "uploadtext": "à®\95à¯\8bபà¯\8dபà¯\81à®\95à¯\8dà®\95ளà¯\88 à®ªà®¤à®¿à®µà¯\87à®±à¯\8dà®± à®ªà®¿à®©à¯\8dவரà¯\81à®®à¯\8d à®ªà®\9fிவதà¯\8dதà¯\88பà¯\8d à®ªà®¯à®©à¯\8dபà®\9fà¯\81தà¯\8dதவà¯\81à®®à¯\8d.\nà®®à¯\81னà¯\8dனரà¯\8d à®ªà®¤à®¿à®µà¯\87à®±à¯\8dறமà¯\8d à®\9aà¯\86யà¯\8dயபà¯\8dபà®\9fà¯\8dà®\9f à®ªà®\9fிமà®\99à¯\8dà®\95ளà¯\88பà¯\8d à®ªà®¾à®°à¯\8dபà¯\8dபதறà¯\8dà®\95à¯\81 à®\85லà¯\8dலதà¯\81 à®¤à¯\87à®\9fà¯\81வதறà¯\8dà®\95à¯\81, [[Special:FileList|பதிவà¯\87à®±à¯\8dறமà¯\8d à®\9aà¯\86யà¯\8dயபà¯\8dபà®\9fà¯\8dà®\9f à®ªà®\9fிமà®\99à¯\8dà®\95ளினà¯\8d à®ªà®\9fà¯\8dà®\9fிய]]லà¯\81à®\95à¯\8dà®\95à¯\81à®\9aà¯\8d à®\9aà¯\86லà¯\8dலவà¯\81à®®à¯\8d. (மறà¯\81)பதிவà¯\87à®±à¯\8dà®±à®\99à¯\8dà®\95ளà¯\8d [[Special:Log/upload|பதிவà¯\87à®±à¯\8dறபà¯\8d à®ªà®¤à®¿à®\95à¯\88யிலà¯\81à®®à¯\8d]], à®¨à¯\80à®\95à¯\8dà®\95லà¯\8d à®ªà®¤à®¿à®µà¯\81à®\95ளà¯\8d [[Special:Log/delete|நà¯\80à®\95à¯\8dà®\95லà¯\8d à®ªà®¤à®¿à®µà¯\81à®\95ளிலà¯\81à®®à¯\8d]].\nபதியபà¯\8dபà®\9fà¯\8dà®\9fà¯\81ளà¯\8dளன.\n\nà®\89à®\99à¯\8dà®\95ளà¯\8d à®\95à®\9fà¯\8dà®\9fà¯\81à®°à¯\88à®\95ளிலà¯\8d à®ªà®\9fிமà®\99à¯\8dà®\95ளà¯\88à®\9aà¯\8d à®\9aà¯\87à®°à¯\8dபà¯\8dபதறà¯\8dà®\95à¯\81, à®ªà®¿à®©à¯\8dவரà¯\81வனவறà¯\8dறிலà¯\8d à®\89ளà¯\8dள à®\8fதà¯\87னà¯\81à®®à¯\8d à®\92à®°à¯\81 à®\87ணà¯\88பà¯\8dபà¯\88பà¯\8d à®ªà®¯à®©à¯\8dபà®\9fà¯\81தà¯\8dதவà¯\81à®®à¯\8d:\n* à®®à¯\81à®´à¯\81 à®ªà®¤à®¿à®ªà¯\8dபà¯\88பà¯\8d à®ªà®¯à®©à¯\8dபà®\9fà¯\81தà¯\8dதà¯\81வதறà¯\8dà®\95à¯\81 <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code></strong> \n* à®\87à®\9fதà¯\81 à®ªà®\95à¯\8dà®\95 à®ªà¯\86à®\9fà¯\8dà®\9fியிலà¯\8d \"alt text\" à®\8eனà¯\8dனà¯\81à®®à¯\8d à®µà®¿à®³à®\95à¯\8dà®\95தà¯\8dதà¯\81à®\9fனà¯\8d 200 à®ªà®¿à®\95à¯\8dà®\9aலà¯\8d à®®à¯\87லà¯\8d à®\89ளà¯\8dள à®ªà®\9fà®\99à¯\8dà®\95ளà¯\88à®\9aà¯\8d à®\9aà¯\87à®°à¯\8dà®\95à¯\8dà®\95 <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code></strong>\n* à®\95à¯\8bபà¯\8dபà¯\88 à®\95ாà®\9fà¯\8dà®\9fாமலà¯\8d à®\95à¯\8bபà¯\8dபà¯\88 à®\87ணà¯\88பà¯\8dபதறà¯\8dà®\95à¯\81 <strong><code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code></strong>",
+       "upload-permitted": "அனுமதிக்கப்பட்ட கோப்பு {{PLURAL:$2|வகை|வகைகள்}}: $1.",
+       "upload-preferred": "விரும்பத்தக்ககோப்பு {{PLURAL:$2|வகை|வகைகள்}}: $1.",
+       "upload-prohibited": "தà®\9fà¯\88à®\9aà¯\86யà¯\8dயபà¯\8dபà®\9fà¯\8dà®\9f à®\95à¯\8bபà¯\8dபà¯\81 {{PLURAL:$2|வà®\95à¯\88|வà®\95à¯\88à®\95ளà¯\8d}}: $1.",
        "uploadlogpage": "பதிவேற்றப் பதிகை",
        "uploadlogpagetext": "கீழேயுள்ளது மிக அண்மையில் பதிவேற்றம் செய்யப்பட்ட கோப்புகளின் பட்டியலாகும்.\nமேலும் விவரங்கள் அறிய, [[Special:NewFiles|புதிய கோப்புகள் பக்கத்தைப்]] பார்க்கவும்.",
        "filename": "கோப்புப் பெயர்",
        "largefileserver": "வழங்கி ஏற்கக்கூடிய உச்ச அளவுக் கோப்பைவிட இக்கோப்பு பெரியதாகும்.",
        "emptyfile": "நீங்கள் பதிவேற்றிய கோப்பு வெற்றாக உள்ளது. இது கோப்பின் பெயரை பிழையாக தட்டச்சிட்டதன் காரணமாக ஏற்பட்டிருக்கலாம்.  இக்கோப்பை நீங்கள் கட்டாயம் பதிவேற்ற வேண்டுமா என்பதை உறுதிசெய்துகொள்க.",
        "windows-nonascii-filename": "இந்த விக்கி சிறப்பு எழுத்துக்களை கொண்ட கோப்புபெயர்களை ஆதரிப்பதில்லை.",
-       "fileexists": "இப்பெயரைக் கொண்ட கோப்பொன்று ஏற்கனவே உள்ளது.\nஅந்தக் கோப்பை மாற்றப்போகிறீர்கள் என்பதில் உங்களுக்கு நிச்சயமில்லாவிடில் அருள் கூர்ந்து <strong>[[:$1]]</strong> கோப்பை ஒரு முறை பார்க்கவும்.\n[[$1|thumb]]",
+       "fileexists": "இப்பெயரைக் கொண்ட கோப்பொன்று ஏற்கனவே உள்ளது.\nஅந்தக் கோப்பை மாற்றப்போகிறீர்கள் என்பதில் {{GENDER:|உங்களுக்கு}} நிச்சயமில்லாவிடில் அருள் கூர்ந்து <strong>[[:$1]]</strong> கோப்பை ஒரு முறை பார்க்கவும்.\n[[$1|thumb]]",
        "filepageexists": "இக்கோப்பிற்கான விளக்கப்பக்கம் <strong>[[:$1]]</strong> பக்கத்தில் ஏற்கனவே உருவாக்கப்பட்டுள்ளது, ஆனால் இப்பெயரில் கோப்பு ஒன்றில்லை. இங்கே நீங்கள் கொடுக்கும் சுருக்கம் விளக்கப்பக்கத்தில் தானியக்கமாக இணைக்கப்பட மாட்டது. சுருக்கத்தை விளக்கப்பக்கத்தில் காணச் செய்வதற்காக அப்பக்கத்தை நேரடியாக தொகுக்க வேண்டியிருக்கும்.\n[[$1|thumb]]",
-       "fileexists-extension": "à®\87பà¯\8dபà¯\86யரà¯\88à®\95à¯\8d à®\95à¯\8aணà¯\8dà®\9f à®\95à¯\8bபà¯\8dபà¯\81 à®\8fà®±à¯\8dà®\95னவà¯\87 à®\89ளà¯\8dளதà¯\81: [[$2|thumb]]\n* à®ªà®¤à®¿à®µà¯\87à®±à¯\8dறபà¯\8dபà®\9fà¯\81à®®à¯\8d à®\95à¯\8bபà¯\8dபினà¯\8d à®ªà¯\86யரà¯\8d: <strong>[[:$1]]</strong>\n* à®\8fà®±à¯\8dà®\95னவà¯\87 à®\89ளà¯\8dளà®\95à¯\8d à®\95à¯\8bபà¯\8dபினà¯\8d à®ªà¯\86யரà¯\8d: <strong>[[:$2]]</strong>\nà®\85à®°à¯\81ளà¯\8d à®\95à¯\82à®°à¯\8dநà¯\8dதà¯\81 à®µà¯\87à®±à¯\81 à®ªà¯\86யரà¯\88தà¯\8d à®¤à¯\86ரிவà¯\81à®\9aà¯\8d à®\9aà¯\86யà¯\8dயவà¯\81à®®à¯\8d.",
+       "fileexists-extension": "à®\87பà¯\8dபà¯\86யரà¯\88à®\95à¯\8d à®\95à¯\8aணà¯\8dà®\9f à®\95à¯\8bபà¯\8dபà¯\81 à®\8fà®±à¯\8dà®\95னவà¯\87 à®\89ளà¯\8dளதà¯\81: [[$2|thumb]]\n* à®ªà®¤à®¿à®µà¯\87à®±à¯\8dறபà¯\8dபà®\9fà¯\81à®®à¯\8d à®\95à¯\8bபà¯\8dபினà¯\8d à®ªà¯\86யரà¯\8d: <strong>[[:$1]]</strong>\n* à®\8fà®±à¯\8dà®\95னவà¯\87 à®\89ளà¯\8dளà®\95à¯\8d à®\95à¯\8bபà¯\8dபினà¯\8d à®ªà¯\86யரà¯\8d: <strong>[[:$2]]</strong>\nநà¯\80à®\99à¯\8dà®\95ளà¯\8d à®¤à®©à®¿à®ªà¯\8dபà®\9fà¯\8dà®\9f à®ªà¯\86யரà¯\88தà¯\8d à®¤à¯\87à®°à¯\8dவà¯\81 à®\9aà¯\86யà¯\8dய à®µà®¿à®°à¯\81à®®à¯\8dபலாமà¯\8d?",
        "fileexists-thumbnail-yes": "இந்தக் கோப்பு அளவில் சிறியதாக்கப்பட்ட படிமம் போலத் தோன்றுகிறது. [[$1|thumb]]\nஅருள் கூர்ந்து <strong>[[:$1]]</strong> கோப்பை ஒரு முறை பார்க்கவும்.\nநீங்கள் பார்த படிமமும் பதிவேற்ற எத்தனிக்கும் படிமமு ஒன்றாயின் அதன் சிறிய படிமத்தை மீண்டும் பதிவேற்றத் தேவையில்லை.",
        "file-thumbnail-no": "இக்கோப்பின் பெயர் <strong>$1</strong> என்பதில் தொடங்குகிறது.\nஇந்தக் கோப்பு அளவில் சிறியதாக்கப்பட்ட படிமம் போலத் தோன்றுகிறது ''(thumbnail)''.\nஇப்படிமத்தின் முழு அளவிலான படிமம் உங்களிடமிருப்பின் அதைப் பதிவேற்றவும் அல்லது தயவுசெய்து கோப்பின் பெயரை மாற்றவும்.",
        "fileexists-forbidden": "இப்பெயரைக் கொண்ட கோப்பு ஏற்கனவே உள்ளது. தாங்கள் இக்கோப்பினை கட்டாயமாக பதிவேற்றம் செய்ய வேண்டும் என்றால் தாங்கள் சிறிது பின்நோக்கிச்சென்று கோப்பிற்கு புதிய பெயர் அளித்து பதிவேற்றம் செய்யவும். \n\n[[File:$1|thumb|center|$1]]",
        "fileexists-shared-forbidden": "இப்பெயரைக் கொண்ட கோப்பு ஏற்கனவே பொதுக் கோப்பகத்தில் உள்ளது; நீங்கள் தவறாது இக்கோப்பைப் பதிவேற்ற வேண்டுமென்றால் அருள் கூர்ந்து வேறு பெயரின் கீழ் பதிவேற்றவும்.[[File:$1|thumb|center|$1]]",
        "file-exists-duplicate": "கீழ்காணும் கோப்புக்கள் இந்த கோப்பை போலவே இருக்கின்றன.  {{PLURAL:$1|கோப்பு|கோப்புக்கள்}}:",
        "file-deleted-duplicate": "இந்த கோப்பை ([[:$1]])  போன்ற ஒரு கோப்பு முன்பு நீக்கப்பட்டுள்ளது.\nஅந்த கோப்பு நீக்குதல் வரலாறு, அது re-upload proceeding முன் சரிபார்க்க வேண்டும்.",
+       "file-deleted-duplicate-notitle": "இந்த கோப்பை போன்ற ஒரு கோப்பு முன்னர் அழிக்கப்பட்டுள்ளது, தலைப்பு ஏற்கனவே ஒடுக்கபட்டுள்ளது. அதை மீண்டும் பதிவேற்றவதை துவங்கும் முன் நிலைமையை ஆராய ஒடுக்கப்பட்ட கோப்பு தகவல்களை பார்க்கும் திறனுடைய ஒருவரிடம் கேளுங்கள்.",
        "uploadwarning": "பதிவேற்றல் எச்சரிக்கை",
        "uploadwarning-text": "கீழுள்ள கோப்புச் சுருக்கத்தை மாற்றி விட்டு மீண்டும் சமர்ப்பியுங்கள்",
        "savefile": "கோப்பைச் சேமி",
        "uploaddisabledtext": "கோப்பு பதிவேற்றங்கள் செயலிழக்கச் செய்யப்பட்டுள்ளன.",
        "php-uploaddisabledtext": "கோப்பு தரவேற்றம் PHP இல் முடக்கப்பட்டுள்ளது.தயவுகூர்ந்து file_uploads அமைப்பை சரிபார்க்கவும்.",
        "uploadscripted": "இந்தக் கோப்பு உலாவியால் பிழையாக விளங்கிக் கொள்ளக்கூடிய எச்.டி.எம்.எல். அல்லது வேறு நிரல்களைக் கொண்டுள்ளது.",
+       "uploadscriptednamespace": "இந்த SVG கோப்பு ஒரு சரியில்லாத பெயரிடைவெளியை \"$1\" கொண்டுள்ளது.",
+       "uploadinvalidxml": "ஏற்றபட்ட கோப்பில் உள்ள XML ஆராய முடியாது.",
        "uploadvirus": "கோப்பு நச்சுநிரலைக் (வைரஸ்) கொண்டுள்ளது! விபரங்கள்:$1",
        "uploadjava": "இது ஒரு zip கோப்பு.இதில் java.class என்ற கோப்பு உள்ளது.\nஜாவா கோப்புகளை தகவலேற்றுவது தடைசெய்யப்பட்டுள்ளது.ஏனெனில் அது பாதுகாப்பு தடைகளை மீற வழிவகுக்கும்.",
        "upload-source": "மூலக்கோப்பு",
        "backend-fail-notsame": "ஒரே மாதிரியாக இல்லாத  கோப்பு $1 ஏற்கனவே உள்ளது.",
        "backend-fail-invalidpath": "$1 இது செல்லாத  சேமிப்பு பாதை.",
        "backend-fail-delete": "\"$1\" கோப்பை நீக்க முடியவில்லை.",
+       "backend-fail-describe": "\"$1\" கோப்புக்கு மேல்தரவை மாற்ற இயலாது.",
        "backend-fail-alreadyexists": "கோப்பு  $1  ஏற்கனவே உள்ளது.",
        "backend-fail-store": "கோப்பு   $1 ஐ   $2 ல் சேமிக்க இயலவில்லை.",
        "backend-fail-copy": "\"$1\" இலிருந்து \"$2\" க்கு கோப்பை நகல் எடுக்க முடியவில்லை.",
        "backend-fail-closetemp": "தற்காலிக கோப்பை மூட முடியவில்லை.",
        "backend-fail-read": "$1 கோப்பை படிக்க இயலவில்லை .",
        "backend-fail-create": "\"$1\" கோப்பை எழுத இயலவில்லை .",
+       "backend-fail-maxsize": "கோப்பு \"$1\" ஐ எழுத முடியாது ஏனெனில் அது {{PLURAL:$2|ஒரு பைட்டை|$2 பைட்டுகளை}} விட அதிகமாக உள்ளது.",
+       "backend-fail-readonly": "சேமிப்பு பின்பகுதி \"$1\" தற்போது படிக்க மட்டும் கூடியது. காரணம்: \"<em>$2</em>\"",
+       "backend-fail-synced": "கோப்பு \"$1\" உள்ளக சேமிப்பு பின்பகுதியில் பொருந்தாத நிலையில் உள்ளது",
        "backend-fail-connect": "\"$1\" பின்புல சேமிப்புக்கு தொடர்பு கொள்ள இயலவில்லை.",
        "backend-fail-internal": "\"$1\" பின்புல சேமிப்பில் அறியாப் பிழை ஒன்று நேர்ந்துள்ளது",
        "backend-fail-contenttype": "\"$1\" இல் சேமிக்க கோப்பின் உள்ளடக்க வகையை உறுதிசெய்ய முடியவில்லை",
+       "backend-fail-batchsize": "சேமிப்பு பின்பகுதி  $1 கோப்பு குழுவை கொடுத்துள்ளது. {{PLURAL:$1|செயல்பாடு|செயல்பாடுகள்}};  $2 {{PLURAL:$2|செயல்பாடு|செயல்பாடுகளின்}} எல்லை.",
+       "backend-fail-usable": "போதுமான அனுமதி இன்மை மற்றும் தொலைந்த கோப்புகள்/கலன்கள் காரணமாக \"$1\" கோப்பை படிக்க அல்லது எழுத முடியவில்லை.",
+       "filejournal-fail-dbconnect": "\"$1\" சேமிப்பு பின்னொட்டுக்காக சர்னல் தரவுதளத்துடன் இணைக்க முடியவில்லை.",
+       "filejournal-fail-dbquery": "\"$1\" சேமிப்பு பின்னொட்டுக்காக சர்னல் தரவுதளத்துடன் புதுப்பிக்க முடியவில்லை.",
        "lockmanager-notlocked": "\"$1\" ஐ பூட்டியதை திறக்க முடியவில்லை; இது பூட்டப்படவில்லை.",
        "lockmanager-fail-closelock": "\"$1\" க்கு பூட்டிய கோப்பை மூட இயலவில்லை.",
        "lockmanager-fail-deletelock": "\"$1\" க்கான பூட்டு கோப்பை நீக்க முடியவில்லை .",
        "lockmanager-fail-releaselock": " \"$1\" க்கான பூட்டை வெளியிட முடியவில்லை.",
        "lockmanager-fail-db-bucket": "தொகுப்பு (bucket) $1 ல் போதுமான பூட்டு தரவுதளங்களை தொடர்பு கொள்ள இயலவில்லை",
        "lockmanager-fail-db-release": "தரவுதளம் $1ஐ பூட்டியதை வெளியிட முடியவில்லை",
+       "lockmanager-fail-svr-acquire": "வழங்கி $1 இன் பூட்டுகளை பெற முடியவில்லை.",
        "lockmanager-fail-svr-release": "சேவகன் $1ல் பூட்டியதை வெளியிட முடியவில்லை",
        "zip-file-open-error": "இந்த கோப்பை zip சரிபார்க்க திறக்கும் போது பிழை எதிர்ப்பட்டுள்ளது.",
        "zip-wrong-format": "குறிப்பிட்ட கோப்பு zip கோப்பு இல்லை.",
        "license": "அனுமதி:",
        "license-header": "அனுமதி",
        "nolicense": "தெரிவுச் செய்யப்படவில்லை",
+       "licenses-edit": "உரிம விருப்பங்களைத் திருத்து",
        "license-nopreview": "(முன்தோற்றம் கையிலிருப்பில் இல்லை)",
        "upload_source_url": " (நீங்கள் தெரிவு செய்த, பொதுவில் அணுக்கூடிய செல்லத்தக்க இணைய முகவரியில் உள்ள கோப்பு)",
        "upload_source_file": "(தங்களி்ன் கணினியிலிருந்து தங்களால் தேர்ந்தெடுக்கப்பட்ட கோப்பு)",
+       "listfiles-delete": "நீக்குக",
        "listfiles-summary": "இச்சிறப்புப் பக்கம் பதிவேற்றப்பட்ட கோப்புகளைப் பட்டியலிடுகிறது.",
        "listfiles_search_for": "பின்வரும் பெயருள்ள ஊடகக் கோப்பைத் தேடு:",
        "listfiles-userdoesnotexist": "பயனர் கணக்கு \"$1\" பதியப்படவில்லை",
        "listfiles_size": "அளவு",
        "listfiles_description": "விளக்கம்",
        "listfiles_count": "பதிப்புக்கள்",
+       "listfiles-show-all": "படங்களின் பழைய பதிப்பை உள்ளடக்கியது",
        "listfiles-latestversion": "தற்போதய பதிப்பு",
        "listfiles-latestversion-yes": "ஆம்",
        "listfiles-latestversion-no": "இல்லை",
        "nolinkstoimage": "இப் படிமத்துக்கு இணைக்கப்பட்டுள்ள பக்கங்கள் எதுவும் இல்லை.",
        "morelinkstoimage": "இந்த கோப்பிற்கான [[Special:WhatLinksHere/$1|அதிக இணைப்புகளை]] பார்.",
        "linkstoimage-redirect": "$1(கோப்பு திசைதிருப்பு)$2",
+       "duplicatesoffile": "இந்த கோப்பினுடைய பின்வரும் {{PLURAL:$1| போலியானது|$1 கோப்புகள் ஒத்த போலியானவை}}([[Special:FileDuplicateSearch/$2|விவரங்களுக்கு]]):",
        "sharedupload": "இக்கோப்பு $1 இல் இருநது, இதனை ஏனைய திட்டங்களிலும் பயன்படுத்தப்படலாம்.",
        "sharedupload-desc-there": "இந்த கோப்பு  $1 லிருந்து பெறப்பட்டுள்ளது மற்றும் இதர திட்டங்களுக்கு இது பயன்படுத்தப்படலாம்.\n மேலும் விவரங்களுக்கு தயவுகூர்ந்து பார்க்கவும், [ $2  கோப்பு விளக்க பக்கம்].",
        "sharedupload-desc-here": "$1-ல் இருக்கும் இக்கோப்பை மற்ற திட்டங்களிலும் பயன்படுத்தப்படலாம்.\nஇதனைப் [$2 கோப்பின் விவரப்பக்கம்] பற்றிய விவரங்கள் கீழே கொடுக்கப்பட்டுள்ளது.",
+       "sharedupload-desc-edit": "கோப்பு $1 இலுள்ளது மேலும் மற்ற திட்டங்களால் பயன்படுத்தப்படலாம்.\nநீங்கள் அதனுடைய [$2 கோப்பு விவரப் பக்கத்தில்] விவரங்களை திருத்த விரும்பலாம்.",
+       "sharedupload-desc-create": "கோப்பு $1 இலுள்ளது மேலும் மற்ற திட்டங்களால் பயன்படுத்தப்படலாம்.\nநீங்கள் அதனுடைய [$2 கோப்பு விவரப் பக்கத்தில்] விவரங்களை திருத்த விரும்பலாம்.",
        "filepage-nofile": "இப்பெயரில் ஒரு கோப்பும் இல்லை.",
        "filepage-nofile-link": "இப்பெயரில் ஒரு கோப்பும் இல்லை, ஆனால் நீங்கள் [$1 ஐ தரவேற்றலாம்]",
        "uploadnewversion-linktext": "இப்படிமத்தின் புதிய பதிப்பை பதிவேற்று",
        "filedelete-maintenance": "கோப்புகள் நீக்கம் மற்றும் மீட்பு ஆகியவை பராமரிப்பின் பொழுது தற்காலிகமாக முடக்கப்பட்டுள்ளது.",
        "filedelete-maintenance-title": "கோப்பை நீக்க முடியாது",
        "mimesearch": "பலநோக்கு இணைய அஞ்சல் நீட்சித் தேடல்",
-       "mimesearch-summary": "இப்பக்கம் பலநோக்கு இணைய அஞ்சல் நீட்சி வகையின் படி கோப்புக்களை வடிக்கட்ட உதவுகிறது. உள்ளீடு:உள்ளடக்க வகை/உபவகை, எ+கா <code>image/jpeg</code>.",
+       "mimesearch-summary": "இப்பக்கம் பலநோக்கு MIME வகையின் படி கோப்புக்களை வடிக்கட்டலை செயல்படுத்துகிறது. உள்ளீடு:உள்ளடக்க வகை/உபவகை/*, e.g. <code>image/jpeg</code>.",
        "mimetype": "பலநோக்கு இணைய அஞ்சல் நீட்சி வகை:",
        "download": "தரவிறக்கு",
        "unwatchedpages": "கவனிக்கப்படாத பக்கங்கள்",
        "listredirects": "வழிமாற்றிகளின் பட்டியல்",
+       "listduplicatedfiles": "ஒத்த தோற்றம் கொண்ட கோப்புகளின் பட்டியல்",
+       "listduplicatedfiles-summary": "மற்றொரு கோப்பின் புதிய பதிப்பை போன்று ஒத்த கோப்புகளை கொண்டவற்றின் பட்டியல். இவ்விடத்தைச் சேர்ந்த கோப்புகள் மட்டும் கணக்கில் கொள்ளப்பட்டுள்ளன.",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]] [[$3|{{PLURAL:$2|ஒரு போலி|$2 போலிகளைக்}}]] கொண்டுள்ளது.",
        "unusedtemplates": "பயன்படுத்தப்படாத வார்ப்புருக்கள்",
        "unusedtemplatestext": "இப்பக்கம் வேறு பக்கங்களில் பயன்படுத்தப்படாத {{ns:template}} பெயர்வெளிப் பக்கங்களை பட்டியலிடுகிறது. இவ்வார்ப்புருக்களை நீக்கு முன்னர் வார்ப்புருவுக்கான ஏனைய இணைப்புக்களையும் ஒரு முறை சரி பார்க்கவும்.",
        "unusedtemplateswlh": "ஏனைய இணைப்புகள்",
        "randompage": "ஏதாவது ஒரு பக்கம்",
        "randompage-nopages": "இந்த {{PLURAL:$2|namespace|பெயர்வெளிகளில்}}: $1 பக்கங்கள் எதுவுமில்லை.",
+       "randomincategory": "பகுப்பில் ஏதாவது ஒரு பக்கம்",
+       "randomincategory-invalidcategory": "\"$1\" ஒரு பொருந்தாத பகுப்பின் பெயர்.",
+       "randomincategory-nopages": "[[:Category:$1|$1]] பகுப்பில் ஒரு பக்கமும் இல்லை.",
+       "randomincategory-category": "பகுப்பு:",
+       "randomincategory-legend": "பகுப்பில் ஏதாவது ஒரு பக்கம்",
        "randomredirect": "குறிப்பில்வழி வழிமாற்று",
        "randomredirect-nopages": "\"$1\" பெயர்வெளியில் வழிமாற்றுப் பக்கங்கள் எதுவுமில்லை.",
        "statistics": "புள்ளிவிவரங்கள்",
        "statistics-users-active": "தொடர் பங்களிப்பாளர்கள் (பயனர்கள்)",
        "statistics-users-active-desc": "கடந்த {{PLURAL:$1|நாள்|$1 நாட்களில்}} ஒன்று அல்லது அதற்கு மேற்பட்ட செயலைச் செய்த பயனர்கள்",
        "pageswithprop": "பக்கப் பண்புடைய பக்கங்கள்",
+       "pageswithprop-legend": "பக்கப் பண்புடைய பக்கங்கள்",
+       "pageswithprop-text": "குறிப்பிட்ட பக்கப்பண்பு கொண்ட பக்கங்களை இது பட்டியலிடுகிறது.",
+       "pageswithprop-prop": "பண்பின் பெயர்:",
        "pageswithprop-submit": "செல்க",
+       "pageswithprop-prophidden-long": "நீளமான பண்பின் மதிப்பு மறைக்கப்பட்டது ($1)",
+       "pageswithprop-prophidden-binary": "ஈரடி பண்பின் மதிப்பு மறைக்கப்பட்டது ($1)",
        "doubleredirects": "இரட்டை வழிமாற்றுகள்",
        "doubleredirectstext": "இந்தப் பட்டியல் போலியான நேர்மதிப்புக்களைக் கொண்டிருக்கக்கூடும். இது வழக்கமாக, இணைப்புடன் கூடிய மேலதிக உரை முதலாவது #வழிமாற்றுக்குக் கீழ் இருப்பதைக் குறிக்கும்.ஒவ்வொரு வரியும், முதலாம் இரண்டாம் வழிமாற்றுகளுக்கு இணைப்புகளைக் கொண்டிருப்பதுடன், இரண்டாவது வழிமாற்று உரையின் முதல் வரிக்கும் இணைப்பைக் கொண்டிருக்கும், இது வழக்கமாக முதலாவது வழிமாற்று குறித்துக் காட்ட வேண்டிய \"உண்மையான\" இலக்குக் கட்டுரையைக் கொடுக்கும்.",
        "double-redirect-fixed-move": "[[$1]] நகர்த்தப்பட்டுவிட்டது. இப்பொழுது [[$2]] உக்கு வழிமாற்று தருகின்றது.",
        "fewestrevisions": "மிகக் குறைந்த திருத்தங்களைக் கொண்டப் பக்கங்கள்",
        "nbytes": "$1 {{PLURAL:$1|பைட்டு|பைட்டுகள்}}",
        "ncategories": "$1 {{PLURAL:$1|பகுப்பு|பகுப்புகள்}}",
+       "ninterwikis": "$1 {{PLURAL:$1|இடைவிக்கி|இடைவிக்கிகள்}}",
        "nlinks": "$1 {{PLURAL:$1|இணைப்பு|இணைப்புக்கள்}}",
        "nmembers": "$1 {{PLURAL:$1|உறுப்பினர்|உறுப்பினர்கள்}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|உறுப்பினர்|உறுப்பினர்கள்}}",
        "nrevisions": "{{PLURAL:$1|ஒரு திருத்தம்|$1 திருத்தங்கள்}}",
        "nviews": "{{PLURAL:$1|ஒரு பார்வை|$1 பார்வைகள்}}",
        "nimagelinks": "$1 {{PLURAL:$!|பக்கத்தில்|பக்கங்களில்}} பயன்படுத்தப்பட்டது",
        "wantedpages": "வேண்டிய பக்கங்கள்",
        "wantedpages-badtitle": "முடிவு குழு :$1 லில் உள்ள செல்லாத தலைப்பு",
        "wantedfiles": "வேண்டிய கோப்புகள்",
+       "wantedfiletext-nocat-noforeign": "பின்வரும் கோப்புகள் பயன்படுத்தபட்டுள்ளன ஆனால் காணக்கிடைக்கவில்லை.",
        "wantedtemplates": "வேண்டிய வார்ப்புருக்கள்",
        "mostlinked": "பக்கங்களுக்கு அதிகமாக இணைக்கப்பட்டவை",
        "mostlinkedcategories": "அதிகம் இணைக்கப்பட்ட பகுப்புகள்",
-       "mostlinkedtemplates": "à®\85திà®\95à®®à¯\8d à®\87ணà¯\88à®\95à¯\8dà®\95பà¯\8dபà®\9fà¯\8dà®\9f à®µà®¾à®°à¯\8dபà¯\8dபà¯\81à®°à¯\81à®\95்கள்",
+       "mostlinkedtemplates": "à®\85திà®\95à®®à¯\8d à®\87ணà¯\88à®\95à¯\8dà®\95பà¯\8dபà®\9fà¯\8dà®\9f à®ªà®\95à¯\8dà®\95à®\99்கள்",
        "mostcategories": "பகுப்புகளுக்கு அதிகமாக இணைக்கப்பட்டவை",
        "mostimages": "படிமங்களுக்கு அதிகமாக இணைக்கப்பட்டவை",
        "mostinterwikis": "அதிக விக்கியிடை இணைப்பு கொண்ட பக்கங்கள்",
        "mostrevisions": "அதிக திருத்தங்களைக் கொண்ட கட்டுரைகள்",
        "prefixindex": "முன்னொட்டுச் சுட்டியுடன் உள்ள அனைத்துப் பக்கங்களும்",
        "prefixindex-namespace": "முன்னொட்டு ( $1  பயனர்வெளி)கொண்ட அனைத்து பக்கங்களும்",
+       "prefixindex-strip": "பட்டியலின் வரி முன்னொட்டு",
        "shortpages": "குறும் பக்கங்கள்",
        "longpages": "நீளமான பக்கங்கள்",
        "deadendpages": "தொடராப் பக்கங்கள்",
        "protectedpages": "காக்கப்பட்ட பக்கங்கள்",
        "protectedpages-indef": "காலவரையற்ற காப்பு (protections) மட்டும்",
        "protectedpages-cascade": "வடிவமான காப்புகள் (protections) மட்டும்",
+       "protectedpages-noredirect": "வழிமாற்றுகளை மறை",
        "protectedpagesempty": "இக்காரணிகளுடன் காக்கப்பட்டப் பக்கங்கள் கிடையாது.",
+       "protectedpages-timestamp": "நேரமுத்திரை",
+       "protectedpages-page": "பக்கம்",
+       "protectedpages-expiry": "காலாவதியாகிறது",
+       "protectedpages-performer": "பயனரை பாதுகாக்கிறது",
+       "protectedpages-params": "வினைக்கூறுகள் பாதுகாப்பு",
+       "protectedpages-reason": "காரணம்",
+       "protectedpages-unknown-timestamp": "அறியப்படாதது",
+       "protectedpages-unknown-performer": "அறியப்படாத பயனீர்",
        "protectedtitles": "காக்கப்பட்ட தலைப்புகள்",
        "protectedtitlesempty": "இக்காரணிகளுடன் காக்கப்பட்டப் தலைப்புகள் எதுவும் கிடையாது.",
        "listusers": "பயனர் அட்டவணை",
        "listusers-editsonly": "தொகுத்த பயனர்களை மட்டும் காட்டு",
        "listusers-creationsort": "உருவாக்கிய தேதி அடிப்படையில் வரிசைப்படுத்து",
+       "listusers-desc": "இறங்கு வரிசையில் பிரி",
        "usereditcount": "$1 {{PLURAL:$1|தொகு|தொகுத்தல்கள்}}",
        "usercreated": "{{GENDER:$3|Created}} $1 தேதி $2 மணியில் உருவாக்கப்பட்டது",
        "newpages": "புதிய பக்கங்கள்",
        "pager-older-n": "{{PLURAL:$1|பழைய ஒரு|பழைய $1}}",
        "suppress": "கவனக்குறைவு",
        "querypage-disabled": "செயல்பாட்டு காரணங்களுக்காக இந்த சிறப்புப் பக்கம் முடக்கப்பட்டுள்ளது.",
+       "apihelp": "ஏபிஐ உதவி",
+       "apihelp-no-such-module": "''$1'' என்ற மாடுயூல் காணப்படவில்லை.",
        "booksources": "நூல் மூலங்கள்",
        "booksources-search-legend": "நூல் மூலங்களைத் தேடு",
        "booksources-search": "தேடுக",
        "logempty": "பொருத்தமான பதிவுகள் யாதுமில்லை.",
        "log-title-wildcard": "இவ்வுரையுடன் தொடங்கும் தலைப்புகளைத் தேடு",
        "showhideselectedlogentries": "தேர்ந்தெடுத்த குறிப்பேடு உள்ளீடுகள் காண்பி/மறை",
+       "log-edit-tags": "தேர்ந்தெடுத்த செயற்பாட்டு பதிவுகளின் அடையாளங்களைத் திருத்து",
        "allpages": "அனைத்துப் பக்கங்கள்",
        "nextpage": "அடுத்த பக்கம் ($1)",
        "prevpage": "முந்திய பக்கம் ($1)",
        "allpagesbadtitle": "கொடுக்கப்பட்ட தலைப்பு செல்லுபடியற்றது அல்லது பிழையான விக்கியிடை அல்லது மொழி முன்னொட்டைக் கொண்டுள்ளது. இது தலைப்புக்களில் பயன்படுத்த முடியாத எழுத்துக்களையும் கொண்டிருக்கலாம்.",
        "allpages-bad-ns": "{{SITENAME}} தளத்தில் \"$1\" பெயர்வெளி கிடையாது.",
        "allpages-hide-redirects": "வழிமாற்றுகளை மறை",
+       "cachedspecial-viewing-cached-ttl": "இப்பக்கத்தின் சேமிக்கப்பட்ட வடிவத்தை நீங்கள் பார்க்கின்றீர்கள். இது $1 பழையதாக இருக்கலாம்.",
+       "cachedspecial-viewing-cached-ts": "நீங்கள் இப்பக்கத்தின் சேமிக்கப்பட்ட வடிவத்தை பார்க்கின்றீர்கள், இது உண்மையில்லாததாகவும் இருக்கலாம்.",
        "cachedspecial-refresh-now": "அண்மையான பதிப்பை காண்க",
        "categories": "பகுப்புகள்",
        "categoriespagetext": "கீழே கொடுத்துள்ள பக்கங்கள் அல்லது ஊடகங்கள் இந்த {{PLURAL:$1|பகுப்பை|பகுப்புக்களை}} கொண்டுள்ளது.\n[[Special:UnusedCategories|உபயோகப்படுத்தப்படாத  பகுப்புகள்]] இங்கே காண்பிக்கப்படவில்லை.\nஇத்துடன் [[Special:WantedCategories|தேவைப்படும் பகுப்புகளையும்]] பார்க்கவும்.",
        "listgrouprights-removegroup-self": "{{PLURAL:$2| group|groups}}  ஐ நீக்கு சொந்த கணக்கு:$1 லிருந்து.",
        "listgrouprights-addgroup-self-all": "எல்லா குழுவையும் சொந்த கணக்கில் சேர்",
        "listgrouprights-removegroup-self-all": "எல்லா குழுவையும் சொந்த கணக்கில் இருந்து  நீக்கு",
+       "listgrouprights-namespaceprotection-header": "பெயர்வெளி கட்டுப்பாடு",
+       "listgrouprights-namespaceprotection-namespace": "பெயர்வெளி",
+       "listgrouprights-namespaceprotection-restrictedto": "பயனரை திருத்த அனுமதிக்கும் உரிமை(கள்)",
+       "trackingcategories": "பகுப்புகளை தடமறி",
+       "trackingcategories-msg": "பகுப்புகளை தடமறிதல்",
+       "trackingcategories-name": "செய்திப் பெயர்",
+       "trackingcategories-desc": "பகுப்பு சேர்க்கை வரையறைகள்",
+       "broken-file-category-desc": "இப்பக்கம் உடைந்த கோப்பு இணைப்பைக் கொண்டுள்ளது (இல்லாத கோப்புடன் பொதிக்கபட்ட இணைப்பு).",
+       "trackingcategories-nodesc": "விவரணம் கிடைக்கவில்லை",
+       "trackingcategories-disabled": "பகுப்பு முடக்கபட்டுள்ளது",
        "mailnologin": "அனுப்பும் முகவரி இல்லை",
        "mailnologintext": "நீங்கள்[[Special:UserLogin|புகுபதிகை செய்திருப்பதுடன்]]\nஏனைய பயனர்களுக்கு மின்னஞ்சல் அனுப்பக்கூடியத்தாக செல்லுபடியாகக்கூடிய மின்னஞ்சல் முகவரியொன்றும் உங்களுடைய  [[Special:Preferences|விருப்பத் தெரிவுகளில்]] கொடுபட்டிருக்கவேண்டும்.",
        "emailuser": "இப் பயனருக்கு மின்னஞ்சல் செய்",
        "emailuser-title-target": "{{GENDER:$1|user}} என்ற பயனருக்கு மின்னஞ்சல் செய்",
        "emailuser-title-notarget": "பயனருக்கு மின்னஞ்சல் செய்",
        "emailpage": "மின்னஞ்சல் பயனர்",
-       "emailpagetext": "நீங்கள் கீழ்வரும் படிவத்தை உபயோகித்து இந்த பயனருக்கு மின்னஞ்சல் செய்யலாம்.\n\n[[Special:Preferences|என் விருப்பத்தேர்வுகளில்]] நீங்கள் கொடுத்துள்ள மின்னஞ்சல் முகவரி மின்னஞ்சலின் \"From\" முகவரியாகக் காட்சி தரும், இதனால் பெறுநர் உங்களுக்கு நேரடியாக பதில் எழுத முடியும்.",
+       "emailpagetext": "நீங்கள் கீழ்வரும் படிவத்தை உபயோகித்து {{GENDER:$1|பயனருக்கு}} மின்னஞ்சல் செய்யலாம்.\n[[Special:Preferences|என் விருப்பத்தேர்வுகளில்]] நீங்கள் கொடுத்துள்ள மின்னஞ்சல் முகவரி மின்னஞ்சலின் \"From\" முகவரியாகக் காட்சி தரும், இதனால் பெறுநர் உங்களுக்கு நேரடியாக பதில் எழுத முடியும்.",
        "defemailsubject": "{{SITENAME}} மின்னஞ்சல் பயனர்  \"$1\"-இடமிருந்து.",
        "usermaildisabled": "பயனரின் மின்னஞ்சல் செயலிழக்கச் செய்யப்பட்டுள்ளது",
        "usermaildisabledtext": "நீங்கள் மற்ற பயனர்களுக்கு இந்த விக்கியில் மின்னஞ்சல் அனுப்ப முடியாது.",
        "emailccsubject": "$1 பயனருக்கான உங்கள் மின்னஞ்சலின் நகல்: $2",
        "emailsent": "மின்னஞ்சல் அனுப்பப்பட்டது",
        "emailsenttext": "உங்கள் மின்னஞ்சல் செய்தி அனுப்பப்பட்டது.",
-       "emailuserfooter": "இந்த மின்னஞ்சல் $1ஆல்  $2க்கு   \"மின்னஞ்சல் பயனர்\" செயல்பாடு   மூலம் {{SITENAME}} லிருந்து அனுப்பப்பட்டது.",
+       "emailuserfooter": "இந்த மின்னஞ்சல் $1ஆல்  $2க்கு   \"{{int:emailpage}}\" செயல்பாடு   மூலம் {{SITENAME}} லிருந்து அனுப்பப்பட்டது.",
        "usermessage-summary": "அமைப்பின் தகவலை விட்டுவிடுகிறது.",
        "usermessage-editor": "அமைப்பு தூதன்(messenger).",
        "watchlist": "கவனிப்புப் பட்டியல்",
        "watchnologin": "புகுபதிகை செய்யப்படவில்லை.",
        "addwatch": "கவனிப்புப் பட்டியலில் சேர்",
        "addedwatchtext": "\"[[:$1]]\" பக்கம் உங்கள் [[Special:Watchlist|கவனிப்புப் பக்கத்தில்]] சேர்க்கப்பட்டுள்ளது. இந்தப் பக்கத்துக்கு எதிர்காலத்தில் செய்யப்படவுள்ள மாற்றங்களும், அதனோடிணைந்த பேச்சுப் பக்கமும், அங்கே பட்டியலிடப்படும். அத்துடன் தெரிந்தெடுக்க வசதியாக [[Special:RecentChanges|அண்மைய மாற்றங்களின் பட்டியலில்]] இது தடித்த எழுத்துக்களில் காட்டப்படும். பின்னர், இப் பக்கத்தை உங்கள் கவனிப்புப் பட்டியலிலிருந்து நீக்க விரும்பினால், பக்கச் சட்டத்திலுள்ள ''கவனிப்பு நீக்கு'' என்ற இணைப்பைச் சொடுக்கவும்.",
+       "addedwatchtext-short": "பக்கம் \"$1\" உங்கள் கவனிப்புப் பட்டியலில் சேர்க்கப்பட்டது.",
        "removewatch": "கவனிப்புப் பட்டியலிருந்து நீக்கு",
        "removedwatchtext": "\"[[:$1]]\" பக்கம் [[Special:Watchlist|உங்கள் கவனிப்புப் பட்டியலில்]] இருந்து நீக்கப்பட்டது.",
+       "removedwatchtext-short": "பக்கம் \"$1\" உங்கள் கவனிப்புப் பட்டியலில் இருந்து நீக்கப்பட்டது.",
        "watch": "கவனி",
        "watchthispage": "இந்தப் பக்கத்தைக் கவனிக்கவும்",
        "unwatch": "கவனிப்புநீக்கு",
        "unwatchthispage": "கவனிப்பதை நிறுத்தவும்",
        "notanarticle": "ஒரு கட்டுரைப் பக்கமல்ல",
        "notvisiblerev": "திருத்தம் நீக்கப்பட்டுள்ளது",
-       "watchlist-details": "பேச்சுப் பக்கங்களைத் தவிர்த்து, {{PLURAL:$1|$1 பக்கம் கவனிக்கப்பட்டது.|$1 பக்கங்கள் கவனிக்கப்பட்டன.}}",
+       "watchlist-details": "பேச்சுப் பக்கங்களை தனியே கணக்கிடுவதைத் தவிர்த்து, உங்கள் கவனிப்புப் பட்டியலில் {{PLURAL:$1|$1 பக்கம் உள்ளது.|$1 பக்கங்கள் உள்ளன.}}",
        "wlheader-enotif": "மின்னஞ்சல் அறிவிப்புகள் செயல்படுத்தப்பட்டுள்ளன.",
        "wlheader-showupdated": "உங்கள் கடைசி வருகைக்குப் பின்னர் மாற்றங்கள் செய்யப்பட்ட பக்கங்கள் '''தடித்த எழுத்துக்களில்''' காட்டப்பட்டுள்ளன",
        "wlnote": "பின்வருவன கடைசி {{PLURAL:$2|மணித்தியாலத்தில்|'''$2''' மணித்தியாலங்களில்}} செய்யப்பட்ட {{PLURAL:$1|கடைசி ஒரு மாற்றமாகும்|கடைசி $1 மாற்றங்களாகும்}}.",
        "watcherrortext": "\"$1\". உக்கான கவனிப்புப் பட்டியல் அமைப்பை மாற்றும்பொழுது பிழை நேர்ந்தது",
        "enotif_reset": "எல்லாப் பக்கங்களையும் பார்வையிட்டதாக குறித்துக்கொள்",
        "enotif_impersonal_salutation": "{{SITENAME}} பயனர்",
+       "enotif_subject_deleted": "{{SITENAME}} பக்கம் $1 ஆனது $2 ஆல் {{GENDER:$2|அழிக்கப்பட்டது}}",
+       "enotif_subject_created": "{{SITENAME}} பக்கம் $1 ஆனது $2 ஆல் {{GENDER:$2|உருவாக்கப்பட்டது}}",
+       "enotif_subject_moved": "{{SITENAME}} பக்கம் $1 ஆனது $2 ஆல் {{GENDER:$2|நகர்த்தப்பட்டது}}",
+       "enotif_subject_restored": "{{SITENAME}} பக்கம் $1 ஆனது $2 ஆல் {{GENDER:$2|மீளமைக்கப்பட்டது}}",
+       "enotif_subject_changed": "{{SITENAME}} பக்கம் $1 ஆனது $2 ஆல் {{GENDER:$2|மாற்றப்பட்டது}}",
        "enotif_lastvisited": "உங்கள் கடைசி வருகைக்குப் பின்னர் நடைபெற்றுள்ள மாற்றங்களைக் காண $1 பக்கத்தைப் பார்க்கவும்.",
        "enotif_lastdiff": "மாற்றங்களைக் காண  $1 பக்கத்தைப் பார்.",
        "enotif_anon_editor": "அடையாளம் காட்டாத பயனர் $1",
        "delete-edit-reasonlist": "நீக்கல் காரணங்களைத் தொகு",
        "delete-toobig": "இப்பக்கம் அதிகமான திருத்தங்களை கொண்டுள்ளது, குறிப்பாக $1 {{PLURAL:$1|திருத்தத்திற்கு|திருத்தங்களிற்கு}} மேல்.\n{{SITENAME}} தளத்தின் தரவுகள் தற்செயலாக அழிந்துப்போவதை தடுப்பதற்க்காக இவ்வாறான பக்கங்கள் நீக்கப்படுவது முடக்கப்பட்டுள்ளது.",
        "delete-warning-toobig": "இப்பக்கம் அதிகமான திருத்தங்களை கொண்டுள்ளது, குறிப்பாக $1 {{PLURAL:$1|திருத்தத்திற்கு|திருத்தங்களிற்கு}} மேல்.\nஇப்பக்கத்தை நீக்குவது {{SITENAME}} தளத்தின் தரவுவழங்கனின் செயற்பாட்டை பாதிக்கலாம்;\nகவனத்துடன் முன்னெடுக்கவும்.",
+       "deleteprotected": "இந்த பக்கத்தை நீங்கள் அழிக்க முடியாது ஏனெனில் இது பாதுகாக்கப்பட்டது.",
        "rollback": "முன்நிலையாக்கத் தொகுப்புகள்",
        "rollbacklink": "முன்நிலையாக்கு",
        "rollbacklinkcount": "$1 {{PLURAL:$1|தொகுப்பை|தொகுப்புகளை}} முன்நிலையாக்குக",
        "sessionfailure-title": "அமர்வு தோல்வி",
        "sessionfailure": "உங்கள் புகுபதிகை அமர்வில் பிரச்சினை உள்ளது போல தோன்றுகிறது. செல்வழி திருட்டுக் கெதிரான முன்னெச்செரிக்கையாக இந்த நடவடிக்கை இரத்துச் செய்யப்பட்டது. உங்கள் உலாவியின் பின் செல்வதற்கான பொத்தானைச் செருகி மீண்டும் முயலவும்.",
        "protectlogpage": "காப்புப் பதிகை",
-       "protectlogtext": "பினà¯\8dவரà¯\81வதà¯\81 à®ªà®\95à¯\8dà®\95 à®¤à®¿à®±à®ªà¯\8dபà¯\81à®\95à¯\8dà®\95ளதà¯\81à®®à¯\8d à®ªà¯\82à®\9fà¯\8dà®\9fà¯\81à®\95à¯\8dà®\95ளதà¯\81à®®் பட்டியலாகும். தற்போது நடைமுறையிலுள்ள காக்கப்பட்டப் பக்கங்களைக் காண [[Special:ProtectedPages|காக்கப்பட்ட பக்கங்களின் பட்டியலைப்]] பார்க்கவும்.",
+       "protectlogtext": "பினà¯\8dவரà¯\81வதà¯\81 à®ªà®\95à¯\8dà®\95 à®ªà®¾à®¤à¯\81à®\95ாபà¯\8dபà¯\81 à®®à®¾à®±à¯\8dà®±à®\99à¯\8dà®\95ளின் பட்டியலாகும். தற்போது நடைமுறையிலுள்ள காக்கப்பட்டப் பக்கங்களைக் காண [[Special:ProtectedPages|காக்கப்பட்ட பக்கங்களின் பட்டியலைப்]] பார்க்கவும்.",
        "protectedarticle": "\"[[$1]]\" காக்கப்பட்டது",
        "modifiedarticleprotection": "\"[[$1]]\" பக்கத்திற்கான காப்பின் அளவு மாற்றப்பட்டது",
-       "unprotectedarticle": "\"[[$1]]\" à®ªà®\95à¯\8dà®\95தà¯\8dதினà¯\8d காப்பு நீக்கப்பட்டது",
+       "unprotectedarticle": "\"[[$1]]\" à®\87லிரà¯\81நà¯\8dதà¯\81 காப்பு நீக்கப்பட்டது",
        "movedarticleprotection": "காப்பு அமைப்புகள் \"[[$2]]\" இல் இருந்து \"[[$1]]\" க்கு மாற்றப்பட்டது",
        "protect-title": "\"$1\" பக்கத்துக்கான காப்பு அமைப்பு",
        "protect-title-notallowed": " \"$1\" இன் பாதுகாப்பு அளவினைப் பார்",
        "prot_1movedto2": "[[$1]], [[$2]] என்றத் தலைப்புக்கு நகர்த்தப்பட்டுள்ளது.",
        "protect-badnamespace-title": "பாதுகாக்க முடியாத பெயரிடைவெளி",
        "protect-badnamespace-text": "இந்த பெயரிடைவெளியில் உள்ள  பக்கங்கள் பாதுகாக்கப்படாது.",
+       "protect-norestrictiontypes-text": "கட்டுப்பாடு வகைகள் இல்லாததால் இப்பக்கத்தை காப்பிட முடியாது.",
        "protect-norestrictiontypes-title": "பாதுகாக்க முடியாத பக்கங்கள்",
        "protect-legend": "காப்பை உறுதிப்படுத்து",
        "protectcomment": "காரணம்:",
        "protect-locked-blocked": "நீங்கள் தடுக்கப்பட்டுள்ள நிலையில் பக்க காப்பு நிலைகளை மாற்ற முடியாது. தற்போதை பக்க காப்பு நிலை பின்வருமாறு '''$1''':",
        "protect-locked-dblock": "தற்போதுள்ள தரவுத்தள பூட்டின் காரணமாக பக்க காப்பு நிலைகள் மாற்றப் படமுடியாது.\n'''$1''' பக்கத்துக்கான தற்போதைய அமைவுகள்:",
        "protect-locked-access": "உங்கள் பயனர் கணக்குகு இப்பக்கத்தின் காப்புநிலையை மாற்றுவதற்கான அனுமதில் இல்லை.\n'''$1''' பக்கத்துக்கான நடப்பு அமைப்புகள் பின்வருமாறு:",
-       "protect-cascadeon": "à®\87நà¯\8dதபà¯\8dபà®\95à¯\8dà®\95à®®à¯\8d à®ªà®\9fிநிலà¯\88 à®\95ாபà¯\8dபà¯\81à®\95à¯\81à®\9fà¯\8dபà®\9fà¯\81தà¯\8dதபà¯\8dபà®\9fà¯\8dà®\9f {{PLURAL:$1|பà®\95à¯\8dà®\95தà¯\8dதிறà¯\8dà®\95à¯\81|பà®\95à¯\8dà®\95à®\99à¯\8dà®\95ளிறà¯\8dà®\95à¯\81}} à®\87ணà¯\88à®\95à¯\8dà®\95பà¯\8dபà®\9fà¯\8dà®\9fà¯\81ளà¯\8dளமà¯\88யால் காப்புச் செய்யப்பட்டுள்ளது. இந்த பக்கத்தின் காப்பு நிலையை நீங்கள் மாற்றம் செய்யலாம் எனினும் இது படிநிலை காப்பினை மாற்றம் செய்யாது.",
+       "protect-cascadeon": "பà®\9fிநிலà¯\88 à®\95ாபà¯\8dபà¯\81à®\95à¯\81à®\9fà¯\8dபà®\9fà¯\81தà¯\8dதபà¯\8dபà®\9fà¯\8dà®\9f {{PLURAL:$1|பà®\95à¯\8dà®\95தà¯\8dதிறà¯\8dà®\95à¯\81|பà®\95à¯\8dà®\95à®\99à¯\8dà®\95ளிறà¯\8dà®\95à¯\81}} à®\87ணà¯\88à®\95à¯\8dà®\95பà¯\8dபà®\9fà¯\8dà®\9fà¯\81ளà¯\8dளமà¯\88யாலà¯\8d à®\87நà¯\8dத à®ªà®\95à¯\8dà®\95à®®் காப்புச் செய்யப்பட்டுள்ளது. இந்த பக்கத்தின் காப்பு நிலையை நீங்கள் மாற்றம் செய்யலாம் எனினும் இது படிநிலை காப்பினை மாற்றம் செய்யாது.",
        "protect-default": "அனைத்துப் பயனரையும் உள்ளிடு",
        "protect-fallback": "\"$1\" அனுமதி பெற்ற பயனர்களுக்கு மட்டும் இசைவளி",
        "protect-level-autoconfirmed": "தானாக உறுதியளிக்கப்பட்ட பயனர்களை மட்டும் அனுமதி",
        "protect-othertime": "வேறு நேரம்:",
        "protect-othertime-op": "வேறு நேரம்",
        "protect-existing-expiry": "தற்போதுள்ள  காலாவதியாகும் நேரம்:  $3 ,$2",
+       "protect-existing-expiry-infinity": "தற்போதைய காலவதி நேரம்: முடிவிலி",
        "protect-otherreason": "வேறு மேலதிக காரணம்:",
        "protect-otherreason-op": "வேறு காரணம்",
        "protect-dropdown": "* பொதுவான பாதுகாப்பு காரணங்கள்\n ** அதிகப்படியான காழ்ப்புணர்ச்சி\n ** அதிக spamming\n ** பதில் திருத்து warring\n ** அதிக போக்குவரத்து பக்கம்",
        "namespace": "பெயர்வெளி:",
        "invert": "தெரிவைத் தலைகீழாக்கு",
        "tooltip-invert": "தேர்ந்தெடுத்த பெயரிடைவெளி (மற்றும் சரிபார்த்து இருந்தால் தொடர்புடைய பெயரிடைவெளி) வரம்பிற்குள் பக்கங்களை மறைக்க இந்த பெட்டியை தேர்வு செய்.",
+       "tooltip-whatlinkshere-invert": "தேர்ந்தெடுத்த பெயர்வெளியில் உள்ள பக்கங்களிலிருந்து இணைப்புகளை மறைக்க இந்த பெட்டியைத் தேர்ந்தெடு.",
        "namespace_association": "தொடர்புடைய  பெயர்வெளி",
+       "tooltip-namespace_association": "தேர்ந்தெடுக்கப்பட்ட பெயர்வெளியுடன் தொடர்புடைய தலைப்பு பெயர்வெளி அல்லது பேச்சை இணைக்கவும் இந்த பெட்டியைத் தேர்ந்தெடு",
        "blanknamespace": "(முதன்மை)",
        "contributions": "{{GENDER:$1|பயனர்}} பங்களிப்புக்கள்",
        "contributions-title": "$1 இற்கான பயனர் பங்களிப்புகள்",
        "mycontris": "பங்களிப்புக்கள்",
-       "contribsub2": "$1 பயனரின் ($2)",
+       "contribsub2": "{{GENDER:$3|$1}} க்காக ($2)",
+       "contributions-userdoesnotexist": "பயனர் கணக்கு \"$1\" ஆனது பதியப்படவில்லை.",
        "nocontribs": "இந்த நிபந்தனையுடன் ஒத்துப்போகும் வகையில் மாற்றங்களெதுவும் காணப்படவில்லை.",
        "uctop": "(தற்போதைய)",
        "month": "மாதம் உட்பட முந்திய:",
        "sp-contributions-search": "பங்களிப்புகளைத் தேடு",
        "sp-contributions-username": "ஐ.பி. அல்லது பயனர் பெயர்:",
        "sp-contributions-toponly": "சமீபத்திய பரிசீலனைகளுக்குட்பட்ட  திருத்தங்களை மட்டும் காண்பி",
+       "sp-contributions-newonly": "பக்க உருவாக்க திருத்தங்களை மட்டும் காட்டு",
        "sp-contributions-submit": "தேடுக",
        "whatlinkshere": "இப்பக்கத்தை இணைத்தவை",
        "whatlinkshere-title": "\"$1\" பக்கத்துக்கு இணைக்கப்பட்டவை",
        "blockipsuccesssub": "தடுப்பு வெற்றி",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] தடுக்கப்பட்டுள்ளார்.<br />\nதடுப்பை மறுஆய்வு செய்ய [[Special:BlockList|தடுப்பு பட்டியலைப்]] பார்கவும்.",
        "ipb-blockingself": "நீங்கள் உங்களையே தடுக்க முயல்கிறீர்கள்! உறுதியாக இதை செய்ய விரும்புகிறீர்களா?",
+       "ipb-confirmhideuser": "\"மறை பயனர்\" இயக்கபட்ட பயனரை முடக்க விழைகிறீர்கள். இது அனைத்துப் பட்டியல் மற்றும் செயல்பாட்டு பதிவுகளில் பயனர் பெயரை ஒடுக்கும். நீங்கள் அதனை உறுதியாகச் செய்ய விரும்புகிறீர்களா?",
+       "ipb-confirmaction": "நீங்கள் அதனை உறுதியாகச் செய்ய விரும்பினால், தயவுசெய்து கீழே உள்ள \"{{int:ipb-confirm}}\" பகுதியைத் தேர்ந்தெடுங்கள்.",
        "ipb-edit-dropdown": "தடை காரணங்கள் தொகு",
        "ipb-unblock-addr": "$1 இன் தடையை நீக்கு",
        "ipb-unblock": "ஐ.பி. அல்லது பயனருக்கான தடையை நீக்கு",
        "unblocked": "[[User:$1|$1]] பயனருக்கான தடை நீக்கப்பட்டது",
        "unblocked-range": "$1 ஆனது தடைநீக்கப்பட்டது.",
        "unblocked-id": "$1 தடை நீக்கப்பட்டது",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] முடக்கப்பட்டார்.",
        "blocklist": "தடைசெய்யப்பட்ட பயனர்கள்",
        "ipblocklist": "தடைசெய்யப்பட்ட பயனர்கள்",
        "ipblocklist-legend": "தடுக்கப்பட்ட பயனரொருவரைத் தேடு",
        "change-blocklink": "குறிப்பிட்ட பகுதியை மாற்று",
        "contribslink": "பங்களிப்புகள்",
        "emaillink": "மின்னஞ்சல் அனுப்பு",
-       "autoblocker": "நீங்கள் \"[[User:$1|$1]]\" உடன் ஒரே ஐ.பி. முகவரியைப் பகிர்ந்துகொள்வதால் தானியங்கித் தடை விதிக்கப்பட்டுள்ளது. $1இன் தடுப்புக்காக கொடுக்கப்பட்டக் காரணம்: \"$2\".",
+       "autoblocker": "நீங்கள் \"[[User:$1|$1]]\" உடன் ஒரே ஐ.பி. முகவரியைப் பகிர்ந்துகொள்வதால் தானியங்கித் தடை விதிக்கப்பட்டுள்ளது. $1இன் தடுப்புக்காக கொடுக்கப்பட்டக் காரணம் \"$2\".",
        "blocklogpage": "தடைப் பதிகை",
        "blocklog-showlog": "இந்த பயனர் முன்பே தடுக்கப்பட்டுள்ளார்.\nதடுப்பு குறிப்பேடு ஒப்பீட்டிற்காக கீழே வழங்கப்பட்டுள்ளது:",
        "blocklog-showsuppresslog": "இந்த பயனர் முன்பே தடுக்கப்பட்டு மறைக்கப்பட்டுள்ளார்.\nதடுப்பு குறிப்பேடு ஒப்பீட்டிற்காக கீழே வழங்கப்பட்டுள்ளது:",
        "movenotallowedfile": "உங்களுக்கு கோப்புக்களை நகர்த்த அனுமதி கிடையாது.",
        "cant-move-user-page": "பயனர் பக்கங்களை (துணைப் பக்கங்களை தவிர) நகர்த்த உங்களுக்கு அனுமதி இல்லை.",
        "cant-move-to-user-page": "ஒரு பக்கத்திலிருந்து பயனர் பக்கத்திற்கு நகர்த்த உங்களுக்கு அனுமதி இல்லை (பயனர் துணைபக்கம் தவிர).",
+       "cant-move-category-page": "பகுப்பு பக்கங்களை நகர்த்த உங்களுக்கு அனுமதி இல்லை.",
+       "cant-move-to-category-page": "ஒரு பக்கத்தை பகுப்பு பக்கங்களுக்கு நகர்த்த உங்களுக்கு அனுமதி இல்லை.",
        "newtitle": "புதிய தலைப்பு",
        "move-watch": "இப்பக்கத்தைக் கவனி",
        "movepagebtn": "பக்கத்தை நகர்த்து",
        "allmessages-prefix": "முன்ஒட்டை வைத்து வடிகட்டு:",
        "allmessages-language": "மொழி:",
        "allmessages-filter-submit": "செல்",
+       "allmessages-filter-translate": "மொழிபெயர்",
        "thumbnail-more": "பெரிதாக்கு",
        "filemissing": "கோப்பைக் காணவில்லை",
        "thumbnail_error": "சிறு முன்தோற்றத்தை உருவாக்கப்படுவதில் தவறு: $1",
+       "thumbnail_error_remote": "$1 இலிருந்து பிழைச் செய்தி:\n$2",
        "djvu_page_error": "DjVu பக்கம் வரம்பிற்கு வெளியே உள்ளது",
        "djvu_no_xml": "DjVu கோப்பிற்க்காக XML ஐ எடுக்க இயலவில்லை",
        "thumbnail-temp-create": "சிறு உருவ தற்காலிக கோப்பை உருவாக்க இயலவில்லை",
        "thumbnail-dest-create": "சிறுஉருவததை இலக்கில் சேமிக்க இயலவில்லை",
        "thumbnail_invalid_params": "செல்லாத சிறு உருவ அளவுருக்கள்",
+       "thumbnail_toobigimagearea": "$1 விட அதிக பரிமாணன் கொண்ட கோப்பு",
        "thumbnail_dest_directory": "இலக்கு அடைவை உருவாக்க முடியவில்லை.",
        "thumbnail_image-type": "பட வகை ஆதரிக்கப்படவில்லை",
        "thumbnail_gd-library": "நிறைவடையாத GD நூலக உள்ளமைவு: செயல்பாடு $1 ஐ காணவில்லை",
        "thumbnail_image-missing": "$1 கோப்பு காணாமல் போயிருக்கலாம் என தெரிகிறது.",
        "import": "பக்கங்களை இறக்கு",
-       "importinterwiki": "விà®\95à¯\8dà®\95ியிà®\9fà¯\88 à®\87à®±à®\95à¯\8dà®\95à¯\81மதி",
+       "importinterwiki": "மறà¯\8dà®±à¯\8aà®°à¯\81 à®µà®¿à®\95à¯\8dà®\95ியிலà¯\8d à®\87à®°à¯\81நà¯\8dதà¯\81 à®\87à®±à®\95à¯\8dà®\95à¯\81",
        "import-interwiki-text": "இறக்குமதிக்கான விக்கியையும் பக்கத்தையும் தெரிவுச் செய்க.\nதிருத்த நாட்கள், தொகுத்தவர்களின் பெயர்கள் என்பன பேனப்படும்.\nஎல்லா விக்கியிடை இறக்குமதிகளும் [[Special:Log/import|இறக்குமதிப் பதிகையில்]] பதியப்படும்.",
+       "import-interwiki-sourcewiki": "மூல விக்கி:",
        "import-interwiki-sourcepage": "மூலப் பக்கம்:",
        "import-interwiki-history": "இப்பக்கத்தின் அனைத்து வரலாற்றுப் பதிப்புகளையும் நகலெடு",
        "import-interwiki-templates": "அனைத்து வார்ப்புருக்களையும் சேர்",
        "importcantopen": "இறக்குமதிக் கோப்பை திறக்க முடியவில்லை",
        "importbadinterwiki": "பழுதுள்ள விக்கியிடை இணைப்பு",
        "importsuccess": "இறக்குமதி முற்றியது!",
-       "importnosources": "விà®\95à¯\8dà®\95ியிà®\9fà¯\88 à®\87à®±குமதி மூலம் வரையறுக்கப்படவில்லை மேலும் நேரடி வரலாறு பதிவேற்றங்கள் முடக்கப்பட்டுள்ளன.",
+       "importnosources": "à®\8eநà¯\8dத à®µà®¿à®\95à¯\8dà®\95ியிலிரà¯\81நà¯\8dதà¯\81à®®à¯\8d à®\87à®±à®\95à¯\8dகுமதி மூலம் வரையறுக்கப்படவில்லை மேலும் நேரடி வரலாறு பதிவேற்றங்கள் முடக்கப்பட்டுள்ளன.",
        "importnofile": "இறக்குமதிக் கோப்பொன்றும் பதிவேற்றப்படவில்லை.",
        "importuploaderrorsize": "இறக்குமதி கோப்பின் பதிவேற்றம் தோல்வி. அனுமதிக்கப்பட்ட உச்ச அளவைவிட கோப்பு பெரியது.",
        "importuploaderrorpartial": "இறக்குமதிக் கோப்பின் பதிவேற்றம் வெற்றியளிக்கவில்லை. பகுதியாகவே பதிவேற்றப்பட்டது.",
        "importuploaderrortemp": "இறக்குமதிக் கோப்பின் பதிவேற்றம் வெற்றியளிக்கவில்லை. தற்காலிக அடைவொன்றக் காணவில்லை.",
        "import-parse-failure": "XML இறக்குமதி குறியீடு தோல்வி",
        "import-noarticle": "இறக்குமதிக்கான பக்கமெதுவுமில்லை!",
-       "import-nonewrevisions": "à®\8eலà¯\8dலாதà¯\8d à®¤à®¿à®°à¯\81தà¯\8dதà®\99à¯\8dà®\95ளà¯\81à®®à¯\8d à®®à¯\81னà¯\8dனரà¯\8d à®\87à®±à®\95à¯\8dà®\95பà¯\8dபà®\9fà¯\8dà®\9fà¯\81ளà¯\8dளன.",
+       "import-nonewrevisions": "à®\8eநà¯\8dத à®¤à®¿à®°à¯\81தà¯\8dதமà¯\81à®®à¯\8d à®\87à®±à®\95à¯\8dà®\95பà¯\8dபà®\9fவிலà¯\8dலà¯\88 (à®\85வà¯\88 à®\8fà®±à¯\8dà®\95னவà¯\87 à®\89ளà¯\8dளன, à®\85லà¯\8dலதà¯\81 à®ªà®¿à®´à¯\88 à®\95ாரணமாà®\95 à®µà®¿à®\9fபà¯\8dபà®\9fà¯\8dà®\9fà¯\81ளà¯\8dளன).",
        "xml-error-string": "$1 நிரை $2, நிரல் $3 (பைட் $4): $5",
        "import-upload": "XML தரவை பதிவேற்று",
        "import-token-mismatch": "உங்கள் அமர்வின் தரவுகள் அழிந்துவிட்டன. அருள்கூர்ந்து மீண்டும் முயல்க.",
        "import-error-edit": "பக்கம் \"$1\" ஆனது இறக்குமதி செய்யப்படவில்லை, ஏனெனில் அதை நீங்கள் திருத்த அனுமதிக்கப்படவில்லை.",
        "import-error-create": "பக்கம் \"$1\" ஆனது இறக்குமதி செய்யப்படவில்லை, ஏனெனில் அதை நீங்கள் உருவாக்க  அனுமதிக்கப்படவில்லை.",
        "import-error-invalid": "பக்கம் \"$1\" பதிவிறக்கம் செய்யப்படவில்லை, ஏனெனில் அதன் பெயர் செல்லாது.",
+       "import-options-wrong": "தவறான {{PLURAL:$2|விருப்பம்|விருப்பங்கள்}}: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "கொடுக்கப்பட்ட மூலப்பக்கம் செல்லாத தலைப்பாகும்.",
        "importlogpage": "இறக்குமதி பதிகை",
        "importlogpagetext": "வேறு விக்கிகளிலில் தொகுப்பு வரலாற்றைக் கொண்டப் பக்கங்களின் மேலாண்மை இறக்குமதிகள்.",
        "import-logentry-interwiki-detail": "$2 இலிருந்து {{PLURAL:$1|ஒரு திருத்தம்|$1 திருத்தங்கள்}}",
        "javascripttest": "சாவாநிரல் சோதனை நடக்கின்றது",
        "javascripttest-pagetext-noframework": "இந்த பக்கம் JavaScript பரிசோதனை ஓட்டத்திற்காக ஒதுக்கப்பட்டுள்ளது",
+       "javascripttest-pagetext-unknownframework": "அறியப்படாத சோதனை பணிச்சட்டம் \"$1\".",
+       "javascripttest-pagetext-unknownaction": "அறியப்படாத செயல் \"$1\".",
+       "javascripttest-pagetext-frameworks": "தயவு செய்து பின்வரும் சோதனை பணிச் சட்டங்களில் இருந்து ஒன்றைத் தேர்ந்தெடு: $1",
        "javascripttest-pagetext-skins": "சோதனைகளை நடத்த முகப்புறை ஒன்றைத் தேர்வுசெய்:",
+       "javascripttest-qunit-intro": "mediawiki.org இல் [$1 சோதனை கோப்புகளைப்] பார்க்க.",
        "tooltip-pt-userpage": "உங்கள் பயனர் பக்கம்",
        "tooltip-pt-anonuserpage": "நீங்கள் தொகுத்துக் கொண்டிருக்கும் ஐ.பி. முகவரிக்கான பயனர் பக்கம்",
        "tooltip-pt-mytalk": "உங்கள் பேச்சுப் பக்கம்",
        "spambot_username": "மிடியாவிக்கி எரித துப்புரவு",
        "spam_reverting": "$1 தளத்துக்கு இணைப்புகளற்ற பதிப்புக்கு முன்நிலையாக்கப்பட்டது",
        "spam_blanking": "$1 தளத்துக்கு இணைப்பை கொண்ட திருத்தங்களை வெறுமையாக்கல்",
+       "spam_deleting": "$1 க்கு இணைப்பு கொண்ட அனைத்து திருத்தங்களும், அழிக்கப்படுகிறது",
        "pageinfo-title": "\"$1\" பக்கத்துக்கான தகவல்",
+       "pageinfo-not-current": "மன்னிக்க, பழைய திருத்தங்களுக்கு தகவல்களை வழுங்களுதல் ஒருபோதும் முடியாதது.",
        "pageinfo-header-basic": "அடிப்படைத் தகவல்",
        "pageinfo-header-edits": "தொகுப்பு வரலாறு",
        "pageinfo-header-restrictions": "பக்கக் காப்பு",
        "pageinfo-header-properties": "பக்க இயல்புகள்",
        "pageinfo-display-title": "காட்சித் தலைப்பு",
+       "pageinfo-default-sort": "இயல்பு பிரித்தல் பொத்தான்",
        "pageinfo-length": "பக்க நீளம் (எண்ணுண்மிகளில்)",
        "pageinfo-article-id": "பக்க அடையாள இலக்கம்",
        "pageinfo-language": "பக்க உள்ளடக்க மொழி",
+       "pageinfo-content-model": "பக்கள உள்ளடக்க மாதிரி",
        "pageinfo-robot-policy": "தானியங்கி மூலம் அட்டவணைப்படுத்தல்",
        "pageinfo-robot-index": "அனுமதிக்கப்படுகிறது",
        "pageinfo-robot-noindex": "அனுமதிக்கப்படாதது",
        "pageinfo-redirectsto-info": "தகவல்",
        "pageinfo-contentpage": "உள்ளடக்கப் பக்கமாய்க் கணக்கிடப்பட்டது.",
        "pageinfo-contentpage-yes": "ஆம்",
+       "pageinfo-protect-cascading": "காப்புகள் இங்கிருந்து திரையிடப்படுகிறது",
        "pageinfo-protect-cascading-yes": "ஆம்",
+       "pageinfo-protect-cascading-from": "காப்புகள் இதிலிருந்து திரையிடப்படுகிறது",
        "pageinfo-category-info": "பகுப்புகளின் எண்ணிக்கை",
+       "pageinfo-category-total": "உறுப்பினர்களின் மொத்த எண்ணிக்கை",
        "pageinfo-category-pages": "பக்கங்களின் எண்ணிக்கை",
+       "pageinfo-category-subcats": "துணைபகுப்புகளின் எண்ணிக்கை",
        "pageinfo-category-files": "கோப்புகளின் எண்ணிக்கை",
        "markaspatrolleddiff": "ரோந்திட்டதாக குறி",
        "markaspatrolledtext": "இப்பக்கத்தை ரோந்திட்டதாகக் குறி",
        "markedaspatrollederrortext": "ரோந்திட்டதாக குறிக்க நீங்கள் திருத்தமொன்றைக் குறிப்பிட வேண்டும்.",
        "markedaspatrollederror-noautopatrol": "உமது மாற்றங்களை நீரே ரோந்திட்டதாக குறிக்க அனுமதி கிடையாது.",
        "markedaspatrollednotify": "$1 இல் மேற்கொள்ளப்பட்ட இம்மாற்றம் கண்காணிக்கப்பட்டதாய்க் குறிக்கப்பட்டது.",
+       "markedaspatrollederrornotify": "சுற்றுக்காவல் தோல்வியடைந்ததாக குறிக்கப்பட்டது.",
        "patrol-log-page": "ரோந்துப் பதிகை",
        "patrol-log-header": "இது ரோந்து செய்யப்பட்ட  பரிசீலனைகளுக்கான  குறிப்பேடு.",
        "log-show-hide-patrol": "$1 ரோந்து குறிப்பேடு",
+       "log-show-hide-tag": "$1 அடையாள பதிவு",
        "deletedrevision": "பழைய திருத்தம் $1 நீக்கப்பட்டது",
        "filedeleteerror-short": "பின்வரும் கோப்பை நீக்குவதில் தவறு: $1",
        "filedeleteerror-long": "கோப்பை நீக்கும் போது தவறுகள் ஏற்பட்டுள்ளன:\n\n$1",
        "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|பக்கம்|பக்கங்கள்}}",
        "file-info": "கோப்பின் அளவு: $1, MIME வகை: $2",
        "file-info-size": "$1 × $2 படவணுக்கள், கோப்பின் அளவு: $3, MIME வகை: $4",
+       "file-info-size-pages": "$1 × $2 pixels, file size: $3, MIME type: $4, $5 {{PLURAL:$5|பக்கம்|பக்கங்கள்}}",
        "file-nohires": "இதைவிட அளவில் பெரிய படிமம் இல்லை.",
        "svg-long-desc": "SVG கோப்பு, பெயரளவில் $1 × $2 பிக்சல்கள், கோப்பு அளவு: $3",
+       "svg-long-desc-animated": "அனிமேட்டட் SVG file, தோராயமாக $1 × $2 pixels, file size: $3",
        "svg-long-error": "செல்லாத SVG கோப்பு: $1",
        "show-big-image": "மூலக்கோப்பு",
        "show-big-image-preview": "இந்த முன்னோட்டத்தின் அளவு:  $1 .",
        "newimages-summary": "இச்சிறப்புப் பக்கம் கடைசியாக பதிவேற்றப்பட்ட பக்கங்களைப் பட்டியலிடுகிறது.",
        "newimages-legend": "வடிகட்டி",
        "newimages-label": "கோப்பின் பெயர் (அல்லது அதன் பகுதி):",
+       "newimages-showbots": "தானியிங்கி பதிவேற்றங்களைக் காட்டு",
        "noimages": "பார்வைக்கு ஓன்றுமில்லை.",
        "ilsubmit": "தேடுக",
        "bydate": "நாள் வழி",
        "minutes": "{{PLURAL:$1|$1நிமிடம்| $1  நிமிடங்கள்}}",
        "hours": "{{PLURAL:$1|$1மணி| $1  மணிகள்}}",
        "days": "{{PLURAL:$1|$1நாள்|$1 நாட்கள்}}",
+       "weeks": "{{PLURAL:$1|$1 வாரம்|$1 வாரங்கள்}}",
+       "months": "{{PLURAL:$1|$1 மாதம்|$1 மாதங்கள்}}",
+       "years": "{{PLURAL:$1|$1 ஆண்டு|$1 ஆண்டுகள்}}",
        "ago": "$1 முன்பு",
        "just-now": "சடுதியில்.",
+       "hours-ago": "$1 {{PLURAL:$1|மணிக்கு|மணிகளுக்கு}} முன்பு",
+       "minutes-ago": "$1 {{PLURAL:$1|நிமிடத்திற்கு|நிமிடங்களுக்கு}} முன்பு",
+       "seconds-ago": "$1 {{PLURAL:$1|வினாடிக்கு|வினாடிகளுக்கு}} முன்பு",
        "monday-at": "திங்கள் $1 மணிக்கு",
        "tuesday-at": "செவ்வாய் $1 மணிக்கு",
        "wednesday-at": "புதன் $1 மணிக்கு",
        "exif-jpeginterchangeformatlength": "சே.பி.இ.சி (JPEG) தரவுகளின் பைட் அளவு",
        "exif-whitepoint": "வெள்ளை புள்ளி நிற பொலிமை (chromaticity).",
        "exif-primarychromaticities": "அடிப்படை நிற நிறக்கூறுகள்",
+       "exif-ycbcrcoefficients": "வண்ண இடைவெளி மாற்ற அணி கெழு",
        "exif-referenceblackwhite": "கருப்பு வெள்ளை ஒப்பீடு மதிப்புகளின் ஜோடி",
        "exif-datetime": "கோப்பு மாற்ற நாள் நேரம்",
        "exif-imagedescription": "படிம தலைப்பு",
        "exif-originalimageheight": "சரிசெய்யப்படும் முன் படத்தின் உயரம்",
        "exif-originalimagewidth": "சரிசெய்யப்படும் முன் படத்தின் அகலம்",
        "exif-compression-1": "சுருக்கப்படாத",
+       "exif-compression-2": "சிசிஐடிடி குழு 3 1-பரிமாண மாற்றப்பட்ட ஆபுமான் ஓட்ட நீள உள்ளீடு",
+       "exif-compression-3": "சிசிஐடிடி குழு 3 தொலைநகல் உள்ளீடு",
+       "exif-compression-4": "சிசிஐடிடி குழு 4 தொலைநகல் உள்ளீடு",
        "exif-copyrighted-true": "பதிப்புரிமைப்பட்டது",
        "exif-copyrighted-false": "பதிப்புரிமை நிலையை திரிவுசெய்யப்படவில்லை",
        "exif-unknowndate": "நாள் தெரியாது",
        "invalidateemail": "மின்னஞ்சல் உறுதிப்படுத்தலை இரத்துச் செய்க",
        "scarytranscludedisabled": "[விக்கியிடை இணைப்புகள் முடக்கப்பட்டுள்ளது]",
        "scarytranscludefailed": "[$1 பக்கத்துக்கான வாப்புருபெறு முயற்சித் தோல்வியடைந்தது]",
+       "scarytranscludefailed-httpstatus": "[$1: HTTP $2 க்கு வார்புருபெறு முயற்சித் தோல்வியடைந்தது]",
        "scarytranscludetoolong": "[இணைய முகவரி மிகவும் நீளமானது]",
        "deletedwhileediting": "'''எச்சரிக்கை''': நீங்கள் இப்பக்கத்தை தொகுக்க தொடங்கியப் பின் அது நீக்கப்பட்டுள்ளது!",
        "confirmrecreate": "நீங்கள் தொகுக்க தொடங்கியப் பின்ன பயனர் [[User:$1|$1]] ([[User talk:$1|பேச்சு]]) இப்பக்கத்தை நீக்கியுள்ளார் தரப்பட்டக் காரணம்:\n: ''$2''\nஇப்பக்கத்தை மீள் உருவாக்க வேண்டுமா என்பதை உறுதிப்படுத்தவும்.",
        "confirm-watch-top": "இப்பக்கத்தை உன் கவனிப்புப் பட்டியலில் சேர்க்க வேண்டுமா?",
        "confirm-unwatch-button": "சரி",
        "confirm-unwatch-top": "இப்பக்கத்தை உங்கள்  கவனிப்புப் பட்டியலிருந்து நீக்கா வேண்டுமா?",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← முந்திய பக்கம்",
        "imgmultipagenext": "அடுத்தப் பக்கம் →",
        "imgmultigo": "செல்!",
        "imgmultigoto": "பக்கம் $1இற்கு செல்க",
+       "img-lang-default": "(இயல்பு நிலை மொழி)",
+       "img-lang-info": "$1. $2 இல் இப்படத்தை தோன்றச் செய்",
+       "img-lang-go": "செல்",
        "ascending_abbrev": "ஏறு",
        "descending_abbrev": "இறங்கு",
        "table_pager_next": "அடுத்த பக்கம்",
        "autosumm-replace": "பக்கத்தை '$1' கொண்டு பிரதியீடு செய்தல்",
        "autoredircomment": "[[$1]] நோக்கி நகர்த்தல்",
        "autosumm-new": "\"$1\"-இப்பெயரில் புதிய பக்கம் உருவாக்கப்பட்டுள்ளது",
+       "autosumm-newblank": "காலிப் பக்கம் உருவாக்கப்பட்டுள்ளது",
        "lag-warn-normal": "$1 {{PLURAL:$1|விநாடிக்குள்|விநாடிகளுக்குள்}} ஏற்பட்ட புதிய மாற்றங்கள் இந்த பட்டியலில் காட்டப்படாமல் இருக்கலாம்.",
        "lag-warn-high": "அதிகமான தரவுத்தள இடைமாற்று காரணமாக $1 {{PLURAL:$1|விநாடிக்குள்|விநாடிகளுக்குள்}} ஏற்பட்ட புதிய மாற்றங்கள் இந்த பட்டியலில் காட்டப்படாமல் இருக்கலாம்.",
        "watchlistedit-normal-title": "கவனிப்புப் பட்டியலைத் தொகு",
        "watchlistedit-raw-done": "உங்கள் கவனிப்புப் பட்டியல் இற்றைப்படுத்தப்பட்டது.",
        "watchlistedit-raw-added": "{{PLURAL:$1|ஒரு தலைப்பு இணைக்கப்பட்டது|$1 தலைப்புகள் இணைக்கப்பட்டன}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|ஒரு தலைப்பு நீக்கப்பட்டது|$1 தலைப்புகள் நீக்கப்பட்டன}}:",
+       "watchlistedit-clear-title": "கவனிப்புப் பட்டியலை காலியாக்கு",
+       "watchlistedit-clear-legend": "கவனிப்புப் பட்டியலை காலியாக்கு",
+       "watchlistedit-clear-explain": "உங்கள் கவனிப்புப் பட்டியலில் உள்ள அனைத்துத் தலைப்புகளும் நீக்கப்படும்",
+       "watchlistedit-clear-titles": "தலைப்புகள்:",
+       "watchlistedit-clear-submit": "கவனிப்புப் பட்டியலை காலியாக்கு (நிரந்தரமாக!)",
+       "watchlistedit-clear-done": "உங்கள் கவனிப்புப் பட்டியல் காலியாக்கப்பட்டது.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|1 தலைப்பு|$1 தலைப்புகள்}} அழிக்கப்பட்டது:",
+       "watchlistedit-too-many": "இங்கே காட்டுவதற்கு அதிகமான பக்கங்கள் உள்ளன.",
+       "watchlisttools-clear": "கவனிப்புப் பட்டியலை அழி",
        "watchlisttools-view": "தொடர்பான மாற்றங்களைப் பார்",
        "watchlisttools-edit": "என்கவனிப்பு பட்டியலை பார்த்து தொகு",
        "watchlisttools-raw": "விக்கி நிரலற்றக் கவனிப்புப் பட்டியலைத் தொகு",
        "duplicate-defaultsort": "'''எச்சரிக்கை:''' இயல்புநிலை வரிசைப்படுத்து விசை ''$2 \" முன்னால் இயல்புநிலை வரிசைப்படுத்து விசை \"$1\" ஐ மீறுகிறது.",
        "version": "பதிப்பு",
        "version-extensions": "நிறுவப்பட்ட நீட்சிகள்",
-       "version-skins": "தà¯\8bல்கள்",
+       "version-skins": "நிறà¯\81வபà¯\8dபà®\9fà¯\8dà®\9f à®¤à¯\8bà®±à¯\8dà®±à®\99்கள்",
        "version-specialpages": "சிறப்புப் பக்கங்கள்",
        "version-parserhooks": "இலக்கணப் பாகுபடுத்தி கொக்கிகள்",
        "version-variables": "மாறிகள்",
        "version-hook-name": "கொக்கியின் பெயர்",
        "version-hook-subscribedby": "பயன்பாடு",
        "version-version": "($1)",
+       "version-no-ext-name": "[பெயர் இல்லை]",
        "version-license": "மீடியாவிக்கி உரிமம்",
+       "version-ext-license": "உரிமம்",
+       "version-ext-colheader-name": "நீட்சி",
+       "version-skin-colheader-name": "தோல்",
+       "version-ext-colheader-version": "பதிப்பு",
+       "version-ext-colheader-license": "உரிமம்",
+       "version-ext-colheader-description": "விவரம்",
+       "version-ext-colheader-credits": "ஆசிரியர்கள்",
+       "version-license-title": "$1 க்கான உரிமம்",
+       "version-license-not-found": "இந்த இணைப்பிலிருந்து எந்த விரிவான உரிமத்தகவல்களும் கண்டுபிடிக்கப்படவில்லை.",
+       "version-credits-title": "$1 க்கு நன்றிகள்",
+       "version-credits-not-found": "இந்த இணைப்பிலிருந்து எந்த விரிவான உரிமத்தகவல்களும் கண்டுபிடிக்கப்படவில்லை.",
        "version-poweredby-credits": "இந்த் விக்கி '''[https://www.mediawiki.org/ MediaWiki]''' இதன் மூலம் வழங்கப்படுகிறது, காப்புரிமை © 2001-$1 $2.",
        "version-poweredby-others": "பிறர்",
+       "version-poweredby-translators": "translatewiki.net மொழிபெயர்ப்பாளர்கள்",
+       "version-credits-summary": "[[Special:Version|மீடியா விக்கிகாக]] பங்களித்த பின்வரும் நபர்களை நாங்கள் பாராட்ட விரும்புகிறோம்.",
        "version-license-info": "மீடியாவிக்கியானது இலவச மென்பொருள்.இதை நீங்கள் மற்றவர்களுக்கு கொடுப்பது அல்லது திருத்தம் செய்வது இலவச மென்பொருள் அறக்கட்டளை வழங்கிய   GNUவின் பொது உரிம விதிகளுக்குட்பட்டது;உரிமத்தின் இரண்டாவது பதிப்பு அல்லது அதற்கு மேற்பட்ட பதிப்பு (உங்கள் விருப்பத்திற்க்கேற்றவாறு).\nமீடியா உபயோகப்படக்கூடியது என்ற நம்பிக்கையில் வெளியிடப்பட்டுள்ளது, ஆனால் இதற்க்கு உத்தரவாதம் கிடையாது.மேலும் வணிகத்தன்மைக்கான அல்லது ஒரு குறிப்பிட்ட செயலுக்காகவும் உத்தரவாதம் கிடையாது.மேலும் விவரங்களுக்கு GNU பொது உரிமத்தை பார்க்கவும்.\nநீங்கள் இந்த  மென்பொருளுடன் [{{SERVER}}{{SCRIPTPATH}}/COPYING a copy of the GNU General Public License] பெற்றீருப்பிர்கள்;இல்லையெனில் , Free Software Foundation, Inc.,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA க்கு எழுதவும்.அல்லது [//www.gnu.org/licenses/old-licenses/gpl-2.0.html read it online].",
        "version-software": "நிறுவப்பட்ட மென்பொருள்",
        "version-software-product": "உற்பத்திப்பொருள்",
        "version-entrypoints": "நுழைவு புள்ளி உரலிகள்",
        "version-entrypoints-header-entrypoint": "நுழைவு புள்ளி",
        "version-entrypoints-header-url": "உரலி (URL)",
+       "version-libraries": "நிறுவப்பட்ட நூலகங்கள்",
+       "version-libraries-library": "நூலகம்",
+       "version-libraries-version": "பதிப்பு",
+       "redirect": "கோப்பு, பயனர், பக்கம் அல்லது திருத்த ID ஆன வழிமாற்று",
+       "redirect-legend": "கோப்பு அல்லது பக்கத்துக்கு வழிமாற்று",
        "redirect-submit": "செல்க",
        "redirect-lookup": "கவனிக்கவும்:",
+       "redirect-value": "மதிப்பு:",
+       "redirect-user": "பயனர் அடையாளம்",
+       "redirect-page": "பக்க அடையாளம்",
+       "redirect-revision": "பக்கத் திருத்தம்",
        "redirect-file": "கோப்பின் பெயர்",
        "redirect-not-exists": "மதிப்பு காணப்பெறவில்லை",
        "fileduplicatesearch": "நகல் கோப்புகளைத் தேடுக",
        "fileduplicatesearch-result-n": "\"$1\" கோப்பையொத்த {{PLURAL:$2|1 ஒரு நகலொன்று|$2 நகல்கள்}} உண்டு.",
        "fileduplicatesearch-noresults": "\"$1\" என்ற பெயர் கொண்ட கோப்பு எதுவும் காணப்படவில்லை.",
        "specialpages": "சிறப்புப் பக்கங்கள்",
-       "specialpages-note": " * சராசரி சிறப்புப் பக்கங்கள்.\n * <span class=\"mw-specialpagerestricted\">வரையறுத்த சிறப்புப் பக்கங்கள்.</span>",
+       "specialpages-note-top": "உள்பட்டியல்",
+       "specialpages-note": " * சராசரி சிறப்புப் பக்கங்கள்.\n * <span class=\"mw-specialpagerestricted\">வரையறுக்கப்பட்ட சிறப்புப் பக்கங்கள்.</span>",
        "specialpages-group-maintenance": "பராமரிப்பு அறிக்கைகள்",
        "specialpages-group-other": "ஏனைய சிறப்புப் பக்கங்கள்",
        "specialpages-group-login": "புகுபதிகை/பயனர் கணக்கு தொடக்கம்",
        "tags": "செல்லத்தக்க மாற்று குறிச்சொற்கள்",
        "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-source-header": "மூலம்",
+       "tags-active-header": "செயல்பாட்டிலா?",
        "tags-hitcount-header": "மாற்றங்களின் எண்ணிக்கை",
+       "tags-actions-header": "செயல்கள்",
        "tags-active-yes": "ஆம்",
        "tags-active-no": "இல்லை",
+       "tags-source-extension": "வெளியிணைப்பு மூலம் வரையறுக்கப்பட்டது",
+       "tags-source-manual": "பயனர் மற்றும் தானியங்கியால் செயல்படுத்தப்படுவது",
+       "tags-source-none": "பயன்பாட்டில் இல்லை",
        "tags-edit": "தொகு",
+       "tags-delete": "நீக்குக",
+       "tags-activate": "செயற்படுத்துக",
+       "tags-deactivate": "முடக்குக",
        "tags-hitcount": "$1 {{PLURAL:$1|மாற்றம்|மாற்றங்கள்}}",
+       "tags-manage-no-permission": "உங்களுக்கு அடையாள மாற்றங்களை நிர்வகிக்க அனுமதி கிடையாது.",
+       "tags-create-heading": "புதிய குறிச்சொல்லை உருவாக்கவும்",
+       "tags-create-explanation": "இயல்பாக, புதிதாக உருவாக்கபட்ட அடையாளங்கள் பயனர் மற்றும் தானியங்களிள் பயன்படுத்த கிடைக்கும் படிச் செய்யப்படும்.",
+       "tags-create-tag-name": "குறிச்சொல் பெயர்",
+       "tags-create-reason": "காரணம்:",
+       "tags-create-submit": "உருவாக்கவும்",
+       "tags-create-no-name": "ஒரு குறிச்சொல்லை கண்டிப்பாக குறிப்பிடவும்",
+       "tags-create-invalid-chars": "அடையாளப் பெயர்கள் கமா (<code>,</code>) அல்லது முன் சாய்வு குறிகளை (<code>/</code>) கொண்டிருக்க கூடாது.",
+       "tags-create-invalid-title-chars": "பக்கத்தலைப்பில் பயன்படுத்த முடியாத எழுத்துக்களை அடையாளப் பெயர்கள் கொண்டிருக்க கூடாது.",
+       "tags-create-already-exists": "அடையாளம் \"$1\" ஏற்கனவே உள்ளது.",
+       "tags-create-warnings-below": "குறிச்சொல்லை உருவாக்க தொடர விருப்பமா?",
+       "tags-delete-title": "குறிச்சொல்லை நிக்குக",
+       "tags-delete-reason": "காரணம்:",
+       "tags-delete-submit": "குறிச்சொல்லை மீளாதபடி நீக்குக",
+       "tags-activate-title": "குறிச்சொல்லை செயலாக்குக",
+       "tags-edit-title": "குறிச்சொல்லை தொகு",
+       "tags-edit-manage-link": "குறிச்சொற்களை நிர்வகி",
+       "tags-edit-existing-tags": "இருக்கும் குறிச்சொற்கள்",
+       "tags-edit-existing-tags-none": "\"ஏதும்யில்லை\"",
+       "tags-edit-new-tags": "புதிய குறிச்சொற்கள்:",
+       "tags-edit-add": "இந்த குறிச்சொற்களை சேர்க",
+       "tags-edit-remove": "இந்த குறிச்சொற்களை நீக்குக:",
+       "tags-edit-remove-all-tags": "(எல்லா குறிச்சொற்களை நீக்குக)",
+       "tags-edit-chosen-placeholder": "சில குறிச்சொற்களை தேர்ந்தெடுக",
+       "tags-edit-chosen-no-results": "பொருத்தமான எந்த அடையாளமும் காணப்படவில்லை",
+       "tags-edit-reason": "காரணம்:",
+       "tags-edit-revision-submit": "{{PLURAL:$1|இந்த திருத்தத்திற்கு|$1 திருத்தங்களுக்கு}} மாற்றங்களை செயற்படுத்து",
+       "tags-edit-logentry-submit": "{{PLURAL:$1|இந்த செயற்பாட்டு பதிவுக்கு|$1 செயற்பாட்டு பதிவுகளுக்கு}} மாற்றங்களை செயற்படுத்து",
+       "tags-edit-success": "மாற்றங்கள் வெற்றிகரமாக செயற்படுத்தப்பட்டது.",
+       "tags-edit-failure": "மாற்றங்கள் செயற்படுத்த முடியவில்லை:\n$1",
+       "tags-edit-nooldid-title": "செல்லுபடியற்ற இலக்குத் திருத்தம்",
+       "tags-edit-nooldid-text": "நீங்கள் இந்த செயற்பாட்டிற்காக எந்த இலக்குத் திருத்தங்களையும் குறிப்பிடவில்லை அல்லது குறிப்பிட்ட இலக்குத் திருத்தம் இல்லை.",
+       "tags-edit-none-selected": "தயவு செய்து சேர்க்க அல்லது நீக்க குறைந்தபட்சம் ஒரு அடையாளத்தையாவது தேர்ந்தெடுங்கள்.",
        "comparepages": "பக்கங்களை ஒப்பிடு",
        "compare-page1": "பக்கம் 1",
        "compare-page2": "பக்கம் 2",
        "compare-revision-not-exists": "நீங்கள் குறிப்பிட்ட பரிசீலனை இல்லை.",
        "dberr-problems": "மன்னிக்கவும்! இந்த தளம், தொழில்நுட்ப பிரச்சினைகளுக்கு உள்ளாகியுள்ளது..",
        "dberr-again": "சில நிமிடங்கள் காத்திரு மற்றும் மறுபடியும் முயற்சிக்கவும்",
-       "dberr-info": "(தரவுதள சேவகனை தொடர்பு கொள்ள முடியாது:  $1 )",
+       "dberr-info": "(தரவுதளத்தை தொடர்பு கொள்ள முடியாது: $1 )",
+       "dberr-info-hidden": "(தரவுதளத்தை அணுக முடியாது)",
        "dberr-usegoogle": "இதே நேரத்தில் நீங்கள் கூகிள் வழியாக தேட முயற்சிக்கலாம்.",
        "dberr-outofdate": "கவனிக்கவும் எங்கள் உள்ளடக்கத்திற்க்கானஅவர்களின் குறியீடுகள் காலாவதியாகி இருக்கலாம் .",
        "dberr-cachederror": "இது கோரிய பக்கத்தின் தற்காலிக நகல் , மற்றும் தற்போதைய  தேதி வரை இருக்காது.",
        "htmlform-no": "இல்லை",
        "htmlform-yes": "ஆம்",
        "htmlform-chosen-placeholder": "விருப்பத்தினைத் தேர்க",
+       "htmlform-cloner-create": "மேலும் சேர்க",
+       "htmlform-cloner-delete": "நீக்குக",
+       "htmlform-cloner-required": "குறைந்து ஒரு மதிப்பு தேவைப்படும்.",
        "sqlite-has-fts": "$1முழு-உரை தேடல் ஆதரவுடன்",
        "sqlite-no-fts": "$1 முழு-உரை தேடல் ஆதரவு இல்லாமல்",
        "logentry-delete-delete": "$3 பக்கத்தை $1 {{GENDER:$2|நீக்கினார்}}",
-       "logentry-delete-restore": "$1 பயனரால் $3 பக்கம் மீட்டமைக்கப்பட்டது",
-       "logentry-delete-event": "$1 மாற்றிய காட்சித்தன்மை  {{PLURAL:$5| ஒரு நிகழ்வு குறிப்பேடு| $5  நிகழ்வுகள் குறிப்பேடு}} இதில்   $3 :$4",
-       "logentry-delete-revision": "$1 மாற்றப்பட்ட  காட்சித்தன்மைக்கு  {{PLURAL:$5| ஒருபரிசீலனை| $5  பரிசீலனைகளுக்கும்}} இந்த பக்கம்  $3 :$4",
-       "logentry-delete-event-legacy": "$1 மாற்றியது பக்கம் $3 ல்குறிப்பேடு நிகழ்வுகளுக்கான காட்சித்தன்மை .",
-       "logentry-delete-revision-legacy": "$1 மாற்றியது பக்கம் $3 ல் பரிசீலனைகளுக்கான காட்சித்தன்மை",
-       "logentry-suppress-delete": "$1 $3 பக்கத்தை மறைத்துள்ளார்",
-       "logentry-suppress-event": "$1 இரகசியமாக  மாற்றிய காட்சித்தன்மையின்  {{PLURAL:$5| ஒரு நிகழ்வு குறிப்பேடு| $5  நிகழ்வுகள் குறிப்பேடு}}    $3 :$4 ல்.",
-       "logentry-suppress-revision": "$1 இரகசியமாக மாற்றப்பட்ட  காட்சித்தன்மைக்கு  {{PLURAL:$5| ஒருபரிசீலனை| $5  பரிசீலனைகள்}} இந்த பக்கத்தில்  $3 :$4",
-       "logentry-suppress-event-legacy": "$1 இரகசியமாக மாற்றியது குறிப்பேடு நிகழ்வுகளுக்கான காட்சித்தன்மை $3 ல்.",
-       "logentry-suppress-revision-legacy": "$1 இரகசியமாக  மாற்றியது பக்கம் $3 ல் பரிசீலனைகளுக்கான காட்சித்தன்மை",
+       "logentry-delete-restore": "$3 பக்கத்தை $1 {{GENDER:$2|மீட்டமைத்தார்}}",
+       "logentry-delete-event": "$3 :$4 இல் {{PLURAL:$5| ஒரு நிகழ்வு குறிப்பேட்டின்| $5  நிகழ்வுகள் குறிப்பேடுகளின்}} காட்சித்தன்மை $1 மாற்றினார்",
+       "logentry-delete-revision": "பக்கம் $3 :$4 இல் {{PLURAL:$5|திருத்தத்தின்|$5 திருத்தங்களின்}} காட்சித்தன்மையை $1 மாற்றினார்",
+       "logentry-delete-event-legacy": "$3 இன் பதிவு நிகழ்வின் காட்சித்தன்மையை $1 {{GENDER:$2|changed}} மாற்றினார்",
+       "logentry-delete-revision-legacy": "பக்கம் $3 இன் திருத்தங்களின் காட்சித்தன்மையை $1 {{GENDER:$2|changed}} மாற்றினார்",
+       "logentry-suppress-delete": "page $3 ஐ $1 {{GENDER:$2|ஒடுக்கினார்}}",
+       "logentry-suppress-event": "$3 :$4 இல் {{PLURAL:$5| ஒரு நிகழ்வு குறிப்பேட்டின்| $5  நிகழ்வுகள் குறிப்பேடுகளின்}} காட்சித்தன்மையை ரகசியமாக $1 மாற்றினார்",
+       "logentry-suppress-revision": "பக்கம் $3 :$4 இல் {{PLURAL:$5|ஒரு திருத்தத்தின்|$5 திருத்ததங்களின்}} காட்சித்தன்மையை ரகசியமாக $1 மாற்றினார்",
+       "logentry-suppress-event-legacy": "$3 இன் பதிவு நிகழ்வின் காட்சித்தன்மையை $1 {{GENDER:$2|changed}} ரகசியாமாக மாற்றினார்",
+       "logentry-suppress-revision-legacy": "பக்கம் $3 இன் திருத்தங்களின் காட்சித்தன்மையை ரகசியமாக $1 {{GENDER:$2|மாற்றினார்}}",
        "revdelete-content-hid": "உள்ளடக்கம் மறைக்கப்பட்டுள்ளது",
        "revdelete-summary-hid": "திருத்துதல் சுருக்கம் மறைக்கப்பட்டது.",
        "revdelete-uname-hid": "பயனர் பெயர் மறைக்கப்பட்டுள்ளது",
        "logentry-newusers-create2": "$3 பயனர் கணக்கினை $1 உருவாக்கினார்",
        "logentry-newusers-autocreate": "பயனர் கணக்கு $1 தானாக உருவாக்கப்பட்டது",
        "logentry-upload-upload": "$1 $3ஐ {{GENDER:$2|பதிவேற்றினார்}}",
+       "log-name-managetags": "குறிச்சொல் மேலாண்மை குறிப்பு",
+       "log-name-tag": "குறிச்சொல் குறிப்பு",
        "rightsnone": "(எதுவுமில்லை)",
        "revdelete-summary": "தொகுப்பு சுருக்கத்தை",
        "feedback-adding": "பக்கத்தில் கருத்தைச் சேர்க்கிறது...",
+       "feedback-back": "பின்செல்க",
        "feedback-bugcheck": "சிறப்பு! அது ஏற்கனவே  [ $1 தெரிந்த  bugs ] என்பதை மட்டும்  சரிபார்க்கவும்,",
        "feedback-bugnew": "நான் சரிபார்த்தாயிற்று. புதிய bug பற்றி கூறு.",
        "feedback-bugornote": "நீங்கள் ஒரு தொழில்நுட்பக் கோளாறு குறித்து விரிவாக விளக்க தாயாராக இருந்தால் தயவுசெய்து [ $1  ஒரு bug பற்றி கூறு].\nஇல்லையெனில், நீங்கள் கீழேயுள்ள எளிதான படிவத்தை பயன்படுத்தலாம்.உங்கள் கருத்துரை \"[$3 $2]\" பக்கத்தில் உங்கள் பயனர் பெயர் மற்றும் உங்கள் உலாவியின் பெயருடன் சேர்க்கப்படும்.",
        "feedback-cancel": "விட்டுவிடு",
        "feedback-close": "முடிந்தது",
+       "feedback-external-bug-report-button": "ஒரு தொழில்நுட்ப பணியைச் சமர்ப்பி",
+       "feedback-dialog-title": "பின்னூட்டத்தை சமர்ப்பி",
+       "feedback-error-title": "பிழை",
        "feedback-error1": "பிழை: API லிருந்து அங்கீகரிக்கப்படாத முடிவு.",
        "feedback-error2": "பிழை: திருத்தல்  தோல்வியடைந்தது",
        "feedback-error3": "பிழை: API லிருந்து பதிற்குறிப்பு எதுவும் இல்லை.",
+       "feedback-error4": "பிழை: கொடுக்கப்பட்ட பின்னூட்டத் தலைப்பை பதிய முடியவில்லை",
        "feedback-message": "தகவல்:",
        "feedback-subject": "பொருள்:",
        "feedback-submit": "சமர்ப்பி",
+       "feedback-termsofuse": "பயன்பாட்டு விதிகளுக்கு ஏற்ப எனது பின்னூட்டத்தை தர நான் ஒப்புக் கொள்கிறேன்.",
        "feedback-thanks": "நன்றி! உங்கள் கருத்துகள் \"[$2 $1]\" பக்கத்தில்பதிவு செய்யப்பட்டுள்ளது .",
+       "feedback-thanks-title": "நன்றி!",
+       "feedback-useragent": "பயனர் முகவர்:",
        "searchsuggest-search": "தேடு",
        "searchsuggest-containing": "கொண்டுள்ளது...",
        "api-error-badaccess-groups": "இந்த விக்கிக்குக் கோப்புகளைப் பதிவேற்றுவதற்கு நீங்கள் அனுமதிக்கப்படவில்லை.",
        "api-error-ok-but-empty": "உள்ளகப் பிழை: வழங்கியிலிருந்து பதில் வரவில்லை",
        "api-error-overwrite": "ஏற்கனவே உள்ள கோப்பின் மேலெழுதுவது அனுமதிக்கப்படமாட்டாது.",
        "api-error-stashfailed": "உள்ளகப் பிழை: வழங்கி தற்காலிகக் கோப்பைத் தேக்கத் தவறிவிட்டது.",
+       "api-error-publishfailed": "உள்ளகப் பிழை: வழங்கி தற்காலிகக் கோப்பைத் பதிப்பிக்க தவறிவிட்டது.",
+       "api-error-stasherror": "பரணில் ஒரு கோப்பை ஏற்றும் போது பிழை ஏற்பட்டது.",
+       "api-error-stashedfilenotfound": "பரணிலிருந்து கோப்பே ஏற்றும் போது பரணேற்றப்பட்ட கோப்பை காணவில்லை.",
+       "api-error-stashpathinvalid": "பரணேற்றபட்ட கோப்பு காணப்பட வேண்டிய பாதை செல்லாதது.",
+       "api-error-stashfilestorage": "பரணில் ஒரு கோப்பை சேமிக்கும் போது பிழை ஏற்பட்டது.",
+       "api-error-stashzerolength": "வழங்கி கோப்பை பரணேற்ற இயலாது, ஏனெனில் அது சுழி நீளம் கொண்டது.",
+       "api-error-stashnotloggedin": "ஏற்று பரணில் கோப்பை சேமிக்க நீங்கள் புகுபதிய வேண்டும்.",
+       "api-error-stashwrongowner": "நீங்கள் பரணில் அணுக முயற்சிக்கும் கோப்பு உங்களுக்கு உரியதல்ல.",
+       "api-error-stashnosuchfilekey": "நீங்கள் பரணில் அணுக முயற்சிக்கும் கோப்புக் குறி காணக்கிடைக்கவில்லை.",
        "api-error-timeout": "எதிர்பார்க்கப்பட்ட நேரத்தில் வழங்கி பதிலளிக்கவில்லை.",
        "api-error-unclassified": "அறியாப் பிழை ஏற்பட்டது",
        "api-error-unknown-code": "அறியாப் பிழை: \"$1\"",
        "duration-decades": "$1 {{PLURAL:$1|பத்தாண்டு|பத்தாண்டுகள்}}",
        "duration-centuries": "$1 {{PLURAL:$1|நூற்றாண்டு|நூற்றாண்டுகள்}}",
        "duration-millennia": "$1 {{PLURAL:$1|ஆயிரம் ஆண்டு|ஆயிரம் ஆண்டுகள்}}",
+       "rotate-comment": "$1 ஆல் படம் {{PLURAL:$1|பாகை|பாகைகள்}} கடிகார சுற்றில் திருப்பப்பட்டது",
+       "limitreport-title": "சுயவிவர தகவல்களை ஆராய்க:",
+       "limitreport-cputime": "CPU நேர பயன்பாடு",
+       "limitreport-cputime-value": "$1 {{PLURAL:$1|வினாடி|வினாடிகள்}}",
+       "limitreport-walltime": "உண்மை நேர பயண்பாடு",
+       "limitreport-walltime-value": "$1 {{PLURAL:$1|வினாடி|வினாடிகள்}}",
+       "limitreport-ppvisitednodes": "நாடு எண்ணிக்கையை முன்செயலாக்கி பார்த்தது",
+       "limitreport-ppgeneratednodes": "நாடு எண்ணிக்கையை முன்செயலாக்கி உருவாக்கியது",
+       "limitreport-postexpandincludesize": "அளவு உட்பட பதிவை விரிவாக்கு",
+       "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|பைட்|பைட்டுகள்}}",
+       "limitreport-templateargumentsize": "வார்ப்புரு அளவு",
+       "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|பைட்|பைட்கள்}}",
+       "limitreport-expansiondepth": "உயர்ந்த விரிவாக்க ஆழம்",
+       "limitreport-expensivefunctioncount": "செலவுமிகுந்த ஆராய்வு செயல்பாடு எண்ணிக்கை",
        "expandtemplates": "வார்ப்புருக்களை விரிவாக்கு",
        "expand_templates_input": "உள்ளீட்டு உரை:",
        "expand_templates_output": "முடிவுகள்",
+       "expand_templates_xml_output": "XML வெளியீடு",
+       "expand_templates_html_output": "பிரிக்காத HTML வெளியீடு",
        "expand_templates_ok": "ஆம்",
        "expand_templates_remove_comments": "கருத்துரைகளை நீக்கு",
+       "expand_templates_remove_nowiki": "முடிவில் அடையாளங்களை <nowiki> ஒடுக்கு",
+       "expand_templates_generate_xml": "XML ஆராய்வு மரத்தைக் காட்டு",
+       "expand_templates_generate_rawhtml": "பிரிக்கப்படா HTML ஐ காட்டு",
        "expand_templates_preview": "முன்தோற்றம்",
+       "pagelanguage": "பக்க மொழி தேர்ந்தெடுப்பான்",
+       "pagelang-name": "பக்கம்",
+       "pagelang-language": "மொழி",
+       "pagelang-use-default": "இயல்பு நிலை மொழி",
+       "pagelang-select-lang": "மொழியைத் தேர்ந்தெடு",
+       "right-pagelang": "பக்க மொழியை மாற்றுக",
+       "action-pagelang": "பக்க மொழியை மாற்றுக",
+       "log-name-pagelang": "மொழி பதிவை மாற்றுக",
+       "log-description-pagelang": "இது பக்க மொழி மாற்றச் செயல்பாட்டின் பதிவு.",
+       "logentry-pagelang-pagelang": "$3 க்கான பக்க மொழியை $4 இலிருந்து $5 க்கு $1 {{GENDER:$2|மாற்றினார்}}.",
+       "mediastatistics-table-count": "கோப்புகளின் எண்ணிக்கை",
+       "mediastatistics-table-totalbytes": "மொத்த அளவு",
        "mediastatistics-header-unknown": "அறியப்படாதது",
+       "mediastatistics-header-bitmap": "பிட்டுப்படங்கள்",
+       "mediastatistics-header-audio": "ஒலி",
        "mediastatistics-header-video": "காணொளிகள்",
+       "mediastatistics-header-office": "அலுவலகம்",
+       "mediastatistics-header-text": "உரை வடிவ",
+       "json-error-syntax": "தொடரியல் பிழை",
        "special-characters-group-latin": "இலத்தீன்",
        "special-characters-group-latinextended": "இலத்தீன் விரிவு",
        "special-characters-group-ipa": "பன்னாட்டு ஒலிப்பு அரிச்சுவடி",
        "special-characters-group-devanagari": "தேவநாகரி",
        "special-characters-group-thai": "தாய்",
        "special-characters-group-lao": "இலாவோ",
-       "special-characters-group-khmer": "கெமெர்"
+       "special-characters-group-khmer": "கெமெர்",
+       "special-characters-title-minus": "கழித்தல் குறி"
 }
index 80b656d..d153dcb 100644 (file)
@@ -39,6 +39,7 @@
        "tog-watchdefault": "నేను మార్చే పేజీలను మరియు దస్త్రాలను నా వీక్షణ జాబితాకు చేర్చు",
        "tog-watchmoves": "నేను తరలించిన పేజీలను మరియు దస్త్రాలను నా వీక్షణ జాబితాకు చేర్చు",
        "tog-watchdeletion": "నేను తొలగించిన పేజీలను మరియు దస్త్రాలను నా వీక్షణ జాబితాకు చేర్చు",
+       "tog-watchrollback": "నా వీక్షణ జాబితాకి నేను తిప్పికొట్టిన పేజీలను జోడించు",
        "tog-minordefault": "అప్రమేయంగా నా మార్పులను చిన్న మార్పులుగా గుర్తించు",
        "tog-previewontop": "వ్యాసం మార్పుల మునుచూపును ఎడిట్ పెట్టె పైన చూపు",
        "tog-previewonfirst": "మొదటి  దిద్దుబాటు చేసినపుడు వ్యాసపు మునుచూపు చూపించు",
        "pool-queuefull": "సమూహపు వరుస నిండుగా ఉంది",
        "pool-errorunknown": "తెలియని లోపం",
        "pool-servererror": "పూల్ కౌంటర్ సేవ అందుబాటులో లేదు ($1).",
+       "poolcounter-usage-error": "వాడుక దోషం : $1",
        "aboutsite": "{{SITENAME}} గురించి",
        "aboutpage": "Project:గురించి",
        "copyright": "విషయం $1 కి లోబడి లభ్యం, వేరుగా పేర్కొంటే తప్ప.",
        "disclaimers": "అస్వీకారములు",
        "disclaimerpage": "Project:సాధారణ నిష్పూచీ",
        "edithelp": "దిద్దుబాటు సహాయం",
+       "helppage-top-gethelp": "సహాయం",
        "mainpage": "మొదటి పేజీ",
        "mainpage-description": "మొదటి పేజీ",
        "policy-url": "Project:విధానం",
        "hidetoc": "దాచు",
        "collapsible-collapse": "కుదించు",
        "collapsible-expand": "విస్తరించు",
+       "confirmable-confirm": "{{GENDER:$1|మీరు}} ఒప్పుకుంటున్నారా?",
        "confirmable-yes": "అవును",
        "confirmable-no": "కాదు",
        "thisisdeleted": "$1ను చూస్తారా, పునఃస్థాపిస్తారా?",
        "readonly_lag": "అనుచర (స్లేవ్) డేటాబేసు సర్వర్లు, ప్రధాన (మాస్టరు) సర్వరును అందుకునేందుకుగాను, డేటాబేసు ఆటోమాటిక్‌గా లాకు అయింది.",
        "internalerror": "అంతర్గత లోపం",
        "internalerror_info": "అంతర్గత లోపం: $1",
+       "internalerror-fatal-exception": "\"$1\" రకం ప్రమాదకరమైన మినహాయింపు",
        "filecopyerror": "ఫైలు \"$1\" ను \"$2\" కు కాపీ చెయ్యలేకపోయాం.",
        "filerenameerror": "ఫైలు \"$1\" పేరును \"$2\"గా మార్చలేకపోయాం.",
        "filedeleteerror": "ఫైలు \"$1\"ని తొలగించలేకపోయాం.",
        "directorycreateerror": "\"$1\" అనే డైరెక్టరీని సృష్టించలేక పోయాం.",
+       "directoryreadonlyerror": "\"$1\" సంచయం మార్చటం వీలుపడని స్థితిలో ఉంది.",
+       "directorynotreadableerror": "\"$1\" సంచయం వీక్షణకు అందుబాటులో లేదు.",
        "filenotfound": "ఫైలు \"$1\" కనబడలేదు.",
        "unexpected": "అనుకోని విలువ: \"$1\"=\"$2\".",
        "formerror": "లోపం: ఈ ఫారాన్ని పంపించలేకపోయాం.",
        "no-null-revision": "\"$1\" పేజీకి కొత్త శూన్య కూర్పు (నల్ రివిజన్) ను సృష్టించలేకపోయాం",
        "badtitle": "తప్పు శీర్షిక",
        "badtitletext": "మీరు కోరిన పేజీ యొక్క పేరు చెల్లనిది, ఖాళీగా ఉంది, లేదా తప్పు లింకుతో కూడిన అంతర్వికీ లేదా అంతర-భాషా శీర్షిక అయివుండాలి.\nశీర్షికలలో ఉపయోగించకూడని అక్షరాలు దానిలో ఉండివుండొచ్చు.",
+       "title-invalid-empty": "కోరబడిన పేజీ శీర్షిక ఖాళీగా ఉంది లేదా కేవలం పేరుబరి పేరు కలిగి ఉంది.",
+       "title-invalid-utf8": "కోరబడిన పేజీ శీర్షికలో చెల్లని UTF-8 అక్షరాలున్నాయి.",
+       "title-invalid-interwiki": "శీర్షిక పాఠ్యంలో అంతరవికీ లంకె ఉంది",
+       "title-invalid-talk-namespace": "కోరబడిన పేజీ శీర్షికకు సంబంధించిన చర్చా పేజీ సృష్టించలేము.",
+       "title-invalid-characters": "కోరబడిన పేజీ శీర్షికలో చెల్లని అక్షరాలున్నాయి : \"$1\".",
+       "title-invalid-relative": "శీర్షికలో లంకె పాఠ్యం సాపేక్షంగా ఉంది - పూర్తిగా లేదు. సాపేక్ష పేజీ చిరునామాలు (./, ../) గల పేజీ శీర్షికలు ఎక్కువశాతం అందుబాటులో ఉండవు కనుక అవి చెల్లవు.",
+       "title-invalid-magic-tilde": "కోరబడిన పేజీ శీర్షిక పాఠ్యం లో చెల్లని మ్యాజిక్ టిల్డా పదాలున్నాయి (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "కోరబడిన పేజీ శీర్షిక పాఠ్యం మరీ పొడవుగా ఉంది. ఇది UTF-8 పద్ధతిలో $1 బైట్లకు మించి ఉండరాదు.",
+       "title-invalid-leading-colon": "కోరబడిన పేజీ శీర్షిక పాఠ్యం మొదట్లో చెల్లని కొలొన్ చిహ్నం (:) ఉంది.",
        "perfcached": "కింది డేటా ముందే సేకరించి పెట్టుకున్నది. కాబట్టి తాజా డేటాతో పోలిస్తే తేడాలుండవచ్చు. ఈ కాషెలో గరిష్టంగా {{PLURAL:$1|ఒక్క ఫలితం ఉంది|$1 ఫలితాలు ఉన్నాయి}}.",
        "perfcachedts": "కింది సమాచారం ముందే సేకరించి పెట్టుకున్నది. దీన్ని $1న చివరిసారిగా తాజాకరించారు. ఈ కాషెలో గరిష్టంగా {{PLURAL:$4|ఒక్క ఫలితం ఉంది|$4 ఫలితాలు ఉన్నాయి}}.",
        "querypage-no-updates": "ప్రస్తుతం ఈ పేజీకి తాజాకరణలని అచేతనం చేసారు.\nఇక్కడున్న డేటా కూడా ప్రస్తుతం తాజాకరించబడదు.",
        "viewsourcetext": "మీరీ పేజీ సోర్సును చూడవచ్చు, కాపీ చేసుకోవచ్చు:",
        "viewyourtext": "ఈ పేజీలోని <strong>మీ మార్పుల</strong> యొక్క మూలాన్ని చూడవచ్చు, కాపీచేసుకోవచ్చు:",
        "protectedinterface": "ఈ పేజీ, ఈ వికీ యొక్క సాఫ్టువేరు ఇంటరుఫేసుకు చెందిన టెక్స్టును అందిస్తుంది. దుశ్చర్యల నివారణ కోసమై దీన్ని సంరక్షించాం. వికీలన్నిటిలోను అనువాదాలను చేర్చాలన్నా, మార్చాలన్నా మీడియావికీ స్థానికీకరణ ప్రాజెక్టైన [//translatewiki.net/ translatewiki.net] ను వాడండి.",
-       "editinginterface": "<strong>హెచ్చరిక:</strong> సాఫ్టువేరుకు ఇంటరుఫేసు టెక్స్టును అందించేందుకు పనికొచ్చే పేజీని మీరు సరిదిద్దుతున్నారు.\nఈ పేజీలో చేసే మార్పుల వల్ల ఇతర వాడుకరులకు ఇంటరుఫేసు కనబడే విధానంలో తేడావస్తుంది.\nవికీలన్నిటిలోను అనువాదాలను చేర్చాలన్నా, మార్చాలన్నా మీడియావికీ స్థానికీకరణ ప్రాజెక్టైన [//translatewiki.net/ translatewiki.net] ను వాడండి.",
+       "editinginterface": "<strong>హెచ్చరిక:</strong> సాఫ్టువేరుకు ఇంటరుఫేసు టెక్స్టును అందించేందుకు పనికొచ్చే పేజీని మీరు సరిదిద్దుతున్నారు.\nఈ పేజీలో చేసే మార్పుల వల్ల ఇతర వాడుకరులకు ఇంటరుఫేసు కనబడే విధానంలో తేడావస్తుంది.",
+       "translateinterface": "అన్ని వికీలలో కనిపించేలా అనువాదాలు చేర్చాలన్నా, మార్చాలన్నా, దయచేసి [//translatewiki.net/ translatewiki.net] ను వాడండి. ఇది మీడియావికీ స్థానికీకరణ ప్రాజెక్టు.",
        "cascadeprotected": "కింది {{PLURAL:$1|పేజీని|పేజీలను}} కాస్కేడింగు ఆప్షనుతో చేసి సంరక్షించారు. ప్రస్తుత పేజీ, ఈ పేజీల్లో ఇంక్లూడు అయి ఉంది కాబట్టి, దిద్దుబాటు చేసే వీలు లేకుండా ఇది కూడా రక్షణలో ఉంది.\n$2",
        "namespaceprotected": "'''$1''' నేంస్పేసులో మార్పులు చేయటానికి మీకు అనుమతి లేదు.",
        "customcssprotected": "ఈ CSS పేజీని మార్చేందుకు మీకు అనుమతి లేదు. ఎందుకంటే వేరే వాడుకరి యొక్క వ్యక్తిగత సెట్టింగులు అందులో ఉన్నాయి.",
        "invalidtitle-knownnamespace": "పేరుబరి \"$2\", పాఠ్యము \"$3\" తో కూడిన ఈ శీర్షిక చెల్లనిది",
        "invalidtitle-unknownnamespace": "అపరిచితమైన పేరుబరి సంఖ్య \"$1\", పాఠ్యము \"$2\" తో కూడిన ఈ శీర్షిక చెల్లనిది",
        "exception-nologin": "లాగినై లేరు",
-       "exception-nologin-text": "ఈ పేజీని చూడడానికి లేదా ఈ పని చెయ్యడానికి [[Special:Userlogin|లాగినవండి]].",
+       "exception-nologin-text": "ఈ పేజీని చూడడానికి లేదా ఈ పని చెయ్యడానికి లాగినవండి.",
        "exception-nologin-text-manual": "ఈ పేజీ చూసేందుకు లేదా ఈ పని చేసేందుకు $1.",
        "virus-badscanner": "తప్పుడు స్వరూపణం: తెలియని వైరస్ స్కానర్: <em>$1</em>",
        "virus-scanfailed": "స్కాన్ విఫలమైంది (సంకేతం $1)",
        "wrongpassword": "ఈ సంకేతపదం సరైనది కాదు. దయచేసి మళ్లీ ప్రయత్నించండి.",
        "wrongpasswordempty": "ఖాళీ సంకేతపదం ఇచ్చారు. మళ్ళీ ప్రయత్నించండి.",
        "passwordtooshort": "సంకేతపదం కనీసం {{PLURAL:$1|1 అక్షరం|$1 అక్షరాల}} నిడివి ఉండాలి.",
+       "passwordtoolong": "సంకేతపదంలో {{PLURAL:$1|1 అక్షరం|$1 అక్షరాల}} కన్నా ఎక్కువ ఉండకూడదు.",
        "password-name-match": "మీ సంకేతపదం మీ వాడుకరిపేరుకి భిన్నంగా ఉండాలి.",
        "password-login-forbidden": "ఈ వాడుకరిపేరు మరియు సంకేతపదాలను ఉపయోగించడం నిషిద్ధం.",
        "mailmypassword": "సంకేతపదాన్ని మార్చు",
        "createaccount-text": "{{SITENAME}} ($4) లో ఎవరో మీ ఈమెయిలు చిరునామాకి \"$2\" అనే పేరుగల ఖాతాని \"$3\" అనే సంకేతపదంతో సృష్టించారు.\nమీరు లోనికి ప్రవేశించి మీ సంకేతపదాన్ని ఇప్పుడే మార్చుకోవాలి.\n\nఈ ఖాతాని పొరపాటున సృష్టిస్తే గనక, ఈ సందేశాన్ని పట్టించుకోకండి.",
        "login-throttled": "కొద్దిసేపటిగా మీరు చాలా లాగిన్ ప్రయత్నాలు చేసారు.\nమళ్ళీ ప్రయత్నించే ముందు $1 ఆగండి.",
        "login-abort-generic": "మీ లాగిన్ ప్రయత్నం విఫలమైంది - ఆగిపోయింది",
+       "login-migrated-generic": "మీ ఖాతా తరలించబడింది. మీ వాడుకరి పేరు ఈ వికీలో మనుగడలో లేదు.",
        "loginlanguagelabel": "భాష: $1",
        "suspicious-userlogout": "సరిగా పనిచేయని విహారిణి లేదా కాషింగ్ ప్రాక్సీ వల్ల పంపబడడం చేత, నిష్క్రమించాలనే మీ అభ్యర్థనని నిరాకరించారు.",
        "createacct-another-realname-tip": "అసలు పేరు ఐచ్ఛికం.\nమీరు దాన్ని ఇస్తే, వాడుకరి పనుల శ్రేయస్సు ఆ పేరుకు ఆపాదించబడుతుంది.",
        "preview": "మునుజూపు",
        "showpreview": "మునుజూపు చూపు",
        "showdiff": "తేడాలను చూపించు",
-       "anoneditwarning": "<strong>హెచ్చరిక:</strong> మీరు లాగినవలేదు.\nఈ పేజీ దిద్దుబాటు చరిత్రలో మీ ఐపీ చిరునామా నమోదవుతుంది.",
+       "blankarticle": "<strong>హెచ్చరిక:</strong> మీరు ఖాళీ పేజీని రూపొందిస్తున్నారు. మళ్ళీ  \"{{int:savearticle}}\" ను నొక్కితే ఖాళీ పేజీ సృష్టించబడుతుంది.",
+       "anoneditwarning": "<strong>హెచ్చరిక:</strong> మీరు లాగినవలేదు. మీరు ఏమైనా మార్పులు చేస్తే మీ ఐపీ చిరునామా బహిరంగంగా అందరికీ కనిపిస్తుంది. మీరు   <strong>[$1 ప్రవేశించినా]</strong> లేక <strong>[$2 ఖాతా సృష్టించినా]</strong> మీ మార్పులు మీ పేరుతో ఉండటమే కాకుండా మరెన్నో సదుపాయాలుంటాయి.",
        "anonpreviewwarning": "<em>మీరు లాగినవలేదు. భద్రపరిస్తే ఈ పేజీ యొక్క దిద్దుబాటు చరిత్రలో మీ ఐపీ చిరునామా నమోదవుతుంది.</em>",
        "missingsummary": "<strong>గుర్తు చేస్తున్నాం:</strong> మీరు దిద్దుబాటు సారాంశమేమీ ఇవ్వలేదు. పేజీని మళ్ళీ భద్రపరచమని చెబితే సారాంశమేమీ లేకుండానే దిద్దుబాటును భద్రపరుస్తాం.",
+       "selfredirect": "<strong>హెచ్చరిక:</strong> మీరు ఈ పేజీని దానికే దారిమార్పు చేస్తున్నారు. బహుశా మీరు తప్పు దారిమార్పును సూచించి ఉండవచ్చు, లేదా మీరు తప్పుడు పేజీని మారుస్తున్నారు. \nమీరు \"{{int:savearticle}}\" ను నొక్కితే దారిమార్పు పేజీ ఖచ్చితంగా సృష్టించబడుతుంది.",
        "missingcommenttext": "కింద ఓ వ్యాఖ్య రాయండి.",
        "missingcommentheader": "<strong>గుర్తు చేస్తున్నాం:</strong> ఈ వ్యాఖ్యకు మీరు విషయం/శీర్షిక పెట్టలేదు.\n\"{{int:savearticle}}\"ని మళ్ళీ నొక్కితే, అది లేకుండానే మీ మార్పును భద్రపరుస్తాం.",
        "summary-preview": "సారాంశం మునుజూపు:",
        "subject-preview": "విషయం/శీర్షిక మునుజూపు:",
+       "previewerrortext": "మీ మార్పులు మునుజూపు చూడటంలో తప్పిదమయింది.",
        "blockedtitle": "వాడుకరి నిరోధించబడ్డారు",
        "blockedtext": "<strong>మీ వాడుకరి పేరు లేదా ఐ.పీ. చిరునామా నిరోధించబడింది.</strong>\n\nనిరోధించినది $1.\nఅందుకు ఇచ్చిన కారణం: <em>$2</em>.\n\n* నిరోధం మొదలైన సమయం: $8\n* నిరోధించిన కాలం: $6\n* నిరోధానికి గురైనవారు: $7\n\nఈ నిరోధంపై చర్చించేందుకు మీరు $1 ను గాని, మరెవరైనా [[{{MediaWiki:Grouppage-sysop}}|నిర్వాహకులను]] గాని సంప్రదించవచ్చు.\nమీ [[Special:Preferences|ఖాతా అభిరుచులలో]] సరైన ఈ-మెయిలు చిరునామా ఇచ్చివుండకపోయినా లేదా మిమ్మల్ని  'ఈ వాడుకరికి ఈ-మెయిలు పంపు' సౌలభ్యాన్ని వాడుకోవడం నుండి నిరోధించివున్నా మీరు ఈమెయిలు ద్వారా సంప్రదించలేరు.\nమీ ప్రస్తుత ఐ.పీ. చిరునామా $3, మరియు నిరోధపు ID #$5.\nమీ సంప్రదింపులన్నిటిలోనూ వీటిని పేర్కొనండి.",
        "autoblockedtext": "మీ ఐపీ చిరునామా ఆటోమాటిగ్గా నిరోధించబడింది. ఎందుకంటే ఇదే ఐపీ చిరునామాని ఓ నిరోధిత వాడుకరి ఉపయోగించారు. ఆ వాడుకరిని $1 నిరోధించారు.\nఅందుకు ఇచ్చిన కారణం ఇదీ:\n\n:<em>$2</em>\n\n* నిరోధం మొదలైన సమయం: $8\n* నిరోధించిన కాలం: $6\n* ఉద్దేశించిన నిరోధిత వాడుకరి: $7\n\nఈ నిరోధం గురించి చర్చించేందుకు మీరు $1 ను గానీ, లేదా ఇతర [[{{MediaWiki:Grouppage-sysop}}|నిర్వాహకులను]] గానీ సంప్రదించండి.\n\nమీ [[Special:Preferences|అభిరుచులలో]] సరైన ఈమెయిలు ఐడీని ఇచ్చి ఉంటే తప్ప, మీరు \"ఈ సభ్యునికి మెయిలు పంపు\" అనే అంశాన్ని వాడజాలరని గమనించండి. ఆ సౌలభ్యాన్ని వాడటం నుండి మిమ్మల్ని నిరోధించలేదు.\n\nమీ ప్రస్తుత ఐపీ చిరునామా $3, మరియు నిరోధపు ఐడీ: $5.\nమీ సంప్రదింపులన్నిటిలోను అన్ని పై వివరాలను ఉదహరించండి.",
        "content-model-text": "సాదా పాఠ్యం",
        "content-model-javascript": "జావాస్క్రిప్ట్",
        "content-model-css": "CSS",
+       "content-json-empty-object": "ఖాళీ అంశం",
        "expensive-parserfunction-warning": "<strong>హెచ్చరిక:</strong> ఈ పేజీలో ఖరీదైన పార్సరు పిలుపులు చాలా ఉన్నాయి.\n\nపార్సరు {{PLURAL:$2|పిలుపు|పిలుపులు}} $2 కంటే తక్కువ ఉండాలి,  ప్రస్తుతం {{PLURAL:$1|$1 పిలుపు ఉంది|$1  పిలుపులు ఉన్నాయి}}.",
        "expensive-parserfunction-category": "పార్సరు సందేశాలు అధికంగా ఉన్న పేజీలు",
        "post-expand-template-inclusion-warning": "<strong>హెచ్చరిక:</strong> మూస ఇముడ్పు సైజు చాలా పెద్దదిగా ఉంది.\nకొన్ని మూసలు ఇమడ్చబడవు.",
        "history-feed-empty": "మీరడిగిన పేజీ లేదు.\nదాన్ని వికీలోంచి తొలగించి ఉండొచ్చు, లేదా పేరు మార్చి ఉండొచ్చు.\nసంబంధిత కొత్త పేజీల కోసం [[Special:Search|వికీలో వెతికి చూడండి]].",
        "rev-deleted-comment": "(మార్పుల సంగ్రహాన్ని తొలగించారు)",
        "rev-deleted-user": "(వాడుకరి పేరుని తొలగించారు)",
-       "rev-deleted-event": "(దినà°\9aà°°à±\8dయని à°¤à±\8aà°²à°\97à°¿à°\82à°\9aà°¾à°\82)",
+       "rev-deleted-event": "(à°\9aà°¿à°\9fà±\8dà°\9fà°¾ à°µà°¿à°µà°°à°¾à°²à°¨à±\81 à°¤à±\8aà°²à°\97à°¿à°\82à°\9aారà±\81)",
        "rev-deleted-user-contribs": "[వాడుకరిపేరు లేదా ఐపీ చిరునామాని తొలగించారు  - మార్పుచేర్పుల నుండి మార్పుని దాచారు]",
        "rev-deleted-text-permission": "ఈ పేజీ కూర్పుని <strong>తొలగించారు</strong>.\n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} తొలగింపు చిట్టా]లో పూర్తి వివరాలు చూడవచ్చు.",
        "rev-deleted-text-unhide": "పేజీ యొక్క ఈ కూర్పును '''తొలగించాం'''.\n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} తొలగింపు చిట్టా]లో వివరాలు చూడవచ్చు.\nమీరు కావాలనుకుంటే, [$1 ఈ కూర్పుని చూడవచ్చు].",
        "notextmatches": "పేజీ పాఠ్యమేదీ సరిపోలడం లేదు",
        "prevn": "గత {{PLURAL:$1|$1}}",
        "nextn": "తరువాతి {{PLURAL:$1|$1}}",
+       "prev-page": "మునుపటి పేజీ",
+       "next-page": "తరువాతి పేజీ",
        "prevn-title": "గత $1 {{PLURAL:$1|ఫలితం|ఫలితాలు}}",
        "nextn-title": "తరువాతి $1 {{PLURAL:$1|ఫలితం|ఫలితాలు}}",
        "shown-title": "పేజీకి $1 {{PLURAL:$1|ఫలితాన్ని|ఫలితాలను}} చూపించు",
        "prefs-personal": "వాడుకరి ప్రవర",
        "prefs-rc": "ఇటీవలి మార్పులు",
        "prefs-watchlist": "వీక్షణ జాబితా",
+       "prefs-editwatchlist-label": "మీ వీక్షణజాబితా లోని అంశాలను సవరించండి:",
        "prefs-watchlist-days": "వీక్షణ జాబితాలో చూపించవలసిన రోజులు:",
        "prefs-watchlist-days-max": "గరిష్ఠంగా $1 {{PLURAL:$1|రోజు|రోజులు}}",
        "prefs-watchlist-edits": "విస్తృత వీక్షణ జాబితాలో చూపించవలసిన దిద్దుబాట్లు:",
        "gender-female": "ఆమె వికీ పేజీలను సరిదిద్దుతుంది",
        "prefs-help-gender": "ఈ అభిరుచిని అమర్చుకోవడం ఐచ్చికం.\nమిమ్మల్ని సంబోధించేప్పుడూ మిమ్మల్ని పేర్కొనేప్పుడూ వ్యాకరణపరంగా సరైన లింగాన్ని  వాడటానికి ఈ విలువ ఉపయోగపడుతుంది.\nఈ సమాచారం బహిరంగం.",
        "email": "ఈ-మెయిలు",
-       "prefs-help-realname": "à°\85సలà±\81 à°ªà±\87à°°à±\81 à°¤à°ªà±\8dపనిసరి à°\95ాదà±\81. \nà°\85సలà±\81 à°ªà±\87à°°à±\81 à°\87à°¸à±\8dà°¤à±\87, à°®à±\80 à°°à°\9aనల à°¶à±\8dà°°à±\87యసà±\8dà°¸à±\81 à°®à±\80 à°\85సలà±\81 à°ªà±\87à°°à±\81à°\95à±\87 à°\86పాదిà°\82à°\9aబడà±\81à°¤à±\81à°\82ది.",
+       "prefs-help-realname": "à°\85సలà±\81 à°ªà±\87à°°à±\81 à°\87à°µà±\8dవడà°\82 à°\90à°\9aà±\8dà°\9aà°¿à°\95à°\82. \nà°\87à°¸à±\8dà°¤à±\87, à°®à±\80 à°°à°\9aనల à°¶à±\8dà°°à±\87యసà±\8dà°¸à±\81 à°®à±\80à°\95à±\81 à°\86పాదిà°\82à°\9aడానిà°\95à°¿ à°\89పయà±\8bà°\97పడవà°\9aà±\8dà°\9aà±\81.",
        "prefs-help-email": "ఈమెయిలు చిరునామా ఐచ్చికం. కానీ మీరు సంకేతపదాన్ని మర్చిపోతే కొత్త సంకేతపదాన్ని మీకు పంపించడానికి ఇది అవసరం.",
        "prefs-help-email-others": "మీ వాడుకరి లేదా చర్చా పేజీలలో ఉండే లంకె ద్వారా ఇతరులు మిమ్మల్ని ఈ-మెయిలు ద్వారా సంప్రదించే వీలుకల్పించవచ్చు.\nఇతరులు మిమ్మల్ని సంప్రదించినప్పుడు మీ ఈ-మెయిలు చిరునామా బహిర్గతమవదు.",
        "prefs-help-email-required": "ఈ-మెయిలు చిరునామా తప్పనిసరి.",
        "right-override-export-depth": "5 లింకుల లోతు వరకు ఉన్న పేజీలతో సహా, పేజీలను ఎగుమతి చెయ్యి",
        "right-sendemail": "ఇతర వాడుకరులకు ఈ-మెయిలు పంపించడం",
        "right-passwordreset": "సంకేతపదం మార్పు ఈమెయిళ్ళను చూడడం",
+       "right-managechangetags": "డేటాబేసులో [[Special:Tags|ట్యాగుల]]ను సృష్టించడం, తొలగించడం",
+       "right-applychangetags": "తన మార్పులతో [[Special:Tags|ట్యాగుల]]ను ఆపాదించడం",
+       "right-changetags": "విడి కూర్పులకు, చిట్టా పద్దులకు ఏవైనా [[Special:Tags|ట్యాగుల]]ను చేర్చడం, తొలగించడం",
        "newuserlogpage": "కొత్త వాడుకరుల చిట్టా",
        "newuserlogpagetext": "ఇది వాడుకరి నమోదుల చిట్టా.",
        "rightslog": "వాడుకరుల హక్కుల మార్పుల చిట్టా",
        "action-viewmywatchlist": "మీ వీక్షణ జాబితాను చూడండి",
        "action-viewmyprivateinfo": "మీ గోపనీయ సమాచారాన్ని చూడండి",
        "action-editmyprivateinfo": "మీ గోపనీయ సమాచారాన్ని సరిదిద్దండి",
+       "action-managechangetags": "డేటాబేసులో ట్యాగులను చేర్చే లేదా తొలగించే",
+       "action-applychangetags": "మీ మార్పులతో ట్యాగులను ఆపాదించే",
        "nchanges": "{{PLURAL:$1|ఒక మార్పు|$1 మార్పులు}}",
        "enhancedrc-since-last-visit": "{{PLURAL:$1|చివరి సందర్శన తరువాత}}, $1",
        "enhancedrc-history": "చరితం",
        "listfiles-delete": "తొలగించు",
        "listfiles-summary": "ఈ ప్రత్యేక పేజీ, ఎక్కించిన ఫైళ్ళన్నిటినీ చూపిస్తుంది.",
        "listfiles_search_for": "మీడియా పేరుకై వెతుకు:",
+       "listfiles-userdoesnotexist": "\"$1\" అనే వాడుకరి ఖాతా నమోదు కాలేదు.",
        "imgfile": "దస్త్రం",
        "listfiles": "దస్త్రాల జాబితా",
        "listfiles_thumb": "నఖచిత్రం",
        "randomincategory-invalidcategory": "\"$1\" అనేది సరైన పర్గం పేరు కాదు.",
        "randomincategory-nopages": "[[:Category:$1|$1]] వర్గంలో పేజీలేమీ లేవు.",
        "randomincategory-category": "వర్గం:",
+       "randomincategory-legend": "వర్గంలోని యాదృచ్చిక పేజీ",
        "randomredirect": "యాదృచ్చిక దారిమార్పు",
        "randomredirect-nopages": "\"$1\" పేరుబరిలో దారిమార్పులేమీ లేవు.",
        "statistics": "గణాంకాలు",
        "wantedfiles": "కావలసిన ఫైళ్ళు",
        "wantedfiletext-cat": "కింది ఫైళ్ళను వాడారు, కానీ అవి ఉనికిలో లేవు. బయటి రిపాజిటరీలలోని ఫైళ్ళను, అవి ఉనికిలో ఉన్నప్పటికీ, చూపవచ్చు. అటువంటి తప్పు పాజిటివులు <del>కొట్టివేయబడతాయి</del>. పైగా, ఉనికిలో లేని ఫైళ్ళను ఇమిడ్చే పేజీలు [[:$1]] లో చేర్చబడతాయి.",
        "wantedfiletext-nocat": "కింది ఫైళ్ళను వాడారు, కానీ అవి ఉనికిలో లేవు. బయటి రిపాజిటరీలలోని ఫైళ్ళను, అవి ఉనికిలో ఉన్నప్పటికీ, చూపవచ్చు. అటువంటి తప్పు పాజిటివులు <del>కొట్టివేయబడతాయి</del>.",
+       "wantedfiletext-nocat-noforeign": "ఈ క్రింది దస్త్రాలను వాడారు కానీ అవి లేనే లేవు.",
        "wantedtemplates": "కావాల్సిన మూసలు",
        "mostlinked": "అధిక లింకులు చూపే పేజీలు",
        "mostlinkedcategories": "అధిక లింకులు చూపే వర్గాలు",
        "pager-older-n": "{{PLURAL:$1|1 పాతది|$1 పాతవి}}",
        "suppress": " పూర్తి తొలగింపు",
        "querypage-disabled": "పనితీరు కారణాల వలన, ఈ ప్రత్యేకపేజీని అశక్తం చేసాం.",
+       "apihelp": "API సహాయం",
+       "apihelp-no-such-module": "\"$1\" మాడ్యూలు కనబడలేదు.",
        "booksources": "పుస్తక మూలాలు",
        "booksources-search-legend": "పుస్తక మూలాల కోసం వెతుకు",
        "booksources-search": "వెతుకు",
        "wlheader-enotif": "ఈ-మెయిలు గమనికలు పంపబడతాయి.",
        "wlheader-showupdated": "మీ గత సందర్శన తరువాత మారిన పేజీలు <strong>బొద్దు</strong>గా చూపించబడ్డాయి.",
        "wlnote": "$3 నాడు $4 సమయానికి, గడచిన {{PLURAL:$2|గంటలో|'''$2''' గంటలలో}} జరిగిన {{PLURAL:$1|ఒక్క మార్పు కింద ఉంది|'''$1''' మార్పులు కింద ఉన్నాయి}}.",
-       "wlshowlast": "గత $1 గంటల $2 రోజుల  చూపించు",
+       "wlshowlast": "గత $1 గంటల $2 రోజులకు చూపించు",
        "watchlist-options": "వీక్షణ జాబితా ఎంపికలు",
        "watching": "గమనిస్తున్నారు...",
        "unwatching": "గమనించడం లేదు...",
        "exbeforeblank": "ఖాళీ చెయ్యకముందు పేజీలో ఉన్న విషయ సంగ్రహం: '$1'",
        "delete-confirm": "\"$1\"ని తొలగించు",
        "delete-legend": "తొలగించు",
-       "historywarning": "'''హెచ్చరిక''': మీరు తొలగించబోయే పేజీకి సుమారు $1 {{PLURAL:$1|కూర్పుతో|కూర్పులతో}} చరిత్ర ఉంది:",
+       "historywarning": "<strong>హెచ్చరిక:</strong> మీరు తొలగించబోయే పేజీకి $1 {{PLURAL:$1|కూర్పు|కూర్పుల}} చరిత్ర ఉంది:",
        "confirmdeletetext": "మీరో పేజీనో, బొమ్మనో దాని చరిత్రతోపాటుగా శాశ్వతంగా డేటాబేసు నుండి తీసెయ్యబోతున్నారు. మీరు చెయ్యదలచింది ఇదేననీ, దీని పర్యవసానాలు మీకు తెలుసనీ, దీన్ని [[{{MediaWiki:Policy-url}}|నిభందనల]] ప్రకారమే చేస్తున్నారనీ నిర్ధారించుకోండి.",
        "actioncomplete": "పని పూర్తయింది",
        "actionfailed": "చర్య విఫలమైంది",
        "delete-edit-reasonlist": "తొలగింపు కారణాలని మార్చండి",
        "delete-toobig": "ఈ పేజీకి $1 {{PLURAL:$1|కూర్పుకు|కూర్పులకు}} మించిన, చాలా పెద్ద దిద్దుబాటు చరితం ఉంది. {{SITENAME}}కు అడ్డంకులు కలగడాన్ని నివారించేందుకు గాను, అలాంటి పెద్ద పేజీల తొలగింపును నియంత్రించాం.",
        "delete-warning-toobig": "ఈ పేజీకి $1 {{PLURAL:$1|కూర్పుకు|కూర్పులకు}} మించిన, చాలా పెద్ద దిద్దుబాటు చరితం ఉంది. దాన్ని తొలగిస్తే {{SITENAME}}కి చెందిన డేటాబేసు కార్యాలకు ఆటంకం కలగొచ్చు; అప్రమత్తతో ముందుకుసాగండి.",
+       "deleteprotected": "ఈ పేజీ సంరక్షణలో ఉంది కనుక మీరు తొలగించలేరు.",
        "deleting-backlinks-warning": "'''హెచ్చరిక:''' మీరు తొలగించబోతున్న పేజీకి [[Special:WhatLinksHere/{{FULLPAGENAME}}|ఇతర పేజీల]] నుండి లింకులు ఉన్నాయి లేదా ఇక్కడ నుండి ట్రాన్స్‍క్లూడు అవుతున్నాయి.",
        "rollback": "దిద్దుబాట్లను రద్దుచేయి",
        "rollbacklink": "రద్దుచేయి",
        "protect-othertime": "ఇతర సమయం:",
        "protect-othertime-op": "ఇతర సమయం",
        "protect-existing-expiry": "ప్రస్తుత కాల పరిమితి: $3, $2",
+       "protect-existing-expiry-infinity": "ప్రస్తుత కాల పరిమితి: అనంతం",
        "protect-otherreason": "ఇతర/అదనపు కారణం:",
        "protect-otherreason-op": "ఇతర కారణం",
        "protect-dropdown": "*సాధారణ సంరక్షణ కారణాలు\n** అత్యధిక వాండలిజం\n** అత్యధిక స్పామింగు\n** నిర్మాణాత్మకంగా లేని మార్పుల యుద్ధం\n** అధిక రద్దీగల పేజీ",
        "autoblockid": "tanaDDu #$1",
        "block": "వాడుకరి నిరోధం",
        "unblock": "వాడుకరిపై నిరోధాన్ని తీసెయ్యండి",
-       "blockip": "వాడుకరి నిరోధం",
+       "blockip": "{{GENDER:$1|వాడుకరిని}} నిరోధించు",
        "blockip-legend": "వాడుకరి నిరోధం",
        "blockiptext": "ఏదైనా ప్రత్యేక ఐపీ చిరునామానో లేదా వాడుకరిపేరునో రచనలు చెయ్యకుండా నిరోధించాలంటే కింది ఫారాన్ని వాడండి.\nకేవలం దుశ్చర్యల నివారణ కోసం మాత్రమే దీన్ని వాడాలి, అదికూడా [[{{MediaWiki:Policy-url}}|విధానాన్ని]] అనుసరించి మాత్రమే.\nస్పష్టమైన కారణాన్ని కింద రాయండి (ఉదాహరణకు, దుశ్చర్యలకు పాల్పడిన పేజీలను ఉదహరించండి).",
        "ipaddressorusername": "ఐపీ చిరునామా లేదా వాడుకరిపేరు:",
        "ipb-unblock-addr": "$1 పై ఉన్న నిరోధాన్ని తొలగించండి",
        "ipb-unblock": "వాడుకరి పేరుపై లేదా ఐపీ చిరునామాపై ఉన్న నిరోధాన్ని తొలగించండి",
        "ipb-blocklist": "అమల్లో ఉన్న నిరోధాలను చూపించు",
-       "ipb-blocklist-contribs": "$1 యొక్క మార్పులు-చేర్పులు",
+       "ipb-blocklist-contribs": "{{GENDER:$1|$1}} మార్పులు-చేర్పులు",
        "unblockip": "సభ్యునిపై నిరోధాన్ని తొలగించు",
        "unblockiptext": "కింది ఫారం ఉపయోగించి, నిరోధించబడిన ఐ.పీ. చిరునామా లేదా సభ్యునికి తిరిగి రచనలు చేసే అధికారం ఇవ్వవచ్చు.",
        "ipusubmit": "ఈ నిరోధాన్ని తొలగించు",
        "movenotallowedfile": "మీకు ఫైళ్ళను తరలించే అనుమతి లేదు.",
        "cant-move-user-page": "వాడుకరి పేజీలను (ఉపపేజీలు కానివాటిని) తరలించే అనుమతి మీకు లేదు .",
        "cant-move-to-user-page": "మీకు ఒక పేజీని వాడుకరి పేజీగా (వాడుకరి ఉపపేజీగా తప్ప) తరలించే అనుమతి లేదు.",
+       "cant-move-category-page": "వర్గాల పేజీలను తరలించే అనుమతి మీకు లేదు.",
+       "cant-move-to-category-page": "పేజీలను వర్గాల పేజీలుగా మార్చే అనుమతి మీకు లేదు.",
        "newtitle": "కొత్త పేరుకి",
        "move-watch": "ఈ పేజీని గమనించు",
        "movepagebtn": "పేజీని తరలించు",
        "thumbnail_image-missing": "ఫైలు తప్పిపోయినట్లున్నది: $1",
        "thumbnail_image-failure-limit": "ఈ థంబ్‍నెయిల్‍ను రెండరు చెయ్యడానికి చాలా ఎక్కువ విఫలయత్నాలు ($1 లేదా అంతకంటే ఎక్కువ) జరిగాయి. కాస్తాగి మళ్ళీ ప్రయత్నించండి.",
        "import": "పేజీలను దిగుమతి చేసుకోండి",
-       "importinterwiki": "à°\87à°\82à°\95à±\8bవికీ నుండి దిగుమతి",
+       "importinterwiki": "మరà±\8aà°\95 వికీ నుండి దిగుమతి",
        "import-interwiki-text": "దిగుమతి చేసుకోవడానికి ఒక వికీని మరియు అందులోని పేజీని ఎంచుకోండి.\nకూర్పుల తేదీలు మరియు మార్పులు చేసిన వారి పేర్లు భద్రపరచబడతాయి.\nఇతర వికీలనుండి చేస్తున్న దిగుమతుల చర్యలన్నీ [[Special:Log/import|దిగుమతుల చిట్టా]]లో నమోదవుతాయి.",
+       "import-interwiki-sourcewiki": "మూల వికీ:",
+       "import-interwiki-sourcepage": "మూల పేజీ:",
        "import-interwiki-history": "ఈ పేజీ యొక్క అన్ని చారిత్రక కూర్పులను కాపీ చెయ్యి",
        "import-interwiki-templates": "అన్ని మూసలను ఉంచు",
        "import-interwiki-submit": "దిగుమతించు",
        "javascripttest": "జావాస్క్రిప్ట్ పరీక్ష",
        "javascripttest-pagetext-noframework": "ఈ పేజీ JavaScript పరీక్షల కోసం ఉద్దేశించబడింది.",
        "javascripttest-pagetext-unknownframework": "తెలియని పరీక్షా ఫ్రేమ్‍వర్కు \"$1\".",
+       "javascripttest-pagetext-unknownaction": "తెలియని చర్య \"$1\".",
        "javascripttest-pagetext-frameworks": "కింది పరీక్షా ఫ్రేమ్‍వర్కులలో ఒకదాన్ని ఎంచుకోండి: $1",
        "javascripttest-pagetext-skins": "పరీక్షలు నడిపేందుకు ఓ రూపును ఎంచుకోండి:",
        "javascripttest-qunit-intro": "mediawiki.org లోని [$1 పరీక్షా డాక్యుమెంటేషన్] చూడండి.",
        "tooltip-feed-atom": "ఈ పేజీకి Atom ఫీడు",
        "tooltip-t-contributions": "ఈ వాడుకరి యొక్క రచనల జాబితా చూడండి",
        "tooltip-t-emailuser": "ఈ వాడుకరికి ఓ ఈమెయిలు పంపండి",
+       "tooltip-t-info": "ఈ పేజీ గురించి మరింత సమాచారం",
        "tooltip-t-upload": "దస్త్రాలను ఎక్కించండి",
        "tooltip-t-specialpages": "అన్ని ప్రత్యేక పుటల జాబితా",
        "tooltip-t-print": "ఈ పేజీ యొక్క ముద్రణా రూపు",
        "pageinfo-protect-cascading-yes": "అవును",
        "pageinfo-protect-cascading-from": "సంరక్షణ ఇక్కడినుంచి వ్యాపిస్తుంది",
        "pageinfo-category-info": "వర్గపు సమాచారం",
+       "pageinfo-category-total": "మొత్తం సభ్యుల సంఖ్య",
        "pageinfo-category-pages": "పేజీల సంఖ్య",
        "pageinfo-category-subcats": "ఉపవర్గాల సంఖ్య",
        "pageinfo-category-files": "దస్త్రాల సంఖ్య",
        "patrol-log-page": "నిఘా చిట్టా",
        "patrol-log-header": "ఇది పర్యవేక్షించిన కూర్పుల చిట్టా.",
        "log-show-hide-patrol": "$1 పర్యవేక్షణ చిట్టా",
+       "log-show-hide-tag": "ట్యాగుల చిట్టాను $1",
        "deletedrevision": "పాత సంచిక $1 తొలగించబడినది.",
        "filedeleteerror-short": "ఫైలు తొలగించడంలో పొరపాటు: $1",
        "filedeleteerror-long": "ఫైలుని తొలగించడంలో పొరపాట్లు జరిగాయి:\n\n$1",
        "version-entrypoints": "ప్రవేశ బిందు చిరునామాలు",
        "version-entrypoints-header-entrypoint": "ప్రవేశ బిందువు",
        "version-entrypoints-header-url": "చిరునామా",
+       "version-libraries-version": "సంచిక",
        "redirect": "ఫైలు, వాడుకరి, పేజీ లేదా కూర్పు ఐడీ ప్రకారం దారిమార్పు",
        "redirect-legend": "ఫైలు లేదా పేజీకి దారిమార్పు",
        "redirect-submit": "వెళ్ళు",
        "tags-tag": "ట్యాగు పేరు",
        "tags-display-header": "మార్పుల జాబితాలో కనపించు రీతి",
        "tags-description-header": "అర్థం యొక్క పూర్తి వివరణ",
+       "tags-source-header": "మూలం",
        "tags-active-header": "క్రియాశీలం?",
        "tags-hitcount-header": "ట్యాగులున్న మార్పులు",
+       "tags-actions-header": "చర్యలు",
        "tags-active-yes": "అవును",
        "tags-active-no": "కాదు",
+       "tags-source-none": "వాడుకలో లేదు",
        "tags-edit": "మార్చు",
+       "tags-delete": "తొలగించు",
+       "tags-activate": "చేతనంచేయి",
        "tags-hitcount": "$1 {{PLURAL:$1|మార్పు|మార్పులు}}",
+       "tags-manage-no-permission": "ట్యాగులను నిర్వహించడానికి మీకు అనుమతి లేదు.",
+       "tags-create-heading": "కొత్త ట్యాగును సృష్టించు",
+       "tags-create-tag-name": "ట్యాగు పేరు:",
+       "tags-create-reason": "కారణం:",
+       "tags-create-submit": "సృష్టించు",
+       "tags-create-no-name": "ట్యాగు పేరును తప్పకుండా ఇవ్వాలి.",
+       "tags-create-already-exists": "\"$1\" ట్యాగు ఇప్పటికే ఉంది.",
+       "tags-delete-title": "ట్యాగును తొలగించు",
+       "tags-delete-explanation-initial": "మీరు \"$1\" ట్యాగును డేటాబేసు నుండి తొలగించబోతున్నారు.",
+       "tags-delete-reason": "కారణం:",
+       "tags-delete-not-found": "\"$1\" అనే ట్యాగు లేదు.",
+       "tags-activate-reason": "కారణం:",
+       "tags-activate-not-found": "\"$1\" అనే ట్యాగు లేదు.",
+       "tags-activate-submit": "చేతనంచేయి",
+       "tags-deactivate-title": "ట్యాగును అచేతనం చేయి",
+       "tags-deactivate-question": "\"$1\" ట్యాగును మీరు అచేతనం చేయబోతున్నారు.",
+       "tags-deactivate-reason": "కారణం:",
+       "tags-deactivate-not-allowed": "\"$1\" ట్యాగును అచేతనం చేయడం సాధ్యం కాదు.",
+       "tags-deactivate-submit": "అచేతనం చేయి",
+       "tags-apply-no-permission": "మీ మార్పులతో పాటు వాటికి ట్యాగులను ఆపాదించే అనుమతి మీకు లేదు.",
+       "tags-apply-not-allowed-one": "\"$1\" ట్యాగును మానవీయంగా ఆపాదించలేరు.",
+       "tags-apply-not-allowed-multi": "ఈ {{PLURAL:$2|ట్యాగును|ట్యాగులను}} మానవీయంగా ఆపాదించడానికి అనుమతించరు:",
+       "tags-edit-existing-tags": "ప్రస్తుత ట్యాగులు:",
+       "tags-edit-existing-tags-none": "''ఏమీలేవు''",
+       "tags-edit-new-tags": "కొత్త ట్యాగులు:",
+       "tags-edit-add": "ఈ ట్యాగులను చేర్చు:",
+       "tags-edit-remove": "ఈ ట్యాగులను తొలగించు:",
+       "tags-edit-reason": "కారణం:",
+       "tags-edit-success": "మార్పులు విజయవంతంగా ఆపాదించబడ్డాయి.",
        "comparepages": "పుటల పోలిక",
        "compare-page1": "పుట 1",
        "compare-page2": "పుట 2",
        "logentry-rights-rights-legacy": "$1, $3 యొక్క గుంపు సభ్యత్వాన్ని {{GENDER:$2|మార్చారు}}",
        "logentry-rights-autopromote": "$1, $4 నుండి $5 కు ఆటోమేటిగ్గా {{GENDER:$2|ప్రమోటు చెయ్యబడ్డారు}}",
        "logentry-upload-upload": "$1 $3 ను {{GENDER:$2|ఎక్కించారు}}",
+       "logentry-upload-revert": "$3ను $1 {{GENDER:$2|ఎక్కించారు}}",
+       "log-name-managetags": "ట్యాగు నిర్వహణ చిట్టా",
+       "logentry-managetags-create": "\"$4\" ట్యాగును $1 {{GENDER:$2|సృష్టించారు}}",
+       "log-name-tag": "ట్యాగుల చిట్టా",
        "rightsnone": "(ఏమీలేవు)",
        "revdelete-summary": "మార్పు సంగ్రహం",
        "feedback-adding": "ఫీడ్‍బ్యాకును పేజీలోకి చేరుస్తున్నాం...",
+       "feedback-back": "వెనుకకు",
        "feedback-bugcheck": "అద్భుతం! ఇది ఇప్పటికే [$1 తెలిసిన బగ్గుల]లో లేదని సరిచూసుకోండి.",
        "feedback-bugnew": "చూసాను. కొత్త బగ్గును నివేదించు",
        "feedback-bugornote": "ఏదైనా సాంకేతిక సమస్యను మీరు వివరించదలిస్తే [$1 లోపంపై ఫిర్యాదు చెయ్యండి].\nలేదంటే, కింద ఉన్న సులువైన ఫారాన్ని వాడండి. మీ వ్యాఖ్య మీ వాడుకరిపేరుతో సహా  \"[$3 $2]\" పేజీలో చేర్చబడుతుంది.",
        "feedback-cancel": "రద్దుచేయి",
        "feedback-close": "పూర్తయ్యింది",
+       "feedback-dialog-title": "ప్రతిస్పందనను తెలియజేయండి",
+       "feedback-dialog-intro": "మీ ప్రతిస్పందనను తెలియజేయడానికి ఈ తేలిక ఫారాన్ని వాడుకోవచ్చు. మీ వాడుకరి పేరుతో పాటు మీ వ్యాఖ్య \"$1\" పేజీకి చేర్చబడుతుంది.",
+       "feedback-error-title": "లోపం",
        "feedback-error1": "లోపం: API నుండి గుర్తుపట్టలేని ఫలితం",
        "feedback-error2": "దోషము: సవరణ విఫలమైంది",
        "feedback-error3": "లోపం: API నుండి ప్రతిస్పందన లేదు",
        "feedback-subject": "విషయం:",
        "feedback-submit": "దాఖలుచెయ్యి",
        "feedback-thanks": "కృతజ్ఞతలు! మీ ప్రతిస్పందనను “[$2 $1]” పేజీలో చేర్చాం.",
+       "feedback-thanks-title": "కృతజ్ఞతలు!",
+       "feedback-useragent": "వాడుకరి ఏజెంటు:",
        "searchsuggest-search": "వెతుకు",
        "searchsuggest-containing": "కలిగియున్న...",
        "api-error-badaccess-groups": "ఈ వికీ లోనికి దస్త్రాలను ఎక్కించే అనుమతి మీకు లేదు.",
        "expand_templates_generate_xml": "XML పార్స్ ట్రీని చూపించు",
        "expand_templates_generate_rawhtml": "ముడి HTML ను చూపించు",
        "expand_templates_preview": "మునుజూపు",
+       "pagelanguage": "పేజీ భాష ఎంపిక",
        "pagelang-name": "పేజీ",
        "pagelang-language": "భాష",
        "pagelang-use-default": "అప్రమేయ భాషను వాడు",
+       "pagelang-select-lang": "భాషను ఎంచుకోండి",
+       "right-pagelang": "పేజీ భాషను మార్చడం",
+       "action-pagelang": "పేజీ భాషను మార్చే",
+       "log-name-pagelang": "భాష మార్పుల చిట్టా",
+       "log-description-pagelang": "ఇది పేజీ భాష మార్పుల చిట్టా.",
+       "logentry-pagelang-pagelang": "$3 పేజీ భాషను $4 నుండి $5 కి $1 {{GENDER:$2|మార్చారు}}.",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (చేతనం)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''అచేతనం''')",
+       "mediastatistics": "మాధ్యమ గణాంకాలు",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 బైటు|$1 బైట్లు}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "MIME రకం",
+       "mediastatistics-table-count": "దస్త్రాల సంఖ్య",
+       "mediastatistics-header-unknown": "తెలియని",
+       "mediastatistics-header-drawing": "రేఖాచిత్రాలు (వెక్టర్ చిత్రాలు)",
+       "mediastatistics-header-audio": "ఆడియో",
+       "mediastatistics-header-video": "వీడియోలు",
+       "mediastatistics-header-text": "పాఠ్య",
+       "json-error-state-mismatch": "చెల్లని లేదా సరికాని JSON",
+       "headline-anchor-title": "ఈ విభాగానికి లంకె",
        "special-characters-group-latin": "లాటిన్",
        "special-characters-group-latinextended": "విస్తరిత లాటిన్",
        "special-characters-group-ipa": "ఐపిఎ",
        "special-characters-group-greek": "గ్రీకు",
        "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-devanagari": "దేవనాగరి",
        "special-characters-group-thai": "థాయి",
        "special-characters-group-lao": "లావో",
-       "special-characters-group-khmer": "ఖ్మెర్"
+       "special-characters-group-khmer": "ఖ్మెర్",
+       "special-characters-title-endash": "ఎన్ డాష్",
+       "special-characters-title-emdash": "ఎమ్ డాష్",
+       "special-characters-title-minus": "మైనస్ గుర్తు"
 }
index d3d5588..5a26f69 100644 (file)
        "history": "Kasaysayan ng pahina",
        "history_short": "Kasaysayan",
        "updatedmarker": "isinapanahon mula noong huli kong pagdalaw",
-       "printableversion": "Bersyong maililimbag",
+       "printableversion": "Bersiyong maililimbag",
        "permalink": "Palagiang kawing",
        "print": "Ilimbag",
        "view": "Tingnan",
        "action-siteadmin": "ikandado o tanggalin ang pagkakakandado ng kalipunan ng dato",
        "action-sendemail": "magpadala ng mga e-liham",
        "nchanges": "$1 {{PLURAL:$1|pagbabago|mga pagbabago}}",
+       "enhancedrc-history": "kasaysayan",
        "recentchanges": "Kamakailang pagbabago",
        "recentchanges-legend": "Mga pagpipilian para sa kamakailang mga pagbabago",
        "recentchanges-summary": "Subaybayan ang mga pinakahuling pagbabago sa wiki sa pahinang ito.",
        "recentchanges-label-minor": "Isa itong munting pagbabago",
        "recentchanges-label-bot": "Gawa ng isang bot ang pagbabagong ito",
        "recentchanges-label-unpatrolled": "Hindi pa napapatrulyahan ang pagbabagong ito",
+       "recentchanges-legend-heading": "'''Gabay:'''",
        "recentchanges-legend-newpage": "$1 - bagong pahina",
        "rcnotefrom": "Nasa ibaba ang mga pagbabago mula pa noong '''$2''' (ipinapakita ang magpahanggang sa '''$1''').",
        "rclistfrom": "Ipakita ang bagong mga pagbabago simula sa $3 $2",
        "rc_categories": "Itakda lang sa mga kaurian (ihiwalay sa pamamagitan ng \"|\")",
        "rc_categories_any": "Kahit ano",
        "rc-change-size": "$1",
-       "rc-change-size-new": "$1 {{PLURAL:$1|byte|mga byte}} pagkaraan ng pagbabago",
+       "rc-change-size-new": "$1 {{PLURAL:$1|byte}} pagkaraan ng pagbabago",
        "newsectionsummary": "/* $1 */ bagong seksyon",
        "rc-enhanced-expand": "Ipakita ang mga detalye",
        "rc-enhanced-hide": "Itago ang mga detalye",
        "recentchangeslinked": "Kaugnay na mga pagbabago",
        "recentchangeslinked-feed": "Kaugnay na mga pagbabago",
        "recentchangeslinked-toolbox": "Kaugnay na mga pagbabago",
-       "recentchangeslinked-title": "Mga pagbabagong kaugnay ng \"$1\"",
+       "recentchangeslinked-title": "Mga pagbabagong may kaugnayan sa \"$1\"",
        "recentchangeslinked-summary": "Nililista ng natatanging pahina na ito ang huling mga pagbabago na nakaugnay. Naka '''matapang na teksto''' ang iyong mga binabantayan.",
        "recentchangeslinked-page": "Pangalan ng pahina:",
        "recentchangeslinked-to": "Ipakita ang mga pagbabago sa mga pahinang nakaugnay sa isang binigay na pahina sa halip",
        "filehist-user": "Tagagamit",
        "filehist-dimensions": "Mga sukat",
        "filehist-filesize": "Sukat ng talaksan",
-       "filehist-comment": "Puna/Kumento",
+       "filehist-comment": "Komento",
        "imagelinks": "Paggamit ng talaksan",
-       "linkstoimage": "Nakakawing ang sumusunod na {{PLURAL:$1|pahina|$1 mga pahina}} sa talaksang ito.",
+       "linkstoimage": "Nakakawing ang sumusunod na {{PLURAL:$1|pahina|$1 pahina}} sa talaksang ito:",
        "linkstoimage-more": "Mahigit sa $1 {{PLURAL:$1|pahina|mga pahina}} ang nakakawing sa talaksang ito.\nIpinapakita sa sumusunod na talaan ang {{PLURAL:$1|unang pahina lamang|unang $1 mga pahina lamang}} na nakakawing sa talaksang ito.\nMayroong makukuhang [[Special:WhatLinksHere/$2|buong talaan]].",
        "nolinkstoimage": "Walang pahinang nakakawing sa talaksang ito.",
        "morelinkstoimage": "Tingnan ang [[Special:WhatLinksHere/$1|mas marami pang mga kawing]] para sa pahinang ito.",
        "shared-repo": "isang pinagsasaluhang repositoryo",
        "shared-repo-name-wikimediacommons": "Wikimedia Commons",
        "filepage.css": "/* Ang Cascading Style Sheets na inilagay dito ay kabilang sa pahina ng paglalarawan ng talaksan, na kabilang din sa mga wiki ng dayuhang kliyente */",
-       "upload-disallowed-here": "Sa kasamaang palad hindi mo muling masusulatan ang imaheng ito.",
+       "upload-disallowed-here": "Sa kasamaang palad hindi mo muling masusulatan ang talaksang ito.",
        "filerevert": "Ibalik sa dati ang $1",
        "filerevert-legend": "Ibalik ang talaksan",
        "filerevert-intro": "<span class=\"plainlinks\">Ibinabalik mo sa dati ang '''[[Media:$1|$1]]''' patungo sa [$4 bersyon noong $3, $2].</span>",
        "allpagesto": "Ipakita ang mga pahinang nagtatapos sa:",
        "allarticles": "Lahat ng mga pahina",
        "allinnamespace": "Lahat ng mga pahina ($1 espasyo ng pangalan)",
-       "allpagessubmit": "Ipatupad/Sumige",
+       "allpagessubmit": "Gawin",
        "allpagesprefix": "Ipakita ang mga pahinang may unlaping:",
        "allpagesbadtitle": "Ang binagay na pamagat ng pahina ay hindi tinatanggap o may unlapi na tumuturo sa ibang wika o wiki.  Maaaring naglalaman ito ng isa o higit pa na mga karakter na hindi ginagamit bilang pamagat.",
        "allpages-bad-ns": "Wala sa {{SITENAME}} ang espasyo ng pangalang \"$1\".",
        "tooltip-pt-preferences": "Mga nais ko",
        "tooltip-pt-watchlist": "Ang talaan ng mga pagbabago sa mga pahinang binabantayan mo",
        "tooltip-pt-mycontris": "Talaan ng mga ambag mo",
-       "tooltip-pt-login": "Hinihimok kang lumagda, bagaman hindi ito kinakailangan.",
+       "tooltip-pt-login": "Hinihikayat kang lumagda; gayunpaman, hindi ito kinakailangan.",
        "tooltip-pt-logout": "Umalis sa pagkaka-login",
+       "tooltip-pt-createaccount": "Hinihikayat kang lumikha ng kuwenta at lumigda; gayunpaman, hindi ito kinakailangan",
        "tooltip-ca-talk": "Usapan tungkol sa nilalaman ng pahinang ito",
        "tooltip-ca-edit": "Maaaring baguhin ang pahinang ito. Paki gamit ang buton ng paunang tingin bago itala.",
-       "tooltip-ca-addsection": "Magsimula ng isang bagong seksiyon",
+       "tooltip-ca-addsection": "Magsimula ng bagong seksiyon",
        "tooltip-ca-viewsource": "Nakasanggalang ang pahinang ito.\nMaaari mong tingnan ang batayan nito.",
-       "tooltip-ca-history": "Nakaraang bersyon ng pahinang ito.",
+       "tooltip-ca-history": "Mga nakaraang bersiyon ng pahinang ito.",
        "tooltip-ca-protect": "Iprotekta ang pahinang ito",
        "tooltip-ca-unprotect": "Baguhin ang pruteksiyon ng pahinang ito",
        "tooltip-ca-delete": "Burahin ang pahinang ito",
        "tooltip-ca-nstab-mediawiki": "Tingnan ang mensahe ng sistema",
        "tooltip-ca-nstab-template": "Tingnan ang padron",
        "tooltip-ca-nstab-help": "Tingnan ang pahina ng tulong",
-       "tooltip-ca-nstab-category": "Tingnan ang pahina ng kaurian/kategorya",
+       "tooltip-ca-nstab-category": "Tingnan ang pahina ng kategorya",
        "tooltip-minoredit": "Tandaan ito bilang isang maliit na pagbabago",
        "tooltip-save": "Sagipin ang iyong mga pagbabago",
        "tooltip-preview": "Paunang-tingnan ang mga pagbabago mo, pakigamit muna ito bago sagipin o magtala!",
        "pageinfo-magic-words": "{{PLURAL:$1|Salita|Mga salita}}ng mahiwaga ($1)",
        "pageinfo-hidden-categories": "Nakatagong {{PLURAL:$1|kategorya|mga kategorya}} ($1)",
        "pageinfo-templates": "{{PLURAL:$1|Suleras|Mga suleras}} ($1) na nasa transklusyon (kasama sa maraming mga lugar)",
+       "pageinfo-toolboxlink": "Impormasyon ng pahina",
        "markaspatrolleddiff": "Tatakan bilang napatrolya na",
        "markaspatrolledtext": "Tatakan ang pahinang ito bilang napatrolya na",
        "markedaspatrolled": "Tatakan bilang napatrolya na",
        "file-nohires": "Walang makuhang mas mataas na resolusyon (kalinawan).",
        "svg-long-desc": "Talaksang SVG, nasa mga bilang na $1 × $2 mga piksel, sukat ng talaksan: $3",
        "svg-long-desc-animated": "Animadong talaksang SVG, nasa mga bilang na $1 × $2 mga piksel, sukat ng talaksan: $3",
-       "show-big-image": "Buong resolusyon (kalinawan)",
+       "show-big-image": "Orihinal na talaksan",
        "show-big-image-preview": "Sukat ng paunang-tingin na ito: $1.",
-       "show-big-image-other": "Iba pang {{PLURAL:$2|resolusyon|mga resolusyon}}: $1.",
+       "show-big-image-other": "Ibang {{PLURAL:$2|resolusyon|mga resolusyon}}: $1.",
        "show-big-image-size": "$1 x $2 mga piksel",
        "file-info-gif-looped": "nasilo na",
        "file-info-gif-frames": "$1 {{PLURAL:$1|banhay|mga banhay}}",
        "logentry-patrol-patrol": "Minarkahan ni $1 ang rebisyong $4 ng pahinang $3 bilang napatrolya na",
        "logentry-patrol-patrol-auto": "Kusang minarkahan ni $1 ang rebisyong $4 ng pahinang $3 bilang napatrolya na",
        "logentry-newusers-newusers": "Nilikha ang kuwenta ng tagagamit na $1",
-       "logentry-newusers-create": "Lumikha si $1 ng isang kuwenta ng tagagamit",
+       "logentry-newusers-create": "{{GENDER:$2|Inilikha}} ang kuwentang $1 ng tagagamit",
        "logentry-newusers-create2": "Lumikha si $1 ng isang kuwenta ng tagagamit na $3",
        "logentry-newusers-autocreate": "Automatikong {{GENDER:$2|inilikha}} ang account ng tagagamit na $1",
        "rightsnone": "(wala)",
index 93bc155..c37821f 100644 (file)
@@ -73,7 +73,8 @@
                        "Macofe",
                        "Nighteagle2000",
                        "Watermelon juice",
-                       "Ömer Berkay"
+                       "Ömer Berkay",
+                       "Demircimehmed"
                ]
        },
        "tog-underline": "Bağlantıların altını çiz:",
        "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": "Geridönüş uygulandıktan sonra değişiklik görünümünü es geç",
+       "tog-norollbackdiff": "Geri döndürme uygulandıktan sonra değişiklik görünümünü es geç",
        "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",
        "pool-timeout": "Kilit için zaman bitimi bekleniyor",
        "pool-queuefull": "Havuz sırası dolu",
        "pool-errorunknown": "Bilinmeyen hata",
-       "pool-servererror": "Anket sayacı hizmeti kullanılamıyor ($1).",
+       "pool-servererror": "Havuz sayacı hizmeti kullanılamıyor ($1).",
        "poolcounter-usage-error": "Kullanım hatası: $1",
        "aboutsite": "{{SITENAME}} hakkında",
        "aboutpage": "Project:Hakkında",
        "badtitletext": "Girilen sayfa adı ya hatalı ya boş ya da diller arası bağlantı veya vikiler arası bağlantı içerdiğinden geçerli değil. Başlıklarda kullanılması yasak olan bir ya da daha çok karakter içeriyor olabilir.",
        "title-invalid-empty": "İstenilen sayfanın başlığı boş veya sadece bir ad alanının adını taşıyor.",
        "title-invalid-utf8": "İstenen sayfanın başlığı geçersiz bir UTF-8 dizisi içeriyor.",
-       "title-invalid-interwiki": "Başlık vikiiçi bağlantı içeriyor",
+       "title-invalid-interwiki": "İstneilen sayfanın başlığı, başlıklarda kullanılamayacak bir vikiiçi bağlantı içeriyor",
        "title-invalid-talk-namespace": "İstenen sayfa başlığı mevcut olmayan bir tartışma sayfasına gönderme yapıyor.",
        "title-invalid-characters": "İstenen sayfa başlığı geçersiz karakter içeriyor: \"$1\"",
        "title-invalid-relative": "Başlık göreli yol içeriyor. Göreli yol içeren başlıklar (./, ../ gibi) kullanılamaz, çünkü genelde kullanıcıların tarayıcıları bu şekildeki başlıklara erişimde sıkıntı yaşar.",
        "title-invalid-magic-tilde": "İstenen sayfa başlığı geçersiz bir sihirli yaklaşık işareti dizisi içeriyor (<nowiki>~~~</nowiki>).",
-       "title-invalid-too-long": "İstenen sayfa başlığı çok uzun. UTF-8 kodlamasında $1 bayttan daha uzun olmamalı.",
+       "title-invalid-too-long": "İstenen sayfa başlığı çok uzun. UTF-8 kodlamasında $1 {{PLURAL:$1|bayttan}} daha uzun olmamalı.",
        "title-invalid-leading-colon": "İstenen sayfa başlığının başında geçersiz bir \"iki nokta\" var.",
        "perfcached": "Aşağıdaki veriler önbellekten alınmıştır ve güncel olmayabilir. Önbellekte en fazla {{PLURAL:$1|bir sonuç|$1 sonuç}} mevcut.",
        "perfcachedts": "Aşağıdaki veri önbelleklenmiştir, son güncelleme tarihi: $1. Önbellekte en fazla {{PLURAL:$1|bir sonuç|$4 sonuç}} mevcut.",
        "createacct-imgcaptcha-ph": "Yukarıda gördüğünüz metni girin",
        "createacct-submit": "Hesabınızı oluşturun",
        "createacct-another-submit": "Başka bir hesap oluşturun",
-       "createacct-benefit-heading": "{{SITENAME}} sizin gibi insanlar tarafından oluşturulur.",
+       "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|sayfa|sayfa}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|madde|madde}}",
        "createacct-benefit-body3": "en son {{PLURAL:$1|katkıda bulunan|katkıda bulunan}} kişi sayısı",
        "badretype": "Girdiğiniz şifreler birbirleriyle uyuşmuyor.",
        "userexists": "Girdiğiniz kullanıcı adı zaten kullanımda.\nLütfen farklı bir kullanıcı adı seçiniz.",
        "content-model-css": "CSS",
        "content-json-empty-object": "Boş nesne",
        "content-json-empty-array": "Boş dizi",
+       "duplicate-args-warning": "<strong>Uyarı:</strong>[[:$1]] [[:$2]] şablonunu \"$3\" parametresi için birden fazla değerle çağırıyor. Sadece sağlanan son değer kullanılacak.",
        "duplicate-args-category": "Yinelenen şablon değişkenleri kullanan sayfalar",
        "duplicate-args-category-desc": "Sayfada içeren şablonları çağırmak için bu terimler kullanılır <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> or <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Uyarı: Bu sayfa çok fazla zengin derleyici fonksiyonu çağrısı içeriyor.\n\nBu $2 çağrıdan az olmalı, şu anda {{PLURAL:$1|1 çağrı var|$1 çağrı var}}.",
        "userrights-lookup-user": "Kullanıcı gruplarını düzenle",
        "userrights-user-editname": "Kullanıcı adı giriniz:",
        "editusergroup": "Kullanıcı grupları düzenle",
-       "editinguser": "'''[[User:$1|$1]]'''  $2 kullanıcısının yetkilerini değiştirmektesiniz",
+       "editinguser": "<strong>'''[[User:$1|$1]]'''</strong> $2 kullanıcısının yetkileri değiştiriliyor",
        "userrights-editusergroup": "Kullanıcı grupları düzenle",
        "saveusergroups": "Kullanıcı grupları kaydet",
        "userrights-groupsmember": "İçinde olduğu gruplar:",
        "recentchanges-label-unpatrolled": "Bu değişiklik henüz gözlenmemiş",
        "recentchanges-label-plusminus": "Sayfa boyutundaki değişikliğin bayt bazında değeri",
        "recentchanges-legend-heading": "'''Gösterge:'''",
-       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}}",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (Aynı zamanda bkz: [[Special:NewPages|Yeni sayfaların listesi]])",
        "rcnotefrom": "<strong>$3, $4</strong> tarihinden itibaren yapılan {{PLURAL:$5|değişiklik|değişiklik}} aşağıdadır (<strong>$1</strong> tarhine kadar olanlar gösterilmektedir).",
        "rclistfrom": "$3 $2 tarihinden itibaren yeni değişiklikleri göster",
        "rcshowhideminor": "Küçük değişiklikleri $1",
-       "rcshowhideminor-show": "Göster",
+       "rcshowhideminor-show": "göster",
        "rcshowhideminor-hide": "gizle",
        "rcshowhidebots": "botları $1",
        "rcshowhidebots-show": "göster",
        "rcshowhideliu-show": "göster",
        "rcshowhideliu-hide": "gizle",
        "rcshowhideanons": "Anonim kullanıcıları $1",
-       "rcshowhideanons-show": "Göster",
+       "rcshowhideanons-show": "göster",
        "rcshowhideanons-hide": "gizle",
        "rcshowhidepatr": "İzlenmiş değişiklikleri $1",
        "rcshowhidepatr-show": "Göster",
-       "rcshowhidepatr-hide": "Gizle",
-       "rcshowhidemine": "Değişikliklerimi $1",
-       "rcshowhidemine-show": "Göster",
+       "rcshowhidepatr-hide": "gizle",
+       "rcshowhidemine": "Benim değişikliklerimi $1",
+       "rcshowhidemine-show": "göster",
        "rcshowhidemine-hide": "gizle",
        "rclinks": "Son $2 günde yapılan son $1 değişikliği göster;<br /> $3",
        "diff": "fark",
        "number_of_watching_users_pageview": "[$1 izlenilen {{PLURAL:$1|kullanıcı|kullanıcı}}]",
        "rc_categories": "Kategorilere sınırla (\"|\" ile ayır)",
        "rc_categories_any": "Herhangi",
-       "rc-change-size-new": "$1 {{PLURAL:$1|bayt|bayt}} değişiklikten sonra",
+       "rc-change-size-new": "Değişiklikten sonraki boyut: $1 {{PLURAL:$1|bayt|bayt}}",
        "newsectionsummary": "/* $1 */ yeni başlık",
        "rc-enhanced-expand": "Ayrıntıları göster",
        "rc-enhanced-hide": "Ayrıntıları gizle",
        "uploaddisabledtext": "Dosya yüklemeleri devredışı bırakılmıştır.",
        "php-uploaddisabledtext": "PHP dosyası yüklemeleri devre dışıdır. Lütfen file_uploads ayarını kontrol edin.",
        "uploadscripted": "Bu dosya bir internet tarayıcısı tarafından hatalı çevrilebilecek bir HTML veya script kodu içermektedir.",
+       "upload-scripted-pi-callback": "xml-stylesheet işleme talimatları içeren bir dosyalar yüklenemez.",
+       "uploaded-script-svg": "Yüklenen SVG dosyasında komutlanabilir (scriptable) öğe bulundu: \"$1\"",
+       "uploaded-hostile-svg": "Yüklenen SVG dosyasının \"style\" öğesinde güvensiz CSS bulundu.",
+       "uploaded-event-handler-on-svg": "SVG dosyalarında event-handler özniteliğini <code>$1=\"$2\"</code> şeklinde ayarlanmasına izin verilmiyor.",
+       "uploaded-href-attribute-svg": "SVG dosyalarında yerel olmayan (örn. http://, javascript:, vb.) hedefleri olan <code>&lt;$1 $2=\"$3\"&gt;</code> href özniteliklerine izin verilmez.",
+       "uploaded-href-unsafe-target-svg": "Yüklenen SVG dosyasında <code>&lt;$1 $2=\"$3\"&gt;</code> güvensiz hedefine href bulundu.",
+       "uploaded-animate-svg": "\"animate\" etiketi bulundu, href'i değiştiriyor olabilir. Yüklenen SVG dosyasındaki \"from\" özniteliği kullanılıyor  <code>&lt;$1 $2=\"$3\"&gt;</code>",
        "uploadscriptednamespace": "Bu SVG dosyası geçersiz \"$1\" alan adını içermektedir.",
        "uploadinvalidxml": "Yüklenen dosyadaki XML işlenemedi.",
        "uploadvirus": "Bu dosya virüslüdür! Detayları: $1",
        "unusedimages": "Kullanılmayan dosyalar",
        "wantedcategories": "İstenen kategoriler",
        "wantedpages": "İstenen sayfalar",
-       "wantedpages-summary": "Sadece yönlendirme sayfalarınca bağlantı veilen sayfalar hariç, kendine en çok bağlantı verilmiş ve mevcut olmayan sayfaların listesi. Yönlendirme sayfalarınca bağlantı verilmiş, mevcut olmayan sayfaları görmek için bakınız: [[{{#special:BrokenRedirects}}]]",
+       "wantedpages-summary": "Bağlantı veren yönlendirme sayfaları hariç, kendine en çok bağlantı verilmiş ve mevcut olmayan sayfaların listesi. Yönlendirme sayfalarınca bağlantı verilmiş, mevcut olmayan sayfaları görmek için bakınız: [[{{#special:BrokenRedirects}}|Bozuk yönlendirmeler listesi]]",
        "wantedpages-badtitle": "Sonuç kümesinde geçersiz başlık: $1",
        "wantedfiles": "İstenen dosyalar",
        "wantedfiletext-cat": "Aşağıdaki dosyalar kullanılıyor ama mevcut değil. Yabancı depolardaki dosyalar, varolsalar bile gösterilebilir. Böyle yanlış pozitiflerin <del>üstü çizilecektir</del>. Ek olarak, varolmayan dosyaları gömen sayfalar [[:$1]] sayfasında listelenmiştir.",
        "rollback": "değişiklikleri geri al",
        "rollbacklink": "geri döndür",
        "rollbacklinkcount": "$1 {{PLURAL:$1|değişikliği|değişikliği}} geri döndür",
-       "rollbacklinkcount-morethan": "$1 {{PLURAL:$1|değişiklikten|değişiklikten}} fazla geri döndür",
+       "rollbacklinkcount-morethan": "$1 {{PLURAL:$1|değişiklikten|değişiklikten}} daha fazlasını geri döndür",
        "rollbackfailed": "geri alma işlemi başarısız",
        "cantrollback": "Sayfaya son katkıda bulunan kullanıcı, sayfaya katkıda bulunmuş tek kişi olduğu için, değişiklikler geri alınamıyor.",
-       "alreadyrolled": "[[User:$2|$2]] ([[User talk:$2|Tartışma]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) tarafından [[:$1]] sayfasında yapılmış son değişiklik geriye alınamıyor;\nbaşka birisi sayfada değişiklik yaptı ya da sayfayı geriye aldı.\n\nSon değişikliği yapan: [[User:$3|$3]] ([[User talk:$3|Tartışma]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
+       "alreadyrolled": "[[User:$2|$2]] ([[User talk:$2|Tartışma]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) tarafından [[:$1]] sayfasında yapılmış son değişiklik geri döndürülemiyor;\nbaşka birisi sayfada değişiklik yaptı ya da sayfayı geri döndürdü.\n\nSon değişikliği yapan: [[User:$3|$3]] ([[User talk:$3|Tartışma]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "Değişiklik özeti: \"''$1''\" idi.",
        "revertpage": "[[Special:Contributions/$2|$2]] [[User talk:$2|mesaj]] tarafından yapılan değişiklikler geri alınarak, [[User:$1|$1]] tarafından değiştirilmiş önceki sürüm geri getirildi.",
        "revertpage-nouser": "Gizli bir kullanıcı tarafından yapılan değişiklikler geri alınarak {{GENDER:$1|[[User:$1|$1]]}} tarafından yapılan son revizyon geri getirildi",
        "move-page": "$1 taşınıyor",
        "move-page-legend": "İsim değişikliği",
        "movepagetext": "Aşağıdaki formu kullanmak sayfanın adını değiştirir, tüm geçmiş kayıtlarını da yeni isme aktarır.\nEski başlık yeni başlığa yönlendirme hâline dönüşür. Otomatik olarak eski başlığa yönlendirmeleri güncelleyebilirsiniz.\nEğer istemezseniz, tüm [[Special:DoubleRedirects|çift]] veya [[Special:BrokenRedirects|geçersiz]] yönlendirmeleri kontrol ettiğinizden emin olun.\nTüm bağlantıların olması gerektiği gibi çalıştığından sizin sorumlu olduğunuzu unutmayınız.\n\nEğer yeni isimde bir madde zaten varsa isim değişikliği '''yapılmayacaktır''', sonraki bir yönlendirme olup geçmiş değişiklik geçmişi olmadığı müddetçe.\nBu şu anlama gelir ki, eğer bir hata yaparsanız sayfayı değiştirildiği isme geri isimlendirebilirsiniz, ve mevcut bir sayfanın üstüne yazmazsınız.\n\n'''UYARI!'''\nBu değişim popüler bir sayfa için etkili ve beklenmeyen sonuçlar doğurabilir; lütfen devam etmeden önce olabilecekleri anladığınızdan emin olun.",
-       "movepagetext-noredirectfixer": "Aşağıdaki formu doldurmak bir sayfayı yeniden adlandırır, tüm geçmişini yeni ada taşır.\nEski başlık yeni başlığa bir yönlendirme sayfası olur.\n[[Special:DoubleRedirects|Çift]] ya da [[Special:BrokenRedirects|nozuk yönlendirmeler]] sayfalarını kontrol edin.\nBağlantıların gitmeleri gereken yerlere gittiklerinden emin olmak sizin sorumluluğunuzdadır.\n\nYeni başlıkta mevcut bir sayfa varsa, boş yada bir yönlendirme olmadıkça ve değişiklik geçmişi bulunmadıkça, sayfa '''taşınmayacaktır'''.\nBu şu anlama gelir, bir sayfayı yanlışlık yaparsanız sayfayı eski adıyla yeniden adlandırabilirsiniz, bu mevcut sayfanın üzerine yazmaz.\n\n'''Uyarı!'''\nBu popüler bir sayfa için etkili ve beklenmedik bir değişiklik olabilir;\nLütfen onaylamadan önce bunun sonuçlarını anladığınızdan emin olun.",
+       "movepagetext-noredirectfixer": "Aşağıdaki formu doldurmak bir sayfayı yeniden adlandırır, tüm geçmişini yeni ada taşır.\nEski başlık yeni başlığa bir yönlendirme sayfası olur.\n[[Special:DoubleRedirects|Çift]] ya da [[Special:BrokenRedirects|bozuk yönlendirmeler]] sayfalarını kontrol edin.\nBağlantıların gitmeleri gereken yerlere gittiklerinden emin olmak sizin sorumluluğunuzdadır.\n\nYeni başlıkta mevcut bir sayfa varsa, boş yada bir yönlendirme olmadıkça ve değişiklik geçmişi bulunmadıkça, sayfa '''taşınmayacaktır'''.\nBu şu anlama gelir, bir sayfayı yanlışlık yaparsanız sayfayı eski adıyla yeniden adlandırabilirsiniz, bu mevcut sayfanın üzerine yazmaz.\n\n'''Uyarı!'''\nBu popüler bir sayfa için etkili ve beklenmedik bir değişiklik olabilir;\nLütfen onaylamadan önce bunun sonuçlarını anladığınızdan emin olun.",
        "movepagetalktext": "İlişikteki tartışma sayfası da (eğer varsa) otomatik olarak yeni isme taşınacaktır. Ama şu durumlarda '''taşınmaz''':\n\n*Alanlar arası bir taşıma ise, (örnek: \"Project:\" --> \"Help:\")\n*Yeni isimde bir tartışma sayfası zaten var ise,\n*Alttaki kutucuğu seçmediyseniz.\n\nBu durumlarda sayfayı kendiniz aktarmalısınız.",
        "movearticle": "Eski isim",
        "moveuserpage-warning": "'''Uyarı:''' Bir kullanıcı sayfasını taşımak üzeresiniz. Lütfen sadece sayfanın taşınacağına, ancak kullanıcının yeniden ''adlandırılmayacağına'' dikkat edin.",
        "tooltip-search": "{{SITENAME}} içinde ara",
        "tooltip-search-go": "Eğer varsa, tam bu addaki bir sayfaya git",
        "tooltip-search-fulltext": "Sayfalarda bu metni ara",
-       "tooltip-p-logo": "Ana sayfa",
+       "tooltip-p-logo": "Ana sayfayı ziyaret edin",
        "tooltip-n-mainpage": "Ana sayfaya git",
        "tooltip-n-mainpage-description": "Ana sayfaya git",
        "tooltip-n-portal": "Proje hakkında, neler yapabilirsiniz, ne nerdedir",
        "pageinfo-redirects-name": "Bu sayfaya yönlendirme sayısı",
        "pageinfo-redirects-value": "$1",
        "pageinfo-subpages-name": "Bu sayfanın alt sayfaları",
-       "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|yönlendirme|yönlendirme}}; $3 {{PLURAL:$3|yönlendirme olmayan|non-yönlendirme olmayan}})",
+       "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|yönlendirme|yönlendirme}}; $3 {{PLURAL:$3|yönlendirme olmayan|yönlendirme olmayan}})",
        "pageinfo-firstuser": "Sayfa oluşturucu",
        "pageinfo-firsttime": "Sayfa oluşturulma tarihi",
        "pageinfo-lastuser": "En son düzenleyici",
        "exif-pixelxdimension": "Resim yüksekliği",
        "exif-usercomment": "Kullanıcı yorumu",
        "exif-relatedsoundfile": "İlişkin ses dosyası",
-       "exif-datetimeoriginal": "Orjinal yaratma zamanı",
+       "exif-datetimeoriginal": "Verinin ilk yaratılma zamanı",
        "exif-datetimedigitized": "Dijitalleştirme zamanı",
        "exif-subsectime": "Alt-ikinci zaman",
        "exif-subsectimeoriginal": "Orjinal alt-ikinci zaman",
        "logentry-managetags-activate": "$1, \"$4\" etiketini kullanıcı ve botların {{GENDER:$2|kullanımına açtı}}",
        "logentry-managetags-deactivate": "$1, \"$4\" etiketini kullanıcı ve botların {{GENDER:$2|kullanımına kapadı}}",
        "log-name-tag": "Etiket günlüğü",
-       "log-description-tag": "Bu sayfa kullanıcıların ne zaman tekil sürümlere veya günlük kayıtlarına etiket ekleyip kaldırdığını göstermektedir. Bir düzenleme, silme veya benzeri işlem eşliğinde gerçekleşen etiket değişikliği işlemleri burada listelenmemektedir.",
+       "log-description-tag": "Bu sayfa kullanıcıların ne zaman tekil sürümlere veya günlük kayıtlarına [[Special:Tags|etiket]] ekleyip kaldırdığını göstermektedir. Bir düzenleme, silme veya benzeri işlem eşliğinde gerçekleşen etiket değişikliği işlemleri burada listelenmemektedir.",
        "logentry-tag-update-add-revision": "$1, $3 sayfasının $4 numaralı sürümüne {{PLURAL:$7|etiket|etiket}} {{GENDER:$2|ekledi}}: $6",
        "logentry-tag-update-add-logentry": "$1, $3 sayfasının $5 numaralı günlük kaydına {{PLURAL:$7|etiket|etiket}} {{GENDER:$2|ekledi}}: $6",
        "logentry-tag-update-remove-revision": "$1, $3 sayfasının $4 numaralı sürümünden {{PLURAL:$9|etiket|etiket}} {{GENDER:$2|kaldırdı}}: $8",
        "special-characters-group-telugu": "Telugu",
        "special-characters-group-sinhala": "Sinhala",
        "special-characters-group-gujarati": "Gücerat",
+       "special-characters-group-devanagari": "Devanagari",
        "special-characters-group-thai": "Tay",
        "special-characters-group-lao": "Lao",
        "special-characters-group-khmer": "Kmer",
index 26e9bc8..9dc4485 100644 (file)
@@ -58,7 +58,9 @@
                        "Purodha",
                        "Green Zero",
                        "Macofe",
-                       "Alex Blokha"
+                       "Alex Blokha",
+                       "Lxlalexlxl",
+                       "Капитан Джон Шепард"
                ]
        },
        "tog-underline": "Підкреслювання посилань:",
        "no-null-revision": "Не вдалося створити нульову версію сторінки «$1»",
        "badtitle": "Неприпустима назва",
        "badtitletext": "Запитана назва сторінки неправильна, порожня, або неправильно зазначена міжмовна назва чи інтервікі.\nМожливо, в назві вжиті недопустимі символи.",
+       "title-invalid-empty": "Назва сторінки порожня або містить тільки простір назв.",
+       "title-invalid-utf8": "Назва сторінки містить некоректні символи UTF-8.",
+       "title-invalid-interwiki": "Назва містить недопустимі інтервікі-посилання.",
+       "title-invalid-talk-namespace": "Назва сторінки вказує на сторінку обговорення, яка не може існувати.",
+       "title-invalid-characters": "Назва сторінки містить некоректні символи: \"$1\".",
+       "title-invalid-relative": "Назва містить відносний шлях. Відносні назви сторінок (./, ../) є некоректними, бо часто вони будуть недосяжні для веб-оглядача користувача.",
+       "title-invalid-magic-tilde": "Назва сторінки містить недопустиму магічну послідовність тильд (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Назва сторінки задовга. Вона не може перевищувати $1 {{PLURAL:$1|байт|байти|байтів}} у кодуванні UTF-8.",
+       "title-invalid-leading-colon": "Назва сторінки містить недопустиму двокрапку на початку.",
        "perfcached": "Наступні дані взяті з кешу і можуть бути застарілими. В кеші зберігається не більше {{PLURAL:$1|1=одного запису|$1 записів}}.",
        "perfcachedts": "Наступні дані взяті з кешу, востаннє він оновлювався о $1. У кеші зберігається не більше $4 {{PLURAL:$4|1=запису|записів}}.",
        "querypage-no-updates": "Зміни цієї сторінки зараз заборонені. Дані тут наразі не можуть бути оновлені.",
        "content-model-css": "CSS",
        "content-json-empty-object": "Порожній об'єкт",
        "content-json-empty-array": "Порожній масив",
+       "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>.",
        "expensive-parserfunction-warning": "'''Увага:''' Ця сторінка містить дуже багато викликів ресурсомістких функцій.\n\nКількість викликів не повинна перевищувати $2, зараз потрібно зробити $1 {{PLURAL:$1|виклик|виклики|викликів}}.",
        "rev-showdeleted": "показати",
        "revisiondelete": "Вилучити / відновити версії сторінки",
        "revdelete-nooldid-title": "Не вказана цільова версія",
-       "revdelete-nooldid-text": "Ð\92и Ð½Ðµ Ð²ÐºÐ°Ð·Ð°Ð»Ð¸ Ñ\86Ñ\96лÑ\8cовÑ\83 Ð²ÐµÑ\80Ñ\81Ñ\96Ñ\8e (Ñ\87и Ð²ÐµÑ\80Ñ\81Ñ\96Ñ\97) Ð´Ð»Ñ\8f Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ\8f Ñ\86Ñ\96Ñ\94Ñ\97 Ñ\84Ñ\83нкÑ\86Ñ\96Ñ\97.",
+       "revdelete-nooldid-text": "Ð\92и Ð°Ð±Ð¾ Ð½Ðµ Ð²ÐºÐ°Ð·Ð°Ð»Ð¸ Ñ\86Ñ\96лÑ\8cовÑ\83 Ð²ÐµÑ\80Ñ\81Ñ\96Ñ\8e Ð´Ð»Ñ\8f Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ\8f Ñ\86Ñ\96Ñ\94Ñ\97 Ñ\84Ñ\83нкÑ\86Ñ\96Ñ\97, Ð°Ð±Ð¾ Ð²ÐºÐ°Ð·Ð°Ð½Ð° Ð²ÐµÑ\80Ñ\81Ñ\96Ñ\8f Ð½Ðµ Ñ\96Ñ\81нÑ\83Ñ\94, Ð°Ð±Ð¾ Ð²Ð¸ Ð½Ð°Ð¼Ð°Ð³Ð°Ñ\94Ñ\82еÑ\81Ñ\8f Ð¿Ñ\80иÑ\85оваÑ\82и Ð¿Ð¾Ñ\82оÑ\87нÑ\83 Ð²ÐµÑ\80Ñ\81Ñ\96Ñ\8e.",
        "revdelete-no-file": "Зазначений файл не існує.",
        "revdelete-show-file-confirm": "Ви впевнені, що хочете переглянути вилучену версію файлу «<nowiki>$1</nowiki>» від $3 $2?",
        "revdelete-show-file-submit": "Так",
        "userrights-lookup-user": "Керування групами користувача",
        "userrights-user-editname": "Введіть ім'я користувача:",
        "editusergroup": "Редагувати групи користувачів",
-       "editinguser": "Зміна прав користувача '''[[User:$1|$1]]''' $2",
+       "editinguser": "Зміна прав {{GENDER:$1|користувача}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Змінити групи користувачів",
        "saveusergroups": "Зберегти групи користувача",
        "userrights-groupsmember": "Член груп:",
        "right-viewsuppressed": "Перегляд змін, приховаих від усіх користувачів",
        "right-suppressionlog": "перегляд приватних журналів",
        "right-block": "заборона редагувань для інших дописувачів",
-       "right-blockemail": "Ð\91локування користувача від надсилання електронної пошти",
+       "right-blockemail": "блокування користувача від надсилання електронної пошти",
        "right-hideuser": "блокування імені користувача і приховування його",
        "right-ipblock-exempt": "уникнення блокування за IP-адресою, автоблокування і блокування діапазонів",
        "right-proxyunbannable": "уникнення автоматичного блокування проксі-серверів",
        "uploaddisabledtext": "Можливість завантаження файлів відключена.",
        "php-uploaddisabledtext": "Завантаження файлів вимкнене у налаштуваннях PHP. Будь ласка, перевірте значення file_uploads.",
        "uploadscripted": "Файл містить HTML-код або скрипт, який може неправильно обробитися браузером.",
+       "upload-scripted-pi-callback": " \t\nНеможливо завантажити файл, що містить інструкції опрацювання таблиці стилів XML.",
+       "uploaded-script-svg": " \t\t\nЗнайдений небезпечний елемент з підтримкою сценаріїв «$1» в завантаженому файлі SVG.",
+       "uploaded-hostile-svg": " \t\nЗнайдений небезпечний CSS-код в елементі стилю завантаженого файлу SVG.",
+       "uploaded-event-handler-on-svg": " \t\nУстановка атрибутів обробника подій <code>$1=\"$2\"</code> не дозволено для SVG-файлів.",
+       "uploaded-href-attribute-svg": " \t\t\nУ SVG-файлів не допускаються href атрибути <code>&lt;$1 $2=\"$3\"&gt;</code> з засобів перехресного локального обміну повідомленнями з метою (т. е. http:// javascript:, тощо).",
        "uploadscriptednamespace": "Цей SVG-файл містить недопустимий простір імен \"$1\"",
        "uploadinvalidxml": "Не вдалося проаналізувати XML у завантаженому файлі.",
        "uploadvirus": "Файл містить вірус! Див. $1",
        "uploadjava": "Файл є ZIP-архівом, що містить .class-файл Java.\nЗавантаження Java-файлів не дозволене, бо вони можуть використовуватися для обходу системи безпеки.",
        "upload-source": "Вихідний файл",
-       "sourcefilename": "Ð\9dазва Ð¿Ð¾Ñ\87аÑ\82кового файлу:",
+       "sourcefilename": "Ð\9dазва Ð²Ð¸Ñ\85Ñ\96дного файлу:",
        "sourceurl": "Вихідна URL-адреса:",
        "destfilename": "Назва завантаженого файлу:",
        "upload-maxfilesize": "Максимальний розмір файлу: $1",
        "listfiles-delete": "видалити",
        "listfiles-summary": "Ця спеціальна сторінка показує всі завантажені файли.",
        "listfiles_search_for": "Пошук по назві зображення:",
-       "listfiles-userdoesnotexist": "Ð\9eблÑ\8bковий Ð·Ð°Ð¿Ð¸Ñ\81 Â«$1» Ð½Ðµ Ð·Ð°Ñ\80еÑ\8dстровано.",
+       "listfiles-userdoesnotexist": "Ð\9eблÑ\96ковий Ð·Ð°Ð¿Ð¸Ñ\81 Â«$1» Ð½Ðµ Ð·Ð°Ñ\80еÑ\94стровано.",
        "imgfile": "файл",
        "listfiles": "Список файлів",
        "listfiles_thumb": "Мініатюра",
        "import-interwiki-history": "Копіювати всю історію змін цієї сторінки",
        "import-interwiki-templates": "Включити всі шаблони",
        "import-interwiki-submit": "Імпортувати",
+       "import-mapping-default": "Імпортувати в усталене розташування",
        "import-mapping-namespace": "Імпортувати до простору назв:",
+       "import-mapping-subpage": "Імпортувати як підсторінки такої сторінки:",
        "import-upload-filename": "Назва файлу:",
        "import-comment": "Примітка:",
        "importtext": "Будь ласка, експортуйте сторінку з іншої вікі, використовуючи [[Special:Export|засіб експорту]], збережіть файл, а потім завантажте його сюди.",
        "tags-deactivate-reason": "Причина:",
        "tags-deactivate-not-allowed": "Неможливо вимкнути мітку «$1».",
        "tags-deactivate-submit": "Вимкнути",
+       "tags-apply-no-permission": "Ви не маєте права міняти мітки вашого редагування.",
        "tags-apply-not-allowed-one": "Мітку «$1» не можна додавати вручну.",
        "tags-apply-not-allowed-multi": "{{PLURAL:$2|Таку мітку|Такі мітки}} не можна додавати вручну: $1",
+       "tags-update-no-permission": "Ви не маєте права додавати або вилучати мітки окремих версій чи журнальних записів.",
+       "tags-update-add-not-allowed-one": "Мітку \"$1\" не можна додавати вручну.",
        "tags-update-add-not-allowed-multi": "{{PLURAL:$2|Таку мітку|Такі мітки}} не можна додавати вручну: $1",
        "tags-update-remove-not-allowed-one": "Мітку «$1» не дозволено вилучати.",
+       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|Таку мітку|Такі мітки}} не можна вилучати вручну: $1",
        "tags-edit-title": "Редагувати мітки",
+       "tags-edit-manage-link": "Керувати мітками",
+       "tags-edit-revision-selected": "{{PLURAL:$1|Вибрана версія|Вибрані версії}} [[:$2]]:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Вибраний запис журналу|Вибрані записи журналу}}:",
        "tags-edit-revision-legend": "Додати або вилучити мітки з {{PLURAL:$1|цієї версії|усіх $1 версій}}",
+       "tags-edit-logentry-legend": "Додати або вилучити мітки {{PLURAL:$1|для цього журнального запису|для всіх $1 журнальних записів}}",
        "tags-edit-existing-tags": "Існуючі мітки:",
+       "tags-edit-existing-tags-none": "''Нема''",
        "tags-edit-new-tags": "Нові мітки:",
        "tags-edit-add": "Додати ці мітки:",
        "tags-edit-remove": "Видалити ці мітки:",
+       "tags-edit-remove-all-tags": "(стерти всі мітки)",
+       "tags-edit-chosen-placeholder": "Вибрати деякі мітки",
+       "tags-edit-chosen-no-results": "Не знайдено відповідних міток",
        "tags-edit-reason": "Причина:",
+       "tags-edit-revision-submit": "Застосувати зміни до {{PLURAL:$1|цієї версії|$1 версій}}",
+       "tags-edit-logentry-submit": "Застосувати зміни до {{PLURAL:$1|цього журнального запису|$1 журнальних записів}}",
        "tags-edit-success": "Зміни успішно застосовано",
+       "tags-edit-failure": "Не вдалося застосувати зміни:\n$1",
+       "tags-edit-nooldid-title": "Некоректна цільова версія",
+       "tags-edit-nooldid-text": "Ви або не вказали цільову версію, до якої задіяти функцію, або вказали неіснуючу версію.",
        "tags-edit-none-selected": "Будь ласка, оберіть принаймні одну мітку, щоб додати або вилучити.",
        "comparepages": "Порівняння сторінок",
        "compare-page1": "Сторінка 1",
        "logentry-newusers-create2": "$1 {{GENDER:$2|створив|створила}} обліковий запис {{GENDER:$4|користувача|користувачки}} $3",
        "logentry-newusers-byemail": "Обліковий запис $3 {{GENDER:$2|користувача|користувачки}} створений {{GENDER:$4|користувачем|користувачкою}} $1 і пароль було надіслано електронною поштою",
        "logentry-newusers-autocreate": "Обліковий запис $1 було {{GENDER:$2|створено}} автоматично",
-       "logentry-rights-rights": "$1 {{GENDER:$1|змінив|змінила}} членство в групах для $3 із $4 на $5",
-       "logentry-rights-rights-legacy": "$1 {{GENDER:$1|змінив|змінила}} членство в групах для $3",
+       "logentry-rights-rights": "$1 {{GENDER:$2|змінив|змінила}} членство в групах для $3 із $4 на $5",
+       "logentry-rights-rights-legacy": "$1 {{GENDER:$2|змінив|змінила}} членство в групах для $3",
        "logentry-rights-autopromote": "$1 було автоматично переведено із $4 в $5",
        "logentry-upload-upload": "$1 {{GENDER:$2|завантажив|завантажила}} $3",
        "logentry-upload-overwrite": "$1 {{GENDER:$2|завантажив|завантажила}} нову версію $3",
        "logentry-managetags-delete": "$1 {{GENDER:$2|вилучив|вилучила}} мітку «$4» (вилучено з $5 {{PLURAL:$5|версії чи запису журналу|версій та/або записів журналу}})",
        "logentry-managetags-activate": "$1 {{GENDER:$2|активував|активувала}} мітку «$4» для використання користувачами і ботами",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|вимкнув|вимкнула}} мітку «$4» для використання користувачами і ботами",
+       "log-name-tag": "Журнал міток",
+       "log-description-tag": "Сторінка показує, коли користувачі додали або вилучили [[Special:Tags|мітки]] окремих версій чи журнальних записів. Журнал не містить дій з мітками, які були частинами редагувань, вилучень або схожих дій.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|додав|додала}} {{PLURAL:$7|мітку|мітки}} $6 до версії $4 сторінки $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|додав|додала}} {{PLURAL:$7|мітку|мітки}} $6 до запису журналу $5 стрінки $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|вилучив|вилучила}} {{PLURAL:$9|мітку|мітки}} $8 з версії $4 сторінки $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|вилучив|вилучила}} {{PLURAL:$9|мітку|мітки}} $8 з запису журналу $5 сторінки $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|оновив|оновила}} мітки версії $4 сторінки $3 ({{PLURAL:$7|додано}} $6; {{PLURAL:$9|вилучено}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|оновив|оновила}} мітки запису журналу $5 сторінки $3 ({{PLURAL:$7|додано}} $6; {{PLURAL:$9|вилучено}} $8)",
        "rightsnone": "(нема)",
        "revdelete-summary": "коментар до редагування",
        "feedback-adding": "Додавання відгуку на сторінку ...",
        "feedback-error1": "Помилка: Невідомий результаті API",
        "feedback-error2": "Помилка: Збій редагувань",
        "feedback-error3": "Помилка: Немає відповіді від API",
+       "feedback-error4": "Помилка: Не вдалось написати до вказаного заголовку відгуку",
        "feedback-message": "Повідомлення:",
        "feedback-subject": "Тема:",
        "feedback-submit": "Надіслати",
        "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_anon": "<em>Оскільки {{SITENAME}} має ввімкненим сирий HTML, а Ви не ввійшли до системи, попередній перегляд прихований як захід безпеки від JavaScript-атак.</em>\n\n<strong>Якщо це правомірна спроба попереднього перегляду, будь ласка, [[Special:UserLogin|увійдіть до системи]] та спробуйте знову.</strong>",
        "pagelanguage": "Вибір мови сторінки",
        "pagelang-name": "Сторінка",
        "pagelang-language": "Мова",
        "log-name-pagelang": "Журнал змін мови",
        "log-description-pagelang": "Це журнал змін мови сторінок.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|змінив|змінила}} мову сторінки для $3 з $4 на $5.",
-       "default-skin-not-found": "Ой! Типова тема оформлення для вашої вікі <code>$wgDefaultSkin</code>, <code>$1</code> недоступна.\n\nВаша установка, вірогідно, містить наступні теми оформлення. Див.  [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] для отримання інформації про те, як включити теми оформлення і вибрати типову тему.\n\n\n$2\n\n\n; Якщо ви щойно встановили MediaWiki:\n: Ви, мабуть, зробили це з Git або безпосередньо з вихідного коду, використовуючи інший спосіб. Тоді можливе наступне. Спробуйте встановити деякі теми з [https://www.mediawiki.org/wiki/Category:All_skins каталогу тем оформлення сайту mediawiki.org]:\n:* Завантаживши [https://www.mediawiki.org/wiki/Download архів файлів], який містить декілька тем оформлення і розширень. Ви можете скопіювати теку <code>skins/</code> з нього.\n:* Завантаживши архіви окремих тем оформлення з [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Склонувавши один з репозиторіїв <code>mediawiki/skins/*</code> через git у підтеку <code dir=\"ltr\">skins/</code> теки, де встановлена MediaWiki.\n: Це не повинно зашкодити вашому сховищу, якщо ви MediaWiki-розробник. Див. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] для отримання інформації про те, як включити теми оформлення і вибрати типову тему.\n\n; Якщо ви щойно оновили MediaWiki:\n: MediaWiki версії 1.24 і новійша більше не включає автоматично встановлені теми (див. [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]).\nВи можете вставити наступні рядки в <code>LocalSettings.php</code>, щоб включити всі встановлені теми оформлення: \n\n\n<pre dir=\"ltr\">$3</pre>\n\n\n; Якщо ви щойно змінили <code>LocalSettings.php</code>:\n: Повторно перевірте назви тем на наявність помилок.",
-       "default-skin-not-found-no-skins": "Ой! Тема оформлення для Вашої вікі за замовчуванням, визначена у <code>$wgDefaultSkin</code> як <code>$1</code> недоступна.\n\n\nУ Вас немає встановлених тем оформлення.\n\n\n; Якщо Ви щойно встановили або оновили MediaWiki:\n: Ви, мабуть, зробили це з Git або безпосередньо з вихідного коду, використовуючи інший спосіб. Тоді це можливо. MediaWiki версії 1.24 або новіша не містить теми оформлення в основному репозиторії. Спробуйте встановити деякі теми з [https://www.mediawiki.org/wiki/Category:All_skins каталогу тем оформлення сайту mediawiki.org]:\n:* Завантаживши [https://www.mediawiki.org/wiki/Download архів файлів], який містить декілька тем оформлення і розширень. Ви можете скопіювати теку <code>skins/</code> з нього.\n:* Завантаживши окремі архіви тем з [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Клонувавши один з репозиторіїв <code>mediawiki/skins/*</code> через Git в підтеку <code dir=\"ltr\">skins/</code> теки, де встановлена MediaWiki.\n: Це не повинно зашкодити Вашому сховищу, якщо Ви MediaWiki-розробник. Див. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] для отримання інформації про те, як включити теми оформлення і вибрати тему за замовчуванням.",
+       "default-skin-not-found": "Ой! Типова тема оформлення для вашої вікі <code dir=\"ltr\">$wgDefaultSkin</code>, <code>$1</code> недоступна.\n\nСхоже, що Ваша установка містить {{PLURAL:$4|наступну тему оформлення|наступні теми оформлення}}. Див. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] для отримання інформації про те, як увімкнути {{PLURAL:$4|її|їх та обрати тему за замовчуванням}}.\n\n\n$2\n\n\n; Якщо Ви щойно встановили MediaWiki:\n: Ви, мабуть, зробили це з Git або безпосередньо з вихідного коду, використовуючи деякий інший спосіб. Тоді можливе наступне. Спробуйте встановити деякі теми з [https://www.mediawiki.org/wiki/Category:All_skins каталогу тем оформлення сайту mediawiki.org]:\n:* Завантаживши [https://www.mediawiki.org/wiki/Download архів файлів], який містить декілька тем оформлення й розширень. Ви можете скопіювати теку <code>skins/</code> з нього.\n:* Завантаживши архіви окремих тем оформлення з [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Використавши Git, щоб завантажити теми оформлення].\n: Це не повинно зашкодити вашому сховищу, якщо Ви MediaWiki-розробник.\n\n; Якщо Ви щойно оновили MediaWiki:\n: MediaWiki версії 1.24 й новіші більше не вмикають встановлені теми автоматично (див. [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Ви можете вставити {{PLURAL:$5|наступний рядок|наступні рядки}} в <code>LocalSettings.php</code>, щоб увімкнути {{PLURAL:$5|встановлену тему|всі встановлені теми}} оформлення: \n\n\n<pre dir=\"ltr\">$3</pre>\n\n\n; Якщо Ви щойно змінили <code>LocalSettings.php</code>:\n: Повторно перевірте назви тем на наявність помилок.",
+       "default-skin-not-found-no-skins": "Ой! Тема оформлення для Вашої вікі за замовчуванням, визначена у <code>$wgDefaultSkin</code> як <code>$1</code> недоступна.\n\n\nУ Вас немає встановлених тем оформлення.\n\n\n; Якщо Ви щойно встановили або оновили MediaWiki:\n: Ви, мабуть, зробили це з Git або безпосередньо з вихідного коду, використовуючи інший спосіб. Тоді це можливо. MediaWiki версії 1.24 або новіша не містить теми оформлення в основному репозиторії. Спробуйте встановити деякі теми з [https://www.mediawiki.org/wiki/Category:All_skins каталогу тем оформлення сайту mediawiki.org]:\n:* Завантаживши [https://www.mediawiki.org/wiki/Download архів файлів], який містить декілька тем оформлення і розширень. Ви можете скопіювати теку <code>skins/</code> з нього.\n:* Завантаживши окремі архіви тем з [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Використавши Git, щоб завантажити теми оформлення].\n: Це не повинно зашкодити Вашому сховищу, якщо Ви MediaWiki-розробник. Див. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] для отримання інформації про те, як включити теми оформлення і вибрати тему за замовчуванням.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (увімкнено)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''вимкнено''')",
        "mediastatistics": "Медіа-статистика",
index f391f1d..8eae706 100644 (file)
        "gotaccountlink": "داخل ہوجائیے",
        "userlogin-resetlink": "داخلِ نوشتہ ہونے کی تفاصیل بھول گئے ہیں؟",
        "userlogin-resetpassword-link": "کلمہ شناخت بھول گئے؟",
-       "userlogin-helplink2": "داخل ہو کر ہماری مدد کریں",
+       "userlogin-helplink2": "داخل نوشتگی میں معاونت درکار ہے؟",
        "createacct-emailrequired": "ای میل پتہ",
        "createacct-emailoptional": "ای میل ایڈریس (اختیاری)",
        "createacct-email-ph": "اپنا برقی پتہ لکھیں",
        "currentrev": "حـالیـہ تـجدید",
        "currentrev-asof": "حالیہ نظرثانی بمطابق $1",
        "revisionasof": "تـجدید بـمطابق $1",
-       "revision-info": "نظرثانی بتاریخ $1 از $2",
+       "revision-info": "نظرثانی بتاریخ $1 از {{GENDER:$6|$2}}$7",
        "previousrevision": "←پرانی تدوین",
        "nextrevision": "→اگلا اعادہ",
        "currentrevisionlink": "حالیہ نظرثانی",
        "invert": "انتخاب بالعکس",
        "namespace_association": "متعلقہ فضا",
        "blanknamespace": "(مرکز)",
-       "contributions": "{{جنس:$1|صارف}} شراکتیں",
+       "contributions": "{{GENDER:$1|صارف}} شراکتیں",
        "contributions-title": "مساہماتِ صارف برائے $1",
        "mycontris": "شراکت",
        "contribsub2": "براۓ $1 ($2)",
        "isimage": "ربطِ ملف",
        "whatlinkshere-links": "روابط ←",
        "whatlinkshere-hideredirs": "رجوع مکررات $1",
-       "whatlinkshere-hidetrans": "تضمینات",
+       "whatlinkshere-hidetrans": "$1 تضمینات",
        "whatlinkshere-hidelinks": "روابط $1",
        "whatlinkshere-hideimages": "روابطِ تصاویر $1",
        "whatlinkshere-filters": "فلٹرذ",
index 9b3c6be..0d4696b 100644 (file)
        "otherlanguages": "Altre lengue",
        "redirectedfrom": "(Rimando da <b>$1</b>)",
        "redirectpagesub": "Pagina de rimando",
+       "redirectto": "Rimanda a:",
        "lastmodifiedat": "Ultimo canbiamento de sta pagina: $2, $1.",
        "viewcount": "Sta pagina la xe stà leta {{PLURAL:$1|na olta|$1 olte}}.",
        "protectedpage": "Pagina proteta",
        "login-abort-generic": "El to login no xe riusido - Anułà.",
        "loginlanguagelabel": "Lengua: $1",
        "suspicious-userlogout": "Ła to richiesta de disconesion xè sta negà parché e a senbra invià da on browser non funsionante o on proxy de caching.",
+       "pt-login": "Va drento",
        "php-mail-error-unknown": "Erore sconosudo nte'l funsionamento deła posta ełetronega PHP",
        "user-mail-no-addy": "Te ghe provà spedire un mesajo de posta ełetronega sensa un indiriso.",
        "user-mail-no-body": "Tentà de inviar na e-mail có un testo vodo o masa curto.",
        "rcnotefrom": "Qui di seguito sono elencate le modifiche da '''$2''' (fino a '''$1''').",
        "rclistfrom": "Mostra i canbiamenti fati da ƚe $2 del $3",
        "rcshowhideminor": "$1 i canbiamenti picenini",
+       "rcshowhideminor-show": "Mostra",
+       "rcshowhideminor-hide": "Scondi",
        "rcshowhidebots": "$1 i bot",
+       "rcshowhidebots-show": "Mostra",
+       "rcshowhidebots-hide": "Scondi",
        "rcshowhideliu": "$1 i utenti registrài",
+       "rcshowhideliu-hide": "Scondi",
        "rcshowhideanons": "$1 i utenti anonimi",
+       "rcshowhideanons-hide": "Scondi",
        "rcshowhidepatr": "$1 łe modifeghe controłae",
        "rcshowhidemine": "$1 i me canbiamenti",
+       "rcshowhidemine-show": "Mostra",
+       "rcshowhidemine-hide": "Scondi",
        "rclinks": "Fà védar i ultimi $1 canbiamenti fati in tei ultimi $2 zorni<br />$3",
        "diff": "dif",
        "hist": "stor",
        "querypage-disabled": "Sta pàjina speciałe ła xe dixativà par motivi de prestasion.",
        "booksources": "Fonti librarie",
        "booksources-search-legend": "Riserca de fonti librarie",
+       "booksources-search": "Serca",
        "booksources-text": "De seguito vien presentà un elenco de colegamenti verso siti foresti che vende libri novi e usài, atraverso i quali se pol otegner piassè informazioni sul testo sercà.",
        "booksources-invalid-isbn": "El nùmaro ISBN inserìo no'l xe mia valido: controla de novo se te lo ghè copià justo da la fonte originale.",
        "specialloguserlabel": "Asion efetuà da:",
index 30cb04f..4c0ddb1 100644 (file)
@@ -28,7 +28,9 @@
                        "Tranquanganh",
                        "Max20091",
                        "Dinhxuanduyet",
-                       "Macofe"
+                       "Macofe",
+                       "KhangND",
+                       "Darcy Le"
                ]
        },
        "tog-underline": "Gạch chân liên kết:",
        "no-null-revision": "Không thể tạo phiên bản không nội dung mới cho trang “$1”",
        "badtitle": "Tựa trang sai",
        "badtitletext": "Tựa trang yêu cầu không đúng, rỗng, hoặc là một liên kết ngôn ngữ hoặc liên kết wiki sai. Nó có thể chứa một hoặc nhiều ký tự mà tựa trang không thể sử dụng.",
+       "title-invalid-empty": "Tiêu đề trang được yêu cầu rỗng hoặc chỉ chứa tên của một không gian tên.",
+       "title-invalid-utf8": "Tiêu đề trang được yêu cầu chứa một chuỗi UTF-8 không hợp lệ",
+       "title-invalid-interwiki": "Tiêu đề chứa một liên kết liên wiki",
+       "title-invalid-talk-namespace": "Tiêu đề trang đã yêu cầu chỉ đến trang thảo luận không thể tồn tại.",
+       "title-invalid-characters": "Tiêu đề trang đã yêu cầu chứa ký tự không hợp lệ: \"$1\".",
+       "title-invalid-relative": "Tiêu đề có đường dẫn tương đối. Tiêu đề trang tương đối (./, ../) là không hợp lệ , bởi chúng thường sẽ không thể đến được khi được xử lý bởi trình duyệt của người dùng.",
+       "title-invalid-magic-tilde": "Tiêu đề trang đã yêu cầu chứa dãy dấu ngã không hợp lệ (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Tiêu đề trang đã yêu cầu quá dài. Tiêu đề phải ngắn hơn $1 byte theo mã hóa UTF-8.",
+       "title-invalid-leading-colon": "Tiêu đề trang đã yêu cầu chứa dấu hai chấm ở đầu là không hợp lệ.",
        "perfcached": "Dữ liệu sau được lấy từ bộ nhớ đệm và có thể đã lỗi thời. Tối đa có sẵn {{PLURAL:$1|một kết quả|$1 kết quả}} trong bộ nhớ đệm.",
        "perfcachedts": "Dữ liệu dưới đây được đưa vào vùng nhớ đệm và được cập nhật lần cuối lúc $1. Tối đa có sẵn {{PLURAL:$4|một kết quả|$4 kết quả}} trong vùng nhớ đệm.",
        "querypage-no-updates": "Việc cập nhật trang này hiện đã bị tắt. Dữ liệu ở đây có thể bị lỗi thời.",
        "history-feed-description": "Lịch sử thay đổi của trang này ở wiki",
        "history-feed-item-nocomment": "$1 vào lúc $2",
        "history-feed-empty": "Trang bạn yêu cầu không tồn tại. Có thể là nó đã bị xóa khỏi wiki hay được đổi tên. Hãy [[Special:Search|tìm kiếm trong wiki]] về các trang mới có liên quan.",
+       "history-edit-tags": "Sửa đổi thẻ đánh dấu của các bản xem trước đã chọn",
        "rev-deleted-comment": "(tóm lược sửa đổi đã bị xóa)",
        "rev-deleted-user": "(tên người dùng đã bị xóa)",
        "rev-deleted-event": "(chi tiết nhật trình đã bị xóa)",
        "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-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 cá nhân và các mục đăng nhập",
        "newuserlogpage": "Nhật trình mở tài khoản",
        "newuserlogpagetext": "Đây là danh sách những tài khoản thành viên mở lên gần đây.",
        "rightslog": "Nhật trình cấp quyền thành viên",
        "action-editmyprivateinfo": "sửa đổi thông tin cá nhân của bạn",
        "action-editcontentmodel": "sửa mô hình nội dung của trang",
        "action-managechangetags": "tạo và xóa các thẻ từ cơ sở dữ liệu",
+       "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 cá nhân và các mục đăng nhập",
        "nchanges": "$1 {{PLURAL:$1|thay đổi|thay đổi}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|sau lần truy cập vừa rồi}}",
        "enhancedrc-history": "lịch sử",
        "uploaddisabledtext": "Chức năng tải tập tin đã bị tắt.",
        "php-uploaddisabledtext": "Việc tải tập tin trong PHP đã bị tắt. Xin hãy kiểm tra lại thiết lập file_uploads.",
        "uploadscripted": "Tập tin này có chứa mã HTML hoặc kịch bản có thể khiến trình duyệt web thông dịch sai.",
+       "uploaded-image-filter-svg": "Tìm công cụ lọc ảnh với UPL: <Mã>&lt;$1 $2=\"$3\"&gt;</Mã> trong tập tin SVG được tải lên.",
        "uploadscriptednamespace": "Tập tin SVG này chứa không gian tên “$1” không được cho phép",
        "uploadinvalidxml": "Không thể phân tích mã XML trong tập tin tải lên.",
        "uploadvirus": "Tập tin có virút! Chi tiết: $1",
        "listfiles-delete": "xóa",
        "listfiles-summary": "Trang đặc biệt này liệt kê các tập tin được tải lên.",
        "listfiles_search_for": "Tìm kiếm theo tên tập tin:",
+       "listfiles-userdoesnotexist": "Tài khoản người dùng \"$ 1\" không được đăng ký.",
        "imgfile": "tập tin",
        "listfiles": "Danh sách tập tin",
        "listfiles_thumb": "Hình nhỏ",
        "logempty": "Không có mục nào khớp với từ khóa.",
        "log-title-wildcard": "Tìm các tựa trang bắt đầu bằng các chữ này",
        "showhideselectedlogentries": "Thay đổi mức khả kiến của các mục nhật trình đã chọn",
+       "log-edit-tags": "Sửa đổi thẻ đánh dấu của các mục nhật trình đã chọn.",
        "allpages": "Mọi trang",
        "nextpage": "Trang sau ($1)",
        "prevpage": "Trang trước ($1)",
        "import-interwiki-submit": "Nhập",
        "import-mapping-default": "Nhập vào vị trí mặc định",
        "import-mapping-namespace": "Nhập vào một không gian tên:",
+       "import-mapping-subpage": "Nhập thành các trang con của trang sau:",
        "import-upload-filename": "Tên tập tin:",
        "import-comment": "Lý do:",
        "importtext": "Xin hãy xuất tập tin từ wiki nguồn dùng [[Special:Export|công cụ xuất]].\nLưu nó vào máy tính của bạn rồi tải nó lên đây.",
        "patrol-log-page": "Nhật trình tuần tra",
        "patrol-log-header": "Đây là nhật trình tuần tra phiên bản.",
        "log-show-hide-patrol": "$1 nhật trình tuần tra",
+       "log-show-hide-tag": "Nhật trình đánh dấu $1",
        "deletedrevision": "Đã xóa phiên bản cũ $1",
        "filedeleteerror-short": "Lỗi xóa tập tin: $1",
        "filedeleteerror-long": "Có lỗi khi xóa tập tin:\n\n$1",
        "tags-deactivate-submit": "Vô hiệu",
        "tags-apply-no-permission": "Bạn không có quyền áp dụng các thẻ thay đổi cùng các thay đổi của bạn.",
        "tags-apply-not-allowed-one": "Thẻ \"$1\" không được phép được áp dụng thủ công.",
+       "tags-apply-not-allowed-multi": "{{PLURAL:$2|tag is|Các thẻ đánh dấu}} sau không được phép áp dụng thủ công: $1",
+       "tags-update-no-permission": "Bạn không có quyền thêm hoặc loại bỏ các thẻ thay đổi từ phiên bản cá nhân hoặc mục đăng nhập.",
+       "tags-update-add-not-allowed-one": "Thẻ \"$1\" không được phép thêm vào thủ công.",
+       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|tag is|Các thẻ đánh dấu}} sau không được phép thêm thủ công: $1",
+       "tags-update-remove-not-allowed-one": "Thẻ đánh dấu \"$1\" không được phép loại bỏ.",
+       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|tag is|Các thẻ đánh dấu}} sau không được phép loại bỏ thủ công: $1",
        "tags-edit-title": "Chỉnh sửa thẻ",
        "tags-edit-manage-link": "Quản lý thẻ",
        "tags-edit-revision-selected": "{{PLURAL:$1|Phiên bản|Các phiên bản}} [[:$2]] được chọn:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Nhật trình đã chọn|Các nhật trình đã chọn}}:",
+       "tags-edit-revision-legend": "Thêm và loại bỏ các thẻ đánh dấu từ {{PLURAL:$1|bản xem trước này|tất cả $1 bản xem trước}}",
+       "tags-edit-logentry-legend": "Thêm và loại bỏ thẻ đánh dấu từ {{PLURAL:$1|mục nhật trình này|tất cả $1 mục nhật trình}}",
        "tags-edit-existing-tags": "Thẻ đã có:",
+       "tags-edit-existing-tags-none": "''Không''",
        "tags-edit-new-tags": "Thẻ mới:",
+       "tags-edit-add": "Thêm các thẻ:",
+       "tags-edit-remove": "Bỏ các thẻ này?",
+       "tags-edit-remove-all-tags": "(Loại bỏ tất cả các thẻ)",
        "tags-edit-chosen-placeholder": "Chọn vài thẻ",
        "tags-edit-chosen-no-results": "Không thẻ nào được tìm thấy trùng khớp",
        "tags-edit-reason": "Lý do:",
+       "tags-edit-revision-submit": "Áp dụng các thay đổi lên {{PLURAL:$1|bản xem trước này|$1 bản xem trước}}",
+       "tags-edit-logentry-submit": "Áp dụng các thay đổi đối với {{PLURAL:$1|this log entry|$1 log entries}}",
        "tags-edit-success": "Các thay đổi được áp dụng thành công.",
-       "tags-edit-failure": "Những thay đổi này có thể không được áp dụng: $1",
+       "tags-edit-failure": "Các thay đổi không thể được áp dụng: $1",
        "tags-edit-nooldid-title": "Kiểm tra các mục tiêu không hợp lệ",
+       "tags-edit-nooldid-text": "Bạn chưa định rõ đối tượng xem trước để thực hiện chức năng này hoặc bản xem trước đã định không tồn tại.",
+       "tags-edit-none-selected": "Vui lòng chọn ít nhất một thẻ để thêm hoặc loại bỏ.",
        "comparepages": "So sánh trang",
        "compare-page1": "Trang 1",
        "compare-page2": "Trang 2",
        "logentry-block-reblock": "$1 {{GENDER:$2}}đã cấu hình lại vụ cấm {{GENDER:$4}}$3 hết hạn $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2}}đã cấm {{GENDER:$4}}$3 hết hạn $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2}}đã cấu hình lại vụ cấm {{GENDER:$4}}$3 hết hạn $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|đã nhập}} $3 bằng cách tải lên tập tin",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|đã nhập}} $3 từ một wiki khác",
        "logentry-merge-merge": "$1 {{GENDER:$2}}đã hợp nhất $3 vào $4 (các phiên bản cho tới $5)",
        "logentry-move-move": "$1 {{GENDER:$2}}đã đổi $3 thành $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2}}đã đổi $3 thành $4 (đã tắt đổi hướng)",
        "logentry-managetags-delete": "$1 {{GENDER:$2}}đã xóa thẻ “$4” (và gỡ nó khỏi $5 phiên bản hoặc mục nhật trình)",
        "logentry-managetags-activate": "$1 {{GENDER:$2|đã kích hoạt}} tag \"$4\" để sử dụng bởi người dùng và các bot",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|đã vô hiệu}} thẻ \"$4\" để sử dụng bởi người dùng và các bot",
+       "log-name-tag": "Nhật trình đánh dấu",
+       "log-description-tag": "Trang này hiện khi người dùng vừa thêm hoặc loại bỏ [[Special:Tags|thẻ đánh dấu]] từ các bản xem trước hoặc các mục nhật trình riêng biệt. Nhật trình không liệt kê các hoạt động đánh dấu khi chúng là một phần của hoạt động sửa đổi, xóa hoặc các hoạt động tương tự.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|đã thêm}} {{PLURAL:$7|thẻ đánh dấu|thẻ đánh dấu}} $6 vào bản xem trước $4 của trang $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|đã thêm}} {{PLURAL:$7|thẻ đánh dấu|thẻ đánh dấu}} $6 vào mục nhật trình $5 của trang $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|đã loại bỏ}} {{PLURAL:$9|thẻ đánh dấu|thẻ đánh dấu}} $8 khỏi bản xem trước $4 của trang $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|đã loại bỏ}} {{PLURAL:$9|thẻ đánh dấu|thẻ đánh dấu}} $8 khỏi mục nhật trình $5 của trang $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|đã cập nhật}} thẻ đánh dấu của bản xem trước $4 của trang $3 ({{PLURAL:$7|đã thêm}} $6; {{PLURAL:$9|loại bỏ}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|đã cập nhật}} thẻ đánh dấu của mục nhật trình $5 của trang $3 ({{PLURAL:$7|đã thêm}} $6; {{PLURAL:$9|loại bỏ}} $8)",
        "rightsnone": "(không có)",
        "revdelete-summary": "tóm lược sửa đổi",
        "feedback-adding": "Đang thêm thông tin phản hồi vào trang…",
        "feedback-error1": "Hủy bỏ",
        "feedback-error2": "Lỗi: Sửa đổi thất bại",
        "feedback-error3": "Lỗi: API không có phản ứng",
+       "feedback-error4": "Lỗi: Không thể gửi đến tiêu đề thông tin phản hồi đã cho",
        "feedback-message": "Thông điệp:",
        "feedback-subject": "Tiêu đề:",
        "feedback-submit": "Gửi",
        "log-name-pagelang": "Nhật trình thay đổi ngôn ngữ",
        "log-description-pagelang": "Nhật trình này ghi các thay đổi ngôn ngữ của các trang.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2}}đã đổi ngôn ngữ của trang $3 từ $4 thành $5.",
-       "default-skin-not-found": "Đã xảy ra lỗi! Giao diện mặc định của wiki này được định nghĩa trong <code dir=\"ltr\">$wgDefaultSkin</code> là <code>$1</code> nhưng không tồn tại.\n\nViệc cài đặt của bạn dường như bao gồm những giao diện sau đây. Xin xem [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skin_configuration Hướng dẫn: Cấu hình giao diện] để biết thông tin về cách kích hoạt hoặc chọn một trong số chúng làm giao diện mặc định.\n\n$2\n\n; Nếu bạn vừa mới cài đặt MediaWiki:\n: Có lẽ bạn đã cài đặt nó từ git, hoặc trực tiếp từ mã nguồn bằng cách sử dụng một số phương thức khác. Điều này đã nằm trong tính toán của chúng tôi. Hãy thử cài đặt một số giao diện từ [https://www.mediawiki.org/wiki/Category:All_skins thư mục giao diện của mediawiki.org] bằng cách:\n:* Tải về [https://www.mediawiki.org/wiki/Special:MyLanguage/Download trình cài đặt dưới dạng gói tar], trong đó có kèm theo một số giao diện và phần mở rộng. Bạn có thể chép nó và dán vào thư mục <code>skins/</code>.\n:* Tải về các gói giao diện nén riêng từ [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:*Sao chép một trong những kho <code>mediawiki/skins/*</code> thông qua git vào trong thư mục <code dir=\"ltr\">skins/</code> của cài đặt MediaWiki của bạn.\n: Cách này sẽ không có ảnh hưởng đến kho git của bạn dù bạn là một nhà phát triển MediaWiki.\n\n; Nếu bạn vừa mới nâng cấp MediaWiki:\n: Phiên bản MediaWiki 1.24 trở lên không còn tự động kích hoạt giao diện đã cài đặt (xem [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Hướng dẫn: Tự động dò giao diện]). Bạn có thể dán những dòng lệnh vào <code>LocalSettings.php</code> để kích hoạt tất cả giao diện hiện đã được cài dặt:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Nếu bạn vừa mới chỉnh sửa <code>LocalSettings.php</code>:\n: Kiểm tra lại tên các giao diện xem có lỗi đánh máy nào không.",
+       "default-skin-not-found": "Đã xảy ra lỗi! Giao diện mặc định của wiki này được định nghĩa trong <code dir=\"ltr\">$wgDefaultSkin</code> là <code>$1</code> nhưng không tồn tại.\n\nViệc cài đặt của bạn dường như bao gồm {{PLURAL:$4|giao diện|các giao diện}} sau. Xem [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skin_configuration Hướng dẫn: Cấu hình giao diện] để biết thông tin về cách kích hoạt {{PLURAL:$4|nó|chúng và chọn giao diện mặc định}}.\n\n$2\n\n; Nếu bạn vừa mới cài đặt MediaWiki:\n: Có lẽ bạn đã cài đặt nó từ git, hoặc trực tiếp từ mã nguồn bằng cách sử dụng một số phương thức khác. Điều này đã nằm trong tính toán của chúng tôi. Hãy thử cài đặt một số giao diện từ [https://www.mediawiki.org/wiki/Category:All_skins thư mục giao diện của mediawiki.org] bằng cách:\n:* Tải về [https://www.mediawiki.org/wiki/Special:MyLanguage/Download trình cài đặt dưới dạng gói tar], trong đó có kèm theo một số giao diện và phần mở rộng. Bạn có thể chép nó và dán vào thư mục <code>skins/</code>.\n:* Tải về các gói giao diện nén riêng từ [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_từ_Git#Using_Git_to_download_MediaWiki_skins Sử dụng Git để tải về giao diện].\n: Cách này sẽ không có ảnh hưởng đến kho git của bạn dù bạn là một nhà phát triển MediaWiki.\n\n; Nếu bạn vừa mới nâng cấp MediaWiki:\n: Phiên bản MediaWiki 1.24 trở lên không còn tự động kích hoạt giao diện đã cài đặt (xem [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Hướng dẫn: Tự động dò giao diện]). Bạn có thể dán {{PLURAL:$5|dòng|các dòng}} sau vào <code>LocalSettings.php</code> để kích hoạt {{PLURAL:$5|giao diện|tất cả các giao diện}} đã được cài dặt:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Nếu bạn vừa mới chỉnh sửa <code>LocalSettings.php</code>:\n: Kiểm tra lại tên các giao diện xem có lỗi đánh máy nào không.",
        "default-skin-not-found-no-skins": "Đã xảy ra lỗi! Giao diện mặc định của wiki này được định nghĩa trong <code dir=\"ltr\">$wgDefaultSkin</code> là <code>$1</code> nhưng không tồn tại.\n\nKhông có giao diện nào của bạn được kích hoạt.\n\n; Nếu bạn vừa mới cài đặt MediaWiki:\n: Bạn có thể cài đặt nó từ git, hoặc trực tiếp từ mã nguồn bằng cách sử dụng một số phương thức khác. Điều này nằm trong dự kiến. Hãy thử cài đặt một số giao diện từ [https://www.mediawiki.org/wiki/Category:All_skins thư mục giao diện của mediawiki.org], bằng cách:\n:* Tải về [https://www.mediawiki.org/wiki/Special:MyLanguage/Download trình cài đặt dưới dạng gói tar], trong đó có kèm theo một số giao diện và phần mở rộng. Bạn có thể chép nó và dán vào thư mục <code>skins/</code>.\n:* Tải về các gói giao diện nén riêng từ [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:*Sao chép một trong những kho <code>mediawiki/skins/*</code> thông qua git vào trong thư mục <code dir=\"ltr\">skins/</code> của cài đặt MediaWiki của bạn.\n: Cách này sẽ không có ảnh hưởng đến kho git của bạn dù bạn là một nhà phát triển MediaWiki. Xin xem [https://www.mediawiki.org/wiki/Manual:Skin_configuration Hướng dẫn: Cấu hình giao diện] để biết thông tin về cách kích hoạt hoặc chọn một trong số chúng làm giao diện mặc định.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (kích hoạt)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''vô hiệu hóa''')",
index 042ebb1..ba13bdb 100644 (file)
        "resetpass-wrong-oldpass": "Viganõ aotlinõ vai parhillanõ salasõna.\nVõi-ollaq olõt jo uma salasõna ärq muutnuq vai küsünüq vahtsõ aotlidsõ salasõna.",
        "resetpass-recycled": "Olõq hää, valiq umas salasõnas midägi muud, ku parhillanõ salasõna.",
        "resetpass-temp-password": "Aotlinõ salasõna:",
+       "passwordreset": "Salasõna vahtsõndaminõ",
        "bold_sample": "Paks kiri",
        "bold_tip": "Paks kiri",
        "italic_sample": "Liuhkakiri",
        "preview": "Proovikaehus",
        "showpreview": "Näütäq proovikaehust",
        "showdiff": "Näütäq muutmiisi",
-       "anoneditwarning": "'''Hoiatus:''' sa olõ-i nimega sisse lännüq, seo lehe aolukku pandas su puutri aadrõs.",
+       "anoneditwarning": "<strong>Hoiatus:</strong> Sa olõ-õi nimega sisse lännüq. Suq puutri võrgoaadrõs om kõigilõ nätäq, ku muutmiisi tiit. Ku <strong>[$1 läät nimega sisse]</strong> vai <strong>[$2 tiit hindäle pruukjanime]</strong>, sis, päält muu kasuligu, näüdätäs su toimõnduisi su pruukjanime perrä.",
        "missingsummary": "'''Miildetulõtus:'''sa olõ-i kirotanuq uma toimõndamisõ kokkovõtõt. Ku klõpsahtat viil kõrra nuppi Pästäq, sis pästetäs su toimõndus ilma kokkovõttõldaq.",
        "missingcommenttext": "Olõq hää, kirodaq kokkovõtõq.",
        "missingcommentheader": "Sa olõ-i andnuq umalõ kokkovõttõlõ päälkirjä. Ku klõpsahtat nuppi <em>Pästäq</em>, pästetäs toimõndus ilma päälkiräldä.",
        "session_fail_preview": "'''Annaq andis! Su toimõndust saa-s pästäq, selle et su tüükõrra teedüs om kaoma lännüq. Olõq hää, proomiq viilkõrd. Ku tuust olõ-i kassu, proomiq nii, et läät nime alt vällä ja sis jälq tagasi sisse.'''",
        "session_fail_preview_html": "'''Annaq andis, mi saa-i tallitaq su toimõndust, selle et toimõnduskõrra teedüs om kaoma lännüq.'''\n\n''Kuna taan vikin om käügin lihtsä HTML, sis om näütämist piiret JavaScript-i ründämiisi kaitsõs.''\n\n'''Ku taa om õigõ toimõnduskatsõq, prooviq viilkõrd. Ku iks tüütä-i, prooviq nime alt vällä minekit ja vahtsõst sissetulõkit.'''",
        "editing": "Toimõndõdas artiklit $1",
+       "creating": "Alostõdas lehte \"$1\"",
        "editingsection": "Toimõndõdas lõiku artiklist $1",
        "editingcomment": "Toimõndõdas kommõntaari lehe $1 pääl",
        "editconflict": "Toimõndamisvastaolo: $1",
        "currentrev": "Viimäne kujo",
        "currentrev-asof": "Viimäne kujo ($1)",
        "revisionasof": "Kujo $1",
-       "revision-info": "Kujo aost $1 - tennüq $2",
+       "revision-info": "Kujo saisoga $1 pruukjalt {{GENDER:$6|$2}}$7",
        "previousrevision": "←Vanõmb kujo",
        "nextrevision": "Vahtsõmb kujo→",
        "currentrevisionlink": "Viimäne kujo",
        "mergehistory-go": "Näütäq kokkopantavit muutuisi",
        "revertmerge": "Lüüq jälki lahko",
        "history-title": "Lehekülje \"$1\" muutmiisi aolugu",
+       "difference-title": "Lahkominek lehe \"$1\" kujjõ vaihõl",
        "lineno": "Rida $1:",
        "compareselectedversions": "Võrdõlõq valituid kujjõ",
        "editundo": "võtaq tagasi",
+       "diff-multi-sameuser": "(näüdädä-äi sama pruukja {{PLURAL:$1|ütte|$1}} vaihõpäälist kujjo)",
        "searchresults": "Otsmisõ tulõmiq",
        "searchresults-title": "Otsmisõ \"$1\" tulõmiq",
        "titlematches": "Artiklipäälkir'ost löüt",
        "shown-title": "Näütäq lehe kotsilõ $1 {{PLURAL:$1|tulõmus|tulõmust}}",
        "viewprevnext": "Näütäq ($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-exists": "'''Lehekülg päälkiräga \"[[:$1]]\" om olõman.''' {{PLURAL:$2|0=|Kaeq ka tõisi otsmistulõmit.}}",
-       "searchmenu-new": "'''Luuq leht päälkiräga \"[[:$1]]\".'''",
+       "searchmenu-new": "<strong>Luuq leht \"[[:$1]]\".</strong> {{PLURAL:$2|0=|Kaeq ka lövvetüid lehti.|Kaeq ka lövvetüid otsitulõmuisi.}}",
        "searchprofile-articles": "Sisuleheq",
        "searchprofile-images": "Multimeediä",
        "searchprofile-everything": "Kõik",
        "searchrelated": "samasugunõ",
        "searchall": "kõik",
        "showingresults": "{{PLURAL:$1|'''Üts''' tulõmus|'''$1''' tulõmust}} (tulõmusõst '''$2''' pääle).",
+       "search-showingresults": "{{PLURAL:$4|<strong>$1</strong>. tulõmus <strong>$3</strong>-st|Tulõmusõq <strong>$1–$2</strong> <strong>$3</strong>-st}}",
        "search-nonefound": "Perräküsümisele löüdä-äs vastust.",
        "powersearch-legend": "Laendõt otsminõ",
        "powersearch-ns": "Otsminõ nimeruumõst:",
        "rightslogtext": "Taa om pruukmisõiguisi muutmiisi nimekiri.",
        "action-edit": "seod lehte toimõndaq",
        "nchanges": "$1 {{PLURAL:$1|muutminõ|muutmiisi}}",
+       "enhancedrc-history": "aolugu",
        "recentchanges": "Viimädseq muutmisõq",
        "recentchanges-legend": "Viimätside muutmiisi säädmine",
        "recentchanges-summary": "Kaeq seo lehe päält viimätsit muutmiisi.",
        "recentchanges-label-minor": "Taa om väiku parandus",
        "recentchanges-label-bot": "Seo muutmisõ tekk' robot",
        "recentchanges-label-unpatrolled": "Seod muutmist olõ-õi viil üle kaet",
+       "recentchanges-label-plusminus": "Lehe suurusõ muutus baidõn",
+       "recentchanges-legend-heading": "'''Seletüs:'''",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (kaeq ka [[Special:NewPages|vahtsidõ lehti nimekirjä]])",
        "rcnotefrom": "Tan ommaq muutmisõq kuupääväst '''$2''' pääle (näüdätäs kooniq '''$1''' muutmist).",
        "rclistfrom": "Näütäq muutmiisi kuupääväst $3 $2 pääle",
        "rcshowhideminor": "$1 väikuq parandusõq",
+       "rcshowhideminor-show": "Näütäq",
+       "rcshowhideminor-hide": "Käkiq ärq",
        "rcshowhidebots": "$1 robodiq",
+       "rcshowhidebots-show": "Näütäq",
+       "rcshowhidebots-hide": "Käkiq ärq",
        "rcshowhideliu": "$1 nimega pruukjat",
+       "rcshowhideliu-hide": "Käkiq ärq",
        "rcshowhideanons": "$1 nimeldä pruukjaq",
+       "rcshowhideanons-show": "Näütäq",
+       "rcshowhideanons-hide": "Käkiq ärq",
        "rcshowhidepatr": "$1 kontrolliduq muutmisõq",
        "rcshowhidemine": "$1 mu toimõndusõq.",
+       "rcshowhidemine-show": "näütäq",
+       "rcshowhidemine-hide": "Käkiq ärq",
        "rclinks": "Näütäq viimädseq $1 muutmist, miä ommaq tettüq viimädse $2 päävä seen. $3",
        "diff": "lahk",
        "hist": "aol",
        "number_of_watching_users_pageview": "[{{PLURAL:$1|$1 perräkaejat|üts perräkaeja}}]",
        "rc_categories": "Õnnõ katõgoorijist (eräldedäs märgiga \"|\")",
        "rc_categories_any": "Miä taht",
+       "rc-change-size-new": "$1 {{PLURAL:$1|bait|baiti}} peräst muutmist",
        "rc-enhanced-expand": "Näütäq ütsikasjo",
        "rc-enhanced-hide": "Käkiq ütsikas'aq ärq",
        "recentchangeslinked": "Siiäq putvaq muutmisõq",
        "sharedupload": "Seo teedüstü om peri lättest $1 ni taad võivaq pruukiq ka tõõsõq vikiq.",
        "sharedupload-desc-here": "Seo om jaet teedüstü lättest $1 ja seod saa pruukiq ka tõisin projekten. Teedüstü [$2 seletüs] om ant allpuul.",
        "uploadnewversion-linktext": "Laadiq taa teedüstü vahtsõnõ kujo",
+       "upload-disallowed-here": "Sa ei saaq seod faili üle kirotaq.",
        "filerevert": "Võtaq tagasi $1",
        "filerevert-legend": "Võtaq tagasi teedüstü",
        "filerevert-comment": "Põhjus:",
        "pager-older-n": "{{PLURAL:$1|vanõmb 1|vanõmbaq $1}}",
        "booksources": "Raamaduq",
        "booksources-search-legend": "Otsiq raamatut",
+       "booksources-search": "Otsiq",
        "booksources-text": "Tan om linke lehekülile, kon müvväs raamatit vai andas raamatidõ kotsilõ teedüst.",
        "specialloguserlabel": "Pruukja:",
        "speciallogtitlelabel": "Päälkiri:",
        "deletereason-dropdown": "*Hariliguq kistutamisõ põhjusõq\n** Kirotaja hindä palvõl\n** Tegijäõigusõ rikminõ\n** Lehe ts'urkminõ",
        "rollback": "Mineq tagasi vana kujo pääle",
        "rollbacklink": "võtaq tagasi vana kujo",
+       "rollbacklinkcount": "võtaq tagasi {{PLURAL:$1|üts muutminõ|$1 muutmist}}",
        "rollbackfailed": "Muutmiisi tagasivõtminõ lää-s kõrda",
        "cantrollback": "Saa-i muutmiisi tagasi pöördäq; viimäne muutja om lehe ainugõnõ toimõndaja.",
        "alreadyrolled": "Pruukja [[User:$2|$2]] ([[User talk:$2|arotus]]) tettüid lehe [[:$1]] muutmiisi saa-i tagasi võttaq, selle et pruukja [[User:$3|$3]] ([[User talk:$3|arotus]]) om tennüq vahtsõmbit muutmiisi.",
        "undelete-no-results": "Kistutamiisi nimekiräst lövvetä-s säänest lehte.",
        "namespace": "Nimeruum:",
        "invert": "Näütäq kõiki päält validu nimeruumi",
+       "tooltip-invert": "Tiiq kasti märk, ku tahat ärq käkkiq muutmisõq validu nimeruumi lehti pääl (ja, ku valit, sis ka tuuga köüdetün nimeruumin)",
+       "namespace_association": "Köüdet nimeruum",
+       "tooltip-namespace_association": "Tiiq kasti märk, ku tahat vallq ka validu nimeruumiga köüdedü arotus- vai sisulehhti nimeruumi",
        "blanknamespace": "(artikliq)",
        "contributions": "{{GENDER:$1|Pruukja}} toimõndusõq",
        "contributions-title": "Pruukja $1 toimõndusõq",
        "tooltip-pt-mycontris": "Suq toimõnduisi nimekiri",
        "tooltip-pt-login": "Mineq nimega sisse vai tiiq hindäle pruukjanimi (soovitav).",
        "tooltip-pt-logout": "Mineq nime alt vällä",
+       "tooltip-pt-createaccount": "Tuu olõ-õi joht kohustuslik, a sul tasos luvvaq konto ja nimega sisse minnäq.",
        "tooltip-ca-talk": "Arotus lehe sisu üle",
        "tooltip-ca-edit": "Saa võit taad lehte toimõndaq.",
        "tooltip-ca-addsection": "Tiiq vahtsõnõ alljago",
        "spambot_username": "MediaWiki prahihäötäjä",
        "spam_reverting": "Tagasi pööret viimädse kujo pääle, koh olõ-i linke lehele $1",
        "spam_blanking": "Kõigin kujõn oll' linke lehele $1. Leht tühäs tett.",
+       "simpleantispam-label": "Rämpspostikontroll.\n'''ÄRQ''' täütkuq seod väljä!",
+       "pageinfo-toolboxlink": "Leheküle andmõq",
        "markaspatrolleddiff": "Märgiq ülekaetus",
        "markaspatrolledtext": "Märgiq toimõndus ülekaetus",
        "markedaspatrolled": "Märgit ülekaetus",
        "file-nohires": "Taast terävämpä pilti olõ-i saiaq.",
        "svg-long-desc": "SVG-teedüstü, põhisuurus $1 × $2 pikslit, teedüstü suurus $3",
        "show-big-image": "Algteedüstü",
+       "show-big-image-preview": "Seo proovikaehusõ suurus: $1.",
+       "show-big-image-other": "{{PLURAL:$2|Tõõnõ eräldüsvõimõq|Tõõsõq eräldüsvõimõq}}: $1.",
+       "show-big-image-size": "$1 × $2 pikslit",
        "newimages": "Vahtsõq pildiq",
        "imagelisttext": "Pilte nimekirän $1 (sordiduq $2).",
        "noimages": "Olõ-i vahtsit pilte.",
        "watchlisttools-view": "Näütäq muutmiisi",
        "watchlisttools-edit": "Kaeq ja toimõndaq perräkaemisnimekirjä",
        "watchlisttools-raw": "Toimõndaq lätteteedüstüt",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|arotus]])",
        "duplicate-defaultsort": "'''Hoiatus:''' Sortmisvõti \"$2\" tühistäs ärq innembädse sortmisvõtmõ \"$1\".",
        "version": "Kujo",
        "version-version": "($1)",
        "specialpages-group-redirects": "Ümbrenäütämistallitusleheq",
        "external_image_whitelist": "  #Jätäq seo rida muutmalda kujo pääle<pre>\n#Panõq regulaaravaldusõ osaq (õnnõ //-märke vaihõl ollõv jago) allapoolõ\n#Naaq pandasõq vastama vikivälitside pilte internetiaadrõssidõga\n#Nuuq, miä vastasõq, näüdätäseq ku pildiq, muido näüdätäs õnnõ pildi link\n#Märgiga # päälenakkajaq riaq ommaq kommõntaariq\n#Seo tii-i vaiht suuril ja väikeisil tähil\n\n#Panõq kõik regulaaravaldusq osaq seo joonõ kotsilõ. Jätäq seo rida muutmalda</pre>",
        "tag-filter": "[[Special:Tags|Märkmisfiltri]]:",
-       "rightsnone": "(olõ-i õiguisi)"
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Märgüs|Märgüseq}}]]: $2)",
+       "logentry-delete-delete": "$1 {{GENDER:$2|kistut' ärq}} lehe $3",
+       "logentry-move-move": "$1 {{GENDER:$2|pand'}} lehe $3 päälkirä $4 ala",
+       "logentry-newusers-create": "{{GENDER:$2|Luud}} pruukjakonto $1",
+       "logentry-upload-upload": "$1 {{GENDER:$2|laatõ üles}} faili $3",
+       "rightsnone": "(olõ-i õiguisi)",
+       "searchsuggest-search": "Otsminõ"
 }
index 3c93d85..04e30ad 100644 (file)
@@ -17,7 +17,8 @@
                        "Impersonator 1",
                        "LNDDYL",
                        "TheChampionMan1234",
-                       "Fitoschido"
+                       "Fitoschido",
+                       "Poiuyt"
                ]
        },
        "tog-underline": "鏈接下橫線:",
@@ -25,7 +26,7 @@
        "tog-hidepatrolled": "此垡變化裏囥脫巡脫編",
        "tog-newpageshidepatrolled": "新頁表裏囥脫巡脫頁",
        "tog-extendwatchlist": "擴大關注表,顯示全部變化,弗單清此垡個",
-       "tog-usenewrc": "使用强化版个近段辰光个改动(JavaScript)",
+       "tog-usenewrc": "使用折叠版个近段辰光个改动搭关注表",
        "tog-numberheadings": "標題自動編號",
        "tog-showtoolbar": "顯示編傢伙欄",
        "tog-editondblclick": "捺兩記編頁",
@@ -44,7 +45,7 @@
        "tog-shownumberswatching": "顯示關注人數",
        "tog-oldsig": "能界签名先望:",
        "tog-fancysig": "畀簽名當wiki文本(弗自動鏈接)",
-       "tog-uselivepreview": "用當場先望(試驗)",
+       "tog-uselivepreview": "使用实时预览",
        "tog-forceeditsummary": "編要空白到提醒我",
        "tog-watchlisthideown": "關注表裏囥脫我所編",
        "tog-watchlisthidebots": "關注表裏囥脫機器人所編",
        "tog-prefershttps": "登录后老世用保险连接",
        "underline-always": "老世",
        "underline-never": "老世弗",
-       "underline-default": "ç\9a®è\86\9aè¦\81å¼\97æµ\81覽å\99¨é»\98èª\8d",
+       "underline-default": "ç\9a®è\82¤æ\88\96æµ\8fè§\88å\99¨é»\98认设置",
        "editfont-style": "編寫區字體樣式:",
-       "editfont-default": "æµ\81覽å\99¨é»\98èª\8d",
-       "editfont-monospace": "樣闊字體",
-       "editfont-sansserif": "Sans-serif字體",
-       "editfont-serif": "Serif字體",
-       "sunday": "星期日",
-       "monday": "星期一",
-       "tuesday": "星期二",
-       "wednesday": "星期三",
-       "thursday": "星期四",
-       "friday": "星期五",
-       "saturday": "星期六",
+       "editfont-default": "æµ\8fè§\88å\99¨é»\98认",
+       "editfont-monospace": "等阔字体",
+       "editfont-sansserif": "无衬线字体",
+       "editfont-serif": "衬线字体",
+       "sunday": "礼拜日",
+       "monday": "礼拜一",
+       "tuesday": "礼拜两",
+       "wednesday": "礼拜三",
+       "thursday": "礼拜四",
+       "friday": "礼拜五",
+       "saturday": "礼拜六",
        "sun": "日",
        "mon": "一",
-       "tue": "äº\8c",
+       "tue": "两",
        "wed": "三",
        "thu": "四",
        "fri": "五",
@@ -93,7 +94,7 @@
        "november": "11月",
        "december": "12月",
        "january-gen": "一月",
-       "february-gen": "äº\8c月",
+       "february-gen": "两月",
        "march-gen": "三月",
        "april-gen": "四月",
        "may-gen": "五月",
        "december-date": "12月 $1",
        "pagecategories": "{{PLURAL:$1|分类}}",
        "category_header": "“$1”分類裏個頁",
-       "subcategories": "å\85\92å\88\86é¡\9e",
+       "subcategories": "å­\90å\88\86ç±»",
        "category-media-header": "\"$1\"分类里个媒体",
        "category-empty": "''箇分类里页搭媒体能界还呒有。''",
        "hidden-categories": "$1囥脫分類",
        "mypage": "我个页面",
        "mytalk": "我个讨论",
        "anontalk": "箇IP地址個話",
-       "navigation": "å°\8e航",
+       "navigation": "导航",
        "and": "&#32;搭",
        "qbfind": "尋",
-       "qbbrowse": "æµ\81覽",
+       "qbbrowse": "æµ\8fè§\88",
        "qbedit": "編",
        "qbpageoptions": "箇頁",
        "qbmyoptions": "我頁",
        "actions": "动作",
        "namespaces": "名字空间",
        "variants": "变量",
+       "navigation-heading": "导航菜单",
        "errorpagetitle": "錯誤",
        "returnto": "返回$1。",
-       "tagline": "从{{SITENAME}}来",
-       "help": "幫忙",
+       "tagline": "来自{{SITENAME}}",
+       "help": "帮忙",
        "search": "寻",
        "searchbutton": "搜寻",
        "go": "去",
        "permalink": "老世链接",
        "print": "打印",
        "view": "望",
+       "view-foreign": "登$1上看",
        "edit": "编",
        "create": "建",
+       "create-local": "添加本地说明",
        "editthispage": "編箇頁",
        "create-this-page": "建箇頁",
        "delete": "刪",
        "unprotectthispage": "變更箇頁保態",
        "newpage": "新页",
        "talkpage": "探討箇頁",
-       "talkpagelinktext": "è¨\8eè«\96",
+       "talkpagelinktext": "讨论",
        "specialpage": "特別頁",
        "personaltools": "私人家伙",
        "articlepage": "望內容頁",
-       "talk": "探讨",
+       "talk": "讨论",
        "views": "望",
-       "toolbox": "家伙匣",
+       "toolbox": "家",
        "userpage": "望用戶頁",
        "projectpage": "望計劃頁",
        "imagepage": "望文件頁",
        "otherlanguages": "别样话版",
        "redirectedfrom": "(从$1转戳到箇里)",
        "redirectpagesub": "轉戳頁",
+       "redirectto": "重定向到:",
        "lastmodifiedat": "箇页此垡来$1 $2改进。",
        "viewcount": "箇頁望過$1垡。",
        "protectedpage": "受保頁",
        "pool-queuefull": "池队列满哉",
        "pool-errorunknown": "弗识个错误",
        "aboutsite": "有关{{SITENAME}}",
-       "aboutpage": "Project:有关",
-       "copyright": "内容侪拉$1下底发布。",
+       "aboutpage": "Project:关于",
+       "copyright": "除非另外声明,内容侪拉$1下底发布。",
        "copyrightpage": "{{ns:project}}:版权",
-       "currentevents": "箇阶段个事干",
-       "currentevents-url": "Project:箇阶段个事干",
-       "disclaimers": "甮追問",
-       "disclaimerpage": "Project:甮追問",
+       "currentevents": "近段辰光个事体",
+       "currentevents-url": "Project:近段辰光个事体",
+       "disclaimers": "免责声明",
+       "disclaimerpage": "Project:免责声明",
        "edithelp": "編寫幫助",
        "mainpage": "封面",
        "mainpage-description": "封面",
        "policy-url": "Project:策略",
-       "portal": "社å\8d\80è\87ºé\96\80",
-       "portal-url": "Project:社å\8d\80è\87ºé\96\80",
-       "privacy": "é\9a±ç§\81ç­\96ç\95¥",
-       "privacypage": "Project:é\9a±ç§\81ç­\96ç\95¥",
+       "portal": "社å\8cºé\97¨å \82",
+       "portal-url": "Project:社å\8cºé\97¨å \82",
+       "privacy": "é\9a\90ç§\81æ\94¿ç­\96",
+       "privacypage": "Project:é\9a\90ç§\81æ\94¿ç­\96",
        "badaccess": "权限",
        "badaccess-group0": "弗準爾做箇操作。",
        "badaccess-groups": "爾個請求要徠{{PLURAL:$2|箇個}}用戶組裏好用:$1。",
        "ok": "好",
        "retrievedfrom": "取自“$1”",
        "youhavenewmessages": "你侬有$1($2)。",
-       "newmessageslinkplural": "{{PLURAL:$1|新消息}}",
+       "newmessageslinkplural": "{{PLURAL:$1|新消息|999=新消息}}",
        "newmessagesdifflinkplural": "此垡̺{{PLURAL:$1|变化}}",
        "youhavenewmessagesmulti": "爾徠$1裏有新信息",
-       "editsection": "ç·¨",
+       "editsection": "ç¼\96è¾\91",
        "editold": "编",
        "viewsourceold": "望源碼",
        "editlink": "编",
-       "viewsourcelink": "æ\9c\9bæº\90碼",
+       "viewsourcelink": "æ\9c\9bæº\90ç \81",
        "editsectionhint": "编段: $1",
        "toc": "目录",
        "showtoc": "顯示",
        "badtitle": "坏标题",
        "badtitletext": "所请求页面个标题是无效个、弗存在,跨语言或跨wiki链接个标题错误。渠作兴包含一只或多只弗好用拉标题里向字符。",
        "perfcached": "下向是缓存数据,呒数弗是最新个。 A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.",
-       "perfcachedts": "下头是缓存数据,压末一趟更新辰光是$1。 A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.",
+       "perfcachedts": "下头是缓存数据,阿末一趟更新辰光是$1。缓存里最多有{{PLURAL:$4|$4条结果}}。",
        "querypage-no-updates": "当前禁止对此页面进行更新。箇搭个数据弗好立即刷新。",
        "viewsource": "望源码",
        "actionthrottled": "动作已压制",
        "viewsourcetext": "侬可以查看搭仔复制箇只页面个源码:",
        "viewyourtext": "你侬好望也好畀'''你侬编个'''复制到箇页:",
        "protectedinterface": "箇页为箇维基个软件提供界面文本,锁牢定防乱用。\n加改全部维基个译文,用[//translatewiki.net/ translatewiki.net],MediaWiki软件个本地化计划。",
-       "editinginterface": "'''警告:''' 侬来里编写个页面是畀软件用个界面文本。箇页变化会影响各许人个界面样子。假使要畀全部维基翻译,用 [//translatewiki.net/wiki/Main_Page?setlang=zh-hans translatewiki.net],MediaWiki软件个本地化计划。",
+       "editinginterface": "<strong>警告:</strong>侬来里编写个页面是畀软件用个界面文本。箇页变化会影响各许人个界面样子。",
        "cascadeprotected": "箇只页面拨保护拉许,因为箇只页面拨下底已经标注“级联保护”个{{PLURAL:$1|一只|多只}}被保护页面包含:\n$2",
        "namespaceprotected": "侬无没编辑'''$1'''名字空间里向页面个权限。",
        "customcssprotected": "箇CSS页你呒处编,箇页有各许用户个私人设置。",
        "invalidtitle-knownnamespace": "非法个题目头,有名字空间$2搭文字$3",
        "invalidtitle-unknownnamespace": "非法个题目头,有弗识个数字$1搭文字$2",
        "exception-nologin": "朆登录",
-       "exception-nologin-text": "箇页要勿箇操作需要你登录到箇wiki裏来。",
+       "exception-nologin-text": "请登录来访问箇页面或操作。",
        "virus-badscanner": "设置问题:未知个反病毒扫描器:''$1''",
        "virus-scanfailed": "扫描失败(代码 $1)",
        "virus-unknownscanner": "未知个反病毒扫描器:",
        "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-ph": "密码打一遍添",
+       "createacct-yourpasswordagain": "确认密码",
+       "createacct-yourpasswordagain-ph": "再打一遍密码",
        "remembermypassword": "徕箇浏览器里畀我登进去个记牢(记$1{{PLURAL:$1|日|日}})",
-       "userlogin-remembermypassword": "长期徕线里",
+       "userlogin-remembermypassword": "记牢我个登录状态",
        "userlogin-signwithsecure": "用保险链接",
        "yourdomainname": "侬个域名:",
        "password-change-forbidden": "箇wiki裏呒处改你侬个密码。",
        "logout": "登出",
        "userlogout": "登出",
        "notloggedin": "弗曾登录",
-       "userlogin-noaccount": "账号还呒?",
+       "userlogin-noaccount": "呒不账号?",
        "userlogin-joinproject": "加进{{SITENAME}}",
        "nologin": "你侬还呒有账号?'''$1'''。",
        "nologinlink": "建新账号",
        "gotaccount": "已经有仔帐号哉? '''$1'''。",
        "gotaccountlink": "登录",
        "userlogin-resetlink": "忘记登录细节?",
-       "userlogin-resetpassword-link": "转设密码",
+       "userlogin-resetpassword-link": "忘脱密码?",
+       "userlogin-helplink2": "登录帮忙",
        "userlogin-loggedin": "你侬用{{GENDER:$1|$1}}登进来哉。用下向个表以别样身份登进。",
        "userlogin-createanother": "建别样账号",
        "createacct-emailrequired": "电子信地址",
        "passwordtooshort": "密码起码要$1个字符。",
        "password-name-match": "密码弗好搭户名一样。",
        "password-login-forbidden": "用箇名字搭密码是弗准个。",
-       "mailmypassword": "新密码用电子信寄畀我",
+       "mailmypassword": "重置密码",
        "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地址处于查封状态,弗允许编辑,为仔安全起见,密码恢复功能已经禁用。",
-       "eauthentsent": "一封确认信已经发送到指定个e-mail地址。垃拉发送其它邮件到箇只账户之前,侬必须首先按照箇封信里向个指示确认箇只电子邮箱真实有效。",
+       "eauthentsent": "一封确认信已经发送到指定个电子邮箱地址。\n垃拉其它邮件发送到箇只账户之前,侬必须首先按照箇封信里向个指示,确认箇只邮箱真实有效。",
        "throttled-mailpassword": "密码转设电子信徕最近$1个钟头里发畀你侬哉。保险点,密码转设电子信$1个钟头只一垡好发。",
        "mailerror": "发送邮件错误:$1",
        "acct_creation_throttle_hit": "弗好意思,使用箇只IP个访客已经创建仔$1只账号,迭个是箇段辰光里向所允许个最大值。箇咾使用箇只IP个地址个访客暂时弗好再创建账户。",
-       "emailauthenticated": "侬个电子邮箱地址已经垃拉$2 $3确认有效。",
-       "emailnotauthenticated": "侬个邮箱地址<strong>还弗曾认证</strong>。下底眼功能将弗会发送任何邮件。",
+       "emailauthenticated": "侬个电子邮箱地址已经垃拉$2 $3确认。",
+       "emailnotauthenticated": "侬个电子邮箱地址还朆确认。\n下底个功能弗会发送任何邮件。",
        "noemailprefs": "指定一只电子邮箱地址以使用箇眼功能。",
        "emailconfirmlink": "确认邮箱地址",
        "invalidemailaddress": "邮箱地址格式弗对,请输入正确个邮箱地址或清空输入框。",
        "createaccount-title": "垃拉{{SITENAME}}里向创建新账户",
        "createaccount-text": "有人垃拉{{SITENAME}}里向利用侬个邮箱创建仔一只叫 \"$2\" 个新帐户($4),密码是 \"$3\" 。侬应该立即登录并更改密码。\n\n如果箇个账户创建错误个说话,侬可以忽略此信息。",
        "login-throttled": "你侬试登忒多次哉。\n等 $1 再试试凑相。",
-       "login-abort-generic": "登录弗成功 - 流产",
+       "login-abort-generic": "登录弗成功 - 已终止",
        "loginlanguagelabel": "语言:$1",
        "suspicious-userlogout": "侬登出个要求已经拨回头脱,因为渠可能是由已损坏个浏览器或者缓存代理传送个。",
+       "pt-login": "登录",
+       "pt-login-button": "登录",
+       "pt-createaccount": "建账号",
+       "pt-userlogout": "登出",
        "changepassword": "改密码",
-       "resetpass_announce": "侬是通过一只临时发送到e-mail里向个代码登录的。要完成登录,侬必须垃此地设定一只新密码:",
+       "resetpass_announce": "要完成登录,侬必须设定一只新密码。",
        "resetpass_header": "更改密码",
        "oldpassword": "旧密码:",
        "newpassword": "新密码:",
        "resetpass-submit-cancel": "取消",
        "resetpass-wrong-oldpass": "无效个临时或者现有密码。\n侬作兴已经成功拿密码改脱,或者已经请求一个新个临时密码。",
        "resetpass-temp-password": "临时密码:",
+       "passwordreset": "重置密码",
        "passwordreset-username": "用戶名",
-       "bold_sample": "黑体文本",
-       "bold_tip": "黑体文本",
+       "bold_sample": "粗体文字",
+       "bold_tip": "粗体文字",
        "italic_sample": "斜体文本",
        "italic_tip": "斜体文本",
        "link_sample": "链接标题",
        "media_tip": "文件链接",
        "sig_tip": "签名搭辰光戳",
        "hr_tip": "水平线 (小心用)",
-       "summary": "摘要:",
+       "summary": "摘要",
        "subject": "主题 / 标题:",
        "minoredit": "箇是小变化",
        "watchthis": "关注箇页",
        "preview": "望望相",
        "showpreview": "显示望望相",
        "showdiff": "显示变化",
-       "anoneditwarning": "'''警告:''' 你侬朆登进来。\n你侬个IP地址会记进箇页个编史里。",
+       "anoneditwarning": "<strong>警告:</strong>你呒不登录。如果你做仔啥编辑,箇么你个IP地址会公开可见。如果你<strong>[$1 登录]</strong>或<strong>[$2 创建]</strong>一个账号,你个编辑会归功于你用户名下底,而且会有其他好处。",
        "anonpreviewwarning": "''侬弗曾登录。侬个IP位址会得记录拉此页个编辑历史里向。''",
        "missingsummary": "'''提示:''' 侬弗曾提供编辑摘要。假使侬再次单击保存,侬个编辑将弗带编辑摘要保存。",
        "missingcommenttext": "请垃下头输入备注。",
        "blockedtitle": "用户拨查封",
        "blockedtext": "侬个用户名或IP地址已经拨$1查封。\n\n箇趟查封是由$1所封个。原因是''$2''。\n\n* 箇趟查封开始个辰光是:$8\n* 箇趟查封到期个辰光是:$6\n* 对于畀查封者:$7\n\n侬可以联络$1或者其他个 [[{{MediaWiki:Grouppage-sysop}}|管理员]],讨论箇趟查封。\n除非侬已经垃侬个 [[Special:Preferences|个人设置]]里向设置仔一只有效个电子邮件地址,弗然侬弗好使用「e-mail箇位用户」功能。当设置了一只有效个电子邮件地址之后,箇只功能是弗会畀封锁个。\n\n侬个IP地址是$3,而该查封ID是 #$5。 请垃拉侬个查询里向注明以上所有资料。",
        "autoblockedtext": "侬个IP地址已经自动查封,由于之前另一位 搭侬用一样IP个用户畀$1所查封。\n而查封个原因是:\n\n:''$2''\n\n* 箇趟查封个开始辰光是:$8\n* 箇趟查封个到期辰光是:$6\n* 对于畀查封者:$7\n\n侬可以联络$1或者其他个 [[{{MediaWiki:Grouppage-sysop}}|管理员]],讨论箇趟查封。\n除非侬已经垃侬个 [[Special:Preferences|个人设置]]里向设置仔一只有效个电子邮件地址,弗然侬弗好使用「e-mail箇位用户」功能。当设置了一只有效个电子邮件地址之后,箇只功能是弗会畀封锁个。\n\n侬个IP地址是$3,而该查封ID是 #$5。 请垃拉侬个查询里向注明以上所有资料。",
-       "blockednoreason": "弗曾拨原因",
+       "blockednoreason": "朆畀出原因",
        "whitelistedittext": "侬必须$1才能编辑。",
        "confirmedittext": "垃拉编辑此页之前侬必须确认侬个邮箱地址。请通过[[Special:Preferences|个人设置]]设置并验证侬个邮箱地址。",
        "nosuchsectiontitle": "寻弗着箇只段落",
        "session_fail_preview": "'''弗好意思!由于会话数据落失,我伲弗好处理侬个编辑。'''请重试。如果再次失败,请尝试[[Special:UserLogout|登出]]之后重新登录。",
        "session_fail_preview_html": "'''弗好意思!我伲弗好处理侬垃拉进程数据落失辰光个编辑。'''\n\n''由于{{SITENAME}}允许使用原始个 HTML,为著防范 JavaScript 攻击,预览已畀隐藏。''\n\n'''如果这是一次合法的编辑,请重新进行尝试。'''如果还不行,请 [[Special:UserLogout|退出]]并重新登录。",
        "token_suffix_mismatch": "'''由于侬用户端里向个编辑令牌毁损仔一些标点符号字元,为防止编辑个文字损坏,侬个编辑已经畀回头。'''\n箇种情况通常出现垃拉使用含有交关bug、以网络为主个匿名代理服务个辰光。",
-       "editing": "徕里编$1",
+       "editing": "来里编$1",
+       "creating": "创建“$1”",
        "editingsection": "徕里编写$1(段)",
        "editingcomment": "垃许编辑 $1 (新段落)",
        "editconflict": "编辑冲突: $1",
        "currentrev": "最后版本",
        "currentrev-asof": "于$1个最新修订版",
        "revisionasof": "垃拉$1所作出个修订版",
-       "revision-info": "垃拉$1由$2所作版本",
+       "revision-info": "{{GENDER:$6|$2}}$1个版本$7",
        "previousrevision": "←还旧版",
        "nextrevision": "新点个版本→",
        "currentrevisionlink": "最后版本",
        "history-feed-description": "wiki里向本页个修订历史",
        "history-feed-item-nocomment": "$1垃拉$2",
        "history-feed-empty": "请求个页面弗存在。渠作兴已畀删除或重命名。\n尝试[[Special:Search|搜索本站]]获得相关新建页面。",
-       "rev-deleted-comment": "(备注已删除)",
+       "rev-deleted-comment": "(编辑摘要畀删脱)",
        "rev-deleted-user": "(用户名已删除)",
-       "rev-deleted-event": "(日志动作已删除)",
+       "rev-deleted-event": "(日志细节畀删脱)",
        "rev-deleted-user-contribs": "[用户名或IP地址已删除 - 垃贡献里向囥脱编辑]",
        "rev-deleted-text-permission": "箇只页面版本已畀'''删除'''。\n垃拉[{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} 删除日志]里向可以寻着详细信息。",
-       "rev-deleted-text-unhide": "箇只页面修订已经畀'''删除'''。\n垃拉[{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} 删除日志]里向可以寻着详细信息。\n作为管理员,如果侬想继续个闲话,侬可以仍旧[$1 查看箇趟修订]。",
-       "rev-suppressed-text-unhide": "箇只页面修订已经畀'''废止'''。\n垃拉[{{fullurl:{{#Special:Log}}/suppress|page={{PAGENAMEE}}}} 废止日志]里向可以寻着详细信息。\n作为管理员,如果侬想继续个闲话,侬可以仍旧[$1 查看箇趟修订]。",
-       "rev-deleted-text-view": "箇只页面修订已经畀'''删除'''。作为管理员,侬可以查看渠;\n垃拉[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]里向可以寻着详细信息。",
-       "rev-suppressed-text-view": "箇只页面修订已经畀'''废止'''。作为管理员,侬可以查看渠;\n垃拉[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 废止日志]里向可以寻着详细信息。",
+       "rev-deleted-text-unhide": "箇只页面修订已经畀<strong>删脱</strong>。\n垃拉[{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} 删除日志]里向可以寻着详细信息。\n如果侬想继续个说话,侬仍旧好[$1 查看箇趟修订]。",
+       "rev-suppressed-text-unhide": "箇只页面修订已经畀<strong>监督囥脱</strong>。\n垃拉[{{fullurl:{{#Special:Log}}/suppress|page={{PAGENAMEE}}}} 监督日志]里向可以寻着详细信息。\n如果侬想继续个说话,侬仍旧好[$1 查看箇趟修订]。",
+       "rev-deleted-text-view": "箇只页面修订已经畀<strong>删脱</strong>。\n侬可以查看渠;垃拉[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]里向可以寻着详细信息。",
+       "rev-suppressed-text-view": "箇只页面修订已经畀<strong>监督囥脱</strong>。\n侬可以查看渠;垃拉[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 监督日志]里向可以寻着详细信息。",
        "rev-deleted-no-diff": "因为其中一趟修订已畀'''删除''',侬弗可以查看差异。\n垃拉[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]里向可以寻着更多信息。",
        "rev-suppressed-no-diff": "箇只页面个其中一趟版本已经畀'''删除''',箇咾弗可以查看箇趟版本。",
-       "rev-deleted-unhide-diff": "箇只页面个其中一趟修订已经畀'''删除'''。\n垃拉[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]里向可以寻着更多信息。\n作为管理员,如果侬想继续个闲话,侬仍旧可以[$1 查看箇趟修订]。",
-       "rev-suppressed-unhide-diff": "箇只页面个其中一趟修订已经拨'''废止'''。\n垃拉[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 废止日志]里向可以寻着更多资料。\n作为管理员,如果侬想继续个闲话,侬可以仍旧[$1 查看箇趟修订]。",
-       "rev-deleted-diff-view": "差异里向个一趟修订已拨'''删除'''。\n作为管理员,侬可以查看箇个差异。详细信息可垃拉[{{fullurl: {{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]里向寻着。",
-       "rev-suppressed-diff-view": "差异里向个一趟修订已拨'''废止'''。\n作为管理员,侬可以查看箇个差异。详细信息可垃拉[{{fullurl: {{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 废止日志]里向寻着。",
+       "rev-deleted-unhide-diff": "箇只页面个其中一趟修订已经畀<strong>删脱</strong>。\n垃拉[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]里向可以寻着更多信息。\n如果侬想继续个说话,侬仍旧好[$1 查看箇趟修订]。",
+       "rev-suppressed-unhide-diff": "箇只页面个其中一趟修订已经畀<strong>监督囥脱</strong>。\n垃拉[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 监督日志]里向可以寻着详细信息。\n如果侬想继续个说话,侬仍旧好[$1 查看箇趟修订]。",
+       "rev-deleted-diff-view": "差异对比里向个一趟修订已经畀<strong>删脱</strong>。\n侬可以查看箇个差异;详细信息可垃拉[{{fullurl: {{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]里向寻着。",
+       "rev-suppressed-diff-view": "差异对比里向个一趟修订已经畀<strong>监督囥脱</strong>。\n侬可以查看箇个差异;详细信息可垃拉[{{fullurl: {{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 监督日志]里向寻着。",
        "rev-delundel": "显示/囥脱",
        "rev-showdeleted": "显示",
        "revisiondelete": "删除 / 反删除版本",
        "revertmerge": "反合并",
        "mergelogpagetext": "下底是只最近发生个页面历史合并个记录列表。",
        "history-title": "“$1”的版本历史",
+       "difference-title": "“$1”版本间个差别",
        "lineno": "第$1排:",
        "compareselectedversions": "比较选中个版本",
        "showhideselectedversions": "显示/囥脱选定修订版本",
        "editundo": "撤销",
+       "diff-multi-sameuser": "(朆显示同一用户个$1个中间版本)",
        "searchresults": "搜寻结果",
        "searchresults-title": "搜寻“$1”个结果",
        "titlematches": "页面标题匹配",
        "shown-title": "一页显示$1个结果",
        "viewprevnext": "查看($1 {{int:pipe-separator}} $2)($3)",
        "searchmenu-exists": "'''箇wiki里有一页名字“[[:$1]]”哉'''",
-       "searchmenu-new": "'''徕箇wiki里建“[[:$1]]”页!'''",
+       "searchmenu-new": "<strong>登箇Wiki上建“[[:$1]]”页!</strong>{{PLURAL:$2|0=|另见寻着个页面。|另见搜寻个结果。}}",
        "searchprofile-articles": "内容页",
        "searchprofile-images": "多媒体",
        "searchprofile-everything": "全部",
        "searchprofile-advanced": "高级",
-       "searchprofile-articles-tooltip": "徕$1里搜寻",
+       "searchprofile-articles-tooltip": "登$1里向寻",
        "searchprofile-images-tooltip": "搜寻文件",
        "searchprofile-everything-tooltip": "搜寻全部内容(包括讨论页)",
        "searchprofile-advanced-tooltip": "垃拉自定义名字空间里向搜索",
        "searchrelated": "相关",
        "searchall": "全部",
        "showingresults": "下头显示从第<b>$2</b>条开始个<b>$1</b>条结果:",
+       "search-showingresults": "{{PLURAL:$4|<strong>$3</strong>条结果里个<strong>$1</strong>条|<strong>$3</strong>条结果里个<strong>$1~$2</strong>条}}",
        "search-nonefound": "查询呒有结果。",
        "powersearch-legend": "高级搜索",
        "powersearch-ns": "垃拉箇眼名字空间里向搜索:",
        "right-movefile": "移文件",
        "right-upload": "傳文件",
        "right-reupload": "文件以舊換新",
+       "right-writeapi": "使用写入API",
        "right-delete": "刪頁面",
        "right-browsearchive": "搜尋已刪頁",
        "right-viewmywatchlist": "望自己個關注表",
        "action-editmyprivateinfo": "編私人信息",
        "nchanges": "$1趟更改",
        "enhancedrc-history": "歷史",
-       "recentchanges": "箇阶段个变化",
+       "recentchanges": "近段辰光个改动",
        "recentchanges-legend": "箇阶段个变化选项",
        "recentchanges-summary": "登该个页面浪跟踪最近对维基百科个改动。",
        "recentchanges-feed-description": "跟踪此订阅垃拉 wiki 高头个最近更改。",
        "recentchanges-label-newpage": "建新页来编",
        "recentchanges-label-minor": "箇是小编写",
+       "recentchanges-label-bot": "箇编辑由机器人执行",
+       "recentchanges-label-unpatrolled": "该编辑还朆巡查",
+       "recentchanges-label-plusminus": "箇页面字节数前后个变化",
+       "recentchanges-legend-heading": "'''说明:'''",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}}(见[[Special:NewPages|新页面列表]])",
        "rclistfrom": "显示 $3 $2 以来个新改动",
        "rcshowhideminor": "$1小编写",
+       "rcshowhideminor-show": "显示",
+       "rcshowhideminor-hide": "囥脱",
        "rcshowhidebots": "$1机器人",
-       "rcshowhideliu": "$1登录个用户",
+       "rcshowhidebots-show": "显示",
+       "rcshowhidebots-hide": "囥脱",
+       "rcshowhideliu": "$1注册用户",
+       "rcshowhideliu-hide": "囥脱",
        "rcshowhideanons": "$1匿名用户",
-       "rcshowhidemine": "$1我个修改",
+       "rcshowhideanons-show": "显示",
+       "rcshowhideanons-hide": "囥脱",
+       "rcshowhidemine": "$1我个编辑",
+       "rcshowhidemine-show": "显示",
+       "rcshowhidemine-hide": "囥脱",
        "rclinks": "显示来拉上个 $2 日里向个最近 $1 趟改动<br />$3",
        "diff": "两样",
        "hist": "历史",
        "minoreditletter": "小",
        "newpageletter": "新",
        "boteditletter": "机",
+       "rc-change-size-new": "更改后有$1字节",
        "newsectionsummary": "/* $1 */ 新段落",
        "rc-enhanced-expand": "显示细节",
        "rc-enhanced-hide": "畀细节囥脱",
-       "recentchangeslinked": "相关变化",
+       "recentchangeslinked": "搭界个改动",
        "recentchangeslinked-feed": "搭界个改动",
        "recentchangeslinked-toolbox": "相关变化",
        "recentchangeslinked-title": "搭“$1”有关个改动",
        "lockmanager-notlocked": "“$1”朆鎖牢,嘸處開鎖。",
        "img-auth-nofile": "“$1”文件嘸。",
        "upload-curl-error6": "URL走弗進。",
+       "license-header": "授权协议",
        "listfiles_search_for": "寻图片名字:",
        "imgfile": "源文件",
        "listfiles": "文件列表",
        "nolinkstoimage": "呒有页链到箇文件。",
        "linkstoimage-redirect": "$1(文件轉戳到)$2",
        "sharedupload": "箇只文件来源于$1,渠作兴垃拉其它项目当中拨应用。",
-       "sharedupload-desc-here": "箇文件$1里个,作兴会来别个项目里用。\n渠个描述页里所描述个显示如下。",
+       "sharedupload-desc-here": "箇文件$1里个,作兴会畀别个项目使用。\n渠个[$2 描述页]里个说明显示如下。",
        "uploadnewversion-linktext": "上载该文件个新版",
+       "upload-disallowed-here": "你弗可以覆盖伊只文件。",
        "filerevert": "恢复$1",
        "filerevert-legend": "恢复文物",
        "filerevert-comment": "理由:",
        "pager-older-n": "旧$1次",
        "booksources": "书源",
        "booksources-search-legend": "搜索图书来源",
+       "booksources-search": "搜寻",
        "specialloguserlabel": "用戶:",
        "speciallogtitlelabel": "目標(標題要弗用戶):",
        "log": "记录",
        "deletereasonotherlist": "别个理由",
        "rollback": "恢复编辑",
        "rollbacklink": "回退",
+       "rollbacklinkcount": "回退$1届编辑",
        "rollbackfailed": "恢复失败",
        "revertpage": "恢复[[Special:Contributions/$2|$2]] ([[User talk:$2|讲张]])个改动;恢复到[[User:$1|$1]]个上一版本",
        "protectlogpage": "保护日志",
        "undelete-search-submit": "搜尋",
        "namespace": "名字空间:",
        "invert": "反选择",
+       "tooltip-invert": "请选择该框来囥脱指定名字空间(搭有关名字空间,如果你选择)个页面更改",
+       "namespace_association": "有关个名字空间",
+       "tooltip-namespace_association": "选中该复选框可包括搭选定名字空间有关个讨论页或子页面",
        "blanknamespace": "(主)",
-       "contributions": "用户贡献",
+       "contributions": "{{GENDER:$1|用户}}贡献",
        "contributions-title": "$1个贡献",
        "mycontris": "我个贡献",
        "contribsub2": "$1个贡献($2)",
        "allmessagesnotsupportedDB": "'''{{ns:special}}:Allmessages''' 呒处显示,因为 '''$wgUseDatabaseMessages''' 关勒浪。",
        "thumbnail-more": "放大",
        "filemissing": "文件寻弗着哉",
-       "tooltip-pt-userpage": "你侬个ç\94¨æ\88·é¡µ",
-       "tooltip-pt-mytalk": "你侬个讨论页",
-       "tooltip-pt-preferences": "我欢喜个",
+       "tooltip-pt-userpage": "侬个用户页",
+       "tooltip-pt-mytalk": "侬个讨论页",
+       "tooltip-pt-preferences": "侬个设置",
        "tooltip-pt-watchlist": "监控修改页面列表",
-       "tooltip-pt-mycontris": "你侬个贡ç\8c®å\88\97表",
+       "tooltip-pt-mycontris": "侬个贡献列表",
        "tooltip-pt-login": "鼓励大家登录进来,不过也弗是板定要求",
        "tooltip-pt-logout": "登出",
+       "tooltip-pt-createaccount": "建议你建立一个账号并登录,但必过箇弗是板要个",
        "tooltip-ca-talk": "讨论内容页",
        "tooltip-ca-edit": "箇页你侬好编。保存之前望望相起。",
        "tooltip-ca-addsection": "开始新段",
-       "tooltip-ca-viewsource": "箇页受保,你侬好望源代码",
+       "tooltip-ca-viewsource": "箇页受保护,你好望源代码",
        "tooltip-ca-history": "箇页以早个版本",
        "tooltip-ca-protect": "保护箇页",
        "tooltip-ca-delete": "删脱箇页",
        "tooltip-search": "搜寻{{SITENAME}}",
        "tooltip-search-go": "转到页本确切名称,如果存在",
        "tooltip-search-fulltext": "搜寻包含箇星文本个页面",
-       "tooltip-p-logo": "封面",
+       "tooltip-p-logo": "翻到封面",
        "tooltip-n-mainpage": "翻到封面",
        "tooltip-n-mainpage-description": "翻到封面",
        "tooltip-n-portal": "有关箇计划,啥好做,应该哪能做",
        "tooltip-summary": "打进短摘要",
        "interlanguage-link-title": "̩$1 - $2",
        "anonymous": "{{SITENAME}}浪个匿名用户",
+       "simpleantispam-label": "反垃圾检查。\n<strong>覅</strong>加进伊个!",
+       "pageinfo-toolboxlink": "页面信息",
        "deletedrevision": "拨删脱个旧修订 $1",
        "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": "原始文件",
+       "show-big-image-preview": "本预览个尺寸:$1。",
+       "show-big-image-other": "其他{{PLURAL:$2|分辨率}}:$1。",
+       "show-big-image-size": "$1×$2像素",
        "newimages": "新文件陈列室",
        "ilsubmit": "搜寻",
        "bad_image_list": "格式如下:\n\n只列出项目(线开始* )的审议。\n第一个环节上线必须是一个链接到一个坏文件。\n其后的任何链接在同一行被认为是例外情况,即网页的文件,则可能会发生内部。",
        "metadata-help": "箇只文件里向包含有扩展个信息。箇些信息可能是由数码相机或扫描仪垃拉创建或数字化过程中所添加个。\n\n如果此文件个源文件已经修改,一些信息垃拉修改后个文件里向将弗能完全反映出来。",
        "metadata-expand": "显示详细资料",
        "metadata-collapse": "隐藏详细资料",
-       "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",
+       "metadata-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-orientation": "方位",
+       "exif-xresolution": "水平分辨率",
+       "exif-yresolution": "垂直分辨率",
+       "exif-datetime": "文件更改日脚辰光",
+       "exif-make": "照相机厂商",
+       "exif-model": "照相机型号",
+       "exif-software": "使用软件",
        "exif-artist": "作者",
+       "exif-exifversion": "Exif版本",
+       "exif-colorspace": "色彩空间",
+       "exif-datetimeoriginal": "数据生成日脚辰光",
+       "exif-datetimedigitized": "数字化日脚辰光",
+       "exif-orientation-1": "标准",
        "exif-componentsconfiguration-0": "弗存在",
        "exif-subjectdistance-value": "$1米",
        "exif-contrast-2": "高",
        "confirmemail_subject": "{{SITENAME}}电子邮件地址确认",
        "confirmemail_body": "用IP地址$1嗰人(呒数是你侬),徕translatewiki.net里一个账号“$2”建起,用你侬个电子信箱地址。\n\n确认记箇账号是弗是你侬嘅,激活translatewiki.net里嗰电子信功能。用浏览器打开下向嗰链接:\n\n$3\n\n假使你侬*朆*注册过箇账号,揿下向嗰链接取消电子信确认:\n\n$5\n\n确认码会到$4过期。",
        "confirmemail_body_changed": "用IP地址$1嗰人,(呒数是你侬)徕{{SITENAME}}里一个账号“$2”建起,用你侬个电子信箱地址。\n\n确认记箇账号是弗是你侬嘅,激活{{SITENAME}}里嗰电子信功能。用浏览器打开下向嗰链接:\n\n$3\n\n假使你侬*朆*注册过箇账号,揿下向嗰链接取消电子信确认:\n\n$5\n\n确认码会到$4过期。",
-       "scarytranscludetoolong": "[对呒起,URL太长了]",
+       "scarytranscludetoolong": "[URL忒长]",
        "confirmrecreate": "用户[[User:$1|$1]] ([[User talk:$1|讲张]])勒拉倷开始编辑该页面之后拿俚删脱,理由是: : ''$2'' 请拿定章程,倷阿是真个要重建该页面。",
        "confirm_purge_button": "确定",
        "comma-separator": "、",
        "table_pager_next": "下页",
        "table_pager_prev": "上页",
        "table_pager_first": "头一页",
-       "table_pager_last": "末一页",
+       "table_pager_last": "末一页",
        "table_pager_limit": "显示 $1 条每页",
        "autoredircomment": "重定向页面至[[$1]]",
        "autosumm-new": "新页面:$1",
        "watchlisttools-view": "望相关修改",
        "watchlisttools-edit": "望搭编关注表",
        "watchlisttools-raw": "编写原始关注表",
+       "signature": "[[{{ns:user}}:$1|$2]]([[{{ns:user_talk}}:$1|讨论]])",
        "version": "版本",
        "specialpages": "特殊页",
+       "tag-filter": "[[Special:Tags|标签]]过滤器:",
+       "tag-list-wrapper": "([[Special:Tags|$1个标签]]:$2)",
        "tags-active-yes": "好",
        "tags-active-no": "弗",
        "dberr-info-hidden": "(數據庫服務器連弗上)",
+       "logentry-delete-delete": "$1{{GENDER:$2|删除}}页面$3",
        "revdelete-restricted": "已将限制应用到管理员",
        "revdelete-unrestricted": "已移除对管理员个限制",
+       "logentry-move-move": "$1{{GENDER:$2|捅荡}}页面$3到$4",
+       "logentry-newusers-create": "用户账号$1畀{{GENDER:$2|创建}}",
+       "logentry-upload-upload": "$1{{GENDER:$2|上传}}$3",
        "rightsnone": "(呒)",
-       "revdelete-summary": "编辑摘要"
+       "revdelete-summary": "编辑摘要",
+       "searchsuggest-search": "搜寻"
 }
index 1a3764c..d17bf77 100644 (file)
@@ -13,7 +13,8 @@
                        "Reedy",
                        "გიორგიმელა",
                        "아라",
-                       "Silovan"
+                       "Silovan",
+                       "David1010"
                ]
        },
        "tog-underline": "რცხუეფიშ ათოღაზუა:",
        "tog-hidepatrolled": "დოფულით პატრულირებულ რედაქტირაფეფი ასერდეიან თირაფეფს",
        "tog-newpageshidepatrolled": "დოფულით პატრულირებულ ხასჷლეფი ახალ ხასჷლეფიშ ერკებულშე",
        "tog-extendwatchlist": "გოფაჩი ოთოჸუჯე ერკებული არძო თირაფეფიშ ოძირაფალო, ამარდეიან თირაფეფიშ მეკოროცხილო",
-       "tog-usenewrc": "á\83\92á\83\94á\83\92á\83\9bá\83\98á\83 á\83\98á\83\9cá\83\94 á\83\94á\83\99á\83\9dá\83\9cá\83\98á\83\90 á\83\97á\83\98á\83 á\83\90á\83¤á\83\94á\83¤á\83\98á\83¨ á\83£á\83¯á\83\92á\83£á\83¨á\83\98 á\83\94á\83 á\83\99á\83\94á\83\91á\83£á\83\9aá\83\98 (á\83\98á\83\97á\83®á\83\98á\83\9cá\83¡ JavaScript-á\83\98á\83¡)",
+       "tog-usenewrc": "á\83\91á\83\9dá\83\9aá\83\9d á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\94á\83\91á\83\98á\83¡ á\83\93á\83\90 á\83\99á\83\9dá\83\9cá\83¢á\83 á\83\9dá\83\9aá\83\98á\83¡ á\83¡á\83\98á\83\98á\83¡ á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\94á\83\91á\83\98á\83¡ á\83\93á\83\90á\83¯á\83\92á\83£á\83¤á\83\94á\83\91á\83\90",
        "tog-numberheadings": "ავტომატურო დონომერე დუდჯოხოეფი",
-       "tog-showtoolbar": "რედაქტირაფაშ ხეჭკუდეფიშ ძირაფა (ითხინს JavaScript-ის)",
-       "tog-editondblclick": "ხასჷლეფიშ რედაქტირაფა ჟირმანგი გეწკანტაფათ (ითხინს JavaScript-ის)",
-       "tog-editsectiononrightclick": "ჩართი სექციაშ რედაქტირაფა სექციაშ ჯოხოშა მარძგვან გეწკანტაფათ (ითხინს JavaScript-ის)\"",
+       "tog-showtoolbar": "რედაქტირაფაშ ხეჭკუდეფიშ ძირაფა",
+       "tog-editondblclick": "ხასჷლეფიშ რედაქტირაფა ჟირმანგი გეწკანტაფათ",
+       "tog-editsectiononrightclick": "ჩართი სექციაშ რედაქტირაფა სექციაშ ჯოხოშა მარძგვან გეწკანტაფათ",
        "tog-watchcreations": "ქიგუძინი ჩქიმ კონტროლიშ ერკბულს ჩქიმ დუნარცხუა ხასჷლეფი დო ეხარგელი ფაილეფი",
+       "tog-watchdefault": "დაამატე ჩემი კონტროლის სიას ჩემს მიერ რედაქტირებული გვერდები და ფაილები",
+       "tog-watchmoves": "ჩასვი გვერდები და ფაილები, რომლებიც მე გადამაქვს, ჩემს კონტროლის სიაში",
+       "tog-watchdeletion": "ჩასვი გვერდები და ფაილები, რომლებსაც მე ვშლი, ჩემს კონტროლის სიაში",
+       "tog-watchrollback": "დაამატე ჩემი კონტროლის სიას გვერდები, სადაც მე სწრაფი გაუქმება განვახორციელე",
+       "tog-minordefault": "ყველა რედაქტირების მონიშვნა, როგორც უმნიშვნელო, უპირობოდ",
+       "tog-previewontop": "წინასწარი გადახედვის ჩვენება რედაქტირების დაფამდე",
+       "tog-previewonfirst": "წინასწარი ჩვენება პირველივე რედაქტირებაზე",
+       "tog-enotifwatchlistpages": "მომწერე ელ. ფოსტით, როცა გვერდი ან ფაილი, რომელსაც მე ვაკონტროლებ, შეიცვლება",
+       "tog-enotifusertalkpages": "მომწერე თუ ჩემი განხილვის გვერდი შეიცვლება",
+       "tog-enotifminoredits": "მომწერე ასევე გვერდებისა და ფაილების მცირე რედაქტირებისას",
+       "tog-enotifrevealaddr": "აჩვენე ჩემი ელ-ფოსტის მისამართი შეტყობინების წერილებში",
        "tog-shownumberswatching": "მაკონტროლაფარი მახვარებუეფიშ მუდანობაშ ძირაფა",
+       "tog-oldsig": "არსებული ხელმოწერა:",
+       "tog-fancysig": "საკუთარი ვიკიფორმატიანი ხელმოწერა (ავტომატური ბმულის გარეშე)",
+       "tog-uselivepreview": "გამოიყენეთ სწრაფი წინასწარი გადახედვა",
+       "tog-forceeditsummary": "გამაფრთხილე ცარიელი რედაქტირების რეზიუმეს შემთხვევაში",
+       "tog-watchlisthideown": "დამალე ჩემი რედაქტირება კონტროლის სიაში",
+       "tog-watchlisthidebots": "დამალე რობოტის რედაქტირება კონტროლის სიაში",
+       "tog-watchlisthideminor": "დამალეთ საკონტროლო სიიდან მცირე რედაქტირებები",
+       "tog-watchlisthideliu": "დამალეთ დარეგისტრირებულ მოხმარებელთა ცვლილებები ჩემი კონტროლის სიიდან",
+       "tog-watchlisthideanons": "დამალეთ ანონიმურ მომხმარებელთა შესწორებები ჩემი კონტროლის სიიდან",
+       "tog-watchlisthidepatrolled": "დამალეთ საკონტროლო სიიდან პატრულირებული რედაქტირებები",
+       "tog-ccmeonemails": "გამომიგზავნე ელფოსტების ასლები, რომლებსაც მე სხვა მომხმარებლებს ვუგზავნი",
+       "tog-diffonly": "დამალე გვერდის შიგთავსი ცვლილების ქვევით",
        "tog-showhiddencats": "ქაძირი ფულირი კატეგორიეფი",
+       "tog-norollbackdiff": "გაუქმებისას გამოტოვეთ ცვლილებათა განსხვავება",
+       "tog-useeditwarning": "გამაფრთხილე, როდესაც დავტოვებ რედაქტირებად გვერდს, დაუმახსოვრებელი ცვლილებებით",
+       "tog-prefershttps": "უსაფრთხო კავშირის მუდამ გამოყენება ავტორიზაციის შემდეგ",
        "underline-always": "ირო",
        "underline-never": "შურო",
+       "underline-default": "დამოკიდებული მომხმარებელზე ან ბრაუზერის არჩევანზე",
+       "editfont-style": "რედაქტირების არეალის შრიფტის ტიპი:",
+       "editfont-default": "ბრაუზერის უპირობო არჩევანი",
+       "editfont-monospace": "მონოშირული შრიფტი",
        "editfont-sansserif": "შრიფტი სანს-სერიფი",
        "editfont-serif": "შრიფტი სერიფი",
        "sunday": "ჟაშხა",
        "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",
        "pagecategories": "{{PLURAL:$1|კატეგორია|კატეგორიეფი}}",
        "category_header": "სტატიეფი \"$1\"  კატეგორიას",
        "subcategories": "გიმენკატეგორიეფი",
        "hidden-categories": "{{PLURAL:$1|ფულირი კატეგორია|ფულირი კატეგორიეფი}}",
        "hidden-category-category": "ფულირი კატეგორიეფი",
        "category-subcat-count": "{{PLURAL:$2|თე კატეგორიას ოკათჷ ხვალე ათე გიმენკატეგორია.|თე კატეგორიას მოჩამილი რე $1 გიმენკატეგორია $2-შე.}}",
+       "category-subcat-count-limited": "ეს კატეგორია მოიცავს შემდეგ $1 ქვეკატეგორიას.",
        "category-article-count": "{{PLURAL:$2|ათე კატეგორია იკათუანს ხვალე გეჸვენჯ ხასილას.|გეჸვენჯ {{PLURAL:$1|ხასილა რე|$1 ხასილეფ რე}} თე კატეგორიას, გვალო $2–შე.}}",
+       "category-article-count-limited": "შემდეგი {{PLURAL:$1|გვერდი არის|$1 გვერდები არიან}} მოცემულ კატეგორიაში",
        "category-file-count": "{{PLURAL:$2|თე კატეგორიას ხვალე ათე გეჸვენჯი ფაილი რე.|თე კატეგორიას რე გეჸვენჯი $1, ართოიანო $2-შე.}}",
+       "category-file-count-limited": "შემდეგი {{PLURAL:$1|ფაილი|$1 ფაილები}} ამ კატეგორიაშია.",
        "listingcontinuesabbrev": "გინძარ.",
+       "index-category": "ხასჷლეფი ინდექსირაფაშ",
        "noindex-category": "ხასჷლეფი ინდექსირაფაშ უმუშო",
+       "broken-file-category": "გვერდები ფაილების არასწორი ბმულებით",
        "about": "-შენი",
        "article": "სტატია",
        "newwindow": "ინწყუმუ ახალი ოჭკორიეს",
        "cancel": "გოუქვაფა",
        "moredotdotdot": "სრულო...",
-       "mypage": "ჩქიმი ხასჷლა",
-       "mytalk": "ჩქიმი სხუნუა",
+       "morenotlisted": "ეს არასრული სიაა.",
+       "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}} ხასჷლაშე",
+       "tagline": "{{SITENAME}}-შე",
        "help": "მოხვარა",
        "search": "გორუა",
        "searchbutton": "გორუა",
        "searcharticle": "გინულა",
        "history": "ხასჷლაშ ისტორია",
        "history_short": "ისტორია",
+       "updatedmarker": "განახლდა ჩემი ბოლო შემოსვლის შემდეგ",
        "printableversion": "ობეშტალი ვერსია",
        "permalink": "პერმანენტული რცხუ",
        "print": "დობეშტი",
        "view": "ძირაფა",
        "view-foreign": "ქოძირით $1-ის",
        "edit": "რედაქტირაფა",
+       "edit-local": "ლოკალური აღწერის რედაქტირება",
        "create": "დორსხუაფა",
        "create-local": "ლოკალურ ეჭარუაშ გეძინა",
        "editthispage": "ხასჷლაშ რედაქტირაფა",
+       "create-this-page": "ამ გვერდის შექმნა",
        "delete": "ლასუა",
        "deletethispage": "დოლასი თე ხასჷლა",
+       "undeletethispage": "ამ გვერდის აღდგენა",
+       "undelete_short": "გააუქმე წაშლა {{PLURAL:$1|ერთი რედაქტირება|$1 რედაქტირება}}",
+       "viewdeleted_short": "{{PLURAL:$1|წაშლილი რედაქტირების|$1 წაშლილი რედაქტირებების}} ხილვა",
        "protect": "დოთხილე",
        "protect_change": "თირუა",
+       "protectthispage": "ხასილაშ თხილუა",
+       "unprotect": "დაცვის შეცვლა",
+       "unprotectthispage": "შეცვალე ამ გვერდის დაცვის დონე",
        "newpage": "ახალი ხასჷლა",
        "talkpage": "მოჩამილი ხასჷლაშ სხუნუა",
        "talkpagelinktext": "სხუნუა",
        "specialpage": "გჷშაკერძაფილი ხასჷლა",
        "personaltools": "პერსონალური ხეჭკუდეფი",
+       "articlepage": "სტატიის ნახვა",
        "talk": "სხუნუა",
        "views": "ძირაფეფი",
        "toolbox": "ხეჭკუდეფი",
+       "userpage": "მახვარებუშ ხასჷლაშ ძირაფა",
+       "projectpage": "პროექტიშ ხასჷლაშ ძირაფა",
+       "imagepage": "ფაილიშ ხასჷლაშ ძირაფა",
+       "mediawikipage": "გადახედე შეტყობინების გვერდს",
+       "templatepage": "გადახედე თარგის გვერდს",
+       "viewhelppage": "ქოძირეთ დახვარებაშ გვერდ",
+       "categorypage": "ხასილაშ კატეგორიაშ ძირაფა",
+       "viewtalkpage": "იხილე დისკუსია",
        "otherlanguages": "შხვა ნინეფს",
        "redirectedfrom": "(გინოწურაფილი რე $1-შე)",
        "redirectpagesub": "ხასჷლაშა გინოწურაფა",
        "redirectto": "გინოღალა:",
        "lastmodifiedat": "თე ხასჷლაქ ეკონიას გეახალუ $2-ს, $1-ის.",
+       "viewcount": "ეს გვერდი შემოწმდა {{PLURAL:$1|ერთხელ|$1-ჯერ}}.",
+       "protectedpage": "დაბლოკილი გვერდი",
        "jumpto": "გეგნორთი:",
        "jumptonavigation": "ნავიგაცია",
        "jumptosearch": "გორუა",
+       "view-pool-error": "უკაცრავად, მაგრამ სერვერები გადატვირთულია.\nშემოსულია ამ გვერდის სანახავად ძალიან ბევრი მოთხოვნა.\nგთხოვთ, დაელოდეთ და გაიმერეთ მოთხოვნა ცოტა მოგვიანებით.\n\n$1",
+       "generic-pool-error": "უკაცრავად, მაგრამ სერვერები გადატვირთულია.\nბევრი მომხმარებელი ცდილობს ამ რესურსის ნახვას.\nგთხოვთ, დაელოდეთ და გაიმერეთ მოთხოვნა ცოტა მოგვიანებით.",
+       "pool-timeout": "ბლოკირების ლოდინის დრო ამოიწურა",
+       "pool-queuefull": "მოთხოვნების დამგროვებელი სავსეა",
+       "pool-errorunknown": "უცნობი შეცდომა",
+       "pool-servererror": "პულის მრიცხველის მომსახურება მიუწვდომელია ($1).",
+       "poolcounter-usage-error": "გამოყენების შეცდომა: $1",
        "aboutsite": "{{SITENAME}}-შენი",
        "aboutpage": "Project:შენი",
        "copyright": "დინორე მიწორინაფილი რე $1–იშ ჯოხოთ.",
        "disclaimers": "გამამინჯალაშ ვარება",
        "disclaimerpage": "Project:გამამინჯალაშ ვარება",
        "edithelp": "მოხვარა რედაქტირაფას",
+       "helppage-top-gethelp": "დახმარება",
        "mainpage": "დუდხასჷლა",
        "mainpage-description": "დუდხასჷლა",
+       "policy-url": "Project:პოლიტიკა",
        "portal": "ჯარალუაშ ხასჷლეფი",
        "portal-url": "Project:ჯარალუაშ ხასჷლეფი",
        "privacy": "ანონიმურობაშ პოლიტიკა",
        "privacypage": "Project:ანონიმურობაშ პოლიტიკა",
        "badaccess": "ალობაშ ჩილათა",
+       "badaccess-group0": "თქვენ არ გაქვთ მოთხოვნილი მოქმედების შესრულების უფლება",
+       "badaccess-groups": "მოთხოვნილი მოქმედების შესრულება შეუძლიათ მხოლოდ {{PLURAL:$2|შემდეგ ჯგუფში|შემდეგი ჯგუფებიდან ერთ-ერთში}} მყოფ მომხმარებლებს: $1.",
+       "versionrequired": "საჭიროა მედიავიკის ვერსია $1",
+       "versionrequiredtext": "მოცემული გვერდის გამოსაყენებლად საჭიროა მედიავიკის ვერსია $1. იხილეთ [[Special:Version|სპეციალური:ვერსია]]",
        "ok": "ჯგირი",
        "retrievedfrom": "გორილ რე \"$1\"-იშე",
        "youhavenewmessages": "თქვა გიღუნა $1 ($2).",
+       "youhavenewmessagesfromusers": "თქვენ გაქვთ $1 {{PLURAL:$3|სხვა მომხმარებლისგან|$3 მომხმარებლებისგან}} ($2).",
+       "youhavenewmessagesmanyusers": "თქვენ გაქვთ $1 ბევრი მომხმარებლისგან ($2).",
+       "newmessageslinkplural": "{{PLURAL:$1|ახალი შეტყობინება|999=ახალი შეტყობინება}}",
+       "newmessagesdifflinkplural": "ბოლო {{PLURAL:$1|ცვლილება|999=ცვლილება}}",
+       "youhavenewmessagesmulti": "თქვენ გაქვთ ახალი შეტყობინება $1-ზე",
        "editsection": "რედაქტირაფა",
        "editold": "რედაქტირაფა",
        "viewsourceold": "წყუშ ძირაფა",
        "toc": "დინორე",
        "showtoc": "ძირაფა",
        "hidetoc": "ტყობინაფა",
+       "collapsible-collapse": "ჩაკეცვა",
+       "collapsible-expand": "გაშლა",
+       "confirmable-confirm": "{{GENDER:$1|დარწმუნებული}} ხართ?",
+       "confirmable-yes": "დიახ",
+       "confirmable-no": "არა",
+       "thisisdeleted": "$1-ის ჩვენება თუ აღდგენა?",
+       "viewdeleted": "იხილე $1?",
+       "restorelink": "{{PLURAL:$1|ერთი წაშლილი რედაქტირება|$1 წაშლილი რედაქტირება}}",
+       "feedlinks": "არხი:",
+       "feed-invalid": "არასწორი არხი ჩაწერისთვის",
+       "feed-unavailable": "სინდიკაციის კენტები მიუწვდომელია",
        "site-rss-feed": "$1-იშ RSS არხი",
        "site-atom-feed": "$1-იშ RSS არხი",
        "page-rss-feed": "$1-იშ  არხი  RSS",
        "page-atom-feed": "\"$1\"–იშ არხი ატომი",
        "red-link-title": "$1 (ხასჷლა ვა რე)",
+       "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": "მოქმედება არ არსებობს",
+       "nosuchactiontext": "URL-ის მიერ მითითებული მოქმედება მცდარია.\nშესაძლოა შეცდომით აკრიფეთ URL, ან არასწორ ბმულზე გადახვედით.\nაგრეთვე შესაძლოა, {{SITENAME}}-ს მიერ გამოყენებულ პროგრამულ უზრუნველყოფაში იყოს შეცდომა.",
        "nosuchspecialpage": "თეჯგუა გჷშაკერძაფილი ხასჷლეფი ვარსებენს",
+       "nospecialpagetext": "<strong>თქვენ არასწორი სპეციალური გვერდი მოითხოვეთ.</strong>\n\nსწორი სპეციალური გვერდების სია შეგიძლიათ იხილოთ აქ: [[Special:SpecialPages|{{int:specialpages}}]].",
+       "error": "შეცდომა",
+       "databaseerror": "შეცდომა მონაცემთა ბაზაში",
+       "databaseerror-text": "მონაცემთა ბაზაში შეცდომა მოხდა.\nეს შესაძლოა პროგრამული უზრუნველყოფის შეცდომაზე მიუთითებდეს.",
+       "databaseerror-textcl": "მონაცემთა ბაზაში შეცდომა მოხდა.",
+       "databaseerror-query": "მოთხოვნა: $1",
+       "databaseerror-function": "ფუნქცია: $1",
+       "databaseerror-error": "შეცდომა: $1",
+       "laggedslavemode": "ყურადღება: გვერდი შესაძლოა არ შეიცავდეს ბოლო ცვლილებებს.",
+       "readonly": "მონაცემთა ბაზა დახურულია",
+       "enterlockreason": "მიუთიეთ ბლოკირების მიზეზი და ხანგრძლივობის ვადა",
+       "readonlytext": "მონაცემთა ბაზა ამჟამად დახურული ახალი რედაქტირებისთვის და სხვა ცვლილებებისთვის, სავარაუდოდ პერიოდული ბაზის გამართვის სამუშაოების გამო, რის შემდეგაც ის კვლავ ნორმალურ ფუნქციას დაუბრუნდება.\n\nადმინისტრატორმა, რომელმაც ის დაბლოკა, შემდეგი მიზეზი მოიყვანა: $1",
        "missing-article": "სისტემას ვაძირუ მოგორაფილი ხასჷლაშ ტექსტიქ მუნაჩმეფიშ ბაზას, ჯოხოთ «$1» $2. \n\nთენა, მუჭოთ წესინი, მოხვადუ თი ბორჯის, მუჟამს მახვარებუ გიაჸუნუუ თი ხასჷლაშ ისტორიაშ რცხუს, ნამუთ ლასირი რე. \nთენა თაშ ვა რე-და, შილებე თქვა ძირით ჩილათა სისტემაშ კოდის. \nქორთხიინთ, ქატყვინუათ თენა [[Special:ListUsers/sysop|administrator]]–ს, URL–შ მეწურაფათ.",
        "missingarticle-rev": "(რედაქტირაფა#: $1)",
+       "missingarticle-diff": "(ცვლილება: $1, $2)",
+       "readonly_lag": "მონაცემთა ბაზა ავტომატურად დაიხურა, სანამ შვილობილი ბაზის სერვერები მთავარ ბაზასთან სინქრონიზაციას ახდენს",
+       "internalerror": "შიდა შეცდომა",
+       "internalerror_info": "შიდა შეცდომა: $1",
+       "internalerror-fatal-exception": "ფატალური გამონაკლისის ტიპი „$1“",
+       "filecopyerror": "„$1“ ფაილის „$2“-ზე კოპირება ვერ მოხერხდა.",
+       "filerenameerror": "შეუძლებელია ფაილის „$1“ სათაურის შეცვლა სახელწოდებით „$2“.",
+       "filedeleteerror": "ფაილის „$1“ წაშლა ვერ მოხერხდა.",
+       "directorycreateerror": "დირექტორიის „$1“ შექმნა შეუძლებელია.",
+       "directoryreadonlyerror": "კატალოგი „$1“ მხოლოდ წასაკითხად არის ხელმისაწვდომი.",
+       "directorynotreadableerror": "კატალოგი „$1“ არ იკითხება.",
+       "filenotfound": "ფაილის „$1“ მოძიება ვერ მოხერხდა.",
+       "unexpected": "გაუთვალისწინებელი სიდიდე: „$1“=„$2“.",
+       "formerror": "შეცდომა: ფორმის გაგზავნა ვერ მოხერხდა.",
+       "badarticleerror": "ეს მოქმედება ვერ შესრულდება ამ გვერდზე.",
+       "cannotdelete": "გვერდის ან ფაილის „$1“ წაშლა შეუძლებელია.\nშესაძლოა, იგი უკვე წაშალა სხვა მომხმარებელმა.",
+       "cannotdelete-title": "გვერდის „$1“ წაშლა შეუძლებელია",
+       "delete-hook-aborted": "შესწორება გაუქმებულია გადამჭერით.\nდამატებითი ახსნა არ ჩაწერილა.",
+       "no-null-revision": "ვერ მოხერხდა ახალი ნულოვანი ცვლილების შექმნა გვერდისათვის „$1“",
        "badtitle": "ცაგანა დუდჯოხო",
        "badtitletext": "მოთხილ ხასილაშ ჯოხო ჩილათირ რდუ, ვარა ჩოლიერ, ვარა ხოლო გოხოლუდეს ჩილათირო გინორცხუაფილ ინტერ–ნინა ვარა ინტერ–წიკი ჯოხო. \nთენა შილებე იკათუანდას ართ ვარა უმოს თიშნერ ნიშანს ნამუშ გუმორინაფა ჯოხოს ვა შილებე.",
+       "title-invalid-empty": "მოთხოვნილი გვერდის სათაური ცარიელია ან მხოლოდ სახელთა სივრცის სახელს შეიცავს.",
+       "title-invalid-utf8": "მოთხოვნილი გვერდის სათაური არასწორ UTF-8 თანმიმდევრობას შეიცავს.",
+       "title-invalid-interwiki": "გვერდის მოთხოვნილი სათაური ენათშორის ბმულს შეიცავს, რომლის სათაურში გამოყენებაც არ შეიძლება.",
+       "title-invalid-talk-namespace": "მოთხოვნილი გვერდის სახელწოდება მითითებულია განხილვის გვერდზე, რომელიც არ შეიძლება არსებობდეს",
+       "title-invalid-characters": "მოთხოვნილი გვერდის სახელწოდება შეიცავს დაუშვებელ სიმბოლოებს «$1».",
+       "title-invalid-relative": "სათაურს აქვს შეფარდებითი გზა. გვერდების სათაურები შეფარდებითი გზით (/,../) წარმოადგენს გამოუსადეგარს, რადგან ისინი ხშირად მიუწვდომელია, როდესაც მუშავდება მომხმარებლის ბრაუზერით.",
+       "title-invalid-magic-tilde": "მოტხოვნილი გვერდის სათაური შეიცავს ტილდების დაუშვებელ თანმიმდევრობას (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "გვერდის მოთხოვნილი სათაური ძალიან გრძელია. ის უნდა იყოს არა ნაკლებ $1 {{PLURAL:$1|ბაიტისა|ბაიტისა}}, utf-8 კოდირებაში",
+       "title-invalid-leading-colon": "მოთხოვნილი სახელწოდების გვერდი შეიცავს დაუშვებელ ორწეტილს დასაწყისში.",
+       "perfcached": "შემდეგი მონაცემები აღებულია ქეშიდან და შესაძლოა არ შეიცავდენენ ბოლო ცვლილებებს. ქეშში ინახება მაქსიმუმ $1 {{PLURAL:$1|ჩანაწერი}}.",
+       "perfcachedts": "შემდეგი მონაცემები აღებულია ქეშიდან, უკანასკნელად ის განახლდა $1. ქეშში ინახება მაქსიმუმ $4 {{PLURAL:$4|ჩანაწერი}}.",
+       "querypage-no-updates": "ამ გვერდის განახლება გათიშულია.\nწარმოდგენილი მონაცემები არ განახლდება.",
        "viewsource": "ქოძირი წყუ",
+       "viewsource-title": "იხილეთ წყარო გვერდისთვის $1",
+       "actionthrottled": "სიჩქარის შეზღუდვა.",
+       "actionthrottledtext": "სპამთან ბრძოლასთან დაკავშირებით აკრძალულია შემდეგი მონაცემების მრავალჯერ გამეორება. გთხოვთ გაიმეოროთ იგი მოგვიანებით.",
+       "protectedpagetext": "ეს გვერდი დაბლოკილია რედაქტირებისათვის ან სხვა მოქმედებისათვის.",
        "viewsourcetext": "თქვა შეილებუნა ქოძირათ თე ხასჷლაშ დაჭყაფური ფაილი დო ქუდარსხუათ თიშ მანგი:",
+       "viewyourtext": "თქვენ შეგიძლიათ იხილოთ და დააკოპიროთ  '''თქვენი რედაქტირებების''' საწყისი ტექსტი ამ გვერდზე:",
+       "protectedinterface": "ეს გვერდი წარმოადგენს ტექსტურ ინტერფეისს პროგრამული უზრუნველყოფისათვის და დაცულია ვანდალიზმის აღკვეთის მიზნით.",
+       "editinginterface": "<strong>ყურადღება:</strong> თქვენ არედაქტირებთ გვერდს, რომელიც პროგრამის ინტერფეისის ტექსტს შეიცავს. \nამ გვერდზე განხორციელებული რედაქტირება გამოიწვევს ამ ვიკის სხვა მომხმარებელთა სამუშაო ინტერფეისის შეცვლასაც.",
+       "translateinterface": "თარგმანების ყველა ვიკიში დასამატებლად ან შესაცვლელად, გთხოვთ გამოიყენოთ მედიავიკებისლოკალიზაციის პროექტი [//translatewiki.net/ translatewiki.net].",
+       "cascadeprotected": "ეს გვერდი რედაქტირებისგან დაცულია, რადგან იგი ჩართულია შემდეგ {{PLURAL:$1|გვერდში, რომლის |გვერდებში, რომელთა}} დასაცავადაც ჩართულია პარამეტრი \"იერარქიული\":\n$2",
+       "namespaceprotected": "თქვენ არ გაქვთ '''$1''' სახელთა სივრცეში გვერდების რედაქტირების უფლება.",
+       "customcssprotected": "თქვენ არ გაქვთ ამ CSS გვერდის რედაქტირების უფლება, ვინაიდან ის სხვა მომხმარებლის პირად კონფიგურაციას შეიცავს.",
+       "customjsprotected": "თქვენ არ გაქვთ ამ JavaScript გვერდის რედაქტირების უფლება, ვინაიდან ის სხვა მომხმარებლის პირად კონფიგურაციას შეიცავს.",
+       "mycustomcssprotected": "თქვენ არ გაქვთ ამ CSS-გვერდის რედაქტირების უფლება.",
+       "mycustomjsprotected": "თქვენ არ გაქვთ ამ JavaScript-გვერდის რედაქტირების უფლება.",
+       "myprivateinfoprotected": "თქვენ არ გაქვთ თქვენი პირადი ინფორმაციის შეცვლის ნებართვა.",
+       "mypreferencesprotected": "თქვენ არ გაქვთ თქვენი კონფიგურაციის შეცვლის ნებართვა.",
+       "ns-specialprotected": "გვერდების რედაქტირება სახელთა სივრცეში შეუძლებელია.",
+       "titleprotected": "შემდეგი გვერდის შექმნა აკრძალულია მომხმარებელ [[User:$1|$1]]-ს მიერ.\nმოცემულია შემდეგი ახსნა: „<em>$2</em>“.",
+       "filereadonlyerror": "ფაილი \"$1\" შეცვლა ვერ ხერხდება, რადგანაც ფაილის საცავი \"$2\" მხოლოდ კითხვის რეჟიმშია.\n\nადმინისტრატორი რომელმაც ის დაბლოკა მიუთითა შემდეგი მიზეზი: \"$3\".",
+       "invalidtitle-knownnamespace": "დაუშვებელი სათაური სახელთა სივრცე \"$2\" და ტექსტი \"$3\"-თან",
+       "invalidtitle-unknownnamespace": "დაუშვებელი სათაური უცნობი სახელთა სივრცის ნომერი $1 და ტექსტი \"$2\"-ით",
+       "exception-nologin": "შესვლა არ განხორციელდა",
+       "exception-nologin-text": "ამ გვერდზე წვდომისათვის ან მოქმედებისთვის საჭიროა სისტემაში შესვლა.",
+       "exception-nologin-text-manual": "აუცილებელია $1, რათა იყოს წვდომა ამ გვერდთან ან მოქმედებასთან.",
+       "virus-badscanner": "შეცდომა. ვირუსთა უცნობი სკანერი: ''$1''",
+       "virus-scanfailed": "სკანირების შეცდომა  (კოდი $1)",
+       "virus-unknownscanner": "უცნობი ანტივირუსი:",
+       "logouttext": "<strong>თქვენ ამჟამად გასული ხართ სისტემიდან.</strong>\n\nზოგიერთმა გვერდმა შესაძლოა ისევ ისე გააგრძელოს ჩვენება თითქოს თქვენ ჯერ კიდევ სისტემაში იყოთ. ამის მოსაგვარებლად საჭიროა თქვენი ბრაუზერის მეხსიერების გაწმენდა.",
+       "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-yourpasswordagain-ph": "ხოლო ართშა გენშიონით პაროლი",
        "remembermypassword": "ქჷგიშინი ჩქიმი მიშულა თე ბრაუზერს (მაქსიმუმ $1 დღას)",
        "userlogin-remembermypassword": "ქუდომტე მიშულირო",
+       "userlogin-signwithsecure": "უსაფრთხო კავშირის გამოყენება",
        "yourdomainname": "თქვან დომენ",
+       "password-change-forbidden": "თქვენ არ შეგიძლიათ ამ ვიკიში პაროლის შეცვლა.",
+       "externaldberror": "საგარეო მონაცემთა ბაზაში აუტენტიფიკაციის შეცდომაა, ან თქვენ არ გაქვთ საკმარისი უფლებები საგარეო ანგარიშში ცვლილებების შესატანად.",
        "login": "მიშულა",
        "nav-login-createaccount": "მიშულა/ანგარიშიშ გონწყუმა",
        "userlogin": "მიშულა/ანგარიშიშ გონწყუმა",
+       "userloginnocreate": "მიშულა",
        "logout": "გიშულა",
        "userlogout": "გიშულა",
+       "notloggedin": "შესვლა არ განხორციელდა",
        "userlogin-noaccount": "ვაიღჷნანო ანგარიში?",
        "userlogin-joinproject": "ქაკათით {{SITENAME}}",
        "nologin": "დიორდე ვარეთო რეგისტრირებული? $1.",
        "userlogin-resetlink": "გუგოჭყორდესო მიშაულარო საჭირო ინფორმაციაქ?",
        "userlogin-resetpassword-link": "დუგოჭყორდესო პაროლქ?",
        "userlogin-helplink2": "მოხვარა:მიშულა",
+       "userlogin-loggedin": "თქვენ უკვე შეხვედით როგორც {{GENDER:$1|$1}}.\nგამოიყენეთ ფორმა ქვემოთ, რათა შეხვიდეთ სხვა ანგარიშიდან.",
+       "userlogin-createanother": "გონწყით თქვენ ანგარიში",
+       "createacct-emailrequired": "ელ. ფოსტის მისამართი",
        "createacct-emailoptional": "ელ. ფოსტაშ ოწურაფუ (ვა რე უციო)",
        "createacct-email-ph": "გენშიონით თქვანი ელ. ფოსტაშ ოწურაფუ",
+       "createacct-another-email-ph": "გენშიონით თქვანი ელ. ფოსტაშ ოწურაფუ",
+       "createaccountmail": "გამოიყენეთ შემთხვევითობის მეთოდით შერჩეული დროებითი პაროლი და გააგზავნეთ მითითებულ ელ.ფოსტის მისამართზე",
+       "createacct-realname": "ნამდვილი სახელი (არააუცილებელი)",
+       "createaccountreason": "მიზეზი:",
+       "createacct-reason": "მიზეზი",
+       "createacct-reason-ph": "რატომ ქმნით ახალ ანგარიშს?",
        "createacct-captcha": "თხილუაშ კონტროლი",
        "createacct-imgcaptcha-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|მახვარებუ|მახვარებუ}}",
+       "badretype": "თქვენს მიერ შეყვანილი პაროლები ერთმანეთს არ ემთხვევა.",
+       "userexists": "ეს სახელი უკვე გამოყენებულია.\nგთხოვთ, აირჩიეთ სხვა.",
+       "loginerror": "შეცდომა შესვლაში",
+       "createacct-error": "ანგარიშის შექმნის შეცდომა",
+       "createaccounterror": "$1 ანგარიშის შექმნა ვერ მოხერხდა.",
+       "nocookiesnew": "მომხმარებლის ჩანაწერი შექმნილია, მაგრამ თქვენ არ გაგივლიათ რეგისტრაცია. {{SITENAME}} იყენებს cookies, რომლებიც თქვენს ბრაუზერში გათიშულია. გთხოვთ, აამოქმედოთ ისინი და შემდგომ ხელახლა გაიარეთ რეგისტრაცია.",
+       "nocookieslogin": "{{SITENAME}} მომხმარებლების შესვლისთვის იყენებს \"ქუქის ჩანაწერს\". თქვენ იგი გათიშეთ. გთხოვთ, ჩართოთ ისინი და ხელმეორედ მოსინჯოთ.",
+       "nocookiesfornew": "მომხმარებლის ანგარიში არ შექმნილა, რადგან მისი წყარო ვერ დადასტურდა.\nუზრუნველყოფილი უნდა იყოს ჭდეების აქტიურობა. შემდეგ განაახლეთ გვერდი და სცადეთ ხელახლა",
+       "noname": "თქვენს მიერ მითითებული მომხმარებლის სახელი ქმედითი არ არის.",
+       "loginsuccesstitle": "სისტემაში შესვლა განხორციელდა.",
        "loginsuccess": "'''ასე მიშულირ რეთ {{SITENAME}}-ს მუჭოთ \"$1\".'''",
+       "nosuchuser": "მომხმარებელი სახელად $1 არ არსებობს.\nმომხმარებელთა სახელები გრძნობადია ასოების რეგისტრამდე..\nშეამოწმეთ სახელის დაწერა ან[[Special:UserLogin/signup|შექმენით ახალი ანგარიში]].",
+       "nosuchusershort": "მომხმარებელი სახელით „$1“ არ არსებობს. შეამოწმეთ მართლწერა.",
        "nouserspecified": "საჭირო რე მახვარებუშ ჯოხოშ მიშაჭარუა.",
-       "mailmypassword": "ახალ პაროლიშ მოჯღონა",
+       "login-userblocked": "ეს მომხმარებელი დაბლოკილია. სისტემაში შესვლა არაა ნებადართული.",
+       "wrongpassword": "პაროლი არასწორად არის შეყვანილი. სცადეთ განმეორებით.",
+       "wrongpasswordempty": "პაროლი არ არის შეყვანილი. სცადეთ განმეორებით.",
+       "passwordtooshort": "შეტანილი პაროლი ძალიან მოკლეა.\nიგი უნდა შეიცავდეს მინიმუმ {{PLURAL:$1|1 სიმბოლოს|$1 სიმბოლოს}}.",
+       "passwordtoolong": "პაროლი არ შეიძლება აღემატებოდეს {{PLURAL:$1|1 სიმბოლო|$1 სიმბოლოები|$1 სიმბოლოს}}.",
+       "password-name-match": "შეტანილი პაროლი უნდა განსხვავდებოდეს მომხმარებლის სახელისგან.",
+       "password-login-forbidden": "ამ მომხმარებლის სახელისა და პაროლის გამოყენება აკრძალულია.",
+       "mailmypassword": "პაროლიშ მოჯღონა",
+       "passwordremindertitle": "ახალი დროებითი პაროლი {{SITENAME}}-თვის",
+       "passwordremindertext": "ვიღაცამ (შესაძლოა თქვენ, IP მისამართით $1) მოითხოვა\nახალი პაროლის გაგზავნა {{SITENAME}}-სთვის ($4).\nდროებითი პაროლი მოხმარებლისთვის „$2“ ამჟამად არის „$3“.\nთუ ეს თქვენი სურვილი იყო, მოგიწევთ სისტემაში შესვლა და ახალი პაროლის შერჩევა.\nთქვენს დროებით პაროლს ვადა გაუვა $5 დღეში.\n\nთუ ეს მოთხოვნა სხვამ გააკეთა ან უკვე გაგახსენდათ თქვენი პაროლი და\nაღარ გსურთ მისი შეცვლა, შეგიძლიათ ყურად არ იღოთ ეს შეტყობინება\nდა გააგრძელოთ ძველი პაროლის გამოყენება.",
        "noemail": "\"$1\" მახვარებუშ ელ-ფოშტა წურაფილი ვარე.",
+       "noemailcreate": "თქვენ უნდა მიუთითოთ ელ-ფოსტის კორექტული მისამართი.",
+       "passwordsent": "ახალი პაროლი გაიგზავნა ელ-ფოსტით მომხმარებელს \"$1\".\nგთხოვთ შეხვიდეთ სისტემაში მისი მიღების შემდეგ.",
+       "blocked-mailpassword": "თქვენი IP მისამართი რედაქტირებისთვის დაბლოკილია, ამიტომ არ შეგიძლიათ პაროლის აღდგენის გამოყენება კონფლიქტის გამო.",
+       "throttled-mailpassword": "პაროლის შეხსენება უკვე გაგზავნილია ბოლო {{PLURAL:$1|საათის|$1 საათის}} განმავლობაში.\nბოროტად გამოყენების თავიდან აცილებისთვის, მხოლოდ ერთი შეხსენება იგზავნება ყოველ {{PLURAL:$1|საათში|$1 საათში}}.",
+       "mailerror": "შეცდომა ფოსტის გაგზავნაში: $1",
+       "acct_creation_throttle_hit": "24 საათის განმავლობაში თქვენი IP-მისამართითან {{PLURAL:$1|შეიქმნა $1 ანგარიში|შეიქმნა $1 ანგარიშები|შეიქმნა $1 ანგარიშის}}, რაც არის აკრძალული დროის ამ მონაკვეთისთის.\nაქედან გამომდინარე თქვენი IP-მისამართის მქონე მომხმარებლები ვეღარ შექმნიან ანგარიშები.",
+       "emailauthenticated": "თქვენი ელ.ფოსტის მისამართი დადასტურებულია $2 $3-ზე.",
+       "emailnotauthenticated": "თქვენი ელ.ფოსტის მისამართი ჯერ არ არის დადასტურებული. \nარცერთი შემდეგი ფუნქციისათვის წერილები არ გამოიგზავნება.",
+       "noemailprefs": "თქვენ არ გაქვთ ელ. ფოსტის მისამართი მითითებული,აღნიშნული ფუნქციები ამის გამო არ დროისთვის შეუძლებელია.",
+       "emailconfirmlink": "გენშიონით თქვანი ელ. ფოსტაშ ოწურაფუ",
+       "invalidemailaddress": "ელ. ფოსტის მისამართი არ იქნა მიღებული, ვინაიდან იგი არასწორი ფორმატითაა წარმოდგენილი.\nგთხოვთ, სწორად შეიყვანოთ იგი ან წაშალოთ ეს ველი.",
+       "cannotchangeemail": "ანგარიშის ელ-ფოსტის მისამართების შეცვლა ამ ვიკიში შეუძლებელია.",
+       "emaildisabled": "ამ საიტს არ შეუძლია ელ.ფოსტის გაგზავნა.",
+       "accountcreated": "ანგარიში შეიქმნა",
+       "accountcreatedtext": "მომხმარებლის ანგარიში [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|განხილვა]]) შექმნილია.",
+       "createaccount-title": "ანგარიშის შექმნა {{SITENAME}}-თვის",
+       "createaccount-text": "ვიღაცამ შექმნა ანგარიში სახელით „$2“ და პაროლით „$3“ თქვენი ელექტრონული ფოსტისთვის {{SITENAME}}-ში ($4). გთხოვთ დარეგისტრირდეთ და შეცვალოთ პაროლი.\n\nშეგიძლიათ ყურადღება არ მიაქციოთ ამ შეტყობინებას, თუ ანგარიში შეცდომით შეიქმნა.",
+       "login-abort-generic": "თქვენი ავტორიზაცია წარუმატებელია – გაუქმდა",
+       "login-migrated-generic": "თქვენი ანგარიში გადატანილი იქნა, და თქვენი მომხმარებლის სახელი ამ ვიკიში აღარ არსებობს.",
        "loginlanguagelabel": "ნინა: $1",
+       "suspicious-userlogout": "თქვენი მოთხოვნა გასვლის შესახებ გაუქმებულია, რადგანაც იგი გავს ქეშირებადი პროქსის ან არაკორექტული ბრაუზერის მოთხოვნას.",
+       "createacct-another-realname-tip": "რეალური სახელი არასავალდებულოა.\nთუ თქვენ მას მიუთითებთ, იგი გამოყენებული იქნება იმისათვის, რომ ნაჩვენები იყოს ვის მიერ იყო შეტანილი გვერდის ცვლილება.",
        "pt-login": "მიშულა",
        "pt-login-button": "მიშულა",
        "pt-createaccount": "ანგარიშიშ გონწყუმა",
        "pt-userlogout": "გიშულა",
+       "php-mail-error-unknown": "ამოუცნობი შეცდომა PHP-ის mail() ფუნქციაში",
+       "user-mail-no-addy": "ცდილობდა ელ-ფოსტის გაგზავნას ელ-ფოსტის მისამართის გარეშე.",
+       "user-mail-no-body": "ცდილობდა ცარიელი ან უაზროდ მოკლე შინაარსის ელექტრონული წერილის გაგზავნას.",
+       "changepassword": "პაროლის შეცვლა",
+       "resetpass_announce": "სისტემაში შესვლის დასრულებისათვის თქვენ უნდა დააყენოთ ახალი პაროლი.",
+       "resetpass_header": "შეცვალეთ ანგარიშის პაროლი",
+       "oldpassword": "ძველი პაროლი:",
+       "newpassword": "ახალი პაროლი:",
+       "retypenew": "ახალი პაროლი განმეორებით:",
+       "resetpass_submit": "მიუთითეთ პაროლი და დარეგისტრირდით",
+       "changepassword-success": "თქვენი პაროლი წარმატებით შეიცვალა!",
+       "changepassword-throttled": "თქვენ განახორციელეთ ანგარიშში შესვლის ზედმეტად ბევრი მცდელობა. გამორებით შეყვანამდე გთხოვთ დაიცადოთ $1.",
+       "resetpass_forbidden": "პაროლის შეცვლა შეუძლებელია",
+       "resetpass-no-info": "კონკრეტულად ამ გვერდთან სამუშაოდ თქვენ უნდა წარადგინოთ თავი სისტემისადმი.",
+       "resetpass-submit-loggedin": "პაროლის შეცვლა",
+       "resetpass-submit-cancel": "გოუქვაფა",
+       "resetpass-wrong-oldpass": "არასწორი დროებითი ან მოქმედი პაროლი.\nშესაძლოა თქვენ წარმატებით შეცვალეთ პაროლი ან მოითხოვეთ ახალი.",
+       "resetpass-recycled": "გთხოვთ, შეცვალეთ პაროლი იმაზე, რომელიც განსხვავდება თქვენი მიმდინარე პაროლისაგან.",
+       "resetpass-temp-emailed": "თქვენ წარდგენილი ხართ დროებითი პაროლის დახმარებით, რომელიც მიღებულია ელექტრონული ფოსტით. სისტემაში შესვლის დასრულებისთვის, აუცილებელია ახალი პაროლის წარდგენა:",
+       "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}}\", რათა იგი მოგვიანებით ჩამოყაროთ.",
+       "passwordreset": "პაროლის აღდგენა",
+       "passwordreset-text-one": "შეავსეთ ეს ფორმა, რათა კვლავ დააყენოთ თქვენი პაროლი.",
+       "passwordreset-text-many": "{{PLURAL:$1|ელ.ფოსტაზე დროებითი პაროლის მისაღებად შეავსეთ ერთ-ერთი ველი.}}",
+       "passwordreset-legend": "პაროლის აღდგენა",
+       "passwordreset-disabled": "ამ ვიკიში პაროლის კვლავ დაყენების ფუნქცია გამორთულია.",
+       "passwordreset-emaildisabled": "ამ ვიკიში ელ.ფოსტის ფუნქციები გამორთულია.",
+       "passwordreset-username": "მახვარებუშ ჯოხო:",
+       "passwordreset-domain": "დომენი:",
+       "passwordreset-capture": "გამოსული ელ-ფოსტის ხილვა?",
+       "passwordreset-capture-help": "თუ მონიშნავთ ამ უჯრას, მაშინ თქვენ შეგეძლებათ მომხმარებლისათვის გაგზავნილი ელ.ფოსტის ნახვა (დროებითი პაროლით).",
+       "passwordreset-email": "ელ. ფოსტის მისამართი:",
+       "passwordreset-emailtitle": "ანგარიშის მონაცემები {{SITENAME}}-თვის",
+       "passwordreset-emailtext-ip": "ვიღაცამ (შესაძლოა თქვენ, ამ IP-მისამართიდან $1) მოითხოვა თქვენი \nპაროლის თავიდან დაყენება საიტისათვის {{SITENAME}} ($4).\n{{PLURAL:$3|შემდეგი ანგარიში მიბმულია|შემდეგი ანგარიშები მიბმულია}} ამ ელ.ფოსტის მისამართზე:\n\n$2\n\n{{PLURAL:$3|ეს დროებითი პაროლი|ეს დროებითი პაროლები}} იმოქმედებს {{PLURAL:$5|ერთი დღე|$5 დღე}}.\nთქვენ უნდა შეხვიდეთ სისტემაში და აირჩიოთ ახალი პაროლი.\nთუ თქვენ არ გაგიკეთებიათ აღნიშნული მოთხოვნა, ან გაიხსენეთ თქვენი პაროლი\nდა აღარ გსურთ მისი შეცვლა, მაშინ შეგიძლიათ იგნორირება გაუკეთოთ ამ შეტყობინებას\nდა გააგრძელოთ თქვენი ძველი პაროლის გამოყენება.",
+       "passwordreset-emailtext-user": "მომხმარებელმა $1 პროექტიდან {{SITENAME}} მოითხოვა თქვენი \nპაროლის თავიდან დაყენება საიტისათვის {{SITENAME}} ($4).\n{{PLURAL:$3|შემდეგი ანგარიში მიბმულია|შემდეგი ანგარიშები მიბმულია}} ამ ელ.ფოსტის მისამართზე:\n\n$2\n\n{{PLURAL:$3|ეს დროებითი პაროლი|ეს დროებითი პაროლები}} იმოქმედებს {{PLURAL:$5|ერთი დღე|$5 დღე}}.\nთქვენ უნდა შეხვიდეთ სისტემაში და აირჩიოთ ახალი პაროლი.\nთუ თქვენ არ გაგიკეთებიათ აღნიშნული მოთხოვნა, ან გაიხსენეთ თქვენი პაროლი\nდა აღარ გსურთ მისი შეცვლა, მაშინ შეგიძლიათ იგნორირება გაუკეთოთ ამ შეტყობინებას\nდა გააგრძელოთ თქვენი ძველი პაროლის გამოყენება.",
+       "passwordreset-emailelement": "მომხმარებლის სახელი: $1\nდროებითი პაროლი: $2",
+       "passwordreset-emailsent": "პაროლის თავიდან დასაყენებელი ელ.ფოსტა გაიგზავნა.",
+       "passwordreset-emailsent-capture": "ქვემოთ ნაჩვენები პაროლის თავიდან დასაყენებელი წერილი გაიგზავნა.",
+       "passwordreset-emailerror-capture": "ქვემოთ მოცემულია შექმნილი პაროლის დასაყენებელი წერილი, რომლის გაგზავნაც {{GENDER:$2|მომხმარებელთან}} ვერ მოხერხდა: $1 გამო",
+       "changeemail": "გენშიონით თქვანი ელ. ფოსტაშ ოწურაფუ",
+       "changeemail-text": "შეავსეთ ეს ფორმა თქვენი ელ-ფოსტის მისამართის შესაცვლელად. თქვენი პაროლის შეყვანა დაგჭირდებათ ამ ცვლილების დასადასტურებლად.",
+       "changeemail-no-info": "კონკრეტულად ამ გვერდთან სამუშაოდ თქვენ უნდა წარადგინოთ თავი სისტემისადმი.",
+       "changeemail-oldemail": "ელ-ფოსტის ამჟამინდელი მისამართი:",
+       "changeemail-newemail": "ახალი ელ-ფოსტის მისამართი:",
+       "changeemail-none": "(არაფერი)",
+       "changeemail-password": "თქვენი პაროლი პროექტში {{SITENAME}}:",
+       "changeemail-submit": "ელ-ფოსტის შეცვლა",
+       "changeemail-throttled": "თქვენ უკვე ძალიან ბევრჯერ სცადეთ შესვლა.\nგთხოვთ, მოიცადოთ $1, სანამ კიდევ სცდიდეთ.",
+       "resettokens": "ჟეტონების ჩამოყრა",
+       "resettokens-text": "თქვენ შეგიძლიათ ჩამოყაროთ ტოკენები, რომლებიც შესაძლებლობას იძლევიან შესვლას განსაზღვრულ პირად მონაცემებში, დაკავშირებულს თქვენ ანგარიშთან აქ. \n\nთქვენ ეს აუცილებლად უნდა გააკეთოთ, თუ თქვენ ის შემთხვევით გააცანით სხვას ან თუკი თქვენი ანგარიში იქნა გატეხილი.",
+       "resettokens-no-tokens": "არ არის ჟეტონები ჩამოსაყრელად",
+       "resettokens-legend": "ჟეტონების ჩამოყრა",
+       "resettokens-tokens": "ჟეტონები:",
+       "resettokens-token-label": "$1 (მიმდინარე მნიშვნელობა: $2)",
+       "resettokens-watchlist-token": "ტოკენი ვებ-არხისთვის (Atom/RSS) [[Special:Watchlist|გვერდების ცვლილებები თქვენი კონტროლის სიაში]]",
+       "resettokens-done": "ჟეტონების ჩამოყრა.",
+       "resettokens-resetbutton": "არჩეული ჟეტონების ჩამოყრა",
        "bold_sample": "რუმე ტექსტი",
        "bold_tip": "რუმე ტექსტ",
        "italic_sample": "ელართელი ტექსტი",
        "italic_tip": "ელართელი ტექსტი",
        "link_sample": "რცხუშ ჯოხო",
-       "link_tip": "á\83\93á\83\98á\83\9cá\83\90á\83®á\83\90ლენი რცხუ",
+       "link_tip": "á\83\93á\83\98á\83\9cá\83\9dá\83®á\83\9dლენი რცხუ",
        "extlink_sample": "http://www.example.com რცხუშ ჯოხო",
        "extlink_tip": "გალენი რცხუ (ქორშუდანი http:// პრეფიქსი)",
        "headline_sample": "დუდლანდარიშ ტექსტი",
        "preview": "გიწოთოლორაფა",
        "showpreview": "ქაძირე გიწოთოლორაფა",
        "showdiff": "თირაფეფიშ ძირაფა",
-       "anoneditwarning": "'''გური გუჩით:''' თქვა ვარეთ რეგისტრირაფილი. თქვან IP ოწურაფუ ინოჭარილი იჸი თე ხასჷლაშ რედაქტირაფაშ ისტორიას.",
+       "blankarticle": "გაფრთხილება: გვერდი, რომელსაც ქმნით, ცარიელია. თუკი კვლავ დააჭერთ ღილაკს \"{{int:savearticle}}\", გვერდი შეიქმნება შემცვლელობის გარეშე.",
+       "anoneditwarning": "<strong>გაფრთხილება:</strong> თქვენ არ ხართ ავტორიზირებული. თქვენი IP მისამართი საჯაროდ ხილული იქნება, თუკი განახორციელებთ რედაქტირებას. თუ თქვენ გაივლით <strong>[$1 ავტორიზაციას]</strong> ან <strong>[$2 შექმნით ანგარიშს]</strong>, სხვა უპირატესობებთან ერთად, თქვენი რედაქტირებები დაუკავშირდება თქვენს მომხმარებლის სახელს.",
+       "anonpreviewwarning": "''თქვენ არ შესულხართ სისტემაში. თქვენი IP მისამართი შეინახება გვერდის ისტორიაში. ''",
+       "missingsummary": "<strong>ეხსენება:</strong> თქვენ არ მიგითითებიათ რედაქტირების რეზიუმე.\nთუ ისევ დააწკაპუნებთ შენახვაზე, თქვენი რედაქტირება რეზიუმეს გარეშე დამახსოვრდება.",
+       "selfredirect": "გაფრთხილება: თქვენ გადამისამართებას იმავე გვერდზე ქმნით. შესაძლოა, თქვენ გადამისამართებისთვის აირჩიეთ არასწორი სამიზნე გვერდი ან არედაქტირებთ არასამიზნე გვერდს. \n\nთუ თქვენ კიდევ ერთხელ დააჭერთ ღილაკს \"{{int:savearticle}}\", გადამისამართება შეიქმნება.",
+       "missingcommenttext": "გთხოვთ კომენტარი შეიყვანოთ ქვემოთ.",
+       "missingcommentheader": "'''შეხსენება:''' თქვენ ამ კომენტარისთვის სათაური/თემა არ მიგითითებიათ. თუ შენახვაზე \"{{int:savearticle}}\" დააწკაპუნებთ, თქვენი ცვლილება მის გარეშე იქნება შენახული.",
        "summary-preview": "რეზიუმეშ გიწოთოლორაფა",
+       "subject-preview": "თემის/სათაურის წინასწარი გადახედვა:",
+       "previewerrortext": "თქვენი ცვლილებების წინასწარი გადახედვის მცდელობის დროს მოხდა შეცდომა.",
+       "blockedtitle": "მომხმარებელი ბლოკირებულია",
        "blockedtext": "'''თქვან მახვარებუშ ჯოხო ვარა IP მიოწურაფუქ ბლოკირქ იჸუ. '''\n\nბლოკირაფა ღოლუ $-ქ.\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 მიოწურაფუქ ბლოკირქ იჸუ. '''\n\n: <em>$2</em>.\n\n* ბლოკუაშ დაჭყაფური: $8\n* ბლოკიშ ვადაშ გულა ბორჯი: $6\n* ბლოკირქ იჸუ: $7\n\nშეილებუნა დეკავშირათ $1-ს ვარა ნამთინე შხვა [[{{MediaWiki:Grouppage-sysop}}|ადმინისტრატორს]] ბლოკუაშ კილასხუნალო.\nგეთოლწონით, ნამდა თქვა ვაგუმგარინენა ფუნქცია: ''მახვარებუშა ელ-ფოშტაშ ჯღონუა'', ვაგაფუნა მეღანკილი მოქმენდი ელ-ფოშტაშ მიოწურაფუ თქვანი [[Special:Preferences|ანგარიშიშ კონფიგურაციას]], ვარა დობლოკუაშ გეშა თე ფუნქციაშ გუმორინაფაშ ნება მიდაღალირ გაფუნა და.\nთქვან ასეიან IP მიოწურაფუ რე $3, დო ბლოკიშ იდენტიფიკატორი #$5.\nრთხიინთ ქიმიოღანკათ თე მუნაჩემეფშე ნამდგაიჸინი (ვარა ჟირხოლო) თქვან კორესპონდენციას.",
+       "blockednoreason": "მიზეზი არ არის მითითებული",
+       "whitelistedittext": "გვერდების რედაქტირებისათვის თქვენ გესაჭიროებათ $1.",
+       "confirmedittext": "გვერდების დარედაქტირებამდე უნდა დაადასტუროთ თქვენი ელფოსტის მისამართი. გთხოვთ [[Special:Preferences|მომხმარებლის პარამეტრებში]] მიუთითოთ და დაამოწმოთ ელფოსტის მისამართი.",
+       "nosuchsectiontitle": "სექცია არ არსებობს",
+       "nosuchsectiontext": "თქვენ სცადეთ არარსებული სექციის რედაქტირება.\nშესაძლოა იგი გადაადგილდა ან წაიშალა თქვენს მიერ გვერდის ხილვისას.",
+       "loginreqtitle": "რეგისტრაცია აუცილებელია",
        "loginreqlink": "მიშულა",
+       "loginreqpagetext": "თქვენ უნდა $1 სხვა გვერდები აჩვენოთ.",
+       "accmailtitle": "პაროლი გაგზავნილია.",
+       "accmailtext": "შემთხვევითი მეთოდით შექმნილი პაროლი მომხმარებლისათვის [[User talk:$1|$1]] გაგზავნილია მისამართზე $2.\n\nავტორიზაციის გავლის შემდეგ შესაძლებელი იქნება ამ ანგარიშის  <em>[[Special:ChangePassword|პაროლის შეცვლა]]</em> ანგარიშში შესვლის გვერდზე.",
        "newarticle": "(ახალ)",
        "newarticletext": "თქვა გეჸუნელჷ რეთ ხასჷლაშ რცხის, ნამუთ დიო ვა რე დორცხუაფილი.\nხასჷლაშ დარცხუაფალო გემშეჸონით ტექსტი თუდონ ოჭკორიეშა. (ქოძირით[$1 მოხვარაშ ხასჷლა] უმოს ინფორმაციაშო).\nთე ხასჷლას ჩილათირო მოხვადით–და, ქიგუნჭირით თქვან ბრაუზერიშ კონჭის '''უკახალე'''.\"",
+       "anontalkpagetext": "----\n<em>ეს არის ანონიმური მომხმარებლის განხილვის გვერდი, რომელსაც ანგარიში ჯერ არ შეუქმნია ან არ იყენებს მას.</em>\n\nშესაბამისად, ჩვენ მისი ციფრული IP მისამართი უნდა გამოვიყენოთ მისი იდენტიფიცირებისთვის.\n\nამგვარი მისამართი შეიძლება რამდენიმე მომხმარებელმა გამოიყენოს.\n\nთუ თქვენ ანონიმური მომხმარებელი ხართ და თვლით, რომ სხვისთვის გამიზნული მითითება მიიღეთ, გთხოვთ [[Special:UserLogin/signup|შექმენით ანგარიში ან დარეგისტრირდით]] მომავალში გაუგებრობის თავიდან ასაცილებლად.",
        "noarticletext": "ასე თე ხასილას ტექსტ ვა რე. \nთქვა შეილებუნა [[Special:Search/{{PAGENAME}}|გორათ ათე ხასილაშ ჯოხო]] შხვა ხასილეფს,\n<span class=\\\"plainlinks\\\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} დოგორათ მეხუჯაფილ ჟურნალეფ],\nვარა [{{fullurl:{{FULLPAGENAME}}|action=edit}} დიჭყათ ათე ხასილაშ რედაქტირაფა]</span>.",
        "noarticletext-nopermission": "ათე ხასჷლას ასე ტექსტი ვა რე. თქვა შეილებუნა [[Special:Search/{{PAGENAME}}|დოგორათ თე ხასჷლაშ დუდჯოხო]] შხვა ხასჷლეფს,\nვარდა <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} დოგორათ გინორცხილ ჟურნალეფი]</span>.",
-       "previewnote": "'''რშუდანი თენა რე ხვალე გიწოთოლორაფა'''\nთქვანი თირაფეფი დიო ვარე ჩუალირი!",
+       "missing-revision": "ვერსია $1 გვერდისათვის „{{FULLPAGENAME}}“ არ არსებობს.\n\nეს ჩვეულებრივ ხდება მაშინ, თუ მოძველებული ბმულით გადადიხართ გვერდზე, რომელიც წაიშალა.\nდეტალური ინფორმაცია შესაძლებელია იყოს [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} წაშლების ჟურნალში].",
+       "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''-დან.",
+       "usercssyoucanpreview": "'''რჩევა:''' შენახვამდე გამოიყენეთ ღილაკი \"{{int:showpreview}}\" თქვენი ახალი CSS ტესტირებისთვის.",
+       "userjsyoucanpreview": "<strong>რჩევა:</strong> შენახვამდე გამოიყენეთ ღილაკი \"{{int:showpreview}}\" თქვენი ახალი JS ტესტირებისთვის.",
+       "updated": "(განახლდა)",
+       "note": "<strong>შენიშვნა:</strong>",
+       "previewnote": "<strong>რშუდანი თენა რე ხვალე გიწოთოლორაფა</strong>\nთქვანი თირაფეფი დიო ვარე ჩუალირი!",
+       "continue-editing": "რედაქტირებაზე გადასვლა",
+       "previewconflict": "შავი ნიმუში უჩვენებს ტექსტს ზედა რედაქტირების ფანჯარაში, როგორც ის გამოჩნდება თუ თქვენ მას შეინახავთ.",
+       "session_fail_preview": "<strong>უკაცრავად! ვერ შევძელით თქვენი რედაქტირების შენახვა სესიის მონაცემთა დაკარგვის გამო.</strong>\nგთხოვთ ისევ სცადოთ.\nთუ პრობლემა განმეორდა, სცადეთ [[Special:UserLogout|სისტემიდან გასვლა]] და ხელახლა შემოსვლა.",
+       "session_fail_preview_html": "<strong>სამწუხაროდ, ჩვენ ვერ განვახორციელეთ თქვენი რედაქტირება სესიის მონაცემთა დაკარგვის გამო.</strong>\n\n<em>რადგანაც ამ ვიკის აქვს დაუმუშავებელი HTML ჩართული, წინასწარი გადახედვა დამალულია ჯავასკრიპტის შეტევის საწინააღმდეგოდ სიფრთხილის მიზნით.</em>\n\n<strong>თუ ეს მიღებული რედაქტირების მცდელობა იყო, გთხოვთ ისევ სცადოთ. თუ იგი კვლავ არ მუშაობს, სცადეთ თავიდან [[Special:UserLogout/დარეგისტრირება]] (შესვლა)</strong>",
+       "token_suffix_mismatch": "<strong>თქვენი შესწორება გაუქმდა რადგანაც პროგრამა არასწორედ აღიქვამს პუნქტუაციის ნიშნებს რედაქტირების ფანჯარაში.</strong>\nშესწრება გაუქმდა სტატიის არ გაფუჭების მიზნით. \nშესაძლოა ეს გამოწვეულია გაფუჭებული ვებ პროქსის გამოყენებით.",
+       "edit_form_incomplete": "<strong>რედაქტირებების ნაწილმა სერვერამდე ვერ მიაღწია; გთხოვთ, შეამოწმეთ თქვენი რედაქტირებების სრულყოფილება და სცადეთ განმეორებით.</strong>",
        "editing": "რედაქტირაფა $1",
        "creating": "აკმიქიმინუაფჷ: „$1“",
        "editingsection": "$1–იშ (სექციაშ) რედაქტირაფა",
+       "editingcomment": "რედაქტირაფა: $1 (ახალი სექცია)",
+       "editconflict": "რედაქტირების კონფლიქტი: $1",
+       "explainconflict": "სხვა მომხმარებელმა შეცვალა ეს გვერდი მას შემდეგ რაც თქვენ დაიწყეთ მისი რედატირება.\nზედა ტექსტური ველი შეიცავს გვერდის შიგთავსს მისი ამჟამინდელი სახით.\nთქვენი ცვლილებები ნაჩვენებია ქვედა ტექსტურ ველში.\nთქვენ მოგიწევთ თქვენი ცვლილებების შერწყმა არსებულ ტექსტთან.\n'''მხოლოდ''' ზედა ველში არსებული ტექსტი იქნება შენახული, როდესაც „{{int:savearticle}}“ დააჭერთ.",
        "yourtext": "თქვან ტექსტი",
+       "storedversion": "შენახული ვერსია",
+       "nonunicodebrowser": "<strong>გაფრთხილება: თქვენი ბრაუზერი უნიკოდთან თავსებადი არ არის.</strong> \nჩვენ ვცდილობთ ამ პრობლემის გადაჭრას, რათა თქვენ შეძლოთ უსაფრთხოდ შეიტანოთ ცვლილებები გვერდებზე: არა-ASCII ნიშნები რედაქტირების ფანჯარაში გამოჩნდება როგორც ჰექსადეციმალური კოდები.",
+       "editingold": "<strong>ყურადღება: თქვენ ამუშავებთ ამ გვერდის მოძველებულ ვერსიას.</strong> გვერდის შენახვის შემდეგ მომდევნო ვერსიებში გაკეთებული ცვლილებები დაიკარგება.",
+       "yourdiff": "განსხვავებები",
        "copyrightwarning": "გეთოლწონით, ნამდა {{SITENAME}} ხასილაშა თქვან ხეშე მიშაღალირ არძონერ თია იფორუ $2-ით (დეტალეფშო ქოძირით $1). \nვა გოკონა თქვან ნახანდაქ დუდშულო   რედაქტირებულქ დო გიონოჯღონელქ იყ’უას–და, ვა მიშეყ’ონათ თინა თაქ.<br />\nთქვა ხოლო პიჯალას დუთმოდვანთ, ნამდა თე ტექსტი თქვან ნაჭარა რე, ვარა გინოღალირ რე ოირკოჩე დომენშე დო ვარა თიშ მანგურ დუდიშულ წყუშე. \n'''ვა მიშეღათ ოავტორე ნებეფით თხილერ ნახანდი ავტორიშ ქოყ’იაშ უმშო!'''\"",
        "templatesused": "თე ხასჷლას გიმორინაფილი რე {{PLURAL:$1|თანგი|თანგი}}:",
        "templatesusedpreview": "{{PLURAL:$1|თანგი|თანგეფი}} ნამუთ თე გჷწოთოლორაფას რე გიმორინაფილი",
        "template-semiprotected": "(გვერდო თხილერი)",
        "hiddencategories": "თე ხასჷლა ოკათუ {{PLURAL:$1|1 ტყობინაფილ კატეგორიას|$1 ტყობინაფილ კატეგორიეფს}}:",
        "nocreatetext": "თე ხასილას ვა შილებე ახალ ხასილაშ გექიმინუა დორცხუაფილ ვარიაშ გეშა. თქვა შეგილებუნა კინორთა დო გექიმინელ ხასილაშ რედაქტირაფა, ვარა [[სპეციალურ:Userlogin|მიშულა დო ანგარიშიშ დორცხუაფა]]",
+       "sectioneditnotsupported-title": "სექციის რედაქტირება ვერ ხერხდება",
+       "sectioneditnotsupported-text": "სექციის რედაქტირება გათიშულია ამ გვერდისთვის",
+       "permissionserrors": "ალობაშ ჩილათა",
+       "permissionserrorstext": "თქვენ არ გაქვთ ამის გაკეთების უფლება, შემდეგი {{PLURAL:$1|მიზეზის|მიზეზების}} გამო:",
        "permissionserrorstext-withaction": "თქვა ვა გიღუნა $2–იშ ღოლამაშ ალობა თე გეჸვენჯი {{PLURAL:$1|სამანჯელით|სამანჯელით}}:",
        "recreate-moveddeleted-warn": "'''გართხილება: თქვა კინე ახალშო ორსხუანთ ხასჷლას, ნამუქჷთ ლასირქ იჸუ ოწოხოლე'''\n\nრთხიინთ, დეფირქათ, ქორე თუ ვარ მისაღეფ თე ხასჷლაშ რედაქტირაფაშ გაგინძორება.\nთქვან ოხუჯურო, ათე ხასილაშ ლასუაშ დო გინოღალაშ ჟურნალი მოჩამილ რე თუდო:",
        "moveddeleted-notice": "თე ხასჷლაქ ლასირქ იჸუ. ლასუაშ დო გინოღალაშ ჟურნალი მოჩამილ რე თუდო გიმაწურაფალო",
+       "log-fulllog": "ყველა ჟურნალის ხილვა",
+       "edit-hook-aborted": "შესწორება გაუქმებულია გადამჭერით.\nდამატებითი ახსნა არ ჩაწერილა.",
+       "edit-gone-missing": "გვერდის განახლეა შეუძლებელია.\nშესაძლოა, იგი წაიშალა.",
+       "edit-conflict": "რედაქციების კონფლიქტი.",
+       "edit-no-change": "თქვენი შესწორება არ იქნა შენახული, რადგანაც ტექსტის ცვლილება არ მოხდა.",
+       "postedit-confirmation-created": "გვერდი შეიქმნა.",
+       "postedit-confirmation-restored": "გვერდი აღდგა.",
+       "postedit-confirmation-saved": "თქვენი რედაქტირება შენახულია.",
+       "edit-already-exists": "ახალი გვერდის შექმნა არ მოხერხდა.\nის უკვე არსებობს.",
+       "defaultmessagetext": "შატყვინაფაშ სტანდარტულ ტექსტი",
+       "content-failed-to-parse": "$2-ის შინაარსი არ შეესაბამება $1-ის ტიპს: $3.",
+       "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": "JavaScript",
+       "content-json-empty-object": "ცარიელი ობიექტი",
+       "content-json-empty-array": "ცარიელი ტაბლო",
+       "duplicate-args-category": "გვერდები, რომლებიც იყენებენ დუბლიკატ არგუმენტებს თარგების გამოძახებისას",
+       "duplicate-args-category-desc": "გვერდები, რომლებიც იყენებენ დუბლიკატ არგუმენტებს თარგების გამოძახებისას, როგორებიც არის <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> ან <code><nowiki>{{foo|bar|1=bar}}</nowiki></code>.",
+       "expensive-parserfunction-warning": "<strong>ყურადღება:</strong> მოცემული გვერდი შეიცავს ძალიან ბევრ მძიმე ფუნქციას.\n\n{{PLURAL:$2|გამოძახებათა|გამოძახებათა}} რაოდენობა შეზღუდულია $2 დონეზე, ამ შემთხვევაში უნდა გაკეთდეს  {{PLURAL:$1|$1 გამოძახება|$1 გამოძახება}}.",
+       "expensive-parserfunction-category": "გვერდი ძალიან ბევრი მძიმე ფუნქციის მოთხოვნით",
        "post-expand-template-inclusion-warning": "\"გური ქუჩით:\" ინოხუნაფილ თანგეფიშ ზომა ნაბტანი დიდი რე. კანკალე თანგეფი ვენიკათინე.",
        "post-expand-template-inclusion-category": "ხასჷლეფი ნამუსუთ ინოხუნაფილი თანგეფიშ ზომა გინომეტებული რე.",
        "post-expand-template-argument-warning": "\"'''გური ქუჩით:''' თე ხასჷლას ოკათ არძოშ უკლაშ ართ თიცალ თანგიშ არგუმენტი, ნამუსუთ უღუ გოძინელოფაშ ნაბტან დიდ ზომა.\nთე არგუმენტეფქ გჷშატებულქ იჸუ.\"",
        "post-expand-template-argument-category": "უარგუმენტო თანგამი ხასჷლეფი",
+       "parser-template-loop-warning": "აღმოჩენილია ლუპი თარგ: [[$1]]-ში",
+       "parser-template-recursion-depth-warning": "თარგის რეკურსიის სიღრმე აემატება დაშვებულს ($1)",
+       "language-converter-depth-warning": "ენათა გადამუშავების კონვერციის ლიმიტი ამოწურულია ($1)",
+       "node-count-exceeded-category-desc": "გვერდს აქვს გადაჭარბებული კვანძების მაქსიმალური დასაშვები რაოდენობა",
+       "node-count-exceeded-warning": "გვერდზე გადამეტებულია კვანძების რაოდენობა",
+       "expansion-depth-exceeded-category": "გვერდები გახსნის სიღრმის გადამეტებით",
+       "expansion-depth-exceeded-category-desc": "გვერდს აქვს გადაჭარბებული გაღების სიღრმის მაქსიმალურად დასაშვები რაოდენობა",
+       "expansion-depth-exceeded-warning": "გვერდზე გადამეტებულია ჩადგმების ზღვარი",
+       "parser-unstrip-loop-warning": "აღმოჩენილია ციკლური ბმული",
+       "parser-unstrip-recursion-limit": "გადამეტებულია რეკურსიის ზღვარი ($1)",
+       "converter-manual-rule-error": "შეცდომა ენის ხელით გარდაქმნის წესში",
+       "undo-success": "რედაქტირების გაუქმება შესაძლებელია. გთხოვთ შეამოწმოთ განსხვავება ქვევით, რათა დარწმუნდეთ, რომ ეს ის არის რაც თქვენ გსურთ, შემდეგ კი შეინახეთ ცვლილებები რათა დაასრულოთ რედაქტირების გაუქმება.",
+       "undo-failure": "რედაქტირების გაუქმება შეუძლებელია კონფლიქტური შუალედური რედაქტირებების გამო.",
+       "undo-norev": "რედაქტირება ვერ გაუქმდება რადგანაც არ არსებობს ან წაშლილი იქნა.",
+       "undo-nochange": "როგორც ჩანს, რედაქტირება უკვე გაუქმდა.",
+       "undo-summary": "[[Special:Contributions/$2|$2-ის]]([[User talk:$2|განხილვა]]) ცვლილებების გაუქმება (№$1)",
+       "cantcreateaccounttitle": "ანგარიშის შექმნა ვერ ხერხდება",
+       "cantcreateaccount-text": "ამ IP-მისამართიდან აიკრძალა (<strong>$1</strong>) მომხმარებელ [[User:$3|$3]]-ის მიერ.\n\n$3-მა მიუთითა შემდეგი მიზეზი: <em>$2</em>",
        "viewpagelogs": "თე ხასჷლაშო ორეგისტრაციე ჟურნალეფიშ ძირაფა",
+       "nohistory": "ამ გვერდს განხილვის გვერდი ცარიელი აქვს.",
        "currentrev": "მიმალ გიშანწყუალა",
        "currentrev-asof": "$1–შო მიმალ რედაქცია",
        "revisionasof": "$1 თარიღიშო დო საათიშო რსებულ ვერსია",
        "nextrevision": "უახალაშ ვერსია→",
        "currentrevisionlink": "მიმალ ვერსია",
        "cur": "მიმალ",
+       "next": "შემდეგი",
        "last": "ეკონია",
        "page_first": "პირველი",
        "page_last": "ეკონია",
        "histlegend": "მეღანკილ: ართიანიშ მიოზიმაფალო კორნებულ ვერსიეფიშ რადიოშ ოჭკორიეფ ქიმიოღანკეთ დო გეუნჭირით მიშულაშ კონჭის, ვარა ქვინჯის რენ თი კონჭის.\nლეგენდა: '''კუნტარაფეფ: ({{მიმ.}})''' = შხვაობა მიმალ ვერსიაწკუმა, '''({{ეკონია}}) = შხვაობა ოწოხოლენ ვერსიაწკუმა, ჭ = ჭიჭე რედაქტირაფეფ.",
        "history-fieldset-title": "ისტორიაშ გინოჯინა",
        "history-show-deleted": "ხვალე ლასირეფი",
-       "histfirst": "á\83\9eá\83\98á\83 á\83\95á\83\94á\83\9aი",
-       "histlast": "á\83\94á\83\99á\83\9dá\83\9cá\83\98á\83\90",
+       "histfirst": "á\83£á\83«á\83\95á\83\94á\83\9aá\83\94á\83¡ი",
+       "histlast": "á\83£á\83\90á\83®á\83\9aá\83\94á\83¡á\83\98",
        "historysize": "($1 ბაიტი)",
        "historyempty": "(ჩოლიერი)",
        "history-feed-title": "რედაქტირებიშ ისტორია",
        "history-feed-description": "თენა გვერდიშ რედაქტირებეფიშ ისტორია ვიკის",
        "history-feed-item-nocomment": "$1  $2-ს",
+       "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": "[მომხმარებლის სახელი ან IP დამალულია. რეაქტირება ასევე დამალულია]",
+       "rev-deleted-text-permission": "გვერდის ეს ჩასწორება '''წაიშალა'''.\nგანმარტება შესაძლოა მოცემული იყოს [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} წაშლათა ჟურნალში].",
+       "rev-suppressed-text-permission": "გვერდის ეს ვერსია დამალულია. წაშლის ახსნა მოყვანილია [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} აკრძალვის ჟურნალში].",
+       "rev-deleted-text-unhide": "გვერდის ეს ვერსია '''წაიშალა'''.\nახსნა-განმარტება მოცემულია [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} წაშლის ჟურნალში].\nსურვილის შემთხვევაში თქვენ შეგიძლიათ [$1 იხილოთ აღნიშნული ვერსია].",
+       "rev-suppressed-text-unhide": "გვერდის ეს ვერსია '''დაიმალა'''.\nახსნა-განმარტება მოცემულია [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} დამალვის ჟურნალში].\nსურვილის შემთხვევაში თქვენ შეგიძლიათ [$1 იხილოთ აღნიშნული ვერსია].",
        "rev-delundel": "ძირაფა/ტყობინაფა",
+       "rev-showdeleted": "ძირაფა",
+       "revisiondelete": "ცვლილებების წაშლა/დაბრუნება",
+       "revdelete-nooldid-title": "სამიზნო ვერსია არ არის მითითებული",
+       "revdelete-nooldid-text": "თქვენ არ დაგინიშნიათ სამიზნო ვერსია (ვერსიები) ამ ფუნქციის გასახორციებლად.",
+       "revdelete-no-file": "მოთხოვნილი ფაილი არ არსებობს.",
+       "revdelete-show-file-confirm": "დარწმუნებული ხართ, რომ გსურთ ამ ფაილის წაშლილი ვერსიის ნახვა, „<nowiki>$1</nowiki>“ $2, $3-დან?",
+       "revdelete-show-file-submit": "ქო",
+       "revdelete-selected-text": "{{PLURAL:$1|არჩეული ვერსიები|არჩეული ვერსიები}} [[:$2]]:",
+       "revdelete-selected-file": "{{PLURAL:$1|ფაილის ამორჩეული ვერსიები|ფაილის ამორჩეული ვერსიები}} [[:$2]]:",
+       "logdelete-selected": "ჟურნალის {{PLURAL:$1|არჩეული ჩანაწერი|არჩეული ჩანაწერები}}:",
+       "revdelete-legend": "შეზღუდვის დაყენება",
+       "revdelete-hide-text": "შეცვლილი ტექსტი",
+       "revdelete-hide-image": "ფაილის შინაარსის დამალვა",
+       "revdelete-hide-name": "დამალეთ სამიზნე და პარამეტრები",
+       "revdelete-hide-comment": "რედაქტირების კომენტარი",
+       "revdelete-hide-user": "რედაქტორის მომხმარებლის სახელი/IP-მისამართი",
+       "revdelete-hide-restricted": "დამალეთ მონაცემები ადმინისტრატორთაგან",
+       "revdelete-radio-same": "(არ შეცვალოთ)",
+       "revdelete-radio-set": "დამალული",
+       "revdelete-radio-unset": "ხილული",
+       "revdelete-suppress": "დამალეთ მონაცემები ადმინისტრატორთაგან",
+       "revdelete-unsuppress": "მოხსენით შეზღუდვა ვერსიების აღდგენისგან",
+       "revdelete-log": "სამანჯელი:",
+       "revdelete-submit": "{{PLURAL:$1|არჩეული ვერსიის|არჩეული ვერსიების}} განხორციელება",
+       "revdelete-success": "ვერსიის ხილვადობა შეიცვალა.",
+       "revdelete-failure": "ვერსიის ხილვადობის განახლება შეუძლებელია:\n$1",
+       "logdelete-success": "მოვლენის ხილვადობა წარმატებით შეიცვალა.",
+       "logdelete-failure": "ჟურნალის ხილვადობა არ არის დაყენებული:\n$1",
        "revdel-restore": "ორწყენჯობაშ თირუა",
+       "pagehist": "ხასჷლაშ ისტორია",
+       "deletedhist": "წაშლილი ისტორია",
+       "revdelete-hide-current": "ჩანაწერის დამალვის შეცდიმა $2, $1: ეს არის მოქმედი ვერსია:\nიგი არ შეიძლება დამალული იქნას.",
+       "revdelete-show-no-access": "ჩანაწერის გახსნის შეცდომა $2-დან, $1: ეს ჩანაწერი მონიშნულია როგორც «შეზღუდული». თქვენ მას ვერ იხილავთ.",
+       "revdelete-modify-no-access": "ჩანაწერის გასწორების შეცდომა $2-დან, $1: ეს ჩანაწერი მონიშნულია როგორც „შეზღუდული“. თქვენ მას ვერ იხილავთ.",
+       "revdelete-modify-missing": "შეცდომა ID $1 ნაწერის რედაქტირებისას, იგი არ იმყოფება მონაცემთა ბაზაში!",
+       "revdelete-no-change": "<strong>ყურადღება:</strong> ჩანაწერს $2, $1 უკვე აქვს მოთხოვნილი ხილვადობის კონფიგურაცია.",
+       "revdelete-concurrent-change": "შეცდომა ჩანაწერის შესწორებისას $2-დან, $1: მისი სტატუსი უკვე შეცვლილია სხვა ვინმეს მიერ თქვენი რედაქირეის სესიის დროს.\nთხოვთ შეამოწმოთ ყველა ჟღნალი",
+       "revdelete-only-restricted": "თქვენ ვერ დამალავთ ჩანაწერს $2 $1 ადმინისტრატორისგან მანამ, სანამ არ აირჩევთ დამალვის სხვა პარამეტრებს.",
+       "revdelete-reason-dropdown": "*წაშლის გავრცელებული მიზეზები\n** საავტორო უფლებების დარღვევა\n** მიუღებელი პირადი ინფორმაცია\n** მიუღებელი მომხმარებლის სახელი\n** პოტენციურად ღირსების შემლახველი ინფორმაცია",
+       "revdelete-otherreason": "შხვა/გეძინელ სამანჯელ:",
+       "revdelete-reasonotherlist": "შხვა სამანჯელ",
+       "revdelete-edit-reasonlist": "წაშლის მიზეზების რედაქტირება",
+       "revdelete-offender": "ავტორის რედაქცია:",
+       "suppressionlog": "დამალვათა ჟურნალი",
+       "suppressionlogtext": "ქვემოთ მოცემულია წაშლისა და ბლოკირებების სია, რომელიც მოიცავს ადმინისტრატორებისაგან დაფარულ მასალებს.\nიხილეთ [[Special:BlockList|ბლოკირებების სიაში]] მიმდინარე ბლოკირებები.",
+       "mergehistory": "გვერდების ისტორიის შერწყმა",
+       "mergehistory-header": "ეს გვერდი გაძლევთ ნებართვას გააერთიანოთ ორი სხვადასხვა გვერდის ისტორია, რაც შეინარჩუნებს მათ ერთიანობას.",
+       "mergehistory-box": "გააერთიანეთ ორი გვერდის ისტორია:",
+       "mergehistory-from": "წყაროს გვერდი:",
+       "mergehistory-into": "სამიზნე გგვერდი:",
+       "mergehistory-list": "რედაქტირებების გაერთიანებადი ისტორია",
+       "mergehistory-merge": "შემდეგი ვერსიები [[:$1]] შეიძლება გაერთიანებული იქნას [[:$2]]-ში. გამოიყენეთ გადამრთველი არჩეული დიაპაზონის შესწორებათა შერწყმისთვის. გაითვალისწინეთ, რომ ნავიგაციური ბმულების გამოყენებისასმონაცემები დაიკარგება.",
+       "mergehistory-go": "აჩვენეთ გაერთიანებული ცვლილებები",
+       "mergehistory-submit": "ცვლილებების შერწყმა",
+       "mergehistory-empty": "რაიმე ცვლილების შერწყმა შეუძლებელია.",
+       "mergehistory-success": "$3 {{PLURAL:$3|შესწორება|შესწორებები|შესწორებების}}  [[:$1]]-დან წარმატებით {{PLURAL:$3|გადაიტანა|გადაიტანნენ|გადატანილი იქნენ}}  [[:$2]]-ში.",
+       "mergehistory-fail": "ვერ მოხერხდა გვერდების ისტორიის გაერთიანება, გთხოვთ შეამოწმოთ გვერდის პაარამეტრები და დრო.",
+       "mergehistory-fail-toobig": "არ ხერხდება ისტორიების შერწყმა, რამეთუ აუცილებელია დაშვებული ლიმიტის მეტი ნაწილის გადატანა $1 ვერსიაში.",
+       "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": "თავდაპირველი და სამიზნე გვერდები უნდა განსხვავდებოდეს.",
+       "mergehistory-reason": "სამანჯელი:",
+       "mergelog": "გაერთიანებათა ჟურნალი",
        "revertmerge": "ეკორტყუალაშ მოლასუა",
-       "history-title": "\"$1\"–იშ თირაფეფიშ ისტორია",
+       "mergelogpagetext": "ქვემოთ წარმოდგენილია ამ გვერდის ბოლო გაერთიანებათა სია",
+       "history-title": "\"$1\" თირაფეფიშ ისტორია",
        "difference-title": "$1: შხვანერობა გჷნოჯინეფს შქას",
+       "difference-title-multipage": "„$1“ და „$2“ განსხვავება გვერდებს შორის",
+       "difference-multipage": "(განსხვავება გვერდებს შორის)",
        "lineno": "ღოზი $1:",
        "compareselectedversions": "გიშაგორილ ვერსიეფიშ მეზიმაფა",
+       "showhideselectedversions": "ჩვენება/დამალვა არჩეული ვერსიებისა",
        "editundo": "გოუქვაფა",
+       "diff-empty": "(განსხვავება არ არის)",
+       "diff-multi-sameuser": "({{PLURAL:$1|ერთი შუალედური ცვლილება|$1 შუალედური ცვლილებები}} იმავე მომხმარებლის მიერ არ არის ნაჩვენები)",
+       "diff-multi-otherusers": "(არ არის ნაჩვენები $1 მომხმარებელთა $2 შუალედ ვერსიებში)",
+       "diff-multi-manyusers": "({{PLURAL:$2|ერთი მომხმარებლის|$2 მომხმარებლების}} {{PLURAL:$1|ერთი შუალედური ვერსია|$1 შუალედური ვერსიები}}, რომლებიც არ არის ნაჩვენები.)",
+       "difference-missing-revision": "{{PLURAL:$2|$2 ვერსია}} ამ შედარებისათვის ($1) {{PLURAL:$2|ვერ მოიძებნა}}.\n\nეს ჩვეულებრივ ხდება მაშინ, თუ ვერსიების შედარების მოძველებული ბმულით გადადიხართ გვერდზე, რომელიც წაიშალა.\nდეტალური ინფორმაცია შესაძლებელია იყოს [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} წაშლების ჟურნალში].",
        "searchresults": "გორუაშ მოღალირობეფი",
        "searchresults-title": "\"$1\"–იშ გორუაშ მოღალირობეფი",
+       "titlematches": "სტატიის სათაური შეესაბამება",
+       "textmatches": "გვერდის ტექსტი შესაბამისია",
        "notextmatches": "ნამთინ ხასილაშ ტექსტი ვა უხუჯანს",
        "prevn": "წოხლენ $1",
        "nextn": "უკულიან {{PLURAL:$1|$1}}",
+       "prev-page": "წინა გვერდი",
+       "next-page": "შემდეგი გვერდი",
        "prevn-title": "წოხოლენი $1 მოღალუ",
        "nextn-title": "გეჸვენჯი $1 მოღალუ",
        "shown-title": "ქაძირი $1 მოღალუ ირ ხასჷლას",
        "search-result-category-size": "{{PLURAL:$1|1 მაკათური|$1 მაკათური}} ({{PLURAL:$2|1 გიმენკატეგორია|$2 გიმენკატეგორია}}, {{PLURAL:$3|1 ფაილი|$3 ფაილეფი}})",
        "search-redirect": "(გინოწურაფა $1)",
        "search-section": "(სექცია $1)",
+       "search-category": "(კატეგორია $1)",
+       "search-file-match": "(ემთხვევა ფაილის შინაარსს)",
        "search-suggest": "ათენას ხო ვა გორუნდით: $1",
        "search-interwiki-caption": "ჯიმაია პროექტეფ",
        "search-interwiki-default": "მოღალირეფი $1-შე:",
        "search-interwiki-more": "(უმოს)",
+       "search-relatedarticle": "მათანგეფ",
        "searchrelated": "მათანგეფ",
        "searchall": "არძო",
        "search-showingresults": "{{PLURAL:$4|მოღალირობა <strong>$1</strong> შე <strong>$3</strong>|მოღალირობა <strong>$1 - $2</strong> შე <strong>$3</strong>}}",
        "search-nonefound": "თქვანი მოგორაფილიშ მუთუნნერ მანგი მოღალუქ ვეძირჷ.",
        "powersearch-legend": "გოძინელ გორუა",
        "powersearch-ns": "დოგორ ჯოხოეფიშ ოფირჩას:",
+       "powersearch-togglelabel": "მონიშვნა:",
+       "powersearch-toggleall": "ყველა",
+       "powersearch-togglenone": "არცერთი",
+       "powersearch-remember": "არჩევანის დამახსოვრება სამომავლო ძიებისათვის",
+       "search-external": "გარე ძიება",
+       "searchdisabled": "{{SITENAME}}ში ძებნა გაუქმებულია. თქვენ შეგიძლიათ დროის შუალედით Google-ით ძებნა. მიაქციეთ ყურადღება, რომ {{SITENAME}}ში შესაძლებელია მათი ინდექსები აქტუალური არ არის.",
+       "search-error": "ძიებისას მოხდა შეცდომა: $1",
        "preferences": "კონფიგურაცია",
-       "mypreferences": "ჩქიმ კონფიგურაციეფი",
+       "mypreferences": "კონფიგურაციეფი",
+       "prefs-edits": "რედაქციების რაოდენობა:",
+       "prefsnologintext2": "კონფიგურაციის შესაცვლელად შედით სისტემაში.",
+       "prefs-skin": "იერსახე",
+       "skin-preview": "გიწოთოლორაფა",
+       "datedefault": "წყარო მითითებული არაა",
+       "prefs-labs": "ექსპერიმენტალური ფუნქციები",
+       "prefs-user-pages": "მახვარებუშ ხასჷლა",
+       "prefs-personal": "მომხმარებლის მონაცემები",
+       "prefs-rc": "ასეიანი თირაფეფი",
+       "prefs-watchlist": "კონტროლიშ ერკებული",
+       "prefs-editwatchlist": "კონტროლიშ ერკებულიშ რედაქტირაფა",
+       "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": "გაფართოებულ კონტროლის სიაში საჩვენებელი ცვლილებების მაქსიმალური რაოდენობა:",
+       "prefs-watchlist-edits-max": "მაქსიმალური რაოდენობა: 1000",
+       "prefs-watchlist-token": "კონტროლის სიის ტოკენი:",
+       "prefs-misc": "სხვადასხვა",
+       "prefs-resetpass": "შეცვალეთ პაროლი",
+       "prefs-changeemail": "გენშიონით თქვანი ელ. ფოსტაშ ოწურაფუ",
+       "prefs-setemail": "გენშიონით თქვანი ელ. ფოსტაშ ოწურაფუ",
+       "prefs-email": "ელ-ფოსტის პარამეტრები",
+       "prefs-rendering": "იერსახე",
+       "saveprefs": "შენახვა",
+       "restoreprefs": "ყველა საწყისი პარამეტრის აღდგენა (ყველა სექციაში)",
+       "prefs-editing": "რედაქტირება",
+       "rows": "რიგები:",
+       "columns": "სვეტები",
+       "searchresultshead": "გორუა",
+       "stub-threshold": "გაფორმების გასაუმჯობესებლად <a href=\"#\" class=\"stub\"> მოცემულია ესკიზების ბმულები</a> (ბაიტებში):",
+       "stub-threshold-disabled": "გათიშულია",
+       "recentchangesdays": "ბოლო ცვლილებებში საჩვენებელი დღეები:",
+       "recentchangesdays-max": "მაქსიმუმ $1 {{PLURAL:$1|დღე|დღე}}",
+       "recentchangescount": "საჩვენებელი ცვლილებების რაოდენობა:",
+       "prefs-help-recentchangescount": "შეიცავს ახალ შესწორებებს, გვერდების ისტორიებს, ჟურნალებს.",
+       "prefs-help-watchlist-token2": "ეს არის საიდუმლო გასაღები თქვენი კონტროლის სიის ვებ-არხისთვის. ნებისმიერს, ვინც იცის ის, შეუძლია წაიკითხოს თქვენი კონტროლის სია, ამიტომ არ გაუზიაროთ იგი სხვებს. [[Special:ResetTokens|თქვენ შეგიძლიათ ჩამოყაროთ ის]].",
+       "savedprefs": "თქვენ მიერ შერჩეული პარამეტრები დამახსოვრებულია.",
+       "timezonelegend": "სასაათო სარტყელი:",
+       "localtime": "ადგილობრივი დრო:",
+       "timezoneuseserverdefault": "გამოიყენე ნაგულისხმევი პარამეტრები ($1)",
+       "timezoneuseoffset": "სხვა (მისათითებელი)",
+       "servertime": "სერვერის დრო:",
+       "guesstimezone": "ბრაუზერიდან შევსება",
+       "timezoneregion-africa": "აფრიკა",
+       "timezoneregion-america": "ამერიკა",
+       "timezoneregion-antarctica": "ანტარქტიდა",
+       "timezoneregion-arctic": "არქტიკა",
+       "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": "მომხმარებლის JS",
+       "prefs-common-css-js": "ზოგადი CSS/JS ყველა თემისთვის:",
+       "prefs-reset-intro": "ეს გვერდი შეიძლება გამოყენებული იქნეს თქვენი კონფიგურაციის შესაცვლელად საწყის კონფიგურაციაზე. ამ მოქმედების დადასტურების შემთხვევაში, თქვენ ვეღარ შეძლებთ მის გაუქმებას.",
+       "prefs-emailconfirm-label": "ელ-ფოსტის დადასტურება:",
        "youremail": "ელ-ფოშტა:",
+       "username": "{{GENDER:$1|მომხმარებლის სახელი}}:",
+       "prefs-memberingroups": "{{PLURAL:$1|ჯგუფის|ჯგუფების}} {{GENDER:$2|წევრი}}:",
+       "prefs-registration": "რეგისტრაციის თარიღი",
        "yourrealname": "ნანდულ სახელ *",
        "yourlanguage": "ნინა:",
+       "yourvariant": "შინაარსის ენის ვარიანტი:",
+       "prefs-help-variant": "საურველი დაწერილობა ან ორთოგრაფია, რომელშიც  უნდა იყოს ნაჩვენები ვიკის გვერდები.",
+       "yournick": "ახალი ხელმოწერა:",
+       "prefs-help-signature": "კომენტარები განხილვის გვერდებზე ხელმოწერილი უნდა იყოს „<nowiki>~~~~</nowiki>“ სიმბოლოების გამოყენებით, რომლებიც გადაკეთდება თქვენს ხელმოწერად და ხელმოწერის დროთი.",
+       "badsig": "არასწორი ნედლი ხელმოწერა.\nშეამოწმეთ HTML ჭდეები.",
+       "badsiglength": "ხელმოწერა ძალიან გრძელია.\nუნდა შედგებოდეს მაქსიმუმ $1 {{PLURAL:$1|ნიშნისაგან|ნიშნისაგან}}.",
+       "yourgender": "რომელი აღწერა უფრო შეგეფერებათ თქვენ?",
+       "gender-unknown": "მითითებას არ ვთვლი საჭიროდ",
+       "gender-male": "ის (მამრობითი) არედაქტირებს ვიკი-გვერდებს",
+       "gender-female": "ის (მდედრობითი) არედაქტირებს ვიკი-გვერდებს",
+       "prefs-help-gender": "ამ პარამეტრის დაყენება არასავალდებულოა.\nპროგრამული უზრუნველყოფა ამ ინფორმაციას იყენებს მხოლოდ სწორი გრამატიკული სქესით მომართვისათვის.\nეს ინფორმაცია საჯარო იქნება ყველასათვის.",
+       "email": "ელ-ფოშტა",
+       "prefs-help-realname": "ნამდვილი სახელის მითითება ნებაყოფლობითია.\nთუ თქვენ მას მიუთითებთ ის შესაძლოა თქვენი ნამუშევრის აღსანიშნავად იქნას გამოყენებული.",
        "prefs-help-email": "ელ-ფოშტაშ მიოწურაფუ ვა რე უციო, მარა ოხვილაფუ რე პაროლიშ ეიორსხებელო პაროლი გიჭყოლიდეთუ̂-და.",
        "prefs-help-email-others": "თქვა შეილებუნა ალობა მეჩათ შხვეფს დჷგეკონტაქტან ელ-ფოშტათ თქვან ანგარიშის ვარა ოჩიებელ ხასჷლაშ ლინკიშ გეჸუნათ. თქვანი ელ-ფოშტაშ მიოწურაფუ ვანკორჩქინდჷ მუჟამს შხვა მახვარებუეფი დჷგეკავშირებუნანი.",
+       "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": "ამ კონფიგურაციის არჩევა შედეგს გამოიღებს შემდგომი ავტორიზაციის შედმეგ.",
+       "prefswarning-warning": "თქვენ შეიტანეთ ცვლილება თქვენ პარამეტრებში, რომელიც ჯერ კიდევ არ არის შენახული. თუ თქვენ დატოვებთ ამ გვერდს და არ დააჭერთ \"$1\"-ს, პარამეტრები არ იქნება განახლებული.",
+       "prefs-tabs-navigation-hint": "რჩევა: თქვენ შეგიძლიათ გამოიყენოთ ისრის კლავიშები მარცხნივ ან მარჯვნივ ჩანართებსა და ჩანართბის სიას შორის არსებული გადასვლებისათვის",
+       "email-address-validity-valid": "ელ-ფოსტის მისამართი სწორად გამოიყურება",
+       "email-address-validity-invalid": "მიუთითეთ სწორი ელ-ფოსტის მისამართი",
+       "userrights": "მომხმარებელთა უფლებების მართვა",
+       "userrights-lookup-user": "მომხმარებელთა ჯგუფების მართვა",
+       "userrights-user-editname": "შეიტანეთ მომხმარებლის სახელი:",
+       "editusergroup": "მომხმარებელთა ჯგუფების რედაქტირება",
+       "editinguser": "უფლებების შეცვლა {{GENDER:$1|მომხმარებლისთვის}} <strong>[[User:$1|$1]]</strong> $2",
+       "userrights-editusergroup": "დაარედაქტირეთ მომხმარებელთა ჯგუფები",
+       "saveusergroups": "მომხმარებელთა ჯგუფების შენახვა",
+       "userrights-groupsmember": "ჯგუფის წევრი:",
+       "userrights-groupsmember-auto": "ნაგულისხმევი წევრი:",
+       "userrights-reason": "სამანჯელი:",
+       "userrights-no-interwiki": "თქვენ არ გაქვთ მომხმარებლის უფლებების რედაქტირების უფლება სხვა ვიკი-ებში.",
+       "userrights-nodatabase": "მონაცემთა ბაზა $1 არ არსებობს, ან არ არის ლოკალური.",
+       "userrights-nologin": "თქვენ უნდა [[Special:UserLogin|წარადგინოთ თავი სისტემისადმი]] ადმინისისტრატორის ანგარიშით იმისთვის, რომ გასცეთ მომხმარებელთა უფლებები.",
+       "userrights-notallowed": "თქვენ არ გაქვთ მომხმარებელთა უფლებების შეცვლის უფლება.",
+       "userrights-changeable-col": "ჯგუფები, რომლებიც შეგიძლიათ შეცვალოთ",
+       "userrights-unchangeable-col": "ჯგუფები, რომლებიც არ შეგიძლიათ შეცვალოთ",
+       "userrights-conflict": "მომხმარებელთა უფლებების კონფლიქტი! გთხოვთ ხელმეორედ შეინახოთ თქვენი ცვლილებები.",
+       "userrights-removed-self": "თქვენ წარმატებით წაშალეთ საკუთარი უფლება. შესაბამისად, თქვენ აღარ გექნებათ ამ გვერდთან წვდომის საშუალება",
+       "group": "ჯგუფი:",
        "group-user": "მახვარებუეფი",
+       "group-autoconfirmed": "ავტომატურად დადასტურებული მომხმარებლები",
+       "group-bot": "რობოტები",
        "group-sysop": "ადმინისტრატორეფი",
+       "group-bureaucrat": "ბიუროკრატები",
+       "group-suppress": "ზედამხედველები",
+       "group-all": "(ყველა)",
+       "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}}:მახვარებუეფ",
+       "grouppage-autoconfirmed": "{{ns:project}}:ავტომატურად დადასტურებული მომხმარებლები",
+       "grouppage-bot": "{{ns:project}}:რობოტები",
        "grouppage-sysop": "{{ns:project}}:ხემანჯღვერეფი",
+       "grouppage-bureaucrat": "{{ns:project}}:ბიუროკრატები",
+       "grouppage-suppress": "{{ns:project}}:ზედამხედველები",
+       "right-read": "გვერდების წაკითხვა",
+       "right-edit": "გვერდების რედაქტირება",
+       "right-createpage": "გვერდების შექმნა (არა განხილვის გვერდებისა)",
+       "right-createtalk": "განხილვის გვერდების შექმნა",
+       "right-createaccount": "მომხმარებლების ახალი ანგარიშების შექმნა",
+       "right-minoredit": "ცვლილებების მითითება, როგორც „მცირე რედაქტირება“",
+       "right-move": "ხასილაშ გინოღალა",
+       "right-move-subpages": "გვერდები გადამისამართდეს ქვეგვერდებთან ერთად",
+       "right-move-rootuserpages": "მომხმარებელთა ძირი გვერდების გადატანა",
+       "right-move-categorypages": "კატეგორიის გვერდების გადატანა",
+       "right-movefile": "ფაილების გადატანა",
+       "right-suppressredirect": "არ იქმნება გადამისამართება ძველი სახელიდან გვერდითვის სახელის შეცვლის შემთხვევაში",
+       "right-upload": "გეხარგე ფაილეფი",
+       "right-reupload": "არსებულ ფაილებზე ზევიდან გადაწერა",
+       "right-reupload-own": "ფაილის გადაწერა იგივე მომხმარებლის მიერ",
+       "right-reupload-shared": "ფაილთა შეცვლა საერთო საცავიდან ლოკალურებით",
+       "right-upload_by_url": "ფაილის ატვირთვა URL-დან",
+       "right-purge": "ქეშის გაწმენდა დადასტურების გვერდის გარეშე",
+       "right-autoconfirmed": "სიჩქარის შეზღუდვა IP მისამართზე არ არის",
+       "right-bot": "ჩაითვალო ავტომატურ პროცესად",
+       "right-nominornewtalk": "მცირე რედაქტირებების არ ქონის შემთხვევაში ჩაირთვება ახალ შეტყობინებათა რეჟიმი",
+       "right-apihighlimits": "ნაკლები შეზღუდვა API-მოთხოვნებზე",
+       "right-writeapi": "API-ს გამოყენება ჩაწერისთვის",
+       "right-delete": "ხასილაშ ლასუა",
+       "right-bigdelete": "გრძელი ისტორიის გვერდების წაშლა",
+       "right-deletelogentry": "ჟურნალის კონკრეტული ჩანაწერების წაშლა და აღდგენა",
+       "right-deleterevision": "გვერდის კონკრეტული ვერსიების წაშლა და აღდგენა",
+       "right-deletedhistory": "წაშლილი გვერდების ხილავა წაშლილ ტექსთან ურთიერთობის გარეშე",
+       "right-deletedtext": "წაშლილი ტექსტის და განსხვავებების ხილვა.",
+       "right-browsearchive": "წაშლილი გვერდების ძიება",
+       "right-undelete": "გვერდის აღდგენა",
+       "right-suppressrevision": "გვერდების დამალული ვერსიების ხილვა, დამალვა და აღდგენა ყველა მომხმარებლისგან",
+       "right-viewsuppressed": "ვერსიის ხილვა, რომელიც დამალულია ყველა მომხმარებლისათვის",
+       "right-suppressionlog": "კერძო ჟურნალების ნახვა",
+       "right-block": "სხვა მომხმარებლების მიერ რედაქტირების აკრძალვა",
+       "right-blockemail": "ელ ფოსტის გაგზავნის აკრძალვა",
+       "right-hideuser": "მომხმარებლის სახელის დაბლოკვა და მისი დამალვა საზოგადოებისგან",
+       "right-ipblock-exempt": "IP ბლოკის, ავტობლოკის და დიაპაზონთა ბლოკის გასვლა",
+       "right-proxyunbannable": "პროქსის ავტობლოკის გადასვლა",
+       "right-unblockself": "საკუთარი თავის განბლოკვა",
+       "right-protect": "გვერდების დაცვის დონის შეცვლა და კასკადურად დაცული გვერდების რედაქტირება",
+       "right-editprotected": "გვერდების რედაქტირება რომლებიც დაცულია როგორც „{{int:protect-level-sysop}}“",
+       "right-editsemiprotected": "გვერდების რედაქტირება რომლებიც დაცულია როგორც „{{int:protect-level-autoconfirmed}}“",
+       "right-editcontentmodel": "გვერდის კონტენტური მოდელის რედაქტირება",
+       "right-editinterface": "მომხმარებლის ინტერფეისის შეცვლა",
+       "right-editusercssjs": "სხვა მომხმარებლების CSS და JavaScript ფაილების შესწორება",
+       "right-editusercss": "სხვა მომხმარებლების CSS-ფაილების შესწორება",
+       "right-edituserjs": "სხვა მომხმარებლების JavaScript-ფაილების შესწორება",
+       "right-editmyusercss": "თქვენი საკუთარი CSS-ფაილების რედაქტირება",
+       "right-editmyuserjs": "თქვენი საკუთარი JavaScript-ფაილების რედაქტირება",
+       "right-viewmywatchlist": "თქვენი კონტროლის სიის ხილვა",
+       "right-editmywatchlist": "თქვენი კონტროლის სიის რედაქტირება; მიაქციეთ ყურადღება, რომ ზოგიერთი ქმედება დაამატებს გვერდებს ასეთი უფლების გარეშეც",
+       "right-viewmyprivateinfo": "თქვენი საკუთარი პირადი მონაცემების ხილვა (მაგ. ელ.ფოსტა, ნამდვილი სახელი)",
+       "right-editmyprivateinfo": "თქვენი საკუთარი პირადი მონაცემების რედაქტირება (მაგ. ელ.ფოსტა, ნამდვილი სახელი)",
+       "right-editmyoptions": "თქვენი საკუთარი კონფიგურაციის რედაქტირება",
+       "right-rollback": "გარკვეულ გვერდზე ბოლო მომხმარებლის რედაქტირების სწრაფი გაუქმება",
+       "right-markbotedits": "გაუქმებული შესწორებების მონიშვნა როგორც ბოტის",
+       "right-noratelimit": "სიჩქარის შეზღუდვის არ არსებობა",
+       "right-import": "გვერდების იმპორტი სხვა ვიკიდან",
+       "right-importupload": "გვერდების იმპორტი ფაილების ატვირთვიდან",
+       "right-patrol": "შესწორების პატრულირებულად მონიშვნა",
+       "right-autopatrol": "შესწორებები ავტომატურად აღინიშნება როგორც პატრულირებადი",
+       "right-patrolmarks": "პატრულირების ინფორმაცის ხილვა ბოლო ცვლილებებში",
+       "right-unwatchedpages": "არაკონტროლირებადი გვერდების სიის ხილვა",
+       "right-mergehistory": "გააერთიანეთ გვერდების ისტორია",
+       "right-userrights": "ყველა მომხმარებლის უფლებების შეცვლა",
+       "right-userrights-interwiki": "შეასწორეთ მომხმარებელთა უფლებები სხვა ვიკიზე",
+       "right-siteadmin": "მონაცემთა ბაზის დაბლოკვა და განბლოკვა",
+       "right-override-export-depth": "გვერდების ექსპორტირება, დაკავშირებული გვერდების ჩათვლით 5-მდე სიიღრმით",
+       "right-sendemail": "გაგუგზავნე ელექტრონული ფოსტა სხვა მომხმარებლებს",
+       "right-passwordreset": "ელ.ფოსტის ნახვა პაროლის შეცვლით",
+       "right-managechangetags": "[[Special:Tags|tags]] შექმნა და წაშლა მონაცემთა ბაზიდან",
+       "right-applychangetags": "[[Special:Tags|tags]] მიღება თქვენ ცვლილებებთან ერთად",
+       "right-changetags": "თვითნებური [[Special:Tags|tags]] დამატება ან წაშლა ცალკეულ ცვლილებებსა და ჟურნალის ჩანაწერებში",
        "newuserlogpage": "მახვარებუშ რეგისტრაციაშ ჟურნალ",
+       "newuserlogpagetext": "ბოლო დროს დარეგისტრირებულ მომხმარებელთა სია.",
        "rightslog": "მახვარებუშ ნებეფიშ ჟურნალ",
+       "rightslogtext": "მომხმარებელთა უფლებების ცვლილებათა ჟურნალი.",
+       "action-read": "ამ გვერდის კითხვა",
        "action-edit": "თე ხასილაშ რედაქტირაფა",
+       "action-createpage": "გვერდების შექმნა",
+       "action-createtalk": "განხილვის გვერდების შექმნა",
+       "action-createaccount": "ამ ანგარიშის შექმნა",
+       "action-history": "ამ გვერდის ისტორიის ნახვა",
+       "action-minoredit": "მონიშვნა, როგორც მცირე რედაქტირება",
+       "action-move": "ამ გვერდის გადატანა",
+       "action-move-subpages": "გვერდისა და მისი ქვეგვერდების გადატანა",
+       "action-move-rootuserpages": "მომხმარებელთა საბაზისო გვერდების გადატანა",
+       "action-move-categorypages": "კატეგორიის გვერდების გადატანა",
+       "action-movefile": "ფაილის გადატანა",
+       "action-upload": "ამ ფაილის ატვირთვა",
+       "action-reupload": "არსებულ ფაილზე გადაწერა",
+       "action-reupload-shared": "საერთო საცავიდან ფაილის გადაკეტვა",
+       "action-upload_by_url": "ატვირთეთ ფაილი URL-დან",
+       "action-writeapi": "API-ს გამოყენება რედაქტირებისთვის",
+       "action-delete": "თე ხასილაშ ლასუა",
+       "action-deleterevision": "გვერდის ამ ვერსიის წაშლა",
+       "action-deletedhistory": "ამ გვერდის წაშლილი ისტორიის ხილვა",
+       "action-browsearchive": "წაშლილი გვერდების ძიება",
+       "action-undelete": "ამ გვერდის აღდგენა",
+       "action-suppressrevision": "გვერდის ამ დაფარული ვერსიის ნახვა და აღდგენა",
+       "action-suppressionlog": "ამ კერძო ჟურნალის ხილვა",
+       "action-block": "ამ მომხმარებლისთვის რედაქტირების დაბლოკვა",
+       "action-protect": "ამ გვერდის დაცვის დონის შეცვლა",
+       "action-rollback": "გარკვეულ გვერდზე ბოლო მომხმარებლის რედაქტირების სწრაფი გაუქმება",
+       "action-import": "გვერდების იმპორტი სხვა ვიკიდან",
+       "action-importupload": "გვერდების იმპორტი ატვირთული ფაილიდან",
+       "action-patrol": "სხვა მომხმარებლის შესწორების მონიშვნა შემოწმებულად",
+       "action-autopatrol": "თქვენი ცვლილების მონიშვნა პატრულირებადით",
+       "action-unwatchedpages": "იმ გვერდების ხილვა, რომლებიც არავის კონტროლში არ არის შესული",
+       "action-mergehistory": "ამ გვერდის ისტორიის შერწყმა",
+       "action-userrights": "მომხმარებელთა უფლებების ცვლილება",
+       "action-userrights-interwiki": "მომხმარებლების უფლებების შეცვლა სხვა ვიკიებში",
+       "action-siteadmin": "მონაცემთა ბაზის დაბლოკვა და განბლოკვა",
+       "action-sendemail": "ელ-ფოსტების გაგზავნა",
+       "action-editmywatchlist": "თქვენი კონტროლის სიის რედაქტირება",
+       "action-viewmywatchlist": "თქვენი კონტროლის სიის ხილვა",
+       "action-viewmyprivateinfo": "თქვენი პირადი ინფორმაციის ხილვა",
+       "action-editmyprivateinfo": "თქვენი პირადი ინფორმაციის რედაქტირება",
+       "action-editcontentmodel": "გვერდის კონტენტური მოდელის რედაქტირება",
+       "action-managechangetags": "დასათაურების შექმნა და წაშლა მონაცემთა ბაზიდან",
+       "action-applychangetags": "ტეგების მიღება თქვენ ცვლილებებთან ერთად",
+       "action-changetags": "თავისუფალი ტეგების დამატება და წაშლა ცალკეულ ცვლილებებსა და ჟურნალების ჩანაწერებში",
        "nchanges": "$1 {{PLURAL:$1|თირაფა|თირაფეფ}}",
+       "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|ბოლო ვიზიტის შემდეგ}}",
        "enhancedrc-history": "ისტორია",
        "recentchanges": "ასეიანი თირაფეფი",
        "recentchanges-legend": "ასერდენ თირაფეფიშ ოფციეფ",
        "recentchanges-summary": "თე ხასჷლას ქაძირი ვიკიშა მიშაღალირ არძოშ უახალაშ თირაფეფი.",
+       "recentchanges-noresult": "მითითებულ პერიოდსა და სახელთა სივრცეში ცვლილებები არ არის.",
        "recentchanges-feed-description": "ვიკიშ უახალაშ თირაფეფიშა თოლყ'უჯიშ მეყ'უნაფა თე არხის",
        "recentchanges-label-newpage": "ათე რედაქტირაფას მაჸუნ ახალ ხასჷლაშ დორსხუაფაქ.",
        "recentchanges-label-minor": "თენა რე ციქა რედაქტირაფა",
        "recentchanges-label-unpatrolled": "თე რედაქტირაფა დიო ხოლო ვა რე პატრულირაფირი",
        "recentchanges-label-plusminus": "თირაფეფიშ ზჷმა ბაიტეფს",
        "recentchanges-legend-heading": "'''ლეგენდა:'''",
-       "rcnotefrom": "თუდო მოჸუნაფილიე თირაფეფ, ”’$2””-შე (ძირაფილიე ”’$1”’)",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (იხ. აგრეთვე [[Special:NewPages|ახალი გვერდების სია]])",
+       "rcnotefrom": "ქვემოთ {{PLURAL:$5|ნაჩვენებია ცვლილება|ნაჩვენებია ცვლილებები}} <strong>$3, $4</strong>-დან (ნაჩვენებია არაუმეტეს <strong>$1</strong>).",
        "rclistfrom": "ახალ თირაფეფიშ ძირაფა დოჭყაფილ $3 $2-შე",
        "rcshowhideminor": "$1 ჭიჭე რედაქტირაფეფი",
        "rcshowhideminor-show": "ძირაფა",
        "rcshowhidebots": "ბოტეფიშ  $1",
        "rcshowhidebots-show": "ძირაფა",
        "rcshowhidebots-hide": "ტყობინაფა",
-       "rcshowhideliu": "$1 მიშულირ მახვარებუეფ",
+       "rcshowhideliu": "$1 რეგისტრირებული მომხმარებელი",
+       "rcshowhideliu-show": "ძირაფა",
        "rcshowhideliu-hide": "ტყობინაფა",
        "rcshowhideanons": "$1 ანონიმურ მახვარებუეფი",
        "rcshowhideanons-show": "ძირაფა",
        "rcshowhideanons-hide": "ტყობინაფა",
        "rcshowhidepatr": "გოკონტროლაფირ თირაფეფიშ $1",
+       "rcshowhidepatr-show": "ძირაფა",
+       "rcshowhidepatr-hide": "ტყობინაფა",
        "rcshowhidemine": "ჩქიმ რედაქტირაფეფიშ $1",
        "rcshowhidemine-show": "ძირაფა",
        "rcshowhidemine-hide": "ტყობინაფა",
        "minoreditletter": "ჭ.რ.",
        "newpageletter": "ახ.",
        "boteditletter": "ბ",
+       "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|მომხმარებლის|მომხმარებლის}} კონტროლი]",
+       "rc_categories": "მხოლოდ კატეგორიებიდან (განაცალკევეთ \"|\"-ის მიხედვით)",
+       "rc_categories_any": "ნებისმიერი",
        "rc-change-size-new": "ზჷმა თირუაშ უკული რე: {{PLURAL:$1|ბაიტი|ბაიტი}}",
-       "rc-enhanced-expand": "დეტალეფიშ ძირაფა (ითხინს ჯავასქრიფთის)",
+       "newsectionsummary": "/* $1 */ ახალი სექცია",
+       "rc-enhanced-expand": "დეტალების  ჩვენება",
        "rc-enhanced-hide": "დეტალეფიშ ტყობინაფა",
+       "rc-old-title": "თავდაპირველად შექმნილი როგორც „$1“",
        "recentchangeslinked": "აკოხვალამირ თირაფეფ",
        "recentchangeslinked-feed": "აკოხვალამირ თირაფეფ",
        "recentchangeslinked-toolbox": "აკოხვალამირ თირაფეფი",
        "recentchangeslinked-to": "მანგიერო ქაძირე ათე ხასილაშა მერცხილ ხასილეფშა მიშაღალირ თირაფეფ",
        "upload": "ფაილიშ ეხარგუა",
        "uploadbtn": "ფაილიშ გეთება",
+       "reuploaddesc": "გააუქმეთ ატვირთვა და დაუბრუნდით ატვირთვის ფორმას",
+       "upload-tryagain": "შეინახეთ ფაილის შეცვლილი აღწერა",
+       "uploadnologin": "რეგისტრაცია არ გაქვთ გავლილი",
+       "uploadnologintext": "ფაილის ასატვირთად თქვენ უნდა $1.",
+       "upload_directory_missing": "შესანახი დირექტორია ($1) არ არსებობს და მისი აღდგენა ვებ-სერვერის მიერ შეუძლებელია.",
        "uploadlogpage": "ეხარგუაშ ორეგისტრირებელ ჟურნალ",
+       "filename": "ფაილის სახელი",
        "filedesc": "რეზიუმე",
+       "fileuploadsummary": "რეზიუმე:",
+       "filereuploadsummary": "ფაილის ცვლილებები:",
+       "filestatus": "საავტორო უფლებების სტატუსი:",
+       "filesource": "წყუ:",
+       "ignorewarning": "გაფრთხილება უგულებელყავი და მაინც შეინახე ფაილი.",
+       "ignorewarnings": "უგულებელყავი ნებისმიერი გაფრთხილება",
+       "minlength1": "ფაილის სახელი უნდა იყოს არანაკლებ ერთი ასო.",
+       "illegalfilename": "ფაილის სახელი \"$1\" შეიცავს სიმბოლოებს, რომელთა გამოყენებაც არ არის ნებადართული სათაურებში. გთხოვთ, შეცვალოთ ფაილის სახელი და სცადოთ მისი ხელმეორედ ჩატვირთვა.",
+       "filename-toolong": "ფაილების სახელები არ უნდა აჭარბებდეს 240 ბაიტს.",
+       "badfilename": "ფაილის დასახელება შეცვლილია \"$1\"-ით.",
+       "filetype-mime-mismatch": "ფაილის გაფართოება \".$1\" არ შეესაბამება აღმოჩენილ MIME ტიპის ($2) ფაილს.",
+       "filetype-badmime": "\"$1\" MIME ტიპის ფაილების ატვირთვა დაშვებული არ არის.",
+       "filetype-bad-ie-mime": "შეუძლებელია ფაილის ატვირთვა, რადგანა Internet Explorer-ი აღიქვამს მას როგორც \"$1\", რაც აკრძალულია და პოტენციურად სახიფათო ფაილია.",
+       "filetype-unwanted-type": "<strong>\".$1\"</strong> — ფაილის არასასურველი ტიპია.\n{{PLURAL:$3|ფაილის სასურველი ტიპია|ფაილების სასურველი ტიპები:}} $2.",
+       "filetype-banned-type": "<strong>\".$1\"</strong> {{PLURAL:$4|მიუღებელი ფაილის ტიპია|მიუღებელი ფაილის ტიპია}}.\nმიღებული ფაილის {{PLURAL:$3|ტიპია|ტიპებია}} $2.",
+       "filetype-missing": "ფაილს არ აქვს გაფართოება (მაგ. \".jpg\").",
+       "empty-file": "არჩეული ფაილი ცარიელია.",
+       "file-too-large": "ფაილი ძალიან დიდია.",
+       "filename-tooshort": "ფაილის სახელი ზედმეტად მოკლეა.",
+       "filetype-banned": "ფაილის ეს ტიპი აკრძალულია.",
+       "verification-error": "ამ ფაილმა არ გაიარა შემოწმების პროცედურა.",
+       "hookaborted": "თქვენ მიერ შემოთავაზებული ცვლილება მოინიშნა გაფართოების დოკუმენტაციაში.",
+       "illegal-filename": "ფაილის ეს სახელი აკრძალულია.",
+       "overwrite": "არსებული ფაილის შეცვლა მიუღებელია.",
+       "unknown-error": "აღმოჩენილია უცნობი შეცდომა.",
+       "tmp-create-error": "შეუძლებელია დროებითი ფაილის შექმნა.",
+       "tmp-write-error": "დროებითი ფაილის წერისას შეცდომა.",
+       "large-file": "სასურველია ფაილი არ აღემატებოდეს $1-ს; \nეს ფაილია $2.",
+       "largefileserver": "ეს ფაილი სერვერის მიერ დაშვებულ ზომას აღემატება.",
+       "emptyfile": "თქვენს მიერ ჩატვირთული ფაილი ცარიელია. \nშესაძლოა, შეცდომა მოხდა ფაილის სახელის აკრეფის დროს. \nგთხოვთ შეამოწმოთ ნამდვილად გსურთ თუ არა ამ ფაილის ჩატვირთვა.",
+       "windows-nonascii-filename": "ამ ვიკის არ გააჩნია სპეციალური სიმბოლოების მქონე ფაილის სახელების მხარდაჭერა.",
+       "uploadwarning": "გადატვირთვის შეხსენება",
+       "uploadwarning-text": "გთხოვთ ჩაასწოროთ ფაილის აღწერა ქვევით და ხელმეორედ სცადოთ.",
+       "savefile": "ფაილის შენახვა",
+       "uploaddisabled": "ატვირთვა გამორთულია.",
+       "copyuploaddisabled": "URL ატვირთვა გათიშულია.",
+       "uploaddisabledtext": "ფაილების ატვირთვა შეუძლებელია.",
+       "php-uploaddisabledtext": "ფაილების ატვირთვა შეჩერებულია PHP-ით. გთხოვთ შეამოწმოთ file_uploads-ის მნიშვნელობა.",
+       "uploadscripted": "ფაილი შეიცავს HTML-კოდს, ან სკრიპტს, რომელიც ბროუზერმა შეიძლება არასწორედ გაანალიზოს.",
+       "uploadscriptednamespace": "ეს SVG ფაილი შეიცავს სახელთა არაკორექტულ სივრცეს \"$1\".",
+       "uploadinvalidxml": "XML ჩატვირთულ ფაილში არ შეიძლება იყოს ანალიზირებული.",
+       "uploadvirus": "ფაილი ვირუსს შეიცავს! \nდეტალები: $1",
+       "uploadjava": "ეს არის ZIP-ფაილი, რომელიც Java .class ფაილს შეიცავს.\nჯავა-ფაილების ატვირთვა დაუშვებელია, ვინაიდან მათ შესაძლოა შეზღუდონ უსაფრთხოება.",
+       "upload-source": "ფაილის წყარო",
+       "sourcefilename": "წყარო:",
+       "sourceurl": "წყაროს URL:",
+       "destfilename": "საბოლოო სახელი:",
+       "upload-maxfilesize": "ფაილის მაქსიმალური ზომაა $1",
+       "upload-description": "ფაილის აღწერა",
+       "upload-options": "ატვირთვის პარამეტრები",
+       "watchthisupload": "უთვალთვალე ამ ფაილს",
+       "filewasdeleted": "ამ სახელწოდების ფაილი უკვე არსებობდა, მაგრამ წაშლილ იქნა. ხელმეორედ ჩატვირთვამდე იხილეთ $1.",
+       "upload-success-subj": "წარმატებული ატვირთვა",
+       "upload-success-msg": "თქვენი ატვირთვა [$2] შეგიძლიათ იხილოთ აქ: [[:{{ns:file}}:$1]]",
+       "upload-failure-subj": "ატვირთვის პრობლემა",
+       "upload-failure-msg": "ატვირთვისას პრობლემა შეიქმნა [$2]:\n\n$1",
+       "upload-warning-subj": "ატვირთვისთვის გაფრთხილება",
+       "upload-warning-msg": "[$2]-ის ატვირთვისას დაფიქსირდა შეცდომა. შეცდომის გამოსასწორებლად დაბრუნდით [[Special:Upload/stash/$1|ატვირთვის ფორმა]]ზე.",
+       "upload-proto-error": "არასწორი პროტოკოლი",
+       "upload-proto-error-text": "ატვირთვის წასაშლელად საჭიროა მისამართი, რომელიც იწყება <code>http://</code> or <code>ftp://</code>-ით.",
+       "upload-file-error": "შიდა შეცდომა",
+       "upload-file-error-text": "შიდა შეცდომა სერვერზე დროებითი ფაილის შექმნისას. გთხოვთ მიმართოთ [[Special:ListUsers/sysop|სისტემურ ადმინისტრატორს]].",
+       "upload-misc-error": "უცნობია ატვირთვის შეცდომა",
+       "upload-misc-error-text": "ატვირთვისას უცნობი სახის შეცდომა გაიპარა.\nგთხოვთ შეამოწმოთ თუ URL სწორია და ხელმისაწვდომია და ისევ სცადოთ.\nთუ პრობლემა ვერ გადაიჭრა, მიმართეთ [[Special:ListUsers/sysop|ადმინისტრატორს]].",
+       "upload-too-many-redirects": "URL შეიცავს ძალიან ბევრ გადამისამართებებს",
+       "upload-http-error": "მოხდა HTTP შეცდომა: $1",
+       "upload-copy-upload-invalid-domain": "ამ დომენში ატვირთვების კოპირება არ არის ხელმისაწვდომი.",
+       "backend-fail-stream": "ფაილი $1 ტრანსლირება ვერ მოხერხდა.",
+       "backend-fail-backup": "ფაილი $1 სარეზერვო ასლის გაკეთება ვერ მოხერხდა.",
+       "backend-fail-notexists": "ფაილი $1 არ არსებობს.",
+       "backend-fail-hashes": "შედარებისათვის ფაილების ჰეშების მიღება ვერ მოხერხდა.",
+       "backend-fail-notsame": "უკვე არსებობს  ფაილი „$1“, რომელიც არაა იდენტური.",
+       "backend-fail-invalidpath": "„$1“ არ წარმოადგენს შენახვის ხელმისაწვდომ გზას.",
+       "backend-fail-delete": "ფაილი „$1“-ის წაშლა ვერ მოხერხდა.",
+       "backend-fail-describe": "შეუძლებელია მეტამონაცემების შეცვლა ფაილისათვის „$1“",
+       "backend-fail-alreadyexists": "ფაილი „$1“ უკვე არსებობს.",
+       "backend-fail-store": "ფაილი „$1“-ის შენახვა „$2“-ზე ვერ მოხერხდა.",
+       "backend-fail-copy": "ფაილი „$1“-ის კოპირება „$2“-ში ვერ მოხერხდა.",
+       "backend-fail-move": "ფაილი „$1“-ის გადატანა „$2“-ში ვერ მოხერხდა.",
+       "backend-fail-opentemp": "დროებითი ფაილის გახსნა ვერ ხერხდება.",
+       "backend-fail-writetemp": "დროებითი ფაილის დაწერა ვერ ხერხდება.",
+       "backend-fail-closetemp": "დროებითი ფაილის დახურვა ვერ ხერხდება.",
+       "backend-fail-read": "ფაილი „$1“-ის წაკითხვა ვერ მოხერხდა.",
+       "backend-fail-create": "ფაილი „$1“-ის ჩაწერა ვერ მოხერხდა.",
+       "backend-fail-maxsize": "ფაილი „$1“-ის ჩაწერა ვერ მოხერხდა, რადგანაც მისი ზომა აჭარბებს {{PLURAL:$2|ერთ ბაიტს|$2 ბაიტს}}.",
+       "backend-fail-readonly": "საცავი \"$1\" ამჟამად ხელმისაწვდომია მხოლოდ წაკითხვის რეჟიმში. მიზეზი: \"$2\"",
+       "backend-fail-synced": "ფაილი \"$1\" იმყოფება შიდა საცავის შეუთანხმებელ მდგომარეობაში",
+       "backend-fail-connect": "\"$1\" საცავთან დაკავშირება ვერ მოხერხდა.",
+       "img-auth-noread": "მომხმარებელს არა აქვს ნებართვა \"$1\"-ის წასაკითხად.",
+       "http-invalid-url": "არასწორი ბმული: $1",
+       "http-invalid-scheme": "„$1“ სქემის მქონე მისამართები მხარდაჭერილები არ არიან.",
+       "http-request-error": "HTTP მოთხოვნის შეცდომა უცნობი მიზეზის გამო.",
+       "http-read-error": "HTTP წაკითხვის შეცდომა.",
+       "http-timed-out": "HTTP მოთხოვნის დრო გავიდა.",
+       "http-curl-error": "შეცდომა URL: $1-ის მოთხოვნისას",
+       "http-bad-status": "HTTP მოთხოვნისას აღმოჩენილია შეცდომა - $1 $2",
+       "upload-curl-error6": "URL მიუწვდომელია",
+       "upload-curl-error6-text": "წარმოდგენილი URL-ის მიგნება შეუძლებელია.\nგთხოვთ შეამოწმოთ URL-ის სისწორე და ვებ-მისამართის ფუნქციონირება.",
+       "upload-curl-error28": "ატვირთვაზე გამოყოფილი დრო ამოწურულია.",
+       "upload-curl-error28-text": "საიტს ძალიან დიდი ხანი დასჭირდა გამოხმაურებისთვის.\nგთხოვთ შეამოწმოთ, რომ საიტი მუშაობს და მცირე ხნის შემდეგ კვლავ სცადეთ.\nალბათ სასურველია ოპერაცია ნაკლებად გადატვირთულ დროს სცადოთ.",
        "license": "ლიცენზირაფა:",
        "license-header": "ლიცენზირაფა",
+       "nolicense": "არაფერი არის მონიშნული",
+       "licenses-edit": "ლიცენზიის პარამეტრების რედაქტირება",
+       "license-nopreview": "(წინასწარ გადახედვა არ არის ხელმისაწვდომი)",
+       "upload_source_url": "(თქვენ აირჩიეთ სწორი, საზოგადოდ ხელმისაწვდომი URL)",
+       "upload_source_file": "(თქვენ აირჩიეთ ფაილი თქვენი კომპიუტერიდან)",
+       "listfiles-delete": "წაშლა",
+       "listfiles-summary": "ეს სპეციალური გვერდი აჩვენებს ყველა ატვირთულ ფაილს.",
+       "listfiles_search_for": "ძიება სურათის სახელის მიხედვით:",
+       "listfiles-userdoesnotexist": "მომხმარებლის ანგარიში „$1“ არ არის რეგისტრირებული.",
        "imgfile": "ფაილი",
        "listfiles": "სურათეფიშ ერკებულ",
+       "listfiles_thumb": "ჭკუდი",
+       "listfiles_date": "თარიღი",
        "listfiles_name": "სახელ",
+       "listfiles_user": "მახვარებუ",
+       "listfiles_size": "ზომა",
+       "listfiles_description": "ეჭარუა",
+       "listfiles_count": "ვერსიები",
+       "listfiles-show-all": "სურათების ძველი ვერსიების ჩართვა",
+       "listfiles-latestversion": "მიმდინარე ვერსია",
+       "listfiles-latestversion-yes": "ქო",
+       "listfiles-latestversion-no": "არა",
        "file-anchor-link": "ფაილი",
        "filehist": "ფაილიშ ისტორია",
        "filehist-help": "ქიგუნჭირით რიცხვის/ბორჯის თიშო, ნამდა ქოძირათ ფაილი თი რედაქციათ, მუ რედაქციას თი რიცხვის/ბორჯის რდუნ.",
+       "filehist-deleteall": "წაშალე ყველა",
+       "filehist-deleteone": "ლასუა",
        "filehist-revert": "დართინე",
        "filehist-current": "მიმალი",
        "filehist-datetime": "რიცხუ/ბორჯი",
        "filehist-thumb": "ჭკუდი",
        "filehist-thumbtext": "ჭკუდი $1-შო რსებულ ვერსიაშო",
+       "filehist-nothumb": "არ არის მინიატურა",
        "filehist-user": "მახვარებუ",
        "filehist-dimensions": "განზომილებეფი",
        "filehist-filesize": "ფაილიშ ზომა",
        "sharedupload": "თე ფაილ რე $1-შე დო შილებე თენა შხვა პროექტეფც ხოლო გიმირინაუფუდასინ",
        "sharedupload-desc-here": "თე ფაილი რე $1-შე დო შილებე გჷმორნაფილქ იჸუას შხვა პროექტეფს. თეშ ეჭარუა [$2 ფაილიშ ეჭარუაშ ხასჷლა] თუდოლე რე მოჩამილი.",
        "uploadnewversion-linktext": "გეშახარგე ათე ფაილიშ ახალ ვერსია",
+       "shared-repo-from": " $1-დან",
        "upload-disallowed-here": "თქვა ვა შეილებუნა თე ფაილიშ გჷნოჭაუა.",
+       "filerevert": "დააბრუნე $1",
+       "filerevert-legend": "დააბრუნე ფაილი",
+       "filerevert-intro": "<span class=\"plainlinks\">თქვენ აბრუნებთ <strong>[[Media:$1|$1]]</strong> [$4 ვერსიას $3, $2]-თან.</span>",
+       "filerevert-comment": "სამანჯელი:",
+       "filerevert-defaultcomment": "დაბრუნება ვერსიასთან $2, $1-დან",
+       "filerevert-submit": "გოუქვაფა",
+       "filerevert-success": "<strong>[[Media:$1|$1]]</strong> დაუბრუნდა ვერსიას [$4  $3, $2]-დან.",
+       "filerevert-badversion": "არ არსებობს ფაილის წინა ლოკალური ვერსია მოთხოვნილი  თარიღითა და დროით.",
+       "filedelete": "$1 წაშლა",
+       "filedelete-legend": "ფაილის წაშლა",
+       "filedelete-intro": "თქვენ შლით <strong>[[Media:$1|$1]]</strong> მისი ისტორიით.",
+       "filedelete-intro-old": "<span class=\"plainlinks\">თქვენ შლით ვერსიას <strong>[[Media:$1|$1]]</strong> [$4 $3, $2]-დან.</span>",
+       "filedelete-comment": "სამანჯელი:",
+       "filedelete-submit": "ლასუა",
+       "filedelete-success": "<strong>$1</strong> წაშლილია.",
+       "filedelete-otherreason": "შხვა/გეძინელ სამანჯელ:",
+       "filedelete-reason-otherlist": "შხვა სამანჯელ",
+       "filedelete-reason-dropdown": "* წაშლის ხშირი მიზეზები\n** საავტორო უფლებების დარღვევა\n** ფაილი-დუბლიკატი",
+       "filedelete-edit-reasonlist": "წაშლის მიზეზების რედაქტირება",
+       "filedelete-maintenance": "ფაილების წაშლა და აღდგენა დროებით გათიშულია ტექნიკური სამუშაობის განმავლობაში.",
+       "filedelete-maintenance-title": "ფაილის წაშლა ვერ ხერხდება",
        "mimesearch": "MIME გორუა",
+       "mimesearch-summary": "ამ გვერდის მეშვეობით შესაძლებელია ფაილების მოძიება მათი MIME-ტიპის მიხედვით. შეტანის ფორმა: შიგთავსის ტიპი/ქვეტიპი, მაგ <code>image/jpeg</code>.",
+       "mimetype": "MIME ტიპი:",
+       "download": "გადმოწერა",
+       "unwatchedpages": "არაკონტროლირებადი გვერდები",
+       "listredirects": "გადამისამართებების სია",
+       "listduplicatedfiles": "ფაილების სია დუბლიკატებთან ერთად",
+       "listduplicatedfiles-summary": "ეს არის ფაილების სია, სადაც ფაილის ბოლო ვერსია ითვლება  ზოგიერთი ბოლო ვერსიის სხვა ფაილის დუბლიკატად. გათვალისწინებულია მხოლოდ ლოკალური ფაილები.",
        "randompage": "ნამდგარენ ხასჷლა",
+       "randomincategory": "კატეგორიის შემთხვევითი გვერდი",
+       "randomincategory-invalidcategory": "კატეგორია „$1“ არ არსებობს.",
+       "randomincategory-nopages": "კატეგორიაში [[:კატეგორია:$1|$1]] გვერდები არაა.",
+       "randomincategory-category": "კატეგორია:",
+       "randomincategory-legend": "შემთხვევითი გვერდი კატეგორიაში",
+       "randomredirect": "ნებისმიერი გადამისამართება",
+       "randomredirect-nopages": "სახელთა სივრცეში „$1“ არ არის გადამისამართებები.",
        "statistics": "სტატისტიკა",
+       "statistics-header-pages": "გვერდების სტატისტიკა",
+       "statistics-header-edits": "რედაქციების სტატისტიკა",
+       "statistics-header-users": "მომხმარებლის სტატისტიკა",
+       "statistics-header-hooks": "სხვა სტატისტიკა",
+       "statistics-articles": "სტატიეფი",
+       "statistics-pages": "ხასჷლა",
+       "statistics-pages-desc": "ვიკის ყველა გვერდი, განხილვის, გადამისამართების და სხვ. ჩათვლით.",
+       "statistics-files": "გეხარგე ფაილეფი",
+       "statistics-edits": "გვერდის შესწორებები მას შემდეგ რაც შეიქმნა პროექტი {{SITENAME}}",
+       "statistics-edits-average": "რედაქტირების საერთო რაოდენობა გვერდზე",
+       "statistics-users": "დარეგისტრირებული [[Special:ListUsers|მომხმარებლები]]",
+       "statistics-users-active": "აქტიური მომხმარებლები",
+       "statistics-users-active-desc": "მომხმარებლები, რომლებმაც განახორციელეს ქმედება {{PLURAL:$1|ბოლო $1 დღის|ბოლო $1 დღის}} განმავლობაში",
+       "pageswithprop": "გვერდები განსაზღვრული თვისებით",
+       "pageswithprop-legend": "გვერდები განსაზღვრული თვისებით",
+       "pageswithprop-text": "აქ მოცემულია გვერდები, რომელთაც ხელით განესაზღვრათ გარკვეული თვისებები.",
+       "pageswithprop-prop": "თვისების სახელი:",
+       "pageswithprop-submit": "გინულა",
+       "pageswithprop-prophidden-long": "ტექსტური თვისებების ხანგრძლივი მნიშვნელობა დამალულია ($1)",
+       "pageswithprop-prophidden-binary": "ორმაგი თვისებების მნიშვნელობა დამალულია ($1)",
+       "doubleredirects": "ორმაგი გადამისამართება",
+       "doubleredirectstext": "ამ გვერდზე ჩამოთვლილია გვერდები, რომლებიც გადამისამართებულია სხვა გადამისამართების გვერდებზე.\nყოველი მწკრივი შეიცავს ბმულებს პირველ და მეორე გადამისამართებაზე, აგრეთვე მეორე გადამისამართების ტექსტის პირველ სტრიქონს, რომელშიც ჩვეულებრივ მითითებულია რეალური „სამიზნე“ გვერდის სათაური. საჭიროა, რომ პირველი გადამისამართებაც უთითებდეს ამ გვერდზე.\n<del>გადახაზული</del> მონაცემები უკვე გამართულია.",
+       "double-redirect-fixed-move": "[[$1]] გადატანილ იქნა.\nიგი განახლდა და ამჟამად გადამისამართებულია [[$2]]-ზე.",
+       "double-redirect-fixed-maintenance": "ორმაგი გადამისამართების ავტომატური გასწორება [[$1]]დან [[$2]]ზე.",
+       "double-redirect-fixer": "გადამისამართება შემსწორებელი",
+       "brokenredirects": "გაწყვეტილი გადამისამართება",
+       "brokenredirectstext": "შემდეგი გადამისამართებები გაკეთებულია არარსებულ გვერდებზე:",
+       "brokenredirects-edit": "რედაქტირაფა",
+       "brokenredirects-delete": "ლასუა",
        "withoutinterwiki": "ხასილეფ ნინაშ რსხილეფიშ გარეშე",
+       "withoutinterwiki-summary": "შემდეგ გვერდებს სხვა ენების ვერსიებზე არ აქვთ ბმულები.",
+       "withoutinterwiki-legend": "წინსართი",
+       "withoutinterwiki-submit": "ძირაფა",
+       "fewestrevisions": "ყველაზე ნაკლებად რედაქტირებული სტატიები",
        "nbytes": "$1 ბაიტი",
+       "ncategories": "$1 {{PLURAL:$1|კატეგორია|კატეგორიეფი}}",
+       "ninterwikis": "$1 {{PLURAL:$1|ინტერვიკი|ინტერვიკი}}",
        "nlinks": "$1 რსხილ",
        "nmembers": "$1 {{PLURAL:$1|მაკათური|მაკათური}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|წევრი|წევრი}}",
+       "nrevisions": "$1 {{PLURAL:$1|ვერსია|ვერსია}}",
+       "nviews": "$1 {{PLURAL:$1|ხილვა|ხილვა}}",
+       "nimagelinks": "$1 {{PLURAL:$1|ხასჷლა|ხასჷლა}}",
+       "ntransclusions": "გამოიყენება $1 {{PLURAL:$1|გვერდზე}}",
+       "specialpage-empty": "ეს გვერდი ცარიელია.",
+       "lonelypages": "ობოლი გვერდები",
+       "lonelypagestext": "შემდეგი გვერდები არ არის დაკავშირებული ან ბმული სხვა გვერდებიდან {{SITENAME}}-ში არ მისამართდება.",
        "uncategorizedpages": "უკატეგორიე ხასილეფ",
        "uncategorizedcategories": "კატეგორიეფ კატეგორიეფიშ გარეშე",
        "uncategorizedimages": "სურათეფ კატეგორიაშ უმიშო",
+       "uncategorizedtemplates": "უკატეგორიე ხასილეფ",
+       "unusedcategories": "გამოუყენებელი კატეგორიები",
+       "unusedimages": "გამოუყენებელი ფაილები",
+       "wantedcategories": "მოთხოვნილი კატეგორიები",
+       "wantedpages": "ჩუალირ ხასჷლეფი",
+       "wantedpages-summary": "არარსებული გვერდების სია, მათზე არსებული ბმულების მაქსიმალური რაოდენობით, იმ გვერდების გამონაკლისის სახით, რომელთაც მხოლოდ გადამისამართებული გვერდები აქვთ, რომლებიც მათზე მიუთითებს. არარსებული გვერდების სიის მიღება, რომელთაც აქვთ გადამისამართება და მათზეა მიმაგრებული, იხილეთ  [[{{#special:BrokenRedirects}}]].",
        "mostlinked": "ხასილეფ, ნამუდგა არძას ბრალ ბუნილეფ უღუნა",
        "mostlinkedcategories": "კატეგორიეფ, ნამუდგა არძას ბრალ რსხილეფ უღუნა",
+       "mostlinkedtemplates": "ყველაზე მეტი ბმულების მქონე თარგები",
        "mostcategories": "სტატიეფ, ნამუდგა არძას ბრალ კატეგორიეფ უღუნა",
+       "mostimages": "ყველაზე მეტი ბმულების მქონე ფაილები",
+       "mostinterwikis": "ყველაზე მეტი ინტერვიკის მქონე სტატია",
+       "mostrevisions": "ყველაზე მეტად რედაქტირებული სტატიები",
        "prefixindex": "არძო ხასილა პრეფიქსით",
+       "prefixindex-namespace": "ყველა პრეფიქსიანი გვერდი ($1 სახელთა სივრცე)",
+       "prefixindex-strip": "პრეფიქსის დამალვა შედეგების სიაში",
        "shortpages": "ჭიჭე ხასილეფ",
        "longpages": "გინძე ხასილეფ",
+       "deadendpages": "ჩიხის გვერდები",
+       "deadendpagestext": "ამ ვიკიში შემდგომ გვერდებს არ აქვთ ბმული სხვა გვერდებთან.",
+       "protectedpages": "დაცული გვერდები",
+       "protectedpages-indef": "მხოლოდ უვადო დაცვები",
+       "protectedpages-summary": "ამ გვერდზე ჩამოთვლილია არსებული გვერდები, რომლებიც ამჟამად დაცულია. სახელწოდებათა სიისთვის, რომლებიც დაცულია შექმნისგან,  იხ. [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
+       "protectedpages-cascade": "მხოლოდ კასკადური დაცვა",
+       "protectedpages-noredirect": "გადამისამართებების დამალვა",
+       "protectedpagesempty": "ამ დროისთვის არ არსებობს დაცული გვერდები მოთხოვნილი პარამეტრებით.",
+       "protectedpages-timestamp": "თარიღი/დრო",
+       "protectedpages-page": "ხასჷლა",
+       "protectedpages-expiry": "ვადა გიშალე",
+       "protectedpages-performer": "მომხმარებლის დაცვა",
+       "protectedpages-params": "დაცვის პარამეტრები",
+       "protectedpages-reason": "სამანჯელი",
+       "protectedpages-unknown-timestamp": "უცნობი",
+       "protectedpages-unknown-performer": "უცნობი მომხმარებელი",
+       "protectedtitles": "დაცული სათაურები",
+       "protectedtitles-summary": "ამ გვერდზე ჩამოთვლიია სახელწოდებები, რომლებიც შექმნისგანაა დაცული. არსებული გვერდების სიისთვის რომლებიც ამჟამად დაცულია, იხ. [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
+       "protectedtitlesempty": "ამ დროისთვის არ არსებობს მოთხოვნილი გვერდები მოცემული პარამეტრებით.",
+       "listusers": "მომხმარებლების სია",
+       "listusers-editsonly": "აჩვენთ მხოლოდ ის მომხმარებლები, რომლებსაც ერთი შესწორება აქვს გაკეთებული",
+       "listusers-creationsort": "დაალაგეთ შექმნის თარიღის მიხედვით",
+       "listusers-desc": "კლების მიხედვით დალაგება",
+       "usereditcount": "$1 {{PLURAL:$1|რედაქტირაფა|რედაქტირაფა}}",
        "usercreated": "{{GENDER:$3|დირსხუ}} $2-ის $1-ს",
        "newpages": "ახალ ხასჷლეფი",
+       "newpages-username": "მომხმარებლის სახელი:",
        "ancientpages": "ჯვეშ ხასილეფ",
        "move": "გინოღალა",
        "movethispage": "თე გვერდიშ გინოღალა",
+       "unusedimagestext": "ეს ფაილი არ გამოიყენება არც-ერთ გვერდზე.\nგაითვალისწინეთ, რომ სხვა ვებ საიტებმა შესაძლოა გამოიყენონ ეს გამოსახულება პირდაპირ URL0ით.",
+       "unusedcategoriestext": "შემდეგი კატეგორიები არსებობს, თუმცა მათ სხვა კატეგორიები ან გვერდები არ იყენებს.",
+       "notargettitle": "სამიზნე არაა",
+       "notargettext": "თქვენ არ მიუთითეთ სამიზნე გვერდი ან მომხმარებელი\nამ ფუნქციის შესასრულებლად.",
+       "nopagetitle": "ამგვარი სამიზნე გვერდი არ არსებობს",
+       "nopagetext": "მოცემული სამიზნო გვერდი არ არის მიითებული",
        "pager-newer-n": "{{PLURAL:$1|უახალაშ 1|უახალაშ $1}}",
        "pager-older-n": "{{PLURAL:$1|უმოს ჯვეში 1|უმოს ჯვეში $1}}",
+       "suppress": "დამალვა",
+       "querypage-disabled": "ეს სპეცგვერდი გამორთულია წარმადობის გასაზრდელად.",
+       "apihelp": "API დახმარება",
+       "apihelp-no-such-module": "მოდული „$1“ ვერ მოიძებნა.",
        "booksources": "წინგიშ წყუეფი",
        "booksources-search-legend": "წიგნიშ წყუშ გორუა",
        "booksources-search": "გორუა",
-       "specialloguserlabel": "მახვარებუ:",
-       "speciallogtitlelabel": "სათაურ:",
+       "booksources-text": "ქვემოთ არის ვებ გვერდების ბმულების სია სადაც იყიდება ახალი და ნახმარი წიგნები, და შესაძლოა შეიცავდნენ დამატებით ინფორმაციას წიგნების შესახებ, რომლებსაც ეძებთ:",
+       "booksources-invalid-isbn": "თქვენს მიერ მითითებული ISBN, შეცდომას შეიცავს.  შეამოწმეთ, თუ თავდაპირველი წყარო სწორადაა აკრეფილი.",
+       "specialloguserlabel": "შემსრულებელი:",
+       "speciallogtitlelabel": "მიზანი (სათაური, ან მომხმარებელი):",
        "log": "ჟურნალეფი",
-       "all-logs-page": "ირ ჟურნალ",
+       "all-logs-page": "ყველა საზოგადო ჟურნალი",
+       "alllogstext": "{{SITENAME}}-ის ყველა არსებული ჩანაწერის კომბინირებული ჩვენება.\nშეგიძლიათ გაცხრილოთ იგი ჩანაწერის ტიპის, მომხმარებლის სახელის, ან დაკავშირებული გვერდის შერჩევით.",
+       "logempty": "შედეგები არ არის სიაში.",
+       "log-title-wildcard": "სათაურების ძებნა, რომლებიც იწყება ამ ტექსტით",
+       "showhideselectedlogentries": "არჩეული ჟურნალის ჩანაწერის ჩვენება/დამალვა",
+       "log-edit-tags": "ტეგების რედაქტირება ამორჩეული ჟურნალის ჩანაწერებიდან",
        "allpages": "არძა ხასილა",
        "nextpage": "უკულ ხასილა ($1)",
        "prevpage": "წოხლენ ხასილა ($1)",
        "allarticles": "არძა სტატია",
        "allpagessubmit": "გინულა",
        "categories": "კატეგორიეფი",
-       "linksearch": "გალენ რცხიეფ",
+       "categoriesfrom": "გეგმარჩქინ ხასილეფ დოჭყაფილ:",
+       "special-categories-sort-count": "დაალაგეთ რაოდენობის მიხედვით",
+       "special-categories-sort-abc": "ანბანზე დალაგება",
+       "deletedcontributions": "მომხმარებლის წაშლილი წვლილი",
+       "deletedcontributions-title": "წაშლილი წვლილი",
+       "sp-deletedcontributions-contribs": "წვლილი",
+       "linksearch": "გარე ბმულების ძიება",
+       "linksearch-pat": "ძიების თარგი:",
+       "linksearch-ns": "ჯოხოეფიშ ოფირჩა:",
+       "linksearch-ok": "გორუა",
+       "linksearch-text": "შესაძლებელია გამოიყენოთ ქვეხაზოვანი სიმბოლოები, მაგალითად, \"*.wikipedia.org\".\nუკიდურეს შემთხვევაში საჭიროა ზედა დონის დომენი, მაგალითად \"*.org\"<br />\nმხარდამჭერი {{PLURAL:$2|პროტოკოლი|პროტოკოლები}}: <code>$1</code> (სტანდარტულად http:// თუკი პროტოკოლი არ არის მითითებული)",
        "linksearch-line": "$1 მერცხიილი რე $2-შე",
+       "linksearch-error": "წარმოდგენილი სიმბოლოების გამოყენება შესაძლებელია მხოლოდ მისამართის დასაწყისში.",
+       "listusersfrom": "გეგმარჩქინ ხასილეფ დოჭყაფილ:",
+       "listusers-submit": "ძირაფა",
+       "listusers-noresult": "მომხმარებელი ვერ ვიპოვეთ.",
+       "listusers-blocked": "(დაბლოკილია)",
+       "activeusers": "აქტიურ მომხმარებელთა სია",
+       "listgrouprights-group": "ჯგუფი",
+       "listgrouprights-rights": "უფლებები",
+       "listgrouprights-helppage": "Help:ჯგუფების უფლებები",
        "listgrouprights-members": "(მაკათურეფიშ ერკებული)",
+       "listgrouprights-addgroup": "შემდეგი {{PLURAL:$2|ჯგუფის|ჯგუფების}} დამატება: $1",
+       "listgrouprights-removegroup": "შემდეგი {{PLURAL:$2|ჯგუფის|ჯგუფების}} ამოღება: $1",
+       "listgrouprights-addgroup-all": "ჩაამატეთ ყველა ჯგუფი",
+       "listgrouprights-removegroup-all": "ყველა ჯგუფის წაშლა",
+       "listgrouprights-addgroup-self": "შეუძლია ჩაუმატოს {{PLURAL:$2|ჯგუფი|ჯგუფები}} თავის ანგარიშს: $1",
        "emailuser": "მიდუჯღონით ელ.ფოშტა ათე მახვარებუს",
+       "emailtarget": "შეიყვანეთ მიმღები მომხმარებლის სახელი",
+       "emailusername": "მახვარებუშ ჯოხო:",
+       "emailusernamesubmit": "შენახვა",
+       "email-legend": "წერილის გაგზავნა სხვა მომხმარებლისადმი {{grammar:genitive|{{SITENAME}}}}",
+       "emailfrom": "გამგზავნი:",
+       "emailto": "მიმღები:",
+       "emailsubject": "თემა:",
+       "emailmessage": "შეტყობინება:",
+       "emailsend": "გაგზავნა",
+       "emailccme": "ელ-ფოსტით გამომიგავნეთ ასლი.",
        "watchlist": "ჩქიმ ოკონტროლებულეფიშ ერკებულ",
        "mywatchlist": "ჩქიმ კონტროლიშ ერკებულ",
        "watchlistfor2": "$1 $2-ს",
        "protect-level-sysop": "ხვალე ადმინისტრატორეფ",
        "protect-summary-cascade": "კასკადურ",
        "protect-expiring": "ვადა გიშალე $1 (UTC)",
+       "protect-expiring-local": "ვადის გასვლის თარიღია $1",
+       "protect-expiry-indefinite": "განუსაზღვრელი",
        "protect-cascade": "დოთხილე ხასილეფ, ნამუთ მიშულირ რე ათე ხასილაშა (კასკადურ თხილუა)",
        "protect-cantedit": "თქვა ვა გათირენა ათე ხასილაშ თხილუაშ დონე, თიშენ ნამდა თქვა ვა გიღუნა ალობა თეშ რედაქტირაფაშო",
-       "protect-expiry-options": "2 საათი:2 hours,1 დღა:1 დღა,1 მარა:1 week,2 მარა:2 weeks,1 თუთა:1 month,3 თუთა:3 months,6 თუთა:6 months,1 წანა:1 year,განუსაზღვრელი ვადით:infinite",
+       "protect-othertime": "სხვა დრო:",
+       "protect-othertime-op": "სხვა დრო",
+       "protect-existing-expiry": "დასრულების დრო: $2, $3",
+       "protect-existing-expiry-infinity": "დასრულების დრო: განუსაზღვრელი",
+       "protect-otherreason": "შხვა/გეძინელ სამანჯელ:",
+       "protect-otherreason-op": "შხვა სამანჯელ",
+       "protect-dropdown": "* დაცვის ტიპიური მიზეზები\n** გადაჭარბებული ვანდალიზმი\n** გადაჭარბებული სპამი\n** რედაქტირებათა ომი\n** მაღალი რისკის გვერდი",
+       "protect-edit-reasonlist": "დაცვის მიზეზთა რედაქტირება",
+       "protect-expiry-options": "1 საათი:1 hour,1 დღა:1 day,1 მარა:1 week,2 მარა:2 weeks,1 თუთა:1 month,3 თუთა:3 months,6 თუთა:6 months,1 წანა:1 year,განუსაზღვრელი ვადით:infinite",
        "restriction-type": "ალობა:",
        "restriction-level": "შეზღუდვაშ დონე",
+       "minimum-size": "მინ ზომა",
+       "maximum-size": "მაქს. ზომა:",
+       "pagesize": "(ბაიტი)",
+       "restriction-edit": "რედაქტირაფა",
+       "restriction-move": "გინოღალა",
+       "restriction-create": "დორსხუაფა",
+       "restriction-upload": "ატვირთვა",
+       "restriction-level-sysop": "სრული დაცვა",
+       "restriction-level-autoconfirmed": "ნახევრად დაცვა",
+       "restriction-level-all": "ნებისმიერი დონე",
+       "undelete": "აჩვენე წაშლილი გვერდები",
+       "undeletepage": "იხილეთ და აღადგინეთ წაშლილი გვერდები",
        "undeletebtn": "ახალშო ეკონწყუალა",
        "undeletelink": "ძირაფა/ეკონწყუალა",
        "undeleteviewlink": "ძირაფა",
        "whatlinkshere-hideredirs": "გინოწურაფა $1",
        "whatlinkshere-hidetrans": "$1 ტრანსკლუზიეფ",
        "whatlinkshere-hidelinks": "$1 რცხუეფ",
-       "whatlinkshere-hideimages": "$1 á\83¡á\83£á\83 á\83\90á\83\97იშ რცხუეფი",
+       "whatlinkshere-hideimages": "$1 á\83¤á\83\90á\83\98á\83\9aიშ რცხუეფი",
        "whatlinkshere-filters": "ტკიბირეფი",
-       "blockip": "მახვარებუშ ბლოკირაფა",
+       "autoblockid": "ავტომატური ბლოკირება #$1",
+       "block": "ბლოკირელ მახვარებუეფჷ",
+       "unblock": "მომხმარებელზე ბლოკის მოხსნა",
+       "blockip": "{{GENDER:$1|მახვარებუშ}} ბლოკირაფა",
+       "blockip-legend": "ბლოკირელ მახვარებუეფჷ",
        "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",
+       "blocklist": "ბლოკირელ მახვარებუეფჷ",
        "ipblocklist": "ბლოკირელ მახვარებუეფჷ",
+       "ipblocklist-legend": "დაბლოკილი მომხმარებლის პოვნა",
+       "blocklist-userblocks": "დამალე ანგარიშის ბლოკირებები",
+       "blocklist-tempblocks": "დამალე დროებითი ბლოკირებები",
+       "blocklist-addressblocks": "დამალე გარკვეული IP მისამართის ბლოკირებები",
+       "blocklist-rangeblocks": "დიაპაზონების ბლოკირებების დამალვა",
+       "blocklist-timestamp": "თარიღი/დრო",
+       "blocklist-target": "სამიზნე",
+       "blocklist-expiry": "ვადა გიშალე",
+       "blocklist-by": "დამბლოკველი ადმინისტრატორი",
+       "blocklist-params": "ბლოკირების პარამეტრები",
+       "blocklist-reason": "სამანჯელი",
        "ipblocklist-submit": "გორუა",
+       "ipblocklist-localblock": "ლოკალური ბლოკირება",
+       "ipblocklist-otherblocks": "სხვა {{PLURAL:$1|დაბლოკვა|დაბლოკვები}}",
+       "infiniteblock": "განუსაზღვრელი",
+       "expiringblock": "ვადის გასვლის დრო $1 $2",
+       "anononlyblock": "მხოლოდ ანონ.",
+       "noautoblockblock": "ავტობლოკირება გათიშულია",
+       "createaccountblock": "ანგარიშიშ გონწყუმა მეჭყვადილ რე",
+       "emailblock": "დაიბლოკა ელ. ფოსტა",
+       "blocklist-nousertalk": "ვერ შეასწორებთ განხილვის გვერდს",
+       "ipblocklist-empty": "დაბლოკვის სია ცარიელია.",
+       "ipblocklist-no-results": "მოთხოვნილი IP-მისამართი არ არის დაბლკილი",
        "blocklink": "ბლოკირაფა",
        "unblocklink": "ბლოკიშ მონწყუმა",
        "change-blocklink": "ბლოკიშ თირუა",
        "contribslink": "ნახანდი",
+       "emaillink": "ელ-ფოსტის გაგზავნა",
        "blocklogpage": "ბლოკირეფიშ ერკებულ",
        "blocklogentry": "ბლოკირ რე [[$1]] ბლოკირაფაშ ვადაშ ათე გულა ბორჯით: $2 $3.",
        "unblocklogentry": "$1-შა ბლოკიშ მონწყუმა",
        "movereason": "სამანჯელი:",
        "revertmove": "გოუქვაფა",
        "export": "ხასჷლეფიშ ექსპორტი",
+       "export-submit": "ექსპორტი",
+       "export-addcattext": "გვერდების დამატება კატეგორიიდან:",
+       "export-addcat": "დამატება",
+       "export-addnstext": "ჩაამატეთ გვერდებისახელთა სივრცედან:",
+       "export-addns": "დამატება",
+       "export-download": "შეინახე როგორც ფაილი",
+       "export-templates": "ჩართეთ თარგები",
+       "export-pagelinks": "ჩართეთ დაკავშირებული გვერდები სიღრმით:",
        "allmessages": "ირ სისტემურ შეტყვინაფა",
        "allmessagesname": "ჯოხო",
        "allmessagesdefault": "შატყვინაფაშ სტანდარტულ ტექსტი",
+       "allmessagescurrent": "მიმდინარე ტექსტი",
+       "allmessages-filter-legend": "ფილტრი",
+       "allmessages-filter": "ფილტრი ცვლილებების სტატუსით:",
+       "allmessages-filter-unmodified": "უცვლადე",
+       "allmessages-filter-all": "ყველა",
+       "allmessages-filter-modified": "ცვლადი",
+       "allmessages-prefix": "წინსართის ფილტრი:",
+       "allmessages-language": "ნინა:",
+       "allmessages-filter-submit": "გინულა",
+       "allmessages-filter-translate": "თარგმნა",
        "thumbnail-more": "მორდი",
+       "filemissing": "ფაილი აკლია",
        "thumbnail_error": "ესკიზიშ ქიმინუაშ ჩილათა: $1",
+       "import-interwiki-sourcewiki": "წყაროს ვიკი:",
+       "import-interwiki-sourcepage": "წყაროს გვერდი:",
+       "import-interwiki-history": "ამ გვერდის ცვლილებათა ისტორიის კოპირება",
+       "import-interwiki-templates": "ყველა თარგის ჩართვა",
+       "import-interwiki-submit": "იმპორტირება",
+       "import-mapping-default": "იმპორტირება ადგილმდებარეობაში ნაგულისმევად",
+       "import-mapping-namespace": "იმპორტირება სახელთა სივრცეში:",
+       "import-mapping-subpage": "იმპორტირება როგორც შემდეგი გვერდის ქვეგვერდები:",
+       "import-upload-filename": "ფაილის სახელი:",
+       "import-comment": "კომენტარეფი:",
        "importlogpage": "იმპორტიშ ჟურნალ",
        "tooltip-pt-userpage": "თქვანი მახვარებუშ ხასჷლა",
        "tooltip-pt-mytalk": "თქვანი სხუნუაშ ხასილა",
        "tooltip-pt-mycontris": "თქვანი მიშნაღელ თიეფიშ ერკებულ",
        "tooltip-pt-login": "ჯგირ იჸი გემშურთუ–და, მარა თენა ვა რე უციო",
        "tooltip-pt-logout": "გიშულა",
-       "tooltip-pt-createaccount": "á\83©á\83¥á\83\98 á\83\92á\83\98á\83\96á\83\90á\83\9aá\83£á\83\97, á\83\92á\83\9dá\83\9cá\83¬á\83§á\83\90á\83\97 á\83\90á\83\9cá\83\92á\83\90á\83 á\83\98á\83¨á\83\98 á\83\93á\83\90á\83\9d á\83\92á\83\94á\83\9cá\83¨á\83\90á\83 á\83\97á\83\90á\83\97 á\83¡á\83\98á\83¡á\83¢á\83\94á\83\9bá\83\90á\83¨á\83\90; á\83\9bá\83\90á\83 á\83\90 á\83\97á\83\94á\83\9cá\83\90 á\83\95á\83\90 á\83 á\83\94 á\83£á\83ªá\83\98á\83\9d",
+       "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": "á\83\93á\83£á\83\93 á\83®á\83\90á\83¡á\83\98ლაშა გინოზოჯუა",
+       "tooltip-n-mainpage-description": "á\83\93á\83£á\83\93 á\83®á\83\90á\83¡á\83·ლაშა გინოზოჯუა",
        "tooltip-n-portal": "პროექტიშენი, მუშ ქიმინუა შეილებუნა, სოდე შილებე გორათინ",
        "tooltip-n-currentevents": "დოგორით რსული ინფორმაცია ასეიან მოლინეფშენი",
        "tooltip-n-recentchanges": "ვიკიშა ეკონია ბორჯის მიშაღალირი თირაფეფიშ ერკებული",
-       "tooltip-n-randompage": "á\83¥á\83£á\83\9bá\83\9dá\83«á\83\98á\83  á\83\9cá\83\90á\83\9bá\83£á\83\93á\83\92á\83\90á\83 á\83\93á\83\90á\83¡á\83\98á\83\9c á\83®á\83\90á\83¡á\83\98ლა",
-       "tooltip-n-help": "\"ხასილა, სოდეთ გარკვიენთინ",
-       "tooltip-t-whatlinkshere": "á\83\90á\83 á\83«á\83\9d á\83\95á\83\98á\83\99á\83\98 á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90á\83¨ á\83\94á\83 á\83\99á\83\94á\83\91á\83£á\83\9a, ნამუდგა თაქ იწურუანსინ",
+       "tooltip-n-randompage": "á\83¥á\83£á\83\9bá\83\9dá\83«á\83\98á\83  á\83\9cá\83\90á\83\9bá\83£á\83\93á\83\92á\83\90á\83 á\83\93á\83\90á\83¡á\83\98á\83\9c á\83®á\83\90á\83¡á\83·ლა",
+       "tooltip-n-help": "ხასჷლა, სოდეთ გარკვიენთინ",
+       "tooltip-t-whatlinkshere": "á\83\90á\83 á\83«á\83\9d á\83\95á\83\98á\83\99á\83\98 á\83®á\83\90á\83¡á\83·á\83\9aá\83\90á\83¨ á\83\94á\83 á\83\99á\83\94á\83\91á\83£á\83\9aá\83\98, ნამუდგა თაქ იწურუანსინ",
        "tooltip-t-recentchangeslinked": "თე ხასჷლაწკჷმა მერსხილ ხასჷლეფშა ასერდე მიშაღალირი თირაფეფი",
        "tooltip-feed-rss": "მოჩამილი ხასილაშ RSS არხიშ ტრანსლაცია",
        "tooltip-feed-atom": "ათე ხასილაშ ატომ არხიშ ტრანსლაცია",
        "tooltip-t-contributions": "თე მახვარებუშ მიშაღალირ თიაშ ერკებულიშ ძირაფა",
        "tooltip-t-emailuser": "მიდუჯღონით ელ.ფოშტა ათე მახვარებუს",
-       "tooltip-t-upload": "გეხარგე ფაილი",
+       "tooltip-t-upload": "á\83\92á\83\94á\83®á\83\90á\83 á\83\92á\83\94 á\83¤á\83\90á\83\98á\83\9aá\83\94á\83¤á\83\98",
        "tooltip-t-specialpages": "არძო სპეციალურ ხასჷლაშ ერკებული",
        "tooltip-t-print": "თე ხასჷლაშ ობეშტალი ვერსია",
        "tooltip-t-permalink": "პერმანენტულ რცხი ხასილაშ თე ვერსიაშა",
        "tooltip-undo": "\"გოუქვაფა\" მიშაღალირ თირაფეფს გოუქვენს დო გუთმონწყუნს რედაქტირაფაშ ფორმას გიწოთოლორაფაშ რეჟიმს. თენა შესაძლებლობას ირძენს რეზიუმეს სამანჯელქ იყ’უას დაკონკრეტებულქინ.",
        "tooltip-summary": "კუნტა რეზიუმეშ მიშაჸონაფა",
        "simpleantispam-label": "სპამიშ სააწმარენჯო შემოწმაფა.\nთენა '''ვა''' შეამსათ!",
+       "pageinfo-header-basic": "ხასჷლაშ ინფორმაცია",
+       "pageinfo-header-edits": "რედაქტირების ისტორია",
+       "pageinfo-header-restrictions": "გვერდის დაცვა",
+       "pageinfo-header-properties": "გვერდის თვისებები",
+       "pageinfo-display-title": "ნაჩვენები სათაური",
+       "pageinfo-default-sort": "სტანდარტული სორტირების გასაღები",
+       "pageinfo-length": "გვერდის სიგრძე (ბაიტებში)",
+       "pageinfo-article-id": "გვერდის ID",
+       "pageinfo-language": "გვერდის შინაარსის ენა",
+       "pageinfo-content-model": "გვერდის შინაარსის მოდელი",
+       "pageinfo-robot-policy": "ინდექსაცია საძიებო რობოტებით",
+       "pageinfo-robot-index": "დაშვებულია",
+       "pageinfo-robot-noindex": "არ არის დაშვებული",
+       "pageinfo-watchers": "გვერდის დამკვირვებელთა რაოდენობა",
+       "pageinfo-few-watchers": "სულ მცირე $1 {{PLURAL:$1|დამკვირვებელი|დამკვირვებელი}}",
+       "pageinfo-redirects-name": "გადამისამართებების რაოდენობა ამ გვერდზე",
        "pageinfo-toolboxlink": "ხასჷლაშ ინფორმაცია",
+       "pageinfo-redirectsto": "გინოღალა",
+       "pageinfo-redirectsto-info": "ინფორმაცია",
+       "pageinfo-contentpage": "ითვლება როგორც შინაარსის გვერდი",
+       "pageinfo-contentpage-yes": "ქო",
+       "pageinfo-protect-cascading": "კასკადური დაცვა აქედან",
+       "pageinfo-protect-cascading-yes": "ქო",
+       "pageinfo-protect-cascading-from": "კასკადური დაცვა",
+       "pageinfo-category-info": "ინფორმაცია კატეგორიის შესახებ",
+       "pageinfo-category-total": "წევრების საერთო რაოდენობა",
+       "pageinfo-category-pages": "გვერდების რაოდენობა",
+       "pageinfo-category-subcats": "ქვეკატეგორიების რაოდენობა",
+       "pageinfo-category-files": "ფაილების რაოდენობა",
+       "markaspatrolleddiff": "მონიშნე როგორც პატრულირებული",
+       "markaspatrolledtext": "მონიშნე ეს სტატია როგორც პატრულირებული",
+       "markedaspatrolled": "მონიშნულია როგორც პატრულირებული",
        "previousdiff": "← წოხოლენ თირაფეფი",
        "nextdiff": "უახალაშ თირაფა →",
        "file-info-size": "$1 × $2 პიქსელ, ფაილიშ ზომა: $3, MIME ტიპ: $4",
        "show-big-image-preview": "ზჷმა გიწოთოლორაფაშ ბორჯის: $1.",
        "show-big-image-size": "$1 × $2 პიქსელი",
        "newimages": "ახალ სურათეფ",
+       "newimages-legend": "ფილტრი",
+       "newimages-label": "ფაილის (ან მისი სახელის) ნაწილი:",
+       "newimages-showbots": "ბოტის ატვირთვების ჩვენება",
+       "noimages": "გადასახედი არაფერია.",
        "ilsubmit": "გორუა",
+       "bydate": "თარიღით",
+       "sp-newimages-showfrom": "ახალი ფაილების ჩვენება დაწყებული $2, $1-იდან",
+       "monday-at": "ორშაბათს $1-ზე",
+       "tuesday-at": "სამშაბათს $1-ზე",
+       "wednesday-at": "ოთხშაბათს $1-ზე",
+       "thursday-at": "ხუთშაბათს $1-ზე",
+       "friday-at": "პარასკევს $1-ზე",
+       "saturday-at": "შაბათს $1-ზე",
+       "sunday-at": "კვირას $1-ზე",
        "bad_image_list": "ფორმატ რე უკულიანიშნერო:\\n\\n ხვალე ერკებულშე გიშნაგორეფ (ლაწკარეფ, ნამუთ იჭყაფუ *-ით) ისხუნუ.\nლაწკარიშ პირველ რცხი ოკო რდას რცხი გლახა ფაილშა.\nკინ თი ლაწკარს რინელ ნამდგაინ უკულიან რცხი კილესხუნუ მუჭოთ გიმნარკეში, ნამუთ ნიშნენს  ხასილეფს, სოდგა ფაილეფ შილებე რდას ღოზეფს შკას დინოხუნაფილ.",
        "metadata": "მეტამუნაჩემეფი",
        "metadata-help": "თე ფაილს ოხოლუ გეძინელ ინფორმაცია, ნამუთ ოეგებიეთ თი ციფრულ კამერაშე ვარა სკანერშე რე გეძინელ, ნამუთ რდუ გუმორინაფილ თე ფაილიშ ოქიმინჯალო ვარა დაციფრებელო. ფაილიშ ორიგინალ თირელ ქორენ-და, შილებე კანკალე დეტალ ვა გიშაძირუანდას ფაილშა მიშაღალირ თირაფეფს.",
        "metadata-expand": "დეტალეფიშ გოძინელ ძირაფა",
        "metadata-collapse": "გოძინელ დეტალეფიშ ტყობინაფა",
-       "metadata-fields": "á\83\90á\83\97á\83\94 á\83\9bá\83\94á\83¡á\83\98á\83¯á\83\98á\83¡ á\83¨á\83\98á\83\9cá\83\90á\83¤á\83\98á\83\9a á\83\9bá\83\94á\83¢á\83\90 á\83\9bá\83\9dá\83©á\83\90á\83\9bá\83\98á\83\9aá\83\9dá\83¤á\83\94á\83¤á\83\98á\83¨ á\83\9dá\83¤á\83\98á\83 á\83©á\83\94á\83¤ ეკოროცხილ იჸი ნახანტიშ ხასილაშ დისფლეის მუჟამსით მეტა მოჩამილოფეფიშ ერკებულ იჸი გითოფაჩილინ \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",
+       "metadata-fields": "á\83\90á\83\97á\83\94 á\83\9bá\83\94á\83¡á\83\98á\83¯á\83\98á\83¡ á\83\94á\83 á\83\99á\83\94á\83\91á\83£á\83\9aá\83\98 á\83\9bá\83\94á\83¢á\83\90 á\83\9bá\83\9dá\83©á\83\90á\83\9bá\83\98á\83\9aá\83\9dá\83¤á\83\94á\83¤á\83\98á\83¨ á\83\9dá\83¤á\83\98á\83 á\83©á\83\94á\83¤á\83\98 ეკოროცხილ იჸი ნახანტიშ ხასილაშ დისფლეის მუჟამსით მეტა მოჩამილოფეფიშ ერკებულ იჸი გითოფაჩილინ \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-imagewidth": "სიგანე",
        "exif-imagelength": "სიმაღალე",
        "exif-datetime": "ფაილიშ თირუაშ რიცხუ დო ბორჯი",
        "exif-software": "გჷმორინაფილი პროგრამა",
        "exif-exifversion": "ვერსია Exif",
        "exif-colorspace": "ფერეფიშ პალიტრა",
+       "exif-meteringmode": "ექსპოზიციის დათვლის რეჟიმი",
+       "exif-lightsource": "განათების წყარო",
+       "exif-flash": "ფლეშის სტატუსი",
+       "exif-focallength": "ფოკუსური დაშორება",
+       "exif-subjectarea": "გადაღების ობიექტის მდებარეობა და ფართობი",
+       "exif-flashenergy": "ფლეშის ენერგია",
+       "exif-focalplanexresolution": "გაფართოება X ფოტოკალური სიბრტყით",
+       "exif-focalplaneyresolution": "გაფართოება Y ფოტოკალური სიბრტყით",
+       "exif-focalplaneresolutionunit": "გაფართოების საზომვის ერთეული ფოტოკალურ სიბრტყეში",
+       "exif-subjectlocation": "ობიექტის მდებარეობა",
+       "exif-exposureindex": "ექსპოზიციის ინდექსი",
+       "exif-sensingmethod": "სენსორის ტიპი",
+       "exif-filesource": "ფაილის წყარო",
+       "exif-scenetype": "სცენის ტიპი",
+       "exif-customrendered": "სურათის ინდივიდუალური დამუშავება",
+       "exif-exposuremode": "ექსპოზიციის არჩევის რეჟიმი",
+       "exif-whitebalance": "თეთრის ბალანსი",
+       "exif-digitalzoomratio": "ციფრული გადიდების კოეფიციენტი (ციფრული ზუმი)",
+       "exif-focallengthin35mmfilm": "ეკვივალენტური ფოკუსური მანძილი (35 მმ-იანი ფირისთვის)",
+       "exif-scenecapturetype": "სცენის ტიპი გადაღებისას",
+       "exif-gaincontrol": "სცენის კონტროლი",
+       "exif-contrast": "კონტრასტი",
+       "exif-saturation": "ნაჯერობა",
+       "exif-sharpness": "სიმკვეთრე",
+       "exif-devicesettingdescription": "მოწყობილობის პარამეტრების აღწერილობა",
+       "exif-subjectdistancerange": "მანძილი გადაღების ობიექტამდე",
+       "exif-imageuniqueid": "გამოსახულების ნომერი (ID)",
+       "exif-gpsversionid": "GPS ინფორმაციის ბლოკის ვერსია",
+       "exif-gpslatituderef": "განედის ინდექსი",
+       "exif-gpslatitude": "განედი",
+       "exif-gpslongituderef": "გრძედის ინდექსი",
+       "exif-gpslongitude": "გრძედი",
+       "exif-gpsaltituderef": "სიმაღლის ინდექსი",
+       "exif-gpsaltitude": "სიმაღლე",
+       "exif-gpssatellites": "გამოყენებული თანამგზავრების აღწერა",
+       "exif-gpsstatus": "რისივერის სტატუსი",
+       "exif-gpsmeasuremode": "მდებარეობის გამოთვლის მეთოდი",
+       "exif-gpsdop": "გაზომვის სიზუსტე",
+       "exif-gpsspeedref": "სიჩქარის ერთეული",
+       "exif-gpsspeed": "GPS რისივერის სიჩქარე",
+       "exif-gpstrackref": "GPS მიმღების აზიმუტი",
+       "exif-gpstrack": "მოძრაობის მიმართულება",
+       "exif-gpsimgdirectionref": "გამოსახულების აზიმუტი",
+       "exif-gpsimgdirection": "სურათზე მიმართულება",
+       "exif-gpsmapdatum": "გამოყენებული კორდინატთა გეოდეზური სისტემა",
+       "exif-gpsdestlatituderef": "ობიექტის გაედის ინდექსი",
+       "exif-gpsdestlatitude": "ობიექტის გრძედი",
+       "exif-gpsdestlongituderef": "ობიექტის განედი",
+       "exif-gpsdestlongitude": "ობიექტის სიგანე",
+       "exif-gpsdestbearingref": "მიმართულების ორიენტირების სახე",
+       "exif-gpsdestbearing": "ორიენტირების სახე",
+       "exif-gpsdestdistanceref": "მანძილის გაზომვის ერთეულები",
+       "exif-gpsdestdistance": "მანძილი დანიშნულებამდე",
+       "exif-gpsprocessingmethod": "მდებარეობის გამოთვლის მეთოდი",
+       "exif-gpsareainformation": "GPS მხარის სახელწოდება",
+       "exif-gpsdatestamp": "GPS-ის მონაცემი",
+       "exif-gpsdifferential": "GPS-ის დიფერენციალური შესწორება",
+       "exif-jpegfilecomment": "JPEG-ფაილის კომენტარი",
+       "exif-keywords": "საძიებო სიტყვები",
+       "exif-worldregioncreated": "მსოფლიოს რეგიონი, სადაც გადაღებულია ფოტო",
+       "exif-countrycreated": "ქვეყანა, სადაც გადაღებულია ფოტო",
+       "exif-countrycodecreated": "ქვეყნის კოდი, სადაც გადაღებულია ფოტო",
+       "exif-provinceorstatecreated": "ოლქი, პროვინცია ან შტატი, სადაც გადაღებულია ფოტო",
+       "exif-citycreated": "ქალაქი, სადაც გადაღებულია ფოტო",
+       "exif-sublocationcreated": "ქალაქის რაიონი, სადაც გადაღებულია ფოტო",
+       "exif-worldregiondest": "მსოფლიოს ნაჩვენები რეგიონი",
+       "exif-countrydest": "ნაჩვენები სახელმწიფო",
+       "exif-countrycodedest": "ნაჩვენები სახელმწიფოს კოდი",
+       "exif-provinceorstatedest": "ნაჩვენები პროვინცია, ან შტატი",
+       "exif-citydest": "ნაჩვენები ქალაქი",
+       "exif-sublocationdest": "ნაჩვენები ქალაქის რაიონი",
+       "exif-objectname": "მოკლე სათაური",
+       "exif-specialinstructions": "სპეციალური ინსტრუქციები",
+       "exif-headline": "სათაური",
+       "exif-credit": "კრედიტი/პროვაიდერი",
+       "exif-source": "წყუ",
+       "exif-urgency": "აქტუალურობა",
+       "exif-fixtureidentifier": "სვეტის სახელი",
+       "exif-locationdest": "გამოსახული ადგილი",
+       "exif-locationdestcode": "გამოსახული ადგილის კოდი",
+       "exif-objectcycle": "დღე-ღამის მონაკვეთი, რომლისთვისაც განკუთვნილია გამოსახულება",
+       "exif-contact": "საკონტაქტო ინფორმაცია",
+       "exif-writer": "ავტორი",
+       "exif-languagecode": "ნინა",
+       "exif-iimversion": "IIM-ვერსია",
+       "exif-iimcategory": "კატეგორია",
+       "exif-iimsupplementalcategory": "დამატებითი კატეგორიები",
+       "exif-datetimeexpires": "აღარ გამოიყენო",
+       "exif-datetimereleased": "გამოქვეყნდა",
+       "exif-originaltransmissionref": "გადაცემის საწყისი ადგილის კოდი",
+       "exif-identifier": "იდენტიფიკატორი",
+       "exif-lens": "გამოყენებული ლინზა",
+       "exif-serialnumber": "კამერის სერიული ნომერი",
+       "exif-cameraownername": "კამერის მფლობელი",
+       "exif-label": "სახელი",
+       "exif-datetimemetadata": "მეტამონაცემების ბოლო ცვლილების თარიღი",
+       "exif-nickname": "სურათის არაფორმალური სახელი",
+       "exif-rating": "რეიტინგი (5-დან)",
+       "exif-rightscertificate": "უფლებათა მართვის სერთიფიკატი",
+       "exif-copyrighted": "საავტორო უფლებების სტატუსი",
+       "exif-copyrightowner": "საავტორო უფლებების მფლობელი",
+       "exif-usageterms": "გამოყენების პირობები",
+       "exif-webstatement": "საავტორო უფლებების მდგომარეობა ინტერნეტში",
+       "exif-originaldocumentid": "ორიგინალი დოკუმენტის უნიკალური იდენტიფიკატორი",
+       "exif-licenseurl": "საავტორო ლიცენზიის URL",
+       "exif-pngfilecomment": "PNG ფაილის კომენტარი",
+       "exif-disclaimer": "პასუხისმგებლობის უარყოფა",
+       "exif-contentwarning": "გაფრთხილება შინაარსის შესახებ",
+       "exif-giffilecomment": "GIF ფაილის კომენტარი",
+       "exif-intellectualgenre": "ობიექტის ტიპი",
+       "exif-subjectnewscode": "თემის კოდი",
+       "exif-scenecode": "IPTC სცენის კოდი",
+       "exif-event": "გამოსახული მოვლენა",
+       "exif-organisationinimage": "გამოსახული ორგანიზაცია",
+       "exif-personinimage": "გამოსახული პიროვნება",
+       "exif-originalimageheight": "სურათის სიმაღლე კადრირებამდე",
+       "exif-originalimagewidth": "სურათის სიგანე კადრირებამდე",
+       "exif-compression-1": "შეუკუმშავი",
+       "exif-copyrighted-true": "საავტორო უფლებებით დაცული",
+       "exif-copyrighted-false": "საავტორო უფლებები არ არის არჩეული",
+       "exif-unknowndate": "უცნობი თარიღი",
        "exif-orientation-1": "ნორმალური",
+       "exif-orientation-2": "ჰორიზონტალით აირეკლა",
+       "exif-orientation-3": "180°-ით შებრუნდა",
+       "exif-orientation-4": "აირეკლა ვერტიკალურად",
+       "exif-orientation-5": "შეტრიალებული 90°-ით CCW და ვერტიკალურად აირეკლა",
+       "exif-orientation-6": "მობრუნებულია 90°-ით",
+       "exif-orientation-7": "შეტრიალებულია 90°-ით CW და ვერტიკალურად აირეკლა",
+       "exif-orientation-8": " 90°-ით მობრუნება",
+       "exif-planarconfiguration-1": "ფორმატი „chunky“",
+       "exif-planarconfiguration-2": "ფორმატი „planar“",
+       "exif-colorspace-65535": "არაკალიბრირებული",
+       "exif-componentsconfiguration-0": "არ არსებობს",
+       "exif-exposureprogram-0": "უცნობია",
+       "exif-exposureprogram-1": "მანუალური",
+       "exif-exposureprogram-2": "სტანდარტული პროგრამა",
+       "exif-exposureprogram-3": "დიაფრაგმის პრიორიტეტი",
+       "exif-exposureprogram-4": "ჩამკეტის პრიორიტეტი",
+       "exif-exposureprogram-5": "მხატვრული პროგრამა (აქცენტი სიმკვეთრის სიღრმეზე)",
+       "exif-exposureprogram-6": "სპორტული რეჟიმი (ჩამკეტის მაქსიმალური სისწრაფით)",
+       "exif-exposureprogram-7": "პორტრეტის რეჟიმი (მსხვილი პლანებისთვის ფონით ფოკუსის\nგარეშე)",
+       "exif-exposureprogram-8": "პეიზაჟის რეჟიმი (პანორამული ფოტოებისთვის ფონით ფოკუსში)",
+       "exif-subjectdistance-value": "$1 მეტრი",
+       "exif-meteringmode-0": "უცნობი",
+       "exif-meteringmode-1": "საშუალო",
+       "exif-meteringmode-2": "ცენტრულად აწონილი",
+       "exif-meteringmode-3": "წერტილოვანი",
+       "exif-meteringmode-4": "მულტიწერტილოვანი",
+       "exif-meteringmode-5": "მატრიცული",
+       "exif-meteringmode-6": "ნაწილობრივი",
+       "exif-meteringmode-255": "სხვა",
+       "exif-lightsource-0": "უცნობი",
+       "exif-lightsource-1": "დღის სინათლე",
+       "exif-lightsource-2": "დღის სინათლის ლამპა",
+       "exif-lightsource-3": "ნათურა",
+       "exif-lightsource-4": "ფლეში",
+       "exif-lightsource-9": "კარგი ამინდი",
+       "exif-lightsource-10": "მოღრუბლული ამინდი",
+       "exif-lightsource-11": "ჩრდილი",
+       "exif-lightsource-12": "დღის სინათლის ნათურა D (5700 − 7100K)",
+       "exif-lightsource-13": "დღის სინათლის ნათურა N(4600 − 5400K)",
+       "exif-lightsource-14": "დღის სინათლის ნათურა W (3900 − 4500K)",
+       "exif-lightsource-15": "დღის სინათლის ნათურა WW (3200 − 3700K)",
+       "exif-lightsource-17": "სტანდარტული განათება A",
+       "exif-lightsource-18": "სტანდარტული განათება B",
+       "exif-lightsource-19": "სტანდარტული განათება C",
+       "exif-lightsource-24": "სტუდიური ნათურა  ISO სტანდარტის",
+       "exif-lightsource-255": "განათების სხვა წყარო",
+       "exif-flash-fired-0": "ფლეში არ მუშაობს",
+       "exif-flash-fired-1": "ფლეში მოქმედებს",
+       "exif-flash-return-0": "წინასწარი ფლეშის რეჟიმი გათიშულია",
+       "exif-flash-return-2": "წინასწარი ფლეშ იმპულსი არ არის მიღებული",
+       "exif-flash-return-3": "მიღებულია ფლეშის უკუიმპულსი",
+       "exif-flash-mode-1": "ფლეშის იმპულსი",
+       "exif-flash-mode-2": "ფლეშის ჩახშობა",
+       "exif-flash-mode-3": "ავტო რეჟიმი",
+       "exif-flash-function-1": "ფლეშის გათიშვა",
+       "exif-flash-redeye-1": "წითელი თვალების მოშორების რეჟიმი",
+       "exif-focalplaneresolutionunit-2": "დუიმი",
+       "exif-sensingmethod-1": "განუსაზღვრელი",
+       "exif-sensingmethod-2": "ერთჩიპიანი მატრიცული ფერადი სენსორი",
+       "exif-sensingmethod-3": "ორ მატრიციანი სენსორი",
+       "exif-sensingmethod-4": "სამმატრიციანი სენსორი",
+       "exif-sensingmethod-5": "მატრიციანი სენსორი ფერების შეცვლით",
+       "exif-sensingmethod-7": "სამფერიანი ხაზოვანი სენსორი",
+       "exif-filesource-3": "ციფრული ფოტოაპარატი",
+       "exif-scenetype-1": "გამოსახულება გადაღებულია პირდაპირ",
+       "exif-customrendered-0": "სტანდარტული დამუშავება",
+       "exif-customrendered-1": "არასტანდარტული დამუშავება",
+       "exif-exposuremode-0": "ავტომატური ექსპოზიცია",
+       "exif-exposuremode-1": "მანუალური ექსპოზიცია",
+       "exif-whitebalance-0": "თეთრის ავტობალანსი",
+       "exif-whitebalance-1": "თეთრის ბალანსის ხელოვნური დაყენება",
+       "exif-scenecapturetype-0": "სტანდარტული",
+       "exif-scenecapturetype-1": "პეიზაჟი",
+       "exif-scenecapturetype-2": "პორტრეტი",
+       "exif-scenecapturetype-3": "ღამის კადრი",
+       "exif-gaincontrol-0": "არაფერი",
+       "exif-gaincontrol-1": "მცირე გადიდება",
+       "exif-gaincontrol-2": "დიდი გადიდება",
+       "exif-gaincontrol-3": "მცირე გადიდება",
+       "exif-gaincontrol-4": "დიდი შემცირება",
+       "exif-contrast-0": "ნორმალური",
+       "exif-contrast-1": "სუსტი",
+       "exif-contrast-2": "ძლიერი",
+       "exif-saturation-0": "ნორმალური",
+       "exif-saturation-1": "მცირე სავსებადობა",
+       "exif-saturation-2": "დიდი სავსებადობა",
+       "exif-sharpness-0": "ნორმალური",
+       "exif-sharpness-1": "სუსტი",
+       "exif-sharpness-2": "ძლიერი",
+       "exif-subjectdistancerange-0": "უცნობი",
+       "exif-subjectdistancerange-1": "მაკროგადაღება",
+       "exif-subjectdistancerange-2": "ახლო მანძილიდან გადაღება",
+       "exif-subjectdistancerange-3": "შორიდან გადაღება",
+       "exif-gpslatitude-n": "ჩრდილოეთი განედი",
+       "exif-gpslatitude-s": "სამხრეთი განედი",
+       "exif-gpslongitude-e": "აღმოსავლეთი განედი",
+       "exif-gpslongitude-w": "დასავლეთი განედი",
+       "exif-gpsspeed-k": "კილომეტრი საათში",
+       "exif-gpsspeed-m": "მილი საათში",
+       "exif-gpsspeed-n": "კვანძები",
+       "exif-gpsdestdistance-k": "კილომეტრი",
+       "exif-gpsdestdistance-m": "მილი",
+       "exif-gpsdestdistance-n": "საზღვაო მილი",
+       "exif-gpsdop-excellent": "შესანიშნავი ($1)",
+       "exif-gpsdop-good": "კარგი ($1)",
+       "exif-gpsdop-moderate": "ზომიერი ($1)",
+       "exif-gpsdop-fair": "საშუალოზე დაბალი ($1)",
+       "exif-gpsdop-poor": "ცუდი ($1)",
+       "exif-objectcycle-a": "მხოლოდ დილით",
+       "exif-objectcycle-p": "მხოლოდ საღამოს",
+       "exif-objectcycle-b": "ორივე დილას და საღამოს",
+       "exif-gpsdirection-t": "ჭეშმარიტი",
+       "exif-gpsdirection-m": "მაგნიტური",
+       "exif-ycbcrpositioning-1": "ცენტრირებული",
+       "exif-dc-contributor": "წვლილის შემომტანები",
+       "exif-dc-coverage": "მედიის სივრცული, ან დროებითი ჩარჩოები",
+       "exif-dc-date": "თარიღ(ებ)ი",
+       "exif-dc-publisher": "გამომქვეყნებელი",
+       "exif-dc-relation": "დაკავშირებული მედია",
+       "exif-dc-rights": "უფლებები",
+       "exif-dc-source": "წყაროს მედია",
+       "exif-dc-type": "მედიის ტიპი",
+       "exif-rating-rejected": "უარყოფილია",
+       "exif-isospeedratings-overflow": "65535-ზე მეტი",
+       "exif-iimcategory-ace": "ხელოვნება, კულტურა და გართობა",
+       "exif-iimcategory-clj": "დანაშაული და კანონი",
+       "exif-iimcategory-dis": "კატასტროფები და ავარიები",
+       "exif-iimcategory-fin": "ეკონომიკა და ბიზნესი",
+       "exif-iimcategory-edu": "განათლება",
+       "exif-iimcategory-evn": "გარემო",
+       "exif-iimcategory-hth": "ჯანმრთელობა",
+       "exif-iimcategory-hum": "ღირსშესანიშნავი ისტორიები",
+       "exif-iimcategory-lab": "შრომა",
+       "exif-iimcategory-lif": "ცხოვრების წესი და დასვენება",
+       "exif-iimcategory-pol": "პოლიტიკა",
+       "exif-iimcategory-rel": "რელიგია და რწმენა",
+       "exif-iimcategory-sci": "მეცნიერება და ტექნოლოგია",
+       "exif-iimcategory-soi": "სოციალური კითხვები",
+       "exif-iimcategory-spo": "სპორტი",
+       "exif-iimcategory-war": "ომი, კონფლიქტი და არეულობა",
+       "exif-iimcategory-wea": "ამინდი",
+       "exif-urgency-normal": "ნორმალური ($1)",
+       "exif-urgency-low": "დაბალი ($1)",
+       "exif-urgency-high": "მაღალი ($1)",
+       "exif-urgency-other": "მომხმარებლის მიერ განსაზღვრული პრიორიტეტი ($1)",
        "namespacesall": "არძა",
        "monthsall": "არძა",
+       "confirmemail": "ელ. ფოსტის მისამართის დადასტურება",
+       "recreate": "აღადგინე",
+       "confirm_purge_button": "ჯგირი",
+       "confirm-purge-top": "გსურთ ამ გვერდის ქეშის წაშლა?",
+       "confirm-purge-bottom": "ქეშის გაწმენდის შემდეგ იქნება ნაჩვენები ბოლო ვერსია.",
+       "confirm-watch-button": "ჯგირი",
+       "confirm-watch-top": "დავამატო ეს გვერდი თქვენი კონტროლის სიას?",
+       "confirm-unwatch-button": "ჯგირი",
+       "confirm-unwatch-top": "მოვხსნა ეს გვერდი თქვენი კონტროლის სიიდან?",
+       "quotation-marks": "„$1“",
+       "imgmultipageprev": "← წინა გვერდი",
+       "imgmultipagenext": "შემდეგი გვერდი →",
+       "imgmultigo": "გადასვლა!",
+       "imgmultigoto": "გადასვლა გვერდზე $1",
+       "img-lang-default": "(საწყისი ენა)",
+       "img-lang-info": "აჩვენე ეს გამოსახულება $1, $2-ში",
+       "img-lang-go": "მიდი",
+       "ascending_abbrev": "დაბრ",
+       "descending_abbrev": "აღწერა",
+       "table_pager_next": "შემდეგი გვერდი",
+       "table_pager_prev": "წინა გვერდი",
+       "table_pager_first": "პირველი გვერდი",
+       "table_pager_last": "ბოლო გვერდი",
        "watchlisttools-view": "მერცხილ თირაფეფიშ ძირაფა",
        "watchlisttools-edit": "ოკონტროლებელ ხასილეფიშ ძირაფა დო რედაქტირაფა",
        "watchlisttools-raw": "კონტროლიშ ერკებულიშ რედაქტირაფა ტექსტიშ ფორმატის",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|სხუნუა]])",
        "duplicate-defaultsort": "''გური ქუჩით:''' სტანდარტული დანწყუალაშ კილა \"$2\"-შო გინარჯგინანს ორდონი დონწყუალაშ კილა \"$1\"-ს.",
        "version": "ვერსია",
+       "version-extensions": "დაყენებული გაფართოებები",
+       "version-skins": "დაყენებული თემები",
+       "version-specialpages": "გჷშაკერძაფილი ხასჷლეფი",
+       "version-parserhooks": "სინტაქსური ანალიზატორის ჰუკები",
+       "version-variables": "ცვალებადი",
+       "version-antispam": "სპამის პრევენცია",
+       "version-other": "სხვა",
+       "version-mediahandlers": "მედია დამუშავება",
+       "version-hooks": "ჰუკები",
+       "version-parser-extensiontags": "სინტაქსური ანალიზატორის თეგი",
+       "version-parser-function-hooks": "სინტაქსური ანალიზატორის ჰუკი",
+       "version-hook-name": "ჰუკის სახელი",
+       "version-hook-subscribedby": "ჩაწერილია",
+       "version-no-ext-name": "[სახელის გარეშე]",
+       "version-license": "მედიავიკის ლიცენზია",
+       "version-ext-license": "ლიცენზია",
+       "version-ext-colheader-name": "გაფართოებები",
+       "version-skin-colheader-name": "იერსახე",
+       "version-ext-colheader-version": "ვერსია",
+       "version-ext-colheader-license": "ლიცენზია",
+       "version-ext-colheader-description": "ეჭარუა",
+       "version-ext-colheader-credits": "ავტორები",
+       "version-license-title": "ლიცენზია $1-თვის",
+       "version-software": "დაინსტალირებული პროგრამული უზრუნველყოფა",
+       "version-software-product": "პროდუქტეფი",
+       "version-software-version": "ვერსია",
+       "version-entrypoints": "შესვლის წერტილის URL-ები",
+       "version-entrypoints-header-entrypoint": "შესვლის წერტილი",
+       "version-entrypoints-header-url": "URL",
+       "version-libraries": "დაინსტალირებული ბიბლიოთეკები",
+       "version-libraries-library": "ბიბლიოთეკა",
+       "version-libraries-version": "ვერსია",
+       "redirect": "გადამისამართება ფაილიდან, მომხმარებლიდან, გვერდიდან ან ვერსიის იდენტიფიკატორიდან",
+       "redirect-legend": "გადამისამართება ფაილზე ან გვერდზე",
+       "redirect-summary": "ეს დამხმარე გვერდი ამისამართებს ფაილის (ფაილის სახელიდან) გვერდზე, (გვერდის ან ვერსიის იდენტიფიკატორიდან) ან მომხმარებლის გვერდზე (მომხმარებლის რაოდენობრივი იდენტიფიკატორიდან). გამოყენება: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] ან [[{{#Special:Redirect}}/user/101]].",
+       "redirect-submit": "გინულა",
+       "redirect-lookup": "ძიება:",
+       "redirect-value": "მნიშვნელობა:",
+       "redirect-user": "მომხმარებლის იდენტიფიკატორი",
+       "redirect-page": "გვერდის ID",
+       "redirect-revision": "გვერდის ვერსია",
+       "redirect-file": "ფაილის სახელი",
+       "redirect-not-exists": "მნიშვნელობა ვერ მოიძებნა",
+       "fileduplicatesearch": "ერთნაირი ფაილების ძიება",
+       "fileduplicatesearch-summary": "ერთნაირი ფაილების ძიება ჰეშ-კოდის მიხედვით.",
+       "fileduplicatesearch-legend": "დუბლიკატების ძიება",
+       "fileduplicatesearch-filename": "ფაილის სახელი:",
+       "fileduplicatesearch-submit": "გორუა",
        "specialpages": "გჷშაკერძაფილი ხასჷლეფი",
+       "specialpages-note-top": "ლეგენდა",
+       "specialpages-note": "* ჩვეულებრივი სპეცგვერდები.\n* <span class=\"mw-specialpagerestricted\">სპეცგვერდები შეზღუდული წვდომით.</span>",
+       "specialpages-group-maintenance": "ტექნიკური მომსახურების ანგარიშები",
+       "specialpages-group-other": "სხვა სპეციალური გვერდები",
+       "specialpages-group-login": "მიშულა/ანგარიშიშ გონწყუმა",
+       "specialpages-group-changes": "ბოლო ცვლილებები და ჟურნალები",
+       "specialpages-group-media": "მედია მასალებისა და ატვირთვების ანგარიშები",
+       "specialpages-group-users": "მომხმარებლები და უფლებები",
+       "specialpages-group-highuse": "ხშირად გამოყენებული გვერდები",
+       "specialpages-group-pages": "გვერდების სიები",
+       "specialpages-group-pagetools": "ინსტრუმენტები გვერდებისთვის",
+       "specialpages-group-wiki": "მონაცემები და ინსტრუმენტები",
+       "specialpages-group-redirects": "სპეცგვერდების გადამისამართება",
+       "specialpages-group-spam": "ინსტრუმენტები სპამის წინააღმდეგ",
+       "specialpages-group-developer": "შემქმნელის ხელსაწყოები",
+       "blankpage": "ცარიელი გვერდი",
+       "intentionallyblankpage": "ეს გვერდი სპეციალურად დარჩა ცარიელი.",
        "external_image_whitelist": "\"#ქჷდიტე თე ღოზი კოკობო მუჭო რენ თეში<pre>\n#ქინახუნე რეგულარული გამოსახულებაშ ფრაგმენტეფი (თი ნაწილი ნამუთ თეშ // შქას ინოდოხოდ) თუდოლე\n#თენეფი მეზჷმაფილ იჸე გალენ (hotlinked) სურათეფიშ URL-ეფშა.\n#ნამუთ მიორენ თინა სურათეფო გაგშარჩქინდჷ, ვარ-და ხვალე სურათიშ რცხუ ირწყებედასიი.\n#ღოზეფი #-თ დოჭყაფილი კომენტარო რე მერჩქინელი.\n#თენა გჷნაფულენს ასოეფიშ რეგისტრის.\n\n#ქინახუნე არძო regex ფრაგმენტეფი თე ღოზიშ ჟი. ქჷდიტე თე ღოზი კოკობო მუჭო რენ თეში</pre>\"",
+       "tags": "ცვლილებათა მოქმედი მონიშვნები",
        "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-source-header": "წყუ",
+       "tags-active-header": "აქტიურია?",
+       "tags-hitcount-header": "აღნიშნული ცვლილებები",
+       "tags-actions-header": "მოქმედალეფი",
+       "tags-active-yes": "ქო",
+       "tags-active-no": "არა",
+       "tags-source-extension": "განისაზღვრება გაფართოებით",
+       "tags-source-manual": "გამოყენებულია ავტომატურად მომხმარებლებისა და ბოტების მიერ",
+       "tags-source-none": "აღარ გამოიყენება",
+       "tags-edit": "რედაქტირაფა",
+       "tags-delete": "ლასუა",
+       "tags-activate": "გააქტიურება",
+       "tags-deactivate": "დეაქტივაცია",
+       "tags-create-tag-name": "ტეგიშ ჯოხო:",
+       "tags-create-reason": "სამანჯელი:",
+       "tags-create-submit": "დორსხუაფა",
+       "tags-create-no-name": "თქვენ უნდა მიუთითოთ დასათაურების სახელი",
+       "tags-create-invalid-chars": "ტეგების სახელწოდებები არ უნდა შეიცავდეს მძიმეებს (<code>,</code>) ან დახრილი ხაზის სიმბოლოებს (<code>/</code>).",
+       "tags-create-invalid-title-chars": "დასათაურების სახელები უნდა შეიცავდეს სიმბოლოებს, რომლებიც არ შეიძლება იყოს გამოყენებული გვერდების სათაურებში.",
+       "tags-edit-existing-tags": "არსებული დასათაურებები:",
+       "tags-edit-existing-tags-none": "''არა''",
+       "tags-edit-new-tags": "ახალი აღნიშვნა:",
+       "tags-edit-add": "ამ აღნიშვნის დამატება:",
+       "tags-edit-remove": "ამ აღნიშვნის წაშლა:",
+       "tags-edit-remove-all-tags": "(ყველა აღნიშვნის წაშლა)",
+       "tags-edit-chosen-placeholder": "ზოგიერთი აღნიშვნის არჩევა",
+       "tags-edit-chosen-no-results": "დასათაურების შესაბამისობა არ მოიძებნა",
+       "tags-edit-reason": "სამანჯელი:",
+       "tags-edit-revision-submit": "ცვლილებების მიღება {{PLURAL:$1|ეს გადასინჯვა|$1 გადასინჯვები}}",
+       "comparepages": "გვერდების შედარება",
+       "compare-page1": "1 გვერდი",
+       "compare-page2": "2 გვერდი",
+       "compare-rev1": "პირველი ვერსია",
+       "compare-rev2": "მეორე ვერსია",
+       "compare-submit": "შედარება",
+       "compare-invalid-title": "თქვენ მიერ მითითებულია დაუშვებელი სახელი.",
+       "compare-title-not-exists": "თქვენ მიერ მითითებული სახელი არ არსებობს.",
+       "compare-revision-not-exists": "თქვენ მიერ მითითებული ვერსია არ არსებობს.",
+       "dberr-problems": "ბოდიში! საიტზე დროებითი ტექნიკური პრობლემებია.",
+       "dberr-again": "ეცადეთ რამდენიმე წუთით დაცდა და ამ გვერდის გადატვირთვა.",
+       "dberr-info": "(მონაცემთა ბაზებთან კავშირი არ არის: $1)",
+       "dberr-info-hidden": "(მონაცემთა ბაზებთან კავშირი არ არის)",
+       "dberr-usegoogle": "ამ დროს კი შეგიძლიათ Google-ით ძიება.",
+       "dberr-outofdate": "გაითვალისწინეთ, რომ თქვენი კონტენტის ინდექსები შეიძლება შეუსაბამო იყოს.",
+       "dberr-cachederror": "ეს არის მოთხოვნილი გვერდის კეშირებული ვერსია, და შესაძლება მოძველდა.",
+       "htmlform-invalid-input": "თქვენ მიერ შეყვანილი ინფორმაციის ნაწილმა გამოიწვია პრობლემები.",
+       "htmlform-select-badoption": "თქვენ მიერ მითითებული მნიშვნელობა მიუღებელია.",
+       "htmlform-int-invalid": "თქვენ მიერ მითითებული მნიშვნელობა არ არის მთელი რიცხვი.",
+       "htmlform-float-invalid": "თქვენ მიერ მითითებული მნიშვნელობა არ არის რიცხვი.",
+       "htmlform-required": "ეს მნიშვნელობა საჭიროა.",
+       "htmlform-submit": "შენახვა",
+       "htmlform-reset": "ცვლილებების გაუქმება",
+       "htmlform-selectorother-other": "სხვა",
+       "htmlform-no": "არა",
+       "htmlform-yes": "ქო",
+       "htmlform-chosen-placeholder": "აირჩიეთ პარამეტრი",
+       "htmlform-cloner-create": "მეტის დამატება",
+       "htmlform-cloner-delete": "ლასუა",
+       "htmlform-cloner-required": "აუცილებელია სულ მცირე ერთი მნიშვნელობა.",
        "logentry-delete-delete": "მოხვარებუქ $1 {{GENDER:$2|დოლასუ}} ხასჷლა: „$3“",
        "logentry-move-move": "მახვარებუქ $1 ხასჷლა „$3“ {{GENDER:$2|გეგნიღჷ}} ხასჷლაშა „$4“",
        "logentry-upload-upload": "მახვარებუქ $1 {{GENDER:$2|ეხარგუ}} $3",
+       "rightsnone": "(არცერთი)",
+       "revdelete-summary": "ცვლილებების აღწერა",
+       "feedback-adding": "თქვენი შეფასების შენახვა...",
+       "feedback-back": "უკან",
+       "feedback-bugcheck": "კარგია! გთხოვთ, კიდევ ერთხელ შეამოწმეთ, ხომ არ არის აქ რომელიმე უკვე [$1 ნაცნობი შეცდომა].",
+       "feedback-bugornote": "თუ თქვენ მზად ხართ დეტალურად აღწეროთ ტექნიკური პრობლემა, გთხოვთ, [$1 შეგვატყობინეთ შეცდომის შესახებ].\nწინააღმდეგ შემთხვევაში თქვენ შეგიძლიათ ისარგებლოთ ამ მარტივი ფორმით. თქვენი კომენტარი დაემატება  „[$3 $2]“ გვერდზე თქვენი მომხმარებლის სახელთან და გამოყენებულ ბრაუზერთან ერთად.",
+       "feedback-cancel": "გოუქვაფა",
+       "feedback-close": "გაკეთდა",
+       "feedback-external-bug-report-button": "ტექნიკური დავალების გაგზავნა",
+       "feedback-dialog-title": "გამოხმაურების გაგზავნა",
+       "feedback-dialog-intro": "თქვენ შეგიძლიათ ისარგებლოთ ქვემოთ არსებული მარტივი ფორმით, რათა დატოვოთ თქვენი გამოძახილი. კომენტარები თქვენ მომხმარებლის სახელთან ერთად დამატებული იქნება \"$1\" გვერდზე",
+       "feedback-error-title": "ჩილათა",
+       "feedback-error1": "შეცდომა. API-ს მოულოდნელი რეზულტატი",
+       "feedback-error2": "შეცდომა: რედაქტირება ვერ განხორციელდა",
+       "feedback-error3": "შეცდომა. არ არის API-ს პასუხი",
+       "feedback-error4": "შეცდომა: შეუძლებელია ჩანაწერის განთავსება უკუკავშირით მითითებული სათაურით",
+       "feedback-message": "შეტყობინება:",
+       "feedback-subject": "თემა:",
+       "feedback-submit": "მიღება",
+       "feedback-thanks-title": "გმადლობთ!",
+       "feedback-useragent": "მომხმარებლის აგენტი:",
        "searchsuggest-search": "გორუა",
-       "special-characters-group-ipa": "IPA"
+       "searchsuggest-containing": "შეიცავს...",
+       "duration-seconds": "$1 {{PLURAL:$1|წამი|წამი}}",
+       "duration-minutes": "$1 {{PLURAL:$1|წუთი|წუთი}}",
+       "duration-hours": "$1 {{PLURAL:$1|საათი|საათი}}",
+       "duration-days": "$1 {{PLURAL:$1|დღე|დღე}}",
+       "duration-weeks": "$1 {{PLURAL:$1|კვირა|კვირა}}",
+       "duration-years": "$1 {{PLURAL:$1|წელი|წელი}}",
+       "duration-decades": "$1 {{PLURAL:$1|დეკადა|დეკადა}}",
+       "duration-centuries": "$1 {{PLURAL:$1|საუკუნე|საუკუნე}}",
+       "duration-millennia": "$1 {{PLURAL:$1|ათასწლეული|ათასწლეული}}",
+       "expand_templates_input": "შესაყვანი ტექსტი:",
+       "expand_templates_output": "შედეგი",
+       "expand_templates_xml_output": "XML-ის გამოტანა",
+       "expand_templates_html_output": "HTML გამოყვანა",
+       "expand_templates_ok": "ჯგირი",
+       "expand_templates_remove_comments": "კომენტარიშ გოუქვაფა",
+       "expand_templates_remove_nowiki": "ტეგების დათრგუნვა <nowiki> შედეგში",
+       "expand_templates_generate_xml": "XML-ის ხის გარჩევის ჩვენება",
+       "expand_templates_generate_rawhtml": "HTML ჩვენება",
+       "expand_templates_preview": "გიწოთოლორაფა",
+       "pagelanguage": "გვერდის ენის არჩევა",
+       "pagelang-name": "ხასჷლა",
+       "pagelang-language": "ნინა",
+       "pagelang-use-default": "საწყისი ენის გამოყენება",
+       "pagelang-select-lang": "აირჩიეთ ენა",
+       "right-pagelang": "გვერდის ენის შეცვლა",
+       "action-pagelang": "გვერდის ენის შეცვლა",
+       "log-name-pagelang": "ენის ცვლილებების ჟურნალი",
+       "log-description-pagelang": "ეს არის გვერდის ენის ცვლილებების ჟურნალი.",
+       "mediastatistics-table-mimetype": "MIME-ტიპი",
+       "mediastatistics-table-extensions": "შესაძლო გაფართოებები",
+       "mediastatistics-table-count": "ფაილების რაოდენობა",
+       "mediastatistics-table-totalbytes": "საერთო ზომა",
+       "mediastatistics-header-unknown": "უცნობი",
+       "mediastatistics-header-bitmap": "რასტრული სურათები",
+       "mediastatistics-header-drawing": "ნახატები (ვექტორული სურათები)",
+       "mediastatistics-header-audio": "აუდიო",
+       "mediastatistics-header-video": "ვიდეოები",
+       "mediastatistics-header-multimedia": "მულტიმედია",
+       "mediastatistics-header-office": "ოფისი",
+       "mediastatistics-header-text": "ტექსტური",
+       "mediastatistics-header-executable": "შესრულებადი",
+       "mediastatistics-header-archive": "შეკუმშული ფორმატები",
+       "headline-anchor-title": "ბმული ამ სექციაზე",
+       "special-characters-group-latin": "ლათინური",
+       "special-characters-group-latinextended": "ლათინური გაფართოება",
+       "special-characters-group-ipa": "IPA",
+       "special-characters-group-symbols": "სიმბოლოები",
+       "special-characters-group-greek": "ბერძნული",
+       "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": "ქჰმერული",
+       "special-characters-title-endash": "საშუალო ტირე",
+       "special-characters-title-emdash": "გრძელი ტირე",
+       "special-characters-title-minus": "მინუსის ნიშანი"
 }
index 09ab08c..e5c65f6 100644 (file)
        "no-null-revision": "נישט מעגלעך צו שאפן א נול־ווערסיע פונעם בלאט \"$1\".",
        "badtitle": "שלעכט קעפל",
        "badtitletext": "דאס קעפל פון דעם געזוכטן בלאט איז געווען אומגעזעצליך, ליידיג, אן אינטערשפראך אדער אינטערוויקי לינק וואס פאסט נישט, אדער אנטהאט כאראקטערס וואס מ'קען נישט ניצן אין א קעפל.",
+       "title-invalid-empty": "דער געזוכטער בלאט־קעפל איז ליידיג אדער אנטהאלט נאר דעם נאמען פון א נאמענטייל.",
+       "title-invalid-interwiki": "דער געזונט ער בלאט־קעפל אנטהאלט אן אינטערוויקי־לינק, וואס מ'קען נישט ניצן אין א קעפל.",
+       "title-invalid-talk-namespace": "דער געזוכטער בלאט־קעפל באציט זיך צו א שמועס־בלאט וואס קען נישט עקזעסטירן.",
+       "title-invalid-characters": "דער געזוכטער בלאט־קעפל אנטהאלט אומגילטיקע צייכענען: \"$1\".",
        "perfcached": "די פאלגנדע דאטן זענען גענומען פונעם 'זאַפאַס' און מעגלעך נישט אקטועל. מאקסימום {{PLURAL:$1|איין רעזולטאט איז|$1 רעזולטאטן זענען}} פאראן אין זאפאס.",
        "perfcachedts": "די פאלגנדע דאטן זענען פונעם זאַפאַס, וואס איז לעצט געווארן דערהײַנטיגט $1. מאקסימום {{PLURAL:$4|איין רעזולטאט איז|$4 רעזולטאטן זענען}} פאראן אין זאפאס",
        "querypage-no-updates": "דערהיינטיגן דעם בלאט איז איצט אומערמעגלעכט.\nדאטן דא וועט נישט דערווייל ווערן באנייט.",
        "userrights-lookup-user": "פֿאַרוואַלטן באניצער גרופעס",
        "userrights-user-editname": "לייגט אריין א באַניצער-נאמען:",
        "editusergroup": "רעדאַגירן באַניצער גרופּעס",
-       "editinguser": "ענדערן באַניצער רעכטן פון באַניצער '''[[User:$1|$1]]'''   $2",
+       "editinguser": "ענדערן באַניצער רעכטן פון  {{GENDER:$1|באַניצער|באַניצערין}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "רעדאַקטירן באַניצער גרופעס",
        "saveusergroups": "אָפהיטן באַניצער גרופעס",
        "userrights-groupsmember": "מיטגליד פון:",
        "import-interwiki-history": "קאפירן אלע היסטאריע ווערסיעס פאר דעם בלאט",
        "import-interwiki-templates": "איינשילסן אלע מוסטערן",
        "import-interwiki-submit": "אימפארט",
+       "import-mapping-namespace": "אימפארטירן צו נאמענטייל:",
+       "import-mapping-subpage": "אימפארטירן ווי אונטערבלעטער פונעם פאלגנדן בלאט:",
        "import-upload-filename": "טעקע נאמען:",
        "import-comment": "הערה:",
        "importtext": "ביטע עקספארטירט די טעקע פון דער מקור וויקי ניצנדיג דאס [[Special:Export|עקספארט הילפמיטל]], שפייכלט אײַן אויף אײַער קאמפיוטער און לאדט אַרויף דא.",
        "pageinfo-protect-cascading-yes": "יאָ",
        "pageinfo-protect-cascading-from": "שיצונגען קאסקאדירן פון",
        "pageinfo-category-info": "קאטעגאריע אינפארמאציע",
+       "pageinfo-category-total": "סה\"כ צאָל מיטגלידער",
        "pageinfo-category-pages": "צאָל בלעטער",
        "pageinfo-category-subcats": "צאָל אונטערקאטעגאריעס",
        "pageinfo-category-files": "צאָל טעקעס",
        "patrol-log-page": "פאטראלירן לאג-בוך",
        "patrol-log-header": "דאס איז א לאג-בוך פון פאַטראליטע רעוויזיעס.",
        "log-show-hide-patrol": "$1 פאַטראלירן לאג-בוך",
+       "log-show-hide-tag": "$1 טאג־לאגבוך",
        "deletedrevision": "אויסגעמעקט אלטע ווערסיע $1.",
        "filedeleteerror-short": "גרייז ביים אויסמעקן טעקע: $1",
        "filedeleteerror-long": "גרײַזן געטראפֿן בײַם אויסמעקן די טעקע:\n\n$1",
        "version-software-version": "ווערסיע",
        "version-entrypoints-header-entrypoint": "אריינגאנג פונקט",
        "version-entrypoints-header-url": "URL",
+       "version-libraries-library": "ביבליאטעק",
+       "version-libraries-version": "ווערסיע",
        "redirect-legend": "ווײַטערײַטערפירונג צו א טעקע אדער בלאט",
        "redirect-submit": "גייט",
        "redirect-lookup": "זוכן:",
        "tags-tag": "טאַג נאָמען",
        "tags-display-header": "אויסזען אין ענדערונג רשימות",
        "tags-description-header": "פֿולע באַשרייַבונג פון באַטײַט",
+       "tags-source-header": "מקור",
        "tags-active-header": "אַקטיוו?",
        "tags-hitcount-header": "מארקירטע ענדערונגען",
+       "tags-actions-header": "אַקציעס",
        "tags-active-yes": "יא",
        "tags-active-no": "ניין",
        "tags-edit": "רעדאַקטירן",
+       "tags-delete": "אויסמעקן",
+       "tags-activate": "אקטיוויזירן",
+       "tags-deactivate": "אומאקטיוויזירן",
        "tags-hitcount": " {{PLURAL:$1|ענדערונג|$1 ענדערונגען}}",
+       "tags-create-submit": "שאַפֿן",
+       "tags-activate-reason": "גרונד:",
        "comparepages": "פאַרגלייַכן בלעטער",
        "compare-page1": "עמוד 1",
        "compare-page2": "עמוד 2",
index 9214790..4cb8dc1 100644 (file)
        "no-null-revision": "无法创建对\"$1\"页面新的空白版本",
        "badtitle": "错误标题",
        "badtitletext": "您请求了个无效、不存在或者跨语言或跨wiki链接标题错误的页面。它可能包含一个或多个不能用于标题的字符。",
-       "title-invalid-empty": "所请求的网站标题为空。",
+       "title-invalid-empty": "请求的页面标题为空,或只包含名字空间名称。",
        "title-invalid-utf8": "请求的页面标题包含一个无效的UTF-8序列。",
-       "title-invalid-interwiki": "标题包含跨wiki链接",
+       "title-invalid-interwiki": "请求的页面标题包含跨wiki链接,它不能用于标题。",
        "title-invalid-talk-namespace": "请求的页面标题引用了一个不能存在的讨论页。",
        "title-invalid-characters": "请求的页面标题包含无效字符:“$1”。",
-       "title-invalid-relative": "标题有相对路径。相关的页面标题(./, ../)无效,因为用户浏览器经常无法进入这些页面。",
+       "title-invalid-relative": "标题有相对路径。相关的页面标题(./, ../)无效,因为用户浏览器经常无法到达这些页面。",
        "title-invalid-magic-tilde": "请求的页面标题包含无效的连续波浪(<nowiki>~~~</nowiki>)。",
-       "title-invalid-too-long": "所请求的网页标题太长。标题不能超过$1个字节。",
+       "title-invalid-too-long": "请求的页面标题太长。作为UTF-8编码,它不能超过$1个{{PLURAL:$1|字节}}。",
        "title-invalid-leading-colon": "请求的页面标题开头包含一个无效的冒号。",
        "perfcached": "以下是缓存的数据,可能不是最新的数据。缓存中最多有{{PLURAL:$1|$1条结果}}。",
        "perfcachedts": "以下是缓存的数据,最后更新于$1。缓存中最多有{{PLURAL:$4|$4条结果}}。",
        "content-model-css": "CSS",
        "content-json-empty-object": "空的对象",
        "content-json-empty-array": "空的数组",
+       "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>。",
        "expensive-parserfunction-warning": "<strong>警告:</strong>这个页面有太多高昂的语法功能调用。\n\n它应该少过$2次呼叫,现在有$1次呼叫。",
        "userrights-lookup-user": "管理用户组",
        "userrights-user-editname": "输入用户名:",
        "editusergroup": "编辑用户组",
-       "editinguser": "更改用户'''[[User:$1|$1]]'''的用户权限$2",
+       "editinguser": "更改{{GENDER:$1|用户}}<strong>[[User:$1|$1]]</strong>的用户权限$2",
        "userrights-editusergroup": "编辑用户组",
        "saveusergroups": "保存用户组",
        "userrights-groupsmember": "用户组:",
        "uploaddisabledtext": "文件上传已停用。",
        "php-uploaddisabledtext": "PHP文件上传停用。请检查file_uploads设置。",
        "uploadscripted": "该文件包含可能被网络浏览器错误解释的 HTML 或脚本代码。",
+       "upload-scripted-pi-callback": "不能上传包含xml-stylesheet处理命令的文件。",
+       "uploaded-script-svg": "在上传的SVG文件中找到可编写脚本的元素“$1”。",
+       "uploaded-hostile-svg": "在上传的SVG文件中的样式元素中找到不安全CSS。",
+       "uploaded-event-handler-on-svg": "在SVG文件中不允许设置event-handler属性<code>$1=\"$2\"</code>。",
+       "uploaded-href-attribute-svg": "在SVG文件中不允许Href属性<code>&lt;$1 $2=\"$3\"&gt;</code>带非本地目标(例如http://、javascript:等)。",
+       "uploaded-href-unsafe-target-svg": "在上传的SVG文件中找到href至不安全目标<code>&lt;$1 $2=\"$3\"&gt;</code>。",
+       "uploaded-animate-svg": "在上传的SVG文件找到“animate”标签,它可能会更改href,使用“from”属性<code>&lt;$1 $2=\"$3\"&gt;</code>。",
+       "uploaded-setting-event-handler-svg": "设置event-handler属性时受阻,在上传的SVG文件中找到<code>&lt;$1 $2=\"$3\"&gt;</code>。",
+       "uploaded-setting-href-svg": "使用“set”标签加入“href”属性至父元素时受阻。",
+       "uploaded-wrong-setting-svg": "使用“set”标签添加远程/数据/脚本目标至任意属性时受阻。在上传的SVG文件中找到<code>&lt;set to=\"$1\"&gt;</code>。",
+       "uploaded-setting-handler-svg": "通过远程/数据/脚本设置“handler”属性的SVG时受阻。在上传的SVG文件中找到<code>$1=\"$2\"</code>。",
+       "uploaded-remote-url-svg": "通过远程URL设置任意样式属性的SVG时受阻。在上传的SVG文件中找到<code>$1=\"$2\"</code>。",
+       "uploaded-image-filter-svg": "在上传的SVG文件中找到图片过滤器带URL:<code>&lt;$1 $2=\"$3\"&gt;</code>。",
        "uploadscriptednamespace": "此SVG文件包含非法名字空间“$1”",
        "uploadinvalidxml": "上传文件中的XML无法解析。",
        "uploadvirus": "该文件包含病毒!\n详情:$1",
        "unusedimages": "未使用文件",
        "wantedcategories": "需要的分类",
        "wantedpages": "需要的页面",
-       "wantedpages-summary": "被链接最多次的不存在页面的列表,除了只链接到这些页面的重定向页面。关于链接到不存在页面的重定向页面列表,参见[[{{#special:BrokenRedirects}}]]。",
+       "wantedpages-summary": "被链接最多次的不存在页面的列表,除了只链接到这些页面的重定向页面。关于链接到不存在页面的重定向页面列表,参见[[{{#special:BrokenRedirects}}|损坏重定向的列表]]。",
        "wantedpages-badtitle": "在结果组上的无效标题:$1",
        "wantedfiles": "需要的文件",
        "wantedfiletext-cat": "以下文件被使用,但并不存在。来自外部库的文件即使存在也可能被列出。任何这类误报会用<del>删除线</del>标记。另外,插入不存在的文件的页面列于[[:$1]]。",
        "expensive-parserfunction-category-desc": "页面使用过多高开销解析器函数(如<code>#ifexist</code>)。请见[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit MediaWiki官网手册]。",
        "broken-file-category-desc": "页面含有受损文件链接(文件不存在时的嵌入文件链接)。",
        "hidden-category-category-desc": "分类的页面内容中含有<code><nowiki>__HIDDENCAT__</nowiki></code>,它会阻止分类默认在页面的分类链接框中显示。",
-       "trackingcategories-nodesc": "没有说明。",
+       "trackingcategories-nodesc": "没有可用说明。",
        "trackingcategories-disabled": "分类被禁用",
        "mailnologin": "无电子邮件地址",
        "mailnologintext": "你必须[[Special:UserLogin|登录]]并在你的[[Special:Preferences|系统设置]]中拥有有效的电子邮件地址才能向其他用户发送电子邮件。",
        "log-name-pagelang": "更改语言日志",
        "log-description-pagelang": "这是页面语言更改的日志。",
        "logentry-pagelang-pagelang": "$1{{GENDER:$2|更改}}$3的页面语言:从$4改为$5。",
-       "default-skin-not-found": "天哪!您在<code dir=\"ltr\">$wgDefaultSkin</code>定义的wiki默认皮肤<code>$1</code>不可用。\n\n您的安装版本看起来需要包含以下{{PLURAL:$4|皮肤}}。参见MediaWiki官网手册[https://www.mediawiki.org/wiki/Manual:Skin_configuration “皮肤配置”]获取如何启用{{PLURAL:$4|它|它们并设置为默认}}。\n\n$2\n\n; 如果您刚刚安装完了MediaWiki的话:\n: 您可能是从git库安装的,或者使用其他方法直接从源代码安装的。希望如此。尝试通过以下方法从[https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org的皮肤存储库]安装一些皮肤:\n:* 下载[https://www.mediawiki.org/wiki/Download/zh-hans 打包安装器],这会预装一些皮肤和扩展。您可在此处复制粘贴<code>skins/</code>。\n:* 从[https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org]单独下载皮肤安装包。\n:* 通过git直接克隆<code>mediawiki/skins/*</code>存储库中的一个至您的MediaWiki副本的<code dir=\"ltr\">skins/</code>。\n: 做这些事应该不会打扰您的git存储库如果你是MediaWiki开发人员的话。\n\n; 如果您升级了您的MediaWiki的话:\n: MediaWiki 1.24版本起不再自动启用已安装皮肤(参见[https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery 此手册])。您可复制粘贴以下{{PLURAL:$5|几行}}文本至您wiki的<code>LocalSettings.php</code>以启用{{PLURAL:$5||所有}}安装的{{PLURAL:$5|皮肤}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; 如果您已经修改了<code>LocalSettings.php</code>:\n: 请再次检查皮肤名以确保不存在错误拼写。",
-       "default-skin-not-found-no-skins": "天哪!您在<code>$wgDefaultSkin</code>定义的wiki默认皮肤<code>$1</code>不可用。而且您没有安装任何皮肤。\n\n; 如果您刚刚安装完了MediaWiki的话:\n: 您可能是从git库安装的,或者使用其他方法直接从源代码安装的,这是预期的。这是因为MediaWiki 1.24版本起主代码库不再包含任何皮肤。尝试通过以下方法从[https://www.mediawiki.org/wiki/Special:MyLanguage/Category:All_skins mediawiki.org的皮肤存储库]安装一些皮肤:\n:* 下载[https://www.mediawiki.org/wiki/Download/zh-hans 打包安装器],这会预装一些皮肤和扩展。您可在此处复制粘贴<code>skins/</code>。\n:* 从[https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org]单独下载皮肤安装包。\n:* 通过git直接克隆<code>mediawiki/skins/*</code>存储库中的一个至您的MediaWiki副本的<code dir=\"ltr\">skins/</code>。\n: 做这些事应该不会打扰您的git存储库如果你是MediaWiki开发人员的话。参见MediaWiki官网手册[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skin_configuration “皮肤配置”]获取如何启用他们并设置为默认。",
+       "default-skin-not-found": "天哪!您在<code dir=\"ltr\">$wgDefaultSkin</code>定义的wiki默认皮肤<code>$1</code>不可用。\n\n您的安装版本看起来需要包含以下{{PLURAL:$4|皮肤}}。参见MediaWiki官网手册[https://www.mediawiki.org/wiki/Manual:Skin_configuration “皮肤配置”]获取如何启用{{PLURAL:$4|它|它们并设置为默认}}。\n\n$2\n\n; 如果您刚刚安装完了MediaWiki的话:\n: 您可能是从git库安装的,或者使用其他方法直接从源代码安装的。这是正常现象。请尝试通过以下方法从[https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org的皮肤存储库]安装一些皮肤:\n:* 下载[https://www.mediawiki.org/wiki/Download/zh-hans 打包安装器],它已有一些皮肤和扩展。您可从那里复制粘贴<code>skins/</code>目录。\n:* 从[https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org]单独下载皮肤安装包。\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins 使用Git下载皮肤]。\n: 做这些事应该不会打扰您的git存储库如果你是MediaWiki开发人员的话。\n\n; 如果您升级了您的MediaWiki的话:\n: MediaWiki 1.24版本起不再自动启用已安装皮肤(参见[https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery 此手册])。您可复制粘贴以下{{PLURAL:$5|几行}}文本至您wiki的<code>LocalSettings.php</code>以启用{{PLURAL:$5||所有}}安装的{{PLURAL:$5|皮肤}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; 如果您已经修改了<code>LocalSettings.php</code>:\n: 请再次检查皮肤名以确保不存在错误拼写。",
+       "default-skin-not-found-no-skins": "天哪!您在<code>$wgDefaultSkin</code>定义的wiki默认皮肤<code>$1</code>不可用。而且您没有安装任何皮肤。\n\n; 如果您刚刚安装完了MediaWiki的话:\n: 您可能是从git库安装的,或者使用其他方法直接从源代码安装的,这是预期的。这是因为MediaWiki 1.24版本起主代码库不再包含任何皮肤。尝试通过以下方法从[https://www.mediawiki.org/wiki/Special:MyLanguage/Category:All_skins mediawiki.org的皮肤存储库]安装一些皮肤:\n:* 下载[https://www.mediawiki.org/wiki/Download/zh-hans 打包安装器],它已有一些皮肤和扩展。您可从那里复制粘贴<code>skins/</code>目录。\n:* 从[https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org]单独下载皮肤安装包。\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins 使用Git下载皮肤]。\n: 做这些事应该不会打扰您的git存储库如果你是MediaWiki开发人员的话。参见MediaWiki官网手册[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skin_configuration “皮肤配置”]获取如何启用他们并设置为默认。",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2(已启用)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2('''已禁用''')",
        "mediastatistics": "媒体统计",
index c26f132..46d0f16 100644 (file)
@@ -60,7 +60,8 @@
                        "NigelSoft",
                        "EagerLin",
                        "Cbliu",
-                       "Citizen01"
+                       "Citizen01",
+                       "Zhxy 519"
                ]
        },
        "tog-underline": "底線標示連結:",
        "searcharticle": "執行",
        "history": "頁面歷史",
        "history_short": "歷史",
-       "updatedmarker": "自我上次參觀後的更新",
+       "updatedmarker": "自我上次造訪後的更新",
        "printableversion": "可列印版",
        "permalink": "靜態連結",
        "print": "列印",
        "no-null-revision": "無法建立頁面 \"$1\" 的新空白修訂",
        "badtitle": "無效的標題",
        "badtitletext": "指定的頁面標題是無效、空白,或未正確連結的跨語言或跨 Wiki 的標題。\n標題中可能包含無法使用在標題的字元。",
+       "title-invalid-empty": "請求的頁面標題為空的或僅含命名空間名稱。",
+       "title-invalid-utf8": "請求的頁面標題含有無效的 UTF-8 符號。",
+       "title-invalid-interwiki": "請求的頁面標題含有無法使用在標題的跨 Wiki 連結。",
+       "title-invalid-talk-namespace": "請求的頁面標題引用了可能不存在的對話頁。",
+       "title-invalid-characters": "請求的頁面標題包含無效的字元:\"$1\"。",
+       "title-invalid-relative": "標題中含有相對路徑。相對路徑的頁面標題 (./, ../) 無效,使用者瀏覽器通常無法存取相對路徑。",
+       "title-invalid-magic-tilde": "請求的頁面標題含有無效的魔術波浪符號 (<nowiki>~~~</nowiki>)。",
+       "title-invalid-too-long": "請求的頁面標題過長,標題使用 UTF-8 編碼不可超過 $1 {{PLURAL:$1|位元組|位元組}}。",
+       "title-invalid-leading-colon": "請求的頁面標題包含無效的冒號於開始。",
        "perfcached": "以下為快取資料,可能不是最新的。 快取資料最多可儲存 {{PLURAL:$1|1 筆結果|$1 筆結果}}。",
        "perfcachedts": "以下為快取資料,最後更新時間為 $1。 快取資料最多可儲存 {{PLURAL:$4|1 筆結果|$4 筆結果}}。",
        "querypage-no-updates": "目前已停用此頁面的更新功能。\n在此頁面的資料不會被立即更新。",
        "subject-preview": "主旨/標題預覽:",
        "previewerrortext": "嘗試預覽您的變更時發生錯誤。",
        "blockedtitle": "使用者已被封鎖",
-       "blockedtext": "<strong>您的使用者名稱或 IP 位址以被封鎖。</strong>\n\n您被 $1 封鎖,\n原因爲 <em>$2</em>。\n\n* 封鎖開始時間:$8\n* 封鎖結束時間:$6\n* 相關封鎖對象:$7\n\n您可以聯絡 $1 或其他的 [[{{MediaWiki:Grouppage-sysop}}|管理員]] 討論封鎖的相關問題。\n若您已在 [[Special:Preferences|偏好設定]] 中設定了一個有效的電子郵地址,且尚未被封鎖郵件功能,則您可透過 \"Email 聯絡此使用者\" 的功能來聯絡相關管理員。\n您目前的 IP 位址是 $3,此次封鎖的 ID 為 #$5。\n請您在詢問時附註以上詳細訊息。",
-       "autoblockedtext": "因先前的另一位使用者被 $1 封鎖,您的 IP 位址已被自動封鎖。\n原因是:\n\n:<em>$2</em>\n\n* 封鎖開始時間:$8\n* 封鎖結束時間:$6\n* 相關封鎖對象:$7\n\n您可以聯絡 $1 或其他的 [[{{MediaWiki:Grouppage-sysop}}|管理員]] 討論封鎖的相關問題。\n若您已在 [[Special:Preferences|偏好設定]] 中設定了一個有效的電子郵地址,且尚未被封鎖郵件功能,則您可透過 \"Email 聯絡此使用者\" 的功能來聯絡相關管理員。\n您目前的 IP 位址是 $3,此次封鎖的 ID 為 #$5。\n請您在詢問時附註以上詳細資料。",
+       "blockedtext": "<strong>您的使用者名稱或 IP 位址以被封鎖。</strong>\n\n您被 $1 封鎖,\n原因爲 <em>$2</em>。\n\n* 封鎖開始時間:$8\n* 封鎖結束時間:$6\n* 相關封鎖對象:$7\n\n您可以聯絡 $1 或其他的 [[{{MediaWiki:Grouppage-sysop}}|管理員]] 討論封鎖的相關問題。\n若您已在 [[Special:Preferences|偏好設定]] 中設定了一個有效的電子郵地址,且尚未被封鎖郵件功能,則您可透過 \"Email 聯絡此使用者\" 的功能來聯絡相關管理員。\n您目前的 IP 位址是 $3,此次封鎖的 ID 為 #$5。\n請您在詢問時附註以上詳細訊息。",
+       "autoblockedtext": "因先前的另一位使用者被 $1 封鎖,您的 IP 位址已被自動封鎖。\n原因是:\n\n:<em>$2</em>\n\n* 封鎖開始時間:$8\n* 封鎖結束時間:$6\n* 相關封鎖對象:$7\n\n您可以聯絡 $1 或其他的 [[{{MediaWiki:Grouppage-sysop}}|管理員]] 討論封鎖的相關問題。\n若您已在 [[Special:Preferences|偏好設定]] 中設定了一個有效的電子郵地址,且尚未被封鎖郵件功能,則您可透過 \"Email 聯絡此使用者\" 的功能來聯絡相關管理員。\n您目前的 IP 位址是 $3,此次封鎖的 ID 為 #$5。\n請您在詢問時附註以上詳細資料。",
        "blockednoreason": "未說明原因",
        "whitelistedittext": "請先 $1 才可編輯頁面。",
        "confirmedittext": "在編輯此頁之前您必須確認您的電子郵件地址。\n請透過 [[Special:Preferences|偏好設定]] 設定並驗證您的電子郵件地址。",
        "content-model-css": "CSS",
        "content-json-empty-object": "空物件",
        "content-json-empty-array": "空陣列",
-       "duplicate-args-category": "樣板呼叫時使用重複的參數的頁面",
-       "duplicate-args-category-desc": "該頁面包含重複使用參數的樣板呼叫,如 <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> 或 <code><nowiki>{{foo|bar|1=baz}}</nowiki>。",
+       "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>。",
        "expensive-parserfunction-warning": "<strong>警告:</strong>此頁面使用了太多消耗系統資源的解析函數。\n\n使用次數應小於 $2 次,但目前使用了 $1 次。",
        "expensive-parserfunction-category": "使用了太多消耗系統資源的分析函數的頁面",
-       "post-expand-template-inclusion-warning": "<strong>è­¦å\91\8aï¼\9a</strong>å¼\95ç\94¨æ¨£æ\9d¿å¾\8c大å°\8fè¶\85å\87ºé\99\90å\88¶ã\80\82\né\83¨ä»½æ¨£板內容將不會被使用。",
-       "post-expand-template-inclusion-category": "å¼\95ç\94¨æ¨£板後大小超出限制的頁面",
+       "post-expand-template-inclusion-warning": "<strong>è­¦å\91\8aï¼\9a</strong>å¼\95ç\94¨æ¨¡æ\9d¿å¾\8c大å°\8fè¶\85å\87ºé\99\90å\88¶ã\80\82\né\83¨ä»½æ¨¡板內容將不會被使用。",
+       "post-expand-template-inclusion-category": "å¼\95ç\94¨æ¨¡板後大小超出限制的頁面",
        "post-expand-template-argument-warning": "<strong>警告:</strong>此頁面有一個以上的模板參數過長。\n過長的參數會被直接忽略。",
-       "post-expand-template-argument-category": "樣板參數有部份被忽略的頁面",
-       "parser-template-loop-warning": "å\81µæ¸¬å\88°æ¨£æ\9d¿é\81\9eè¿´:[[$1]]",
-       "parser-template-recursion-depth-warning": "è¶\85å\87ºæ¨£板遞迴深度限制 ($1)",
+       "post-expand-template-argument-category": "模板參數有部份被忽略的頁面",
+       "parser-template-loop-warning": "å\81µæ¸¬å\88°æ¨¡æ\9d¿è¿´å\9c\88:[[$1]]",
+       "parser-template-recursion-depth-warning": "è¶\85å\87ºæ¨¡板遞迴深度限制 ($1)",
        "language-converter-depth-warning": "已超出語言轉換器深度限制 ($1)",
        "node-count-exceeded-category": "節點數量超出限制的頁面",
        "node-count-exceeded-category-desc": "超出節點數量限制的頁面。",
        "userrights-lookup-user": "管理使用者群組",
        "userrights-user-editname": "請輸入使用者名稱:",
        "editusergroup": "編輯使用者群組",
-       "editinguser": "變更使用者 <strong>[[User:$1|$1]]</strong> 的使用者權限 $2",
+       "editinguser": "變更{{GENDER:$1|使用者}} <strong>[[User:$1|$1]]</strong> 的使用者權限 $2",
        "userrights-editusergroup": "編輯使用者群組",
        "saveusergroups": "儲存使用者群組",
        "userrights-groupsmember": "所屬群組:",
        "uploaddisabledtext": "已停用檔案上傳。",
        "php-uploaddisabledtext": "PHP 已停用檔案上傳。\n請檢查 file_uploads 設定。",
        "uploadscripted": "此檔案包含可能會被網頁瀏覽器錯誤執行的 HTML 或 Script。",
+       "upload-scripted-pi-callback": "無法上傳包含 xml-stylesheet 處理命令的檔案。",
+       "uploaded-script-svg": "於已上傳的 SVG 檔案中找到可程式的腳本標籤 \"$1\"。",
+       "uploaded-hostile-svg": "於已上傳的 SVG 檔案的樣式標籤中找到不安全的 CSS。",
+       "uploaded-event-handler-on-svg": "不允許在 SVG 檔案設定 event-handler 屬性 <code>$1=\"$2\"</code>。",
+       "uploaded-href-attribute-svg": "不允許在 SVG 檔案中的 Href 屬性 <code>&lt;$1 $2=\"$3\"&gt;</code> 使用非本地的目標  (例如 http://, javascript:, 等)。",
+       "uploaded-href-unsafe-target-svg": "於已上傳的 SVG 檔案中找到 href 連結至不安全的目標 <code>&lt;$1 $2=\"$3\"&gt;</code>。",
+       "uploaded-animate-svg": "於已上傳的 SVG 檔案中找到 \"animate\" 標籤可能會使用 \"from\" 屬性 <code>&lt;$1 $2=\"$3\"&gt;</code> 更改 href。",
+       "uploaded-setting-event-handler-svg": "於已上傳的 SVG 檔案中找到 <code>&lt;$1 $2=\"$3\"&gt;</code>,已禁止設定 event-handler 屬性。",
+       "uploaded-setting-href-svg": "已禁止使用 \"set\" 標籤來加入 \"href\" 屬性至父元素。",
+       "uploaded-wrong-setting-svg": "於已上傳的 SVG 檔案中找到 <code>&lt;set to=\"$1\"&gt;</code>,已禁止使用 \"set\" 標籤加入 remote/data/script 目標至任何屬性。",
+       "uploaded-setting-handler-svg": "於已上傳的 SVG 檔案中找到 <code>$1=\"$2\"</code>,已禁止 SVG 使用 remote/data/script 設定 \"handler\" 屬性。",
+       "uploaded-remote-url-svg": "於已上傳的 SVG 檔案中找到 <code>$1=\"$2\"</code>,已禁止 SVG 使用任何遠端 URL 設定樣式。",
+       "uploaded-image-filter-svg": "於已上傳的 SVG 檔案中找到圖片過濾器使用 URL:<code>&lt;$1 $2=\"$3\"&gt;</code>。",
        "uploadscriptednamespace": "此 SVG 檔案使用了非法的命名空間 \"$1\"。",
        "uploadinvalidxml": "無法解析已上傳檔案中的 XML。",
        "uploadvirus": "該檔案含有病毒!\n詳細資訊:$1",
        "unusedimages": "未使用的檔案",
        "wantedcategories": "需要的分類",
        "wantedpages": "需要的頁面",
-       "wantedpages-summary": "以下為最多連結的不存在頁面,除只有重新導向連結的頁面外。 若要取得不存在的重新導向頁面,請至 [[{{#special:BrokenRedirects}}]]。",
+       "wantedpages-summary": "以下為最多連結的不存在頁面,除只有重新導向連結的頁面外。 若要取得不存在的重新導向頁面,請至 [[{{#special:BrokenRedirects}}|損壞的重新導向清單]]。",
        "wantedpages-badtitle": "結果集合中的標題無效:$1",
        "wantedfiles": "需要的檔案",
        "wantedfiletext-cat": "下列檔案被時用,但檔案不存在。 外部儲存庫的檔案儘管存在,但此清單仍會列出。 這類誤報的項目會以 <del>刪除線</del> 標示。 另外,頁面內嵌檔案不存在會於清單 [[:$1]] 中顯示。",
        "trackingcategories-desc": "分類收錄標準",
        "noindex-category-desc": "命名空間允許,且含有魔術字 <code><nowiki>__NOINDEX__</nowiki></code> 未被機器人列入索引的頁面。",
        "index-category-desc": "命名空間允許,且含有魔術字 <code><nowiki>__INDEX__</nowiki></code> 被機器人列入索引的頁面。",
-       "post-expand-template-inclusion-category-desc": "å±\95é\96\8b樣æ\9d¿å¾\8c大å°\8fè¶\85é\81\8e <code>$wgMaxArticleSize</code> å°\8eè\87´é\83¨ä»½æ¨£板未正常展開的頁面。",
-       "post-expand-template-argument-category-desc": "å±\95é\96\8b樣板參數後大小超過 <code>$wgMaxArticleSize</code> 的頁面 (有些於三括號中,如 <code>{{{Foo}}}</code>)。",
+       "post-expand-template-inclusion-category-desc": "å±\95é\96\8b模æ\9d¿å¾\8c大å°\8fè¶\85é\81\8e <code>$wgMaxArticleSize</code> å°\8eè\87´é\83¨ä»½æ¨¡板未正常展開的頁面。",
+       "post-expand-template-argument-category-desc": "å±\95é\96\8b模板參數後大小超過 <code>$wgMaxArticleSize</code> 的頁面 (有些於三括號中,如 <code>{{{Foo}}}</code>)。",
        "expensive-parserfunction-category-desc": "頁面使用太多消耗系統資源的解析器函數 (如 <code>#ifexist</code>)。\n請參考 [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit]。",
        "broken-file-category-desc": "含有損壞檔案連結的頁面 (內嵌檔案連結的檔案不存在)。",
        "hidden-category-category-desc": "內容中使用 <code><nowiki>__HIDDENCAT__</nowiki></code> 的分類,可隱藏預設在頁面上顯示的分類連結方塊。",
        "trackingcategories-disabled": "已停用分類",
        "mailnologin": "沒有傳送位址",
        "mailnologintext": "您必須先 [[Special:UserLogin|登入]]\n並在 [[Special:Preferences|偏好設定]]\n中設定一個有效的電子郵件地址才可以傳送郵件給其他使用者。",
-       "emailuser": "Email 聯絡此使用者",
+       "emailuser": "Email 此使用者",
        "emailuser-title-target": "E-mail 聯絡此{{GENDER:$1|使用者}}",
        "emailuser-title-notarget": "E-mail 聯絡使用者",
        "emailpage": "E-mail 聯絡使用者",
        "tooltip-preview": "請在儲存前預覽您的變更!",
        "tooltip-diff": "顯示您對內容所做的變更",
        "tooltip-compareselectedversions": "檢視此頁兩個已選擇的修訂間的差異",
-       "tooltip-watch": "新增此頁面至您的監視清單",
+       "tooltip-watch": "加入此頁面至您的監視清單",
        "tooltip-watchlistedit-normal-submit": "移除標題",
        "tooltip-watchlistedit-raw-submit": "更新監視清單",
        "tooltip-recreate": "無論是否被刪除,重新建立該頁面。",
        "exif-headline": "標題",
        "exif-credit": "製作/提供者",
        "exif-source": "來源",
-       "exif-editstatus": "å\9c\96ç\89\87編輯狀態",
+       "exif-editstatus": "å\9c\96ç\89\87社è©\95狀態",
        "exif-urgency": "緊急性",
        "exif-fixtureidentifier": "夾具名稱",
        "exif-locationdest": "描繪地點",
        "invalidateemail": "取消電子郵件確認",
        "scarytranscludedisabled": "[Interwiki 轉換代碼不可用]",
        "scarytranscludefailed": "[模板 $1 讀取失敗]",
-       "scarytranscludefailed-httpstatus": "[樣板 $1 讀取失敗:HTTP $2]",
+       "scarytranscludefailed-httpstatus": "[模板 $1 讀取失敗:HTTP $2]",
        "scarytranscludetoolong": "[URL 過長]",
        "deletedwhileediting": "<strong>警告:</strong>此頁在您開始編輯之後已經被刪除﹗",
        "confirmrecreate": "在您編輯的同時,使用者 [[User:$1|$1]] ([[User talk:$1|對話]]) 刪除了此頁面,原因為:\n: <em>$2</em>\n請確認您是否真的要重新建立此頁面。",
        "log-name-pagelang": "更改語言日誌",
        "log-description-pagelang": "此頁為頁面語言的變更日誌。",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|已更改}}頁面 $3 的語言從 $4 到 $5。",
-       "default-skin-not-found": "哎呀!您於 <code dir=\"ltr\">$wgDefaultSkin</code> 設定的 Wiki 預設外觀 <code>$1</code> 無法使用。\n\n您的安裝程序應包含以下{{PLURAL:$4|外觀}}。請參考 [https://www.mediawiki.org/wiki/Manual:Skin_configuration 操作手冊:外觀設定] 以取得如何{{PLURAL:$4|開啟外觀並設為預設值}}的資訊。\n\n$2\n\n; 若您才剛安裝完 MediaWiki:\n: 您大概是使用 git 或直接透過原始碼使用其他方法安裝,這種情況是正常的。請嘗試安裝 [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org 的外觀目錄] 中的部份外觀使用以下方式:\n:* 下載 [https://www.mediawiki.org/wiki/Special:MyLanguage/Download tarball 安裝程式],該程式包含數個外觀與擴充套件。您可以複製並貼上至 <code>skins/</code> 目錄。\n:* 自 [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org] 下載個別外觀 tarball。\n:* 透過 git 複製 <code>mediawiki/skins/*</code> 儲存庫中其中一個外觀到您安裝的 MediaWiki <code dir=\"ltr\">skins/</code> 目錄中。\n: 若您是 MediaWiki 的開發人員,這麼做應該不會影響到您的 git 儲存庫。\n\n; 若您才剛升級 MediaWiki:\n: MediaWiki 1.24 與較新的版本不再自動開啟已安裝的外觀 (請參考 [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery 操作手冊:外觀自動搜尋])。您可以將下列{{PLURAL:$5|行}}貼上至 <code>LocalSettings.php</code> 來開啟{{PLURAL:$5|所有}}目前已經安裝的{{PLURAL:$5|外觀}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; 若您才剛修改 <code>LocalSettings.php</code>:\n: 請再次確認您輸入的外觀名稱是否有誤。",
-       "default-skin-not-found-no-skins": "哎呀!您於 <code>$wgDefaultSkin</code> 設定的 Wiki 預設外觀 <code>$1</code> 無法使用。\n\n您未安裝任何的外觀。\n\n; 若您才剛安裝完或升級完 MediaWiki:\n: 您大概是使用 git 或直接透過原始碼使用其他方法安裝,這種情況是正常的。 MediaWiki 1.24 或較新的版本在主要儲存庫中不再包含任何的外觀。 請嘗試安裝 [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org 的外觀目錄] 中的部份外觀使用以下方式:\n:* 下載 [https://www.mediawiki.org/wiki/Special:MyLanguage/Download tarball 安裝程式],該程式包含數個外觀與擴充套件。 您可以複製並貼上至 <code>skins/</code> 目錄。\n:* 自 [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org] 下載個別外觀 tarball。\n:* 透過 git 複製 <code>mediawiki/skins/*</code> 儲存庫中其中一個外觀到您安裝的 MediaWiki <code dir=\"ltr\">skins/</code> 目錄中。\n: 若您是 MediaWiki 的開發人員,這麼做應該不會影響到您的 git 儲存庫。 請參考 [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skin_configuration 操作手冊:外觀設定] 以取得如何開啟外觀並設為預設值的資訊。",
+       "default-skin-not-found": "哎呀!您於 <code dir=\"ltr\">$wgDefaultSkin</code> 設定的 Wiki 預設外觀 <code>$1</code> 無法使用。\n\n您的安裝程序應包含以下{{PLURAL:$4|外觀}}。請參考 [https://www.mediawiki.org/wiki/Manual:Skin_configuration 操作手冊:外觀設定] 以取得如何{{PLURAL:$4|開啟外觀並設為預設值}}的資訊。\n\n$2\n\n; 若您才剛安裝完 MediaWiki:\n: 您大概是使用 git 或直接透過原始碼使用其他方法安裝,這種情況是正常的。請嘗試安裝 [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org 的外觀目錄] 中的部份外觀使用以下方式:\n:* 下載 [https://www.mediawiki.org/wiki/Special:MyLanguage/Download tarball 安裝程式],該程式包含數個外觀與擴充套件。您可以複製並貼上至 <code>skins/</code> 目錄。\n:* 自 [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org] 下載個別外觀 tarball。\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins 使用 Git 下載外觀]。\n: 若您是 MediaWiki 的開發人員,這麼做應該不會影響到您的 git 儲存庫。\n\n; 若您才剛升級 MediaWiki:\n: MediaWiki 1.24 與較新的版本不再自動開啟已安裝的外觀 (請參考 [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery 操作手冊:外觀自動搜尋])。您可以將下列{{PLURAL:$5|行}}貼上至 <code>LocalSettings.php</code> 來開啟{{PLURAL:$5|所有}}目前已經安裝的{{PLURAL:$5|外觀}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; 若您才剛修改 <code>LocalSettings.php</code>:\n: 請再次確認您輸入的外觀名稱是否有誤。",
+       "default-skin-not-found-no-skins": "哎呀!您於 <code>$wgDefaultSkin</code> 設定的 Wiki 預設外觀 <code>$1</code> 無法使用。\n\n您未安裝任何的外觀。\n\n; 若您才剛安裝完或升級完 MediaWiki:\n: 您大概是使用 git 或直接透過原始碼使用其他方法安裝,這種情況是正常的。 MediaWiki 1.24 或較新的版本在主要儲存庫中不再包含任何的外觀。 請嘗試安裝 [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org 的外觀目錄] 中的部份外觀使用以下方式:\n:* 下載 [https://www.mediawiki.org/wiki/Special:MyLanguage/Download tarball 安裝程式],該程式包含數個外觀與擴充套件。 您可以複製並貼上至 <code>skins/</code> 目錄。\n:* 自 [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org] 下載個別外觀 tarball。\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins 使用 Git 下載外觀]。\n: 若您是 MediaWiki 的開發人員,這麼做應該不會影響到您的 git 儲存庫。 請參考 [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skin_configuration 操作手冊:外觀設定] 以取得如何開啟外觀並設為預設值的資訊。",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (已開啟)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''已停用''')",
        "mediastatistics": "媒體統計資訊",
index 9afe020..f9f1b5b 100644 (file)
@@ -33,24 +33,24 @@ $namespaceAliases = array(
        'বার্তা' => NS_TALK,
        'सदस्य' => NS_USER,
        'सदस्य_वार्ता' => NS_USER_TALK,
-       'সদস্য বার্তা' => NS_USER_TALK,
+       'সদস্য_বার্তা' => NS_USER_TALK,
        '$1_वार्ता' => NS_PROJECT_TALK,
-       '$1 বার্তা' => NS_PROJECT_TALK,
+       '$1_বার্তা' => NS_PROJECT_TALK,
        'चित्र' => NS_FILE,
        'चित्र_वार्ता' => NS_FILE_TALK,
        'চিত্র' => NS_FILE,
-       'চিত্র বার্তা' => NS_FILE_TALK,
+       'চিত্র_বার্তা' => NS_FILE_TALK,
        'মেডিয়াৱিকি' => NS_MEDIAWIKI,
        'মেডিয়াৱিকি_বাৰ্তা' => NS_MEDIAWIKI_TALK,
-       'MediaWiki বার্তা' => NS_MEDIAWIKI_TALK,
+       'MediaWiki_বার্তা' => NS_MEDIAWIKI_TALK,
        'साँचा' => NS_TEMPLATE,
        'साँचा_वार्ता' => NS_TEMPLATE_TALK,
-       'সাঁচ বার্তা' => NS_TEMPLATE_TALK,
-       'সহায় বার্তা' => NS_HELP_TALK,
+       'সাঁচ_বার্তা' => NS_TEMPLATE_TALK,
+       'সহায়_বার্তা' => NS_HELP_TALK,
        'श्रेणी' => NS_CATEGORY,
        'श्रेणी_वार्ता' => NS_CATEGORY_TALK,
        'শ্রেণী' => NS_CATEGORY,
-       'শ্রেণী বার্তা' => NS_CATEGORY_TALK,
+       'শ্রেণী_বার্তা' => NS_CATEGORY_TALK,
 );
 
 $specialPageAliases = array(
index a584ba5..7f48c9a 100644 (file)
@@ -29,7 +29,7 @@ $namespaceNames = array(
 
 $namespaceAliases = array(
        'Imaxe'               => NS_FILE,
-       'Imaxe alderique'     => NS_FILE_TALK,
+       'Imaxe_alderique'     => NS_FILE_TALK,
        'Discusión'           => NS_TALK,
        'Usuariu_discusión'   => NS_USER_TALK,
        '$1_discusión'        => NS_PROJECT_TALK,
index 076d402..0892ec9 100644 (file)
@@ -14,11 +14,11 @@ $namespaceNames = array(
        NS_TALK             => 'Prilara',
        NS_USER             => 'Favesik',
        NS_USER_TALK        => 'Favesikprilara',
-       NS_PROJECT_TALK     => '$1 prilara',
+       NS_PROJECT_TALK     => '$1_prilara',
        NS_FILE             => 'Ewava',
        NS_FILE_TALK        => 'Ewavaprilara',
        NS_MEDIAWIKI        => 'MediaWiki',
-       NS_MEDIAWIKI_TALK   => 'MediaWiki prilara',
+       NS_MEDIAWIKI_TALK   => 'MediaWiki_prilara',
        NS_TEMPLATE         => 'Teza',
        NS_TEMPLATE_TALK    => 'Tezaprilara',
        NS_HELP             => 'Pomara',
index afe608d..2425817 100644 (file)
@@ -31,7 +31,7 @@ $namespaceNames = array(
 
 $namespaceAliases = array(
        'Картинка' => NS_FILE,
-       'Картинка беседа' => NS_FILE_TALK,
+       'Картинка_беседа' => NS_FILE_TALK,
 );
 
 $specialPageAliases = array(
diff --git a/languages/messages/MessagesBh.php b/languages/messages/MessagesBh.php
new file mode 100644 (file)
index 0000000..4453bd1
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+/** Bihari (भोजपुरी)
+ *
+ * To improve a translation please visit https://translatewiki.net
+ *
+ * @ingroup Language
+ * @file
+ *
+ */
+
+$fallback = 'bho';
+
index 67d126a..514ec17 100644 (file)
@@ -311,6 +311,8 @@ $magicWords = array(
        'url_wiki'                  => array( '0', 'ЧЕХКА', 'ВИКИ', 'WIKI' ),
 );
 
+$defaultDateFormat = 'ydm';
+
 $datePreferences = array(
        'default',
        'ydm',
index 0fff4d0..258c1c0 100644 (file)
@@ -13,7 +13,7 @@ $fallback = 'ru';
 $namespaceNames = array(
        NS_MEDIA            => 'Медиа',
        NS_SPECIAL          => 'Ятарлă',
-       NS_TALK             => 'Сӳтсе явасси',
+       NS_TALK             => 'Сӳтсе_явасси',
        NS_USER             => 'Хутшăнакан',
        NS_USER_TALK        => 'Хутшăнаканăн_канашлу_страници',
        NS_PROJECT_TALK     => '$1_сӳтсе_явмалли',
index d6f268f..f291a1d 100644 (file)
@@ -16,9 +16,9 @@ $namespaceNames = array(
        NS_TALK             => 'Diskusija',
        NS_USER             => 'Wužywaŕ',
        NS_USER_TALK        => 'Diskusija_wužywarja',
-       NS_PROJECT_TALK     => '$1 diskusija',
+       NS_PROJECT_TALK     => '$1_diskusija',
        NS_FILE             => 'Dataja',
-       NS_FILE_TALK        => 'Diskusija wó dataji',
+       NS_FILE_TALK        => 'Diskusija_wó_dataji',
        NS_MEDIAWIKI        => 'MediaWiki',
        NS_MEDIAWIKI_TALK   => 'MediaWiki_diskusija',
        NS_TEMPLATE         => 'Pśedłoga',
index 27bbe78..a369d1d 100644 (file)
@@ -215,7 +215,6 @@ $magicWords = array(
        'displaytitle'              => array( '1', 'MOSTRATITOLO', 'DISPLAYTITLE' ),
        'language'                  => array( '0', '#LINGUA', '#LANGUAGE:' ),
        'numberofadmins'            => array( '1', 'NUMEROADMIN', 'NUMBEROFADMINS' ),
-       'special'                   => array( '0', 'speciale', 'special' ),
        'tag'                       => array( '0', 'etichetta', 'tag' ),
        'pagesincategory'           => array( '1', 'PAGINEINCAT', 'PAGESINCATEGORY', 'PAGESINCAT' ),
        'pagesize'                  => array( '1', 'DIMENSIONEPAGINA', 'PESOPAGINA', 'PAGESIZE' ),
index b379252..9fd700f 100644 (file)
@@ -40,7 +40,7 @@ $namespaceAliases = array(
        'Bruger' => NS_USER,
        'Brugerdiskussion' => NS_USER_TALK,
        '$1-diskussion' => NS_PROJECT_TALK,
-       '$1ip oqalliffia' => NS_PROJECT_TALK,
+       '$1ip_oqalliffia' => NS_PROJECT_TALK,
        'Fil' => NS_FILE,
        'Fildiskussion' => NS_FILE_TALK,
        'Billede' => NS_FILE,
index 559cfff..94a7a39 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Luri (لوری)
+/** Northern Luri (لۊری شومالی)
  *
  * To improve a translation please visit https://translatewiki.net
  *
@@ -15,139 +15,139 @@ $fallback = 'fa';
 $rtl = true;
 
 $namespaceNames = array(
-       NS_MEDIA            => 'رسانه',
-       NS_SPECIAL          => 'ویجه',
-       NS_TALK             => 'چک_چنه',
-       NS_USER             => 'کارور',
-       NS_USER_TALK        => 'چک_چنه_کارور',
-       NS_PROJECT_TALK     => 'چک_چنه_$1',
+       NS_MEDIA            => 'ڤارئسگأر',
+       NS_SPECIAL          => 'ڤیجە',
+       NS_TALK             => 'چأک_چئنە',
+       NS_USER             => 'کاریار',
+       NS_USER_TALK        => 'چأک_چئنە_کاریار',
+       NS_PROJECT_TALK     => 'چأک_چئنە_$1',
        NS_FILE             => 'جانیا',
-       NS_FILE_TALK        => 'چک_چنه_جانیا',
-       NS_MEDIAWIKI        => 'Ù\88Û\8cÚ©Û\8c_رساÙ\86Ù\87',
-       NS_MEDIAWIKI_TALK   => 'چک_چنه_ویکی_رسانه',
-       NS_TEMPLATE         => 'چوئه',
-       NS_TEMPLATE_TALK    => 'چک_چنه_چوئه',
-       NS_HELP             => 'هومیاری',
-       NS_HELP_TALK        => 'چک_چنه_هومیاری',
-       NS_CATEGORY         => 'دسÙ\87',
-       NS_CATEGORY_TALK    => 'چک_چنه_دسه',
+       NS_FILE_TALK        => 'چأک_چئنە_جانیا',
+       NS_MEDIAWIKI        => 'Ù\85ئدÛ\8cاڤÛ\8cÚ©Û\8c',
+       NS_MEDIAWIKI_TALK   => 'چأک_چئنە_مئدیاڤیکی',
+       NS_TEMPLATE         => 'چوٙأ',
+       NS_TEMPLATE_TALK    => 'چأک_چئنە_چوأ',
+       NS_HELP             => 'ھومیاری',
+       NS_HELP_TALK        => 'چأک_چئنە_ھومیاری',
+       NS_CATEGORY         => 'دأسÛ\95',
+       NS_CATEGORY_TALK    => 'چأک_چئنە_دأسە',
 );
 
 $namespaceAliases = array(
-       'عسگ' => NS_FILE,
-       'چک_چنه_عسگ' => NS_FILE_TALK,
+       'Ø£سگ' => NS_FILE,
+       'چأک_چئنە_أسگ' => NS_FILE_TALK,
 );
 
 $specialPageAliases = array(
-       'Activeusers'               => array( 'کارÛ\8cارÛ\8cا_Ú©Ù\86شتکار' ),
-       'Allmessages'               => array( 'همه_پیغومیا' ),
-       'AllMyUploads'              => array( 'همه_سوارکردیا_مه', 'همه_جانیایا_مه' ),
-       'Allpages'                  => array( 'همه_بلگه_یا' ),
-       'ApiHelp'                   => array( 'هومیاری_آ_پی_آی' ),
-       'Ancientpages'              => array( 'بلگه_یا_دماتری' ),
-       'Badtitle'                  => array( 'داسÙ\88Ù\86_Ú¯ن' ),
-       'Blankpage'                 => array( 'بلگه_حالی' ),
-       'Block'                     => array( 'نهاگری', 'نهاگری_آی_پی', 'نهاگری_کاریار' ),
-       'Booksources'               => array( 'نهاگری_سرچشمه_یا' ),
-       'BrokenRedirects'           => array( 'واگردونیا_بی_سرانجوم' ),
-       'Categories'                => array( 'دسÙ\87_یا' ),
-       'ChangeEmail'               => array( 'Ø¢Ù\84شت_دئÙ\86_اÛ\8cÙ\85یل' ),
-       'ChangePassword'            => array( 'Ø¢Ù\84شت_دئÙ\86_رازÛ\8cÙ\86Ù\87_Ú¯Ù\88اردن' ),
-       'ComparePages'              => array( 'تÛ\8c\8cÚ©_Ù\86Û\8cائÙ\86_بÙ\84Ú¯Ù\87_یا' ),
-       'Confirmemail'              => array( 'پشت_راس_کاری_ایمیل' ),
-       'Contributions'             => array( 'هومیاری_کردنیا' ),
-       'CreateAccount'             => array( 'راس_کردÙ\86_حساÙ\88' ),
-       'Deadendpages'              => array( 'بلگه_یا_بی_ویرگار' ),
-       'DeletedContributions'      => array( 'هومیاریا_پاکسا_بیه' ),
-       'Diff'                      => array( 'فرخ' ),
-       'DoubleRedirects'           => array( 'Ù\88اگردÙ\88Ù\86Û\8cا_دÙ\88_Ú©Ù\88Ù\86Ù\87' ),
-       'EditWatchlist'             => array( 'ویرایشت_سیل_برگ' ),
-       'Emailuser'                 => array( 'ایمیل_کاریار', 'ایمیل' ),
-       'ExpandTemplates'           => array( 'گپ_کلونکاری_چوئه_یا' ),
-       'Export'                    => array( 'وه_در_دئن' ),
-       'Fewestrevisions'           => array( 'کمتری_وانئریا' ),
-       'FileDuplicateSearch'       => array( 'پی_جوری_دو_کونه_جانیا' ),
-       'Filepath'                  => array( 'مسیر_جانیا' ),
-       'Import'                    => array( 'وا_مین_اوردن' ),
-       'Invalidateemail'           => array( 'بÛ\8c§Ø¹ØªÙ\88ار_کردÙ\86_اÛ\8cÙ\85یل' ),
-       'JavaScriptTest'            => array( 'ازÙ\85اشت_Ù\86Û\8cسسÙ\87\8cا_جاÙ\88ا' ),
-       'BlockList'                 => array( 'نهاگری_نومگه', 'نومگه_نهاگری', 'نومگه_نهاگری_آی_پی' ),
-       'LinkSearch'                => array( 'پی_جوری_هوم_پیوند' ),
-       'Listadmins'                => array( 'نومگه_سردیوونیاریا' ),
-       'Listbots'                  => array( 'نومگه_بوتیا' ),
-       'Listfiles'                 => array( 'نومگه_جانیایا', 'نومگه_جانیا', 'نومگه_عسگ' ),
-       'Listgrouprights'           => array( 'نومگه_حقوق_گرویی', 'حقوق_کاریاری_گرویی' ),
-       'Listredirects'             => array( 'نومگه_واگردونیا' ),
-       'ListDuplicatedFiles'       => array( 'نومگه_جانیایا_دو_کونه', 'نومگه_دو_کونه_بیین_جانیا' ),
-       'Listusers'                 => array( 'نومگه_کاریاریا', 'نومگه_کاریاری' ),
-       'Lockdb'                    => array( 'Ù\82Ù\84Ù\81_کردÙ\86_رسÛ\8cÙ\86Ù\87_جا' ),
-       'Log'                       => array( 'پهرستنومه', 'پهرستنومه_یا' ),
-       'Lonelypages'               => array( 'بلگه_یا_تکی', 'بلگه_یا_بی_حامین' ),
-       'Longpages'                 => array( 'بلگه_یا_فره_بلنگ' ),
-       'MediaStatistics'           => array( 'آماریا_وارسگر' ),
-       'MergeHistory'              => array( 'سرÛ\8cÚ©_سازÛ\8c\88یرگار' ),
-       'MIMEsearch'                => array( 'پی_چوری_ام_آی_ام_ای' ),
-       'Mostcategories'            => array( 'بÛ\8cشتر_دسÙ\87_یا' ),
-       'Mostimages'                => array( 'بÛ\8cشتر_جاÙ\86Û\8cاÛ\8cا_Ù\87Ù\88Ù\85_Ù¾Û\8cÙ\88Ù\86د_بÛ\8cÙ\87', 'بÛ\8cشتر_جاÙ\86Û\8cاÛ\8cا', 'بÛ\8cشتر_عسگیا' ),
-       'Mostinterwikis'            => array( 'بÛ\8cشتر_Ù\85Û\8cÙ\86\88یکی_یا' ),
-       'Mostlinked'                => array( 'بÛ\8cشتر_بÙ\84Ú¯Ù\87\8cا_Ù\87Ù\88Ù\85_Ù¾Û\8cÙ\88Ù\86د_بÛ\8cÙ\87', 'بÛ\8cشتر_Ù\87Ù\88Ù\85_Ù¾Û\8cÙ\88Ù\86د_بÛ\8cÙ\87_یا' ),
-       'Mostlinkedcategories'      => array( 'بÛ\8cشتر_دسÙ\87\8cا_Ù\87Ù\88Ù\85_Ù¾Û\8cÙ\88Ù\86د_بÛ\8cÙ\87', 'بÛ\8cشتر_دسÙ\87\8cا_Ù\88Ù\87_کار_گرتÙ\87_بÛ\8cÙ\87' ),
-       'Mostlinkedtemplates'       => array( 'بÛ\8cشتر_بÙ\84Ú¯Ù\87\81رÙ\87_پر_بÛ\8cÙ\87', 'بÛ\8cشتر_Ú\86Ù\88ئÙ\87\8cا_Ù\87Ù\88Ù\85_Ù¾Û\8cÙ\88Ù\86د_بÛ\8cÙ\87', 'بÛ\8cشتر_Ú\86Ù\88ئÙ\87\8cا_Ù\88Ù\87_کار_گرتÙ\87_بÛ\8cÙ\87' ),
-       'Mostrevisions'             => array( 'بÛ\8cشتر_Ù\88اÙ\86ئریا' ),
-       'Movepage'                  => array( 'جا_وه_جا_کردن_بلگه' ),
-       'Mycontributions'           => array( 'هومیاریا_مه' ),
-       'MyLanguage'                => array( 'زÙ\88Ù\86\85Ù\87' ),
-       'Mypage'                    => array( 'بلگه_مه' ),
-       'Mytalk'                    => array( 'چک_چنه_مه' ),
-       'Myuploads'                 => array( 'سوارکردیا_مه', 'جانیایا_مه' ),
-       'Newimages'                 => array( 'جانیایا_تازه', 'عسگیا_تازه' ),
-       'Newpages'                  => array( 'بلگه_یا_تازه' ),
-       'PagesWithProp'             => array( 'بلگه_یا_حامیندار' ),
-       'PageLanguage'              => array( 'بلگه_زون' ),
-       'PasswordReset'             => array( 'د_نو_زنه_کردن_رازینه_گواردن' ),
-       'PermanentLink'             => array( 'هوم_پیوند_دایمی' ),
-       'Popularpages'              => array( 'صÙ\81Ø­Ù\87â\80\8cÙ\87اÛ\8c\85حبÙ\88ب' ),
-       'Preferences'               => array( 'میزونکاریا' ),
-       'Prefixindex'               => array( 'پیشون_سیائه' ),
-       'Protectedpages'            => array( 'بلگه_یا_پر_و_پیم_بیه' ),
-       'Protectedtitles'           => array( 'داسÙ\88Ù\86ا_پر_Ù\88_Ù¾Û\8cÙ\85_بÛ\8cÙ\87' ),
-       'Randompage'                => array( 'شامسکی', 'بلگه_یا_شامسکی' ),
-       'RandomInCategory'          => array( 'دسÙ\87_شاÙ\85سکی' ),
-       'Randomredirect'            => array( 'واگردونی_شامسکی' ),
-       'Recentchanges'             => array( 'Ø¢Ù\84شتÛ\8cا_اÛ\8cسنی' ),
-       'Recentchangeslinked'       => array( 'Ø¢Ù\84شتÛ\8cا_Ù\87Ù\88Ù\85_Ù¾Û\8cÙ\88Ù\86د_بÛ\8cÙ\87_اÛ\8cسÙ\86Û\8c', 'Ø¢Ù\84شتÛ\8cا_Ù\85رتÙ\88ط' ),
-       'Redirect'                  => array( 'واگردونی' ),
-       'ResetTokens'               => array( 'د_نو_زنه_کردن_شناسیاریا' ),
-       'Revisiondelete'            => array( 'وانئری_پاکسا_کردن' ),
-       'RunJobs'                   => array( 'اÙ\86جÙ\88Ù\85_دئن_کاریا' ),
-       'Search'                    => array( 'پی_جوری' ),
-       'Shortpages'                => array( 'بلگه_یا_کوچک' ),
-       'Specialpages'              => array( 'بلگه_یا_ویجه' ),
+       'Activeusers'               => array( 'کارÛ\8cارÛ\8cا_Ú©Ù\88Ù\86ئشکتار' ),
+       'Allmessages'               => array( 'ھأمە_پیغومیا' ),
+       'AllMyUploads'              => array( 'ھأمە_جانیایا_مە', 'ھأمە_سوڤارکئردیا_مە' ),
+       'Allpages'                  => array( 'ھأمە_بألگە_یا' ),
+       'ApiHelp'                   => array( 'ھومیاری_ئی_پی_آی' ),
+       'Ancientpages'              => array( 'بألگە_یا_دئماتری' ),
+       'Badtitle'                  => array( 'داسÙ\88Ù\99Ù\86_گأن' ),
+       'Blankpage'                 => array( 'بألگە_ھالی' ),
+       'Block'                     => array( 'نئھاگئری', 'نئھاگئری_آی_پی', 'نئھاگئری_کاریار' ),
+       'Booksources'               => array( 'نئھاگری_سأرچئشمە_یا' ),
+       'BrokenRedirects'           => array( 'ڤاگأردوٙنیا_بی_سأرأنجوم' ),
+       'Categories'                => array( 'دأسÛ\95_یا' ),
+       'ChangeEmail'               => array( 'Ø¢Ù\84ئشت_دأئÙ\86_اÛ\8cÙ\85ئیل' ),
+       'ChangePassword'            => array( 'Ø¢Ù\84ئشت_دأئÙ\86_رازÛ\8cÙ\86Û\95_Ú¯Ù\88ڤاردئن' ),
+       'ComparePages'              => array( 'تÛ\95\8cØ£Ú©_Ù\86Û\8cائÙ\86_بأÙ\84Ú¯Û\95_یا' ),
+       'Confirmemail'              => array( 'پوشت_راس_کاری_ایمئیل' ),
+       'Contributions'             => array( 'ھومیاری_کاریا' ),
+       'CreateAccount'             => array( 'راس_کئردئÙ\86_حئسÛ\89' ),
+       'Deadendpages'              => array( 'بألگە_یا_بی_ڤیرگار' ),
+       'DeletedContributions'      => array( 'ھومیاریا_پاکسا_بییە' ),
+       'Diff'                      => array( 'Ù\81أرخ' ),
+       'DoubleRedirects'           => array( 'Ù\88اگأردÙ\88Ù\99Ù\86Û\8cا_دÙ\88Ù\99_Ú©Ù\88Ù\99Ù\86Û\95' ),
+       'EditWatchlist'             => array( 'ڤیرایئشت_سئیل_بأرگ' ),
+       'Emailuser'                 => array( 'ایمئیل_کاریار' ),
+       'ExpandTemplates'           => array( 'گأپ_کئلوٙنکاری_چوٙأ_یا' ),
+       'Export'                    => array( 'ڤە_دأر_دأئن' ),
+       'Fewestrevisions'           => array( 'کأمتئری_ڤانئیأریا' ),
+       'FileDuplicateSearch'       => array( 'پئی_جوٙری_دۊ_کوٙنە_جانیا' ),
+       'Filepath'                  => array( 'Ù\85أسÛ\8cر_جاÙ\86Û\8cا' ),
+       'Import'                    => array( 'ڤا_مین_آڤوردئن' ),
+       'Invalidateemail'           => array( 'بÛ\8c¦ØªØ¦Ú¤Ø§Ø±_کئردئÙ\86_اÛ\8cÙ\85ئیل' ),
+       'JavaScriptTest'            => array( 'ئزÙ\85اشت_Ù\86Û\8cسئسÛ\95\8cا_جاڤا' ),
+       'BlockList'                 => array( 'نئھاگئری_نومگە', 'نومگە_نئھاگئری', 'نومگە_نئھاگئری_آی_پی' ),
+       'LinkSearch'                => array( 'پئی_جوٙری_ھوم_پئیڤأند' ),
+       'Listadmins'                => array( 'نومگە_سأردیوڤوٙنیاریا' ),
+       'Listbots'                  => array( 'نومگە_بوٙتیا' ),
+       'Listfiles'                 => array( 'نومگە_جانیایا', 'نومگە_جانیا', 'نومگە_أسگ' ),
+       'Listgrouprights'           => array( 'حقوق_کاریاری_جأرغە_یی', 'نومگە_حقوق_جأرغە_یی' ),
+       'Listredirects'             => array( 'نومگە_ڤاگأردوٙنیا' ),
+       'ListDuplicatedFiles'       => array( 'نومگە_جانیایا_دۊ_کوٙنە', 'نومگە_دۊ_کوٙنە_بییئن_جانیا' ),
+       'Listusers'                 => array( 'نومگە_کاریاریا', 'نومگە_کاریاری' ),
+       'Lockdb'                    => array( 'Ù\82Ù\88Ù\84Ù\81_کئردئÙ\86_رئسÛ\8cÙ\86Û\95_جا' ),
+       'Log'                       => array( 'پئھرستنوٙمە', 'پئھرستنوٙمە_یا' ),
+       'Lonelypages'               => array( 'بألگە_یا_تأکی', 'بألگە_یا_بی_حامین' ),
+       'Longpages'                 => array( 'بألگە_یا_فئرە_بئلئنگ' ),
+       'MediaStatistics'           => array( 'آماریا_ڤارئسگأر' ),
+       'MergeHistory'              => array( 'سأرÛ\8cØ£Ú©_سازÛ\8c_Ú¤یرگار' ),
+       'MIMEsearch'                => array( 'پئی_جوٙری_ئم_آی_ئم_ئی' ),
+       'Mostcategories'            => array( 'بÛ\8cشتئر_دأسÛ\95_یا' ),
+       'Mostimages'                => array( 'بÛ\8cشتئر_جاÙ\86Û\8cاÛ\8cا_Ú¾Ù\88Ù\85_پئÛ\8cڤأÙ\86د_بÛ\8cÛ\95', 'بÛ\8cشتئر_جاÙ\86Û\8cاÛ\8cا', 'بÛ\8cشتئر_Ø£سگیا' ),
+       'Mostinterwikis'            => array( 'بÛ\8cشتئر_Ù\85Û\8cÙ\86_Ú¤یکی_یا' ),
+       'Mostlinked'                => array( 'بÛ\8cشتئر_بأÙ\84Ú¯Û\95\8cا_Ú¾Ù\88Ù\85_پئÛ\8cڤأÙ\86د_بÛ\8cÛ\95', 'بÛ\8cشتئر_Ú¾Ù\88Ù\85_پئÛ\8cڤأÙ\86د_بÛ\8cÛ\95_یا' ),
+       'Mostlinkedcategories'      => array( 'بÛ\8cشتئر_دأسÛ\95\8cا_Ú¾Ù\88Ù\85_پئÛ\8cڤأÙ\86د_بÛ\8cÛ\95', 'بÛ\8cشتئر_دأسÛ\95\8cا_Ú¤Û\95_کار_گئرتÛ\95_بÛ\8cÛ\95' ),
+       'Mostlinkedtemplates'       => array( 'بÛ\8cشتئر_بأÙ\84Ú¯Û\95\81ئرÛ\95_Ù¾Ù\88ر_بÛ\8cÛ\95', 'بÛ\8cشتئر_Ú\86Ù\88Ù\99Ø£_Û\8cا_Ú¾Ù\88Ù\85_پئÛ\8cڤأÙ\86د_بÛ\8cÛ\95', 'بÛ\8cشتئر_Ú\86Ù\88Ù\99Ø£_Û\8cا_Ú¤Û\95_کار_گئرئتÛ\95_بÛ\8cÛ\95' ),
+       'Mostrevisions'             => array( 'بÛ\8cشتئر_ڤاÙ\86ئÛ\8cØ£ریا' ),
+       'Movepage'                  => array( 'جا_ڤە_جا_کئردئن_بألگە' ),
+       'Mycontributions'           => array( 'ھومیاریا_مە' ),
+       'MyLanguage'                => array( 'زÙ\88Ù\99Ù\86\85Û\95' ),
+       'Mypage'                    => array( 'بألگە_مە' ),
+       'Mytalk'                    => array( 'چأک_چئنە_مە' ),
+       'Myuploads'                 => array( 'سوڤارکئردیا_مە', 'جانیایا_مە' ),
+       'Newimages'                 => array( 'جانیایا_تازە', 'أسگیا_تازە' ),
+       'Newpages'                  => array( 'بألگە_یا_تازە' ),
+       'PagesWithProp'             => array( 'بألگە_یا_حامیندار' ),
+       'PageLanguage'              => array( 'بألگە_زوٙن' ),
+       'PasswordReset'             => array( 'د_نۊ_زئنە_کئردئن_رازینە_گوڤاردئن' ),
+       'PermanentLink'             => array( 'ھوم_پئیڤأند_دایئمی' ),
+       'Popularpages'              => array( 'بأÙ\84Ú¯Û\95\8cا_حاستئÙ\86Û\8c' ),
+       'Preferences'               => array( 'Ù\85Û\8cزÙ\88Ù\99Ù\86کارÛ\8cا' ),
+       'Prefixindex'               => array( 'دئماڤأن_سیاأ' ),
+       'Protectedpages'            => array( 'بألگە_یا_پور_و_پیم_بیە' ),
+       'Protectedtitles'           => array( 'داسÙ\88Ù\99Ù\86ا_Ù¾Ù\88ر_Ù\88_Ù¾Û\8cÙ\85_بÛ\8cÛ\95' ),
+       'Randompage'                => array( 'شامسأکی', 'بألگە_یا_شامسأکی' ),
+       'RandomInCategory'          => array( 'دأسÛ\95_شاÙ\85سأکی' ),
+       'Randomredirect'            => array( 'ڤاگأردوٙنی_شامسأکی' ),
+       'Recentchanges'             => array( 'Ø¢Ù\84ئشتÛ\8cا_ئÛ\8cسئنی' ),
+       'Recentchangeslinked'       => array( 'Ø¢Ù\84ئشتÛ\8cا_Ú¾Ù\88Ù\85_پئÛ\8cڤأÙ\86د_بÛ\8cÛ\95_ئÛ\8cسئÙ\86Û\8c', 'Ø¢Ù\84ئشتÛ\8cا_Ù\85Ù\88رتأڤئط' ),
+       'Redirect'                  => array( 'ڤاگأردۊنی' ),
+       'ResetTokens'               => array( 'د_نۊ_زئنە_کئردئن_شئناسیاریا' ),
+       'Revisiondelete'            => array( 'ڤانئیأری_پاکسا_کئردئن' ),
+       'RunJobs'                   => array( 'Ø£Ù\86جÙ\88Ù\85_دأئن_کاریا' ),
+       'Search'                    => array( 'پئی_جوٙری' ),
+       'Shortpages'                => array( 'بألگە_یا_کوچئک' ),
+       'Specialpages'              => array( 'بألگە_یا_ڤیجھە' ),
        'Statistics'                => array( 'آماریا' ),
-       'Tags'                      => array( 'سردیسیا' ),
-       'TrackingCategories'        => array( 'دماگری_دسه_یا' ),
-       'Unblock'                   => array( 'وا_کردن_قلف' ),
-       'Uncategorizedcategories'   => array( 'دسÙ\87\8cا_دسÙ\87_بÙ\86Û\8c\86بÛ\8cÙ\87' ),
-       'Uncategorizedimages'       => array( 'جاÙ\86Û\8cا_دسÙ\87_بÙ\86Û\8c\86بÛ\8cÙ\87', 'عسگÛ\8cا_دسÙ\87_بÙ\86Û\8c\86بÛ\8cÙ\87' ),
-       'Uncategorizedpages'        => array( 'بلگه_یا_دسه_بنی_نبیه' ),
-       'Uncategorizedtemplates'    => array( 'چوئه_یا_دسه_بنی_نبیه' ),
-       'Undelete'                  => array( 'پاکسا_نکردن' ),
-       'Unlockdb'                  => array( 'وا_کردن_قلف_رسینه_جا' ),
-       'Unusedcategories'          => array( 'دسÙ\87\8cا_Ù\88Ù\87_کار_گرتÙ\87\86بÛ\8cÙ\87' ),
-       'Unusedimages'              => array( 'جانیایا_وه_کار_گرته_نبیه', 'عسگیا_وه_کار_گرته_نبیه' ),
-       'Unusedtemplates'           => array( 'چوئه_یا_وه_کار_گرته_نبیه' ),
-       'Unwatchedpages'            => array( 'بلگه_یا_سیل_نکرده' ),
-       'Upload'                    => array( 'سوارکرد' ),
-       'UploadStash'               => array( 'اÙ\85اÛ\8cÛ\8cÙ\87_جا_سÙ\88ارکرد' ),
-       'Userlogin'                 => array( 'وامین_اومائن_کاریار', 'وامین_اومائن' ),
-       'Userlogout'                => array( 'وه_در_اومائن_کاریار', 'وه_در_اومائن' ),
-       'Userrights'                => array( 'Ø­Ù\82Ù\88Ù\82_کارÛ\8cار', 'سردÛ\8cÙ\88Ù\88Ù\86کار_بÛ\8cÛ\8cÙ\86', 'بÙ\88ت_بÛ\8cÛ\8cن' ),
-       'Version'                   => array( 'نسفه' ),
-       'Wantedcategories'          => array( 'دسÙ\87\8cا_حاستنی' ),
-       'Wantedfiles'               => array( 'جانیایا_حاستنی' ),
-       'Wantedpages'               => array( 'بلگه_یا_حاستنی', 'هوم_پیوندیا_د_بین_رئته' ),
-       'Wantedtemplates'           => array( 'Ú\86Ù\88ئÙ\87\8cا_حاستنی' ),
-       'Watchlist'                 => array( 'سیل_برگ' ),
-       'Whatlinkshere'             => array( 'چه_هوم_پیوندیایی_ها_ایچه' ),
-       'Withoutinterwiki'          => array( 'بی_مین_ویکی' ),
+       'Tags'                      => array( 'سأردÛ\8cسÛ\8cا' ),
+       'TrackingCategories'        => array( 'دئماگئری_دأسە_یا' ),
+       'Unblock'                   => array( 'ڤا_کئردئن_قولف' ),
+       'Uncategorizedcategories'   => array( 'دأسÛ\95\8cا_دأسÛ\95_بأÙ\86Û\8c\86أبÛ\8cÛ\95' ),
+       'Uncategorizedimages'       => array( 'جاÙ\86Û\8cا_دأسÛ\95_بأÙ\86Û\8c\86أبÛ\8cÛ\95', 'أسگÛ\8cا_دأسÛ\95_بأÙ\86Û\8c\86أبÛ\8cÛ\95' ),
+       'Uncategorizedpages'        => array( 'بألگە_یا_دأسە_بأنی_نأبیە' ),
+       'Uncategorizedtemplates'    => array( 'چوٙأ_یا_دأسە_بأنی_نأبیە' ),
+       'Undelete'                  => array( 'پاکسا_نأکثردئن' ),
+       'Unlockdb'                  => array( 'ڤا_کئردئن_قولف_رئسینە_جا' ),
+       'Unusedcategories'          => array( 'دأسÛ\95\8cا_Ú¤Û\95_کار_گئرئتÛ\95\86أبÛ\8cÛ\95' ),
+       'Unusedimages'              => array( 'جانیایا_ڤە_کار_گئرئتە_نأبیە', 'أسگیا_ڤە_کار_گئرئتە_نأبیە' ),
+       'Unusedtemplates'           => array( 'چوٙأ_یا_ڤە_کار_گئرئتە_نأبیە' ),
+       'Unwatchedpages'            => array( 'بألگە_یا_سئیل_نأکئردە' ),
+       'Upload'                    => array( 'سوڤارکئرد' ),
+       'UploadStash'               => array( 'ئÙ\85اÛ\8cÛ\95_جا_سÙ\88ڤارکئرد' ),
+       'Userlogin'                 => array( 'ڤامین_ئومائن_کاریار', 'ڤامین_ئومائن' ),
+       'Userlogout'                => array( 'ڤە_دأر_ئومائن_کاریار', 'ڤە_دأر_ئومائن' ),
+       'Userrights'                => array( 'Ø­Ù\82Ù\88Ù\82_کارÛ\8cار', 'سأردÛ\8cÚ¤Ù\88Ù\99Ù\86کار_بÛ\8cÛ\8cئÙ\86', 'بÙ\88Ù\99ت_بÛ\8cÛ\8cئن' ),
+       'Version'                   => array( 'نوسقە' ),
+       'Wantedcategories'          => array( 'دأسÛ\95\8cا_حاستئنی' ),
+       'Wantedfiles'               => array( 'جانیایا_حاستئنی' ),
+       'Wantedpages'               => array( 'بألگە_یا_حاستئنی', 'ھوم_پئیڤأندیا_د_بئین_رأتە' ),
+       'Wantedtemplates'           => array( 'Ú\86Ù\88Ø£_Û\8cا_حاستئنی' ),
+       'Watchlist'                 => array( 'سئیل_بأرگ' ),
+       'Whatlinkshere'             => array( 'چە_ھوم_پئیڤأندیایی_ھان_ئیچە' ),
+       'Withoutinterwiki'          => array( 'بی_مین_ڤیکی' ),
 );
index 39f48b2..d23e47f 100644 (file)
@@ -57,7 +57,7 @@ $namespaceAliases = array(
        'സം' => NS_TALK,
        'അംഗം' => NS_USER,
        'ഉ' => NS_USER,
-       'അംഗങ്ങളുടെ സംവാദം' => NS_USER_TALK,
+       'അംഗങ്ങളുടെ_സംവാദം' => NS_USER_TALK,
        'ഉസം' => NS_USER_TALK,
        'ചി' => NS_FILE,
        'ചിസം' => NS_FILE_TALK,
index 4f9b0cd..5cdb35f 100644 (file)
@@ -54,7 +54,7 @@ $namespaceNames = array(
        NS_SPECIAL          => 'विशेष',
        NS_TALK             => 'चर्चा',
        NS_USER             => 'सदस्य',
-       NS_USER_TALK        => 'सदस्य चर्चा',
+       NS_USER_TALK        => 'सदस्य_चर्चा',
        NS_PROJECT_TALK     => '$1_चर्चा',
        NS_FILE             => 'चित्र',
        NS_FILE_TALK        => 'चित्र_चर्चा',
index e5e189c..ac3342b 100644 (file)
@@ -22,21 +22,21 @@ $fallback = 'ru';
 
 $namespaceNames = array(
        NS_MEDIA            => 'Медия',
-       NS_SPECIAL          => 'Башка тевень',
+       NS_SPECIAL          => 'Башка_тевень',
        NS_TALK             => 'Кортамо',
        NS_USER             => 'Теиця',
-       NS_USER_TALK        => 'Теицянь кортамось',
-       NS_PROJECT_TALK     => '$1 кортамось',
+       NS_USER_TALK        => 'Теицянь_кортамось',
+       NS_PROJECT_TALK     => '$1_кортамось',
        NS_FILE             => 'Артовкс',
-       NS_FILE_TALK        => 'Артовксто кортамось',
+       NS_FILE_TALK        => 'Артовксто_кортамось',
        NS_MEDIAWIKI        => 'MediaWiki',
-       NS_MEDIAWIKI_TALK   => 'MediaWiki-нь кортамось',
+       NS_MEDIAWIKI_TALK   => 'MediaWiki-нь_кортамось',
        NS_TEMPLATE         => 'ЛопаПарцун',
-       NS_TEMPLATE_TALK    => 'ЛопаПарцундо кортамось',
+       NS_TEMPLATE_TALK    => 'ЛопаПарцундо_кортамось',
        NS_HELP             => 'Лезкс',
-       NS_HELP_TALK        => 'Лезкстэ кортамось',
+       NS_HELP_TALK        => 'Лезкстэ_кортамось',
        NS_CATEGORY         => 'Категория',
-       NS_CATEGORY_TALK    => 'Категориядо кортамось',
+       NS_CATEGORY_TALK    => 'Категориядо_кортамось',
 );
 
 // Remove Russian aliases
index 6203b24..405a16a 100644 (file)
@@ -55,18 +55,18 @@ $namespaceAliases = array(
        'بحث_تصویر'     => NS_FILE_TALK,
        'بحث_پرونده'    => NS_FILE_TALK,
        'مدیاویکی'      => NS_MEDIAWIKI,
-       'مه‌دیا ویکی'    => NS_MEDIAWIKI,
+       'مه‌دیا_ویکی'    => NS_MEDIAWIKI,
        'مه‌دیاویکی'     => NS_MEDIAWIKI,
        'مه‌دیاویکی_گپ'  => NS_MEDIAWIKI_TALK,
        'بحث_مدیاویکی'  => NS_MEDIAWIKI_TALK,
-       'مه‌دیا ویکی گپ' => NS_MEDIAWIKI_TALK,
+       'مه‌دیا_ویکی_گپ' => NS_MEDIAWIKI_TALK,
        'الگو'          => NS_TEMPLATE,
        'بحث_الگو'      => NS_TEMPLATE_TALK,
        'راهنما'        => NS_HELP,
        'رانه‌ما'        => NS_HELP,
        'رانه‌مائه_گپ'   => NS_HELP_TALK,
        'بحث_راهنما'    => NS_HELP_TALK,
-       'رانه‌مای گپ'    => NS_HELP_TALK,
+       'رانه‌مای_گپ'    => NS_HELP_TALK,
        'رده'           => NS_CATEGORY,
        'بحث_رده'       => NS_CATEGORY_TALK,
 );
index 14a8f99..9968066 100644 (file)
@@ -73,7 +73,7 @@ $namespaceAliases = array(
        'चित्रसंभाषणं'       => NS_FILE_TALK,
        'मिडियाविकीसंभाषणं' => NS_MEDIAWIKI_TALK,
        'बिंबधर'             => NS_TEMPLATE,
-       'बिंबधर संभाषणं'      => NS_TEMPLATE_TALK,
+       'बिंबधर_संभाषणं'      => NS_TEMPLATE_TALK,
        'सहाय्य'             => NS_HELP,
        'सहाय्यसंभाषणं'      => NS_HELP_TALK,
        'उपकारः'             => NS_HELP,
index 74ca0bc..6cc09a9 100644 (file)
@@ -43,7 +43,7 @@ $namespaceNames = array(
 $namespaceAliases = array(
        'Discussioni_Utenti' => NS_USER_TALK,
        'Mmàggini' => NS_FILE,
-       'Discussioni mmàggini' => NS_FILE_TALK,
+       'Discussioni_mmàggini' => NS_FILE_TALK,
        'Discussioni_Template' => NS_TEMPLATE_TALK,
        'Discussioni_Aiutu' => NS_HELP_TALK,
        'Discussioni_Catigurìa' => NS_CATEGORY_TALK,
index 987464a..71180c3 100644 (file)
@@ -195,7 +195,6 @@ $magicWords = array(
        'fullurl'                   => array( '0', 'URLEPLOTË', 'FULLURL:' ),
        'language'                  => array( '0', '#GJUHA:', '#LANGUAGE:' ),
        'numberofadmins'            => array( '1', 'NUMRIIADMINISTRUESVE', 'NUMBEROFADMINS' ),
-       'special'                   => array( '0', 'speciale', 'special' ),
        'hiddencat'                 => array( '1', '__KATEGORIEFSHEHUR__', '__HIDDENCAT__' ),
        'pagesize'                  => array( '1', 'MADHËSIAEFAQES', 'PAGESIZE' ),
 );
index 87c6921..9092e9e 100644 (file)
@@ -29,7 +29,7 @@ $namespaceNames = array(
        NS_FILE             => 'Gambar',
        NS_FILE_TALK        => 'Obrolan_gambar',
        NS_MEDIAWIKI        => 'MédiaWiki',
-       NS_MEDIAWIKI_TALK   => 'Obrolan MédiaWiki',
+       NS_MEDIAWIKI_TALK   => 'Obrolan_MédiaWiki',
        NS_TEMPLATE         => 'Citakan',
        NS_TEMPLATE_TALK    => 'Obrolan_citakan',
        NS_HELP             => 'Pitulung',
index a9dbf3a..0487c8f 100644 (file)
@@ -70,9 +70,9 @@ $namespaceNames = array(
 $namespaceAliases = array(
        'Служебная'                          => NS_SPECIAL,
        'Обсуждение'                         => NS_TALK,
-       'Фикер алышу'                        => NS_TALK,
+       'Фикер_алышу'                        => NS_TALK,
        'Участница'                          => NS_USER,
-       'Обсуждение участницы'               => NS_USER_TALK,
+       'Обсуждение_участницы'               => NS_USER_TALK,
        'Участник'                           => NS_USER,
        'Обсуждение_участника'               => NS_USER_TALK,
        'Обсуждение_{{GRAMMAR:genitive|$1}}' => NS_PROJECT_TALK,
index dcbc3e1..8c4c93f 100644 (file)
@@ -49,10 +49,10 @@ $namespaceAliases = array(
        "討論"                        => NS_TALK,
        "讨论"                        => NS_TALK,
        "用户"                        => NS_USER,
-       "用戶 對話"                 => NS_USER_TALK,
-       "用户 对话"                 => NS_USER_TALK,
-       "用戶 討論"                 => NS_USER_TALK,
-       "用户 讨论"                 => NS_USER_TALK,
+       "用戶_對話"                 => NS_USER_TALK,
+       "用户_对话"                 => NS_USER_TALK,
+       "用戶_討論"                 => NS_USER_TALK,
+       "用户_讨论"                 => NS_USER_TALK,
        '$1_傾偈'             => NS_PROJECT_TALK,
        "檔"                   => NS_FILE,
        "檔案"                        => NS_FILE,
@@ -64,35 +64,35 @@ $namespaceAliases = array(
        "图像"                        => NS_FILE,
        'Image'                 => NS_FILE,
        'Image_talk'            => NS_FILE_TALK,
-       "檔 討論"            => NS_FILE_TALK,
-       "档 讨论"            => NS_FILE_TALK,
-       "檔案 討論"                 => NS_FILE_TALK,
-       "档案 讨论"                 => NS_FILE_TALK,
-       "圖 討論"            => NS_FILE_TALK,
-       "图 讨论"            => NS_FILE_TALK,
-       "圖像 討論"                 => NS_FILE_TALK,
-       "图像 讨论"                 => NS_FILE_TALK,
+       "檔_討論"            => NS_FILE_TALK,
+       "档_讨论"            => NS_FILE_TALK,
+       "檔案_討論"                 => NS_FILE_TALK,
+       "档案_讨论"                 => NS_FILE_TALK,
+       "圖_討論"            => NS_FILE_TALK,
+       "图_讨论"            => NS_FILE_TALK,
+       "圖像_討論"                 => NS_FILE_TALK,
+       "图像_讨论"                 => NS_FILE_TALK,
        'MediaWiki_傾偈'      => NS_FILE_TALK,
-       "模 討論"            => NS_TEMPLATE_TALK,
-       "模 讨论"            => NS_TEMPLATE_TALK,
+       "模_討論"            => NS_TEMPLATE_TALK,
+       "模_讨论"            => NS_TEMPLATE_TALK,
        "幫助"                        => NS_HELP,
        "說明"                        => NS_HELP,
        "帮手"                        => NS_HELP,
        "帮助"                        => NS_HELP,
        "说明"                        => NS_HELP,
-       "幫手 討論"                 => NS_HELP_TALK,
-       "幫助 討論"                 => NS_HELP_TALK,
-       "說明 討論"                 => NS_HELP_TALK,
-       "帮手 讨论"                 => NS_HELP_TALK,
-       "帮助 讨论"                 => NS_HELP_TALK,
-       "说明 讨论"                 => NS_HELP_TALK,
+       "幫手_討論"                 => NS_HELP_TALK,
+       "幫助_討論"                 => NS_HELP_TALK,
+       "說明_討論"                 => NS_HELP_TALK,
+       "帮手_讨论"                 => NS_HELP_TALK,
+       "帮助_讨论"                 => NS_HELP_TALK,
+       "说明_讨论"                 => NS_HELP_TALK,
        "類"                   => NS_CATEGORY,
        "类"                   => NS_CATEGORY,
        "分类"                        => NS_CATEGORY,
-       "類 討論"            => NS_CATEGORY_TALK,
-       "分類 討論"                 => NS_CATEGORY_TALK,
-       "类 讨论"            => NS_CATEGORY_TALK,
-       "分类 讨论"                 => NS_CATEGORY_TALK,
+       "類_討論"            => NS_CATEGORY_TALK,
+       "分類_討論"                 => NS_CATEGORY_TALK,
+       "类_讨论"            => NS_CATEGORY_TALK,
+       "分类_讨论"                 => NS_CATEGORY_TALK,
 );
 
 $specialPageAliases = array(
index ef2df31..22f62fe 100644 (file)
--- a/load.php
+++ b/load.php
  * @author Trevor Parscal
  */
 
-// Bail if PHP is too low
-if ( !function_exists( 'version_compare' ) || version_compare( PHP_VERSION, '5.3.3' ) < 0 ) {
-       // We need to use dirname( __FILE__ ) here cause __DIR__ is PHP5.3+
-       require dirname( __FILE__ ) . '/includes/PHPVersionError.php';
-       wfPHPVersionError( 'load.php' );
-}
+use MediaWiki\Logger\LoggerFactory;
+
+// 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+.
+require_once dirname( __FILE__ ) . '/includes/PHPVersionCheck.php';
+wfEntryPointCheck( 'load.php' );
 
 require __DIR__ . '/includes/WebStart.php';
 
@@ -40,12 +40,13 @@ if ( !$wgRequest->checkUrlExtension() ) {
 // Respond to resource loading request.
 // foo()->bar() syntax is not supported in PHP4, and this file needs to *parse* in PHP4.
 $configFactory = ConfigFactory::getDefaultInstance();
-$resourceLoader = new ResourceLoader( $configFactory->makeConfig( 'main' ) );
+$resourceLoader = new ResourceLoader(
+       $configFactory->makeConfig( 'main' ),
+       LoggerFactory::getInstance( 'resourceloader' )
+);
 $resourceLoader->respond( new ResourceLoaderContext( $resourceLoader, $wgRequest ) );
 
 Profiler::instance()->setTemplated( true );
-wfLogProfilingData();
 
-// Shut down the database.
-$lb = wfGetLBFactory();
-$lb->shutdown();
+$mediawiki = new MediaWiki();
+$mediawiki->doPostOutputShutdown( 'fast' );
index 50b8a01..04aa3a5 100644 (file)
  * @defgroup Maintenance Maintenance
  */
 
-// Make sure we're on PHP5.3.3 or better
-if ( !function_exists( 'version_compare' ) || version_compare( PHP_VERSION, '5.3.3' ) < 0 ) {
-       // We need to use dirname( __FILE__ ) here cause __DIR__ is PHP5.3+
-       require_once dirname( __FILE__ ) . '/../includes/PHPVersionError.php';
-       wfPHPVersionError( 'cli' );
-}
+// 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+.
+require_once dirname( __FILE__ ) . '/../includes/PHPVersionCheck.php';
+wfEntryPointCheck( 'cli' );
 
 /**
  * @defgroup MaintenanceArchive Maintenance archives
@@ -603,13 +601,19 @@ abstract class Maintenance {
         * Activate the profiler (assuming $wgProfiler is set)
         */
        protected function activateProfiler() {
-               global $wgProfiler, $wgTrxProfilerLimits;
+               global $wgProfiler, $wgProfileLimit, $wgTrxProfilerLimits;
 
                $output = $this->getOption( 'profiler' );
-               if ( $output && is_array( $wgProfiler ) && isset( $wgProfiler['class'] ) ) {
+               if ( !$output ) {
+                       return;
+               }
+
+               if ( is_array( $wgProfiler ) && isset( $wgProfiler['class'] ) ) {
                        $class = $wgProfiler['class'];
                        $profiler = new $class(
-                               array( 'sampling' => 1, 'output' => $output ) + $wgProfiler
+                               array( 'sampling' => 1, 'output' => array( $output ) )
+                                       + $wgProfiler
+                                       + array( 'threshold' => $wgProfileLimit )
                        );
                        $profiler->setTemplated( true );
                        Profiler::replaceStubInstance( $profiler );
@@ -953,10 +957,9 @@ abstract class Maintenance {
 
                $wgShowSQLErrors = true;
 
-               // @codingStandardsIgnoreStart Allow error suppression. wfSuppressWarnings()
-               // is not available.
-               @set_time_limit( 0 );
-               // @codingStandardsIgnoreStart
+               MediaWiki\suppressWarnings();
+               set_time_limit( 0 );
+               MediaWiki\restoreWarnings();
 
                $this->adjustMemoryLimit();
        }
index 222c538..6e1ddb4 100644 (file)
@@ -135,9 +135,9 @@ class BackupDumper {
                foreach ( $args as $arg ) {
                        $matches = array();
                        if ( preg_match( '/^--(.+?)(?:=(.+?)(?::(.+?))?)?$/', $arg, $matches ) ) {
-                               wfSuppressWarnings();
+                               MediaWiki\suppressWarnings();
                                list( /* $full */, $opt, $val, $param ) = $matches;
-                               wfRestoreWarnings();
+                               MediaWiki\restoreWarnings();
 
                                switch ( $opt ) {
                                        case "plugin":
index d83f1fc..27be5fd 100644 (file)
@@ -659,13 +659,13 @@ class TextPassDumper extends BackupDumper {
        }
 
        private function getTextSpawned( $id ) {
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                if ( !$this->spawnProc ) {
                        // First time?
                        $this->openSpawn();
                }
                $text = $this->getTextSpawnedOnce( $id );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                return $text;
        }
@@ -712,7 +712,7 @@ class TextPassDumper extends BackupDumper {
        }
 
        private function closeSpawn() {
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                if ( $this->spawnRead ) {
                        fclose( $this->spawnRead );
                }
@@ -729,7 +729,7 @@ class TextPassDumper extends BackupDumper {
                        pclose( $this->spawnProc );
                }
                $this->spawnProc = false;
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
        }
 
        private function getTextSpawnedOnce( $id ) {
index d1c2edd..30a23d3 100644 (file)
@@ -121,9 +121,9 @@ class CheckSyntax extends Maintenance {
                        return; // process only this path
                } elseif ( $this->hasOption( 'list-file' ) ) {
                        $file = $this->getOption( 'list-file' );
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $f = fopen( $file, 'r' );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        if ( !$f ) {
                                $this->error( "Can't open file $file\n", true );
                        }
index e1d0ed6..a4e66ca 100644 (file)
@@ -36,13 +36,6 @@ class CleanupRemovedModules extends Maintenance {
                parent::__construct();
                $this->mDescription = 'Remove cache entries for removed ResourceLoader modules from the database';
                $this->addOption( 'batchsize', 'Delete rows in batches of this size. Default: 500', false, true );
-               $this->addOption(
-                       'max-slave-lag',
-                       'If the slave lag exceeds this many seconds, wait until it drops below this value. '
-                               . 'Default: 5',
-                       false,
-                       true
-               );
        }
 
        public function execute() {
@@ -51,7 +44,6 @@ class CleanupRemovedModules extends Maintenance {
                $moduleNames = $rl->getModuleNames();
                $moduleList = implode( ', ', array_map( array( $dbw, 'addQuotes' ), $moduleNames ) );
                $limit = max( 1, intval( $this->getOption( 'batchsize', 500 ) ) );
-               $maxlag = intval( $this->getOption( 'max-slave-lag', 5 ) );
 
                $this->output( "Cleaning up module_deps table...\n" );
                $i = 1;
@@ -63,7 +55,7 @@ class CleanupRemovedModules extends Maintenance {
                        $numRows = $dbw->affectedRows();
                        $this->output( "Batch $i: $numRows rows\n" );
                        $i++;
-                       wfWaitForSlaves( $maxlag );
+                       wfWaitForSlaves();
                } while ( $numRows > 0 );
                $this->output( "done\n" );
 
@@ -77,7 +69,7 @@ class CleanupRemovedModules extends Maintenance {
                        $numRows = $dbw->affectedRows();
                        $this->output( "Batch $i: $numRows rows\n" );
                        $i++;
-                       wfWaitForSlaves( $maxlag );
+                       wfWaitForSlaves();
                } while ( $numRows > 0 );
                $this->output( "done\n" );
 
@@ -90,7 +82,7 @@ class CleanupRemovedModules extends Maintenance {
                        $numRows = $dbw->affectedRows();
                        $this->output( "Batch $i: $numRows rows\n" );
                        $i++;
-                       wfWaitForSlaves( $maxlag );
+                       wfWaitForSlaves();
                } while ( $numRows > 0 );
                $this->output( "done\n" );
        }
index cbd1be6..f6259e9 100644 (file)
@@ -37,7 +37,6 @@ class TableCleanup extends Maintenance {
        );
 
        protected $dryrun = false;
-       protected $maxLag = 10; # if slaves are lagged more than 10 secs, wait
        public $batchSize = 100;
        public $reportInterval = 100;
 
index 06370e9..8adae2d 100644 (file)
@@ -25,6 +25,15 @@ class ConvertExtensionToRegistration extends Maintenance {
                'TrackingCategories',
        );
 
+       /**
+        * No longer supported globals (with reason) should not be converted and emit a warning
+        *
+        * @var array
+        */
+       protected $noLongerSupportedGlobals = array(
+               'SpecialPageGroups' => 'deprecated',
+       );
+
        /**
         * Keys that should be put at the top of the generated JSON file (T86608)
         *
@@ -42,7 +51,7 @@ class ConvertExtensionToRegistration extends Maintenance {
                'type',
        );
 
-       private $json, $dir;
+       private $json, $dir, $hasWarning = false;
 
        public function __construct() {
                parent::__construct();
@@ -61,7 +70,10 @@ class ConvertExtensionToRegistration extends Maintenance {
        public function execute() {
                // Extensions will do stuff like $wgResourceModules += array(...) which is a
                // fatal unless an array is already set. So set an empty value.
-               foreach ( array_merge( $this->getAllGlobals(), array_keys( $this->custom ) ) as $var ) {
+               // And use the weird $__settings name to avoid any conflicts
+               // with real poorly named settings.
+               $__settings = array_merge( $this->getAllGlobals(), array_keys( $this->custom ) );
+               foreach ( $__settings as $var ) {
                        $var = 'wg' . $var;
                        $$var = array();
                }
@@ -70,19 +82,27 @@ class ConvertExtensionToRegistration extends Maintenance {
                // Try not to create any local variables before this line
                $vars = get_defined_vars();
                unset( $vars['this'] );
+               unset( $vars['__settings'] );
                $this->dir = dirname( realpath( $this->getArg( 0 ) ) );
                $this->json = array();
                $globalSettings = $this->getAllGlobals();
                foreach ( $vars as $name => $value ) {
-                       // If an empty array, assume it's the default we set, so skip it
-                       if ( is_array( $value ) && count( $value ) === 0 ) {
+                       $realName = substr( $name, 2 ); // Strip 'wg'
+
+                       // If it's an empty array that we likely set, skip it
+                       if ( is_array( $value ) && count( $value ) === 0 && in_array( $realName, $__settings ) ) {
                                continue;
                        }
-                       $realName = substr( $name, 2 ); // Strip 'wg'
+
                        if ( isset( $this->custom[$realName] ) ) {
                                call_user_func_array( array( $this, $this->custom[$realName] ), array( $realName, $value, $vars ) );
                        } elseif ( in_array( $realName, $globalSettings ) ) {
                                $this->json[$realName] = $value;
+                       } elseif ( array_key_exists( $realName, $this->noLongerSupportedGlobals ) ) {
+                               $this->output( 'Warning: Skipped global "' . $name . '" (' .
+                                       $this->noLongerSupportedGlobals[$realName] . '). ' .
+                                       "Please update the entry point before convert to registration.\n" );
+                               $this->hasWarning = true;
                        } elseif ( strpos( $name, 'wg' ) === 0 ) {
                                // Most likely a config setting
                                $this->json['config'][$realName] = $value;
@@ -98,12 +118,16 @@ class ConvertExtensionToRegistration extends Maintenance {
                        }
                }
                $out += $this->json;
-
+               // Put this at the bottom
+               $out['manifest_version'] = ExtensionRegistry::MANIFEST_VERSION;
                $type = $this->hasOption( 'skin' ) ? 'skin' : 'extension';
                $fname = "{$this->dir}/$type.json";
                $prettyJSON = FormatJson::encode( $out, "\t", FormatJson::ALL_OK );
                file_put_contents( $fname, $prettyJSON . "\n" );
                $this->output( "Wrote output to $fname.\n" );
+               if ( $this->hasWarning ) {
+                       $this->output( "Found warnings! Please resolve the warnings and rerun this script.\n" );
+               }
        }
 
        protected function handleExtensionFunctions( $realName, $value ) {
diff --git a/maintenance/deleteArchivedFiles.inc b/maintenance/deleteArchivedFiles.inc
deleted file mode 100644 (file)
index 0c0b34a..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-/**
- * Core functions for deleteArchivedFiles.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 Maintenance
- */
-
-/**
- * Core functions for deleteArchivedFiles.php
- *
- * @ingroup Maintenance
- */
-class DeleteArchivedFilesImplementation {
-       public static function doDelete( $output, $force ) {
-               # Data should come off the master, wrapped in a transaction
-               $dbw = wfGetDB( DB_MASTER );
-               $dbw->begin( __METHOD__ );
-               $tbl_arch = $dbw->tableName( 'filearchive' );
-               $repo = RepoGroup::singleton()->getLocalRepo();
-               # Get "active" revisions from the filearchive table
-               $output->handleOutput( "Searching for and deleting archived files...\n" );
-               $res = $dbw->query( "SELECT fa_id,fa_storage_group,fa_storage_key,fa_sha1 FROM $tbl_arch" );
-               $count = 0;
-               foreach ( $res as $row ) {
-                       $key = $row->fa_storage_key;
-                       if ( !strlen( $key ) ) {
-                               $output->handleOutput( "Entry with ID {$row->fa_id} has empty key, skipping\n" );
-                               continue;
-                       }
-                       $group = $row->fa_storage_group;
-                       $id = $row->fa_id;
-                       $path = $repo->getZonePath( 'deleted' ) . '/' . $repo->getDeletedHashPath( $key ) . $key;
-                       if ( isset( $row->fa_sha1 ) ) {
-                               $sha1 = $row->fa_sha1;
-                       } else {
-                               // old row, populate from key
-                               $sha1 = LocalRepo::getHashFromKey( $key );
-                       }
-                       // Check if the file is used anywhere...
-                       $inuse = $dbw->selectField(
-                               'oldimage',
-                               '1',
-                               array(
-                                       'oi_sha1' => $sha1,
-                                       'oi_deleted & ' . File::DELETED_FILE => File::DELETED_FILE
-                               ),
-                               __METHOD__,
-                               array( 'FOR UPDATE' )
-                       );
-                       if ( $path && $repo->fileExists( $path ) && !$inuse ) {
-                               if ( $repo->quickPurge( $path ) ) {
-                                       $count++;
-                                       $dbw->query( "DELETE FROM $tbl_arch WHERE fa_id = $id" );
-                               } else {
-                                       $output->handleOutput( "Unable to remove file $path, skipping\n" );
-                               }
-                       } else {
-                               $output->handleOutput( "Notice - file '$key' not found in group '$group'\n" );
-                               if ( $force ) {
-                                       $output->handleOutput( "Got --force, deleting DB entry\n" );
-                                       $dbw->query( "DELETE FROM $tbl_arch WHERE fa_id = $id" );
-                               }
-                       }
-               }
-               $dbw->commit( __METHOD__ );
-               $output->handleOutput( "Done! [$count file(s)]\n" );
-       }
-}
index 286b1f2..bd8ca10 100644 (file)
@@ -25,7 +25,6 @@
  */
 
 require_once __DIR__ . '/Maintenance.php';
-require_once __DIR__ . '/deleteArchivedFiles.inc';
 
 /**
  * Maintenance script to delete archived (non-current) files from the database.
@@ -40,18 +39,82 @@ class DeleteArchivedFiles extends Maintenance {
                $this->addOption( 'force', 'Force deletion of rows from filearchive' );
        }
 
-       public function handleOutput( $str ) {
-               return $this->output( $str );
-       }
-
        public function execute() {
                if ( !$this->hasOption( 'delete' ) ) {
                        $this->output( "Use --delete to actually confirm this script\n" );
-
                        return;
                }
-               $force = $this->hasOption( 'force' );
-               DeleteArchivedFilesImplementation::doDelete( $this, $force );
+
+               # Data should come off the master, wrapped in a transaction
+               $dbw = $this->getDB( DB_MASTER );
+               $dbw->begin( __METHOD__ );
+               $repo = RepoGroup::singleton()->getLocalRepo();
+
+               # Get "active" revisions from the filearchive table
+               $this->output( "Searching for and deleting archived files...\n" );
+               $res = $dbw->select(
+                       'filearchive',
+                       array( 'fa_id', 'fa_storage_group', 'fa_storage_key', 'fa_sha1' ),
+                       '',
+                       __METHOD__
+               );
+
+               $count = 0;
+               foreach ( $res as $row ) {
+                       $key = $row->fa_storage_key;
+                       if ( !strlen( $key ) ) {
+                               $this->output( "Entry with ID {$row->fa_id} has empty key, skipping\n" );
+                               continue;
+                       }
+
+                       $group = $row->fa_storage_group;
+                       $id = $row->fa_id;
+                       $path = $repo->getZonePath( 'deleted' ) . '/' . $repo->getDeletedHashPath( $key ) . $key;
+                       if ( isset( $row->fa_sha1 ) ) {
+                               $sha1 = $row->fa_sha1;
+                       } else {
+                               // old row, populate from key
+                               $sha1 = LocalRepo::getHashFromKey( $key );
+                       }
+
+                       // Check if the file is used anywhere...
+                       $inuse = $dbw->selectField(
+                               'oldimage',
+                               '1',
+                               array(
+                                       'oi_sha1' => $sha1,
+                                       $dbw->bitAnd( 'oi_deleted', File::DELETED_FILE ) => File::DELETED_FILE
+                               ),
+                               __METHOD__,
+                               array( 'FOR UPDATE' )
+                       );
+
+                       $needForce = true;
+                       if ( !$repo->fileExists( $path ) ) {
+                               $this->output( "Notice - file '$key' not found in group '$group'\n" );
+                       } elseif ( $inuse ) {
+                               $this->output( "Notice - file '$key' is still in use\n" );
+                       } elseif ( !$repo->quickPurge( $path ) ) {
+                               $this->output( "Unable to remove file $path, skipping\n" );
+                               continue; // don't delete even with --force
+                       } else {
+                               $needForce = false;
+                       }
+
+                       if ( $needForce ) {
+                               if ( $this->hasOption( 'force' ) ) {
+                                       $this->output( "Got --force, deleting DB entry\n" );
+                               } else {
+                                       continue;
+                               }
+                       }
+
+                       $count++;
+                       $dbw->delete( 'filearchive', array( 'fa_id' => $id ), __METHOD__ );
+               }
+
+               $dbw->commit( __METHOD__ );
+               $this->output( "Done! [$count file(s)]\n" );
        }
 }
 
diff --git a/maintenance/deleteArchivedRevisions.inc b/maintenance/deleteArchivedRevisions.inc
deleted file mode 100644 (file)
index ed620ee..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-/**
- * Helper methods for the deleteArchivedRevisions.php maintenance script.
- *
- * 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
- */
-
-/**
- * Helper methods for the deleteArchivedRevisions.php maintenance script.
- *
- * @ingroup Maintenance
- */
-class DeleteArchivedRevisionsImplementation {
-
-       /**
-        * Perform the delete on archived revisions.
-        * @param object $maint An object (typically of class Maintenance)
-        * that implements two methods: handleOutput() and
-        * purgeRedundantText().  See Maintenance for a description of
-        * those methods.
-        */
-       public static function doDelete( $maint ) {
-               $dbw = wfGetDB( DB_MASTER );
-
-               $dbw->begin( __METHOD__ );
-
-               $tbl_arch = $dbw->tableName( 'archive' );
-
-               # Delete as appropriate
-               $maint->handleOutput( "Deleting archived revisions... " );
-               $dbw->query( "DELETE FROM $tbl_arch" );
-
-               $count = $dbw->affectedRows();
-               $deletedRows = $count != 0;
-
-               $maint->handleOutput( "done. $count revisions deleted.\n" );
-
-               # This bit's done
-               # Purge redundant text records
-               $dbw->commit( __METHOD__ );
-               if ( $deletedRows ) {
-                       $maint->purgeRedundantText( true );
-               }
-       }
-}
index 30883ba..9924eb0 100644 (file)
@@ -25,7 +25,6 @@
  */
 
 require_once __DIR__ . '/Maintenance.php';
-require_once __DIR__ . '/deleteArchivedRevisions.inc';
 
 /**
  * Maintenance script to delete archived (deleted from public) revisions
@@ -41,21 +40,24 @@ class DeleteArchivedRevisions extends Maintenance {
                $this->addOption( 'delete', 'Performs the deletion' );
        }
 
-       public function handleOutput( $str ) {
-               $this->output( $str );
-       }
-
        public function execute() {
-               $this->output( "Delete archived revisions\n\n" );
-               # Data should come off the master, wrapped in a transaction
-               if ( $this->hasOption( 'delete' ) ) {
-                       DeleteArchivedRevisionsImplementation::doDelete( $this );
-               } else {
-                       $dbw = wfGetDB( DB_MASTER );
-                       $res = $dbw->selectRow( 'archive', 'COUNT(*) as count', array(), __FUNCTION__ );
-                       $this->output( "Found {$res->count} revisions to delete.\n" );
+               $dbw = $this->getDB( DB_MASTER );
+
+               if ( !$this->hasOption( 'delete' ) ) {
+                       $count = $dbw->selectField( 'archive', 'COUNT(*)', '', __METHOD__ );
+                       $this->output( "Found $count revisions to delete.\n" );
                        $this->output( "Please run the script again with the --delete option "
                                . "to really delete the revisions.\n" );
+                       return;
+               }
+
+               $this->output( "Deleting archived revisions... " );
+               $dbw->delete( 'archive', '*', __METHOD__ );
+               $count = $dbw->affectedRows();
+               $this->output( "done. $count revisions deleted.\n" );
+
+               if ( $count ) {
+                       $this->purgeRedundantText( true );
                }
        }
 }
diff --git a/maintenance/deleteImageMemcached.php b/maintenance/deleteImageMemcached.php
deleted file mode 100644 (file)
index 4799e5e..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-/**
- * Delete image information from the object cache.
- *
- * Usage example:
- * php deleteImageMemcached.php --until "2005-09-05 00:00:00" --sleep 0
- *
- * 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
- */
-
-require_once __DIR__ . '/Maintenance.php';
-
-/**
- * Maintenance script that deletes image information from the object cache.
- *
- * @ingroup Maintenance
- */
-class DeleteImageCache extends Maintenance {
-       public function __construct() {
-               parent::__construct();
-               $this->mDescription = "Delete image information from the cache";
-               $this->addOption( 'sleep', 'How many seconds to sleep between deletions', true, true );
-               $this->addOption( 'until', 'Timestamp to delete all entries prior to', true, true );
-       }
-
-       public function execute() {
-               global $wgMemc;
-
-               $until = preg_replace( "/[^\d]/", '', $this->getOption( 'until' ) );
-               $sleep = (int)$this->getOption( 'sleep' ) * 1000; // milliseconds
-
-               ini_set( 'display_errors', false );
-
-               $dbr = wfGetDB( DB_SLAVE );
-
-               $res = $dbr->select( 'image',
-                       array( 'img_name' ),
-                       array( "img_timestamp < {$until}" ),
-                       __METHOD__
-               );
-
-               $i = 0;
-               $total = $this->getImageCount();
-
-               foreach ( $res as $row ) {
-                       if ( $i % $this->report == 0 ) {
-                               $this->output( sprintf(
-                                       "%s: %13s done (%s)\n",
-                                       wfWikiID(),
-                                       "$i/$total",
-                                       wfPercent( $i / $total * 100 )
-                               ) );
-                       }
-                       $md5 = md5( $row->img_name );
-                       $wgMemc->delete( wfMemcKey( 'Image', $md5 ) );
-
-                       if ( $sleep != 0 ) {
-                               usleep( $sleep );
-                       }
-
-                       ++$i;
-               }
-       }
-
-       private function getImageCount() {
-               $dbr = wfGetDB( DB_SLAVE );
-
-               return $dbr->selectField( 'image', 'COUNT(*)', array(), __METHOD__ );
-       }
-}
-
-$maintClass = "DeleteImageCache";
-require_once RUN_MAINTENANCE_IF_MAIN;
index ae70441..ad385e5 100644 (file)
@@ -88,23 +88,23 @@ if ( isset( $options['check-userblock'] ) ) {
 }
 
 # Get --from
-wfSuppressWarnings();
+MediaWiki\suppressWarnings();
 $from = $options['from'];
-wfRestoreWarnings();
+MediaWiki\restoreWarnings();
 
 # Get sleep time.
-wfSuppressWarnings();
+MediaWiki\suppressWarnings();
 $sleep = $options['sleep'];
-wfRestoreWarnings();
+MediaWiki\restoreWarnings();
 
 if ( $sleep ) {
        $sleep = (int)$sleep;
 }
 
 # Get limit number
-wfSuppressWarnings();
+MediaWiki\suppressWarnings();
 $limit = $options['limit'];
-wfRestoreWarnings();
+MediaWiki\restoreWarnings();
 
 if ( $limit ) {
        $limit = (int)$limit;
index b948b67..0037ea8 100644 (file)
@@ -104,9 +104,9 @@ class CommandLineInstaller extends Maintenance {
                                $this->error( 'WARNING: You have provided the options "dbpass" and "dbpassfile". '
                                        . 'The content of "dbpassfile" overrides "dbpass".' );
                        }
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $dbpass = file_get_contents( $dbpassfile ); // returns false on failure
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        if ( $dbpass === false ) {
                                $this->error( "Couldn't open $dbpassfile", true );
                        }
@@ -119,9 +119,9 @@ class CommandLineInstaller extends Maintenance {
                                $this->error( 'WARNING: You have provided the options "pass" and "passfile". '
                                        . 'The content of "passfile" overrides "pass".' );
                        }
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $pass = file_get_contents( $passfile ); // returns false on failure
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        if ( $pass === false ) {
                                $this->error( "Couldn't open $passfile", true );
                        }
index eab2b63..7e73e64 100644 (file)
                                        "mw.Feedback.Dialog"
                                ]
                        },
+                       {
+                               "name": "Widgets",
+                               "classes": [
+                                       "mw.widgets*"
+                               ]
+                       },
                        {
                                "name": "Special",
                                "classes": [
index 3f0a9ba..fddfc02 100644 (file)
@@ -47,9 +47,9 @@ class JSParseHelper extends Maintenance {
 
                $parser = new JSParser();
                foreach ( $files as $filename ) {
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $js = file_get_contents( $filename );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        if ( $js === false ) {
                                $this->output( "$filename ERROR: could not read file\n" );
                                $this->errs++;
index 257fe14..534a8b4 100644 (file)
@@ -26,9 +26,9 @@
 /** A general output object. Need to be overridden */
 class StatsOutput {
        function formatPercent( $subset, $total, $revert = false, $accuracy = 2 ) {
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $return = sprintf( '%.' . $accuracy . 'f%%', 100 * $subset / $total );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                return $return;
        }
@@ -92,9 +92,9 @@ class WikiStatsOutput extends StatsOutput {
        }
 
        function formatPercent( $subset, $total, $revert = false, $accuracy = 2 ) {
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $v = round( 255 * $subset / $total );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( $revert ) {
                        # Weigh reverse with factor 20 so coloring takes effect more quickly as
index b686f3d..7e0270c 100644 (file)
@@ -230,4 +230,4 @@ U+09CC4鳄|U+09C77鱷|U+09C10鰐|
 U+09E21鸡|U+096DE雞|U+09DC4鷄|
 U+09E5A鹚|U+09DBF鶿|U+09DC0鷀|
 U+09EB9麹|U+09EB4麴|
-U+080C4胄|U+080C4胄|U+05191冑|
\ No newline at end of file
+U+080C4胄|U+080C4胄|U+05191冑|
index 431a9fb..f1ce577 100644 (file)
 乾贵士
 承乾
 乾生元
+蔡孝乾
 於乎
 於戏
 魏徵
 穀旦
 不穀
 穀水
+穀阳
 岳讬
 硕讬
 讬庸
 博和讬
 讬麻
 饱讬
-蔡絛
\ No newline at end of file
+蔡絛
index 7c26621..7470a38 100644 (file)
@@ -24,4 +24,4 @@ U+09EB3麳|U+2A38C𪎌|
 U+295E1𩗡|U+29667𩙧|
 U+298F5𩣵|U+299FB𩧻|
 U+29F47𩽇|U+29F8E𩾎|
-U+2A23C𪈼|U+2A253𪉓|
\ No newline at end of file
+U+2A23C𪈼|U+2A253𪉓|
index 3b5f3dd..6f2dd39 100644 (file)
@@ -20,6 +20,7 @@
 胺基酸      氨基酸
 水氣 水汽
 計畫 计划
+規畫 规划
 天份 天分
 名份 名分
 職份 职分
 蓋著名      盖著名
 蓋著稱      盖著称
 蓋著作      盖著作
-è¦\86è\93\8bè\91\97      è¦\86ç\9b\96ç\9d\80 #å\8b¿å\88 æ­¤æ\9d¡
+è¦\86è\93\8bè\91\97      è¦\86ç\9b\96ç\9d\80 #å\88\86è¯\8dç\94¨
 象徵著      象征着
 象徵著名   象征著名
+固著 固着
+班固著      班固著
+分布著      分布着
+分佈著      分布着
+散布著      散布着
+散佈著      散布着
 三十六著   三十六着
 走為上著   走为上着
 記憶體      内存
 八進位制   八进位制
 十進位制   十进位制
 16進位制    16进位制
-互動式      交互式
 優先順序   优先级
 攜帶型      便携式
 資訊理論   信息论
+資訊時代   信息时代
 迴圈 循环
 解析度      分辨率
 伺服器      服务器
 象牙海岸   科特迪瓦
 突尼西亞   突尼斯
 寮國 老挝
-貢寮國      贡寮国
+貢寮 贡寮 #分詞用
 蘇利南      苏里南
 莫三比克   莫桑比克
 賴索托      莱索托
@@ -2655,6 +2662,8 @@ A型肝炎        甲型肝炎
 電腦程式   计算机程序
 應用程式   应用程序
 雷射 激光
+鱼雷射      鱼雷射
+魚雷射      鱼雷射
 尖峰時間   高峰时间
 尖峰時段   高峰时段
 咖哩 咖喱
@@ -2714,8 +2723,14 @@ A型肝炎       甲型肝炎
 私隱 隐私
 格林美獎   格莱美奖
 葛萊美獎   格莱美奖
-史丹福      斯坦福
+史丹福大學        斯坦福大学
 賈伯斯      乔布斯
 波里活      宝莱坞
 庫德族      库尔德族
 庫德人      库尔德人
+希拉蕊      希拉里
+希拉莉      希拉里
+麻薩諸塞   马萨诸塞
+東南亞國家協會  东南亚国家联盟
+獨立國協   独联体
+獨立國家國協     独立国家联合体
index f765873..f6a277b 100644 (file)
 占國 佔國
 占国桥      占國橋
 占國橋      占國橋
-占美 佔美
+占美国      佔美國
+占美國      佔美國
 占台 佔台
 占臺 佔臺
 占香 佔香
 里边 裏邊
 里间 裏間
 里面 裏面
-里面包      裏面包
 里头 裏頭
 衬里 襯裏
 角落里      角落裏
 鸡蛋里挑骨头     雞蛋裏挑骨頭
 雪里 雪裏
 雾里 霧裏
+云里雾里   雲裏霧裏
 鞋里 鞋裏
 鞭辟入里   鞭辟入裏
 头里 頭裏
 蓋著稱      蓋著稱
 蓋著作      蓋著作
 覆蓋著      覆蓋着
+固著 固着
+班固著      班固著
+面包著      面包着
+分布著      分佈着
+分佈著      分佈着
+散布著      散佈着
+散佈著      散佈着
 三十六著   三十六着
 走為上著   走為上着
 鬧著 鬧着
 萬那杜      瓦努阿圖
 葛摩 科摩羅
 寮國 老撾
-貢寮國      貢寮國
+貢寮 貢寮 #分詞用
 肯尼亚      肯雅
 莫三比克   莫桑比克
 賴索托      萊索托
 史匹柏      史匹堡
 戈巴契夫   戈爾巴喬夫
 席哈克      希拉克
-希拉蕊      希拉
+希拉蕊      希拉
 布莱尔      貝理雅
 尼克松      尼克遜
 奧黛麗·赫本      柯德莉·夏萍
@@ -2950,6 +2958,7 @@ IP地址  IP位址
 屏幕 螢幕
 荧屏 螢屏
 版权信息   版權資訊
+信息时代   資訊時代
 蹦床 彈床
 擊劍 劍擊
 击剑 劍擊
@@ -2997,6 +3006,7 @@ IP地址  IP位址
 正體中文   繁體中文
 板球 木球
 籃板球      籃板球
+篮板球      籃板球
 智慧財產權        知識產權
 智財權      知識產權
 首席执行官        行政總裁
@@ -3022,7 +3032,6 @@ IP地址  IP位址
 肖斯塔科维奇     蕭士達高維契
 蕭士塔高維奇     蕭士達高維契
 工具機      機床
-伊斯坦堡   伊斯坦布爾
 空气质量   空氣質素
 空氣品質   空氣質素
 俯卧撑      掌上壓
@@ -3059,9 +3068,12 @@ IP地址 IP位址
 硅藻 硅藻
 格莱美奖   格林美獎
 葛萊美獎   格林美獎
-斯坦福      史丹福
+斯坦福大学        史丹福大學
 賈伯斯      喬布斯
 宝莱坞      波里活
 寶萊塢      波里活
 庫德族      库爾德族
 庫德人      库爾德人
+東南亞國家協會  東南亞國家聯盟
+獨立國協   獨聯體
+獨立國家國協     獨立國家聯合體
index 1956391..9674aae 100644 (file)
 侷促 局促
 侷限 局限
 馬鞌 马鞍
-觔斗 斤斗
\ No newline at end of file
+觔斗 斤斗
+穀阳 穀阳
index b0be071..6e3a7b5 100644 (file)
 干着 幹著
 干着急      干著急
 斗着 鬥著
+面包着      面包著
 徵狀 症狀
 系数 係數
 汇编 彙編
+报道 報導
 划着船      划著船
 划着竹筏   划著竹筏
 划着独木舟        划著獨木舟
 鼠标 滑鼠
 进制 進位
 信息论      資訊理論
+信息时代   資訊時代
 写保护      防寫
 分辨率      解析度
 服务器      伺服器
 斯皮尔伯格        史匹柏
 斯特劳斯   史特勞斯
 斯大林      史達林
-斯坦福      史丹福
+斯坦福大学        史丹福大學
 撒切尔      柴契爾
 戴卓爾      柴契爾
 摩根士丹利        摩根史坦利
 德里达      德希達
 帕特里克   派屈克
 希拉里      希拉蕊
+希拉莉      希拉蕊
 希拉克      席哈克
 尼克松      尼克森
 威廉姆斯   威廉士
@@ -619,8 +623,11 @@ IP地址   IP位址
 宇航员      太空人
 太空飛行員        太空人
 独联体      獨立國協
+獨聯體      獨立國協
 独立国家联合体  獨立國家國協
-东南亚国家联盟  東南亞國協
+獨立國家聯合體  獨立國家國協
+东南亚国家联盟  東南亞國家協會
+東南亞國家聯盟  東南亞國家協會
 发达国家   已開發國家
 哥特式      哥德式
 落車 下車
@@ -691,6 +698,7 @@ IP地址    IP位址
 高峰时间   尖峰時間
 高峰时段   尖峰時段
 东盟 東協
+東盟 東協
 亚细安      東協
 英联邦      大英國協
 英聯邦      大英國協
index a82dd1e..b825402 100644 (file)
 曲车 麴車
 鼠曲草      鼠麴草
 曲酒 麯酒
-泸州大曲   瀘州大麯  #商標名
+泸州大曲   瀘州大麯 #商標名
 洋河大曲   洋河大麯
 沟大曲      溝大麯
 朱砂 硃砂
index 5a0c6c3..c479f35 100644 (file)
@@ -650,6 +650,7 @@ U+091E6釦|U+06263扣|
 U+091EC釬|U+0710A焊|
 U+09205鈅|U+094A5钥|
 U+0920E鈎|U+094A9钩|
+U+09244鉄|U+094C1铁|
 U+09246鉆|U+094BB钻|
 U+09262鉢|U+094B5钵|
 U+092B2銲|U+0710A焊|
index 64e41b1..464f455 100644 (file)
 醜逆
 醜史
 醜賊生
-醜婆子
+真醜
 出乖弄醜
 出乖露醜
 獲匪其醜
 女丑
 小丑
 大丑
-丑婆子
 丑旦
 丑角
 丑三
 吾爲之範我馳驅
 天地為範
 範數
+範亭
 丰采
 丰標不凡
 丰神
 反複製
 複對數
 複分解
-複合材
-複合物
-複合體
-複合制
-複合式
-複合弓
-複合函數
+複合 #因複合詞頻遠高於復合
+複方
 撥穀
 扁擬穀盜蟲
 不穀
 南迴鐵路
 北迴線
 北迴鐵路
+迴文詩
+迴文數
+迴文錦
+迴文聯
+迴文序列
+迴文結構
+迴文構詞
 滙豐
 伙頭
 伏几
 雲吞
 一碗麵
 吃碗麵
+吃麵
+麵點師
+麵點、
+、麵點
 冷面相
 糞穢衊面
 僕僕
 瀋山線
 瀋山鐵路
 瀋海鐵路
+瀋海高速
 瀋丹線
 瀋丹鐵路
 瀋丹客運
 正官庄
 冬山庄
 松山庄
+香山庄
+中庄子
+田庄英雄
+本庄
 厂部
 衝量
 衝車
 於九
 於十
 於半
+於1天 #分詞用
+於2天
+於3天
+於4天
+於5天
+於6天
+於7天
+於8天
+於9天
+於一天
+於二天
+於三天
+於四天
+於五天
+於六天
+於七天
+於八天
+於九天
+於十天
 於夫羅
 於梨華
 置於
 自由鐘
 鐘螺
 鐘花
+馬德鐘
 計時錶
 防水錶
 顯示表格
 鬼谷子
 谷子敬
 洪谷子
+西米谷
+世田谷
+山谷道
+聖馬爾谷日
 于美人
 緊緻
 曰云
 政鬥
 鬥獸
 鬥龍
+鬥勇
 石樑
 木樑
 藏歷史
 徵令
 本徵
 黃鈺筑
-香山庄
 當準
 憑準
 沒準
 鋼之鍊金術師
 索馬里
 范登堡
-世田谷
 製漿
 三統歷史
 伊斯蘭教歷史
 面包裝
 面包裹
 面包起
+面包着
+面包著
 面店鋪
 面粉碎
 面粉紅
 范文藤
 范文虎
 范文照
-全面包圍
-全面包裹
 機械系
 體系
 心理
 于禁
 于敏中
 註:# 不作“注:”
-呆呆獸
 劃為# 不作“划為”
 併為一體
 併為一家
 電梯裡
 網站裡
 行家裡手
+雲裡霧裡
 首發
 夸脫
 風采
 故云
 強制作用
 鬱南
-西米谷
 鬱林
 饑荒
 免徵
 歌后
 影后
 封后
+查封後
+解封後
 太后
 天后
 呂后
 馬格里布
 伊里布
 劃入
-中庄子
 埔裏社
 手裏劍
 裏水鎮
 趙威后
 聖后
 陳有后
-許虬
 于冠華
 于雲鶴
 于忠肅集
 樗里子
 伊達里子
 濱田里佳子
+王田里
+小井里
+西井里
 尊后
 叶志穗
 叶不二子
 于立成
-山谷道
 李志喜
 于欣
 于少保
 紅后假說
 書面
 不只
+湧水
 高涌泉
-王田里
+涌水塘
 后姓
-田庄英雄
 計劃
 抑制劑
 党姓
 功勳
 蝎虎
 磨蝎
-沈海蓉
 方志恒
 古蹟
 瀋撫
 御製
 合併
 聖人曆
-影後
+影後
 封為后
 皮托管
 白面包青天
 松口鎮
 沙瑯
 琺瑯
-菜餚
\ No newline at end of file
+菜餚
+梁啓超
+改制成
index 2ff49c4..5be4241 100644 (file)
 彙報
 彙整
 彙編
-彙集
\ No newline at end of file
+彙集
+快幹
+快乾
+瀋海
+迴文
+迴向
+迴音
+美製
index ab0ca1e..66553bc 100644 (file)
@@ -57,12 +57,6 @@ TEXT;
                        false,
                        true
                );
-               $this->addOption(
-                       'max-slave-lag',
-                       'If slave lag exceeds this many seconds, wait until it drops before continuing. Default: 10',
-                       false,
-                       true
-               );
                $this->addOption(
                        'throttle',
                        'Wait this many milliseconds after each category. Default: 0',
@@ -74,13 +68,9 @@ TEXT;
 
        public function execute() {
                $begin = $this->getOption( 'begin', '' );
-               $maxSlaveLag = $this->getOption( 'max-slave-lag', 10 );
                $throttle = $this->getOption( 'throttle', 0 );
                $force = $this->getOption( 'force', false );
-               $this->doPopulateCategory( $begin, $maxSlaveLag, $throttle, $force );
-       }
 
-       private function doPopulateCategory( $begin, $maxlag, $throttle, $force ) {
                $dbw = wfGetDB( DB_MASTER );
 
                if ( !$force ) {
index 6ce54b9..924457a 100644 (file)
@@ -131,9 +131,9 @@ class RebuildFileCache extends Maintenance {
                                        ob_start( array( &$cache, 'saveToFileCache' ) ); // save on ob_end_clean()
                                        $wgUseFileCache = false; // hack, we don't want $article fiddling with filecache
                                        $article->view();
-                                       wfSuppressWarnings(); // header notices
+                                       MediaWiki\suppressWarnings(); // header notices
                                        $wgOut->output();
-                                       wfRestoreWarnings();
+                                       MediaWiki\restoreWarnings();
                                        $wgUseFileCache = true;
                                        ob_end_clean(); // clear buffer
                                        if ( $rebuilt ) {
index 5a14967..8e39978 100644 (file)
@@ -59,7 +59,6 @@ class ImageBuilder extends Maintenance {
 
        public function execute() {
                $this->dbw = wfGetDB( DB_MASTER );
-               $this->maxLag = 10; # if slaves are lagged more than 10 secs, wait
                $this->dryrun = $this->hasOption( 'dry-run' );
                if ( $this->dryrun ) {
                        $GLOBALS['wgReadOnly'] = 'Dry run mode, image upgrades are suppressed';
index d0989e2..831e2dc 100755 (executable)
@@ -43,11 +43,16 @@ rm -r "$REPO_DIR/$TARGET_DIR"
 mkdir -p "$REPO_DIR/$TARGET_DIR/i18n"
 mkdir -p "$REPO_DIR/$TARGET_DIR/images"
 mkdir -p "$REPO_DIR/$TARGET_DIR/themes/mediawiki/images"
-cp ./node_modules/oojs-ui/dist/{oojs-ui-mediawiki-noimages.css,oojs-ui-mediawiki.js,oojs-ui.js} "$REPO_DIR/$TARGET_DIR"
+mkdir -p "$REPO_DIR/$TARGET_DIR/themes/apex/images"
+cp ./node_modules/oojs-ui/dist/oojs-ui.js "$REPO_DIR/$TARGET_DIR"
+cp ./node_modules/oojs-ui/dist/{oojs-ui-mediawiki-noimages.css,oojs-ui-mediawiki.js} "$REPO_DIR/$TARGET_DIR"
+cp ./node_modules/oojs-ui/dist/{oojs-ui-apex-noimages.css,oojs-ui-apex.js} "$REPO_DIR/$TARGET_DIR"
 cp -R ./node_modules/oojs-ui/dist/i18n "$REPO_DIR/$TARGET_DIR"
 cp -R ./node_modules/oojs-ui/dist/images "$REPO_DIR/$TARGET_DIR"
 cp -R ./node_modules/oojs-ui/dist/themes/mediawiki/images "$REPO_DIR/$TARGET_DIR/themes/mediawiki"
 cp ./node_modules/oojs-ui/src/themes/mediawiki/*.json "$REPO_DIR/$TARGET_DIR/themes/mediawiki"
+cp -R ./node_modules/oojs-ui/dist/themes/apex/images "$REPO_DIR/$TARGET_DIR/themes/apex"
+cp ./node_modules/oojs-ui/src/themes/apex/*.json "$REPO_DIR/$TARGET_DIR/themes/apex"
 
 # Clean up temporary area
 rm -rf "$NPM_DIR"
index 886e3f1..82eae21 100644 (file)
@@ -32,7 +32,8 @@ require_once __DIR__ . '/Maintenance.php';
 class MwSql extends Maintenance {
        public function __construct() {
                parent::__construct();
-               $this->mDescription = "Send SQL queries to a MediaWiki database";
+               $this->mDescription = "Send SQL queries to a MediaWiki database. " .
+                               "Takes a file name containing SQL as argument or runs interactively.";
                $this->addOption( 'cluster', 'Use an external cluster by name', false, true );
                $this->addOption( 'wikidb', 'The database wiki ID to use if not the current one', false, true );
                $this->addOption( 'slave', 'Use a slave server (either "any" or by name)', false, true );
index 7e02a4b..b11f1c8 100644 (file)
@@ -117,12 +117,12 @@ class SqliteMaintenance extends Maintenance {
                $this->db->query( 'BEGIN IMMEDIATE TRANSACTION', __METHOD__ );
                $ourFile = $this->db->getDbFilePath();
                $this->output( "   Copying database file $ourFile to $fileName... " );
-               wfSuppressWarnings( false );
+               MediaWiki\suppressWarnings( false );
                if ( !copy( $ourFile, $fileName ) ) {
                        $err = error_get_last();
                        $this->error( "      {$err['message']}" );
                }
-               wfSuppressWarnings( true );
+               MediaWiki\suppressWarnings( true );
                $this->output( "   Releasing lock...\n" );
                $this->db->query( 'COMMIT TRANSACTION', __METHOD__ );
        }
index d2fe3b4..dd4cd54 100644 (file)
@@ -312,9 +312,9 @@ class FixBug20757 extends Maintenance {
                $text = $secondaryRow->old_text;
                if ( in_array( 'external', $flags ) ) {
                        $url = $text;
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        list( /* $proto */, $path ) = explode( '://', $url, 2 );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
 
                        if ( $path == "" ) {
                                return false;
index 3562df6..b213929 100644 (file)
@@ -234,9 +234,9 @@ class RecompressTracked {
                                array( 'file', 'php://stdout', 'w' ),
                                array( 'file', 'php://stderr', 'w' )
                        );
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $proc = proc_open( "$cmd --slave-id $i", $spec, $pipes );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                        if ( !$proc ) {
                                $this->critical( "Error opening slave process: $cmd" );
                                exit( 1 );
index 0fd1fd8..3bb722e 100755 (executable)
  * @ingroup Maintenance
  */
 
-if ( !function_exists( 'version_compare' ) || ( version_compare( PHP_VERSION, '5.3.3' ) < 0 ) ) {
-       require dirname( __FILE__ ) . '/../includes/PHPVersionError.php';
-       wfPHPVersionError( 'cli' );
-}
-
 $wgUseMasterForMaintenance = true;
 require_once __DIR__ . '/Maintenance.php';
 
@@ -63,8 +58,7 @@ class UpdateMediaWiki extends Maintenance {
        }
 
        function getDbType() {
-               /* If we used the class constant PHP4 would give a parser error here */
-               return 2; /* Maintenance::DB_ADMIN */
+               return Maintenance::DB_ADMIN;
        }
 
        function compatChecks() {
@@ -126,7 +120,7 @@ class UpdateMediaWiki extends Maintenance {
 
                $this->output( "MediaWiki {$wgVersion} Updater\n\n" );
 
-               wfWaitForSlaves( 5 ); // let's not kill databases, shall we? ;) --tor
+               wfWaitForSlaves();
 
                if ( !$this->hasOption( 'skip-compat-checks' ) ) {
                        $this->compatChecks();
index 342ffba..5cf8afa 100644 (file)
@@ -24,8 +24,6 @@
  * @author Aryeh Gregor (Simetrical)
  */
 
-#$optionsWithArgs = array( 'begin', 'max-slave-lag' );
-
 require_once __DIR__ . '/Maintenance.php';
 
 /**
index e764661..08af11a 100644 (file)
@@ -12,18 +12,39 @@ class ValidateRegistrationFile extends Maintenance {
                        $this->error( 'The JsonSchema library cannot be found, please install it through composer.', 1 );
                }
 
-               $retriever = new JsonSchema\Uri\UriRetriever();
-               $schema = $retriever->retrieve('file://' . dirname( __DIR__ ) . '/docs/extension.schema.json' );
                $path = $this->getArg( 0 );
                $data = json_decode( file_get_contents( $path ) );
                if ( !is_object( $data ) ) {
                        $this->error( "$path is not a valid JSON file.", 1 );
                }
+               if ( !isset( $data->manifest_version ) ) {
+                       $this->output("Warning: No manifest_version set, assuming 1.\n" );
+                       // For backwards-compatability assume 1
+                       $data->manifest_version = 1;
+               }
+               $version = $data->manifest_version;
+               if ( $version !== ExtensionRegistry::MANIFEST_VERSION ) {
+                       $schemaPath = dirname( __DIR__ ) . "/docs/extension.schema.v$version.json";
+               } else {
+                       $schemaPath = dirname( __DIR__ ) . '/docs/extension.schema.json';
+               }
+
+               if ( $version < ExtensionRegistry::OLDEST_MANIFEST_VERSION
+                       || $version > ExtensionRegistry::MANIFEST_VERSION
+               ) {
+                       $this->error( "Error: $path is using a non-supported schema version, it should use "
+                               . ExtensionRegistry::MANIFEST_VERSION, 1 );
+               } elseif ( $version < ExtensionRegistry::MANIFEST_VERSION ) {
+                       $this->output( "Warning: $path is using a deprecated schema, and should be updated to "
+                               . ExtensionRegistry::MANIFEST_VERSION . "\n" );
+               }
+               $retriever = new JsonSchema\Uri\UriRetriever();
+               $schema = $retriever->retrieve('file://' . $schemaPath );
 
                $validator = new JsonSchema\Validator();
                $validator->check( $data, $schema );
                if ( $validator->isValid() ) {
-                       $this->output( "$path validates against the schema!\n" );
+                       $this->output( "$path validates against the version $version schema!\n" );
                } else {
                        foreach ( $validator->getErrors() as $error ) {
                                $this->output( "[{$error['property']}] {$error['message']}\n" );
index c9b1abb..50665ef 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Wait until slave lag goes under a certain value.
+ * Wait for the slaves to catch up to the master position.
  *
  * 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
 require_once __DIR__ . '/Maintenance.php';
 
 /**
- * Maintenance script to wait until slave lag goes under a certain value.
+ * Maintenance script to wait for the slaves to catch up to the master position.
  *
  * @ingroup Maintenance
  */
 class WaitForSlave extends Maintenance {
-       public function __construct() {
-               parent::__construct();
-               $this->addArg( 'maxlag', 'How long to wait for the slaves, default 10 seconds', false );
-       }
-
        public function execute() {
-               wfWaitForSlaves( $this->getArg( 0, 10 ) );
+               wfWaitForSlaves();
        }
 }
 
index ed3e7f4..be811dc 100644 (file)
  * @file
  */
 
-// Bail if PHP is too low
-if ( !function_exists( 'version_compare' ) || version_compare( PHP_VERSION, '5.3.3' ) < 0 ) {
-       // We need to use dirname( __FILE__ ) here cause __DIR__ is PHP5.3+
-       require dirname( dirname( __FILE__ ) ) . '/includes/PHPVersionError.php';
-       wfPHPVersionError( 'mw-config/index.php' );
-}
+// 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+.
+require_once dirname( __FILE__ ) . '/../includes/PHPVersionCheck.php';
+wfEntryPointCheck( 'mw-config/index.php' );
 
 define( 'MW_CONFIG_CALLBACK', 'Installer::overrideConfig' );
 define( 'MEDIAWIKI_INSTALL', true );
diff --git a/mw-config/index.php5 b/mw-config/index.php5
deleted file mode 100644 (file)
index 8898653..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-/**
- * Version of mw-config/index.php to be used in web servers that require the .php5
- * extension to execute scripts with the PHP5 engine.
- *
- * 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
- */
-
-define( 'MW_INSTALL_PHP5_EXT', 1 );
-
-require './index.php';
index 42270f7..e28aef4 100644 (file)
@@ -9,16 +9,16 @@
   "devDependencies": {
     "grunt": "0.4.5",
     "grunt-cli": "0.1.13",
-    "grunt-banana-checker": "0.2.1",
+    "grunt-banana-checker": "0.2.2",
     "grunt-contrib-copy": "0.8.0",
     "grunt-contrib-jshint": "0.11.2",
     "grunt-contrib-watch": "0.6.1",
     "grunt-jscs": "1.8.0",
     "grunt-jsonlint": "1.0.4",
-    "grunt-karma": "0.10.1",
-    "karma": "0.12.31",
-    "karma-chrome-launcher": "0.1.8",
-    "karma-firefox-launcher": "0.1.4",
+    "grunt-karma": "0.11.0",
+    "karma": "0.12.36",
+    "karma-chrome-launcher": "0.1.12",
+    "karma-firefox-launcher": "0.1.6",
     "karma-qunit": "0.1.4",
     "qunitjs": "1.18.0"
   }
index b32dd33..7c2a9df 100644 (file)
@@ -39,6 +39,7 @@ return array(
                'group' => 'noscript',
        ),
        'filepage' => array(
+               'position' => 'top',
                'class' => 'ResourceLoaderWikiModule',
                'styles' => array( 'MediaWiki:Filepage.css' ),
        ),
@@ -90,19 +91,22 @@ return array(
         * including more than one of them into your skin as this will result in duplicate CSS.
         */
        'mediawiki.skinning.elements' => array(
+               'position' => 'top',
                'styles' => array(
                        'resources/src/mediawiki.skinning/elements.css' => array( 'media' => 'screen' ),
                ),
        ),
        'mediawiki.skinning.content' => array(
+               'position' => 'top',
                'styles' => array(
                        'resources/src/mediawiki.skinning/elements.css' => array( 'media' => 'screen' ),
                        'resources/src/mediawiki.skinning/content.css' => array( 'media' => 'screen' ),
                ),
        ),
+       // Used in the web installer. Test it after modifying this definition!
        'mediawiki.skinning.interface' => array(
+               'position' => 'top',
                'class' => 'ResourceLoaderSkinModule',
-               // Used in the web installer. Test it after modifying this definition!
                'styles' => array(
                        'resources/src/mediawiki.skinning/elements.css' => array( 'media' => 'screen' ),
                        'resources/src/mediawiki.skinning/content.css' => array( 'media' => 'screen' ),
@@ -111,6 +115,7 @@ return array(
        ),
 
        'mediawiki.skinning.content.parsoid' => array(
+               'position' => 'top',
                // Style Parsoid HTML+RDFa output consistent with wikitext from PHP parser
                // with the interface.css styles; skinStyles should be used if your
                // skin over-rides common content styling.
@@ -121,6 +126,7 @@ return array(
        ),
 
        'mediawiki.skinning.content.externallinks' => array(
+               'position' => 'bottom',
                'styles' => array(
                        'resources/src/mediawiki.skinning/content.externallinks.css' => array( 'media' => 'screen' ),
                ),
@@ -209,7 +215,6 @@ return array(
                'styles' => 'resources/src/jquery/jquery.confirmable.css',
                'dependencies' => 'mediawiki.jqueryMsg',
        ),
-       // Use mediawiki.cookie in new code, rather than jquery.cookie.
        'jquery.cookie' => array(
                'scripts' => 'resources/lib/jquery/jquery.cookie.js',
                'targets' => array( 'desktop', 'mobile' ),
@@ -335,6 +340,13 @@ return array(
 
        'jquery.ui.core' => array(
                'scripts' => 'resources/lib/jquery.ui/jquery.ui.core.js',
+               'dependencies' => array(
+                       'jquery.ui.core.styles',
+               ),
+               'group' => 'jquery.ui',
+       ),
+       'jquery.ui.core.styles' => array(
+               'position' => 'top',
                'skinStyles' => array(
                        'default' => array(
                                'resources/lib/jquery.ui/themes/smoothness/jquery.ui.core.css',
@@ -773,14 +785,15 @@ return array(
        /* MediaWiki */
 
        'mediawiki' => array(
+               'class' => 'ResourceLoaderRawFileModule',
                // Keep maintenance/jsduck/eg-iframe.html in sync
                'scripts' => array(
+                       'resources/lib/phpjs-sha1/sha1.js',
                        'resources/src/mediawiki/mediawiki.js',
                        'resources/src/mediawiki/mediawiki.errorLogger.js',
                        'resources/src/mediawiki/mediawiki.startUp.js',
                ),
                'debugScripts' => 'resources/src/mediawiki/mediawiki.log.js',
-               'raw' => true,
                'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.apihelp' => array(
@@ -847,6 +860,7 @@ return array(
                ),
        ),
        'mediawiki.content.json' => array(
+               'position' => 'top',
                'styles' => 'resources/src/mediawiki/mediawiki.content.json.css',
        ),
        'mediawiki.confirmCloseWindow' => array(
@@ -919,6 +933,7 @@ return array(
        ),
 
        'mediawiki.helplink' => array(
+               'position' => 'top',
                'styles' => array(
                        'resources/src/mediawiki/mediawiki.helplink.less',
                ),
@@ -947,6 +962,14 @@ return array(
                        'colon-separator',
                ),
        ),
+       'mediawiki.htmlform.ooui' => array(
+               'scripts' => 'resources/src/mediawiki/mediawiki.htmlform.ooui.js',
+               'dependencies' => 'oojs-ui',
+       ),
+       'mediawiki.htmlform.ooui.styles' => array(
+               'styles' => 'resources/src/mediawiki/mediawiki.htmlform.ooui.css',
+               'position' => 'top',
+       ),
        'mediawiki.icon' => array(
                'styles' => 'resources/src/mediawiki/mediawiki.icon.less',
        ),
@@ -981,10 +1004,13 @@ return array(
        ),
        'mediawiki.notification' => array(
                'styles' => array(
-                       'resources/src/mediawiki/mediawiki.notification.css',
+                       'resources/src/mediawiki/mediawiki.notification.common.css',
                        'resources/src/mediawiki/mediawiki.notification.hideForPrint.css'
                                => array( 'media' => 'print' ),
                ),
+               'skinStyles' => array(
+                       'default' => 'resources/src/mediawiki/mediawiki.notification.css',
+               ),
                'scripts' => 'resources/src/mediawiki/mediawiki.notification.js',
                'dependencies' => 'mediawiki.page.startup',
                'targets' => array( 'desktop', 'mobile' ),
@@ -1013,6 +1039,7 @@ return array(
                ),
        ),
        'mediawiki.sectionAnchor' => array(
+               'position' => 'top',
                // Back-compat to hide it on cached pages (T18691; Ie9e334e973; 2015-03-17)
                'styles' => 'resources/src/mediawiki/mediawiki.sectionAnchor.css',
                'targets' => array( 'desktop', 'mobile' ),
@@ -1027,7 +1054,7 @@ return array(
        ),
        'mediawiki.toc' => array(
                'scripts' => 'resources/src/mediawiki/mediawiki.toc.js',
-               'dependencies' => 'jquery.cookie',
+               'dependencies' => 'mediawiki.cookie',
                'messages' => array( 'showtoc', 'hidetoc' ),
                'targets' => array( 'desktop', 'mobile' ),
        ),
@@ -1039,7 +1066,7 @@ return array(
        'mediawiki.user' => array(
                'scripts' => 'resources/src/mediawiki/mediawiki.user.js',
                'dependencies' => array(
-                       'jquery.cookie',
+                       'mediawiki.cookie',
                        'mediawiki.api',
                        'user.options',
                        'user.tokens',
@@ -1088,15 +1115,15 @@ return array(
                'position' => 'top',
        ),
        'mediawiki.action.edit.styles' => array(
-               'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.styles.css',
                'position' => 'top',
+               'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.styles.css',
        ),
        'mediawiki.action.edit.collapsibleFooter' => array(
                'scripts' => 'resources/src/mediawiki.action/mediawiki.action.edit.collapsibleFooter.js',
                'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.collapsibleFooter.css',
                'dependencies' => array(
                        'jquery.makeCollapsible',
-                       'jquery.cookie',
+                       'mediawiki.cookie',
                        'mediawiki.icon',
                ),
        ),
@@ -1135,18 +1162,18 @@ return array(
                ),
        ),
        'mediawiki.action.history' => array(
+               'position' => 'top',
                'scripts' => 'resources/src/mediawiki.action/mediawiki.action.history.js',
                'styles' => 'resources/src/mediawiki.action/mediawiki.action.history.css',
-               'group' => 'mediawiki.action.history',
        ),
        'mediawiki.action.history.diff' => array(
+               'position' => 'top',
                'styles' => array(
                        'resources/src/mediawiki.action/mediawiki.action.history.diff.css',
                        'resources/src/mediawiki.action/mediawiki.action.history.diff.print.css' => array(
                                'media' => 'print'
                        ),
                ),
-               'group' => 'mediawiki.action.history',
                'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.action.view.dblClickEdit' => array(
@@ -1166,6 +1193,7 @@ return array(
                ),
        ),
        'mediawiki.action.view.categoryPage.styles' => array(
+               'position' => 'top',
                'styles' => 'resources/src/mediawiki.action/mediawiki.action.view.categoryPage.less',
                'targets' => array( 'desktop', 'mobile' )
        ),
@@ -1191,8 +1219,8 @@ return array(
                'position' => 'top',
        ),
        'mediawiki.action.view.redirectPage' => array(
-               'styles' => 'resources/src/mediawiki.action/mediawiki.action.view.redirectPage.css',
                'position' => 'top',
+               'styles' => 'resources/src/mediawiki.action/mediawiki.action.view.redirectPage.css',
        ),
        'mediawiki.action.view.rightClickEdit' => array(
                'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.rightClickEdit.js',
@@ -1265,6 +1293,8 @@ return array(
        ),
 
        'mediawiki.jqueryMsg' => array(
+               // Add data for mediawiki.jqueryMsg, such as allowed tags
+               'class' => 'ResourceLoaderJqueryMsgModule',
                'scripts' => 'resources/src/mediawiki/mediawiki.jqueryMsg.js',
                'dependencies' => array(
                        'mediawiki.util',
@@ -1370,6 +1400,7 @@ return array(
        /* MediaWiki Special pages */
 
        'mediawiki.special' => array(
+               'position' => 'top',
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.js',
                'styles' => 'resources/src/mediawiki.special/mediawiki.special.css',
        ),
@@ -1388,19 +1419,22 @@ return array(
                ),
        ),
        'mediawiki.special.changeslist' => array(
+               'position' => 'top',
                'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.css',
        ),
        'mediawiki.special.changeslist.legend' => array(
+               'position' => 'top',
                'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.legend.css',
        ),
        'mediawiki.special.changeslist.legend.js' => array(
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.legend.js',
                'dependencies' => array(
                        'jquery.makeCollapsible',
-                       'jquery.cookie',
+                       'mediawiki.cookie',
                ),
        ),
        'mediawiki.special.changeslist.enhanced' => array(
+               'position' => 'top',
                'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.enhanced.css',
        ),
        'mediawiki.special.edittags' => array(
@@ -1428,6 +1462,7 @@ return array(
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.pageLanguage.js',
        ),
        'mediawiki.special.pagesWithProp' => array(
+               'position' => 'top',
                'styles' => 'resources/src/mediawiki.special/mediawiki.special.pagesWithProp.css',
        ),
        'mediawiki.special.preferences' => array(
@@ -1450,6 +1485,7 @@ return array(
                'position' => 'top',
        ),
        'mediawiki.special.search' => array(
+               'position' => 'top',
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.search.js',
                'styles' => 'resources/src/mediawiki.special/mediawiki.special.search.css',
                'messages' => array(
@@ -1494,16 +1530,16 @@ return array(
                'position' => 'top',
        ),
        'mediawiki.special.userlogin.signup.styles' => array(
+               'position' => 'top',
                'styles' => array(
                        'resources/src/mediawiki.special/mediawiki.special.userlogin.signup.css',
                ),
-               'position' => 'top',
        ),
        'mediawiki.special.userlogin.login.styles' => array(
+               'position' => 'top',
                'styles' => array(
                        'resources/src/mediawiki.special/mediawiki.special.userlogin.login.css',
                ),
-               'position' => 'top',
        ),
        'mediawiki.special.userlogin.common.js' => array(
                'scripts' => array(
@@ -1564,8 +1600,8 @@ return array(
 
        /* MediaWiki Installer */
 
+       // Used in the web installer. Test it after modifying this definition!
        'mediawiki.legacy.config' => array(
-               // Used in the web installer. Test it after modifying this definition!
                // These files are not actually loaded via ResourceLoader, so dependencies etc. won't work.
                'scripts' => 'mw-config/config.js',
                'styles' => 'mw-config/config.css',
@@ -1582,6 +1618,7 @@ return array(
                'position' => 'top',
        ),
        'mediawiki.legacy.commonPrint' => array(
+               'position' => 'top',
                'styles' => array(
                        'resources/src/mediawiki.legacy/commonPrint.css' => array( 'media' => 'print' )
                ),
@@ -1591,13 +1628,15 @@ return array(
                'dependencies' => 'jquery.byteLimit',
                'messages' => array( 'protect-unchain-permissions' )
        ),
+       // Used in the web installer. Test it after modifying this definition!
        'mediawiki.legacy.shared' => array(
-               // Used in the web installer. Test it after modifying this definition!
+               'position' => 'top',
                'styles' => array(
                        'resources/src/mediawiki.legacy/shared.css' => array( 'media' => 'screen' )
                ),
        ),
        'mediawiki.legacy.oldshared' => array(
+               'position' => 'top',
                'styles' => array(
                        'resources/src/mediawiki.legacy/oldshared.css' => array( 'media' => 'screen' )
                ),
@@ -1611,78 +1650,97 @@ return array(
        /* MediaWiki UI */
 
        'mediawiki.ui' => array(
+               'position' => 'top',
                'skinStyles' => array(
                        'default' => array(
                                'resources/src/mediawiki.ui/default.less',
                        ),
                ),
-               'position' => 'top',
                'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.ui.checkbox' => array(
+               'position' => 'top',
                'skinStyles' => array(
                        'default' => array(
                                'resources/src/mediawiki.ui/components/checkbox.less',
                        ),
                ),
-               'position' => 'top',
                'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.ui.radio' => array(
+               'position' => 'top',
                'skinStyles' => array(
                        'default' => array(
                                'resources/src/mediawiki.ui/components/radio.less',
                        ),
                ),
-               'position' => 'top',
                'targets' => array( 'desktop', 'mobile' ),
        ),
        // Lightweight module for anchor styles
        'mediawiki.ui.anchor' => array(
+               'position' => 'top',
                'skinStyles' => array(
                        'default' => array(
                                'resources/src/mediawiki.ui/components/anchors.less',
                        ),
                ),
-               'position' => 'top',
                'targets' => array( 'desktop', 'mobile' ),
        ),
        // Lightweight module for button styles
        'mediawiki.ui.button' => array(
+               'position' => 'top',
                'skinStyles' => array(
                        'default' => array(
                                'resources/src/mediawiki.ui/components/buttons.less',
                        ),
                ),
-               'position' => 'top',
                'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.ui.input' => array(
+               'position' => 'top',
                'skinStyles' => array(
                        'default' => array(
                                'resources/src/mediawiki.ui/components/inputs.less',
                        ),
                ),
-               'position' => 'top',
                'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.ui.icon' => array(
+               'position' => 'top',
                'skinStyles' => array(
                        'default' => array(
                                'resources/src/mediawiki.ui/components/icons.less',
                        ),
                ),
-               'position' => 'top',
                'targets' => array( 'desktop', 'mobile' ),
        ),
        // Lightweight module for text styles
        'mediawiki.ui.text' => array(
+               'position' => 'top',
                'skinStyles' => array(
                        'default' => array(
                                'resources/src/mediawiki.ui/components/text.less',
                        ),
                ),
-               'position' => 'top',
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
+
+       'mediawiki.widgets' => array(
+               'scripts' => array(
+                       'resources/src/mediawiki.widgets/mw.widgets.js',
+                       'resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js',
+               ),
+               'skinStyles' => array(
+                       'default' => 'resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.css',
+               ),
+               'dependencies' => array(
+                       'mediawiki.Title',
+                       'mediawiki.api',
+                       'oojs-ui',
+               ),
+               'messages' => array(
+                       // …
+               ),
                'targets' => array( 'desktop', 'mobile' ),
        ),
 
@@ -1719,178 +1777,5 @@ return array(
        /* 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
-       'oojs-ui' => array(
-               'scripts' => array(
-                       'resources/lib/oojs-ui/oojs-ui.js',
-               ),
-               'skinScripts' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki.js',
-               ),
-               'dependencies' => array(
-                       'es5-shim',
-                       'oojs',
-                       'oojs-ui.styles',
-                       'oojs-ui.styles.icons',
-                       'oojs-ui.styles.indicators',
-                       'oojs-ui.styles.textures',
-               ),
-               'messages' => array(
-                       'ooui-dialog-message-accept',
-                       'ooui-dialog-message-reject',
-                       'ooui-dialog-process-continue',
-                       'ooui-dialog-process-dismiss',
-                       'ooui-dialog-process-error',
-                       'ooui-dialog-process-retry',
-                       'ooui-outline-control-move-down',
-                       'ooui-outline-control-move-up',
-                       'ooui-outline-control-remove',
-                       'ooui-toolbar-more',
-                       'ooui-toolgroup-collapse',
-                       'ooui-toolgroup-expand',
-               ),
-               'targets' => array( 'desktop', 'mobile' ),
-       ),
-
-       'oojs-ui.styles' => array(
-               'position' => 'top',
-               'styles' => 'resources/src/oojs-ui-local.css', // HACK, see inside the file
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css',
-               ),
-               'targets' => array( 'desktop', 'mobile' ),
-       ),
-
-       'oojs-ui.styles.icons' => array(
-               'class' => 'ResourceLoaderImageModule',
-               'position' => 'top',
-               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
-               'data' => 'icons.json',
-               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
-               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
-       ),
-       'oojs-ui.styles.indicators' => array(
-               'class' => 'ResourceLoaderImageModule',
-               'position' => 'top',
-               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
-               'data' => 'indicators.json',
-       ),
-       'oojs-ui.styles.textures' => array(
-               'class' => 'ResourceLoaderImageModule',
-               'position' => 'top',
-               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
-               'data' => 'textures.json',
-       ),
-       'oojs-ui.styles.icons-alerts' => array(
-               'class' => 'ResourceLoaderImageModule',
-               'position' => 'top',
-               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
-               'data' => 'icons-alerts.json',
-               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
-               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
-       ),
-       'oojs-ui.styles.icons-content' => array(
-               'class' => 'ResourceLoaderImageModule',
-               'position' => 'top',
-               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
-               'data' => 'icons-content.json',
-               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
-               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
-       ),
-       'oojs-ui.styles.icons-editing-advanced' => array(
-               'class' => 'ResourceLoaderImageModule',
-               'position' => 'top',
-               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
-               'data' => 'icons-editing-advanced.json',
-               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
-               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
-       ),
-       'oojs-ui.styles.icons-editing-core' => array(
-               'class' => 'ResourceLoaderImageModule',
-               'position' => 'top',
-               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
-               'data' => 'icons-editing-core.json',
-               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
-               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
-       ),
-       'oojs-ui.styles.icons-editing-list' => array(
-               'class' => 'ResourceLoaderImageModule',
-               'position' => 'top',
-               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
-               'data' => 'icons-editing-list.json',
-               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
-               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
-       ),
-       'oojs-ui.styles.icons-editing-styling' => array(
-               'class' => 'ResourceLoaderImageModule',
-               'position' => 'top',
-               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
-               'data' => 'icons-editing-styling.json',
-               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
-               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
-       ),
-       'oojs-ui.styles.icons-interactions' => array(
-               'class' => 'ResourceLoaderImageModule',
-               'position' => 'top',
-               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
-               'data' => 'icons-interactions.json',
-               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
-               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
-       ),
-       'oojs-ui.styles.icons-layout' => array(
-               'class' => 'ResourceLoaderImageModule',
-               'position' => 'top',
-               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
-               'data' => 'icons-layout.json',
-               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
-               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
-       ),
-       'oojs-ui.styles.icons-location' => array(
-               'class' => 'ResourceLoaderImageModule',
-               'position' => 'top',
-               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
-               'data' => 'icons-location.json',
-               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
-               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
-       ),
-       'oojs-ui.styles.icons-media' => array(
-               'class' => 'ResourceLoaderImageModule',
-               'position' => 'top',
-               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
-               'data' => 'icons-media.json',
-               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
-               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
-       ),
-       'oojs-ui.styles.icons-moderation' => array(
-               'class' => 'ResourceLoaderImageModule',
-               'position' => 'top',
-               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
-               'data' => 'icons-moderation.json',
-               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
-               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
-       ),
-       'oojs-ui.styles.icons-movement' => array(
-               'class' => 'ResourceLoaderImageModule',
-               'position' => 'top',
-               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
-               'data' => 'icons-movement.json',
-               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
-               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
-       ),
-       'oojs-ui.styles.icons-user' => array(
-               'class' => 'ResourceLoaderImageModule',
-               'position' => 'top',
-               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
-               'data' => 'icons-user.json',
-               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
-               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
-       ),
-       'oojs-ui.styles.icons-wikimedia' => array(
-               'class' => 'ResourceLoaderImageModule',
-               'position' => 'top',
-               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
-               'data' => 'icons-wikimedia.json',
-               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
-               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
-       ),
-
+       // @see ResourcesOOUI.php
 );
diff --git a/resources/ResourcesOOUI.php b/resources/ResourcesOOUI.php
new file mode 100644 (file)
index 0000000..37203fb
--- /dev/null
@@ -0,0 +1,122 @@
+<?php
+/**
+ * Definition of OOjs UI ResourceLoader modules.
+ *
+ * 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
+ */
+
+if ( !defined( 'MEDIAWIKI' ) ) {
+       die( 'Not an entry point.' );
+}
+
+// WARNING: OOjs-UI is NOT TESTED with older browsers and is likely to break
+// if loaded in browsers that don't support ES5
+return call_user_func( function () {
+       // Core default themes
+       $themes = array( 'default' => 'mediawiki' );
+       $themes += ExtensionRegistry::getInstance()->getAttribute( 'SkinOOUIThemes' );
+       $modules = array();
+
+       $modules['oojs-ui'] = array(
+               'scripts' => array(
+                       'resources/lib/oojs-ui/oojs-ui.js',
+               ),
+               'skinScripts' => array_combine(
+                       array_keys( $themes ),
+                       array_map( function ( $theme ) {
+                               // TODO Allow extensions to specify this path somehow
+                               return "resources/lib/oojs-ui/oojs-ui-$theme.js";
+                       }, array_values( $themes ) )
+               ),
+               'dependencies' => array(
+                       'es5-shim',
+                       'oojs',
+                       'oojs-ui.styles',
+                       'oojs-ui.styles.icons',
+                       'oojs-ui.styles.indicators',
+                       'oojs-ui.styles.textures',
+               ),
+               'messages' => array(
+                       'ooui-dialog-message-accept',
+                       'ooui-dialog-message-reject',
+                       'ooui-dialog-process-continue',
+                       'ooui-dialog-process-dismiss',
+                       'ooui-dialog-process-error',
+                       'ooui-dialog-process-retry',
+                       'ooui-outline-control-move-down',
+                       'ooui-outline-control-move-up',
+                       'ooui-outline-control-remove',
+                       'ooui-toolbar-more',
+                       'ooui-toolgroup-collapse',
+                       'ooui-toolgroup-expand',
+               ),
+               'targets' => array( 'desktop', 'mobile' ),
+       );
+       $modules['oojs-ui.styles'] = array(
+               'position' => 'top',
+               'styles' => 'resources/src/oojs-ui-local.css', // HACK, see inside the file
+               'skinStyles' => array_combine(
+                       array_keys( $themes ),
+                       array_map( function ( $theme ) {
+                               // TODO Allow extensions to specify this path somehow
+                               return "resources/lib/oojs-ui/oojs-ui-$theme-noimages.css";
+                       }, array_values( $themes ) )
+               ),
+               'targets' => array( 'desktop', 'mobile' ),
+       );
+
+       $imageSets = array(
+               // Comments for greppability
+               'icons', // oojs-ui.styles.icons
+               'indicators', // oojs-ui.styles.indicators
+               'textures', // oojs-ui.styles.textures
+               'icons-alerts', // oojs-ui.styles.icons-alerts
+               'icons-content', // oojs-ui.styles.icons-content
+               'icons-editing-advanced', // oojs-ui.styles.icons-editing-advanced
+               'icons-editing-core', // oojs-ui.styles.icons-editing-core
+               'icons-editing-list', // oojs-ui.styles.icons-editing-list
+               'icons-editing-styling', // oojs-ui.styles.icons-editing-styling
+               'icons-interactions', // oojs-ui.styles.icons-interactions
+               'icons-layout', // oojs-ui.styles.icons-layout
+               'icons-location', // oojs-ui.styles.icons-location
+               'icons-media', // oojs-ui.styles.icons-media
+               'icons-moderation', // oojs-ui.styles.icons-moderation
+               'icons-movement', // oojs-ui.styles.icons-movement
+               'icons-user', // oojs-ui.styles.icons-user
+               'icons-wikimedia', // oojs-ui.styles.icons-wikimedia
+       );
+       $rootPath = 'resources/lib/oojs-ui/themes';
+
+       foreach ( $imageSets as $name ) {
+               $module = array(
+                       'position' => 'top',
+                       'class' => 'ResourceLoaderOOUIImageModule',
+                       'name' => $name,
+                       'rootPath' => $rootPath,
+               );
+
+               if ( substr( $name, 0, 5 ) === 'icons' ) {
+                       $module['selectorWithoutVariant'] = '.oo-ui-icon-{name}, .mw-ui-icon-{name}:before';
+                       $module['selectorWithVariant'] = '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:before, .mw-ui-hovericon:hover .mw-ui-icon-{name}-{variant}-hover:before, .mw-ui-hovericon.mw-ui-icon-{name}-{variant}-hover:hover:before';
+               }
+
+               $modules[ "oojs-ui.styles.$name" ] = $module;
+       }
+
+       return $modules;
+} );
index 4595994..85f51e2 100644 (file)
@@ -1,17 +1,20 @@
 /*!
  * https://github.com/es-shims/es5-shim
- * @license es5-shim Copyright 2009-2014 by contributors, MIT License
+ * @license es5-shim Copyright 2009-2015 by contributors, MIT License
  * see https://github.com/es-shims/es5-shim/blob/master/LICENSE
  */
 
 // vim: ts=4 sts=4 sw=4 expandtab
 
-//Add semicolon to prevent IIFE from being passed as argument to concated code.
+// Add semicolon to prevent IIFE from being passed as argument to concatenated code.
 ;
 
 // UMD (Universal Module Definition)
 // see https://github.com/umdjs/umd/blob/master/returnExports.js
 (function (root, factory) {
+    'use strict';
+
+    /*global define, exports, module */
     if (typeof define === 'function' && define.amd) {
         // AMD. Register as an anonymous module.
         define(factory);
@@ -42,140 +45,144 @@ var ObjectPrototype = Object.prototype;
 var FunctionPrototype = Function.prototype;
 var StringPrototype = String.prototype;
 var NumberPrototype = Number.prototype;
-var _Array_slice_ = ArrayPrototype.slice;
+var array_slice = ArrayPrototype.slice;
 var array_splice = ArrayPrototype.splice;
 var array_push = ArrayPrototype.push;
 var array_unshift = ArrayPrototype.unshift;
+var array_concat = ArrayPrototype.concat;
 var call = FunctionPrototype.call;
 
-// Having a toString local variable name breaks in Opera so use _toString.
-var _toString = ObjectPrototype.toString;
+// Having a toString local variable name breaks in Opera so use to_string.
+var to_string = ObjectPrototype.toString;
 
-var isFunction = function (val) {
-    return ObjectPrototype.toString.call(val) === '[object Function]';
-};
-var isRegex = function (val) {
-    return ObjectPrototype.toString.call(val) === '[object RegExp]';
-};
-var isArray = function isArray(obj) {
-    return _toString.call(obj) === "[object Array]";
-};
-var isString = function isString(obj) {
-    return _toString.call(obj) === "[object String]";
+var isArray = Array.isArray || function isArray(obj) {
+    return to_string.call(obj) === '[object Array]';
 };
+
+var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
+var isCallable; /* inlined from https://npmjs.com/is-callable */ var fnToStr = Function.prototype.toString, tryFunctionObject = function tryFunctionObject(value) { try { fnToStr.call(value); return true; } catch (e) { return false; } }, fnClass = '[object Function]', genClass = '[object GeneratorFunction]'; isCallable = function isCallable(value) { if (typeof value !== 'function') { return false; } if (hasToStringTag) { return tryFunctionObject(value); } var strClass = to_string.call(value); return strClass === fnClass || strClass === genClass; };
+var isRegex; /* inlined from https://npmjs.com/is-regex */ var regexExec = RegExp.prototype.exec, tryRegexExec = function tryRegexExec(value) { try { regexExec.call(value); return true; } catch (e) { return false; } }, regexClass = '[object RegExp]'; isRegex = function isRegex(value) { if (typeof value !== 'object') { return false; } return hasToStringTag ? tryRegexExec(value) : to_string.call(value) === regexClass; };
+var isString; /* inlined from https://npmjs.com/is-string */ var strValue = String.prototype.valueOf, tryStringObject = function tryStringObject(value) { try { strValue.call(value); return true; } catch (e) { return false; } }, stringClass = '[object String]'; isString = function isString(value) { if (typeof value === 'string') { return true; } if (typeof value !== 'object') { return false; } return hasToStringTag ? tryStringObject(value) : to_string.call(value) === stringClass; };
+
 var isArguments = function isArguments(value) {
-    var str = _toString.call(value);
+    var str = to_string.call(value);
     var isArgs = str === '[object Arguments]';
     if (!isArgs) {
-        isArgs = !isArray(str)
-            && value !== null
-            && typeof value === 'object'
-            && typeof value.length === 'number'
-            && value.length >= 0
-            && isFunction(value.callee);
+        isArgs = !isArray(value) &&
+          value !== null &&
+          typeof value === 'object' &&
+          typeof value.length === 'number' &&
+          value.length >= 0 &&
+          isCallable(value.callee);
     }
     return isArgs;
 };
 
-var supportsDescriptors = Object.defineProperty && (function () {
-    try {
-        Object.defineProperty({}, 'x', {});
-        return true;
-    } catch (e) { /* this is ES3 */
-        return false;
-    }
-}());
-
-// Define configurable, writable and non-enumerable props
-// if they don't exist.
-var defineProperty;
-if (supportsDescriptors) {
-    defineProperty = function (object, name, method, forceAssign) {
-        if (!forceAssign && (name in object)) { return; }
-        Object.defineProperty(object, name, {
-            configurable: true,
-            enumerable: false,
-            writable: true,
-            value: method
-        });
-    };
-} else {
-    defineProperty = function (object, name, method, forceAssign) {
-        if (!forceAssign && (name in object)) { return; }
-        object[name] = method;
-    };
-}
-var defineProperties = function (object, map, forceAssign) {
-    for (var name in map) {
-        if (ObjectPrototype.hasOwnProperty.call(map, name)) {
-          defineProperty(object, name, map[name], forceAssign);
-        }
-    }
-};
+/* inlined from http://npmjs.com/define-properties */
+var defineProperties = (function (has) {
+  var supportsDescriptors = Object.defineProperty && (function () {
+      try {
+          var obj = {};
+          Object.defineProperty(obj, 'x', { enumerable: false, value: obj });
+          for (var _ in obj) { return false; }
+          return obj.x === obj;
+      } catch (e) { /* this is ES3 */
+          return false;
+      }
+  }());
+
+  // Define configurable, writable and non-enumerable props
+  // if they don't exist.
+  var defineProperty;
+  if (supportsDescriptors) {
+      defineProperty = function (object, name, method, forceAssign) {
+          if (!forceAssign && (name in object)) { return; }
+          Object.defineProperty(object, name, {
+              configurable: true,
+              enumerable: false,
+              writable: true,
+              value: method
+          });
+      };
+  } else {
+      defineProperty = function (object, name, method, forceAssign) {
+          if (!forceAssign && (name in object)) { return; }
+          object[name] = method;
+      };
+  }
+  return function defineProperties(object, map, forceAssign) {
+      for (var name in map) {
+          if (has.call(map, name)) {
+            defineProperty(object, name, map[name], forceAssign);
+          }
+      }
+  };
+}(ObjectPrototype.hasOwnProperty));
 
 //
 // Util
 // ======
 //
 
-// ES5 9.4
-// http://es5.github.com/#x9.4
-// http://jsperf.com/to-integer
-
-function toInteger(n) {
-    n = +n;
-    if (n !== n) { // isNaN
-        n = 0;
-    } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) {
-        n = (n > 0 || -1) * Math.floor(Math.abs(n));
-    }
-    return n;
-}
-
-function isPrimitive(input) {
+/* replaceable with https://npmjs.com/package/es-abstract /helpers/isPrimitive */
+var isPrimitive = function isPrimitive(input) {
     var type = typeof input;
-    return (
-        input === null ||
-        type === "undefined" ||
-        type === "boolean" ||
-        type === "number" ||
-        type === "string"
-    );
-}
+    return input === null || (type !== 'object' && type !== 'function');
+};
 
-function toPrimitive(input) {
-    var val, valueOf, toStr;
-    if (isPrimitive(input)) {
-        return input;
-    }
-    valueOf = input.valueOf;
-    if (isFunction(valueOf)) {
-        val = valueOf.call(input);
-        if (isPrimitive(val)) {
-            return val;
+var ES = {
+    // ES5 9.4
+    // http://es5.github.com/#x9.4
+    // http://jsperf.com/to-integer
+    /* replaceable with https://npmjs.com/package/es-abstract ES5.ToInteger */
+    ToInteger: function ToInteger(num) {
+        var n = +num;
+        if (n !== n) { // isNaN
+            n = 0;
+        } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) {
+            n = (n > 0 || -1) * Math.floor(Math.abs(n));
         }
-    }
-    toStr = input.toString;
-    if (isFunction(toStr)) {
-        val = toStr.call(input);
-        if (isPrimitive(val)) {
-            return val;
+        return n;
+    },
+
+    /* replaceable with https://npmjs.com/package/es-abstract ES5.ToPrimitive */
+    ToPrimitive: function ToPrimitive(input) {
+        var val, valueOf, toStr;
+        if (isPrimitive(input)) {
+            return input;
         }
-    }
-    throw new TypeError();
-}
+        valueOf = input.valueOf;
+        if (isCallable(valueOf)) {
+            val = valueOf.call(input);
+            if (isPrimitive(val)) {
+                return val;
+            }
+        }
+        toStr = input.toString;
+        if (isCallable(toStr)) {
+            val = toStr.call(input);
+            if (isPrimitive(val)) {
+                return val;
+            }
+        }
+        throw new TypeError();
+    },
+
+    // ES5 9.9
+    // http://es5.github.com/#x9.9
+    /* replaceable with https://npmjs.com/package/es-abstract ES5.ToObject */
+    ToObject: function (o) {
+        /*jshint eqnull: true */
+        if (o == null) { // this matches both null and undefined
+            throw new TypeError("can't convert " + o + ' to object');
+        }
+        return Object(o);
+    },
 
-// ES5 9.9
-// http://es5.github.com/#x9.9
-var toObject = function (o) {
-    if (o == null) { // this matches both null and undefined
-        throw new TypeError("can't convert " + o + " to object");
+    /* replaceable with https://npmjs.com/package/es-abstract ES5.ToUint32 */
+    ToUint32: function ToUint32(x) {
+        return x >>> 0;
     }
-    return Object(o);
-};
-
-var ToUint32 = function ToUint32(x) {
-    return x >>> 0;
 };
 
 //
@@ -186,20 +193,20 @@ var ToUint32 = function ToUint32(x) {
 // ES-5 15.3.4.5
 // http://es5.github.com/#x15.3.4.5
 
-function Empty() {}
+var Empty = function Empty() {};
 
 defineProperties(FunctionPrototype, {
     bind: function bind(that) { // .length is 1
         // 1. Let Target be the this value.
         var target = this;
         // 2. If IsCallable(Target) is false, throw a TypeError exception.
-        if (!isFunction(target)) {
-            throw new TypeError("Function.prototype.bind called on incompatible " + target);
+        if (!isCallable(target)) {
+            throw new TypeError('Function.prototype.bind called on incompatible ' + target);
         }
         // 3. Let A be a new (possibly empty) internal list of all of the
         //   argument values provided after thisArg (arg1, arg2 etc), in order.
         // XXX slicedArgs will stand in for "A" if used
-        var args = _Array_slice_.call(arguments, 1); // for normal call
+        var args = array_slice.call(arguments, 1); // for normal call
         // 4. Let F be a new native ECMAScript object.
         // 11. Set the [[Prototype]] internal property of F to the standard
         //   built-in Function prototype object as specified in 15.3.3.1.
@@ -209,6 +216,7 @@ defineProperties(FunctionPrototype, {
         //   15.3.4.5.2.
         // 14. Set the [[HasInstance]] internal property of F as described in
         //   15.3.4.5.3.
+        var bound;
         var binder = function () {
 
             if (this instanceof bound) {
@@ -230,7 +238,7 @@ defineProperties(FunctionPrototype, {
 
                 var result = target.apply(
                     this,
-                    args.concat(_Array_slice_.call(arguments))
+                    array_concat.call(args, array_slice.call(arguments))
                 );
                 if (Object(result) === result) {
                     return result;
@@ -259,7 +267,7 @@ defineProperties(FunctionPrototype, {
                 // equiv: target.call(this, ...boundArgs, ...args)
                 return target.apply(
                     that,
-                    args.concat(_Array_slice_.call(arguments))
+                    array_concat.call(args, array_slice.call(arguments))
                 );
 
             }
@@ -278,7 +286,7 @@ defineProperties(FunctionPrototype, {
         //   specified in 15.3.5.1.
         var boundArgs = [];
         for (var i = 0; i < boundLength; i++) {
-            boundArgs.push("$" + i);
+            boundArgs.push('$' + i);
         }
 
         // XXX Build a dynamic function with desired amount of arguments is the only
@@ -287,7 +295,7 @@ defineProperties(FunctionPrototype, {
         // for ex.) all use of eval or Function costructor throws an exception.
         // However in all of these environments Function.prototype.bind exists
         // and so this code will never be executed.
-        var bound = Function("binder", "return function (" + boundArgs.join(",") + "){return binder.apply(this,arguments)}")(binder);
+        bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this, arguments); }')(binder);
 
         if (target.prototype) {
             Empty.prototype = target.prototype;
@@ -325,19 +333,6 @@ defineProperties(FunctionPrototype, {
 // us it in defining shortcuts.
 var owns = call.bind(ObjectPrototype.hasOwnProperty);
 
-// If JS engine supports accessors creating shortcuts.
-var defineGetter;
-var defineSetter;
-var lookupGetter;
-var lookupSetter;
-var supportsAccessors;
-if ((supportsAccessors = owns(ObjectPrototype, "__defineGetter__"))) {
-    defineGetter = call.bind(ObjectPrototype.__defineGetter__);
-    defineSetter = call.bind(ObjectPrototype.__defineSetter__);
-    lookupGetter = call.bind(ObjectPrototype.__lookupGetter__);
-    lookupSetter = call.bind(ObjectPrototype.__lookupSetter__);
-}
-
 //
 // Array
 // =====
@@ -359,7 +354,7 @@ defineProperties(ArrayPrototype, {
             return array_splice.apply(this, arguments);
         }
     }
-}, spliceNoopReturnsEmptyArray);
+}, !spliceNoopReturnsEmptyArray);
 
 var spliceWorksWithEmptyObject = (function () {
     var obj = {};
@@ -370,13 +365,13 @@ defineProperties(ArrayPrototype, {
     splice: function splice(start, deleteCount) {
         if (arguments.length === 0) { return []; }
         var args = arguments;
-        this.length = Math.max(toInteger(this.length), 0);
+        this.length = Math.max(ES.ToInteger(this.length), 0);
         if (arguments.length > 0 && typeof deleteCount !== 'number') {
-            args = _Array_slice_.call(arguments);
+            args = array_slice.call(arguments);
             if (args.length < 2) {
                 args.push(this.length - start);
             } else {
-                args[1] = toInteger(deleteCount);
+                args[1] = ES.ToInteger(deleteCount);
             }
         }
         return array_splice.apply(this, args);
@@ -419,8 +414,8 @@ defineProperties(Array, { isArray: isArray });
 
 // Check failure of by-index access of string characters (IE < 9)
 // and failure of `0 in boxedString` (Rhino)
-var boxedString = Object("a");
-var splitString = boxedString[0] !== "a" || !(0 in boxedString);
+var boxedString = Object('a');
+var splitString = boxedString[0] !== 'a' || !(0 in boxedString);
 
 var properlyBoxesContext = function properlyBoxed(method) {
     // Check node 0.6.21 bug where third parameter is not boxed
@@ -433,6 +428,7 @@ var properlyBoxesContext = function properlyBoxed(method) {
 
         method.call([1], function () {
             'use strict';
+
             properlyBoxesStrict = typeof this === 'string';
         }, 'x');
     }
@@ -440,24 +436,30 @@ var properlyBoxesContext = function properlyBoxed(method) {
 };
 
 defineProperties(ArrayPrototype, {
-    forEach: function forEach(fun /*, thisp*/) {
-        var object = toObject(this),
-            self = splitString && isString(this) ? this.split('') : object,
-            thisp = arguments[1],
-            i = -1,
-            length = self.length >>> 0;
+    forEach: function forEach(callbackfn /*, thisArg*/) {
+        var object = ES.ToObject(this);
+        var self = splitString && isString(this) ? this.split('') : object;
+        var i = -1;
+        var length = self.length >>> 0;
+        var T;
+        if (arguments.length > 1) {
+          T = arguments[1];
+        }
 
         // If no callback function or if callback is not a callable function
-        if (!isFunction(fun)) {
-            throw new TypeError(); // TODO message
+        if (!isCallable(callbackfn)) {
+            throw new TypeError('Array.prototype.forEach callback must be a function');
         }
 
         while (++i < length) {
             if (i in self) {
                 // Invoke the callback function with call, passing arguments:
                 // context, property value, property key, thisArg object
-                // context
-                fun.call(thisp, self[i], i, object);
+                if (typeof T !== 'undefined') {
+                    callbackfn.call(T, self[i], i, object);
+                } else {
+                    callbackfn(self[i], i, object);
+                }
             }
         }
     }
@@ -467,21 +469,28 @@ defineProperties(ArrayPrototype, {
 // http://es5.github.com/#x15.4.4.19
 // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map
 defineProperties(ArrayPrototype, {
-    map: function map(fun /*, thisp*/) {
-        var object = toObject(this),
-            self = splitString && isString(this) ? this.split('') : object,
-            length = self.length >>> 0,
-            result = Array(length),
-            thisp = arguments[1];
+    map: function map(callbackfn/*, thisArg*/) {
+        var object = ES.ToObject(this);
+        var self = splitString && isString(this) ? this.split('') : object;
+        var length = self.length >>> 0;
+        var result = Array(length);
+        var T;
+        if (arguments.length > 1) {
+            T = arguments[1];
+        }
 
         // If no callback function or if callback is not a callable function
-        if (!isFunction(fun)) {
-            throw new TypeError(fun + " is not a function");
+        if (!isCallable(callbackfn)) {
+            throw new TypeError('Array.prototype.map callback must be a function');
         }
 
         for (var i = 0; i < length; i++) {
             if (i in self) {
-                result[i] = fun.call(thisp, self[i], i, object);
+                if (typeof T !== 'undefined') {
+                    result[i] = callbackfn.call(T, self[i], i, object);
+                } else {
+                    result[i] = callbackfn(self[i], i, object);
+                }
             }
         }
         return result;
@@ -492,23 +501,26 @@ defineProperties(ArrayPrototype, {
 // http://es5.github.com/#x15.4.4.20
 // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter
 defineProperties(ArrayPrototype, {
-    filter: function filter(fun /*, thisp */) {
-        var object = toObject(this),
-            self = splitString && isString(this) ? this.split('') : object,
-            length = self.length >>> 0,
-            result = [],
-            value,
-            thisp = arguments[1];
+    filter: function filter(callbackfn /*, thisArg*/) {
+        var object = ES.ToObject(this);
+        var self = splitString && isString(this) ? this.split('') : object;
+        var length = self.length >>> 0;
+        var result = [];
+        var value;
+        var T;
+        if (arguments.length > 1) {
+            T = arguments[1];
+        }
 
         // If no callback function or if callback is not a callable function
-        if (!isFunction(fun)) {
-            throw new TypeError(fun + " is not a function");
+        if (!isCallable(callbackfn)) {
+            throw new TypeError('Array.prototype.filter callback must be a function');
         }
 
         for (var i = 0; i < length; i++) {
             if (i in self) {
                 value = self[i];
-                if (fun.call(thisp, value, i, object)) {
+                if (typeof T === 'undefined' ? callbackfn(value, i, object) : callbackfn.call(T, value, i, object)) {
                     result.push(value);
                 }
             }
@@ -521,19 +533,22 @@ defineProperties(ArrayPrototype, {
 // http://es5.github.com/#x15.4.4.16
 // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every
 defineProperties(ArrayPrototype, {
-    every: function every(fun /*, thisp */) {
-        var object = toObject(this),
-            self = splitString && isString(this) ? this.split('') : object,
-            length = self.length >>> 0,
-            thisp = arguments[1];
+    every: function every(callbackfn /*, thisArg*/) {
+        var object = ES.ToObject(this);
+        var self = splitString && isString(this) ? this.split('') : object;
+        var length = self.length >>> 0;
+        var T;
+        if (arguments.length > 1) {
+            T = arguments[1];
+        }
 
         // If no callback function or if callback is not a callable function
-        if (!isFunction(fun)) {
-            throw new TypeError(fun + " is not a function");
+        if (!isCallable(callbackfn)) {
+            throw new TypeError('Array.prototype.every callback must be a function');
         }
 
         for (var i = 0; i < length; i++) {
-            if (i in self && !fun.call(thisp, self[i], i, object)) {
+            if (i in self && !(typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) {
                 return false;
             }
         }
@@ -545,19 +560,22 @@ defineProperties(ArrayPrototype, {
 // http://es5.github.com/#x15.4.4.17
 // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some
 defineProperties(ArrayPrototype, {
-    some: function some(fun /*, thisp */) {
-        var object = toObject(this),
-            self = splitString && isString(this) ? this.split('') : object,
-            length = self.length >>> 0,
-            thisp = arguments[1];
+    some: function some(callbackfn/*, thisArg */) {
+        var object = ES.ToObject(this);
+        var self = splitString && isString(this) ? this.split('') : object;
+        var length = self.length >>> 0;
+        var T;
+        if (arguments.length > 1) {
+            T = arguments[1];
+        }
 
         // If no callback function or if callback is not a callable function
-        if (!isFunction(fun)) {
-            throw new TypeError(fun + " is not a function");
+        if (!isCallable(callbackfn)) {
+            throw new TypeError('Array.prototype.some callback must be a function');
         }
 
         for (var i = 0; i < length; i++) {
-            if (i in self && fun.call(thisp, self[i], i, object)) {
+            if (i in self && (typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) {
                 return true;
             }
         }
@@ -573,19 +591,19 @@ if (ArrayPrototype.reduce) {
     reduceCoercesToObject = typeof ArrayPrototype.reduce.call('es5', function (_, __, ___, list) { return list; }) === 'object';
 }
 defineProperties(ArrayPrototype, {
-    reduce: function reduce(fun /*, initial*/) {
-        var object = toObject(this),
-            self = splitString && isString(this) ? this.split('') : object,
-            length = self.length >>> 0;
+    reduce: function reduce(callbackfn /*, initialValue*/) {
+        var object = ES.ToObject(this);
+        var self = splitString && isString(this) ? this.split('') : object;
+        var length = self.length >>> 0;
 
         // If no callback function or if callback is not a callable function
-        if (!isFunction(fun)) {
-            throw new TypeError(fun + " is not a function");
+        if (!isCallable(callbackfn)) {
+            throw new TypeError('Array.prototype.reduce callback must be a function');
         }
 
         // no value to return if no initial value and an empty array
-        if (!length && arguments.length === 1) {
-            throw new TypeError("reduce of empty array with no initial value");
+        if (length === 0 && arguments.length === 1) {
+            throw new TypeError('reduce of empty array with no initial value');
         }
 
         var i = 0;
@@ -601,14 +619,14 @@ defineProperties(ArrayPrototype, {
 
                 // if array contains no values, no initial value to return
                 if (++i >= length) {
-                    throw new TypeError("reduce of empty array with no initial value");
+                    throw new TypeError('reduce of empty array with no initial value');
                 }
             } while (true);
         }
 
         for (; i < length; i++) {
             if (i in self) {
-                result = fun.call(void 0, result, self[i], i, object);
+                result = callbackfn(result, self[i], i, object);
             }
         }
 
@@ -624,22 +642,23 @@ if (ArrayPrototype.reduceRight) {
     reduceRightCoercesToObject = typeof ArrayPrototype.reduceRight.call('es5', function (_, __, ___, list) { return list; }) === 'object';
 }
 defineProperties(ArrayPrototype, {
-    reduceRight: function reduceRight(fun /*, initial*/) {
-        var object = toObject(this),
-            self = splitString && isString(this) ? this.split('') : object,
-            length = self.length >>> 0;
+    reduceRight: function reduceRight(callbackfn/*, initial*/) {
+        var object = ES.ToObject(this);
+        var self = splitString && isString(this) ? this.split('') : object;
+        var length = self.length >>> 0;
 
         // If no callback function or if callback is not a callable function
-        if (!isFunction(fun)) {
-            throw new TypeError(fun + " is not a function");
+        if (!isCallable(callbackfn)) {
+            throw new TypeError('Array.prototype.reduceRight callback must be a function');
         }
 
         // no value to return if no initial value, empty array
-        if (!length && arguments.length === 1) {
-            throw new TypeError("reduceRight of empty array with no initial value");
+        if (length === 0 && arguments.length === 1) {
+            throw new TypeError('reduceRight of empty array with no initial value');
         }
 
-        var result, i = length - 1;
+        var result;
+        var i = length - 1;
         if (arguments.length >= 2) {
             result = arguments[1];
         } else {
@@ -651,7 +670,7 @@ defineProperties(ArrayPrototype, {
 
                 // if array contains no values, no initial value to return
                 if (--i < 0) {
-                    throw new TypeError("reduceRight of empty array with no initial value");
+                    throw new TypeError('reduceRight of empty array with no initial value');
                 }
             } while (true);
         }
@@ -662,7 +681,7 @@ defineProperties(ArrayPrototype, {
 
         do {
             if (i in self) {
-                result = fun.call(void 0, result, self[i], i, object);
+                result = callbackfn(result, self[i], i, object);
             }
         } while (i--);
 
@@ -675,23 +694,23 @@ defineProperties(ArrayPrototype, {
 // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf
 var hasFirefox2IndexOfBug = Array.prototype.indexOf && [0, 1].indexOf(1, 2) !== -1;
 defineProperties(ArrayPrototype, {
-    indexOf: function indexOf(sought /*, fromIndex */ ) {
-        var self = splitString && isString(this) ? this.split('') : toObject(this),
-            length = self.length >>> 0;
+    indexOf: function indexOf(searchElement /*, fromIndex */) {
+        var self = splitString && isString(this) ? this.split('') : ES.ToObject(this);
+        var length = self.length >>> 0;
 
-        if (!length) {
+        if (length === 0) {
             return -1;
         }
 
         var i = 0;
         if (arguments.length > 1) {
-            i = toInteger(arguments[1]);
+            i = ES.ToInteger(arguments[1]);
         }
 
         // handle negative indices
         i = i >= 0 ? i : Math.max(0, length + i);
         for (; i < length; i++) {
-            if (i in self && self[i] === sought) {
+            if (i in self && self[i] === searchElement) {
                 return i;
             }
         }
@@ -704,21 +723,21 @@ defineProperties(ArrayPrototype, {
 // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf
 var hasFirefox2LastIndexOfBug = Array.prototype.lastIndexOf && [0, 1].lastIndexOf(0, -3) !== -1;
 defineProperties(ArrayPrototype, {
-    lastIndexOf: function lastIndexOf(sought /*, fromIndex */) {
-        var self = splitString && isString(this) ? this.split('') : toObject(this),
-            length = self.length >>> 0;
+    lastIndexOf: function lastIndexOf(searchElement /*, fromIndex */) {
+        var self = splitString && isString(this) ? this.split('') : ES.ToObject(this);
+        var length = self.length >>> 0;
 
-        if (!length) {
+        if (length === 0) {
             return -1;
         }
         var i = length - 1;
         if (arguments.length > 1) {
-            i = Math.min(i, toInteger(arguments[1]));
+            i = Math.min(i, ES.ToInteger(arguments[1]));
         }
         // handle negative indices
         i = i >= 0 ? i : length - Math.abs(i);
         for (; i >= 0; i--) {
-            if (i in self && sought === self[i]) {
+            if (i in self && searchElement === self[i]) {
                 return i;
             }
         }
@@ -735,37 +754,40 @@ defineProperties(ArrayPrototype, {
 // http://es5.github.com/#x15.2.3.14
 
 // http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation
-var hasDontEnumBug = !({'toString': null}).propertyIsEnumerable('toString'),
-    hasProtoEnumBug = (function () {}).propertyIsEnumerable('prototype'),
+var hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString'),
+    hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype'),
+    hasStringEnumBug = !owns('x', '0'),
     dontEnums = [
-        "toString",
-        "toLocaleString",
-        "valueOf",
-        "hasOwnProperty",
-        "isPrototypeOf",
-        "propertyIsEnumerable",
-        "constructor"
+        'toString',
+        'toLocaleString',
+        'valueOf',
+        'hasOwnProperty',
+        'isPrototypeOf',
+        'propertyIsEnumerable',
+        'constructor'
     ],
     dontEnumsLength = dontEnums.length;
 
 defineProperties(Object, {
     keys: function keys(object) {
-        var isFn = isFunction(object),
+        var isFn = isCallable(object),
             isArgs = isArguments(object),
             isObject = object !== null && typeof object === 'object',
             isStr = isObject && isString(object);
 
         if (!isObject && !isFn && !isArgs) {
-            throw new TypeError("Object.keys called on a non-object");
+            throw new TypeError('Object.keys called on a non-object');
         }
 
         var theKeys = [];
         var skipProto = hasProtoEnumBug && isFn;
-        if (isStr || isArgs) {
+        if ((isStr && hasStringEnumBug) || isArgs) {
             for (var i = 0; i < object.length; ++i) {
                 theKeys.push(String(i));
             }
-        } else {
+        }
+
+        if (!isArgs) {
             for (var name in object) {
                 if (!(skipProto && name === 'prototype') && owns(object, name)) {
                     theKeys.push(String(name));
@@ -815,14 +837,14 @@ defineProperties(Object, {
 // The time zone is always UTC, denoted by the suffix Z. If the time value of
 // this object is not a finite Number a RangeError exception is thrown.
 var negativeDate = -62198755200000;
-var negativeYearString = "-000001";
+var negativeYearString = '-000001';
 var hasNegativeDateBug = Date.prototype.toISOString && new Date(negativeDate).toISOString().indexOf(negativeYearString) === -1;
 
 defineProperties(Date.prototype, {
     toISOString: function toISOString() {
         var result, length, value, year, month;
         if (!isFinite(this)) {
-            throw new RangeError("Date.prototype.toISOString called on non-finite value.");
+            throw new RangeError('Date.prototype.toISOString called on non-finite value.');
         }
 
         year = this.getUTCFullYear();
@@ -835,8 +857,8 @@ defineProperties(Date.prototype, {
         // the date time string format is specified in 15.9.1.15.
         result = [month + 1, this.getUTCDate(), this.getUTCHours(), this.getUTCMinutes(), this.getUTCSeconds()];
         year = (
-            (year < 0 ? "-" : (year > 9999 ? "+" : "")) +
-            ("00000" + Math.abs(year)).slice(0 <= year && year <= 9999 ? -4 : -6)
+            (year < 0 ? '-' : (year > 9999 ? '+' : '')) +
+            ('00000' + Math.abs(year)).slice((0 <= year && year <= 9999) ? -4 : -6)
         );
 
         length = result.length;
@@ -845,37 +867,34 @@ defineProperties(Date.prototype, {
             // pad months, days, hours, minutes, and seconds to have two
             // digits.
             if (value < 10) {
-                result[length] = "0" + value;
+                result[length] = '0' + value;
             }
         }
         // pad milliseconds to have three digits.
         return (
-            year + "-" + result.slice(0, 2).join("-") +
-            "T" + result.slice(2).join(":") + "." +
-            ("000" + this.getUTCMilliseconds()).slice(-3) + "Z"
+            year + '-' + result.slice(0, 2).join('-') +
+            'T' + result.slice(2).join(':') + '.' +
+            ('000' + this.getUTCMilliseconds()).slice(-3) + 'Z'
         );
     }
 }, hasNegativeDateBug);
 
-
 // ES5 15.9.5.44
 // http://es5.github.com/#x15.9.5.44
 // This function provides a String representation of a Date object for use by
 // JSON.stringify (15.12.3).
-var dateToJSONIsSupported = false;
-try {
-    dateToJSONIsSupported = (
-        Date.prototype.toJSON &&
-        new Date(NaN).toJSON() === null &&
-        new Date(negativeDate).toJSON().indexOf(negativeYearString) !== -1 &&
-        Date.prototype.toJSON.call({ // generic
-            toISOString: function () {
-                return true;
-            }
-        })
-    );
-} catch (e) {
-}
+var dateToJSONIsSupported = (function () {
+    try {
+        return Date.prototype.toJSON &&
+            new Date(NaN).toJSON() === null &&
+            new Date(negativeDate).toJSON().indexOf(negativeYearString) !== -1 &&
+            Date.prototype.toJSON.call({ // generic
+                toISOString: function () { return true; }
+            });
+    } catch (e) {
+        return false;
+    }
+}());
 if (!dateToJSONIsSupported) {
     Date.prototype.toJSON = function toJSON(key) {
         // When the toJSON method is called with argument key, the following
@@ -883,24 +902,23 @@ if (!dateToJSONIsSupported) {
 
         // 1.  Let O be the result of calling ToObject, giving it the this
         // value as its argument.
-        // 2. Let tv be toPrimitive(O, hint Number).
-        var o = Object(this),
-            tv = toPrimitive(o),
-            toISO;
+        // 2. Let tv be ES.ToPrimitive(O, hint Number).
+        var O = Object(this);
+        var tv = ES.ToPrimitive(O);
         // 3. If tv is a Number and is not finite, return null.
-        if (typeof tv === "number" && !isFinite(tv)) {
+        if (typeof tv === 'number' && !isFinite(tv)) {
             return null;
         }
         // 4. Let toISO be the result of calling the [[Get]] internal method of
         // O with argument "toISOString".
-        toISO = o.toISOString;
+        var toISO = O.toISOString;
         // 5. If IsCallable(toISO) is false, throw a TypeError exception.
-        if (typeof toISO !== "function") {
-            throw new TypeError("toISOString property is not callable");
+        if (!isCallable(toISO)) {
+            throw new TypeError('toISOString property is not callable');
         }
         // 6. Return the result of calling the [[Call]] internal method of
         //  toISO with O as the this value and an empty argument list.
-        return toISO.call(o);
+        return toISO.call(O);
 
         // NOTE 1 The argument is ignored.
 
@@ -918,20 +936,23 @@ if (!dateToJSONIsSupported) {
 // based on work shared by Daniel Friesen (dantman)
 // http://gist.github.com/303249
 var supportsExtendedYears = Date.parse('+033658-09-27T01:46:40.000Z') === 1e15;
-var acceptsInvalidDates = !isNaN(Date.parse('2012-04-04T24:00:00.500Z')) || !isNaN(Date.parse('2012-11-31T23:59:59.000Z'));
-var doesNotParseY2KNewYear = isNaN(Date.parse("2000-01-01T00:00:00.000Z"));
+var acceptsInvalidDates = !isNaN(Date.parse('2012-04-04T24:00:00.500Z')) || !isNaN(Date.parse('2012-11-31T23:59:59.000Z')) || !isNaN(Date.parse('2012-12-31T23:59:60.000Z'));
+var doesNotParseY2KNewYear = isNaN(Date.parse('2000-01-01T00:00:00.000Z'));
 if (!Date.parse || doesNotParseY2KNewYear || acceptsInvalidDates || !supportsExtendedYears) {
     // XXX global assignment won't work in embeddings that use
     // an alternate object for the context.
+    /*global Date: true */
+    /*eslint-disable no-undef*/
     Date = (function (NativeDate) {
-
+    /*eslint-enable no-undef*/
         // Date.length === 7
-        function Date(Y, M, D, h, m, s, ms) {
+        var DateShim = function Date(Y, M, D, h, m, s, ms) {
             var length = arguments.length;
+            var date;
             if (this instanceof NativeDate) {
-                var date = length === 1 && String(Y) === Y ? // isString(Y)
+                date = length === 1 && String(Y) === Y ? // isString(Y)
                     // We explicitly pass it through parse:
-                    new NativeDate(Date.parse(Y)) :
+                    new NativeDate(DateShim.parse(Y)) :
                     // We have to manually make calls depending on argument
                     // length here
                     length >= 7 ? new NativeDate(Y, M, D, h, m, s, ms) :
@@ -942,41 +963,40 @@ if (!Date.parse || doesNotParseY2KNewYear || acceptsInvalidDates || !supportsExt
                     length >= 2 ? new NativeDate(Y, M) :
                     length >= 1 ? new NativeDate(Y) :
                                   new NativeDate();
-                // Prevent mixups with unfixed Date object
-                date.constructor = Date;
-                return date;
+            } else {
+                date = NativeDate.apply(this, arguments);
             }
-            return NativeDate.apply(this, arguments);
-        }
+            // Prevent mixups with unfixed Date object
+            defineProperties(date, { constructor: DateShim }, true);
+            return date;
+        };
 
         // 15.9.1.15 Date Time String Format.
-        var isoDateExpression = new RegExp("^" +
-            "(\\d{4}|[\+\-]\\d{6})" + // four-digit year capture or sign +
+        var isoDateExpression = new RegExp('^' +
+            '(\\d{4}|[+-]\\d{6})' + // four-digit year capture or sign +
                                       // 6-digit extended year
-            "(?:-(\\d{2})" + // optional month capture
-            "(?:-(\\d{2})" + // optional day capture
-            "(?:" + // capture hours:minutes:seconds.milliseconds
-                "T(\\d{2})" + // hours capture
-                ":(\\d{2})" + // minutes capture
-                "(?:" + // optional :seconds.milliseconds
-                    ":(\\d{2})" + // seconds capture
-                    "(?:(\\.\\d{1,}))?" + // milliseconds capture
-                ")?" +
-            "(" + // capture UTC offset component
-                "Z|" + // UTC capture
-                "(?:" + // offset specifier +/-hours:minutes
-                    "([-+])" + // sign capture
-                    "(\\d{2})" + // hours offset capture
-                    ":(\\d{2})" + // minutes offset capture
-                ")" +
-            ")?)?)?)?" +
-        "$");
-
-        var months = [
-            0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365
-        ];
-
-        function dayFromMonth(year, month) {
+            '(?:-(\\d{2})' + // optional month capture
+            '(?:-(\\d{2})' + // optional day capture
+            '(?:' + // capture hours:minutes:seconds.milliseconds
+                'T(\\d{2})' + // hours capture
+                ':(\\d{2})' + // minutes capture
+                '(?:' + // optional :seconds.milliseconds
+                    ':(\\d{2})' + // seconds capture
+                    '(?:(\\.\\d{1,}))?' + // milliseconds capture
+                ')?' +
+            '(' + // capture UTC offset component
+                'Z|' + // UTC capture
+                '(?:' + // offset specifier +/-hours:minutes
+                    '([-+])' + // sign capture
+                    '(\\d{2})' + // hours offset capture
+                    ':(\\d{2})' + // minutes offset capture
+                ')' +
+            ')?)?)?)?' +
+        '$');
+
+        var months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365];
+
+        var dayFromMonth = function dayFromMonth(year, month) {
             var t = month > 1 ? 1 : 0;
             return (
                 months[month] +
@@ -985,25 +1005,31 @@ if (!Date.parse || doesNotParseY2KNewYear || acceptsInvalidDates || !supportsExt
                 Math.floor((year - 1601 + t) / 400) +
                 365 * (year - 1970)
             );
-        }
+        };
 
-        function toUTC(t) {
+        var toUTC = function toUTC(t) {
             return Number(new NativeDate(1970, 0, 1, 0, 0, 0, t));
-        }
+        };
 
         // Copy any custom methods a 3rd party library may have added
         for (var key in NativeDate) {
-            Date[key] = NativeDate[key];
+            if (owns(NativeDate, key)) {
+                DateShim[key] = NativeDate[key];
+            }
         }
 
         // Copy "native" methods explicitly; they may be non-enumerable
-        Date.now = NativeDate.now;
-        Date.UTC = NativeDate.UTC;
-        Date.prototype = NativeDate.prototype;
-        Date.prototype.constructor = Date;
+        defineProperties(DateShim, {
+            now: NativeDate.now,
+            UTC: NativeDate.UTC
+        }, true);
+        DateShim.prototype = NativeDate.prototype;
+        defineProperties(DateShim.prototype, {
+            constructor: DateShim
+        }, true);
 
         // Upgrade Date.parse to handle simplified ISO 8601 strings
-        Date.parse = function parse(string) {
+        DateShim.parse = function parse(string) {
             var match = isoDateExpression.exec(string);
             if (match) {
                 // parse months, days, hours, minutes, seconds, and milliseconds
@@ -1020,7 +1046,7 @@ if (!Date.parse || doesNotParseY2KNewYear || acceptsInvalidDates || !supportsExt
                     // (ES 5.1 bug)
                     // see https://bugs.ecmascript.org/show_bug.cgi?id=112
                     isLocalTime = Boolean(match[4] && !match[8]),
-                    signOffset = match[9] === "-" ? 1 : -1,
+                    signOffset = match[9] === '-' ? 1 : -1,
                     hourOffset = Number(match[10] || 0),
                     minuteOffset = Number(match[11] || 0),
                     result;
@@ -1059,8 +1085,9 @@ if (!Date.parse || doesNotParseY2KNewYear || acceptsInvalidDates || !supportsExt
             return NativeDate.parse.apply(this, arguments);
         };
 
-        return Date;
-    })(Date);
+        return DateShim;
+    }(Date));
+    /*global Date: false */
 }
 
 // ES5 15.9.4.4
@@ -1071,7 +1098,6 @@ if (!Date.now) {
     };
 }
 
-
 //
 // Number
 // ======
@@ -1080,10 +1106,10 @@ if (!Date.now) {
 // ES5.1 15.7.4.5
 // http://es5.github.com/#x15.7.4.5
 var hasToFixedBugs = NumberPrototype.toFixed && (
-  (0.00008).toFixed(3) !== '0.000'
-  || (0.9).toFixed(0) !== '1'
-  || (1.255).toFixed(2) !== '1.25'
-  || (1000000000000000128).toFixed(0) !== "1000000000000000128"
+  (0.00008).toFixed(3) !== '0.000' ||
+  (0.9).toFixed(0) !== '1' ||
+  (1.255).toFixed(2) !== '1.25' ||
+  (1000000000000000128).toFixed(0) !== '1000000000000000128'
 );
 
 var toFixedHelpers = {
@@ -1092,10 +1118,11 @@ var toFixedHelpers = {
   data: [0, 0, 0, 0, 0, 0],
   multiply: function multiply(n, c) {
       var i = -1;
+      var c2 = c;
       while (++i < toFixedHelpers.size) {
-          c += n * toFixedHelpers.data[i];
-          toFixedHelpers.data[i] = c % toFixedHelpers.base;
-          c = Math.floor(c / toFixedHelpers.base);
+          c2 += n * toFixedHelpers.data[i];
+          toFixedHelpers.data[i] = c2 % toFixedHelpers.base;
+          c2 = Math.floor(c2 / toFixedHelpers.base);
       }
   },
   divide: function divide(n) {
@@ -1126,13 +1153,14 @@ var toFixedHelpers = {
   },
   log: function log(x) {
       var n = 0;
-      while (x >= 4096) {
+      var x2 = x;
+      while (x2 >= 4096) {
           n += 12;
-          x /= 4096;
+          x2 /= 4096;
       }
-      while (x >= 2) {
+      while (x2 >= 2) {
           n += 1;
-          x /= 2;
+          x2 /= 2;
       }
       return n;
   }
@@ -1147,14 +1175,14 @@ defineProperties(NumberPrototype, {
         f = f !== f ? 0 : Math.floor(f);
 
         if (f < 0 || f > 20) {
-            throw new RangeError("Number.toFixed called with invalid number of decimals");
+            throw new RangeError('Number.toFixed called with invalid number of decimals');
         }
 
         x = Number(this);
 
         // Test for NaN
         if (x !== x) {
-            return "NaN";
+            return 'NaN';
         }
 
         // If it is too big or small, return the string value of the number
@@ -1162,14 +1190,14 @@ defineProperties(NumberPrototype, {
             return String(x);
         }
 
-        s = "";
+        s = '';
 
         if (x < 0) {
-            s = "-";
+            s = '-';
             x = -x;
         }
 
-        m = "0";
+        m = '0';
 
         if (x > 1e-21) {
             // 1e-21 < x < 1e21
@@ -1225,7 +1253,6 @@ defineProperties(NumberPrototype, {
     }
 }, hasToFixedBugs);
 
-
 //
 // String
 // ======
@@ -1250,38 +1277,38 @@ var string_split = StringPrototype.split;
 if (
     'ab'.split(/(?:ab)*/).length !== 2 ||
     '.'.split(/(.?)(.?)/).length !== 4 ||
-    'tesst'.split(/(s)*/)[1] === "t" ||
+    'tesst'.split(/(s)*/)[1] === 't' ||
     'test'.split(/(?:)/, -1).length !== 4 ||
     ''.split(/.?/).length ||
     '.'.split(/()()/).length > 1
 ) {
     (function () {
-        var compliantExecNpcg = /()??/.exec("")[1] === void 0; // NPCG: nonparticipating capturing group
+        var compliantExecNpcg = typeof (/()??/).exec('')[1] === 'undefined'; // NPCG: nonparticipating capturing group
 
         StringPrototype.split = function (separator, limit) {
             var string = this;
-            if (separator === void 0 && limit === 0) {
+            if (typeof separator === 'undefined' && limit === 0) {
                 return [];
             }
 
             // If `separator` is not a regex, use native split
-            if (_toString.call(separator) !== "[object RegExp]") {
+            if (!isRegex(separator)) {
                 return string_split.call(this, separator, limit);
             }
 
-            var output = [],
-                flags = (separator.ignoreCase ? "i" : "") +
-                        (separator.multiline  ? "m" : "") +
-                        (separator.extended   ? "x" : "") + // Proposed for ES6
-                        (separator.sticky     ? "y" : ""), // Firefox 3+
+            var output = [];
+            var flags = (separator.ignoreCase ? 'i' : '') +
+                        (separator.multiline ? 'm' : '') +
+                        (separator.extended ? 'x' : '') + // Proposed for ES6
+                        (separator.sticky ? 'y' : ''), // Firefox 3+
                 lastLastIndex = 0,
                 // Make `global` and avoid `lastIndex` issues by working with a copy
                 separator2, match, lastIndex, lastLength;
-            separator = new RegExp(separator.source, flags + "g");
-            string += ""; // Type-convert
+            var separatorCopy = new RegExp(separator.source, flags + 'g');
+            string += ''; // Type-convert
             if (!compliantExecNpcg) {
                 // Doesn't need flags gy, but they don't hurt
-                separator2 = new RegExp("^" + separator.source + "$(?!\\s)", flags);
+                separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\s)', flags);
             }
             /* Values for `limit`, per the spec:
              * If undefined: 4294967295 // Math.pow(2, 32) - 1
@@ -1290,46 +1317,50 @@ if (
              * If negative number: 4294967296 - Math.floor(Math.abs(limit))
              * If other: Type-convert, then use the above rules
              */
-            limit = limit === void 0 ?
+            var splitLimit = typeof limit === 'undefined' ?
                 -1 >>> 0 : // Math.pow(2, 32) - 1
-                ToUint32(limit);
-            while (match = separator.exec(string)) {
-                // `separator.lastIndex` is not reliable cross-browser
+                ES.ToUint32(limit);
+            match = separatorCopy.exec(string);
+            while (match) {
+                // `separatorCopy.lastIndex` is not reliable cross-browser
                 lastIndex = match.index + match[0].length;
                 if (lastIndex > lastLastIndex) {
                     output.push(string.slice(lastLastIndex, match.index));
                     // Fix browsers whose `exec` methods don't consistently return `undefined` for
                     // nonparticipating capturing groups
                     if (!compliantExecNpcg && match.length > 1) {
+                        /*eslint-disable no-loop-func */
                         match[0].replace(separator2, function () {
                             for (var i = 1; i < arguments.length - 2; i++) {
-                                if (arguments[i] === void 0) {
+                                if (typeof arguments[i] === 'undefined') {
                                     match[i] = void 0;
                                 }
                             }
                         });
+                        /*eslint-enable no-loop-func */
                     }
                     if (match.length > 1 && match.index < string.length) {
-                        ArrayPrototype.push.apply(output, match.slice(1));
+                        array_push.apply(output, match.slice(1));
                     }
                     lastLength = match[0].length;
                     lastLastIndex = lastIndex;
-                    if (output.length >= limit) {
+                    if (output.length >= splitLimit) {
                         break;
                     }
                 }
-                if (separator.lastIndex === match.index) {
-                    separator.lastIndex++; // Avoid an infinite loop
+                if (separatorCopy.lastIndex === match.index) {
+                    separatorCopy.lastIndex++; // Avoid an infinite loop
                 }
+                match = separatorCopy.exec(string);
             }
             if (lastLastIndex === string.length) {
-                if (lastLength || !separator.test("")) {
-                    output.push("");
+                if (lastLength || !separatorCopy.test('')) {
+                    output.push('');
                 }
             } else {
                 output.push(string.slice(lastLastIndex));
             }
-            return output.length > limit ? output.slice(0, limit) : output;
+            return output.length > splitLimit ? output.slice(0, splitLimit) : output;
         };
     }());
 
@@ -1339,9 +1370,9 @@ if (
 // then the output array is truncated so that it contains no more than limit
 // elements.
 // "0".split(undefined, 0) -> []
-} else if ("0".split(void 0, 0).length) {
+} else if ('0'.split(void 0, 0).length) {
     StringPrototype.split = function split(separator, limit) {
-        if (separator === void 0 && limit === 0) { return []; }
+        if (typeof separator === 'undefined' && limit === 0) { return []; }
         return string_split.call(this, separator, limit);
     };
 }
@@ -1357,7 +1388,7 @@ var replaceReportsGroupsCorrectly = (function () {
 
 if (!replaceReportsGroupsCorrectly) {
     StringPrototype.replace = function replace(searchValue, replaceValue) {
-        var isFn = isFunction(replaceValue);
+        var isFn = isCallable(replaceValue);
         var hasCapturingGroups = isRegex(searchValue) && (/\)[*?]/).test(searchValue.source);
         if (!isFn || !hasCapturingGroups) {
             return str_replace.call(this, searchValue, replaceValue);
@@ -1366,7 +1397,7 @@ if (!replaceReportsGroupsCorrectly) {
                 var length = arguments.length;
                 var originalLastIndex = searchValue.lastIndex;
                 searchValue.lastIndex = 0;
-                var args = searchValue.exec(match);
+                var args = searchValue.exec(match) || [];
                 searchValue.lastIndex = originalLastIndex;
                 args.push(arguments[length - 2], arguments[length - 1]);
                 return replaceValue.apply(this, args);
@@ -1382,48 +1413,47 @@ if (!replaceReportsGroupsCorrectly) {
 // normalized across all browsers
 // [bugfix, IE lt 9] IE < 9 substr() with negative value not working in IE
 var string_substr = StringPrototype.substr;
-var hasNegativeSubstrBug = "".substr && "0b".substr(-1) !== "b";
+var hasNegativeSubstrBug = ''.substr && '0b'.substr(-1) !== 'b';
 defineProperties(StringPrototype, {
     substr: function substr(start, length) {
-        return string_substr.call(
-            this,
-            start < 0 ? ((start = this.length + start) < 0 ? 0 : start) : start,
-            length
-        );
+        var normalizedStart = start;
+        if (start < 0) {
+            normalizedStart = Math.max(this.length + start, 0);
+        }
+        return string_substr.call(this, normalizedStart, length);
     }
 }, hasNegativeSubstrBug);
 
 // ES5 15.5.4.20
 // whitespace from: http://es5.github.io/#x15.5.4.20
-var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" +
-    "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" +
-    "\u2029\uFEFF";
+var ws = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
+    '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028' +
+    '\u2029\uFEFF';
 var zeroWidth = '\u200b';
-var wsRegexChars = "[" + ws + "]";
-var trimBeginRegexp = new RegExp("^" + wsRegexChars + wsRegexChars + "*");
-var trimEndRegexp = new RegExp(wsRegexChars + wsRegexChars + "*$");
+var wsRegexChars = '[' + ws + ']';
+var trimBeginRegexp = new RegExp('^' + wsRegexChars + wsRegexChars + '*');
+var trimEndRegexp = new RegExp(wsRegexChars + wsRegexChars + '*$');
 var hasTrimWhitespaceBug = StringPrototype.trim && (ws.trim() || !zeroWidth.trim());
 defineProperties(StringPrototype, {
     // http://blog.stevenlevithan.com/archives/faster-trim-javascript
     // http://perfectionkills.com/whitespace-deviations/
     trim: function trim() {
-        if (this === void 0 || this === null) {
-            throw new TypeError("can't convert " + this + " to object");
+        if (typeof this === 'undefined' || this === null) {
+            throw new TypeError("can't convert " + this + ' to object');
         }
-        return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, "");
+        return String(this).replace(trimBeginRegexp, '').replace(trimEndRegexp, '');
     }
 }, hasTrimWhitespaceBug);
 
 // ES-5 15.1.2.2
 if (parseInt(ws + '08') !== 8 || parseInt(ws + '0x16') !== 22) {
+    /*global parseInt: true */
     parseInt = (function (origParseInt) {
         var hexRegex = /^0[xX]/;
-        return function parseIntES5(str, radix) {
-            str = String(str).trim();
-            if (!Number(radix)) {
-                radix = hexRegex.test(str) ? 16 : 10;
-            }
-            return origParseInt(str, radix);
+        return function parseInt(str, radix) {
+            var string = String(str).trim();
+            var defaultedRadix = Number(radix) || (hexRegex.test(string) ? 16 : 10);
+            return origParseInt(string, defaultedRadix);
         };
     }(parseInt));
 }
index deb88ec..5838457 100644 (file)
@@ -1,6 +1,6 @@
 /*
     json2.js
-    2014-02-04
+    2015-05-03
 
     Public Domain.
 
@@ -17,7 +17,9 @@
 
 
     This file creates a global JSON object containing two methods: stringify
-    and parse.
+    and parse. This file is provides the ES5 JSON capability to ES3 systems.
+    If a project might run on IE8 or earlier, then this file should be included.
+    This file does nothing on ES5 systems.
 
         JSON.stringify(value, replacer, space)
             value       any JavaScript value, usually an object or array.
@@ -48,7 +50,9 @@
                 Date.prototype.toJSON = function (key) {
                     function f(n) {
                         // Format integers to have at least two digits.
-                        return n < 10 ? '0' + n : n;
+                        return n < 10 
+                            ? '0' + n 
+                            : n;
                     }
 
                     return this.getUTCFullYear()   + '-' +
@@ -94,8 +98,9 @@
             // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'
 
             text = JSON.stringify([new Date()], function (key, value) {
-                return this[key] instanceof Date ?
-                    'Date(' + this[key] + ')' : value;
+                return this[key] instanceof Date 
+                    ? 'Date(' + this[key] + ')' 
+                    : value;
             });
             // text is '["Date(---current time---)"]'
 
     redistribute.
 */
 
-/*jslint evil: true, regexp: true */
+/*jslint 
+    eval, for, this 
+*/
 
-/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
-    call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
+/*property
+    JSON, apply, call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
     getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
     lastIndex, length, parse, prototype, push, replace, slice, stringify,
     test, toJSON, toString, valueOf
@@ -165,10 +172,23 @@ if (typeof JSON !== 'object') {
 
 (function () {
     'use strict';
+    
+    var rx_one = /^[\],:{}\s]*$/,
+        rx_two = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
+        rx_three = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
+        rx_four = /(?:^|:|,)(?:\s*\[)+/g,
+        rx_escapable = /[\\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
+        rx_dangerous = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
 
     function f(n) {
         // Format integers to have at least two digits.
-        return n < 10 ? '0' + n : n;
+        return n < 10 
+            ? '0' + n 
+            : n;
+    }
+    
+    function this_value() {
+        return this.valueOf();
     }
 
     if (typeof Date.prototype.toJSON !== 'function') {
@@ -176,25 +196,21 @@ if (typeof JSON !== 'object') {
         Date.prototype.toJSON = function () {
 
             return isFinite(this.valueOf())
-                ? this.getUTCFullYear()     + '-' +
-                    f(this.getUTCMonth() + 1) + '-' +
-                    f(this.getUTCDate())      + 'T' +
-                    f(this.getUTCHours())     + ':' +
-                    f(this.getUTCMinutes())   + ':' +
-                    f(this.getUTCSeconds())   + 'Z'
+                ? this.getUTCFullYear() + '-' +
+                        f(this.getUTCMonth() + 1) + '-' +
+                        f(this.getUTCDate()) + 'T' +
+                        f(this.getUTCHours()) + ':' +
+                        f(this.getUTCMinutes()) + ':' +
+                        f(this.getUTCSeconds()) + 'Z'
                 : null;
         };
 
-        String.prototype.toJSON      =
-            Number.prototype.toJSON  =
-            Boolean.prototype.toJSON = function () {
-                return this.valueOf();
-            };
+        Boolean.prototype.toJSON = this_value;
+        Number.prototype.toJSON = this_value;
+        String.prototype.toJSON = this_value;
     }
 
-    var cx,
-        escapable,
-        gap,
+    var gap,
         indent,
         meta,
         rep;
@@ -207,13 +223,15 @@ if (typeof JSON !== 'object') {
 // Otherwise we must also replace the offending characters with safe escape
 // sequences.
 
-        escapable.lastIndex = 0;
-        return escapable.test(string) ? '"' + string.replace(escapable, function (a) {
-            var c = meta[a];
-            return typeof c === 'string'
-                ? c
-                : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
-        }) + '"' : '"' + string + '"';
+        rx_escapable.lastIndex = 0;
+        return rx_escapable.test(string) 
+            ? '"' + string.replace(rx_escapable, function (a) {
+                var c = meta[a];
+                return typeof c === 'string'
+                    ? c
+                    : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+            }) + '"' 
+            : '"' + string + '"';
     }
 
 
@@ -253,7 +271,9 @@ if (typeof JSON !== 'object') {
 
 // JSON numbers must be finite. Encode non-finite numbers as null.
 
-            return isFinite(value) ? String(value) : 'null';
+            return isFinite(value) 
+                ? String(value) 
+                : 'null';
 
         case 'boolean':
         case 'null':
@@ -299,8 +319,8 @@ if (typeof JSON !== 'object') {
                 v = partial.length === 0
                     ? '[]'
                     : gap
-                    ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']'
-                    : '[' + partial.join(',') + ']';
+                        ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']'
+                        : '[' + partial.join(',') + ']';
                 gap = mind;
                 return v;
             }
@@ -314,7 +334,11 @@ if (typeof JSON !== 'object') {
                         k = rep[i];
                         v = str(k, value);
                         if (v) {
-                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
+                            partial.push(quote(k) + (
+                                gap 
+                                    ? ': ' 
+                                    : ':'
+                            ) + v);
                         }
                     }
                 }
@@ -326,7 +350,11 @@ if (typeof JSON !== 'object') {
                     if (Object.prototype.hasOwnProperty.call(value, k)) {
                         v = str(k, value);
                         if (v) {
-                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
+                            partial.push(quote(k) + (
+                                gap 
+                                    ? ': ' 
+                                    : ':'
+                            ) + v);
                         }
                     }
                 }
@@ -338,8 +366,8 @@ if (typeof JSON !== 'object') {
             v = partial.length === 0
                 ? '{}'
                 : gap
-                ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}'
-                : '{' + partial.join(',') + '}';
+                    ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}'
+                    : '{' + partial.join(',') + '}';
             gap = mind;
             return v;
         }
@@ -348,14 +376,13 @@ if (typeof JSON !== 'object') {
 // If the JSON object does not yet have a stringify method, give it one.
 
     if (typeof JSON.stringify !== 'function') {
-        escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
         meta = {    // table of character substitutions
             '\b': '\\b',
             '\t': '\\t',
             '\n': '\\n',
             '\f': '\\f',
             '\r': '\\r',
-            '"' : '\\"',
+            '"': '\\"',
             '\\': '\\\\'
         };
         JSON.stringify = function (value, replacer, space) {
@@ -405,7 +432,6 @@ if (typeof JSON !== 'object') {
 // If the JSON object does not yet have a parse method, give it one.
 
     if (typeof JSON.parse !== 'function') {
-        cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
         JSON.parse = function (text, reviver) {
 
 // The parse method takes a text and an optional reviver function, and returns
@@ -440,11 +466,11 @@ if (typeof JSON !== 'object') {
 // incorrectly, either silently deleting them, or treating them as line endings.
 
             text = String(text);
-            cx.lastIndex = 0;
-            if (cx.test(text)) {
-                text = text.replace(cx, function (a) {
+            rx_dangerous.lastIndex = 0;
+            if (rx_dangerous.test(text)) {
+                text = text.replace(rx_dangerous, function (a) {
                     return '\\u' +
-                        ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+                            ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
                 });
             }
 
@@ -461,10 +487,14 @@ if (typeof JSON !== 'object') {
 // we look to see that the remaining characters are only whitespace or ']' or
 // ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.
 
-            if (/^[\],:{}\s]*$/
-                    .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
-                        .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
-                        .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
+            if (
+                rx_one.test(
+                    text
+                        .replace(rx_two, '@')
+                        .replace(rx_three, ']')
+                        .replace(rx_four, '')
+                )
+            ) {
 
 // In the third stage we use the eval function to compile the text into a
 // JavaScript structure. The '{' operator is subject to a syntactic ambiguity
diff --git a/resources/lib/oojs-ui/i18n/as.json b/resources/lib/oojs-ui/i18n/as.json
new file mode 100644 (file)
index 0000000..ae853dd
--- /dev/null
@@ -0,0 +1,16 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Gitartha.bordoloi"
+               ]
+       },
+       "ooui-toolbar-more": "অধিক",
+       "ooui-toolgroup-expand": "অধিক",
+       "ooui-toolgroup-collapse": "কম দেখাওক",
+       "ooui-dialog-message-accept": "শুদ্ধ",
+       "ooui-dialog-message-reject": "বাতিল কৰক",
+       "ooui-dialog-process-error": "কিবা ত্ৰুটি হৈছে",
+       "ooui-dialog-process-dismiss": "বাতিল",
+       "ooui-dialog-process-retry": "পুনৰ চেষ্টা কৰক",
+       "ooui-dialog-process-continue": "অব্যাহত ৰাখক"
+}
index c5475f8..7c40a54 100644 (file)
@@ -4,10 +4,12 @@
                        "EugeneZelenko",
                        "Wizardist",
                        "Чаховіч Уладзіслаў",
-                       "Zedlik"
+                       "Zedlik",
+                       "Red Winged Duck"
                ]
        },
-       "ooui-outline-control-move-down": "Перасунуць ніжэй",
-       "ooui-outline-control-move-up": "Перасунуць вышэй",
-       "ooui-toolbar-more": "Болей"
+       "ooui-outline-control-move-down": "Перасунуць элемэнт ніжэй",
+       "ooui-outline-control-move-up": "Перасунуць элемэнт вышэй",
+       "ooui-toolbar-more": "Болей",
+       "ooui-toolgroup-collapse": "Меней"
 }
index 15624fd..d5649b0 100644 (file)
@@ -24,5 +24,7 @@
        "ooui-dialog-process-error": "Etwas ist schief gelaufen",
        "ooui-dialog-process-dismiss": "Ausblenden",
        "ooui-dialog-process-retry": "Erneut versuchen",
-       "ooui-dialog-process-continue": "Fortfahren"
+       "ooui-dialog-process-continue": "Fortfahren",
+       "ooui-selectfile-not-supported": "Die Dateiauswahl wird nicht unterstützt",
+       "ooui-selectfile-placeholder": "Keine Datei ausgewählt"
 }
index 1db3fd8..9812ec6 100644 (file)
@@ -27,5 +27,8 @@
        "ooui-dialog-process-error": "Something went wrong",
        "ooui-dialog-process-dismiss": "Dismiss",
        "ooui-dialog-process-retry": "Try again",
-       "ooui-dialog-process-continue": "Continue"
+       "ooui-dialog-process-continue": "Continue",
+       "ooui-selectfile-not-supported": "File selection is not supported",
+       "ooui-selectfile-placeholder": "No file is selected",
+       "ooui-semicolon-separator": "; "
 }
index 8d9714c..0f705ad 100644 (file)
@@ -9,5 +9,13 @@
        },
        "ooui-outline-control-move-down": "Movi eron suben",
        "ooui-outline-control-move-up": "Movi eron supren",
-       "ooui-toolbar-more": "Pli"
+       "ooui-outline-control-remove": "Forigi eron",
+       "ooui-toolbar-more": "Pli",
+       "ooui-toolgroup-expand": "Pli",
+       "ooui-toolgroup-collapse": "Mapli",
+       "ooui-dialog-message-accept": "Bone",
+       "ooui-dialog-message-reject": "Nuligi",
+       "ooui-dialog-process-error": "Io rompiĝis",
+       "ooui-dialog-process-retry": "Reprovi",
+       "ooui-dialog-process-continue": "Daŭrigi"
 }
index 915791e..e5a8e45 100644 (file)
@@ -29,5 +29,7 @@
        "ooui-dialog-process-error": "Algo salió mal",
        "ooui-dialog-process-dismiss": "Descartar",
        "ooui-dialog-process-retry": "Intentar de nuevo",
-       "ooui-dialog-process-continue": "Continuar"
+       "ooui-dialog-process-continue": "Continuar",
+       "ooui-selectfile-not-supported": "No se admite la selección de archivos",
+       "ooui-selectfile-placeholder": "Ningún archivo seleccionado"
 }
index e947582..d6a06bb 100644 (file)
@@ -16,5 +16,6 @@
        "ooui-dialog-message-reject": "Utzi",
        "ooui-dialog-process-error": "Zerbaitek huts egin du",
        "ooui-dialog-process-retry": "Saiatu berriro",
-       "ooui-dialog-process-continue": "Jarraitu"
+       "ooui-dialog-process-continue": "Jarraitu",
+       "ooui-selectfile-placeholder": "Ez da fitxategirik hautatu"
 }
index 9144cb0..ae671cb 100644 (file)
@@ -41,5 +41,7 @@
        "ooui-dialog-process-error": "Quelque chose a mal tourné",
        "ooui-dialog-process-dismiss": "Rejeter",
        "ooui-dialog-process-retry": "Réessayez",
-       "ooui-dialog-process-continue": "Continuer"
+       "ooui-dialog-process-continue": "Continuer",
+       "ooui-selectfile-not-supported": "La sélection de fichier n’est pas prise en charge",
+       "ooui-selectfile-placeholder": "Aucun fichier sélectionné"
 }
index a4339f4..1283c53 100644 (file)
@@ -18,5 +18,7 @@
        "ooui-dialog-process-error": "Algo foi mal",
        "ooui-dialog-process-dismiss": "Agochar",
        "ooui-dialog-process-retry": "Inténteo de novo",
-       "ooui-dialog-process-continue": "Continuar"
+       "ooui-dialog-process-continue": "Continuar",
+       "ooui-selectfile-not-supported": "Non está soportada a selección de ficheiros",
+       "ooui-selectfile-placeholder": "Non se seleccionou ningún ficheiro"
 }
index 2d8315b..3f02e19 100644 (file)
@@ -3,15 +3,18 @@
                "authors": [
                        "Ashok modhvadia",
                        "KartikMistry",
-                       "The Discoverer"
+                       "The Discoverer",
+                       "NehalDaveND"
                ]
        },
        "ooui-outline-control-move-down": "વસ્તુ નીચે ખસેડો",
        "ooui-outline-control-move-up": "વસ્તુ ઉપર ખસેડો",
        "ooui-outline-control-remove": "વસ્તુ હટાવો",
        "ooui-toolbar-more": "વધુ",
+       "ooui-toolgroup-expand": "વધુ",
        "ooui-dialog-message-accept": "બરાબર",
        "ooui-dialog-message-reject": "રદ કરો",
        "ooui-dialog-process-error": "કંઇક ગરબડ થઇ",
-       "ooui-dialog-process-retry": "ફરી પ્રયત્ન કરો"
+       "ooui-dialog-process-retry": "ફરી પ્રયત્ન કરો",
+       "ooui-dialog-process-continue": "ચાલુ રાખો"
 }
index cadc416..de67665 100644 (file)
@@ -26,5 +26,7 @@
        "ooui-dialog-process-error": "משהו השתבש",
        "ooui-dialog-process-dismiss": "לוותר",
        "ooui-dialog-process-retry": "לנסות שוב",
-       "ooui-dialog-process-continue": "המשך"
+       "ooui-dialog-process-continue": "המשך",
+       "ooui-selectfile-not-supported": "בחירת קבצים אינה נתמכת",
+       "ooui-selectfile-placeholder": "לא נבחר שום קובץ"
 }
index c975e82..792b6fc 100644 (file)
@@ -15,5 +15,7 @@
        "ooui-dialog-process-error": "Öhnsjädd es scheif jejange",
        "ooui-dialog-process-dismiss": "Maach fott, ha_sch jelässe",
        "ooui-dialog-process-retry": "Norr_ens versöhke",
-       "ooui-dialog-process-continue": "Wigger maache"
+       "ooui-dialog-process-continue": "Wigger maache",
+       "ooui-selectfile-not-supported": "Mer ogerschtözze et Datteij_Ußwähle nit.",
+       "ooui-selectfile-placeholder": "Kein Dattei es ußjewählt"
 }
diff --git a/resources/lib/oojs-ui/i18n/ku-latn.json b/resources/lib/oojs-ui/i18n/ku-latn.json
new file mode 100644 (file)
index 0000000..a2bdbd5
--- /dev/null
@@ -0,0 +1,15 @@
+{
+       "@metadata": {
+               "authors": [
+                       "George Animal",
+                       "Bikarhêner"
+               ]
+       },
+       "ooui-toolbar-more": "Bêhtir",
+       "ooui-toolgroup-expand": "Bêhtir",
+       "ooui-toolgroup-collapse": "Kêmtir",
+       "ooui-dialog-message-accept": "Baş e",
+       "ooui-dialog-message-reject": "Betal bike",
+       "ooui-dialog-process-retry": "Dîsa hewl bide",
+       "ooui-dialog-process-continue": "Bidomîne"
+}
index 119d1be..79bb469 100644 (file)
@@ -21,5 +21,6 @@
        "ooui-dialog-process-error": "Et ass eppes schif gaang",
        "ooui-dialog-process-dismiss": "Verwerfen",
        "ooui-dialog-process-retry": "Nach eng Kéier probéieren",
-       "ooui-dialog-process-continue": "Virufueren"
+       "ooui-dialog-process-continue": "Virufueren",
+       "ooui-selectfile-placeholder": "Et ass kee Fichier erausgesicht"
 }
index 7962336..53e5bf4 100644 (file)
@@ -17,5 +17,7 @@
        "ooui-dialog-process-error": "Нешто не е во ред",
        "ooui-dialog-process-dismiss": "Тргни",
        "ooui-dialog-process-retry": "Обиди се пак",
-       "ooui-dialog-process-continue": "Продолжи"
+       "ooui-dialog-process-continue": "Продолжи",
+       "ooui-selectfile-not-supported": "Изборот на податотеки не е поддржан",
+       "ooui-selectfile-placeholder": "Немате одбрано податотека"
 }
index 7006190..6bc94f1 100644 (file)
@@ -6,10 +6,16 @@
                        "Praju23",
                        "V.narsikar",
                        "Ydyashad",
-                       "संतोष दहिवळ"
+                       "संतोष दहिवळ",
+                       "NehalDaveND"
                ]
        },
        "ooui-outline-control-move-down": "घटक (आयटम) खाली सरकवा",
        "ooui-outline-control-move-up": "घटक (आयटम) वर सरकवा",
-       "ooui-toolbar-more": "अधिक"
+       "ooui-toolbar-more": "अधिक",
+       "ooui-toolgroup-expand": "अधिक",
+       "ooui-dialog-message-accept": "ठिक आहे",
+       "ooui-dialog-message-reject": "रद्द करा",
+       "ooui-dialog-process-dismiss": "रद्द करा",
+       "ooui-dialog-process-continue": "चालू ठेवा"
 }
index 823d493..2be1122 100644 (file)
        "ooui-outline-control-move-up": "Alihkan perkara ke atas",
        "ooui-outline-control-remove": "Buang perkara",
        "ooui-toolbar-more": "Selebihnya",
+       "ooui-toolgroup-expand": "Selengkapnya",
+       "ooui-toolgroup-collapse": "Secukupnya",
+       "ooui-dialog-message-accept": "OK",
        "ooui-dialog-message-reject": "Batal",
        "ooui-dialog-process-error": "Ada masalah",
        "ooui-dialog-process-dismiss": "Singkir",
-       "ooui-dialog-process-retry": "Cuba lagi"
+       "ooui-dialog-process-retry": "Cuba lagi",
+       "ooui-dialog-process-continue": "Teruskan"
 }
index 9166037..9c07f41 100644 (file)
@@ -3,8 +3,22 @@
                "authors": [
                        "Chelin",
                        "Chrisportelli",
-                       "PiRSquared17"
+                       "PiRSquared17",
+                       "C.R."
                ]
        },
-       "ooui-toolbar-more": "Atro"
+       "ooui-outline-control-move-down": "Mòve abbascio",
+       "ooui-outline-control-move-up": "Mòve ncoppa",
+       "ooui-outline-control-remove": "Leva elemento",
+       "ooui-toolbar-more": "Atro",
+       "ooui-toolgroup-expand": "Cchiù",
+       "ooui-toolgroup-collapse": "Meno",
+       "ooui-dialog-message-accept": "OK",
+       "ooui-dialog-message-reject": "Scancella",
+       "ooui-dialog-process-error": "Cocchosa è ghiuta malamente",
+       "ooui-dialog-process-dismiss": "Passa 'a vacca",
+       "ooui-dialog-process-retry": "Prova n'ata vota",
+       "ooui-dialog-process-continue": "Continua",
+       "ooui-selectfile-not-supported": "Filtro 'e selezione nun suppurtato",
+       "ooui-selectfile-placeholder": "Nun s'è scigliuto nisciuno file"
 }
index fbd0c8c..3023479 100644 (file)
@@ -30,5 +30,6 @@
        "ooui-dialog-process-error": "Coś poszło nie tak",
        "ooui-dialog-process-dismiss": "Ukryj",
        "ooui-dialog-process-retry": "Spróbuj ponownie",
-       "ooui-dialog-process-continue": "Kontynuuj"
+       "ooui-dialog-process-continue": "Kontynuuj",
+       "ooui-selectfile-placeholder": "Nie wybrano pliku"
 }
index 7b3176f..aab0aed 100644 (file)
@@ -24,5 +24,7 @@
        "ooui-dialog-process-error": "Algo correu mal",
        "ooui-dialog-process-dismiss": "Ignorar",
        "ooui-dialog-process-retry": "Tentar novamente",
-       "ooui-dialog-process-continue": "Continuar"
+       "ooui-dialog-process-continue": "Continuar",
+       "ooui-selectfile-not-supported": "A seleção de ficheiros não é suportada",
+       "ooui-selectfile-placeholder": "Nenhum ficheiro selecionado"
 }
index c1b794a..bef65ed 100644 (file)
@@ -31,5 +31,8 @@
        "ooui-dialog-process-error": "Title for process dialog error description",
        "ooui-dialog-process-dismiss": "Label for process dialog dismiss error button, visible when describing errors\n{{Identical|Dismiss}}",
        "ooui-dialog-process-retry": "Label for process dialog retry action button, visible when describing recoverable errors\n{{Identical|Try again}}",
-       "ooui-dialog-process-continue": "Label for process dialog retry action button, visible when describing only warnings\n{{Identical|Continue}}"
+       "ooui-dialog-process-continue": "Label for process dialog retry action button, visible when describing only warnings\n{{Identical|Continue}}",
+       "ooui-selectfile-not-supported": "Label for the file selection dialog if file selection is not supported",
+       "ooui-selectfile-placeholder": "Label for the file selection dialog when no file is currently selected",
+       "ooui-semicolon-separator": "{{optional}} Semicolon used as a separator"
 }
index 258f3e7..970a602 100644 (file)
@@ -19,5 +19,7 @@
        "ooui-dialog-process-error": "Ceva nu a funcționat",
        "ooui-dialog-process-dismiss": "Renunțare",
        "ooui-dialog-process-retry": "Reîncearcă",
-       "ooui-dialog-process-continue": "Continuă"
+       "ooui-dialog-process-continue": "Continuă",
+       "ooui-selectfile-not-supported": "Selecția de fișiere nu este acceptată",
+       "ooui-selectfile-placeholder": "Niciun fișier selectat"
 }
diff --git a/resources/lib/oojs-ui/i18n/sa.json b/resources/lib/oojs-ui/i18n/sa.json
new file mode 100644 (file)
index 0000000..49f038c
--- /dev/null
@@ -0,0 +1,14 @@
+{
+       "@metadata": {
+               "authors": [
+                       "NehalDaveND"
+               ]
+       },
+       "ooui-outline-control-remove": "वस्तु निष्कास्यताम्",
+       "ooui-toolbar-more": "अधिकम्",
+       "ooui-toolgroup-expand": "अधिकम्",
+       "ooui-dialog-message-accept": "अस्तु",
+       "ooui-dialog-message-reject": "निरस्यताम्",
+       "ooui-dialog-process-retry": "पुनः चेष्ट्यताम्",
+       "ooui-dialog-process-continue": "निरन्तरम्"
+}
index d486870..957b0d0 100644 (file)
@@ -9,5 +9,14 @@
                        "Visdaviva",
                        "மதனாஹரன்"
                ]
-       }
+       },
+       "ooui-toolbar-more": "మరిన్ని",
+       "ooui-toolgroup-expand": "మరిన్ని",
+       "ooui-toolgroup-collapse": "కొన్ని",
+       "ooui-dialog-message-accept": "సరే",
+       "ooui-dialog-message-reject": "రద్దుచేయి",
+       "ooui-dialog-process-error": "ఏదో పొరపాటు జరిగింది",
+       "ooui-dialog-process-dismiss": "రద్దుచేయి",
+       "ooui-dialog-process-retry": "మళ్ళీ ప్రయత్నించు",
+       "ooui-dialog-process-continue": "కొనసాగించు"
 }
diff --git a/resources/lib/oojs-ui/i18n/xmf.json b/resources/lib/oojs-ui/i18n/xmf.json
new file mode 100644 (file)
index 0000000..f5bfa2c
--- /dev/null
@@ -0,0 +1,19 @@
+{
+       "@metadata": {
+               "authors": [
+                       "David1010"
+               ]
+       },
+       "ooui-outline-control-move-down": "ელემენტის ქვემოთ გადატანა",
+       "ooui-outline-control-move-up": "ელემენტის ზემოთ გადატანა",
+       "ooui-outline-control-remove": "ელემენტის წაშლა",
+       "ooui-toolbar-more": "უმოსი",
+       "ooui-toolgroup-expand": "უმოსი",
+       "ooui-toolgroup-collapse": "რამდენიმე",
+       "ooui-dialog-message-accept": "ჯგირი",
+       "ooui-dialog-message-reject": "გოუქვაფა",
+       "ooui-dialog-process-error": "მოხდა რაღაც შეცდომა",
+       "ooui-dialog-process-dismiss": "დამალვა",
+       "ooui-dialog-process-retry": "კიდევ სცადეთ",
+       "ooui-dialog-process-continue": "გაგრძელება"
+}
index ed2f61e..7247d93 100644 (file)
@@ -30,5 +30,7 @@
        "ooui-dialog-process-error": "发生一些错误",
        "ooui-dialog-process-dismiss": "解除",
        "ooui-dialog-process-retry": "重试",
-       "ooui-dialog-process-continue": "继续"
+       "ooui-dialog-process-continue": "继续",
+       "ooui-selectfile-not-supported": "文件选择不受支持",
+       "ooui-selectfile-placeholder": "没有选定文件"
 }
diff --git a/resources/lib/oojs-ui/oojs-ui-apex-noimages.css b/resources/lib/oojs-ui/oojs-ui-apex-noimages.css
new file mode 100644 (file)
index 0000000..13e9d27
--- /dev/null
@@ -0,0 +1,2669 @@
+/*!
+ * OOjs UI v0.11.4
+ * https://www.mediawiki.org/wiki/OOjs_UI
+ *
+ * Copyright 2011–2015 OOjs Team and other contributors.
+ * Released under the MIT license
+ * http://oojs.mit-license.org
+ *
+ * Date: 2015-06-09T22:03:21Z
+ */
+@-webkit-keyframes oo-ui-progressBarWidget-slide {
+       from {
+               margin-left: -40%;
+       }
+       to {
+               margin-left: 100%;
+       }
+}
+@-moz-keyframes oo-ui-progressBarWidget-slide {
+       from {
+               margin-left: -40%;
+       }
+       to {
+               margin-left: 100%;
+       }
+}
+@-ms-keyframes oo-ui-progressBarWidget-slide {
+       from {
+               margin-left: -40%;
+       }
+       to {
+               margin-left: 100%;
+       }
+}
+@-o-keyframes oo-ui-progressBarWidget-slide {
+       from {
+               margin-left: -40%;
+       }
+       to {
+               margin-left: 100%;
+       }
+}
+@keyframes oo-ui-progressBarWidget-slide {
+       from {
+               margin-left: -40%;
+       }
+       to {
+               margin-left: 100%;
+       }
+}
+/* @noflip */
+.oo-ui-rtl {
+       direction: rtl;
+}
+/* @noflip */
+.oo-ui-ltr {
+       direction: ltr;
+}
+.oo-ui-element-hidden {
+       display: none !important;
+}
+.oo-ui-buttonElement > .oo-ui-buttonElement-button {
+       cursor: pointer;
+       display: inline-block;
+       vertical-align: middle;
+       font: inherit;
+       white-space: nowrap;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
+}
+.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon,
+.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
+       display: none;
+}
+.oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
+       cursor: default;
+}
+.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 {
+       display: inline-block;
+       vertical-align: middle;
+       background-position: center center;
+       background-repeat: no-repeat;
+}
+.oo-ui-buttonElement-frameless {
+       display: inline-block;
+       position: relative;
+}
+.oo-ui-buttonElement-frameless.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+       display: inline-block;
+       vertical-align: middle;
+}
+.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
+       display: inline-block;
+       vertical-align: top;
+       text-align: center;
+}
+.oo-ui-buttonElement-framed.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+       display: inline-block;
+       vertical-align: middle;
+}
+.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button,
+.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-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
+       margin-left: 0;
+}
+.oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
+       width: 0.9375em;
+       height: 0.9375em;
+       margin: 0.46875em;
+}
+.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
+       margin-left: 0.46875em;
+}
+.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
+       width: 1.875em;
+       height: 1.875em;
+}
+.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
+       /* Don't animate opacities for now, causes wiggling in Chrome (bug 63020) */
+       /*.oo-ui-transition(opacity 200ms);*/
+}
+.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:focus {
+       outline: none;
+}
+.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:hover > .oo-ui-iconElement-icon,
+.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:focus > .oo-ui-iconElement-icon {
+       opacity: 1;
+}
+.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
+.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
+       color: #000000;
+}
+.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+       color: #333333;
+}
+.oo-ui-buttonElement-frameless.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+       margin-left: 0.25em;
+}
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+       color: #087ecc;
+}
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+       color: #76ab36;
+}
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+       color: #d45353;
+}
+.oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
+       opacity: 0.2;
+}
+.oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+       color: #cccccc;
+}
+.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
+       margin: 0.1em 0;
+       padding: 0.2em 0.8em;
+       border-radius: 0.3em;
+       text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
+       border: 1px #c9c9c9 solid;
+       -webkit-transition: border-color 100ms ease-in-out;
+          -moz-transition: border-color 100ms ease-in-out;
+           -ms-transition: border-color 100ms ease-in-out;
+            -o-transition: border-color 100ms ease-in-out;
+               transition: border-color 100ms ease-in-out;
+       background: #eeeeee;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#dddddd');
+       background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #ffffff), color-stop(100%, #dddddd));
+       background-image: -webkit-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+       background-image:    -moz-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+       background-image:      -o-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+       background-image:         linear-gradient(to bottom, #ffffff 0%, #dddddd 100%);
+}
+.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:focus {
+       border-color: #aaaaaa;
+       outline: none;
+}
+.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.875em;
+}
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement-framed.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-framed.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
+       box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.07);
+       color: black;
+       border-color: #c9c9c9;
+       background: #eeeeee;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#dddddd', endColorstr='#ffffff');
+       background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #dddddd), color-stop(100%, #ffffff));
+       background-image: -webkit-linear-gradient(top, #dddddd 0%, #ffffff 100%);
+       background-image:    -moz-linear-gradient(top, #dddddd 0%, #ffffff 100%);
+       background-image:      -o-linear-gradient(top, #dddddd 0%, #ffffff 100%);
+       background-image:         linear-gradient(to bottom, #dddddd 0%, #ffffff 100%);
+}
+.oo-ui-buttonElement-framed.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
+       margin-left: -0.5em;
+       margin-right: -0.5em;
+}
+.oo-ui-buttonElement-framed.oo-ui-iconElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
+       margin-right: 0.3em;
+}
+.oo-ui-buttonElement-framed.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
+       /* -0.5 - 0.475 */
+       margin-left: -0.005em;
+       margin-right: -0.005em;
+}
+.oo-ui-buttonElement-framed.oo-ui-indicatorElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
+.oo-ui-buttonElement-framed.oo-ui-indicatorElement.oo-ui-iconElement:not( .oo-ui-labelElement ) > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
+       margin-left: 0.46875em;
+       margin-right: -0.275em;
+}
+.oo-ui-buttonElement-framed.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button {
+       border: 1px solid #a6cee1;
+       background: #cde7f4;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#eaf4fa', endColorstr='#b0d9ee');
+       background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #eaf4fa), color-stop(100%, #b0d9ee));
+       background-image: -webkit-linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
+       background-image:    -moz-linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
+       background-image:      -o-linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
+       background-image:         linear-gradient(to bottom, #eaf4fa 0%, #b0d9ee 100%);
+}
+.oo-ui-buttonElement-framed.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-framed.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus {
+       border-color: #9dc2d4;
+}
+.oo-ui-buttonElement-framed.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement-framed.oo-ui-flaggedElement-progressive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-framed.oo-ui-flaggedElement-progressive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
+       border: 1px solid #a6cee1;
+       background: #cde7f4;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#b0d9ee', endColorstr='#eaf4fa');
+       background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #b0d9ee), color-stop(100%, #eaf4fa));
+       background-image: -webkit-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
+       background-image:    -moz-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
+       background-image:      -o-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
+       background-image:         linear-gradient(to bottom, #b0d9ee 0%, #eaf4fa 100%);
+}
+.oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button {
+       border: 1px solid #b8d892;
+       background: #daf0be;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f0fbe1', endColorstr='#c3e59a');
+       background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #f0fbe1), color-stop(100%, #c3e59a));
+       background-image: -webkit-linear-gradient(top, #f0fbe1 0%, #c3e59a 100%);
+       background-image:    -moz-linear-gradient(top, #f0fbe1 0%, #c3e59a 100%);
+       background-image:      -o-linear-gradient(top, #f0fbe1 0%, #c3e59a 100%);
+       background-image:         linear-gradient(to bottom, #f0fbe1 0%, #c3e59a 100%);
+}
+.oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus {
+       border-color: #adcb89;
+}
+.oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
+       border: 1px solid #b8d892;
+       background: #daf0be;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#c3e59a', endColorstr='#f0fbe1');
+       background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #c3e59a), color-stop(100%, #f0fbe1));
+       background-image: -webkit-linear-gradient(top, #c3e59a 0%, #f0fbe1 100%);
+       background-image:    -moz-linear-gradient(top, #c3e59a 0%, #f0fbe1 100%);
+       background-image:      -o-linear-gradient(top, #c3e59a 0%, #f0fbe1 100%);
+       background-image:         linear-gradient(to bottom, #c3e59a 0%, #f0fbe1 100%);
+}
+.oo-ui-buttonElement-framed.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button {
+       color: #d45353;
+}
+.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button,
+.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 {
+       opacity: 0.5;
+       -webkit-transform: translate3d(0, 0, 0);
+       box-shadow: none;
+       color: #333333;
+       background: #eeeeee;
+       border-color: #cccccc;
+}
+.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button:focus,
+.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button:focus,
+.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button:focus {
+       border-color: #cccccc;
+       box-shadow: none;
+}
+.oo-ui-clippableElement-clippable {
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+}
+.oo-ui-draggableElement {
+       cursor: -webkit-grab -moz-grab, url(images/grab.cur), move;
+       /*
+        * HACK: In order to style horizontally, we must override
+        * OO.ui.OptionWidget's display rule that is currently set
+        * to be 'block'
+        */
+}
+.oo-ui-draggableElement-dragging {
+       cursor: -webkit-grabbing -moz-grabbing, url(images/grabbing.cur), move;
+       background: rgba(0, 0, 0, 0.2);
+       opacity: 0.4;
+}
+.oo-ui-draggableGroupElement-horizontal .oo-ui-draggableElement.oo-ui-optionWidget {
+       display: inline-block;
+}
+.oo-ui-draggableGroupElement-placeholder {
+       position: absolute;
+       display: block;
+       background: rgba(0, 0, 0, 0.4);
+}
+.oo-ui-iconElement .oo-ui-iconElement-icon,
+.oo-ui-iconElement.oo-ui-iconElement-icon {
+       opacity: 0.8;
+       background-size: contain;
+       background-position: center center;
+}
+.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator,
+.oo-ui-indicatorElement.oo-ui-indicatorElement-indicator {
+       opacity: 0.8;
+       background-size: contain;
+       background-position: center center;
+}
+.oo-ui-lookupElement > .oo-ui-menuSelectWidget {
+       z-index: 1;
+       width: 100%;
+}
+.oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous > .oo-ui-panelLayout-scrollable {
+       overflow-y: hidden;
+}
+.oo-ui-bookletLayout-stackLayout > .oo-ui-panelLayout {
+       width: 100%;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+}
+.oo-ui-bookletLayout-stackLayout > .oo-ui-panelLayout-scrollable {
+       overflow-y: auto;
+}
+.oo-ui-bookletLayout-stackLayout > .oo-ui-panelLayout-padded {
+       padding: 2em;
+}
+.oo-ui-bookletLayout-outlinePanel-editable > .oo-ui-outlineSelectWidget {
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
+       bottom: 3em;
+       overflow-y: auto;
+}
+.oo-ui-bookletLayout-outlinePanel > .oo-ui-outlineControlsWidget {
+       position: absolute;
+       bottom: 0;
+       left: 0;
+       right: 0;
+}
+.oo-ui-bookletLayout-stackLayout > .oo-ui-panelLayout {
+       padding: 1.5em;
+}
+.oo-ui-bookletLayout-outlinePanel {
+       border-right: 1px solid #dddddd;
+}
+.oo-ui-bookletLayout-outlinePanel > .oo-ui-outlineControlsWidget {
+       box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
+}
+.oo-ui-indexLayout > .oo-ui-menuLayout-menu {
+       height: 3em;
+}
+.oo-ui-indexLayout > .oo-ui-menuLayout-content {
+       top: 3em;
+}
+.oo-ui-indexLayout-stackLayout > .oo-ui-panelLayout {
+       padding: 1.5em;
+}
+.oo-ui-fieldLayout {
+       display: block;
+       margin-bottom: 1em;
+}
+.oo-ui-fieldLayout:before,
+.oo-ui-fieldLayout:after {
+       content: " ";
+       display: table;
+}
+.oo-ui-fieldLayout:after {
+       clear: both;
+}
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field {
+       display: block;
+       float: left;
+}
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
+       text-align: right;
+}
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body {
+       display: table;
+}
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field {
+       display: table-cell;
+       vertical-align: middle;
+}
+.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-top > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
+       display: inline-block;
+}
+.oo-ui-fieldLayout > .oo-ui-fieldLayout-help {
+       float: right;
+}
+.oo-ui-fieldLayout > .oo-ui-fieldLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
+       z-index: 1;
+}
+.oo-ui-fieldLayout > .oo-ui-fieldLayout-help .oo-ui-fieldLayout-help-content {
+       padding: 0.5em 0.75em;
+       line-height: 1.5em;
+}
+.oo-ui-fieldLayout:last-child {
+       margin-bottom: 0;
+}
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
+       padding-top: 0.5em;
+       margin-right: 5%;
+       width: 35%;
+}
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field {
+       width: 60%;
+}
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
+       padding: 0.5em;
+}
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field {
+       padding: 0.5em 0;
+}
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
+       padding: 0.5em 0;
+}
+.oo-ui-fieldLayout > .oo-ui-popupButtonWidget {
+       margin-right: 0;
+       margin-top: 0.25em;
+}
+.oo-ui-fieldLayout > .oo-ui-popupButtonWidget:last-child {
+       margin-right: 0;
+}
+.oo-ui-fieldLayout-disabled .oo-ui-labelElement-label {
+       color: #cccccc;
+}
+.oo-ui-actionFieldLayout-input,
+.oo-ui-actionFieldLayout-button {
+       display: table-cell;
+       vertical-align: middle;
+}
+.oo-ui-actionFieldLayout-input {
+       padding-right: 1em;
+}
+.oo-ui-actionFieldLayout-button {
+       width: 1%;
+       white-space: nowrap;
+}
+.oo-ui-fieldsetLayout {
+       position: relative;
+       margin: 0;
+       padding: 0;
+       border: none;
+}
+.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
+       display: block;
+       position: absolute;
+       background-position: center center;
+       background-repeat: no-repeat;
+}
+.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label {
+       display: inline-block;
+}
+.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-help {
+       float: right;
+}
+.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
+       z-index: 1;
+}
+.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-help .oo-ui-fieldsetLayout-help-content {
+       padding: 0.5em 0.75em;
+       line-height: 1.5em;
+}
+.oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout,
+.oo-ui-fieldsetLayout + .oo-ui-formLayout {
+       margin-top: 2em;
+}
+.oo-ui-fieldsetLayout > .oo-ui-labelElement-label {
+       font-size: 1.1em;
+       margin-bottom: 0.5em;
+       padding: 0.25em 0;
+       font-weight: bold;
+}
+.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-labelElement-label {
+       padding-left: 2em;
+       line-height: 1.8em;
+}
+.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
+       left: 0;
+       top: 0.25em;
+       width: 1.875em;
+       height: 1.875em;
+}
+.oo-ui-fieldsetLayout > .oo-ui-popupButtonWidget {
+       margin-right: 0;
+}
+.oo-ui-fieldsetLayout > .oo-ui-popupButtonWidget:last-child {
+       margin-right: 0;
+}
+.oo-ui-formLayout + .oo-ui-fieldsetLayout,
+.oo-ui-formLayout + .oo-ui-formLayout {
+       margin-top: 2em;
+}
+.oo-ui-menuLayout {
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
+       bottom: 0;
+}
+.oo-ui-menuLayout-menu,
+.oo-ui-menuLayout-content {
+       position: absolute;
+       -webkit-transition: all ease-in-out 200ms;
+          -moz-transition: all ease-in-out 200ms;
+           -ms-transition: all ease-in-out 200ms;
+            -o-transition: all ease-in-out 200ms;
+               transition: all ease-in-out 200ms;
+}
+.oo-ui-menuLayout-menu {
+       height: 18em;
+       width: 18em;
+}
+.oo-ui-menuLayout-content {
+       top: 18em;
+       left: 18em;
+       right: 18em;
+       bottom: 18em;
+}
+.oo-ui-menuLayout.oo-ui-menuLayout-hideMenu .oo-ui-menuLayout-menu {
+       width: 0 !important;
+       height: 0 !important;
+       overflow: hidden;
+}
+.oo-ui-menuLayout.oo-ui-menuLayout-hideMenu .oo-ui-menuLayout-content {
+       top: 0 !important;
+       left: 0 !important;
+       right: 0 !important;
+       bottom: 0 !important;
+}
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-top .oo-ui-menuLayout-menu {
+       width: auto !important;
+       left: 0;
+       top: 0;
+       right: 0;
+}
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-top .oo-ui-menuLayout-content {
+       right: 0 !important;
+       bottom: 0 !important;
+       left: 0 !important;
+}
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-after .oo-ui-menuLayout-menu {
+       height: auto !important;
+       top: 0;
+       right: 0;
+       bottom: 0;
+}
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-after .oo-ui-menuLayout-content {
+       bottom: 0 !important;
+       left: 0 !important;
+       top: 0 !important;
+}
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-bottom .oo-ui-menuLayout-menu {
+       width: auto !important;
+       right: 0;
+       bottom: 0;
+       left: 0;
+}
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-bottom .oo-ui-menuLayout-content {
+       left: 0 !important;
+       top: 0 !important;
+       right: 0 !important;
+}
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-before .oo-ui-menuLayout-menu {
+       height: auto !important;
+       bottom: 0;
+       left: 0;
+       top: 0;
+}
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-before .oo-ui-menuLayout-content {
+       top: 0 !important;
+       right: 0 !important;
+       bottom: 0 !important;
+}
+.oo-ui-panelLayout {
+       position: relative;
+}
+.oo-ui-panelLayout-scrollable {
+       overflow-y: auto;
+}
+.oo-ui-panelLayout-expanded {
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
+       bottom: 0;
+}
+.oo-ui-panelLayout-padded {
+       padding: 1.25em;
+}
+.oo-ui-panelLayout-framed {
+       border-radius: 0.5em;
+       box-shadow: 0 0.25em 1em rgba(0, 0, 0, 0.25);
+}
+.oo-ui-stackLayout-continuous > .oo-ui-panelLayout {
+       display: block;
+       position: relative;
+}
+.oo-ui-popupTool .oo-ui-popupWidget-popup,
+.oo-ui-popupTool .oo-ui-popupWidget-anchor {
+       z-index: 4;
+}
+.oo-ui-popupTool .oo-ui-popupWidget {
+       /* @noflip */
+       margin-left: 1.25em;
+}
+.oo-ui-toolGroupTool > .oo-ui-popupToolGroup {
+       border: 0;
+       border-radius: 0;
+       margin: 0;
+}
+.oo-ui-toolGroupTool:first-child > .oo-ui-popupToolGroup {
+       border-top-left-radius: 0.3125em;
+       border-bottom-left-radius: 0.3125em;
+}
+.oo-ui-toolGroupTool:last-child > .oo-ui-popupToolGroup {
+       border-top-right-radius: 0.3125em;
+       border-bottom-right-radius: 0.3125em;
+}
+.oo-ui-toolGroupTool > .oo-ui-popupToolGroup > .oo-ui-popupToolGroup-handle {
+       height: 1.875em;
+       padding: 0.3125em;
+}
+.oo-ui-toolGroupTool > .oo-ui-popupToolGroup > .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
+       height: 1.875em;
+       width: 1.875em;
+}
+.oo-ui-toolGroupTool > .oo-ui-popupToolGroup.oo-ui-labelElement > .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
+       line-height: 2.1em;
+}
+.oo-ui-toolGroup {
+       display: inline-block;
+       vertical-align: middle;
+       margin: 0.375em;
+       border-radius: 0.3125em;
+       border: 1px solid transparent;
+       -webkit-transition: border-color 300ms ease-in-out;
+          -moz-transition: border-color 300ms ease-in-out;
+           -ms-transition: border-color 300ms ease-in-out;
+            -o-transition: border-color 300ms ease-in-out;
+               transition: border-color 300ms ease-in-out;
+}
+.oo-ui-toolGroup-empty {
+       display: none;
+}
+.oo-ui-toolGroup .oo-ui-tool-link {
+       text-decoration: none;
+}
+.oo-ui-toolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
+       background-position: center center;
+       background-repeat: no-repeat;
+}
+.oo-ui-toolbar-narrow .oo-ui-toolGroup + .oo-ui-toolGroup {
+       margin-left: 0;
+}
+.oo-ui-toolGroup.oo-ui-widget-enabled:hover {
+       border-color: rgba(0, 0, 0, 0.1);
+}
+.oo-ui-toolGroup.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-tool-title {
+       color: #000000;
+}
+.oo-ui-barToolGroup > .oo-ui-iconElement-icon,
+.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;
+       vertical-align: top;
+}
+.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link {
+       display: block;
+}
+.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-tool-accel {
+       display: none;
+}
+.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-iconElement > .oo-ui-tool-link .oo-ui-iconElement-icon {
+       display: inline-block;
+       vertical-align: top;
+}
+.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-iconElement > .oo-ui-tool-link .oo-ui-tool-title {
+       display: none;
+}
+.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 {
+       cursor: default;
+}
+.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool {
+       margin: -1px 0 -1px -1px;
+       border: 1px solid transparent;
+}
+.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool:first-child {
+       border-top-left-radius: 0.3125em;
+       border-bottom-left-radius: 0.3125em;
+}
+.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool:last-child {
+       margin-right: -1px;
+       border-top-right-radius: 0.3125em;
+       border-bottom-right-radius: 0.3125em;
+}
+.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link {
+       height: 1.875em;
+       padding: 0.3125em;
+}
+.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-iconElement-icon {
+       height: 1.875em;
+       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;
+}
+.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-enabled:hover {
+       border-color: rgba(0, 0, 0, 0.2);
+}
+.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-tool-active.oo-ui-widget-enabled {
+       border-color: rgba(0, 0, 0, 0.2);
+       box-shadow: inset 0 0.0875em 0.0875em 0 rgba(0, 0, 0, 0.07);
+       background: #f8fbfd;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f1f7fb', endColorstr='#ffffff');
+       background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #f1f7fb), color-stop(100%, #ffffff));
+       background-image: -webkit-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+       background-image:    -moz-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+       background-image:      -o-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+       background-image:         linear-gradient(to bottom, #f1f7fb 0%, #ffffff 100%);
+}
+.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-tool-active.oo-ui-widget-enabled + .oo-ui-tool-active.oo-ui-widget-enabled {
+       border-left-color: rgba(0, 0, 0, 0.1);
+}
+.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-disabled > .oo-ui-tool-link .oo-ui-iconElement-icon {
+       opacity: 0.2;
+}
+.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-enabled:hover > .oo-ui-tool-link .oo-ui-iconElement-icon {
+       opacity: 1;
+}
+.oo-ui-barToolGroup.oo-ui-widget-disabled > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-iconElement-icon {
+       opacity: 0.2;
+}
+.oo-ui-popupToolGroup {
+       position: relative;
+       height: 2.5em;
+       min-width: 2.5em;
+}
+.oo-ui-popupToolGroup-handle {
+       display: block;
+       cursor: pointer;
+}
+.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
+.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
+       position: absolute;
+       background-position: center center;
+       background-repeat: no-repeat;
+}
+.oo-ui-popupToolGroup.oo-ui-widget-disabled .oo-ui-popupToolGroup-handle {
+       cursor: default;
+}
+.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
+       display: none;
+       position: absolute;
+       z-index: 4;
+}
+.oo-ui-popupToolGroup .oo-ui-toolGroup-tools .oo-ui-iconElement-icon {
+       background-repeat: no-repeat;
+       background-position: center center;
+}
+.oo-ui-popupToolGroup-active.oo-ui-widget-enabled > .oo-ui-toolGroup-tools {
+       display: block;
+}
+.oo-ui-popupToolGroup-left > .oo-ui-toolGroup-tools {
+       left: 0;
+}
+.oo-ui-popupToolGroup-right > .oo-ui-toolGroup-tools {
+       right: 0;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link {
+       display: table;
+       width: 100%;
+       vertical-align: middle;
+       white-space: nowrap;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon,
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-accel,
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
+       display: table-cell;
+       vertical-align: middle;
+}
+.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) {
+       padding-left: 3em;
+}
+.oo-ui-toolbar-narrow .oo-ui-popupToolGroup {
+       min-width: 1.875em;
+}
+.oo-ui-popupToolGroup.oo-ui-iconElement {
+       min-width: 3.125em;
+}
+.oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-iconElement {
+       min-width: 2.5em;
+}
+.oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
+       min-width: 4.375em;
+}
+.oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
+       min-width: 3.75em;
+}
+.oo-ui-popupToolGroup.oo-ui-labelElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
+       line-height: 2.6em;
+       margin: 0 1em;
+}
+.oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-labelElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
+       margin: 0 0.5em;
+}
+.oo-ui-popupToolGroup.oo-ui-labelElement.oo-ui-iconElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
+       margin-left: 3em;
+}
+.oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-labelElement.oo-ui-iconElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
+       margin-left: 2.5em;
+}
+.oo-ui-popupToolGroup.oo-ui-labelElement.oo-ui-indicatorElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
+       margin-right: 2.25em;
+}
+.oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-labelElement.oo-ui-indicatorElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
+       margin-right: 1.75em;
+}
+.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
+       width: 0.9375em;
+       height: 0.9375em;
+       margin: 0.78125em;
+       top: 0;
+       right: 0;
+}
+.oo-ui-toolbar-narrow .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
+       right: -0.3125em;
+}
+.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
+       width: 1.875em;
+       height: 1.875em;
+       margin: 0.3125em;
+       top: 0;
+       left: 0.3125em;
+}
+.oo-ui-toolbar-narrow .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
+       left: 0;
+}
+.oo-ui-popupToolGroup-header {
+       line-height: 2.6em;
+       margin: 0 0.6em;
+       font-weight: bold;
+}
+.oo-ui-popupToolGroup-active.oo-ui-widget-enabled {
+       border-bottom-left-radius: 0;
+       border-bottom-right-radius: 0;
+       box-shadow: inset 0 0.0875em 0.0875em 0 rgba(0, 0, 0, 0.07);
+       background: #f8fbfd;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f1f7fb', endColorstr='#ffffff');
+       background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #f1f7fb), color-stop(100%, #ffffff));
+       background-image: -webkit-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+       background-image:    -moz-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+       background-image:      -o-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+       background-image:         linear-gradient(to bottom, #f1f7fb 0%, #ffffff 100%);
+}
+.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
+       top: 2.5em;
+       margin: 0 -1px;
+       border: 1px solid #cccccc;
+       background-color: white;
+       box-shadow: 0 0.3125em 1.25em rgba(0, 0, 0, 0.25);
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link {
+       padding: 0.3125em 0 0.3125em 0.3125em;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
+       height: 1.875em;
+       width: 1.875em;
+       min-width: 1.875em;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
+       padding-left: 0.5em;
+}
+.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;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-accel {
+       color: #888888;
+}
+.oo-ui-listToolGroup .oo-ui-tool {
+       display: block;
+       -webkit-box-sizing: border-box;
+          -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-listToolGroup.oo-ui-popupToolGroup-active {
+       border-color: rgba(0, 0, 0, 0.2);
+}
+.oo-ui-listToolGroup .oo-ui-tool {
+       border: 1px solid transparent;
+       margin: -1px 0;
+       padding: 0 0.625em 0 0;
+}
+.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled {
+       border-color: rgba(0, 0, 0, 0.1);
+       box-shadow: inset 0 0.0875em 0.0875em 0 rgba(0, 0, 0, 0.07);
+       background: #f8fbfd;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f1f7fb', endColorstr='#ffffff');
+       background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #f1f7fb), color-stop(100%, #ffffff));
+       background-image: -webkit-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+       background-image:    -moz-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+       background-image:      -o-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+       background-image:         linear-gradient(to bottom, #f1f7fb 0%, #ffffff 100%);
+}
+.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled + .oo-ui-tool-active.oo-ui-widget-enabled {
+       border-top-color: rgba(0, 0, 0, 0.1);
+}
+.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled:hover {
+       border-color: rgba(0, 0, 0, 0.2);
+}
+.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
+       border-color: rgba(0, 0, 0, 0.2);
+}
+.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover .oo-ui-tool-link .oo-ui-iconElement-icon {
+       opacity: 1;
+}
+.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title {
+       color: #cccccc;
+}
+.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-accel {
+       color: #dddddd;
+}
+.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
+       opacity: 0.2;
+}
+.oo-ui-listToolGroup.oo-ui-widget-disabled {
+       color: #cccccc;
+}
+.oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator,
+.oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
+       opacity: 0.2;
+}
+.oo-ui-menuToolGroup {
+       border-color: rgba(0, 0, 0, 0.1);
+}
+.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;
+}
+.oo-ui-toolbar-narrow .oo-ui-menuToolGroup .oo-ui-popupToolGroup-handle {
+       min-width: 8.125em;
+}
+.oo-ui-menuToolGroup .oo-ui-toolGroup-tools {
+       padding: 0.3125em 0 0.3125em 0;
+}
+.oo-ui-menuToolGroup.oo-ui-widget-enabled:hover {
+       border-color: rgba(0, 0, 0, 0.2);
+}
+.oo-ui-menuToolGroup.oo-ui-popupToolGroup-active {
+       border-color: rgba(0, 0, 0, 0.25);
+}
+.oo-ui-menuToolGroup .oo-ui-tool {
+       padding: 0 1.25em 0 0.3125em;
+}
+.oo-ui-menuToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
+       background-image: none;
+}
+.oo-ui-menuToolGroup .oo-ui-tool-active .oo-ui-tool-link .oo-ui-iconElement-icon {
+       background-image: url("themes/apex/images/icons/check.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/apex/images/icons/check.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/apex/images/icons/check.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/apex/images/icons/check.png");
+}
+.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
+       background-color: #e1f3ff;
+}
+.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title {
+       color: #cccccc;
+}
+.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
+       opacity: 0.2;
+}
+.oo-ui-menuToolGroup.oo-ui-widget-disabled {
+       color: #cccccc;
+       border-color: rgba(0, 0, 0, 0.05);
+}
+.oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator,
+.oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
+       opacity: 0.2;
+}
+.oo-ui-toolbar {
+       clear: both;
+}
+.oo-ui-toolbar-bar {
+       line-height: 1em;
+       position: relative;
+}
+.oo-ui-toolbar-actions {
+       float: right;
+}
+.oo-ui-toolbar-actions .oo-ui-toolbar {
+       display: inline-block;
+}
+.oo-ui-toolbar-tools {
+       display: inline;
+       white-space: nowrap;
+}
+.oo-ui-toolbar-narrow .oo-ui-toolbar-tools {
+       white-space: normal;
+}
+.oo-ui-toolbar-tools .oo-ui-tool {
+       white-space: normal;
+}
+.oo-ui-toolbar-tools,
+.oo-ui-toolbar-actions,
+.oo-ui-toolbar-shadow {
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
+}
+.oo-ui-toolbar-actions .oo-ui-popupWidget {
+       -webkit-touch-callout: default;
+       -webkit-user-select: all;
+          -moz-user-select: all;
+           -ms-user-select: all;
+               user-select: all;
+}
+.oo-ui-toolbar-shadow {
+       background-position: left top;
+       background-repeat: repeat-x;
+       position: absolute;
+       width: 100%;
+       pointer-events: none;
+}
+.oo-ui-toolbar-bar {
+       border-bottom: 1px solid #cccccc;
+       background: #f8fbfd;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#f1f7fb');
+       background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #ffffff), color-stop(100%, #f1f7fb));
+       background-image: -webkit-linear-gradient(top, #ffffff 0%, #f1f7fb 100%);
+       background-image:    -moz-linear-gradient(top, #ffffff 0%, #f1f7fb 100%);
+       background-image:      -o-linear-gradient(top, #ffffff 0%, #f1f7fb 100%);
+       background-image:         linear-gradient(to bottom, #ffffff 0%, #f1f7fb 100%);
+}
+.oo-ui-toolbar-bar .oo-ui-toolbar-bar {
+       border: none;
+       background: none;
+}
+.oo-ui-toolbar-actions > .oo-ui-buttonElement {
+       margin-top: 0.4em;
+       margin-bottom: 0.4em;
+}
+.oo-ui-toolbar-actions > .oo-ui-buttonElement:last-child {
+       margin-right: 0.5em;
+}
+.oo-ui-toolbar-shadow {
+       background-image: /* @embed */ url(themes/apex/images/toolbar-shadow.png);
+       bottom: -9px;
+       height: 9px;
+       opacity: 0.5;
+       -webkit-transition: opacity 500ms ease-in-out;
+          -moz-transition: opacity 500ms ease-in-out;
+           -ms-transition: opacity 500ms ease-in-out;
+            -o-transition: opacity 500ms ease-in-out;
+               transition: opacity 500ms ease-in-out;
+}
+.oo-ui-optionWidget {
+       position: relative;
+       display: block;
+       cursor: pointer;
+       padding: 0.25em 0.5em;
+       border: none;
+}
+.oo-ui-optionWidget.oo-ui-widget-disabled {
+       cursor: default;
+}
+.oo-ui-optionWidget.oo-ui-labelElement .oo-ui-labelElement-label {
+       display: block;
+       white-space: nowrap;
+       text-overflow: ellipsis;
+       overflow: hidden;
+}
+.oo-ui-optionWidget-highlighted {
+       background-color: #e1f3ff;
+}
+.oo-ui-optionWidget .oo-ui-labelElement-label {
+       line-height: 1.5em;
+}
+.oo-ui-selectWidget-depressed .oo-ui-optionWidget-selected {
+       background-color: #a7dcff;
+}
+.oo-ui-selectWidget-pressed .oo-ui-optionWidget-pressed,
+.oo-ui-selectWidget-pressed .oo-ui-optionWidget-pressed.oo-ui-optionWidget-highlighted,
+.oo-ui-selectWidget-pressed .oo-ui-optionWidget-pressed.oo-ui-optionWidget-highlighted.oo-ui-optionWidget-selected {
+       background-color: #a7dcff;
+}
+.oo-ui-optionWidget.oo-ui-widget-disabled {
+       color: #cccccc;
+}
+.oo-ui-decoratedOptionWidget {
+       padding: 0.5em 2em 0.5em 3em;
+}
+.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
+.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
+       position: absolute;
+       background-repeat: no-repeat;
+       background-position: center center;
+}
+.oo-ui-decoratedOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
+.oo-ui-decoratedOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
+       top: 0;
+       height: 100%;
+}
+.oo-ui-decoratedOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
+       width: 1.875em;
+       left: 0.5em;
+}
+.oo-ui-decoratedOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
+       width: 0.9375em;
+       right: 0.5em;
+}
+.oo-ui-decoratedOptionWidget.oo-ui-widget-disabled .oo-ui-iconElement-icon,
+.oo-ui-decoratedOptionWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
+       opacity: 0.2;
+}
+.oo-ui-buttonSelectWidget {
+       display: inline-block;
+       white-space: nowrap;
+       border-radius: 0.3em;
+       margin-right: 0.5em;
+}
+.oo-ui-buttonSelectWidget:last-child {
+       margin-right: 0;
+}
+.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
+       border-radius: 0;
+       margin-left: -1px;
+}
+.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:first-child .oo-ui-buttonElement-button {
+       border-bottom-left-radius: 0.3em;
+       border-top-left-radius: 0.3em;
+       margin-left: 0;
+}
+.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonElement-button {
+       border-bottom-right-radius: 0.3em;
+       border-top-right-radius: 0.3em;
+}
+.oo-ui-radioSelectWidget {
+       padding: 0.75em 0 0.5em 0;
+}
+.oo-ui-buttonOptionWidget {
+       display: inline-block;
+       padding: 0;
+       background-color: transparent;
+}
+.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
+       position: relative;
+}
+.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
+.oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
+       position: static;
+       display: inline-block;
+       vertical-align: middle;
+}
+.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
+       height: 1.875em;
+}
+.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
+       margin-top: 0;
+}
+.oo-ui-buttonOptionWidget.oo-ui-optionWidget-selected,
+.oo-ui-buttonOptionWidget.oo-ui-optionWidget-pressed,
+.oo-ui-buttonOptionWidget.oo-ui-optionWidget-highlighted {
+       background-color: transparent;
+}
+.oo-ui-radioOptionWidget {
+       cursor: default;
+       padding: 0;
+       background-color: transparent;
+}
+.oo-ui-radioOptionWidget .oo-ui-radioInputWidget,
+.oo-ui-radioOptionWidget.oo-ui-labelElement .oo-ui-labelElement-label {
+       display: inline-block;
+       vertical-align: middle;
+}
+.oo-ui-radioOptionWidget.oo-ui-optionWidget-selected,
+.oo-ui-radioOptionWidget.oo-ui-optionWidget-pressed,
+.oo-ui-radioOptionWidget.oo-ui-optionWidget-highlighted {
+       background-color: transparent;
+}
+.oo-ui-radioOptionWidget.oo-ui-labelElement .oo-ui-labelElement-label {
+       padding-left: 0.5em;
+}
+.oo-ui-radioOptionWidget .oo-ui-radioInputWidget {
+       margin-right: 0;
+}
+.oo-ui-labelWidget {
+       display: inline-block;
+       padding: 0.5em 0;
+}
+.oo-ui-iconWidget {
+       display: inline-block;
+       vertical-align: middle;
+       background-position: center center;
+       background-repeat: no-repeat;
+       line-height: 2.5em;
+       height: 1.875em;
+       width: 1.875em;
+}
+.oo-ui-iconWidget.oo-ui-widget-disabled {
+       opacity: 0.2;
+}
+.oo-ui-indicatorWidget {
+       display: inline-block;
+       vertical-align: middle;
+       background-position: center center;
+       background-repeat: no-repeat;
+       line-height: 2.5em;
+       height: 0.9375em;
+       width: 0.9375em;
+       margin: 0.46875em;
+}
+.oo-ui-indicatorWidget.oo-ui-widget-disabled {
+       opacity: 0.2;
+}
+.oo-ui-buttonWidget {
+       display: inline-block;
+       vertical-align: middle;
+       margin-right: 0.5em;
+}
+.oo-ui-buttonWidget:last-child {
+       margin-right: 0;
+}
+.oo-ui-buttonGroupWidget {
+       display: inline-block;
+       white-space: nowrap;
+       border-radius: 0.3em;
+       margin-right: 0.5em;
+}
+.oo-ui-buttonGroupWidget:last-child {
+       margin-right: 0;
+}
+.oo-ui-buttonGroupWidget .oo-ui-buttonElement {
+       margin-right: 0;
+}
+.oo-ui-buttonGroupWidget .oo-ui-buttonElement:last-child {
+       margin-right: 0;
+}
+.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
+       border-radius: 0;
+       margin-left: -1px;
+}
+.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:first-child .oo-ui-buttonElement-button {
+       border-bottom-left-radius: 0.3em;
+       border-top-left-radius: 0.3em;
+       margin-left: 0;
+}
+.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:last-child .oo-ui-buttonElement-button {
+       border-bottom-right-radius: 0.3em;
+       border-top-right-radius: 0.3em;
+}
+.oo-ui-toggleButtonWidget {
+       display: inline-block;
+       vertical-align: middle;
+       margin-right: 0.5em;
+}
+.oo-ui-toggleButtonWidget:last-child {
+       margin-right: 0;
+}
+.oo-ui-toggleSwitchWidget {
+       position: relative;
+       display: inline-block;
+       vertical-align: middle;
+       overflow: hidden;
+       cursor: pointer;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+       -webkit-transform: translateZ(0px);
+          -moz-transform: translateZ(0px);
+           -ms-transform: translateZ(0px);
+            -o-transform: translateZ(0px);
+               transform: translateZ(0px);
+       height: 2em;
+       width: 4em;
+       border-radius: 1em;
+       box-shadow: 0 0 0 white, inset 0 0.1em 0.2em #dddddd;
+       border: 1px solid #cccccc;
+       margin-right: 0.5em;
+       background: #eeeeee;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#dddddd', endColorstr='#ffffff');
+       background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #dddddd), color-stop(100%, #ffffff));
+       background-image: -webkit-linear-gradient(top, #dddddd 0%, #ffffff 100%);
+       background-image:    -moz-linear-gradient(top, #dddddd 0%, #ffffff 100%);
+       background-image:      -o-linear-gradient(top, #dddddd 0%, #ffffff 100%);
+       background-image:         linear-gradient(to bottom, #dddddd 0%, #ffffff 100%);
+}
+.oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
+       cursor: default;
+}
+.oo-ui-toggleSwitchWidget-grip {
+       position: absolute;
+       display: block;
+       -webkit-box-sizing: border-box;
+          -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-grip {
+       top: 0.25em;
+       left: 0.25em;
+       width: 1.5em;
+       height: 1.5em;
+       margin-top: -1px;
+       border-radius: 1em;
+       box-shadow: 0 0.1em 0.25em rgba(0, 0, 0, 0.1);
+       border: 1px #c9c9c9 solid;
+       -webkit-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
+          -moz-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
+           -ms-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
+            -o-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
+               transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
+       background: #eeeeee;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#dddddd');
+       background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #ffffff), color-stop(100%, #dddddd));
+       background-image: -webkit-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+       background-image:    -moz-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+       background-image:      -o-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+       background-image:         linear-gradient(to bottom, #ffffff 0%, #dddddd 100%);
+}
+.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 {
+       border-radius: 1em;
+       box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.07);
+       -webkit-transition: opacity 200ms ease-in-out;
+          -moz-transition: opacity 200ms ease-in-out;
+           -ms-transition: opacity 200ms ease-in-out;
+            -o-transition: opacity 200ms ease-in-out;
+               transition: opacity 200ms ease-in-out;
+       background: #cde7f4;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#b0d9ee', endColorstr='#eaf4fa');
+       background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #b0d9ee), color-stop(100%, #eaf4fa));
+       background-image: -webkit-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
+       background-image:    -moz-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
+       background-image:      -o-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
+       background-image:         linear-gradient(to bottom, #b0d9ee 0%, #eaf4fa 100%);
+}
+.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-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-progressBarWidget {
+       max-width: 50em;
+       border: 1px solid #cccccc;
+       border-radius: 0.25em;
+       overflow: hidden;
+}
+.oo-ui-progressBarWidget-bar {
+       height: 1em;
+       border-right: 1px solid #cccccc;
+       -webkit-transition: width 200ms, margin-left 200ms;
+          -moz-transition: width 200ms, margin-left 200ms;
+           -ms-transition: width 200ms, margin-left 200ms;
+            -o-transition: width 200ms, margin-left 200ms;
+               transition: width 200ms, margin-left 200ms;
+       background: #cde7f4;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#eaf4fa', endColorstr='#b0d9ee');
+       background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #eaf4fa), color-stop(100%, #b0d9ee));
+       background-image: -webkit-linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
+       background-image:    -moz-linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
+       background-image:      -o-linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
+       background-image:         linear-gradient(to bottom, #eaf4fa 0%, #b0d9ee 100%);
+}
+.oo-ui-progressBarWidget-indeterminate .oo-ui-progressBarWidget-bar {
+       -webkit-animation: oo-ui-progressBarWidget-slide 2s infinite linear;
+          -moz-animation: oo-ui-progressBarWidget-slide 2s infinite linear;
+           -ms-animation: oo-ui-progressBarWidget-slide 2s infinite linear;
+            -o-animation: oo-ui-progressBarWidget-slide 2s infinite linear;
+               animation: oo-ui-progressBarWidget-slide 2s infinite linear;
+       width: 40%;
+       margin-left: -10%;
+       border-left: 1px solid #a6cee1;
+}
+.oo-ui-progressBarWidget.oo-ui-widget-disabled {
+       opacity: 0.6;
+}
+.oo-ui-actionWidget.oo-ui-pendingElement-pending {
+       background-image: /* @embed */ url(themes/apex/images/textures/pending.gif);
+}
+.oo-ui-popupWidget {
+       position: absolute;
+       /* @noflip */
+       left: 0;
+}
+.oo-ui-popupWidget-popup {
+       position: relative;
+       overflow: hidden;
+       z-index: 1;
+}
+.oo-ui-popupWidget-anchor {
+       display: none;
+       z-index: 1;
+}
+.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor {
+       display: block;
+       position: absolute;
+       top: 0;
+       /* @noflip */
+       left: 0;
+       background-repeat: no-repeat;
+}
+.oo-ui-popupWidget-head {
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
+}
+.oo-ui-popupWidget-head .oo-ui-buttonWidget {
+       float: right;
+}
+.oo-ui-popupWidget-head .oo-ui-labelElement-label {
+       float: left;
+       cursor: default;
+}
+.oo-ui-popupWidget-body {
+       clear: both;
+       overflow: hidden;
+}
+.oo-ui-popupWidget-popup {
+       border: 1px solid #cccccc;
+       border-radius: 0.25em;
+       background-color: #ffffff;
+       box-shadow: 0 0.15em 0.5em 0 rgba(0, 0, 0, 0.2);
+}
+.oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup {
+       margin-top: 6px;
+}
+.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before,
+.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after {
+       content: "";
+       position: absolute;
+       width: 0;
+       height: 0;
+       border-style: solid;
+       border-color: transparent;
+       border-top: 0;
+}
+.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before {
+       bottom: -7px;
+       left: -6px;
+       border-bottom-color: #aaaaaa;
+       border-width: 7px;
+}
+.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after {
+       bottom: -7px;
+       left: -5px;
+       border-bottom-color: #ffffff;
+       border-width: 6px;
+}
+.oo-ui-popupWidget-transitioning .oo-ui-popupWidget-popup {
+       -webkit-transition: width 100ms ease-in-out, height 100ms ease-in-out, left 100ms ease-in-out;
+          -moz-transition: width 100ms ease-in-out, height 100ms ease-in-out, left 100ms ease-in-out;
+           -ms-transition: width 100ms ease-in-out, height 100ms ease-in-out, left 100ms ease-in-out;
+            -o-transition: width 100ms ease-in-out, height 100ms ease-in-out, left 100ms ease-in-out;
+               transition: width 100ms ease-in-out, height 100ms ease-in-out, left 100ms ease-in-out;
+}
+.oo-ui-popupWidget-head {
+       height: 2.5em;
+}
+.oo-ui-popupWidget-head .oo-ui-buttonWidget {
+       margin: 0.25em;
+}
+.oo-ui-popupWidget-head .oo-ui-labelElement-label {
+       margin: 0.75em 1em;
+}
+.oo-ui-popupWidget-body-padded {
+       padding: 0 1em;
+}
+.oo-ui-popupButtonWidget {
+       position: relative;
+}
+.oo-ui-popupButtonWidget .oo-ui-popupWidget {
+       position: absolute;
+       cursor: auto;
+}
+.oo-ui-popupButtonWidget.oo-ui-buttonElement-frameless > .oo-ui-popupWidget {
+       /* @noflip */
+       left: 1em;
+}
+.oo-ui-popupButtonWidget.oo-ui-buttonElement-framed > .oo-ui-popupWidget {
+       /* @noflip */
+       left: 1.25em;
+}
+.oo-ui-inputWidget {
+       margin-right: 0.5em;
+}
+.oo-ui-inputWidget:last-child {
+       margin-right: 0;
+}
+.oo-ui-buttonInputWidget {
+       display: inline-block;
+       vertical-align: middle;
+}
+.oo-ui-dropdownInputWidget {
+       position: relative;
+       vertical-align: middle;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+       width: 100%;
+       max-width: 50em;
+}
+.oo-ui-dropdownInputWidget select {
+       display: inline-block;
+       width: 100%;
+       resize: none;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+}
+.oo-ui-dropdownInputWidget select {
+       background: #ffffff;
+       height: 2.5em;
+       padding: 0.5em;
+       font-size: inherit;
+       font-family: inherit;
+       border: 1px solid rgba(0, 0, 0, 0.1);
+       border-radius: 0.25em;
+}
+.oo-ui-dropdownInputWidget.oo-ui-widget-enabled select:hover,
+.oo-ui-dropdownInputWidget.oo-ui-widget-enabled select:focus {
+       border-color: rgba(0, 0, 0, 0.2);
+       outline: none;
+}
+.oo-ui-dropdownInputWidget.oo-ui-widget-disabled select {
+       color: #cccccc;
+       border-color: #dddddd;
+       background-color: #f3f3f3;
+}
+.oo-ui-radioSelectInputWidget .oo-ui-fieldLayout {
+       margin-bottom: 0;
+}
+.oo-ui-textInputWidget {
+       position: relative;
+       vertical-align: middle;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+       width: 100%;
+       max-width: 50em;
+}
+.oo-ui-textInputWidget input,
+.oo-ui-textInputWidget textarea {
+       display: inline-block;
+       width: 100%;
+       resize: none;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+}
+.oo-ui-textInputWidget > .oo-ui-iconElement-icon,
+.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator,
+.oo-ui-textInputWidget > .oo-ui-labelElement-label {
+       display: none;
+}
+.oo-ui-textInputWidget.oo-ui-iconElement > .oo-ui-iconElement-icon,
+.oo-ui-textInputWidget.oo-ui-indicatorElement > .oo-ui-indicatorElement-indicator {
+       display: block;
+       position: absolute;
+       top: 0;
+       height: 100%;
+       background-repeat: no-repeat;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
+}
+.oo-ui-textInputWidget.oo-ui-widget-enabled > .oo-ui-iconElement-icon,
+.oo-ui-textInputWidget.oo-ui-widget-enabled > .oo-ui-indicatorElement-indicator {
+       cursor: pointer;
+}
+.oo-ui-textInputWidget.oo-ui-labelElement > .oo-ui-labelElement-label {
+       display: block;
+}
+.oo-ui-textInputWidget > .oo-ui-iconElement-icon {
+       left: 0;
+}
+.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
+       right: 0;
+}
+.oo-ui-textInputWidget > .oo-ui-labelElement-label {
+       position: absolute;
+       top: 0;
+}
+.oo-ui-textInputWidget-labelPosition-after > .oo-ui-labelElement-label {
+       right: 0;
+}
+.oo-ui-textInputWidget-labelPosition-before > .oo-ui-labelElement-label {
+       left: 0;
+}
+.oo-ui-textInputWidget input,
+.oo-ui-textInputWidget textarea {
+       padding: 0.5em;
+       line-height: 1.275em;
+       font-size: inherit;
+       font-family: inherit;
+       background-color: #ffffff;
+       color: black;
+       border: 1px solid #cccccc;
+       box-shadow: 0 0 0 white, inset 0 0.1em 0.2em #dddddd;
+       border-radius: 0.25em;
+       -webkit-transition: border-color 200ms, box-shadow 200ms;
+          -moz-transition: border-color 200ms, box-shadow 200ms;
+           -ms-transition: border-color 200ms, box-shadow 200ms;
+            -o-transition: border-color 200ms, box-shadow 200ms;
+               transition: border-color 200ms, box-shadow 200ms;
+}
+.oo-ui-textInputWidget-decorated input,
+.oo-ui-textInputWidget-decorated textarea {
+       padding-left: 2em;
+}
+.oo-ui-textInputWidget-icon {
+       width: 2em;
+}
+.oo-ui-textInputWidget.oo-ui-widget-enabled input:focus,
+.oo-ui-textInputWidget.oo-ui-widget-enabled textarea:focus {
+       outline: none;
+       border-color: #a7dcff;
+       box-shadow: 0 0 0.3em #a7dcff, 0 0 0 white;
+}
+.oo-ui-textInputWidget.oo-ui-widget-enabled input[readonly],
+.oo-ui-textInputWidget.oo-ui-widget-enabled textarea[readonly] {
+       color: #777777;
+}
+.oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid input,
+.oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid textarea {
+       background-color: #ffdddd;
+}
+.oo-ui-textInputWidget.oo-ui-widget-disabled input,
+.oo-ui-textInputWidget.oo-ui-widget-disabled textarea {
+       color: #cccccc;
+       text-shadow: 0 1px 1px #ffffff;
+       border-color: #dddddd;
+       background-color: #f3f3f3;
+}
+.oo-ui-textInputWidget.oo-ui-widget-disabled .oo-ui-iconElement-icon,
+.oo-ui-textInputWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
+       opacity: 0.2;
+}
+.oo-ui-textInputWidget.oo-ui-widget-disabled .oo-ui-labelElement-label {
+       color: #dddddd;
+       text-shadow: 0 1px 1px #ffffff;
+}
+.oo-ui-textInputWidget.oo-ui-pendingElement-pending input,
+.oo-ui-textInputWidget.oo-ui-pendingElement-pending textarea {
+       background-color: transparent;
+       background-image: /* @embed */ url(themes/apex/images/textures/pending.gif);
+}
+.oo-ui-textInputWidget.oo-ui-iconElement input,
+.oo-ui-textInputWidget.oo-ui-iconElement textarea {
+       padding-left: 2em;
+}
+.oo-ui-textInputWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
+       width: 1.875em;
+       margin-left: 0.1em;
+}
+.oo-ui-textInputWidget.oo-ui-indicatorElement input,
+.oo-ui-textInputWidget.oo-ui-indicatorElement textarea {
+       padding-right: 1.5em;
+}
+.oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
+       width: 0.9375em;
+       margin-right: 0.775em;
+}
+.oo-ui-textInputWidget > .oo-ui-labelElement-label {
+       padding: 0.4em;
+       line-height: 1.5em;
+       color: #888888;
+}
+.oo-ui-textInputWidget-labelPosition-after.oo-ui-indicatorElement > .oo-ui-labelElement-label {
+       margin-right: 1.6em;
+}
+.oo-ui-textInputWidget-labelPosition-before.oo-ui-iconElement > .oo-ui-labelElement-label {
+       margin-left: 2.1em;
+}
+.oo-ui-menuSelectWidget {
+       position: absolute;
+       background: #ffffff;
+       margin-top: -1px;
+       border: 1px solid #cccccc;
+       border-radius: 0 0 0.25em 0.25em;
+       box-shadow: 0 0.15em 1em 0 rgba(0, 0, 0, 0.2);
+}
+.oo-ui-menuSelectWidget input {
+       position: absolute;
+       width: 0;
+       height: 0;
+       overflow: hidden;
+       opacity: 0;
+}
+.oo-ui-menuOptionWidget {
+       position: relative;
+}
+.oo-ui-menuOptionWidget .oo-ui-iconElement-icon {
+       display: none;
+}
+.oo-ui-menuOptionWidget.oo-ui-optionWidget-selected {
+       background-color: transparent;
+}
+.oo-ui-menuOptionWidget.oo-ui-optionWidget-selected .oo-ui-iconElement-icon {
+       display: block;
+}
+.oo-ui-menuOptionWidget.oo-ui-optionWidget-selected {
+       background-color: transparent;
+}
+.oo-ui-menuOptionWidget.oo-ui-optionWidget-highlighted,
+.oo-ui-menuOptionWidget.oo-ui-optionWidget-highlighted.oo-ui-optionWidget-selected {
+       background-color: #e1f3ff;
+}
+.oo-ui-menuSectionOptionWidget {
+       cursor: default;
+       padding: 0.33em 0.75em;
+       color: #888888;
+}
+.oo-ui-dropdownWidget {
+       display: inline-block;
+       position: relative;
+       margin: 0.25em 0;
+       width: 100%;
+       max-width: 50em;
+       margin-right: 0.5em;
+}
+.oo-ui-dropdownWidget-handle {
+       width: 100%;
+       display: inline-block;
+       cursor: pointer;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+}
+.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator,
+.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
+       position: absolute;
+       background-position: center center;
+       background-repeat: no-repeat;
+}
+.oo-ui-dropdownWidget > .oo-ui-menuSelectWidget {
+       z-index: 1;
+       width: 100%;
+}
+.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle {
+       cursor: default;
+}
+.oo-ui-dropdownWidget:last-child {
+       margin-right: 0;
+}
+.oo-ui-dropdownWidget-handle {
+       height: 2.5em;
+       border: 1px solid rgba(0, 0, 0, 0.1);
+       border-radius: 0.25em;
+}
+.oo-ui-dropdownWidget-handle:hover {
+       border-color: rgba(0, 0, 0, 0.2);
+}
+.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator {
+       right: 0;
+}
+.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
+       left: 0.25em;
+}
+.oo-ui-dropdownWidget-handle .oo-ui-labelElement-label {
+       line-height: 2.5em;
+       margin: 0 0.5em;
+}
+.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator {
+       top: 0;
+       width: 0.9375em;
+       height: 0.9375em;
+       margin: 0.775em;
+}
+.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
+       top: 0;
+       width: 1.875em;
+       height: 1.875em;
+       margin: 0.3em;
+}
+.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle {
+       color: #cccccc;
+       text-shadow: 0 1px 1px #ffffff;
+       border-color: #dddddd;
+       background-color: #f3f3f3;
+}
+.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
+       opacity: 0.2;
+}
+.oo-ui-dropdownWidget.oo-ui-iconElement .oo-ui-dropdownWidget-handle .oo-ui-labelElement-label {
+       margin-left: 3em;
+}
+.oo-ui-dropdownWidget.oo-ui-indicatorElement .oo-ui-dropdownWidget-handle .oo-ui-labelElement-label {
+       margin-right: 2em;
+}
+.oo-ui-selectFileWidget {
+       display: inline-block;
+       position: relative;
+       vertical-align: middle;
+       margin: 0.25em 0;
+       width: 100%;
+       max-width: 50em;
+       margin-right: 0.5em;
+}
+.oo-ui-selectFileWidget-handle {
+       width: 100%;
+       display: inline-block;
+       cursor: pointer;
+       overflow: hidden;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+}
+.oo-ui-selectFileWidget-handle > .oo-ui-indicatorElement-indicator,
+.oo-ui-selectFileWidget-handle > .oo-ui-iconElement-icon,
+.oo-ui-selectFileWidget-handle > .oo-ui-selectFileWidget-clearButton {
+       position: absolute;
+       background-position: center center;
+       background-repeat: no-repeat;
+}
+.oo-ui-selectFileWidget-handle > input[type="file"] {
+       position: absolute;
+       margin: 0;
+       top: 0;
+       bottom: 0;
+       left: 0;
+       right: 0;
+       width: 100%;
+       height: 100%;
+       opacity: 0;
+       z-index: 1;
+       cursor: pointer;
+}
+.oo-ui-selectFileWidget-handle > .oo-ui-selectFileWidget-clearButton {
+       z-index: 2;
+}
+.oo-ui-selectFileWidget.oo-ui-widget-disabled .oo-ui-selectFileWidget-handle,
+.oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-handle {
+       cursor: default;
+}
+.oo-ui-selectFileWidget.oo-ui-widget-disabled .oo-ui-selectFileWidget-handle > input[type="file"],
+.oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-handle > input[type="file"] {
+       display: none;
+}
+.oo-ui-selectFileWidget-empty .oo-ui-selectFileWidget-clearButton,
+.oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-clearButton {
+       display: none;
+}
+.oo-ui-selectFileWidget:last-child {
+       margin-right: 0;
+}
+.oo-ui-selectFileWidget-handle {
+       height: 2.5em;
+       border: 1px solid rgba(0, 0, 0, 0.1);
+       border-radius: 0.25em;
+       padding: 0 0.5em;
+}
+.oo-ui-selectFileWidget-handle > .oo-ui-indicatorElement-indicator {
+       right: 0;
+}
+.oo-ui-selectFileWidget-handle > .oo-ui-iconElement-icon {
+       left: 0.25em;
+}
+.oo-ui-selectFileWidget-handle .oo-ui-selectFileWidget-label {
+       line-height: 2.5em;
+       margin: 0;
+       display: inline-block;
+       overflow: hidden;
+       width: 100%;
+       white-space: nowrap;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+       text-overflow: ellipsis;
+}
+.oo-ui-selectFileWidget-handle .oo-ui-selectFileWidget-clearButton {
+       top: 0;
+       width: 1.875em;
+       height: 1.875em;
+       margin: 0.3em;
+}
+.oo-ui-selectFileWidget-handle > .oo-ui-indicatorElement-indicator {
+       top: 0;
+       width: 0.9375em;
+       height: 0.9375em;
+       margin: 0.775em;
+}
+.oo-ui-selectFileWidget-handle > .oo-ui-iconElement-icon {
+       top: 0;
+       width: 1.875em;
+       height: 1.875em;
+       margin: 0.3em;
+}
+.oo-ui-selectFileWidget:hover .oo-ui-selectFileWidget-handle {
+       border-color: #aaaaaa;
+}
+.oo-ui-selectFileWidget.oo-ui-widget-disabled .oo-ui-selectFileWidget-handle {
+       color: #cccccc;
+       text-shadow: 0 1px 1px #ffffff;
+       border-color: #dddddd;
+       background-color: #f3f3f3;
+}
+.oo-ui-selectFileWidget.oo-ui-widget-disabled .oo-ui-selectFileWidget-handle > .oo-ui-iconElement-icon,
+.oo-ui-selectFileWidget.oo-ui-widget-disabled .oo-ui-selectFileWidget-handle > .oo-ui-indicatorElement-indicator {
+       opacity: 0.2;
+}
+.oo-ui-selectFileWidget-empty .oo-ui-selectFileWidget-label {
+       color: #cccccc;
+}
+.oo-ui-selectFileWidget.oo-ui-iconElement .oo-ui-selectFileWidget-handle {
+       padding-left: 3em;
+}
+.oo-ui-selectFileWidget .oo-ui-selectFileWidget-handle {
+       padding-right: 3em;
+}
+.oo-ui-selectFileWidget .oo-ui-selectFileWidget-handle .oo-ui-selectFileWidget-clearButton {
+       right: 0;
+}
+.oo-ui-selectFileWidget.oo-ui-indicatorElement .oo-ui-selectFileWidget-handle {
+       padding-right: 5em;
+}
+.oo-ui-selectFileWidget.oo-ui-indicatorElement .oo-ui-selectFileWidget-handle .oo-ui-selectFileWidget-clearButton {
+       right: 2em;
+}
+.oo-ui-selectFileWidget-empty .oo-ui-selectFileWidget-handle,
+.oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-handle {
+       padding-right: 1em;
+}
+.oo-ui-selectFileWidget-empty.oo-ui-indicatorElement .oo-ui-selectFileWidget-handle,
+.oo-ui-selectFileWidget-notsupported.oo-ui-indicatorElement .oo-ui-selectFileWidget-handle {
+       padding-right: 2em;
+}
+.oo-ui-outlineOptionWidget {
+       position: relative;
+       cursor: pointer;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
+       font-size: 1.1em;
+       padding: 0.75em;
+}
+.oo-ui-outlineOptionWidget.oo-ui-indicatorElement .oo-ui-labelElement-label {
+       padding-right: 1.5em;
+}
+.oo-ui-outlineOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
+       opacity: 0.5;
+}
+.oo-ui-outlineOptionWidget-level-0 {
+       padding-left: 3.5em;
+}
+.oo-ui-outlineOptionWidget-level-0 .oo-ui-iconElement-icon {
+       left: 1em;
+}
+.oo-ui-outlineOptionWidget-level-1 {
+       padding-left: 5em;
+}
+.oo-ui-outlineOptionWidget-level-1 .oo-ui-iconElement-icon {
+       left: 2.5em;
+}
+.oo-ui-outlineOptionWidget-level-2 {
+       padding-left: 6.5em;
+}
+.oo-ui-outlineOptionWidget-level-2 .oo-ui-iconElement-icon {
+       left: 4em;
+}
+.oo-ui-selectWidget-depressed .oo-ui-outlineOptionWidget.oo-ui-optionWidget-selected {
+       background-color: #a7dcff;
+       text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
+}
+.oo-ui-outlineOptionWidget.oo-ui-flaggedElement-important {
+       font-weight: bold;
+}
+.oo-ui-outlineOptionWidget.oo-ui-flaggedElement-placeholder {
+       font-style: italic;
+}
+.oo-ui-outlineOptionWidget.oo-ui-flaggedElement-empty .oo-ui-iconElement-icon {
+       opacity: 0.5;
+}
+.oo-ui-outlineOptionWidget.oo-ui-flaggedElement-empty .oo-ui-labelElement-label {
+       color: #777777;
+}
+.oo-ui-outlineControlsWidget {
+       height: 3em;
+       background-color: #ffffff;
+}
+.oo-ui-outlineControlsWidget-items,
+.oo-ui-outlineControlsWidget-movers {
+       float: left;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+}
+.oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
+       float: left;
+       background-position: right center;
+       background-repeat: no-repeat;
+}
+.oo-ui-outlineControlsWidget-items {
+       float: left;
+}
+.oo-ui-outlineControlsWidget-items .oo-ui-buttonWidget {
+       float: left;
+}
+.oo-ui-outlineControlsWidget-movers {
+       float: right;
+}
+.oo-ui-outlineControlsWidget-movers .oo-ui-buttonWidget {
+       float: right;
+}
+.oo-ui-outlineControlsWidget-items,
+.oo-ui-outlineControlsWidget-movers {
+       height: 2em;
+       margin: 0.5em 0.5em 0.5em 0;
+       padding: 0;
+}
+.oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
+       width: 1.5em;
+       height: 2em;
+       margin: 0.5em 0 0.5em 0.5em;
+       opacity: 0.2;
+}
+.oo-ui-tabSelectWidget {
+       text-align: left;
+       white-space: nowrap;
+       overflow: hidden;
+       background-color: #eeeeee;
+       box-shadow: inset 0 -0.015em 0.1em rgba(0, 0, 0, 0.1);
+}
+.oo-ui-tabOptionWidget {
+       display: inline-block;
+       vertical-align: bottom;
+       padding: 0.5em 1em;
+       margin: 0.5em 0 0 0.75em;
+       border: 1px solid transparent;
+       border-bottom: none;
+       border-top-left-radius: 0.5em;
+       border-top-right-radius: 0.5em;
+}
+.oo-ui-tabOptionWidget.oo-ui-indicatorElement .oo-ui-labelElement-label {
+       padding-right: 1.5em;
+}
+.oo-ui-tabOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
+       opacity: 0.5;
+}
+.oo-ui-selectWidget-pressed .oo-ui-tabOptionWidget.oo-ui-optionWidget-pressed {
+       background-color: transparent;
+}
+.oo-ui-tabOptionWidget.oo-ui-widget-enabled:hover {
+       background-color: rgba(255, 255, 255, 0.2);
+       border-color: #dddddd;
+}
+.oo-ui-tabOptionWidget.oo-ui-widget-enabled:active {
+       background-color: #ffffff;
+       border-color: #dddddd;
+}
+.oo-ui-selectWidget-pressed .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected,
+.oo-ui-selectWidget-depressed .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected,
+.oo-ui-tabOptionWidget.oo-ui-optionWidget-selected:hover {
+       background-color: #ffffff;
+       border-color: #dddddd;
+}
+.oo-ui-comboBoxWidget {
+       display: inline-block;
+       position: relative;
+       width: 100%;
+       max-width: 50em;
+       margin-right: 0.5em;
+}
+.oo-ui-comboBoxWidget > .oo-ui-menuSelectWidget {
+       z-index: 1;
+       width: 100%;
+}
+.oo-ui-comboBoxWidget:last-child {
+       margin-right: 0;
+}
+.oo-ui-comboBoxWidget-handle {
+       border: 1px solid rgba(0, 0, 0, 0.1);
+       border-radius: 0.25em;
+}
+.oo-ui-comboBoxWidget-handle:hover {
+       border-color: rgba(0, 0, 0, 0.2);
+}
+.oo-ui-comboBoxWidget.oo-ui-widget-disabled .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator,
+.oo-ui-comboBoxWidget-empty .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
+       cursor: default;
+       opacity: 0.2;
+}
+.oo-ui-comboBoxWidget > .oo-ui-selectWidget {
+       margin-top: -3px;
+}
+.oo-ui-searchWidget-query {
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
+}
+.oo-ui-searchWidget-query .oo-ui-textInputWidget {
+       width: 100%;
+}
+.oo-ui-searchWidget-results {
+       position: absolute;
+       bottom: 0;
+       left: 0;
+       right: 0;
+       overflow-x: hidden;
+       overflow-y: auto;
+}
+.oo-ui-searchWidget-query {
+       height: 4em;
+       padding: 0 1em;
+       box-shadow: 0 0 0.5em rgba(0, 0, 0, 0.2);
+}
+.oo-ui-searchWidget-query .oo-ui-textInputWidget {
+       margin: 0.75em 0;
+}
+.oo-ui-searchWidget-results {
+       top: 4em;
+       padding: 1em;
+       line-height: 0;
+}
+.oo-ui-numberInputWidget {
+       display: inline-block;
+       position: relative;
+       max-width: 50em;
+}
+.oo-ui-numberInputWidget-field {
+       display: table;
+       table-layout: fixed;
+       width: 100%;
+}
+.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget,
+.oo-ui-numberInputWidget-field > .oo-ui-textInputWidget {
+       display: table-cell;
+       vertical-align: middle;
+}
+.oo-ui-numberInputWidget-field > .oo-ui-textInputWidget {
+       width: 100%;
+}
+.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget {
+       white-space: nowrap;
+}
+.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget > .oo-ui-buttonElement-button {
+       box-sizing: border-box;
+}
+.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget,
+.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget > .oo-ui-buttonElement-button {
+       margin: 0;
+       width: 2.5em;
+}
+.oo-ui-numberInputWidget-minusButton.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
+       border-top-right-radius: 0;
+       border-bottom-right-radius: 0;
+       border-right-width: 0;
+}
+.oo-ui-numberInputWidget-plusButton.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
+       border-top-left-radius: 0;
+       border-bottom-left-radius: 0;
+       border-left-width: 0;
+}
+.oo-ui-numberInputWidget .oo-ui-textInputWidget input {
+       border-radius: 0;
+}
+.oo-ui-window {
+       background-color: transparent;
+       background-image: none;
+}
+.oo-ui-window-frame {
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+}
+.oo-ui-window-content:focus {
+       outline: none;
+}
+.oo-ui-window-head,
+.oo-ui-window-foot {
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
+}
+.oo-ui-window-body {
+       margin: 0;
+       padding: 0;
+       background: none;
+}
+.oo-ui-window-overlay {
+       position: absolute;
+       top: 0;
+       /* @noflip */
+       left: 0;
+}
+.oo-ui-dialog-content > .oo-ui-window-head,
+.oo-ui-dialog-content > .oo-ui-window-body,
+.oo-ui-dialog-content > .oo-ui-window-foot {
+       position: absolute;
+       left: 0;
+       right: 0;
+       overflow: hidden;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+}
+.oo-ui-dialog-content > .oo-ui-window-head {
+       z-index: 1;
+       top: 0;
+}
+.oo-ui-dialog-content > .oo-ui-window-body {
+       z-index: 2;
+       top: 0;
+       bottom: 0;
+}
+.oo-ui-dialog-content > .oo-ui-window-foot {
+       z-index: 1;
+       bottom: 0;
+}
+.oo-ui-dialog-content > .oo-ui-window-body {
+       box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
+}
+.oo-ui-messageDialog-actions-horizontal {
+       display: table;
+       table-layout: fixed;
+       width: 100%;
+}
+.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
+       display: table-cell;
+       width: 1%;
+}
+.oo-ui-messageDialog-actions-vertical {
+       display: block;
+}
+.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
+       display: block;
+       overflow: hidden;
+       text-overflow: ellipsis;
+}
+.oo-ui-messageDialog-actions .oo-ui-actionWidget {
+       position: relative;
+       text-align: center;
+}
+.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-buttonElement-button {
+       display: block;
+}
+.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
+       position: relative;
+       top: auto;
+       bottom: auto;
+       display: inline;
+       white-space: nowrap;
+}
+.oo-ui-messageDialog-content .oo-ui-window-body {
+       box-shadow: 0 0 0.33em rgba(0, 0, 0, 0.33);
+}
+.oo-ui-messageDialog-title,
+.oo-ui-messageDialog-message {
+       display: block;
+       text-align: center;
+       padding-top: 0.5em;
+}
+.oo-ui-messageDialog-title {
+       font-size: 1.5em;
+       line-height: 1em;
+       color: #000000;
+}
+.oo-ui-messageDialog-message {
+       font-size: 0.9em;
+       line-height: 1.25em;
+       color: #666666;
+}
+.oo-ui-messageDialog-message-verbose {
+       font-size: 1.1em;
+       line-height: 1.5em;
+       text-align: left;
+}
+.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
+       border-right: 1px solid #e5e5e5;
+       margin: 0;
+}
+.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget:last-child {
+       border-right-width: 0;
+}
+.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
+       border-bottom: 1px solid #e5e5e5;
+       margin: 0;
+}
+.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget:last-child {
+       border-bottom-width: 0;
+}
+.oo-ui-messageDialog-actions .oo-ui-actionWidget {
+       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 {
+       text-align: center;
+       line-height: 3.4em;
+       padding: 0 2em;
+}
+.oo-ui-messageDialog-actions .oo-ui-actionWidget:hover {
+       background-color: rgba(0, 0, 0, 0.05);
+}
+.oo-ui-messageDialog-actions .oo-ui-actionWidget:active {
+       background-color: rgba(0, 0, 0, 0.1);
+}
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:hover {
+       background-color: rgba(8, 126, 204, 0.05);
+}
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:active {
+       background-color: rgba(8, 126, 204, 0.1);
+}
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-progressive .oo-ui-labelElement-label {
+       font-weight: bold;
+}
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
+       background-color: rgba(118, 171, 54, 0.05);
+}
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
+       background-color: rgba(118, 171, 54, 0.1);
+}
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
+       background-color: rgba(212, 83, 83, 0.05);
+}
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
+       background-color: rgba(212, 83, 83, 0.1);
+}
+.oo-ui-processDialog-location {
+       overflow: hidden;
+       text-overflow: ellipsis;
+       white-space: nowrap;
+}
+.oo-ui-processDialog-title {
+       display: inline;
+       padding: 0;
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget {
+       white-space: nowrap;
+}
+.oo-ui-processDialog-actions-safe,
+.oo-ui-processDialog-actions-primary {
+       position: absolute;
+       top: 0;
+       bottom: 0;
+}
+.oo-ui-processDialog-actions-safe {
+       left: 0;
+}
+.oo-ui-processDialog-actions-primary {
+       right: 0;
+}
+.oo-ui-processDialog-errors {
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
+       bottom: 0;
+       z-index: 2;
+       overflow-x: hidden;
+       overflow-y: auto;
+}
+.oo-ui-processDialog-content .oo-ui-window-head {
+       height: 3.4em;
+}
+.oo-ui-processDialog-content .oo-ui-window-head.oo-ui-pendingElement-pending {
+       background-image: /* @embed */ url(themes/apex/images/textures/pending.gif);
+}
+.oo-ui-processDialog-content .oo-ui-window-body {
+       top: 3.4em;
+       box-shadow: 0 0 0.33em rgba(0, 0, 0, 0.33);
+}
+.oo-ui-processDialog-navigation {
+       position: relative;
+       height: 3.4em;
+       padding: 0 1em;
+}
+.oo-ui-processDialog-location {
+       padding: 0.75em 0;
+       height: 1.875em;
+       cursor: default;
+       text-align: center;
+}
+.oo-ui-processDialog-title {
+       font-weight: bold;
+       line-height: 1.875em;
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonElement-button,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonElement-button,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-buttonElement-button {
+       min-width: 1.875em;
+       min-height: 1.875em;
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-labelElement-label,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-labelElement-label,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-labelElement-label {
+       line-height: 1.875em;
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
+       margin-top: -0.125em;
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed {
+       margin: 0.75em 0 0.75em 0.75em;
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
+       padding: 0 1em;
+       vertical-align: middle;
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget:hover,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget:hover {
+       background-color: rgba(0, 0, 0, 0.05);
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget:active,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget:active {
+       background-color: rgba(0, 0, 0, 0.1);
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed {
+       margin: 0.75em;
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
+       /* Adjust for border so text aligns with title */
+       margin: -1px;
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:hover,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:hover {
+       background-color: rgba(8, 126, 204, 0.05);
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:active,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:active {
+       background-color: rgba(8, 126, 204, 0.1);
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-progressive .oo-ui-labelElement-label,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-progressive .oo-ui-labelElement-label {
+       font-weight: bold;
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
+       background-color: rgba(118, 171, 54, 0.05);
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
+       background-color: rgba(118, 171, 54, 0.1);
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
+       background-color: rgba(212, 83, 83, 0.05);
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
+       background-color: rgba(212, 83, 83, 0.1);
+}
+.oo-ui-processDialog > .oo-ui-window-frame {
+       min-height: 5em;
+}
+.oo-ui-processDialog-errors {
+       background-color: rgba(255, 255, 255, 0.9);
+       padding: 3em 3em 1.5em 3em;
+       text-align: center;
+}
+.oo-ui-processDialog-errors .oo-ui-buttonWidget {
+       margin: 2em 1em 2em 1em;
+}
+.oo-ui-processDialog-errors-title {
+       font-size: 1.5em;
+       color: #000000;
+       margin-bottom: 2em;
+}
+.oo-ui-processDialog-error {
+       text-align: left;
+       margin: 1em;
+       padding: 1em;
+       border: 1px solid #ff9e9e;
+       background-color: #fff7f7;
+       border-radius: 0.25em;
+}
+.oo-ui-windowManager-modal > .oo-ui-dialog {
+       position: fixed;
+       width: 0;
+       height: 0;
+       overflow: hidden;
+}
+.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-active {
+       width: auto;
+       height: auto;
+       top: 0;
+       right: 0;
+       bottom: 0;
+       left: 0;
+       padding: 1em;
+}
+.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame {
+       position: absolute;
+       right: 0;
+       left: 0;
+       margin: auto;
+       overflow: hidden;
+       max-width: 100%;
+       max-height: 100%;
+}
+.oo-ui-windowManager-fullscreen > .oo-ui-dialog > .oo-ui-window-frame {
+       width: 100%;
+       height: 100%;
+       top: 0;
+       bottom: 0;
+}
+.oo-ui-windowManager-modal > .oo-ui-dialog {
+       background-color: rgba(255, 255, 255, 0.5);
+       opacity: 0;
+       -webkit-transition: opacity 250ms ease-in-out;
+          -moz-transition: opacity 250ms ease-in-out;
+           -ms-transition: opacity 250ms ease-in-out;
+            -o-transition: opacity 250ms ease-in-out;
+               transition: opacity 250ms ease-in-out;
+}
+.oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame {
+       top: 1em;
+       bottom: 1em;
+       background-color: #ffffff;
+       opacity: 0;
+       -webkit-transform: scale(0.5);
+          -moz-transform: scale(0.5);
+           -ms-transform: scale(0.5);
+            -o-transform: scale(0.5);
+               transform: scale(0.5);
+       -webkit-transition: all 250ms ease-in-out;
+          -moz-transition: all 250ms ease-in-out;
+           -ms-transition: all 250ms ease-in-out;
+            -o-transition: all 250ms ease-in-out;
+               transition: all 250ms ease-in-out;
+}
+.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready {
+       /* Fade window overlay */
+       opacity: 1;
+}
+.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .oo-ui-window-frame {
+       /* Fade frame */
+       opacity: 1;
+       -webkit-transform: scale(1);
+          -moz-transform: scale(1);
+           -ms-transform: scale(1);
+            -o-transform: scale(1);
+               transform: scale(1);
+}
+.oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
+       border: 1px solid #cccccc;
+       border-radius: 0.5em;
+       box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
+}
diff --git a/resources/lib/oojs-ui/oojs-ui-apex.js b/resources/lib/oojs-ui/oojs-ui-apex.js
new file mode 100644 (file)
index 0000000..9bdac7b
--- /dev/null
@@ -0,0 +1,28 @@
+/*!
+ * OOjs UI v0.11.4
+ * https://www.mediawiki.org/wiki/OOjs_UI
+ *
+ * Copyright 2011–2015 OOjs Team and other contributors.
+ * Released under the MIT license
+ * http://oojs.mit-license.org
+ *
+ * Date: 2015-06-09T22:03:14Z
+ */
+/**
+ * @class
+ * @extends OO.ui.Theme
+ *
+ * @constructor
+ */
+OO.ui.ApexTheme = function OoUiApexTheme() {
+       // Parent constructor
+       OO.ui.ApexTheme.super.call( this );
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.ApexTheme, OO.ui.Theme );
+
+/* Instantiation */
+
+OO.ui.theme = new OO.ui.ApexTheme();
index 297739d..72cc1e3 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.11.1
+ * OOjs UI v0.11.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-05-05T00:40:57Z
+ * Date: 2015-06-09T22:03:21Z
  */
 @-webkit-keyframes oo-ui-progressBarWidget-slide {
        from {
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       color: #2962cc;
+       color: #1f4999;
        box-shadow: none;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       color: #008c6d;
+       color: #005946;
        box-shadow: none;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       color: #a7170f;
+       color: #73100a;
        box-shadow: none;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
        border: 1px solid #cdcdcd;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover {
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
+       background-color: #ebebeb;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus {
        box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-       background-color: #d0d0d0;
-       border-color: #d0d0d0;
+       background-color: #d9d9d9;
+       border-color: #d9d9d9;
        box-shadow: none;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
        color: #347bff;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover {
-       box-shadow: inset 0 -0.2em 0 0 #2962cc, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-       border-bottom-color: #2962cc;
+       background-color: rgba(52, 123, 255, 0.1);
+       border-color: rgba(31, 73, 153, 0.5);
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus {
-       box-shadow: inset 0 0 0 1px #2962cc;
-       border-color: #2962cc;
+       box-shadow: inset 0 0 0 1px #1f4999;
+       border-color: #1f4999;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-       color: #2962cc;
-       border-color: #d0d0d0;
+       color: #1f4999;
+       border-color: #1f4999;
        box-shadow: none;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
        color: #00af89;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover {
-       box-shadow: inset 0 -0.2em 0 0 #008c6d, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-       border-bottom-color: #008c6d;
+       background-color: rgba(0, 171, 137, 0.1);
+       border-color: rgba(0, 89, 70, 0.5);
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus {
-       box-shadow: inset 0 0 0 1px #008c6d;
-       border-color: #008c6d;
+       box-shadow: inset 0 0 0 1px #005946;
+       border-color: #005946;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-       color: #008c6d;
-       border-color: #d0d0d0;
+       color: #005946;
+       border-color: #005946;
        box-shadow: none;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
        color: #d11d13;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover {
-       box-shadow: inset 0 -0.2em 0 0 #a7170f, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-       border-bottom-color: #a7170f;
+       background-color: rgba(209, 29, 19, 0.1);
+       border-color: rgba(115, 16, 10, 0.5);
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus {
-       box-shadow: inset 0 0 0 1px #a7170f;
-       border-color: #a7170f;
+       box-shadow: inset 0 0 0 1px #73100a;
+       border-color: #73100a;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-       color: #a7170f;
-       border-color: #d0d0d0;
+       color: #73100a;
+       border-color: #73100a;
        box-shadow: none;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
        border-color: #347bff;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover {
-       box-shadow: inset 0 -0.2em 0 0 #2962cc, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-       border-bottom-color: #2962cc;
+       background: #2962cc;
+       border-color: #2962cc;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus {
-       box-shadow: inset 0 0 0 1px #2962cc;
-       border-color: #2962cc;
+       box-shadow: inset 0 0 0 1px #ffffff;
+       border-color: #347bff;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
        color: #ffffff;
-       background-color: #2962cc;
-       border-color: #2962cc;
+       background-color: #1f4999;
+       border-color: #1f4999;
        box-shadow: none;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
        border-color: #00af89;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover {
-       box-shadow: inset 0 -0.2em 0 0 #008c6d, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-       border-bottom-color: #008c6d;
+       background: #008064;
+       border-color: #008064;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus {
-       box-shadow: inset 0 0 0 1px #008c6d;
-       border-color: #008c6d;
+       box-shadow: inset 0 0 0 1px #ffffff;
+       border-color: #00af89;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
        color: #ffffff;
-       background-color: #008c6d;
-       border-color: #008c6d;
+       background-color: #005946;
+       border-color: #005946;
        box-shadow: none;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
        border-color: #d11d13;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover {
-       box-shadow: inset 0 -0.2em 0 0 #a7170f, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-       border-bottom-color: #a7170f;
+       background: #8c130d;
+       border-color: #8c130d;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus {
-       box-shadow: inset 0 0 0 1px #a7170f;
-       border-color: #a7170f;
+       box-shadow: inset 0 0 0 1px #ffffff;
+       border-color: #d11d13;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
        color: #ffffff;
-       background-color: #a7170f;
-       border-color: #a7170f;
+       background-color: #73100a;
+       border-color: #73100a;
        box-shadow: none;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
 .oo-ui-fieldLayout-disabled .oo-ui-labelElement-label {
        color: #cccccc;
 }
-.oo-ui-actionFieldLayout-field {
-       display: table;
-       table-layout: fixed;
-       width: 100%;
-}
 .oo-ui-actionFieldLayout-input,
 .oo-ui-actionFieldLayout-button {
        display: table-cell;
        margin-left: 1.25em;
 }
 .oo-ui-toolGroupTool > .oo-ui-popupToolGroup {
+       border: 0;
+       border-radius: 0;
        margin: 0;
 }
+.oo-ui-toolGroupTool > .oo-ui-toolGroup {
+       border-right: none;
+}
 .oo-ui-toolGroupTool > .oo-ui-popupToolGroup > .oo-ui-popupToolGroup-handle {
-       height: 1.875em;
+       height: 2.5em;
        padding: 0.3125em;
 }
 .oo-ui-toolGroupTool > .oo-ui-popupToolGroup > .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-       height: 1.875em;
+       height: 2.5em;
        width: 1.875em;
-       opacity: 0.8;
 }
 .oo-ui-toolGroupTool > .oo-ui-popupToolGroup.oo-ui-labelElement > .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
        line-height: 2.1em;
 .oo-ui-toolGroup {
        display: inline-block;
        vertical-align: middle;
-       margin: 0.375em;
+       border-radius: 0;
+       border-right: 1px solid #dddddd;
 }
 .oo-ui-toolGroup-empty {
        display: none;
 .oo-ui-toolbar-narrow .oo-ui-toolGroup + .oo-ui-toolGroup {
        margin-left: 0;
 }
-.oo-ui-toolGroup.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-tool-title {
-       color: #000000;
-}
-.oo-ui-toolGroup.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-tool-accel {
-       color: #888888;
+.oo-ui-toolGroup .oo-ui-toolGroup .oo-ui-widget-enabled {
+       border-right: none !important;
 }
 .oo-ui-barToolGroup > .oo-ui-iconElement-icon,
 .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;
        display: none;
 }
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-iconElement > .oo-ui-tool-link .oo-ui-iconElement-icon {
-       display: block;
+       display: inline-block;
+       vertical-align: top;
 }
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-iconElement > .oo-ui-tool-link .oo-ui-tool-title {
        display: none;
 }
+.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 {
        cursor: default;
 }
-.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 > .oo-ui-tool-link {
        height: 1.875em;
-       padding: 0.3125em;
+       padding: 0.625em;
 }
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-iconElement-icon {
        height: 1.875em;
        width: 1.875em;
-       opacity: 0.8;
 }
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-tool-title {
        line-height: 2.1em;
+       padding: 0 0.4em;
+}
+.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-enabled:hover {
+       border-color: rgba(0, 0, 0, 0.2);
+       background-color: #eeeeee;
+}
+.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool > a.oo-ui-tool-link .oo-ui-tool-title {
+       color: #555555;
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-tool-active.oo-ui-widget-enabled {
+       border-color: rgba(0, 0, 0, 0.2);
+       box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
+       background-color: #e5e5e5;
+}
+.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-tool-active.oo-ui-widget-enabled:hover {
        background-color: #eeeeee;
 }
+.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-tool-active.oo-ui-widget-enabled + .oo-ui-tool-active.oo-ui-widget-enabled {
+       border-left-color: rgba(0, 0, 0, 0.1);
+}
+.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-disabled > .oo-ui-tool-link .oo-ui-tool-title {
+       color: #cccccc;
+}
 .oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-disabled > .oo-ui-tool-link .oo-ui-iconElement-icon {
        opacity: 0.2;
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-enabled > .oo-ui-tool-link .oo-ui-iconElement-icon {
-       opacity: 0.8;
+       opacity: 0.7;
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-enabled:hover > .oo-ui-tool-link .oo-ui-iconElement-icon {
-       opacity: 1;
+       opacity: 0.9;
+}
+.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-enabled:active {
+       background-color: #e7e7e7;
 }
-.oo-ui-barToolGroup.oo-ui-widget-disabled > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-iconElement-icon {
+.oo-ui-barToolGroup.oo-ui-widget-disabled > .oo-ui-toolGroup-tools > .oo-ui-tool > a.oo-ui-tool-link .oo-ui-tool-title {
+       color: #cccccc;
+}
+.oo-ui-barToolGroup.oo-ui-widget-disabled > .oo-ui-toolGroup-tools > .oo-ui-tool > a.oo-ui-tool-link .oo-ui-iconElement-icon {
        opacity: 0.2;
 }
 .oo-ui-popupToolGroup {
        position: relative;
-       height: 2.5em;
-       min-width: 2.5em;
+       height: 3.125em;
+       min-width: 2em;
 }
 .oo-ui-popupToolGroup-handle {
        display: block;
        margin-left: 2.5em;
 }
 .oo-ui-popupToolGroup.oo-ui-labelElement.oo-ui-indicatorElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-       margin-right: 2.25em;
+       margin-right: 2em;
 }
 .oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-labelElement.oo-ui-indicatorElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
        margin-right: 1.75em;
 }
+.oo-ui-popupToolGroup.oo-ui-widget-enabled .oo-ui-popupToolGroup-handle:hover {
+       background-color: #eeeeee;
+}
+.oo-ui-popupToolGroup.oo-ui-widget-enabled .oo-ui-popupToolGroup-handle:active {
+       background-color: #e5e5e5;
+}
+.oo-ui-popupToolGroup-handle {
+       padding: 0.3125em;
+       height: 2.5em;
+}
 .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
        width: 0.9375em;
-       height: 0.9375em;
-       margin: 0.78125em;
+       height: 1.625em;
+       margin: 0.78125em 0.5em;
        top: 0;
        right: 0;
+       opacity: 0.3;
 }
 .oo-ui-toolbar-narrow .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
        right: -0.3125em;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
        width: 1.875em;
-       height: 1.875em;
-       margin: 0.3125em;
+       height: 2.6em;
+       margin: 0.25em;
        top: 0;
        left: 0.3125em;
+       opacity: 0.7;
 }
 .oo-ui-toolbar-narrow .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
        left: 0;
        margin: 0 0.6em;
        font-weight: bold;
 }
+.oo-ui-popupToolGroup-active.oo-ui-widget-enabled {
+       border-bottom-left-radius: 0;
+       border-bottom-right-radius: 0;
+       box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
+       background-color: #eeeeee;
+}
 .oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-       top: 2.5em;
-       background-color: white;
+       top: 3.125em;
+       margin: 0 -1px;
+       border: 1px solid #cccccc;
+       background-color: #ffffff;
+       box-shadow: 0 2px 3px rgba(0, 0, 0, 0.2);
+       min-width: 16em;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link {
-       padding: 0.3125em 0 0.3125em 0.3125em;
+       padding: 0.4em 0.625em;
+       box-sizing: border-box;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-       height: 1.875em;
+       height: 2.5em;
        width: 1.875em;
        min-width: 1.875em;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
        padding-left: 0.5em;
+       color: #000000;
 }
 .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;
 }
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-accel {
+       color: #888888;
+}
 .oo-ui-listToolGroup .oo-ui-tool {
        display: block;
        -webkit-box-sizing: border-box;
 .oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
        cursor: default;
 }
-.oo-ui-listToolGroup .oo-ui-tool {
-       padding: 0 0.9375em 0 0.3125em;
+.oo-ui-listToolGroup.oo-ui-popupToolGroup-active {
+       border-color: rgba(0, 0, 0, 0.2);
 }
 .oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
+       border-color: rgba(0, 0, 0, 0.2);
        background-color: #eeeeee;
 }
-.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled,
+.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-enabled:active {
+       background-color: #e7e7e7;
+}
+.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover .oo-ui-tool-link .oo-ui-iconElement-icon {
+       opacity: 0.9;
+}
+.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled {
+       border-color: rgba(0, 0, 0, 0.1);
+       box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
+       background-color: #e5e5e5;
+}
+.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled + .oo-ui-tool-active.oo-ui-widget-enabled {
+       border-top-color: rgba(0, 0, 0, 0.1);
+}
 .oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled:hover {
-       background-color: #d0d0d0;
+       border-color: rgba(0, 0, 0, 0.2);
+       background-color: #eeeeee;
 }
 .oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title {
        color: #cccccc;
 .oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
        opacity: 0.2;
 }
-.oo-ui-listToolGroup .oo-ui-toolGroup-tools {
-       padding: 0.3125em 0 0.3125em 0;
-       border: 1px solid #aaaaaa;
-       border-radius: 0.25em;
-       box-shadow: inset 0 -0.25em 0 0 rgba(0, 0, 0, 0.2), 0 0.125em 0 0 rgba(0, 0, 0, 0.1);
-}
-.oo-ui-menuToolGroup {
-       border: 1px solid #cccccc;
-       border-radius: 0.125em;
-}
 .oo-ui-menuToolGroup .oo-ui-tool {
        display: block;
 }
 .oo-ui-toolbar-narrow .oo-ui-menuToolGroup .oo-ui-popupToolGroup-handle {
        min-width: 8.125em;
 }
-.oo-ui-menuToolGroup .oo-ui-toolGroup-tools {
-       margin-left: -1px;
-       padding: 0.3125em 0 0.3125em 0;
-       border: 1px solid #aaaaaa;
-       border-radius: 0.25em;
-       border-top-left-radius: 0;
-       box-shadow: inset 0 -0.25em 0 0 rgba(0, 0, 0, 0.2), 0 0.125em 0 0 rgba(0, 0, 0, 0.1);
-}
-.oo-ui-menuToolGroup.oo-ui-widget-enabled:hover {
-       border-color: #aaaaaa;
-}
-.oo-ui-menuToolGroup.oo-ui-popupToolGroup-active {
-       border-color: #aaaaaa;
-}
-.oo-ui-menuToolGroup .oo-ui-tool {
-       padding: 0 1.25em 0 0.3125em;
-}
 .oo-ui-menuToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
        background-image: none;
 }
 }
 .oo-ui-menuToolGroup.oo-ui-widget-disabled {
        color: #cccccc;
-       border-color: #cccccc;
 }
 .oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator,
 .oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
 }
 .oo-ui-toolbar-bar {
        line-height: 1em;
+       position: relative;
 }
 .oo-ui-toolbar-actions {
        float: right;
 }
+.oo-ui-toolbar-actions .oo-ui-toolbar {
+       display: inline-block;
+}
 .oo-ui-toolbar-tools {
        display: inline;
        white-space: nowrap;
        pointer-events: none;
 }
 .oo-ui-toolbar-bar {
-       border-bottom: 2px solid rgba(0, 0, 0, 0.15);
-       background: #ffffff;
+       border-bottom: 1px solid #cccccc;
+       background-color: #ffffff;
+       box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
+       font-weight: 500;
+       color: #555555;
 }
 .oo-ui-toolbar-bar .oo-ui-toolbar-bar {
        border: none;
        background: none;
+       box-shadow: none;
 }
-.oo-ui-toolbar-shadow {
-       display: none;
-}
-.oo-ui-selectWidget {
-       border-radius: 2px;
-}
-.oo-ui-selectWidget .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-       border-radius: 0;
-       margin-left: -1px;
-}
-.oo-ui-selectWidget .oo-ui-buttonOptionWidget:first-child .oo-ui-buttonElement-button {
-       border-bottom-left-radius: 2px;
-       border-top-left-radius: 2px;
-       margin-left: 0;
+.oo-ui-toolbar-actions > .oo-ui-buttonElement {
+       margin-top: 0.25em;
+       margin-bottom: 0.25em;
 }
-.oo-ui-selectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonElement-button {
-       border-bottom-right-radius: 2px;
-       border-top-right-radius: 2px;
+.oo-ui-toolbar-actions > .oo-ui-toolbar,
+.oo-ui-toolbar-actions > .oo-ui-buttonElement:last-child {
+       margin-right: 0.5em;
 }
 .oo-ui-optionWidget {
        position: relative;
                box-sizing: border-box;
 }
 .oo-ui-dropdownInputWidget select {
-       height: 2.5em;
-       padding: 0.5em;
+       background: #ffffff;
+       height: 2.275em;
        font-size: inherit;
        font-family: inherit;
        -webkit-box-sizing: border-box;
        background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-invert.svg");
        background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/circle-invert.png");
 }
+.oo-ui-radioSelectInputWidget .oo-ui-fieldLayout {
+       margin-bottom: 0;
+}
 .oo-ui-textInputWidget {
        position: relative;
        vertical-align: middle;
 .oo-ui-textInputWidget input,
 .oo-ui-textInputWidget textarea {
        padding: 0.5em;
+       line-height: 1.275em;
        margin: 0;
        font-size: inherit;
        font-family: inherit;
        display: block;
 }
 .oo-ui-menuOptionWidget.oo-ui-optionWidget-selected {
-       background-color: #999999;
-       color: #ffffff;
+       background-color: #d8e6fe;
+       color: rgba(0, 0, 0, 0.8);
 }
 .oo-ui-menuOptionWidget.oo-ui-optionWidget-selected .oo-ui-iconElement-icon {
        display: none;
        background-color: #eeeeee;
        color: black;
 }
+.oo-ui-menuOptionWidget.oo-ui-optionWidget-selected.oo-ui-menuOptionWidget.oo-ui-optionWidget-highlighted {
+       background-color: #d8e6fe;
+}
 .oo-ui-menuSectionOptionWidget {
        cursor: default;
        padding: 0.33em 0.75em;
        margin-right: 0;
 }
 .oo-ui-dropdownWidget-handle {
-       height: 2.5em;
+       padding: 0.5em 0;
        border: 1px solid #cccccc;
        border-radius: 0.1em;
 }
        left: 0.25em;
 }
 .oo-ui-dropdownWidget-handle .oo-ui-labelElement-label {
-       line-height: 2.5em;
+       line-height: 1.275em;
        margin: 0 1em;
 }
 .oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator {
 .oo-ui-dropdownWidget .oo-ui-selectWidget {
        border-top-color: #ffffff;
 }
+.oo-ui-selectFileWidget {
+       display: inline-block;
+       position: relative;
+       vertical-align: middle;
+       margin: 0.25em 0;
+       width: 100%;
+       max-width: 50em;
+       margin-right: 0.5em;
+}
+.oo-ui-selectFileWidget-handle {
+       width: 100%;
+       display: inline-block;
+       cursor: pointer;
+       overflow: hidden;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+}
+.oo-ui-selectFileWidget-handle > .oo-ui-indicatorElement-indicator,
+.oo-ui-selectFileWidget-handle > .oo-ui-iconElement-icon,
+.oo-ui-selectFileWidget-handle > .oo-ui-selectFileWidget-clearButton {
+       position: absolute;
+       background-position: center center;
+       background-repeat: no-repeat;
+}
+.oo-ui-selectFileWidget-handle > input[type="file"] {
+       position: absolute;
+       margin: 0;
+       top: 0;
+       bottom: 0;
+       left: 0;
+       right: 0;
+       width: 100%;
+       height: 100%;
+       opacity: 0;
+       z-index: 1;
+       cursor: pointer;
+}
+.oo-ui-selectFileWidget-handle > .oo-ui-selectFileWidget-clearButton {
+       z-index: 2;
+}
+.oo-ui-selectFileWidget.oo-ui-widget-disabled .oo-ui-selectFileWidget-handle,
+.oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-handle {
+       cursor: default;
+}
+.oo-ui-selectFileWidget.oo-ui-widget-disabled .oo-ui-selectFileWidget-handle > input[type="file"],
+.oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-handle > input[type="file"] {
+       display: none;
+}
+.oo-ui-selectFileWidget-empty .oo-ui-selectFileWidget-clearButton,
+.oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-clearButton {
+       display: none;
+}
+.oo-ui-selectFileWidget:last-child {
+       margin-right: 0;
+}
+.oo-ui-selectFileWidget-handle {
+       height: 2.5em;
+       border: 1px solid #cccccc;
+       border-radius: 0.1em;
+       padding: 0 1em;
+}
+.oo-ui-selectFileWidget-handle > .oo-ui-indicatorElement-indicator {
+       right: 0;
+}
+.oo-ui-selectFileWidget-handle > .oo-ui-iconElement-icon {
+       left: 0.25em;
+}
+.oo-ui-selectFileWidget-handle .oo-ui-selectFileWidget-label {
+       line-height: 2.5em;
+       margin: 0;
+       display: inline-block;
+       overflow: hidden;
+       width: 100%;
+       white-space: nowrap;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+       text-overflow: ellipsis;
+}
+.oo-ui-selectFileWidget-handle .oo-ui-selectFileWidget-clearButton {
+       top: 0;
+       width: 1.875em;
+       height: 1.875em;
+       margin: 0.3em;
+}
+.oo-ui-selectFileWidget-handle > .oo-ui-indicatorElement-indicator {
+       top: 0;
+       width: 0.9375em;
+       height: 0.9375em;
+       margin: 0.775em;
+}
+.oo-ui-selectFileWidget-handle > .oo-ui-iconElement-icon {
+       top: 0;
+       width: 1.875em;
+       height: 1.875em;
+       margin: 0.3em;
+}
+.oo-ui-selectFileWidget:hover .oo-ui-selectFileWidget-handle {
+       border-color: #aaaaaa;
+}
+.oo-ui-selectFileWidget.oo-ui-widget-disabled .oo-ui-selectFileWidget-handle {
+       color: #cccccc;
+       text-shadow: 0 1px 1px #ffffff;
+       border-color: #dddddd;
+       background-color: #f3f3f3;
+}
+.oo-ui-selectFileWidget.oo-ui-widget-disabled .oo-ui-selectFileWidget-handle > .oo-ui-iconElement-icon,
+.oo-ui-selectFileWidget.oo-ui-widget-disabled .oo-ui-selectFileWidget-handle > .oo-ui-indicatorElement-indicator {
+       opacity: 0.2;
+}
+.oo-ui-selectFileWidget-empty .oo-ui-selectFileWidget-label {
+       color: #cccccc;
+}
+.oo-ui-selectFileWidget.oo-ui-iconElement .oo-ui-selectFileWidget-handle {
+       padding-left: 3em;
+}
+.oo-ui-selectFileWidget .oo-ui-selectFileWidget-handle {
+       padding-right: 3em;
+}
+.oo-ui-selectFileWidget .oo-ui-selectFileWidget-handle .oo-ui-selectFileWidget-clearButton {
+       right: 0;
+}
+.oo-ui-selectFileWidget.oo-ui-indicatorElement .oo-ui-selectFileWidget-handle {
+       padding-right: 5em;
+}
+.oo-ui-selectFileWidget.oo-ui-indicatorElement .oo-ui-selectFileWidget-handle .oo-ui-selectFileWidget-clearButton {
+       right: 2em;
+}
+.oo-ui-selectFileWidget-empty .oo-ui-selectFileWidget-handle,
+.oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-handle {
+       padding-right: 1em;
+}
+.oo-ui-selectFileWidget-empty.oo-ui-indicatorElement .oo-ui-selectFileWidget-handle,
+.oo-ui-selectFileWidget-notsupported.oo-ui-indicatorElement .oo-ui-selectFileWidget-handle {
+       padding-right: 2em;
+}
 .oo-ui-outlineOptionWidget {
        position: relative;
        cursor: pointer;
        color: #666666;
        font-weight: bold;
 }
-.oo-ui-tabOptionWidget:hover {
+.oo-ui-tabOptionWidget.oo-ui-widget-enabled:hover {
        background-color: rgba(255, 255, 255, 0.3);
 }
-.oo-ui-tabOptionWidget:active {
+.oo-ui-tabOptionWidget.oo-ui-widget-enabled:active {
        background-color: rgba(255, 255, 255, 0.8);
 }
 .oo-ui-tabOptionWidget.oo-ui-indicatorElement .oo-ui-labelElement-label {
        padding: 1em;
        line-height: 0;
 }
+.oo-ui-numberInputWidget {
+       display: inline-block;
+       position: relative;
+       max-width: 50em;
+}
+.oo-ui-numberInputWidget-field {
+       display: table;
+       table-layout: fixed;
+       width: 100%;
+}
+.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget,
+.oo-ui-numberInputWidget-field > .oo-ui-textInputWidget {
+       display: table-cell;
+       vertical-align: middle;
+}
+.oo-ui-numberInputWidget-field > .oo-ui-textInputWidget {
+       width: 100%;
+}
+.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget {
+       white-space: nowrap;
+}
+.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget > .oo-ui-buttonElement-button {
+       box-sizing: border-box;
+}
+.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget,
+.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget > .oo-ui-buttonElement-button {
+       margin: 0;
+       width: 2.5em;
+}
+.oo-ui-numberInputWidget-minusButton.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
+       border-top-right-radius: 0;
+       border-bottom-right-radius: 0;
+       border-right-width: 0;
+}
+.oo-ui-numberInputWidget-plusButton.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
+       border-top-left-radius: 0;
+       border-bottom-left-radius: 0;
+       border-left-width: 0;
+}
+.oo-ui-numberInputWidget .oo-ui-textInputWidget input {
+       border-radius: 0;
+}
 .oo-ui-window {
        background: transparent;
 }
 }
 .oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
        border-right: 1px solid #e5e5e5;
+       margin: 0;
 }
 .oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget:last-child {
        border-right-width: 0;
 }
 .oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
        border-bottom: 1px solid #e5e5e5;
+       margin: 0;
 }
 .oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget:last-child {
        border-bottom-width: 0;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget {
        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 {
        text-align: center;
index b013b1a..db175a5 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.11.1
+ * OOjs UI v0.11.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-05-05T00:40:50Z
+ * Date: 2015-06-09T22:03:14Z
  */
 /**
  * @class
index f6d6128..e824a8f 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.11.1
+ * OOjs UI v0.11.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-05-05T00:40:50Z
+ * Date: 2015-06-09T22:03:14Z
  */
 ( function ( OO ) {
 
@@ -44,6 +44,21 @@ OO.ui.Keys = {
        SPACE: 32
 };
 
+/**
+ * @property {Number}
+ */
+OO.ui.elementId = 0;
+
+/**
+ * Generate a unique ID for element
+ *
+ * @return {String} [id]
+ */
+OO.ui.generateElementId = function () {
+       OO.ui.elementId += 1;
+       return 'oojsui-' + OO.ui.elementId;
+};
+
 /**
  * Check if an element is focusable.
  * Inspired from :focusable in jQueryUI v1.11.4 - 2015-04-14
@@ -230,7 +245,13 @@ OO.ui.infuse = function ( idOrNode ) {
                // Label for process dialog retry action button, visible when describing only recoverable errors
                'ooui-dialog-process-retry': 'Try again',
                // Label for process dialog retry action button, visible when describing only warnings
-               'ooui-dialog-process-continue': 'Continue'
+               'ooui-dialog-process-continue': 'Continue',
+               // Default placeholder for file selection widgets
+               'ooui-selectfile-not-supported': 'File selection is not supported',
+               // Default placeholder for file selection widgets
+               'ooui-selectfile-placeholder': 'No file is selected',
+               // Semicolon separator
+               'ooui-semicolon-separator': '; '
        };
 
        /**
@@ -299,8 +320,72 @@ OO.ui.infuse = function ( idOrNode ) {
 
 } )();
 
+/*!
+ * Mixin namespace.
+ */
+
+/**
+ * Namespace for OOjs UI mixins.
+ *
+ * Mixins are named according to the type of object they are intended to
+ * be mixed in to.  For example, OO.ui.mixin.GroupElement is intended to be
+ * mixed in to an instance of OO.ui.Element, and OO.ui.mixin.GroupWidget
+ * is intended to be mixed in to an instance of OO.ui.Widget.
+ *
+ * @class
+ * @singleton
+ */
+OO.ui.mixin = {};
+
 /**
- * Element that can be marked as pending.
+ * PendingElement is a mixin that is used to create elements that notify users that something is happening
+ * and that they should wait before proceeding. The pending state is visually represented with a pending
+ * texture that appears in the head of a pending {@link OO.ui.ProcessDialog process dialog} or in the input
+ * field of a {@link OO.ui.TextInputWidget text input widget}.
+ *
+ * Currently, {@link OO.ui.ActionWidget Action widgets}, which mix in this class, can also be marked as pending, but only when
+ * used in {@link OO.ui.MessageDialog message dialogs}. The behavior is not currently supported for action widgets used
+ * in process dialogs.
+ *
+ *     @example
+ *     function MessageDialog( config ) {
+ *         MessageDialog.super.call( this, config );
+ *     }
+ *     OO.inheritClass( MessageDialog, OO.ui.MessageDialog );
+ *
+ *     MessageDialog.static.actions = [
+ *         { action: 'save', label: 'Done', flags: 'primary' },
+ *         { label: 'Cancel', flags: 'safe' }
+ *     ];
+ *
+ *     MessageDialog.prototype.initialize = function () {
+ *         MessageDialog.super.prototype.initialize.apply( this, arguments );
+ *         this.content = new OO.ui.PanelLayout( { $: this.$, padded: true } );
+ *         this.content.$element.append( '<p>Click the \'Done\' action widget to see its pending state. Note that action widgets can be marked pending in message dialogs but not process dialogs.</p>' );
+ *         this.$body.append( this.content.$element );
+ *     };
+ *     MessageDialog.prototype.getBodyHeight = function () {
+ *         return 100;
+ *     }
+ *     MessageDialog.prototype.getActionProcess = function ( action ) {
+ *         var dialog = this;
+ *         if ( action === 'save' ) {
+ *             dialog.getActions().get({actions: 'save'})[0].pushPending();
+ *             return new OO.ui.Process()
+ *             .next( 1000 )
+ *             .next( function () {
+ *                 dialog.getActions().get({actions: 'save'})[0].popPending();
+ *             } );
+ *         }
+ *         return MessageDialog.super.prototype.getActionProcess.call( this, action );
+ *     };
+ *
+ *     var windowManager = new OO.ui.WindowManager();
+ *     $( 'body' ).append( windowManager.$element );
+ *
+ *     var dialog = new MessageDialog();
+ *     windowManager.addWindows( [ dialog ] );
+ *     windowManager.openWindow( dialog );
  *
  * @abstract
  * @class
@@ -309,7 +394,7 @@ OO.ui.infuse = function ( idOrNode ) {
  * @param {Object} [config] Configuration options
  * @cfg {jQuery} [$pending] Element to mark as pending, defaults to this.$element
  */
-OO.ui.PendingElement = function OoUiPendingElement( config ) {
+OO.ui.mixin.PendingElement = function OoUiMixinPendingElement( config ) {
        // Configuration initialization
        config = config || {};
 
@@ -323,7 +408,7 @@ OO.ui.PendingElement = function OoUiPendingElement( config ) {
 
 /* Setup */
 
-OO.initClass( OO.ui.PendingElement );
+OO.initClass( OO.ui.mixin.PendingElement );
 
 /* Methods */
 
@@ -332,7 +417,7 @@ OO.initClass( OO.ui.PendingElement );
  *
  * @param {jQuery} $pending The element to set to pending.
  */
-OO.ui.PendingElement.prototype.setPendingElement = function ( $pending ) {
+OO.ui.mixin.PendingElement.prototype.setPendingElement = function ( $pending ) {
        if ( this.$pending ) {
                this.$pending.removeClass( 'oo-ui-pendingElement-pending' );
        }
@@ -344,20 +429,21 @@ OO.ui.PendingElement.prototype.setPendingElement = function ( $pending ) {
 };
 
 /**
- * Check if input is pending.
+ * Check if an element is pending.
  *
- * @return {boolean}
+ * @return {boolean} Element is pending
  */
-OO.ui.PendingElement.prototype.isPending = function () {
+OO.ui.mixin.PendingElement.prototype.isPending = function () {
        return !!this.pending;
 };
 
 /**
- * Increase the pending stack.
+ * Increase the pending counter. The pending state will remain active until the counter is zero
+ * (i.e., the number of calls to #pushPending and #popPending is the same).
  *
  * @chainable
  */
-OO.ui.PendingElement.prototype.pushPending = function () {
+OO.ui.mixin.PendingElement.prototype.pushPending = function () {
        if ( this.pending === 0 ) {
                this.$pending.addClass( 'oo-ui-pendingElement-pending' );
                this.updateThemeClasses();
@@ -368,13 +454,12 @@ OO.ui.PendingElement.prototype.pushPending = function () {
 };
 
 /**
- * Reduce the pending stack.
- *
- * Clamped at zero.
+ * Decrease the pending counter. The pending state will remain active until the counter is zero
+ * (i.e., the number of calls to #pushPending and #popPending is the same).
  *
  * @chainable
  */
-OO.ui.PendingElement.prototype.popPending = function () {
+OO.ui.mixin.PendingElement.prototype.popPending = function () {
        if ( this.pending === 1 ) {
                this.$pending.removeClass( 'oo-ui-pendingElement-pending' );
                this.updateThemeClasses();
@@ -1458,7 +1543,10 @@ OO.ui.Element.static.scrollIntoView = function ( el, config ) {
  * @param {HTMLElement} el Element to reconsider the scrollbars on
  */
 OO.ui.Element.static.reconsiderScrollbars = function ( el ) {
-       var i, len, nodes = [];
+       var i, len, scrollLeft, scrollTop, nodes = [];
+       // Save scroll position
+       scrollLeft = el.scrollLeft;
+       scrollTop = el.scrollTop;
        // Detach all children
        while ( el.firstChild ) {
                nodes.push( el.firstChild );
@@ -1470,6 +1558,9 @@ OO.ui.Element.static.reconsiderScrollbars = function ( el ) {
        for ( i = 0, len = nodes.length; i < len; i++ ) {
                el.appendChild( nodes[ i ] );
        }
+       // Restore scroll position (no-op if scrollbars disappeared)
+       el.scrollLeft = scrollLeft;
+       el.scrollTop = scrollTop;
 };
 
 /* Methods */
@@ -1612,7 +1703,7 @@ OO.ui.Element.prototype.getClosestScrollableElementContainer = function () {
 /**
  * Get group element is in.
  *
- * @return {OO.ui.GroupElement|null} Group element, null if none
+ * @return {OO.ui.mixin.GroupElement|null} Group element, null if none
  */
 OO.ui.Element.prototype.getElementGroup = function () {
        return this.elementGroup;
@@ -1621,7 +1712,7 @@ OO.ui.Element.prototype.getElementGroup = function () {
 /**
  * Set group element is in.
  *
- * @param {OO.ui.GroupElement|null} group Group element, null if none
+ * @param {OO.ui.mixin.GroupElement|null} group Group element, null if none
  * @chainable
  */
 OO.ui.Element.prototype.setElementGroup = function ( group ) {
@@ -1711,6 +1802,19 @@ OO.ui.Widget = function OoUiWidget( config ) {
 OO.inheritClass( OO.ui.Widget, OO.ui.Element );
 OO.mixinClass( OO.ui.Widget, OO.EventEmitter );
 
+/* Static Properties */
+
+/**
+ * Whether this widget will behave reasonably when wrapped in a HTML `<label>`. If this is true,
+ * wrappers such as OO.ui.FieldLayout may use a `<label>` instead of implementing own label click
+ * handling.
+ *
+ * @static
+ * @inheritable
+ * @property {boolean}
+ */
+OO.ui.Widget.static.supportsSimpleLabel = false;
+
 /* Events */
 
 /**
@@ -2441,7 +2545,7 @@ OO.ui.Window.prototype.teardown = function ( data ) {
  * @abstract
  * @class
  * @extends OO.ui.Window
- * @mixins OO.ui.PendingElement
+ * @mixins OO.ui.mixin.PendingElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -2451,7 +2555,7 @@ OO.ui.Dialog = function OoUiDialog( config ) {
        OO.ui.Dialog.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.PendingElement.call( this );
+       OO.ui.mixin.PendingElement.call( this );
 
        // Properties
        this.actions = new OO.ui.ActionSet();
@@ -2475,7 +2579,7 @@ OO.ui.Dialog = function OoUiDialog( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.Dialog, OO.ui.Window );
-OO.mixinClass( OO.ui.Dialog, OO.ui.PendingElement );
+OO.mixinClass( OO.ui.Dialog, OO.ui.mixin.PendingElement );
 
 /* Static Properties */
 
@@ -2497,7 +2601,7 @@ OO.ui.Dialog.static.name = '';
 /**
  * The dialog title.
  *
- * The title can be specified as a plaintext string, a {@link OO.ui.LabelElement Label} node, or a function
+ * The title can be specified as a plaintext string, a {@link OO.ui.mixin.LabelElement Label} node, or a function
  * that will produce a Label node or string. The title can also be specified with data passed to the
  * constructor (see #getSetupProcess). In this case, the static value will be overriden.
  *
@@ -2665,11 +2769,16 @@ OO.ui.Dialog.prototype.initialize = function () {
        // Parent method
        OO.ui.Dialog.super.prototype.initialize.call( this );
 
+       var titleId = OO.ui.generateElementId();
+
        // Properties
-       this.title = new OO.ui.LabelWidget();
+       this.title = new OO.ui.LabelWidget( {
+               id: titleId
+       } );
 
        // Initialization
        this.$content.addClass( 'oo-ui-dialog-content' );
+       this.$element.attr( 'aria-labelledby', titleId );
        this.setPendingElement( this.$head );
 };
 
@@ -3694,7 +3803,13 @@ OO.ui.Process.prototype.next = function ( step, context ) {
 };
 
 /**
- * Factory for tools.
+ * A ToolFactory creates tools on demand. All tools ({@link OO.ui.Tool Tools}, {@link OO.ui.PopupTool PopupTools},
+ * and {@link OO.ui.ToolGroupTool ToolGroupTools}) must be registered with a tool factory. Tools are
+ * registered by their symbolic name. See {@link OO.ui.Toolbar toolbars} for an example.
+ *
+ * For more information about toolbars in general, please see the [OOjs UI documentation on MediaWiki][1].
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Toolbars
  *
  * @class
  * @extends OO.Factory
@@ -3815,8 +3930,19 @@ OO.ui.ToolFactory.prototype.extract = function ( collection, used ) {
 };
 
 /**
- * Factory for tool groups.
+ * ToolGroupFactories create {@link OO.ui.ToolGroup toolgroups} on demand. The toolgroup classes must
+ * specify a symbolic name and be registered with the factory. The following classes are registered by
+ * default:
  *
+ * - {@link OO.ui.BarToolGroup BarToolGroups} (‘bar’)
+ * - {@link OO.ui.MenuToolGroup MenuToolGroups} (‘menu’)
+ * - {@link OO.ui.ListToolGroup ListToolGroups} (‘list’)
+ *
+ * See {@link OO.ui.Toolbar toolbars} for an example.
+ *
+ * For more information about toolbars in general, please see the [OOjs UI documentation on MediaWiki][1].
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Toolbars
  * @class
  * @extends OO.Factory
  * @constructor
@@ -3841,7 +3967,7 @@ OO.inheritClass( OO.ui.ToolGroupFactory, OO.Factory );
 /* Static Methods */
 
 /**
- * Get a default set of classes to be registered on construction
+ * Get a default set of classes to be registered on construction.
  *
  * @return {Function[]} Default classes
  */
@@ -3940,7 +4066,7 @@ OO.ui.Theme.prototype.updateElementClasses = function ( element ) {
  *  order (e.g., 1 for the first focusable element). Use 0 to use the default navigation order; use -1
  *  to remove the element from the tab-navigation flow.
  */
-OO.ui.TabIndexedElement = function OoUiTabIndexedElement( config ) {
+OO.ui.mixin.TabIndexedElement = function OoUiMixinTabIndexedElement( config ) {
        // Configuration initialization
        config = $.extend( { tabIndex: 0 }, config );
 
@@ -3949,7 +4075,7 @@ OO.ui.TabIndexedElement = function OoUiTabIndexedElement( config ) {
        this.tabIndex = null;
 
        // Events
-       this.connect( this, { disable: 'onDisable' } );
+       this.connect( this, { disable: 'onTabIndexedElementDisable' } );
 
        // Initialization
        this.setTabIndex( config.tabIndex );
@@ -3958,7 +4084,7 @@ OO.ui.TabIndexedElement = function OoUiTabIndexedElement( config ) {
 
 /* Setup */
 
-OO.initClass( OO.ui.TabIndexedElement );
+OO.initClass( OO.ui.mixin.TabIndexedElement );
 
 /* Methods */
 
@@ -3972,7 +4098,7 @@ OO.initClass( OO.ui.TabIndexedElement );
  * @param {jQuery} $tabIndexed Element that should use the tabindex functionality
  * @chainable
  */
-OO.ui.TabIndexedElement.prototype.setTabIndexedElement = function ( $tabIndexed ) {
+OO.ui.mixin.TabIndexedElement.prototype.setTabIndexedElement = function ( $tabIndexed ) {
        var tabIndex = this.tabIndex;
        // Remove attributes from old $tabIndexed
        this.setTabIndex( null );
@@ -3988,7 +4114,7 @@ OO.ui.TabIndexedElement.prototype.setTabIndexedElement = function ( $tabIndexed
  * @param {number|null} tabIndex Tabindex value, or `null` for no tabindex
  * @chainable
  */
-OO.ui.TabIndexedElement.prototype.setTabIndex = function ( tabIndex ) {
+OO.ui.mixin.TabIndexedElement.prototype.setTabIndex = function ( tabIndex ) {
        tabIndex = typeof tabIndex === 'number' ? tabIndex : null;
 
        if ( this.tabIndex !== tabIndex ) {
@@ -4006,7 +4132,7 @@ OO.ui.TabIndexedElement.prototype.setTabIndex = function ( tabIndex ) {
  * @private
  * @chainable
  */
-OO.ui.TabIndexedElement.prototype.updateTabIndex = function () {
+OO.ui.mixin.TabIndexedElement.prototype.updateTabIndex = function () {
        if ( this.$tabIndexed ) {
                if ( this.tabIndex !== null ) {
                        // Do not index over disabled elements
@@ -4028,7 +4154,7 @@ OO.ui.TabIndexedElement.prototype.updateTabIndex = function () {
  * @private
  * @param {boolean} disabled Element is disabled
  */
-OO.ui.TabIndexedElement.prototype.onDisable = function () {
+OO.ui.mixin.TabIndexedElement.prototype.onTabIndexedElementDisable = function () {
        this.updateTabIndex();
 };
 
@@ -4037,7 +4163,7 @@ OO.ui.TabIndexedElement.prototype.onDisable = function () {
  *
  * @return {number|null} Tabindex value
  */
-OO.ui.TabIndexedElement.prototype.getTabIndex = function () {
+OO.ui.mixin.TabIndexedElement.prototype.getTabIndex = function () {
        return this.tabIndex;
 };
 
@@ -4057,7 +4183,7 @@ OO.ui.TabIndexedElement.prototype.getTabIndex = function () {
  * @cfg {boolean} [framed=true] Render the button with a frame
  * @cfg {string} [accessKey] Button's access key
  */
-OO.ui.ButtonElement = function OoUiButtonElement( config ) {
+OO.ui.mixin.ButtonElement = function OoUiMixinButtonElement( config ) {
        // Configuration initialization
        config = config || {};
 
@@ -4082,7 +4208,7 @@ OO.ui.ButtonElement = function OoUiButtonElement( config ) {
 
 /* Setup */
 
-OO.initClass( OO.ui.ButtonElement );
+OO.initClass( OO.ui.mixin.ButtonElement );
 
 /* Static Properties */
 
@@ -4090,7 +4216,7 @@ OO.initClass( OO.ui.ButtonElement );
  * Cancel mouse down events.
  *
  * This property is usually set to `true` to prevent the focus from changing when the button is clicked.
- * Classes such as {@link OO.ui.DraggableElement DraggableElement} and {@link OO.ui.ButtonOptionWidget ButtonOptionWidget}
+ * Classes such as {@link OO.ui.mixin.DraggableElement DraggableElement} and {@link OO.ui.ButtonOptionWidget ButtonOptionWidget}
  * use a value of `false` so that dragging behavior is possible and mousedown events can be handled by a
  * parent widget.
  *
@@ -4098,7 +4224,7 @@ OO.initClass( OO.ui.ButtonElement );
  * @inheritable
  * @property {boolean}
  */
-OO.ui.ButtonElement.static.cancelButtonMouseDownEvents = true;
+OO.ui.mixin.ButtonElement.static.cancelButtonMouseDownEvents = true;
 
 /* Events */
 
@@ -4119,7 +4245,7 @@ OO.ui.ButtonElement.static.cancelButtonMouseDownEvents = true;
  *
  * @param {jQuery} $button Element to use as button
  */
-OO.ui.ButtonElement.prototype.setButtonElement = function ( $button ) {
+OO.ui.mixin.ButtonElement.prototype.setButtonElement = function ( $button ) {
        if ( this.$button ) {
                this.$button
                        .removeClass( 'oo-ui-buttonElement-button' )
@@ -4149,7 +4275,7 @@ OO.ui.ButtonElement.prototype.setButtonElement = function ( $button ) {
  * @protected
  * @param {jQuery.Event} e Mouse down event
  */
-OO.ui.ButtonElement.prototype.onMouseDown = function ( e ) {
+OO.ui.mixin.ButtonElement.prototype.onMouseDown = function ( e ) {
        if ( this.isDisabled() || e.which !== 1 ) {
                return;
        }
@@ -4169,7 +4295,7 @@ OO.ui.ButtonElement.prototype.onMouseDown = function ( e ) {
  * @protected
  * @param {jQuery.Event} e Mouse up event
  */
-OO.ui.ButtonElement.prototype.onMouseUp = function ( e ) {
+OO.ui.mixin.ButtonElement.prototype.onMouseUp = function ( e ) {
        if ( this.isDisabled() || e.which !== 1 ) {
                return;
        }
@@ -4185,11 +4311,12 @@ OO.ui.ButtonElement.prototype.onMouseUp = function ( e ) {
  * @param {jQuery.Event} e Mouse click event
  * @fires click
  */
-OO.ui.ButtonElement.prototype.onClick = function ( e ) {
+OO.ui.mixin.ButtonElement.prototype.onClick = function ( e ) {
        if ( !this.isDisabled() && e.which === 1 ) {
-               this.emit( 'click' );
+               if ( this.emit( 'click' ) ) {
+                       return false;
+               }
        }
-       return false;
 };
 
 /**
@@ -4198,7 +4325,7 @@ OO.ui.ButtonElement.prototype.onClick = function ( e ) {
  * @protected
  * @param {jQuery.Event} e Key down event
  */
-OO.ui.ButtonElement.prototype.onKeyDown = function ( e ) {
+OO.ui.mixin.ButtonElement.prototype.onKeyDown = function ( e ) {
        if ( this.isDisabled() || ( e.which !== OO.ui.Keys.SPACE && e.which !== OO.ui.Keys.ENTER ) ) {
                return;
        }
@@ -4214,7 +4341,7 @@ OO.ui.ButtonElement.prototype.onKeyDown = function ( e ) {
  * @protected
  * @param {jQuery.Event} e Key up event
  */
-OO.ui.ButtonElement.prototype.onKeyUp = function ( e ) {
+OO.ui.mixin.ButtonElement.prototype.onKeyUp = function ( e ) {
        if ( this.isDisabled() || ( e.which !== OO.ui.Keys.SPACE && e.which !== OO.ui.Keys.ENTER ) ) {
                return;
        }
@@ -4230,10 +4357,11 @@ OO.ui.ButtonElement.prototype.onKeyUp = function ( e ) {
  * @param {jQuery.Event} e Key press event
  * @fires click
  */
-OO.ui.ButtonElement.prototype.onKeyPress = function ( e ) {
+OO.ui.mixin.ButtonElement.prototype.onKeyPress = function ( e ) {
        if ( !this.isDisabled() && ( e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER ) ) {
-               this.emit( 'click' );
-               return false;
+               if ( this.emit( 'click' ) ) {
+                       return false;
+               }
        }
 };
 
@@ -4242,7 +4370,7 @@ OO.ui.ButtonElement.prototype.onKeyPress = function ( e ) {
  *
  * @return {boolean} Button is framed
  */
-OO.ui.ButtonElement.prototype.isFramed = function () {
+OO.ui.mixin.ButtonElement.prototype.isFramed = function () {
        return this.framed;
 };
 
@@ -4252,7 +4380,7 @@ OO.ui.ButtonElement.prototype.isFramed = function () {
  * @param {boolean} [framed] Make button framed, omit to toggle
  * @chainable
  */
-OO.ui.ButtonElement.prototype.toggleFramed = function ( framed ) {
+OO.ui.mixin.ButtonElement.prototype.toggleFramed = function ( framed ) {
        framed = framed === undefined ? !this.framed : !!framed;
        if ( framed !== this.framed ) {
                this.framed = framed;
@@ -4271,7 +4399,7 @@ OO.ui.ButtonElement.prototype.toggleFramed = function ( framed ) {
  * @param {string} accessKey Button's access key, use empty string to remove
  * @chainable
  */
-OO.ui.ButtonElement.prototype.setAccessKey = function ( accessKey ) {
+OO.ui.mixin.ButtonElement.prototype.setAccessKey = function ( accessKey ) {
        accessKey = typeof accessKey === 'string' && accessKey.length ? accessKey : null;
 
        if ( this.accessKey !== accessKey ) {
@@ -4298,7 +4426,7 @@ OO.ui.ButtonElement.prototype.setAccessKey = function ( accessKey ) {
  * @param {boolean} [value] Make button active
  * @chainable
  */
-OO.ui.ButtonElement.prototype.setActive = function ( value ) {
+OO.ui.mixin.ButtonElement.prototype.setActive = function ( value ) {
        this.$element.toggleClass( 'oo-ui-buttonElement-active', !!value );
        return this;
 };
@@ -4319,7 +4447,7 @@ OO.ui.ButtonElement.prototype.setActive = function ( value ) {
  * @cfg {jQuery} [$group] The container element created by the class. If this configuration
  *  is omitted, the group element will use a generated `<div>`.
  */
-OO.ui.GroupElement = function OoUiGroupElement( config ) {
+OO.ui.mixin.GroupElement = function OoUiMixinGroupElement( config ) {
        // Configuration initialization
        config = config || {};
 
@@ -4341,7 +4469,7 @@ OO.ui.GroupElement = function OoUiGroupElement( config ) {
  *
  * @param {jQuery} $group Element to use as group
  */
-OO.ui.GroupElement.prototype.setGroupElement = function ( $group ) {
+OO.ui.mixin.GroupElement.prototype.setGroupElement = function ( $group ) {
        var i, len;
 
        this.$group = $group;
@@ -4355,7 +4483,7 @@ OO.ui.GroupElement.prototype.setGroupElement = function ( $group ) {
  *
  * @return {boolean} Group is empty
  */
-OO.ui.GroupElement.prototype.isEmpty = function () {
+OO.ui.mixin.GroupElement.prototype.isEmpty = function () {
        return !this.items.length;
 };
 
@@ -4368,7 +4496,7 @@ OO.ui.GroupElement.prototype.isEmpty = function () {
  *
  * @return {OO.ui.Element[]} An array of items.
  */
-OO.ui.GroupElement.prototype.getItems = function () {
+OO.ui.mixin.GroupElement.prototype.getItems = function () {
        return this.items.slice( 0 );
 };
 
@@ -4381,7 +4509,7 @@ OO.ui.GroupElement.prototype.getItems = function () {
  * @param {Object} data Item data to search for
  * @return {OO.ui.Element|null} Item with equivalent data, `null` if none exists
  */
-OO.ui.GroupElement.prototype.getItemFromData = function ( data ) {
+OO.ui.mixin.GroupElement.prototype.getItemFromData = function ( data ) {
        var i, len, item,
                hash = OO.getHash( data );
 
@@ -4403,7 +4531,7 @@ OO.ui.GroupElement.prototype.getItemFromData = function ( data ) {
  * @param {Object} data Item data to search for
  * @return {OO.ui.Element[]} Items with equivalent data
  */
-OO.ui.GroupElement.prototype.getItemsFromData = function ( data ) {
+OO.ui.mixin.GroupElement.prototype.getItemsFromData = function ( data ) {
        var i, len, item,
                hash = OO.getHash( data ),
                items = [];
@@ -4432,7 +4560,7 @@ OO.ui.GroupElement.prototype.getItemsFromData = function ( data ) {
 
  * @throws {Error} An error is thrown if aggregation already exists.
  */
-OO.ui.GroupElement.prototype.aggregate = function ( events ) {
+OO.ui.mixin.GroupElement.prototype.aggregate = function ( events ) {
        var i, len, item, add, remove, itemEvent, groupEvent;
 
        for ( itemEvent in events ) {
@@ -4449,7 +4577,7 @@ OO.ui.GroupElement.prototype.aggregate = function ( events ) {
                                item = this.items[ i ];
                                if ( item.connect && item.disconnect ) {
                                        remove = {};
-                                       remove[ itemEvent ] = [ 'emit', groupEvent, item ];
+                                       remove[ itemEvent ] = [ 'emit', this.aggregateItemEvents[itemEvent], item ];
                                        item.disconnect( this, remove );
                                }
                        }
@@ -4484,7 +4612,7 @@ OO.ui.GroupElement.prototype.aggregate = function ( events ) {
  * @param {number} [index] Index of the insertion point
  * @chainable
  */
-OO.ui.GroupElement.prototype.addItems = function ( items, index ) {
+OO.ui.mixin.GroupElement.prototype.addItems = function ( items, index ) {
        var i, len, item, event, events, currentIndex,
                itemElements = [];
 
@@ -4535,7 +4663,7 @@ OO.ui.GroupElement.prototype.addItems = function ( items, index ) {
  * @param {OO.ui.Element[]} items An array of items to remove
  * @chainable
  */
-OO.ui.GroupElement.prototype.removeItems = function ( items ) {
+OO.ui.mixin.GroupElement.prototype.removeItems = function ( items ) {
        var i, len, item, index, remove, itemEvent;
 
        // Remove specific items
@@ -4570,7 +4698,7 @@ OO.ui.GroupElement.prototype.removeItems = function ( items ) {
  *
  * @chainable
  */
-OO.ui.GroupElement.prototype.clearItems = function () {
+OO.ui.mixin.GroupElement.prototype.clearItems = function () {
        var i, len, item, remove, itemEvent;
 
        // Remove all items
@@ -4597,7 +4725,7 @@ OO.ui.GroupElement.prototype.clearItems = function () {
 /**
  * DraggableElement is a mixin class used to create elements that can be clicked
  * and dragged by a mouse to a new position within a group. This class must be used
- * in conjunction with OO.ui.DraggableGroupElement, which provides a container for
+ * in conjunction with OO.ui.mixin.DraggableGroupElement, which provides a container for
  * the draggable elements.
  *
  * @abstract
@@ -4605,7 +4733,7 @@ OO.ui.GroupElement.prototype.clearItems = function () {
  *
  * @constructor
  */
-OO.ui.DraggableElement = function OoUiDraggableElement() {
+OO.ui.mixin.DraggableElement = function OoUiMixinDraggableElement() {
        // Properties
        this.index = null;
 
@@ -4621,7 +4749,7 @@ OO.ui.DraggableElement = function OoUiDraggableElement() {
                } );
 };
 
-OO.initClass( OO.ui.DraggableElement );
+OO.initClass( OO.ui.mixin.DraggableElement );
 
 /* Events */
 
@@ -4629,7 +4757,7 @@ OO.initClass( OO.ui.DraggableElement );
  * @event dragstart
  *
  * A dragstart event is emitted when the user clicks and begins dragging an item.
- * @param {OO.ui.DraggableElement} item The item the user has clicked and is dragging with the mouse.
+ * @param {OO.ui.mixin.DraggableElement} item The item the user has clicked and is dragging with the mouse.
  */
 
 /**
@@ -4647,9 +4775,9 @@ OO.initClass( OO.ui.DraggableElement );
 /* Static Properties */
 
 /**
- * @inheritdoc OO.ui.ButtonElement
+ * @inheritdoc OO.ui.mixin.ButtonElement
  */
-OO.ui.DraggableElement.static.cancelButtonMouseDownEvents = false;
+OO.ui.mixin.DraggableElement.static.cancelButtonMouseDownEvents = false;
 
 /* Methods */
 
@@ -4660,7 +4788,7 @@ OO.ui.DraggableElement.static.cancelButtonMouseDownEvents = false;
  * @param {jQuery.Event} event jQuery event
  * @fires dragstart
  */
-OO.ui.DraggableElement.prototype.onDragStart = function ( e ) {
+OO.ui.mixin.DraggableElement.prototype.onDragStart = function ( e ) {
        var dataTransfer = e.originalEvent.dataTransfer;
        // Define drop effect
        dataTransfer.dropEffect = 'none';
@@ -4686,7 +4814,7 @@ OO.ui.DraggableElement.prototype.onDragStart = function ( e ) {
  * @private
  * @fires dragend
  */
-OO.ui.DraggableElement.prototype.onDragEnd = function () {
+OO.ui.mixin.DraggableElement.prototype.onDragEnd = function () {
        this.$element.removeClass( 'oo-ui-draggableElement-dragging' );
        this.emit( 'dragend' );
 };
@@ -4698,7 +4826,7 @@ OO.ui.DraggableElement.prototype.onDragEnd = function () {
  * @param {jQuery.Event} event jQuery event
  * @fires drop
  */
-OO.ui.DraggableElement.prototype.onDrop = function ( e ) {
+OO.ui.mixin.DraggableElement.prototype.onDrop = function ( e ) {
        e.preventDefault();
        this.emit( 'drop', e );
 };
@@ -4709,7 +4837,7 @@ OO.ui.DraggableElement.prototype.onDrop = function ( e ) {
  *
  * @private
  */
-OO.ui.DraggableElement.prototype.onDragOver = function ( e ) {
+OO.ui.mixin.DraggableElement.prototype.onDragOver = function ( e ) {
        e.preventDefault();
 };
 
@@ -4720,7 +4848,7 @@ OO.ui.DraggableElement.prototype.onDragOver = function ( e ) {
  * @private
  * @param {number} Item index
  */
-OO.ui.DraggableElement.prototype.setIndex = function ( index ) {
+OO.ui.mixin.DraggableElement.prototype.setIndex = function ( index ) {
        if ( this.index !== index ) {
                this.index = index;
                this.$element.data( 'index', index );
@@ -4733,18 +4861,18 @@ OO.ui.DraggableElement.prototype.setIndex = function ( index ) {
  * @private
  * @return {number} Item index
  */
-OO.ui.DraggableElement.prototype.getIndex = function () {
+OO.ui.mixin.DraggableElement.prototype.getIndex = function () {
        return this.index;
 };
 
 /**
  * DraggableGroupElement is a mixin class used to create a group element to
  * contain draggable elements, which are items that can be clicked and dragged by a mouse.
- * The class is used with OO.ui.DraggableElement.
+ * The class is used with OO.ui.mixin.DraggableElement.
  *
  * @abstract
  * @class
- * @mixins OO.ui.GroupElement
+ * @mixins OO.ui.mixin.GroupElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -4753,12 +4881,12 @@ OO.ui.DraggableElement.prototype.getIndex = function () {
  *  or in several rows should use horizontal orientation. The vertical orientation should only be
  *  used when the items are displayed in a single column. Defaults to 'vertical'
  */
-OO.ui.DraggableGroupElement = function OoUiDraggableGroupElement( config ) {
+OO.ui.mixin.DraggableGroupElement = function OoUiMixinDraggableGroupElement( config ) {
        // Configuration initialization
        config = config || {};
 
        // Parent constructor
-       OO.ui.GroupElement.call( this, config );
+       OO.ui.mixin.GroupElement.call( this, config );
 
        // Properties
        this.orientation = config.orientation || 'vertical';
@@ -4797,7 +4925,7 @@ OO.ui.DraggableGroupElement = function OoUiDraggableGroupElement( config ) {
 };
 
 /* Setup */
-OO.mixinClass( OO.ui.DraggableGroupElement, OO.ui.GroupElement );
+OO.mixinClass( OO.ui.mixin.DraggableGroupElement, OO.ui.mixin.GroupElement );
 
 /* Events */
 
@@ -4805,7 +4933,7 @@ OO.mixinClass( OO.ui.DraggableGroupElement, OO.ui.GroupElement );
  * A 'reorder' event is emitted when the order of items in the group changes.
  *
  * @event reorder
- * @param {OO.ui.DraggableElement} item Reordered item
+ * @param {OO.ui.mixin.DraggableElement} item Reordered item
  * @param {number} [newIndex] New index for the item
  */
 
@@ -4815,9 +4943,9 @@ OO.mixinClass( OO.ui.DraggableGroupElement, OO.ui.GroupElement );
  * Respond to item drag start event
  *
  * @private
- * @param {OO.ui.DraggableElement} item Dragged item
+ * @param {OO.ui.mixin.DraggableElement} item Dragged item
  */
-OO.ui.DraggableGroupElement.prototype.onItemDragStart = function ( item ) {
+OO.ui.mixin.DraggableGroupElement.prototype.onItemDragStart = function ( item ) {
        var i, len;
 
        // Map the index of each object
@@ -4846,7 +4974,7 @@ OO.ui.DraggableGroupElement.prototype.onItemDragStart = function ( item ) {
  *
  * @private
  */
-OO.ui.DraggableGroupElement.prototype.onItemDragEnd = function () {
+OO.ui.mixin.DraggableGroupElement.prototype.onItemDragEnd = function () {
        this.unsetDragItem();
        return false;
 };
@@ -4855,10 +4983,10 @@ OO.ui.DraggableGroupElement.prototype.onItemDragEnd = function () {
  * Handle drop event and switch the order of the items accordingly
  *
  * @private
- * @param {OO.ui.DraggableElement} item Dropped item
+ * @param {OO.ui.mixin.DraggableElement} item Dropped item
  * @fires reorder
  */
-OO.ui.DraggableGroupElement.prototype.onItemDrop = function ( item ) {
+OO.ui.mixin.DraggableGroupElement.prototype.onItemDrop = function ( item ) {
        var toIndex = item.getIndex();
        // Check if the dropped item is from the current group
        // TODO: Figure out a way to configure a list of legally droppable
@@ -4882,7 +5010,7 @@ OO.ui.DraggableGroupElement.prototype.onItemDrop = function ( item ) {
  *
  * @private
  */
-OO.ui.DraggableGroupElement.prototype.onDragLeave = function () {
+OO.ui.mixin.DraggableGroupElement.prototype.onDragLeave = function () {
        // This means the item was dragged outside the widget
        this.$placeholder
                .css( 'left', 0 )
@@ -4895,7 +5023,7 @@ OO.ui.DraggableGroupElement.prototype.onDragLeave = function () {
  * @private
  * @param {jQuery.Event} event Event details
  */
-OO.ui.DraggableGroupElement.prototype.onDragOver = function ( e ) {
+OO.ui.mixin.DraggableGroupElement.prototype.onDragOver = function ( e ) {
        var dragOverObj, $optionWidget, itemOffset, itemMidpoint, itemBoundingRect,
                itemSize, cssOutput, dragPosition, itemIndex, itemPosition,
                clientX = e.originalEvent.clientX,
@@ -4965,16 +5093,16 @@ OO.ui.DraggableGroupElement.prototype.onDragOver = function ( e ) {
 /**
  * Set a dragged item
  *
- * @param {OO.ui.DraggableElement} item Dragged item
+ * @param {OO.ui.mixin.DraggableElement} item Dragged item
  */
-OO.ui.DraggableGroupElement.prototype.setDragItem = function ( item ) {
+OO.ui.mixin.DraggableGroupElement.prototype.setDragItem = function ( item ) {
        this.dragItem = item;
 };
 
 /**
  * Unset the current dragged item
  */
-OO.ui.DraggableGroupElement.prototype.unsetDragItem = function () {
+OO.ui.mixin.DraggableGroupElement.prototype.unsetDragItem = function () {
        this.dragItem = null;
        this.itemDragOver = null;
        this.$placeholder.addClass( 'oo-ui-element-hidden' );
@@ -4984,9 +5112,9 @@ OO.ui.DraggableGroupElement.prototype.unsetDragItem = function () {
 /**
  * Get the item that is currently being dragged.
  *
- * @return {OO.ui.DraggableElement|null} The currently dragged item, or `null` if no item is being dragged
+ * @return {OO.ui.mixin.DraggableElement|null} The currently dragged item, or `null` if no item is being dragged
  */
-OO.ui.DraggableGroupElement.prototype.getDragItem = function () {
+OO.ui.mixin.DraggableGroupElement.prototype.getDragItem = function () {
        return this.dragItem;
 };
 
@@ -4995,7 +5123,7 @@ OO.ui.DraggableGroupElement.prototype.getDragItem = function () {
  *
  * @return {Boolean} Item is being dragged
  */
-OO.ui.DraggableGroupElement.prototype.isDragging = function () {
+OO.ui.mixin.DraggableGroupElement.prototype.isDragging = function () {
        return this.getDragItem() !== null;
 };
 
@@ -5037,7 +5165,7 @@ OO.ui.DraggableGroupElement.prototype.isDragging = function () {
  * @cfg {string|Function} [iconTitle] A text string used as the icon title, or a function that returns title
  *  text. The icon title is displayed when users move the mouse over the icon.
  */
-OO.ui.IconElement = function OoUiIconElement( config ) {
+OO.ui.mixin.IconElement = function OoUiMixinIconElement( config ) {
        // Configuration initialization
        config = config || {};
 
@@ -5054,7 +5182,7 @@ OO.ui.IconElement = function OoUiIconElement( config ) {
 
 /* Setup */
 
-OO.initClass( OO.ui.IconElement );
+OO.initClass( OO.ui.mixin.IconElement );
 
 /* Static Properties */
 
@@ -5073,7 +5201,7 @@ OO.initClass( OO.ui.IconElement );
  * @inheritable
  * @property {Object|string}
  */
-OO.ui.IconElement.static.icon = null;
+OO.ui.mixin.IconElement.static.icon = null;
 
 /**
  * The icon title, displayed when users move the mouse over the icon. The value can be text, a
@@ -5085,7 +5213,7 @@ OO.ui.IconElement.static.icon = null;
  * @inheritable
  * @property {string|Function|null}
  */
-OO.ui.IconElement.static.iconTitle = null;
+OO.ui.mixin.IconElement.static.iconTitle = null;
 
 /* Methods */
 
@@ -5097,7 +5225,7 @@ OO.ui.IconElement.static.iconTitle = null;
  *
  * @param {jQuery} $icon Element to use as icon
  */
-OO.ui.IconElement.prototype.setIconElement = function ( $icon ) {
+OO.ui.mixin.IconElement.prototype.setIconElement = function ( $icon ) {
        if ( this.$icon ) {
                this.$icon
                        .removeClass( 'oo-ui-iconElement-icon oo-ui-icon-' + this.icon )
@@ -5121,7 +5249,7 @@ OO.ui.IconElement.prototype.setIconElement = function ( $icon ) {
  *  by language code, or `null` to remove the icon.
  * @chainable
  */
-OO.ui.IconElement.prototype.setIcon = function ( icon ) {
+OO.ui.mixin.IconElement.prototype.setIcon = function ( icon ) {
        icon = OO.isPlainObject( icon ) ? OO.ui.getLocalValue( icon, null, 'default' ) : icon;
        icon = typeof icon === 'string' && icon.trim().length ? icon.trim() : null;
 
@@ -5150,7 +5278,7 @@ OO.ui.IconElement.prototype.setIcon = function ( icon ) {
  *  a function that returns title text, or `null` for no title.
  * @chainable
  */
-OO.ui.IconElement.prototype.setIconTitle = function ( iconTitle ) {
+OO.ui.mixin.IconElement.prototype.setIconTitle = function ( iconTitle ) {
        iconTitle = typeof iconTitle === 'function' ||
                ( typeof iconTitle === 'string' && iconTitle.length ) ?
                        OO.ui.resolveMsg( iconTitle ) : null;
@@ -5174,7 +5302,7 @@ OO.ui.IconElement.prototype.setIconTitle = function ( iconTitle ) {
  *
  * @return {string} Icon name
  */
-OO.ui.IconElement.prototype.getIcon = function () {
+OO.ui.mixin.IconElement.prototype.getIcon = function () {
        return this.icon;
 };
 
@@ -5183,7 +5311,7 @@ OO.ui.IconElement.prototype.getIcon = function () {
  *
  * @return {string} Icon title text
  */
-OO.ui.IconElement.prototype.getIconTitle = function () {
+OO.ui.mixin.IconElement.prototype.getIconTitle = function () {
        return this.iconTitle;
 };
 
@@ -5216,7 +5344,7 @@ OO.ui.IconElement.prototype.getIconTitle = function () {
  *  or a function that returns title text. The indicator title is displayed when users move
  *  the mouse over the indicator.
  */
-OO.ui.IndicatorElement = function OoUiIndicatorElement( config ) {
+OO.ui.mixin.IndicatorElement = function OoUiMixinIndicatorElement( config ) {
        // Configuration initialization
        config = config || {};
 
@@ -5233,7 +5361,7 @@ OO.ui.IndicatorElement = function OoUiIndicatorElement( config ) {
 
 /* Setup */
 
-OO.initClass( OO.ui.IndicatorElement );
+OO.initClass( OO.ui.mixin.IndicatorElement );
 
 /* Static Properties */
 
@@ -5245,7 +5373,7 @@ OO.initClass( OO.ui.IndicatorElement );
  * @inheritable
  * @property {string|null}
  */
-OO.ui.IndicatorElement.static.indicator = null;
+OO.ui.mixin.IndicatorElement.static.indicator = null;
 
 /**
  * A text string used as the indicator title, a function that returns title text, or `null`
@@ -5255,7 +5383,7 @@ OO.ui.IndicatorElement.static.indicator = null;
  * @inheritable
  * @property {string|Function|null}
  */
-OO.ui.IndicatorElement.static.indicatorTitle = null;
+OO.ui.mixin.IndicatorElement.static.indicatorTitle = null;
 
 /* Methods */
 
@@ -5266,7 +5394,7 @@ OO.ui.IndicatorElement.static.indicatorTitle = null;
  *
  * @param {jQuery} $indicator Element to use as indicator
  */
-OO.ui.IndicatorElement.prototype.setIndicatorElement = function ( $indicator ) {
+OO.ui.mixin.IndicatorElement.prototype.setIndicatorElement = function ( $indicator ) {
        if ( this.$indicator ) {
                this.$indicator
                        .removeClass( 'oo-ui-indicatorElement-indicator oo-ui-indicator-' + this.indicator )
@@ -5287,7 +5415,7 @@ OO.ui.IndicatorElement.prototype.setIndicatorElement = function ( $indicator ) {
  * @param {string|null} indicator Symbolic name of indicator, or `null` for no indicator
  * @chainable
  */
-OO.ui.IndicatorElement.prototype.setIndicator = function ( indicator ) {
+OO.ui.mixin.IndicatorElement.prototype.setIndicator = function ( indicator ) {
        indicator = typeof indicator === 'string' && indicator.length ? indicator.trim() : null;
 
        if ( this.indicator !== indicator ) {
@@ -5317,7 +5445,7 @@ OO.ui.IndicatorElement.prototype.setIndicator = function ( indicator ) {
  *   `null` for no indicator title
  * @chainable
  */
-OO.ui.IndicatorElement.prototype.setIndicatorTitle = function ( indicatorTitle ) {
+OO.ui.mixin.IndicatorElement.prototype.setIndicatorTitle = function ( indicatorTitle ) {
        indicatorTitle = typeof indicatorTitle === 'function' ||
                ( typeof indicatorTitle === 'string' && indicatorTitle.length ) ?
                        OO.ui.resolveMsg( indicatorTitle ) : null;
@@ -5341,7 +5469,7 @@ OO.ui.IndicatorElement.prototype.setIndicatorTitle = function ( indicatorTitle )
  *
  * @return {string} Symbolic name of indicator
  */
-OO.ui.IndicatorElement.prototype.getIndicator = function () {
+OO.ui.mixin.IndicatorElement.prototype.getIndicator = function () {
        return this.indicator;
 };
 
@@ -5352,7 +5480,7 @@ OO.ui.IndicatorElement.prototype.getIndicator = function () {
  *
  * @return {string} Indicator title text
  */
-OO.ui.IndicatorElement.prototype.getIndicatorTitle = function () {
+OO.ui.mixin.IndicatorElement.prototype.getIndicatorTitle = function () {
        return this.indicatorTitle;
 };
 
@@ -5377,7 +5505,7 @@ OO.ui.IndicatorElement.prototype.getIndicatorTitle = function () {
  * @cfg {boolean} [autoFitLabel=true] Fit the label to the width of the parent element.
  *  The label will be truncated to fit if necessary.
  */
-OO.ui.LabelElement = function OoUiLabelElement( config ) {
+OO.ui.mixin.LabelElement = function OoUiMixinLabelElement( config ) {
        // Configuration initialization
        config = config || {};
 
@@ -5393,7 +5521,7 @@ OO.ui.LabelElement = function OoUiLabelElement( config ) {
 
 /* Setup */
 
-OO.initClass( OO.ui.LabelElement );
+OO.initClass( OO.ui.mixin.LabelElement );
 
 /* Events */
 
@@ -5413,7 +5541,7 @@ OO.initClass( OO.ui.LabelElement );
  * @inheritable
  * @property {string|Function|null}
  */
-OO.ui.LabelElement.static.label = null;
+OO.ui.mixin.LabelElement.static.label = null;
 
 /* Methods */
 
@@ -5424,7 +5552,7 @@ OO.ui.LabelElement.static.label = null;
  *
  * @param {jQuery} $label Element to use as label
  */
-OO.ui.LabelElement.prototype.setLabelElement = function ( $label ) {
+OO.ui.mixin.LabelElement.prototype.setLabelElement = function ( $label ) {
        if ( this.$label ) {
                this.$label.removeClass( 'oo-ui-labelElement-label' ).empty();
        }
@@ -5443,7 +5571,7 @@ OO.ui.LabelElement.prototype.setLabelElement = function ( $label ) {
  *  text; or null for no label
  * @chainable
  */
-OO.ui.LabelElement.prototype.setLabel = function ( label ) {
+OO.ui.mixin.LabelElement.prototype.setLabel = function ( label ) {
        label = typeof label === 'function' ? OO.ui.resolveMsg( label ) : label;
        label = ( ( typeof label === 'string' && label.length ) || label instanceof jQuery || label instanceof OO.ui.HtmlSnippet ) ? label : null;
 
@@ -5466,7 +5594,7 @@ OO.ui.LabelElement.prototype.setLabel = function ( label ) {
  * @return {jQuery|string|Function|null} Label nodes; text; a function that returns nodes or
  *  text; or null for no label
  */
-OO.ui.LabelElement.prototype.getLabel = function () {
+OO.ui.mixin.LabelElement.prototype.getLabel = function () {
        return this.label;
 };
 
@@ -5475,7 +5603,7 @@ OO.ui.LabelElement.prototype.getLabel = function () {
  *
  * @chainable
  */
-OO.ui.LabelElement.prototype.fitLabel = function () {
+OO.ui.mixin.LabelElement.prototype.fitLabel = function () {
        if ( this.$label && this.$label.autoEllipsis && this.autoFitLabel ) {
                this.$label.autoEllipsis( { hasSpan: false, tooltip: true } );
        }
@@ -5492,7 +5620,7 @@ OO.ui.LabelElement.prototype.fitLabel = function () {
  * @param {jQuery|string|Function|null} label Label nodes; text; a function that returns nodes or
  *  text; or null for no label
  */
-OO.ui.LabelElement.prototype.setLabelContent = function ( label ) {
+OO.ui.mixin.LabelElement.prototype.setLabelContent = function ( label ) {
        if ( typeof label === 'string' ) {
                if ( label.match( /^\s*$/ ) ) {
                        // Convert whitespace only string to a single non-breaking space
@@ -5533,7 +5661,7 @@ OO.ui.LabelElement.prototype.setLabelContent = function ( label ) {
  * @cfg {boolean} [allowSuggestionsWhenEmpty=false] Request and display a lookup menu when the text input is empty.
  *  By default, the lookup menu is not generated and displayed until the user begins to type.
  */
-OO.ui.LookupElement = function OoUiLookupElement( config ) {
+OO.ui.mixin.LookupElement = function OoUiMixinLookupElement( config ) {
        // Configuration initialization
        config = config || {};
 
@@ -5579,7 +5707,7 @@ OO.ui.LookupElement = function OoUiLookupElement( config ) {
  * @protected
  * @param {jQuery.Event} e Input focus event
  */
-OO.ui.LookupElement.prototype.onLookupInputFocus = function () {
+OO.ui.mixin.LookupElement.prototype.onLookupInputFocus = function () {
        this.lookupInputFocused = true;
        this.populateLookupMenu();
 };
@@ -5590,7 +5718,7 @@ OO.ui.LookupElement.prototype.onLookupInputFocus = function () {
  * @protected
  * @param {jQuery.Event} e Input blur event
  */
-OO.ui.LookupElement.prototype.onLookupInputBlur = function () {
+OO.ui.mixin.LookupElement.prototype.onLookupInputBlur = function () {
        this.closeLookupMenu();
        this.lookupInputFocused = false;
 };
@@ -5601,7 +5729,7 @@ OO.ui.LookupElement.prototype.onLookupInputBlur = function () {
  * @protected
  * @param {jQuery.Event} e Input mouse down event
  */
-OO.ui.LookupElement.prototype.onLookupInputMouseDown = function () {
+OO.ui.mixin.LookupElement.prototype.onLookupInputMouseDown = function () {
        // Only open the menu if the input was already focused.
        // This way we allow the user to open the menu again after closing it with Esc
        // by clicking in the input. Opening (and populating) the menu when initially
@@ -5617,7 +5745,7 @@ OO.ui.LookupElement.prototype.onLookupInputMouseDown = function () {
  * @protected
  * @param {string} value New input value
  */
-OO.ui.LookupElement.prototype.onLookupInputChange = function () {
+OO.ui.mixin.LookupElement.prototype.onLookupInputChange = function () {
        if ( this.lookupInputFocused ) {
                this.populateLookupMenu();
        }
@@ -5629,7 +5757,7 @@ OO.ui.LookupElement.prototype.onLookupInputChange = function () {
  * @protected
  * @param {boolean} visible Whether the lookup menu is now visible.
  */
-OO.ui.LookupElement.prototype.onLookupMenuToggle = function ( visible ) {
+OO.ui.mixin.LookupElement.prototype.onLookupMenuToggle = function ( visible ) {
        if ( !visible ) {
                // When the menu is hidden, abort any active request and clear the menu.
                // This has to be done here in addition to closeLookupMenu(), because
@@ -5645,7 +5773,7 @@ OO.ui.LookupElement.prototype.onLookupMenuToggle = function ( visible ) {
  * @protected
  * @param {OO.ui.MenuOptionWidget} item Selected item
  */
-OO.ui.LookupElement.prototype.onLookupMenuItemChoose = function ( item ) {
+OO.ui.mixin.LookupElement.prototype.onLookupMenuItemChoose = function ( item ) {
        this.setValue( item.getData() );
 };
 
@@ -5655,7 +5783,7 @@ OO.ui.LookupElement.prototype.onLookupMenuItemChoose = function ( item ) {
  * @private
  * @return {OO.ui.TextInputMenuSelectWidget}
  */
-OO.ui.LookupElement.prototype.getLookupMenu = function () {
+OO.ui.mixin.LookupElement.prototype.getLookupMenu = function () {
        return this.lookupMenu;
 };
 
@@ -5666,7 +5794,7 @@ OO.ui.LookupElement.prototype.getLookupMenu = function () {
  *
  * @param {boolean} disabled Disable lookups
  */
-OO.ui.LookupElement.prototype.setLookupsDisabled = function ( disabled ) {
+OO.ui.mixin.LookupElement.prototype.setLookupsDisabled = function ( disabled ) {
        this.lookupsDisabled = !!disabled;
 };
 
@@ -5676,7 +5804,7 @@ OO.ui.LookupElement.prototype.setLookupsDisabled = function ( disabled ) {
  * @private
  * @chainable
  */
-OO.ui.LookupElement.prototype.openLookupMenu = function () {
+OO.ui.mixin.LookupElement.prototype.openLookupMenu = function () {
        if ( !this.lookupMenu.isEmpty() ) {
                this.lookupMenu.toggle( true );
        }
@@ -5689,7 +5817,7 @@ OO.ui.LookupElement.prototype.openLookupMenu = function () {
  * @private
  * @chainable
  */
-OO.ui.LookupElement.prototype.closeLookupMenu = function () {
+OO.ui.mixin.LookupElement.prototype.closeLookupMenu = function () {
        this.lookupMenu.toggle( false );
        this.abortLookupRequest();
        this.lookupMenu.clearItems();
@@ -5705,7 +5833,7 @@ OO.ui.LookupElement.prototype.closeLookupMenu = function () {
  * @private
  * @chainable
  */
-OO.ui.LookupElement.prototype.populateLookupMenu = function () {
+OO.ui.mixin.LookupElement.prototype.populateLookupMenu = function () {
        var widget = this,
                value = this.getValue();
 
@@ -5739,16 +5867,15 @@ OO.ui.LookupElement.prototype.populateLookupMenu = function () {
 };
 
 /**
- * Select and highlight the first selectable item in the menu.
+ * Highlight the first selectable item in the menu.
  *
  * @private
  * @chainable
  */
-OO.ui.LookupElement.prototype.initializeLookupMenuSelection = function () {
+OO.ui.mixin.LookupElement.prototype.initializeLookupMenuSelection = function () {
        if ( !this.lookupMenu.getSelectedItem() ) {
-               this.lookupMenu.selectItem( this.lookupMenu.getFirstSelectableItem() );
+               this.lookupMenu.highlightItem( this.lookupMenu.getFirstSelectableItem() );
        }
-       this.lookupMenu.highlightItem( this.lookupMenu.getSelectedItem() );
 };
 
 /**
@@ -5759,7 +5886,7 @@ OO.ui.LookupElement.prototype.initializeLookupMenuSelection = function () {
  *   the done event. If the request was aborted to make way for a subsequent request, this promise
  *   will not be rejected: it will remain pending forever.
  */
-OO.ui.LookupElement.prototype.getLookupMenuItems = function () {
+OO.ui.mixin.LookupElement.prototype.getLookupMenuItems = function () {
        var widget = this,
                value = this.getValue(),
                deferred = $.Deferred(),
@@ -5810,7 +5937,7 @@ OO.ui.LookupElement.prototype.getLookupMenuItems = function () {
  *
  * @private
  */
-OO.ui.LookupElement.prototype.abortLookupRequest = function () {
+OO.ui.mixin.LookupElement.prototype.abortLookupRequest = function () {
        var oldRequest = this.lookupRequest;
        if ( oldRequest ) {
                // First unset this.lookupRequest to the fail handler will notice
@@ -5828,7 +5955,7 @@ OO.ui.LookupElement.prototype.abortLookupRequest = function () {
  * @abstract
  * @return {jQuery.Promise} jQuery AJAX object, or promise object with an .abort() method
  */
-OO.ui.LookupElement.prototype.getLookupRequest = function () {
+OO.ui.mixin.LookupElement.prototype.getLookupRequest = function () {
        // Stub, implemented in subclass
        return null;
 };
@@ -5844,7 +5971,7 @@ OO.ui.LookupElement.prototype.getLookupRequest = function () {
  * @param {Mixed} response Response from server
  * @return {Mixed} Cached result data
  */
-OO.ui.LookupElement.prototype.getLookupCacheDataFromResponse = function () {
+OO.ui.mixin.LookupElement.prototype.getLookupCacheDataFromResponse = function () {
        // Stub, implemented in subclass
        return [];
 };
@@ -5858,7 +5985,7 @@ OO.ui.LookupElement.prototype.getLookupCacheDataFromResponse = function () {
  * @param {Mixed} data Cached result data, usually an array
  * @return {OO.ui.MenuOptionWidget[]} Menu items
  */
-OO.ui.LookupElement.prototype.getLookupMenuOptionsFromData = function () {
+OO.ui.mixin.LookupElement.prototype.getLookupMenuOptionsFromData = function () {
        // Stub, implemented in subclass
        return [];
 };
@@ -5877,7 +6004,7 @@ OO.ui.LookupElement.prototype.getLookupMenuOptionsFromData = function () {
  * @cfg {Object} [popup] Configuration to pass to popup
  * @cfg {boolean} [popup.autoClose=true] Popup auto-closes when it loses focus
  */
-OO.ui.PopupElement = function OoUiPopupElement( config ) {
+OO.ui.mixin.PopupElement = function OoUiMixinPopupElement( config ) {
        // Configuration initialization
        config = config || {};
 
@@ -5896,7 +6023,7 @@ OO.ui.PopupElement = function OoUiPopupElement( config ) {
  *
  * @return {OO.ui.PopupWidget} Popup widget
  */
-OO.ui.PopupElement.prototype.getPopup = function () {
+OO.ui.mixin.PopupElement.prototype.getPopup = function () {
        return this.popup;
 };
 
@@ -5948,7 +6075,7 @@ OO.ui.PopupElement.prototype.getPopup = function () {
  *  the flagged functionality is applied to the element created by the class ($element).
  *  If a different element is specified, the flagged functionality will be applied to it instead.
  */
-OO.ui.FlaggedElement = function OoUiFlaggedElement( config ) {
+OO.ui.mixin.FlaggedElement = function OoUiMixinFlaggedElement( config ) {
        // Configuration initialization
        config = config || {};
 
@@ -5983,7 +6110,7 @@ OO.ui.FlaggedElement = function OoUiFlaggedElement( config ) {
  *
  * @param {jQuery} $flagged Element that should be flagged
  */
-OO.ui.FlaggedElement.prototype.setFlaggedElement = function ( $flagged ) {
+OO.ui.mixin.FlaggedElement.prototype.setFlaggedElement = function ( $flagged ) {
        var classNames = Object.keys( this.flags ).map( function ( flag ) {
                return 'oo-ui-flaggedElement-' + flag;
        } ).join( ' ' );
@@ -6001,7 +6128,7 @@ OO.ui.FlaggedElement.prototype.setFlaggedElement = function ( $flagged ) {
  * @param {string} flag Name of flag
  * @return {boolean} The flag is set
  */
-OO.ui.FlaggedElement.prototype.hasFlag = function ( flag ) {
+OO.ui.mixin.FlaggedElement.prototype.hasFlag = function ( flag ) {
        return flag in this.flags;
 };
 
@@ -6010,7 +6137,7 @@ OO.ui.FlaggedElement.prototype.hasFlag = function ( flag ) {
  *
  * @return {string[]} Flag names
  */
-OO.ui.FlaggedElement.prototype.getFlags = function () {
+OO.ui.mixin.FlaggedElement.prototype.getFlags = function () {
        return Object.keys( this.flags );
 };
 
@@ -6020,7 +6147,7 @@ OO.ui.FlaggedElement.prototype.getFlags = function () {
  * @chainable
  * @fires flag
  */
-OO.ui.FlaggedElement.prototype.clearFlags = function () {
+OO.ui.mixin.FlaggedElement.prototype.clearFlags = function () {
        var flag, className,
                changes = {},
                remove = [],
@@ -6052,7 +6179,7 @@ OO.ui.FlaggedElement.prototype.clearFlags = function () {
  * @chainable
  * @fires flag
  */
-OO.ui.FlaggedElement.prototype.setFlags = function ( flags ) {
+OO.ui.mixin.FlaggedElement.prototype.setFlags = function ( flags ) {
        var i, len, flag, className,
                changes = {},
                add = [],
@@ -6135,7 +6262,7 @@ OO.ui.FlaggedElement.prototype.setFlags = function ( flags ) {
  * @cfg {string|Function} [title] The title text or a function that returns text. If
  *  this config is omitted, the value of the {@link #static-title static title} property is used.
  */
-OO.ui.TitledElement = function OoUiTitledElement( config ) {
+OO.ui.mixin.TitledElement = function OoUiMixinTitledElement( config ) {
        // Configuration initialization
        config = config || {};
 
@@ -6150,7 +6277,7 @@ OO.ui.TitledElement = function OoUiTitledElement( config ) {
 
 /* Setup */
 
-OO.initClass( OO.ui.TitledElement );
+OO.initClass( OO.ui.mixin.TitledElement );
 
 /* Static Properties */
 
@@ -6162,7 +6289,7 @@ OO.initClass( OO.ui.TitledElement );
  * @inheritable
  * @property {string|Function|null}
  */
-OO.ui.TitledElement.static.title = null;
+OO.ui.mixin.TitledElement.static.title = null;
 
 /* Methods */
 
@@ -6174,7 +6301,7 @@ OO.ui.TitledElement.static.title = null;
  *
  * @param {jQuery} $titled Element that should use the 'titled' functionality
  */
-OO.ui.TitledElement.prototype.setTitledElement = function ( $titled ) {
+OO.ui.mixin.TitledElement.prototype.setTitledElement = function ( $titled ) {
        if ( this.$titled ) {
                this.$titled.removeAttr( 'title' );
        }
@@ -6191,7 +6318,7 @@ OO.ui.TitledElement.prototype.setTitledElement = function ( $titled ) {
  * @param {string|Function|null} title Title text, a function that returns text, or `null` for no title
  * @chainable
  */
-OO.ui.TitledElement.prototype.setTitle = function ( title ) {
+OO.ui.mixin.TitledElement.prototype.setTitle = function ( title ) {
        title = typeof title === 'string' ? OO.ui.resolveMsg( title ) : null;
 
        if ( this.title !== title ) {
@@ -6213,7 +6340,7 @@ OO.ui.TitledElement.prototype.setTitle = function ( title ) {
  *
  * @return {string} Title string
  */
-OO.ui.TitledElement.prototype.getTitle = function () {
+OO.ui.mixin.TitledElement.prototype.getTitle = function () {
        return this.title;
 };
 
@@ -6221,7 +6348,8 @@ OO.ui.TitledElement.prototype.getTitle = function () {
  * Element that can be automatically clipped to visible boundaries.
  *
  * Whenever the element's natural height changes, you have to call
- * #clip to make sure it's still clipping correctly.
+ * {@link OO.ui.mixin.ClippableElement#clip} to make sure it's still
+ * clipping correctly.
  *
  * @abstract
  * @class
@@ -6230,7 +6358,7 @@ OO.ui.TitledElement.prototype.getTitle = function () {
  * @param {Object} [config] Configuration options
  * @cfg {jQuery} [$clippable] Nodes to clip, assigned to #$clippable, omit to use #$element
  */
-OO.ui.ClippableElement = function OoUiClippableElement( config ) {
+OO.ui.mixin.ClippableElement = function OoUiMixinClippableElement( config ) {
        // Configuration initialization
        config = config || {};
 
@@ -6260,7 +6388,7 @@ OO.ui.ClippableElement = function OoUiClippableElement( config ) {
  *
  * @param {jQuery} $clippable Element to make clippable
  */
-OO.ui.ClippableElement.prototype.setClippableElement = function ( $clippable ) {
+OO.ui.mixin.ClippableElement.prototype.setClippableElement = function ( $clippable ) {
        if ( this.$clippable ) {
                this.$clippable.removeClass( 'oo-ui-clippableElement-clippable' );
                this.$clippable.css( { width: '', height: '', overflowX: '', overflowY: '' } );
@@ -6279,7 +6407,7 @@ OO.ui.ClippableElement.prototype.setClippableElement = function ( $clippable ) {
  * @param {boolean} [clipping] Enable clipping, omit to toggle
  * @chainable
  */
-OO.ui.ClippableElement.prototype.toggleClipping = function ( clipping ) {
+OO.ui.mixin.ClippableElement.prototype.toggleClipping = function ( clipping ) {
        clipping = clipping === undefined ? !this.clipping : !!clipping;
 
        if ( this.clipping !== clipping ) {
@@ -6316,7 +6444,7 @@ OO.ui.ClippableElement.prototype.toggleClipping = function ( clipping ) {
  *
  * @return {boolean} Element will be clipped to the visible area
  */
-OO.ui.ClippableElement.prototype.isClipping = function () {
+OO.ui.mixin.ClippableElement.prototype.isClipping = function () {
        return this.clipping;
 };
 
@@ -6325,7 +6453,7 @@ OO.ui.ClippableElement.prototype.isClipping = function () {
  *
  * @return {boolean} Part of the element is being clipped
  */
-OO.ui.ClippableElement.prototype.isClipped = function () {
+OO.ui.mixin.ClippableElement.prototype.isClipped = function () {
        return this.clippedHorizontally || this.clippedVertically;
 };
 
@@ -6334,7 +6462,7 @@ OO.ui.ClippableElement.prototype.isClipped = function () {
  *
  * @return {boolean} Part of the element is being clipped
  */
-OO.ui.ClippableElement.prototype.isClippedHorizontally = function () {
+OO.ui.mixin.ClippableElement.prototype.isClippedHorizontally = function () {
        return this.clippedHorizontally;
 };
 
@@ -6343,7 +6471,7 @@ OO.ui.ClippableElement.prototype.isClippedHorizontally = function () {
  *
  * @return {boolean} Part of the element is being clipped
  */
-OO.ui.ClippableElement.prototype.isClippedVertically = function () {
+OO.ui.mixin.ClippableElement.prototype.isClippedVertically = function () {
        return this.clippedVertically;
 };
 
@@ -6353,7 +6481,7 @@ OO.ui.ClippableElement.prototype.isClippedVertically = function () {
  * @param {number|string} [width] Width as a number of pixels or CSS string with unit suffix
  * @param {number|string} [height] Height as a number of pixels or CSS string with unit suffix
  */
-OO.ui.ClippableElement.prototype.setIdealSize = function ( width, height ) {
+OO.ui.mixin.ClippableElement.prototype.setIdealSize = function ( width, height ) {
        this.idealWidth = width;
        this.idealHeight = height;
 
@@ -6373,7 +6501,7 @@ OO.ui.ClippableElement.prototype.setIdealSize = function ( width, height ) {
  *
  * @chainable
  */
-OO.ui.ClippableElement.prototype.clip = function () {
+OO.ui.mixin.ClippableElement.prototype.clip = function () {
        if ( !this.clipping ) {
                // this.$clippableContainer and this.$clippableWindow are null, so the below will fail
                return this;
@@ -6386,16 +6514,13 @@ OO.ui.ClippableElement.prototype.clip = function () {
                ccOffset = $container.offset() || { top: 0, left: 0 },
                ccHeight = $container.innerHeight() - buffer,
                ccWidth = $container.innerWidth() - buffer,
-               cHeight = this.$clippable.outerHeight() + buffer,
                cWidth = this.$clippable.outerWidth() + buffer,
-               scrollTop = this.$clippableScroller.scrollTop(),
+               scrollTop = this.$clippableScroller[0] === this.$clippableWindow[0] ? this.$clippableScroller.scrollTop() : 0,
                scrollLeft = this.$clippableScroller.scrollLeft(),
                desiredWidth = cOffset.left < 0 ?
                        cWidth + cOffset.left :
                        ( ccOffset.left + scrollLeft + ccWidth ) - cOffset.left,
-               desiredHeight = cOffset.top < 0 ?
-                       cHeight + cOffset.top :
-                       ( ccOffset.top + scrollTop + ccHeight ) - cOffset.top,
+               desiredHeight = ( ccOffset.top + scrollTop + ccHeight ) - cOffset.top,
                naturalWidth = this.$clippable.prop( 'scrollWidth' ),
                naturalHeight = this.$clippable.prop( 'scrollHeight' ),
                clipWidth = desiredWidth < naturalWidth,
@@ -6424,19 +6549,38 @@ OO.ui.ClippableElement.prototype.clip = function () {
 };
 
 /**
- * Generic toolbar tool.
+ * Tools, together with {@link OO.ui.ToolGroup toolgroups}, constitute {@link OO.ui.Toolbar toolbars}.
+ * Each tool is configured with a static name, title, and icon and is customized with the command to carry
+ * out when the tool is selected. Tools must also be registered with a {@link OO.ui.ToolFactory tool factory},
+ * which creates the tools on demand.
+ *
+ * Tools are added to toolgroups ({@link OO.ui.ListToolGroup ListToolGroup},
+ * {@link OO.ui.BarToolGroup BarToolGroup}, or {@link OO.ui.MenuToolGroup MenuToolGroup}), which determine how
+ * the tool is displayed in the toolbar. See {@link OO.ui.Toolbar toolbars} for an example.
+ *
+ * For more information, please see the [OOjs UI documentation on MediaWiki][1].
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Toolbars
  *
  * @abstract
  * @class
  * @extends OO.ui.Widget
- * @mixins OO.ui.IconElement
- * @mixins OO.ui.FlaggedElement
- * @mixins OO.ui.TabIndexedElement
+ * @mixins OO.ui.mixin.IconElement
+ * @mixins OO.ui.mixin.FlaggedElement
+ * @mixins OO.ui.mixin.TabIndexedElement
  *
  * @constructor
  * @param {OO.ui.ToolGroup} toolGroup
  * @param {Object} [config] Configuration options
- * @cfg {string|Function} [title] Title text or a function that returns text
+ * @cfg {string|Function} [title] Title text or a function that returns text. If this config is omitted, the value of
+ *  the {@link #static-title static title} property is used.
+ *
+ *  The title is used in different ways depending on the type of toolgroup that contains the tool. The
+ *  title is used as a tooltip if the tool is part of a {@link OO.ui.BarToolGroup bar} toolgroup, or as the label text if the tool is
+ *  part of a {@link OO.ui.ListToolGroup list} or {@link OO.ui.MenuToolGroup menu} toolgroup.
+ *
+ *  For bar toolgroups, a description of the accelerator key is appended to the title if an accelerator key
+ *  is associated with an action by the same name as the tool and accelerator functionality has been added to the application.
+ *  To add accelerator key functionality, you must subclass OO.ui.Toolbar and override the {@link OO.ui.Toolbar#getToolAccelerator getToolAccelerator} method.
  */
 OO.ui.Tool = function OoUiTool( toolGroup, config ) {
        // Allow passing positional parameters inside the config object
@@ -6461,9 +6605,9 @@ OO.ui.Tool = function OoUiTool( toolGroup, config ) {
        this.title = null;
 
        // Mixin constructors
-       OO.ui.IconElement.call( this, config );
-       OO.ui.FlaggedElement.call( this, config );
-       OO.ui.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$link } ) );
+       OO.ui.mixin.IconElement.call( this, config );
+       OO.ui.mixin.FlaggedElement.call( this, config );
+       OO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$link } ) );
 
        // Events
        this.toolbar.connect( this, { updateState: 'onUpdateState' } );
@@ -6488,6 +6632,7 @@ OO.ui.Tool = function OoUiTool( toolGroup, config ) {
                        'oo-ui-tool ' + 'oo-ui-tool-name-' +
                        this.constructor.static.name.replace( /^([^\/]+)\/([^\/]+).*$/, '$1-$2' )
                )
+               .toggleClass( 'oo-ui-tool-with-label', this.constructor.static.displayBothIconAndLabel )
                .append( this.$link );
        this.setTitle( config.title || this.constructor.static.title );
 };
@@ -6495,15 +6640,9 @@ OO.ui.Tool = function OoUiTool( toolGroup, config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.Tool, OO.ui.Widget );
-OO.mixinClass( OO.ui.Tool, OO.ui.IconElement );
-OO.mixinClass( OO.ui.Tool, OO.ui.FlaggedElement );
-OO.mixinClass( OO.ui.Tool, OO.ui.TabIndexedElement );
-
-/* Events */
-
-/**
- * @event select
- */
+OO.mixinClass( OO.ui.Tool, OO.ui.mixin.IconElement );
+OO.mixinClass( OO.ui.Tool, OO.ui.mixin.FlaggedElement );
+OO.mixinClass( OO.ui.Tool, OO.ui.mixin.TabIndexedElement );
 
 /* Static Properties */
 
@@ -6516,6 +6655,9 @@ OO.ui.Tool.static.tagName = 'span';
 /**
  * Symbolic name of tool.
  *
+ * The symbolic name is used internally to register the tool with a {@link OO.ui.ToolFactory ToolFactory}. It can
+ * also be used when adding tools to toolgroups.
+ *
  * @abstract
  * @static
  * @inheritable
@@ -6524,7 +6666,10 @@ OO.ui.Tool.static.tagName = 'span';
 OO.ui.Tool.static.name = '';
 
 /**
- * Tool group.
+ * Symbolic name of the group.
+ *
+ * The group name is used to associate tools with each other so that they can be selected later by
+ * a {@link OO.ui.ToolGroup toolgroup}.
  *
  * @abstract
  * @static
@@ -6534,22 +6679,30 @@ OO.ui.Tool.static.name = '';
 OO.ui.Tool.static.group = '';
 
 /**
- * Tool title.
- *
- * Title is used as a tooltip when the tool is part of a bar tool group, or a label when the tool
- * is part of a list or menu tool group. If a trigger is associated with an action by the same name
- * as the tool, a description of its keyboard shortcut for the appropriate platform will be
- * appended to the title if the tool is part of a bar tool group.
+ * Tool title text or a function that returns title text. The value of the static property is overridden if the #title config option is used.
  *
  * @abstract
  * @static
  * @inheritable
- * @property {string|Function} Title text or a function that returns text
+ * @property {string|Function}
  */
 OO.ui.Tool.static.title = '';
 
 /**
- * Tool can be automatically added to catch-all groups.
+ * Display both icon and label when the tool is used in a {@link OO.ui.BarToolGroup bar} toolgroup.
+ * Normally only the icon is displayed, or only the label if no icon is given.
+ *
+ * @static
+ * @inheritable
+ * @property {boolean}
+ */
+OO.ui.Tool.static.displayBothIconAndLabel = false;
+
+/**
+ * Add tool to catch-all groups automatically.
+ *
+ * A catch-all group, which contains all tools that do not currently belong to a toolgroup,
+ * can be included in a toolgroup using the wildcard selector, an asterisk (*).
  *
  * @static
  * @inheritable
@@ -6558,7 +6711,11 @@ OO.ui.Tool.static.title = '';
 OO.ui.Tool.static.autoAddToCatchall = true;
 
 /**
- * Tool can be automatically added to named groups.
+ * Add tool to named groups automatically.
+ *
+ * By default, tools that are configured with a static ‘group’ property are added
+ * to that group and will be selected when the symbolic name of the group is specified (e.g., when
+ * toolgroups include tools by group name).
  *
  * @static
  * @property {boolean}
@@ -6569,6 +6726,10 @@ OO.ui.Tool.static.autoAddToGroup = true;
 /**
  * Check if this tool is compatible with given data.
  *
+ * This is a stub that can be overriden to provide support for filtering tools based on an
+ * arbitrary piece of information  (e.g., where the cursor is in a document). The implementation
+ * must also call this method so that the compatibility check can be performed.
+ *
  * @static
  * @inheritable
  * @param {Mixed} data Data to check
@@ -6585,6 +6746,7 @@ OO.ui.Tool.static.isCompatibleWith = function () {
  *
  * This is an abstract method that must be overridden in a concrete subclass.
  *
+ * @protected
  * @abstract
  */
 OO.ui.Tool.prototype.onUpdateState = function () {
@@ -6598,6 +6760,7 @@ OO.ui.Tool.prototype.onUpdateState = function () {
  *
  * This is an abstract method that must be overridden in a concrete subclass.
  *
+ * @protected
  * @abstract
  */
 OO.ui.Tool.prototype.onSelect = function () {
@@ -6607,18 +6770,24 @@ OO.ui.Tool.prototype.onSelect = function () {
 };
 
 /**
- * Check if the button is active.
+ * Check if the tool is active.
+ *
+ * Tools become active when their #onSelect or #onUpdateState handlers change them to appear pressed
+ * with the #setActive method. Additional CSS is applied to the tool to reflect the active state.
  *
- * @return {boolean} Button is active
+ * @return {boolean} Tool is active
  */
 OO.ui.Tool.prototype.isActive = function () {
        return this.active;
 };
 
 /**
- * Make the button appear active or inactive.
+ * Make the tool appear active or inactive.
  *
- * @param {boolean} state Make button appear active
+ * This method should be called within #onSelect or #onUpdateState event handlers to make the tool
+ * appear pressed or not.
+ *
+ * @param {boolean} state Make tool appear active
  */
 OO.ui.Tool.prototype.setActive = function ( state ) {
        this.active = !!state;
@@ -6630,7 +6799,7 @@ OO.ui.Tool.prototype.setActive = function ( state ) {
 };
 
 /**
- * Get the tool title.
+ * Set the tool #title.
  *
  * @param {string|Function} title Title text or a function that returns text
  * @chainable
@@ -6642,7 +6811,7 @@ OO.ui.Tool.prototype.setTitle = function ( title ) {
 };
 
 /**
- * Get the tool title.
+ * Get the tool #title.
  *
  * @return {string} Title text
  */
@@ -6686,6 +6855,9 @@ OO.ui.Tool.prototype.updateTitle = function () {
 
 /**
  * Destroy tool.
+ *
+ * Destroying the tool removes all event handlers and the tool’s DOM elements.
+ * Call this method whenever you are done using a tool.
  */
 OO.ui.Tool.prototype.destroy = function () {
        this.toolbar.disconnect( this );
@@ -6693,11 +6865,23 @@ OO.ui.Tool.prototype.destroy = function () {
 };
 
 /**
- * Collection of tool groups.
+ * Toolbars are complex interface components that permit users to easily access a variety
+ * of {@link OO.ui.Tool tools} (e.g., formatting commands) and actions, which are additional commands that are
+ * part of the toolbar, but not configured as tools.
  *
- *     @example
- *     // Basic OOjs UI toolbar example
+ * Individual tools are customized and then registered with a {@link OO.ui.ToolFactory tool factory}, which creates
+ * the tools on demand. Each tool has a symbolic name (used when registering the tool), a title (e.g., ‘Insert
+ * picture’), and an icon.
+ *
+ * Individual tools are organized in {@link OO.ui.ToolGroup toolgroups}, which can be {@link OO.ui.MenuToolGroup menus}
+ * of tools, {@link OO.ui.ListToolGroup lists} of tools, or a single {@link OO.ui.BarToolGroup bar} of tools.
+ * The arrangement and order of the toolgroups is customized when the toolbar is set up. Tools can be presented in
+ * any order, but each can only appear once in the toolbar.
  *
+ * The following is an example of a basic toolbar.
+ *
+ *     @example
+ *     // Example of a toolbar
  *     // Create the toolbar
  *     var toolFactory = new OO.ui.ToolFactory();
  *     var toolGroupFactory = new OO.ui.ToolGroupFactory();
@@ -6711,7 +6895,123 @@ OO.ui.Tool.prototype.destroy = function () {
  *     // Create a class inheriting from OO.ui.Tool
  *     function PictureTool() {
  *         PictureTool.super.apply( this, arguments );
+ *     }
+ *     OO.inheritClass( PictureTool, OO.ui.Tool );
+ *     // Each tool must have a 'name' (used as an internal identifier, see later) and at least one
+ *     // of 'icon' and 'title' (displayed icon and text).
+ *     PictureTool.static.name = 'picture';
+ *     PictureTool.static.icon = 'picture';
+ *     PictureTool.static.title = 'Insert picture';
+ *     // Defines the action that will happen when this tool is selected (clicked).
+ *     PictureTool.prototype.onSelect = function () {
+ *         $area.text( 'Picture tool clicked!' );
+ *         // Never display this tool as "active" (selected).
+ *         this.setActive( false );
+ *     };
+ *     // Make this tool available in our toolFactory and thus our toolbar
+ *     toolFactory.register( PictureTool );
+ *
+ *     // Register two more tools, nothing interesting here
+ *     function SettingsTool() {
+ *         SettingsTool.super.apply( this, arguments );
+ *     }
+ *     OO.inheritClass( SettingsTool, OO.ui.Tool );
+ *     SettingsTool.static.name = 'settings';
+ *     SettingsTool.static.icon = 'settings';
+ *     SettingsTool.static.title = 'Change settings';
+ *     SettingsTool.prototype.onSelect = function () {
+ *         $area.text( 'Settings tool clicked!' );
+ *         this.setActive( false );
+ *     };
+ *     toolFactory.register( SettingsTool );
+ *
+ *     // Register two more tools, nothing interesting here
+ *     function StuffTool() {
+ *         StuffTool.super.apply( this, arguments );
+ *     }
+ *     OO.inheritClass( StuffTool, OO.ui.Tool );
+ *     StuffTool.static.name = 'stuff';
+ *     StuffTool.static.icon = 'ellipsis';
+ *     StuffTool.static.title = 'More stuff';
+ *     StuffTool.prototype.onSelect = function () {
+ *         $area.text( 'More stuff tool clicked!' );
+ *         this.setActive( false );
  *     };
+ *     toolFactory.register( StuffTool );
+ *
+ *     // This is a PopupTool. Rather than having a custom 'onSelect' action, it will display a
+ *     // little popup window (a PopupWidget).
+ *     function HelpTool( toolGroup, config ) {
+ *         OO.ui.PopupTool.call( this, toolGroup, $.extend( { popup: {
+ *             padded: true,
+ *             label: 'Help',
+ *             head: true
+ *         } }, config ) );
+ *         this.popup.$body.append( '<p>I am helpful!</p>' );
+ *     }
+ *     OO.inheritClass( HelpTool, OO.ui.PopupTool );
+ *     HelpTool.static.name = 'help';
+ *     HelpTool.static.icon = 'help';
+ *     HelpTool.static.title = 'Help';
+ *     toolFactory.register( HelpTool );
+ *
+ *     // Finally define which tools and in what order appear in the toolbar. Each tool may only be
+ *     // used once (but not all defined tools must be used).
+ *     toolbar.setup( [
+ *         {
+ *             // 'bar' tool groups display tools' icons only, side-by-side.
+ *             type: 'bar',
+ *             include: [ 'picture', 'help' ]
+ *         },
+ *         {
+ *             // 'list' tool groups display both the titles and icons, in a dropdown list.
+ *             type: 'list',
+ *             indicator: 'down',
+ *             label: 'More',
+ *             include: [ 'settings', 'stuff' ]
+ *         }
+ *         // Note how the tools themselves are toolgroup-agnostic - the same tool can be displayed
+ *         // either in a 'list' or a 'bar'. There is a 'menu' tool group too, not showcased here,
+ *         // since it's more complicated to use. (See the next example snippet on this page.)
+ *     ] );
+ *
+ *     // Create some UI around the toolbar and place it in the document
+ *     var frame = new OO.ui.PanelLayout( {
+ *         expanded: false,
+ *         framed: true
+ *     } );
+ *     var contentFrame = new OO.ui.PanelLayout( {
+ *         expanded: false,
+ *         padded: true
+ *     } );
+ *     frame.$element.append(
+ *         toolbar.$element,
+ *         contentFrame.$element.append( $area )
+ *     );
+ *     $( 'body' ).append( frame.$element );
+ *
+ *     // Here is where the toolbar is actually built. This must be done after inserting it into the
+ *     // document.
+ *     toolbar.initialize();
+ *
+ * The following example extends the previous one to illustrate 'menu' toolgroups and the usage of
+ * 'updateState' event.
+ *
+ *     @example
+ *     // Create the toolbar
+ *     var toolFactory = new OO.ui.ToolFactory();
+ *     var toolGroupFactory = new OO.ui.ToolGroupFactory();
+ *     var toolbar = new OO.ui.Toolbar( toolFactory, toolGroupFactory );
+ *
+ *     // We will be placing status text in this element when tools are used
+ *     var $area = $( '<p>' ).text( 'Toolbar example' );
+ *
+ *     // Define the tools that we're going to place in our toolbar
+ *
+ *     // Create a class inheriting from OO.ui.Tool
+ *     function PictureTool() {
+ *         PictureTool.super.apply( this, arguments );
+ *     }
  *     OO.inheritClass( PictureTool, OO.ui.Tool );
  *     // Each tool must have a 'name' (used as an internal identifier, see later) and at least one
  *     // of 'icon' and 'title' (displayed icon and text).
@@ -6721,13 +7021,13 @@ OO.ui.Tool.prototype.destroy = function () {
  *     // Defines the action that will happen when this tool is selected (clicked).
  *     PictureTool.prototype.onSelect = function () {
  *         $area.text( 'Picture tool clicked!' );
+ *         // Never display this tool as "active" (selected).
  *         this.setActive( false );
  *     };
  *     // The toolbar can be synchronized with the state of some external stuff, like a text
  *     // editor's editing area, highlighting the tools (e.g. a 'bold' tool would be shown as active
  *     // when the text cursor was inside bolded text). Here we simply disable this feature.
  *     PictureTool.prototype.onUpdateState = function () {
- *         this.setActive( false );
  *     };
  *     // Make this tool available in our toolFactory and thus our toolbar
  *     toolFactory.register( PictureTool );
@@ -6735,34 +7035,42 @@ OO.ui.Tool.prototype.destroy = function () {
  *     // Register two more tools, nothing interesting here
  *     function SettingsTool() {
  *         SettingsTool.super.apply( this, arguments );
- *     };
+ *         this.reallyActive = false;
+ *     }
  *     OO.inheritClass( SettingsTool, OO.ui.Tool );
  *     SettingsTool.static.name = 'settings';
  *     SettingsTool.static.icon = 'settings';
  *     SettingsTool.static.title = 'Change settings';
  *     SettingsTool.prototype.onSelect = function () {
  *         $area.text( 'Settings tool clicked!' );
- *         this.setActive( false );
+ *         // Toggle the active state on each click
+ *         this.reallyActive = !this.reallyActive;
+ *         this.setActive( this.reallyActive );
+ *         // To update the menu label
+ *         this.toolbar.emit( 'updateState' );
  *     };
  *     SettingsTool.prototype.onUpdateState = function () {
- *         this.setActive( false );
  *     };
  *     toolFactory.register( SettingsTool );
  *
  *     // Register two more tools, nothing interesting here
  *     function StuffTool() {
  *         StuffTool.super.apply( this, arguments );
- *     };
+ *         this.reallyActive = false;
+ *     }
  *     OO.inheritClass( StuffTool, OO.ui.Tool );
  *     StuffTool.static.name = 'stuff';
  *     StuffTool.static.icon = 'ellipsis';
  *     StuffTool.static.title = 'More stuff';
  *     StuffTool.prototype.onSelect = function () {
  *         $area.text( 'More stuff tool clicked!' );
- *         this.setActive( false );
+ *         // Toggle the active state on each click
+ *         this.reallyActive = !this.reallyActive;
+ *         this.setActive( this.reallyActive );
+ *         // To update the menu label
+ *         this.toolbar.emit( 'updateState' );
  *     };
  *     StuffTool.prototype.onUpdateState = function () {
- *         this.setActive( false );
  *     };
  *     toolFactory.register( StuffTool );
  *
@@ -6775,7 +7083,7 @@ OO.ui.Tool.prototype.destroy = function () {
  *             head: true
  *         } }, config ) );
  *         this.popup.$body.append( '<p>I am helpful!</p>' );
- *     };
+ *     }
  *     OO.inheritClass( HelpTool, OO.ui.PopupTool );
  *     HelpTool.static.name = 'help';
  *     HelpTool.static.icon = 'help';
@@ -6791,14 +7099,12 @@ OO.ui.Tool.prototype.destroy = function () {
  *             include: [ 'picture', 'help' ]
  *         },
  *         {
- *             // 'list' tool groups display both the titles and icons, in a dropdown list.
- *             type: 'list',
+ *             // 'menu' tool groups display both the titles and icons, in a dropdown menu.
+ *             // Menu label indicates which items are selected.
+ *             type: 'menu',
  *             indicator: 'down',
- *             label: 'More',
  *             include: [ 'settings', 'stuff' ]
  *         }
- *         // Note how the tools themselves are toolgroup-agnostic - the same tool can be displayed
- *         // either in a 'list' or a 'bar'. There is a 'menu' tool group too, not showcased here.
  *     ] );
  *
  *     // Create some UI around the toolbar and place it in the document
@@ -6824,14 +7130,16 @@ OO.ui.Tool.prototype.destroy = function () {
  * @class
  * @extends OO.ui.Element
  * @mixins OO.EventEmitter
- * @mixins OO.ui.GroupElement
+ * @mixins OO.ui.mixin.GroupElement
  *
  * @constructor
  * @param {OO.ui.ToolFactory} toolFactory Factory for creating tools
- * @param {OO.ui.ToolGroupFactory} toolGroupFactory Factory for creating tool groups
+ * @param {OO.ui.ToolGroupFactory} toolGroupFactory Factory for creating toolgroups
  * @param {Object} [config] Configuration options
- * @cfg {boolean} [actions] Add an actions section opposite to the tools
- * @cfg {boolean} [shadow] Add a shadow below the toolbar
+ * @cfg {boolean} [actions] Add an actions section to the toolbar. Actions are commands that are included
+ *  in the toolbar, but are not configured as tools. By default, actions are displayed on the right side of
+ *  the toolbar.
+ * @cfg {boolean} [shadow] Add a shadow below the toolbar.
  */
 OO.ui.Toolbar = function OoUiToolbar( toolFactory, toolGroupFactory, config ) {
        // Allow passing positional parameters inside the config object
@@ -6849,7 +7157,7 @@ OO.ui.Toolbar = function OoUiToolbar( toolFactory, toolGroupFactory, config ) {
 
        // Mixin constructors
        OO.EventEmitter.call( this );
-       OO.ui.GroupElement.call( this, config );
+       OO.ui.mixin.GroupElement.call( this, config );
 
        // Properties
        this.toolFactory = toolFactory;
@@ -6884,7 +7192,7 @@ OO.ui.Toolbar = function OoUiToolbar( toolFactory, toolGroupFactory, config ) {
 
 OO.inheritClass( OO.ui.Toolbar, OO.ui.Element );
 OO.mixinClass( OO.ui.Toolbar, OO.EventEmitter );
-OO.mixinClass( OO.ui.Toolbar, OO.ui.GroupElement );
+OO.mixinClass( OO.ui.Toolbar, OO.ui.mixin.GroupElement );
 
 /* Methods */
 
@@ -6898,9 +7206,9 @@ OO.ui.Toolbar.prototype.getToolFactory = function () {
 };
 
 /**
- * Get the tool group factory.
+ * Get the toolgroup factory.
  *
- * @return {OO.Factory} Tool group factory
+ * @return {OO.Factory} Toolgroup factory
  */
 OO.ui.Toolbar.prototype.getToolGroupFactory = function () {
        return this.toolGroupFactory;
@@ -6909,6 +7217,7 @@ OO.ui.Toolbar.prototype.getToolGroupFactory = function () {
 /**
  * Handles mouse down events.
  *
+ * @private
  * @param {jQuery.Event} e Mouse down event
  */
 OO.ui.Toolbar.prototype.onPointerDown = function ( e ) {
@@ -6944,19 +7253,18 @@ OO.ui.Toolbar.prototype.initialize = function () {
 };
 
 /**
- * Setup toolbar.
- *
- * Tools can be specified in the following ways:
+ * Set up the toolbar.
  *
- * - A specific tool: `{ name: 'tool-name' }` or `'tool-name'`
- * - All tools in a group: `{ group: 'group-name' }`
- * - All tools: `'*'` - Using this will make the group a list with a "More" label by default
+ * The toolbar is set up with a list of toolgroup configurations that specify the type of
+ * toolgroup ({@link OO.ui.BarToolGroup bar}, {@link OO.ui.MenuToolGroup menu}, or {@link OO.ui.ListToolGroup list})
+ * to add and which tools to include, exclude, promote, or demote within that toolgroup. Please
+ * see {@link OO.ui.ToolGroup toolgroups} for more information about including tools in toolgroups.
  *
- * @param {Object.<string,Array>} groups List of tool group configurations
- * @param {Array|string} [groups.include] Tools to include
- * @param {Array|string} [groups.exclude] Tools to exclude
- * @param {Array|string} [groups.promote] Tools to promote to the beginning
- * @param {Array|string} [groups.demote] Tools to demote to the end
+ * @param {Object.<string,Array>} groups List of toolgroup configurations
+ * @param {Array|string} [groups.include] Tools to include in the toolgroup
+ * @param {Array|string} [groups.exclude] Tools to exclude from the toolgroup
+ * @param {Array|string} [groups.promote] Tools to promote to the beginning of the toolgroup
+ * @param {Array|string} [groups.demote] Tools to demote to the end of the toolgroup
  */
 OO.ui.Toolbar.prototype.setup = function ( groups ) {
        var i, len, type, group,
@@ -6988,7 +7296,7 @@ OO.ui.Toolbar.prototype.setup = function ( groups ) {
 };
 
 /**
- * Remove all tools and groups from the toolbar.
+ * Remove all tools and toolgroups from the toolbar.
  */
 OO.ui.Toolbar.prototype.reset = function () {
        var i, len;
@@ -7002,9 +7310,10 @@ OO.ui.Toolbar.prototype.reset = function () {
 };
 
 /**
- * Destroys toolbar, removing event handlers and DOM elements.
+ * Destroy the toolbar.
  *
- * Call this whenever you are done using a toolbar.
+ * Destroying the toolbar removes all event handlers and DOM elements that constitute the toolbar. Call
+ * this method whenever you are done using a toolbar.
  */
 OO.ui.Toolbar.prototype.destroy = function () {
        $( this.getElementWindow() ).off( 'resize', this.onWindowResizeHandler );
@@ -7013,7 +7322,9 @@ OO.ui.Toolbar.prototype.destroy = function () {
 };
 
 /**
- * Check if tool has not been used yet.
+ * Check if the tool is available.
+ *
+ * Available tools are ones that have not yet been added to the toolbar.
  *
  * @param {string} name Symbolic name of tool
  * @return {boolean} Tool is available
@@ -7043,7 +7354,9 @@ OO.ui.Toolbar.prototype.releaseTool = function ( tool ) {
 /**
  * Get accelerator label for tool.
  *
- * This is a stub that should be overridden to provide access to accelerator information.
+ * The OOjs UI library does not contain an accelerator system, but this is the hook for one. To
+ * use an accelerator system, subclass the toolbar and override this method, which is meant to return a label
+ * that describes the accelerator keys for the tool passed (by symbolic name) to the method.
  *
  * @param {string} name Symbolic name of tool
  * @return {string|undefined} Tool accelerator label if available
@@ -7053,26 +7366,44 @@ OO.ui.Toolbar.prototype.getToolAccelerator = function () {
 };
 
 /**
- * Collection of tools.
+ * ToolGroups are collections of {@link OO.ui.Tool tools} that are used in a {@link OO.ui.Toolbar toolbar}.
+ * The type of toolgroup ({@link OO.ui.ListToolGroup list}, {@link OO.ui.BarToolGroup bar}, or {@link OO.ui.MenuToolGroup menu})
+ * to which a tool belongs determines how the tool is arranged and displayed in the toolbar. Toolgroups
+ * themselves are created on demand with a {@link OO.ui.ToolGroupFactory toolgroup factory}.
  *
- * Tools can be specified in the following ways:
+ * Toolgroups can contain individual tools, groups of tools, or all available tools:
  *
- * - A specific tool: `{ name: 'tool-name' }` or `'tool-name'`
- * - All tools in a group: `{ group: 'group-name' }`
- * - All tools: `'*'`
+ * To include an individual tool (or array of individual tools), specify tools by symbolic name:
+ *
+ *      include: [ 'tool-name' ] or [ { name: 'tool-name' }]
+ *
+ * To include a group of tools, specify the group name. (The tool's static ‘group’ config is used to assign the tool to a group.)
+ *
+ *      include: [ { group: 'group-name' } ]
+ *
+ *  To include all tools that are not yet assigned to a toolgroup, use the catch-all selector, an asterisk (*):
+ *
+ *      include: '*'
+ *
+ * See {@link OO.ui.Toolbar toolbars} for a full example. For more information about toolbars in general,
+ * please see the [OOjs UI documentation on MediaWiki][1].
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Toolbars
  *
  * @abstract
  * @class
  * @extends OO.ui.Widget
- * @mixins OO.ui.GroupElement
+ * @mixins OO.ui.mixin.GroupElement
  *
  * @constructor
  * @param {OO.ui.Toolbar} toolbar
  * @param {Object} [config] Configuration options
- * @cfg {Array|string} [include=[]] List of tools to include
- * @cfg {Array|string} [exclude=[]] List of tools to exclude
- * @cfg {Array|string} [promote=[]] List of tools to promote to the beginning
- * @cfg {Array|string} [demote=[]] List of tools to demote to the end
+ * @cfg {Array|string} [include=[]] List of tools to include in the toolgroup.
+ * @cfg {Array|string} [exclude=[]] List of tools to exclude from the toolgroup.
+ * @cfg {Array|string} [promote=[]] List of tools to promote to the beginning of the toolgroup.
+ * @cfg {Array|string} [demote=[]] List of tools to demote to the end of the toolgroup.
+ *  This setting is particularly useful when tools have been added to the toolgroup
+ *  en masse (e.g., via the catch-all selector).
  */
 OO.ui.ToolGroup = function OoUiToolGroup( toolbar, config ) {
        // Allow passing positional parameters inside the config object
@@ -7088,7 +7419,7 @@ OO.ui.ToolGroup = function OoUiToolGroup( toolbar, config ) {
        OO.ui.ToolGroup.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.GroupElement.call( this, config );
+       OO.ui.mixin.GroupElement.call( this, config );
 
        // Properties
        this.toolbar = toolbar;
@@ -7127,7 +7458,7 @@ OO.ui.ToolGroup = function OoUiToolGroup( toolbar, config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.ToolGroup, OO.ui.Widget );
-OO.mixinClass( OO.ui.ToolGroup, OO.ui.GroupElement );
+OO.mixinClass( OO.ui.ToolGroup, OO.ui.mixin.GroupElement );
 
 /* Events */
 
@@ -7149,6 +7480,11 @@ OO.ui.ToolGroup.static.titleTooltips = false;
 /**
  * Show acceleration labels in tooltips.
  *
+ * Note: The OOjs UI library does not include an accelerator system, but does contain
+ * a hook for one. To use an accelerator system, subclass the {@link OO.ui.Toolbar toolbar} and
+ * override the {@link OO.ui.Toolbar#getToolAccelerator getToolAccelerator} method, which is
+ * meant to return a label that describes the accelerator keys for a given tool (e.g., 'Ctrl + M').
+ *
  * @static
  * @inheritable
  * @property {boolean}
@@ -7195,6 +7531,7 @@ OO.ui.ToolGroup.prototype.updateDisabled = function () {
 /**
  * Handle mouse down and key down events.
  *
+ * @protected
  * @param {jQuery.Event} e Mouse down or key down event
  */
 OO.ui.ToolGroup.prototype.onMouseKeyDown = function ( e ) {
@@ -7215,6 +7552,7 @@ OO.ui.ToolGroup.prototype.onMouseKeyDown = function ( e ) {
 /**
  * Handle captured mouse up and key up events.
  *
+ * @protected
  * @param {Event} e Mouse up or key up event
  */
 OO.ui.ToolGroup.prototype.onCapturedMouseKeyUp = function ( e ) {
@@ -7228,6 +7566,7 @@ OO.ui.ToolGroup.prototype.onCapturedMouseKeyUp = function ( e ) {
 /**
  * Handle mouse up and key up events.
  *
+ * @protected
  * @param {jQuery.Event} e Mouse up or key up event
  */
 OO.ui.ToolGroup.prototype.onMouseKeyUp = function ( e ) {
@@ -7248,6 +7587,7 @@ OO.ui.ToolGroup.prototype.onMouseKeyUp = function ( e ) {
 /**
  * Handle mouse over and focus events.
  *
+ * @protected
  * @param {jQuery.Event} e Mouse over or focus event
  */
 OO.ui.ToolGroup.prototype.onMouseOverFocus = function ( e ) {
@@ -7261,6 +7601,7 @@ OO.ui.ToolGroup.prototype.onMouseOverFocus = function ( e ) {
 /**
  * Handle mouse out and blur events.
  *
+ * @protected
  * @param {jQuery.Event} e Mouse out or blur event
  */
 OO.ui.ToolGroup.prototype.onMouseOutBlur = function ( e ) {
@@ -7300,6 +7641,7 @@ OO.ui.ToolGroup.prototype.getTargetTool = function ( e ) {
  * - a tool being added that may be included
  * - a tool already included being overridden
  *
+ * @protected
  * @param {string} name Symbolic name of tool
  */
 OO.ui.ToolGroup.prototype.onToolFactoryRegister = function () {
@@ -7307,9 +7649,9 @@ OO.ui.ToolGroup.prototype.onToolFactoryRegister = function () {
 };
 
 /**
- * Get the toolbar this group is in.
+ * Get the toolbar that contains the toolgroup.
  *
- * @return {OO.ui.Toolbar} Toolbar of group
+ * @return {OO.ui.Toolbar} Toolbar that contains the toolgroup
  */
 OO.ui.ToolGroup.prototype.getToolbar = function () {
        return this.toolbar;
@@ -7376,7 +7718,7 @@ OO.ui.ToolGroup.prototype.populate = function () {
 };
 
 /**
- * Destroy tool group.
+ * Destroy toolgroup.
  */
 OO.ui.ToolGroup.prototype.destroy = function () {
        var name;
@@ -7929,11 +8271,31 @@ OO.ui.ProcessDialog.prototype.executeAction = function ( action ) {
  * @chainable
  */
 OO.ui.ProcessDialog.prototype.fitLabel = function () {
-       var width = Math.max(
-               this.$safeActions.is( ':visible' ) ? this.$safeActions.width() : 0,
-               this.$primaryActions.is( ':visible' ) ? this.$primaryActions.width() : 0
-       );
-       this.$location.css( { paddingLeft: width, paddingRight: width } );
+       var safeWidth, primaryWidth, biggerWidth, labelWidth, navigationWidth, leftWidth, rightWidth;
+
+       safeWidth = this.$safeActions.is( ':visible' ) ? this.$safeActions.width() : 0;
+       primaryWidth = this.$primaryActions.is( ':visible' ) ? this.$primaryActions.width() : 0;
+       biggerWidth = Math.max( safeWidth, primaryWidth );
+
+       labelWidth = this.title.$element.width();
+       // Is there a better way to calculate this?
+       navigationWidth = OO.ui.WindowManager.static.sizes[ this.getSize() ].width - 20;
+
+       if ( 2 * biggerWidth + labelWidth < navigationWidth ) {
+               // We have enough space to center the label
+               leftWidth = rightWidth = biggerWidth;
+       } else {
+               // Let's hope we at least have enough space not to overlap, because we can't wrap the label…
+               if ( this.getDir() === 'ltr' ) {
+                       leftWidth = safeWidth;
+                       rightWidth = primaryWidth;
+               } else {
+                       leftWidth = primaryWidth;
+                       rightWidth = safeWidth;
+               }
+       }
+
+       this.$location.css( { paddingLeft: leftWidth, paddingRight: rightWidth } );
 
        return this;
 };
@@ -8036,7 +8398,7 @@ OO.ui.ProcessDialog.prototype.getTeardownProcess = function ( data ) {
  * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Layouts/Fields_and_Fieldsets
  * @class
  * @extends OO.ui.Layout
- * @mixins OO.ui.LabelElement
+ * @mixins OO.ui.mixin.LabelElement
  *
  * @constructor
  * @param {OO.ui.Widget} fieldWidget Field widget
@@ -8052,7 +8414,7 @@ OO.ui.FieldLayout = function OoUiFieldLayout( fieldWidget, config ) {
                fieldWidget = config.fieldWidget;
        }
 
-       var hasInputWidget = fieldWidget instanceof OO.ui.InputWidget;
+       var hasInputWidget = fieldWidget.constructor.static.supportsSimpleLabel;
 
        // Configuration initialization
        config = $.extend( { align: 'left' }, config );
@@ -8061,7 +8423,7 @@ OO.ui.FieldLayout = function OoUiFieldLayout( fieldWidget, config ) {
        OO.ui.FieldLayout.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.LabelElement.call( this, config );
+       OO.ui.mixin.LabelElement.call( this, config );
 
        // Properties
        this.fieldWidget = fieldWidget;
@@ -8107,7 +8469,7 @@ OO.ui.FieldLayout = function OoUiFieldLayout( fieldWidget, config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.FieldLayout, OO.ui.Layout );
-OO.mixinClass( OO.ui.FieldLayout, OO.ui.LabelElement );
+OO.mixinClass( OO.ui.FieldLayout, OO.ui.mixin.LabelElement );
 
 /* Methods */
 
@@ -8220,10 +8582,6 @@ OO.ui.FieldLayout.prototype.setAlignment = function ( value ) {
  * @constructor
  * @param {OO.ui.Widget} fieldWidget Field widget
  * @param {OO.ui.ButtonWidget} buttonWidget Button widget
- * @param {Object} [config] Configuration options
- * @cfg {string} [align='left'] Alignment of the label: 'left', 'right', 'top' or 'inline'
- * @cfg {string} [help] Help text. When help text is specified, a help icon will appear in the
- *  upper-right corner of the rendered field.
  */
 OO.ui.ActionFieldLayout = function OoUiActionFieldLayout( fieldWidget, buttonWidget, config ) {
        // Allow passing positional parameters inside the config object
@@ -8233,23 +8591,24 @@ OO.ui.ActionFieldLayout = function OoUiActionFieldLayout( fieldWidget, buttonWid
                buttonWidget = config.buttonWidget;
        }
 
-       // Configuration initialization
-       config = $.extend( { align: 'left' }, config );
-
        // Parent constructor
        OO.ui.ActionFieldLayout.super.call( this, fieldWidget, config );
 
        // Properties
-       this.fieldWidget = fieldWidget;
        this.buttonWidget = buttonWidget;
-       this.$button = $( '<div>' )
+       this.$button = $( '<div>' );
+       this.$input = $( '<div>' );
+
+       // Initialization
+       this.$element
+               .addClass( 'oo-ui-actionFieldLayout' );
+       this.$button
                .addClass( 'oo-ui-actionFieldLayout-button' )
                .append( this.buttonWidget.$element );
-       this.$input = $( '<div>' )
+       this.$input
                .addClass( 'oo-ui-actionFieldLayout-input' )
                .append( this.fieldWidget.$element );
        this.$field
-               .addClass( 'oo-ui-actionFieldLayout' )
                .append( this.$input, this.$button );
 };
 
@@ -8291,9 +8650,9 @@ OO.inheritClass( OO.ui.ActionFieldLayout, OO.ui.FieldLayout );
  *
  * @class
  * @extends OO.ui.Layout
- * @mixins OO.ui.IconElement
- * @mixins OO.ui.LabelElement
- * @mixins OO.ui.GroupElement
+ * @mixins OO.ui.mixin.IconElement
+ * @mixins OO.ui.mixin.LabelElement
+ * @mixins OO.ui.mixin.GroupElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -8307,9 +8666,9 @@ OO.ui.FieldsetLayout = function OoUiFieldsetLayout( config ) {
        OO.ui.FieldsetLayout.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.IconElement.call( this, config );
-       OO.ui.LabelElement.call( this, config );
-       OO.ui.GroupElement.call( this, config );
+       OO.ui.mixin.IconElement.call( this, config );
+       OO.ui.mixin.LabelElement.call( this, config );
+       OO.ui.mixin.GroupElement.call( this, config );
 
        if ( config.help ) {
                this.popupButtonWidget = new OO.ui.PopupButtonWidget( {
@@ -8340,9 +8699,9 @@ OO.ui.FieldsetLayout = function OoUiFieldsetLayout( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.FieldsetLayout, OO.ui.Layout );
-OO.mixinClass( OO.ui.FieldsetLayout, OO.ui.IconElement );
-OO.mixinClass( OO.ui.FieldsetLayout, OO.ui.LabelElement );
-OO.mixinClass( OO.ui.FieldsetLayout, OO.ui.GroupElement );
+OO.mixinClass( OO.ui.FieldsetLayout, OO.ui.mixin.IconElement );
+OO.mixinClass( OO.ui.FieldsetLayout, OO.ui.mixin.LabelElement );
+OO.mixinClass( OO.ui.FieldsetLayout, OO.ui.mixin.GroupElement );
 
 /**
  * FormLayouts are used to wrap {@link OO.ui.FieldsetLayout FieldsetLayouts} when you intend to use browser-based
@@ -8397,7 +8756,7 @@ OO.mixinClass( OO.ui.FieldsetLayout, OO.ui.GroupElement );
  *
  * @class
  * @extends OO.ui.Layout
- * @mixins OO.ui.GroupElement
+ * @mixins OO.ui.mixin.GroupElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -8414,7 +8773,7 @@ OO.ui.FormLayout = function OoUiFormLayout( config ) {
        OO.ui.FormLayout.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.GroupElement.call( this, $.extend( {}, config, { $group: this.$element } ) );
+       OO.ui.mixin.GroupElement.call( this, $.extend( {}, config, { $group: this.$element } ) );
 
        // Events
        this.$element.on( 'submit', this.onFormSubmit.bind( this ) );
@@ -8435,7 +8794,7 @@ OO.ui.FormLayout = function OoUiFormLayout( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.FormLayout, OO.ui.Layout );
-OO.mixinClass( OO.ui.FormLayout, OO.ui.GroupElement );
+OO.mixinClass( OO.ui.FormLayout, OO.ui.mixin.GroupElement );
 
 /* Events */
 
@@ -8459,8 +8818,9 @@ OO.ui.FormLayout.static.tagName = 'form';
  * @fires submit
  */
 OO.ui.FormLayout.prototype.onFormSubmit = function () {
-       this.emit( 'submit' );
-       return false;
+       if ( this.emit( 'submit' ) ) {
+               return false;
+       }
 };
 
 /**
@@ -9976,7 +10336,7 @@ OO.ui.PageLayout.prototype.setActive = function ( active ) {
  *
  * @class
  * @extends OO.ui.PanelLayout
- * @mixins OO.ui.GroupElement
+ * @mixins OO.ui.mixin.GroupElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -9991,7 +10351,7 @@ OO.ui.StackLayout = function OoUiStackLayout( config ) {
        OO.ui.StackLayout.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.GroupElement.call( this, $.extend( {}, config, { $group: this.$element } ) );
+       OO.ui.mixin.GroupElement.call( this, $.extend( {}, config, { $group: this.$element } ) );
 
        // Properties
        this.currentItem = null;
@@ -10010,7 +10370,7 @@ OO.ui.StackLayout = function OoUiStackLayout( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.StackLayout, OO.ui.PanelLayout );
-OO.mixinClass( OO.ui.StackLayout, OO.ui.GroupElement );
+OO.mixinClass( OO.ui.StackLayout, OO.ui.mixin.GroupElement );
 
 /* Events */
 
@@ -10066,7 +10426,7 @@ OO.ui.StackLayout.prototype.addItems = function ( items, index ) {
        this.updateHiddenState( items, this.currentItem );
 
        // Mixin method
-       OO.ui.GroupElement.prototype.addItems.call( this, items, index );
+       OO.ui.mixin.GroupElement.prototype.addItems.call( this, items, index );
 
        if ( !this.currentItem && items.length ) {
                this.setItem( items[ 0 ] );
@@ -10087,7 +10447,7 @@ OO.ui.StackLayout.prototype.addItems = function ( items, index ) {
  */
 OO.ui.StackLayout.prototype.removeItems = function ( items ) {
        // Mixin method
-       OO.ui.GroupElement.prototype.removeItems.call( this, items );
+       OO.ui.mixin.GroupElement.prototype.removeItems.call( this, items );
 
        if ( $.inArray( this.currentItem, items ) !== -1 ) {
                if ( this.items.length ) {
@@ -10111,7 +10471,7 @@ OO.ui.StackLayout.prototype.removeItems = function ( items ) {
  */
 OO.ui.StackLayout.prototype.clearItems = function () {
        this.unsetCurrentItem();
-       OO.ui.GroupElement.prototype.clearItems.call( this );
+       OO.ui.mixin.GroupElement.prototype.clearItems.call( this );
 
        return this;
 };
@@ -10166,7 +10526,94 @@ OO.ui.StackLayout.prototype.updateHiddenState = function ( items, selectedItem )
 };
 
 /**
- * Horizontal bar layout of tools as icon buttons.
+ * BarToolGroups are one of three types of {@link OO.ui.ToolGroup toolgroups} that are used to
+ * create {@link OO.ui.Toolbar toolbars} (the other types of groups are {@link OO.ui.MenuToolGroup MenuToolGroup}
+ * and {@link OO.ui.ListToolGroup ListToolGroup}). The {@link OO.ui.Tool tools} in a BarToolGroup are
+ * displayed by icon in a single row. The title of the tool is displayed when users move the mouse over
+ * the tool.
+ *
+ * BarToolGroups are created by a {@link OO.ui.ToolGroupFactory tool group factory} when the toolbar is
+ * set up.
+ *
+ *     @example
+ *     // Example of a BarToolGroup with two tools
+ *     var toolFactory = new OO.ui.ToolFactory();
+ *     var toolGroupFactory = new OO.ui.ToolGroupFactory();
+ *     var toolbar = new OO.ui.Toolbar( toolFactory, toolGroupFactory );
+ *
+ *     // We will be placing status text in this element when tools are used
+ *     var $area = $( '<p>' ).text( 'Example of a BarToolGroup with two tools.' );
+ *
+ *     // Define the tools that we're going to place in our toolbar
+ *
+ *     // Create a class inheriting from OO.ui.Tool
+ *     function PictureTool() {
+ *         PictureTool.super.apply( this, arguments );
+ *     }
+ *     OO.inheritClass( PictureTool, OO.ui.Tool );
+ *     // Each tool must have a 'name' (used as an internal identifier, see later) and at least one
+ *     // of 'icon' and 'title' (displayed icon and text).
+ *     PictureTool.static.name = 'picture';
+ *     PictureTool.static.icon = 'picture';
+ *     PictureTool.static.title = 'Insert picture';
+ *     // Defines the action that will happen when this tool is selected (clicked).
+ *     PictureTool.prototype.onSelect = function () {
+ *         $area.text( 'Picture tool clicked!' );
+ *         // Never display this tool as "active" (selected).
+ *         this.setActive( false );
+ *     };
+ *     // Make this tool available in our toolFactory and thus our toolbar
+ *     toolFactory.register( PictureTool );
+ *
+ *     // This is a PopupTool. Rather than having a custom 'onSelect' action, it will display a
+ *     // little popup window (a PopupWidget).
+ *     function HelpTool( toolGroup, config ) {
+ *         OO.ui.PopupTool.call( this, toolGroup, $.extend( { popup: {
+ *             padded: true,
+ *             label: 'Help',
+ *             head: true
+ *         } }, config ) );
+ *         this.popup.$body.append( '<p>I am helpful!</p>' );
+ *     }
+ *     OO.inheritClass( HelpTool, OO.ui.PopupTool );
+ *     HelpTool.static.name = 'help';
+ *     HelpTool.static.icon = 'help';
+ *     HelpTool.static.title = 'Help';
+ *     toolFactory.register( HelpTool );
+ *
+ *     // Finally define which tools and in what order appear in the toolbar. Each tool may only be
+ *     // used once (but not all defined tools must be used).
+ *     toolbar.setup( [
+ *         {
+ *             // 'bar' tool groups display tools by icon only
+ *             type: 'bar',
+ *             include: [ 'picture', 'help' ]
+ *         }
+ *     ] );
+ *
+ *     // Create some UI around the toolbar and place it in the document
+ *     var frame = new OO.ui.PanelLayout( {
+ *         expanded: false,
+ *         framed: true
+ *     } );
+ *     var contentFrame = new OO.ui.PanelLayout( {
+ *         expanded: false,
+ *         padded: true
+ *     } );
+ *     frame.$element.append(
+ *         toolbar.$element,
+ *         contentFrame.$element.append( $area )
+ *     );
+ *     $( 'body' ).append( frame.$element );
+ *
+ *     // Here is where the toolbar is actually built. This must be done after inserting it into the
+ *     // document.
+ *     toolbar.initialize();
+ *
+ * For more information about how to add tools to a bar tool group, please see {@link OO.ui.ToolGroup toolgroup}.
+ * For more information about toolbars in general, please see the [OOjs UI documentation on MediaWiki][1].
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Toolbars
  *
  * @class
  * @extends OO.ui.ToolGroup
@@ -10202,22 +10649,24 @@ OO.ui.BarToolGroup.static.accelTooltips = true;
 OO.ui.BarToolGroup.static.name = 'bar';
 
 /**
- * Popup list of tools with an icon and optional label.
+ * PopupToolGroup is an abstract base class used by both {@link OO.ui.MenuToolGroup MenuToolGroup}
+ * and {@link OO.ui.ListToolGroup ListToolGroup} to provide a popup--an overlaid menu or list of tools with an
+ * optional icon and label. This class can be used for other base classes that also use this functionality.
  *
  * @abstract
  * @class
  * @extends OO.ui.ToolGroup
- * @mixins OO.ui.IconElement
- * @mixins OO.ui.IndicatorElement
- * @mixins OO.ui.LabelElement
- * @mixins OO.ui.TitledElement
- * @mixins OO.ui.ClippableElement
- * @mixins OO.ui.TabIndexedElement
+ * @mixins OO.ui.mixin.IconElement
+ * @mixins OO.ui.mixin.IndicatorElement
+ * @mixins OO.ui.mixin.LabelElement
+ * @mixins OO.ui.mixin.TitledElement
+ * @mixins OO.ui.mixin.ClippableElement
+ * @mixins OO.ui.mixin.TabIndexedElement
  *
  * @constructor
  * @param {OO.ui.Toolbar} toolbar
  * @param {Object} [config] Configuration options
- * @cfg {string} [header] Text to display at the top of the pop-up
+ * @cfg {string} [header] Text to display at the top of the popup
  */
 OO.ui.PopupToolGroup = function OoUiPopupToolGroup( toolbar, config ) {
        // Allow passing positional parameters inside the config object
@@ -10239,12 +10688,12 @@ OO.ui.PopupToolGroup = function OoUiPopupToolGroup( toolbar, config ) {
        this.$handle = $( '<span>' );
 
        // Mixin constructors
-       OO.ui.IconElement.call( this, config );
-       OO.ui.IndicatorElement.call( this, config );
-       OO.ui.LabelElement.call( this, config );
-       OO.ui.TitledElement.call( this, config );
-       OO.ui.ClippableElement.call( this, $.extend( {}, config, { $clippable: this.$group } ) );
-       OO.ui.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$handle } ) );
+       OO.ui.mixin.IconElement.call( this, config );
+       OO.ui.mixin.IndicatorElement.call( this, config );
+       OO.ui.mixin.LabelElement.call( this, config );
+       OO.ui.mixin.TitledElement.call( this, config );
+       OO.ui.mixin.ClippableElement.call( this, $.extend( {}, config, { $clippable: this.$group } ) );
+       OO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$handle } ) );
 
        // Events
        this.$handle.on( {
@@ -10276,14 +10725,12 @@ OO.ui.PopupToolGroup = function OoUiPopupToolGroup( toolbar, config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.PopupToolGroup, OO.ui.ToolGroup );
-OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.IconElement );
-OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.IndicatorElement );
-OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.LabelElement );
-OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.TitledElement );
-OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.ClippableElement );
-OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.TabIndexedElement );
-
-/* Static Properties */
+OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.IconElement );
+OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.IndicatorElement );
+OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.LabelElement );
+OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.TitledElement );
+OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.ClippableElement );
+OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.TabIndexedElement );
 
 /* Methods */
 
@@ -10304,6 +10751,7 @@ OO.ui.PopupToolGroup.prototype.setDisabled = function () {
  *
  * The event is actually generated from a mouseup/keyup, so it is not a normal blur event object.
  *
+ * @protected
  * @param {jQuery.Event} e Mouse up or key up event
  */
 OO.ui.PopupToolGroup.prototype.onBlur = function ( e ) {
@@ -10330,6 +10778,7 @@ OO.ui.PopupToolGroup.prototype.onMouseKeyUp = function ( e ) {
 /**
  * Handle mouse up and key up events.
  *
+ * @protected
  * @param {jQuery.Event} e Mouse up or key up event
  */
 OO.ui.PopupToolGroup.prototype.onHandleMouseKeyUp = function ( e ) {
@@ -10344,6 +10793,7 @@ OO.ui.PopupToolGroup.prototype.onHandleMouseKeyUp = function ( e ) {
 /**
  * Handle mouse down and key down events.
  *
+ * @protected
  * @param {jQuery.Event} e Mouse down or key down event
  */
 OO.ui.PopupToolGroup.prototype.onHandleMouseKeyDown = function ( e ) {
@@ -10357,9 +10807,10 @@ OO.ui.PopupToolGroup.prototype.onHandleMouseKeyDown = function ( e ) {
 };
 
 /**
- * Switch into active mode.
+ * Switch into 'active' mode.
  *
- * When active, mouseup events anywhere in the document will trigger deactivation.
+ * When active, the popup is visible. A mouseup event anywhere in the document will trigger
+ * deactivation.
  */
 OO.ui.PopupToolGroup.prototype.setActive = function ( value ) {
        value = !!value;
@@ -10392,11 +10843,79 @@ OO.ui.PopupToolGroup.prototype.setActive = function ( value ) {
 };
 
 /**
- * Drop down list layout of tools as labeled icon buttons.
+ * ListToolGroups are one of three types of {@link OO.ui.ToolGroup toolgroups} that are used to
+ * create {@link OO.ui.Toolbar toolbars} (the other types of groups are {@link OO.ui.MenuToolGroup MenuToolGroup}
+ * and {@link OO.ui.BarToolGroup BarToolGroup}). The {@link OO.ui.Tool tools} in a ListToolGroup are displayed
+ * by label in a dropdown menu. The title of the tool is used as the label text. The menu itself can be configured
+ * with a label, icon, indicator, header, and title.
+ *
+ * ListToolGroups can be configured to be expanded and collapsed. Collapsed lists will have a ‘More’ option that
+ * users can select to see the full list of tools. If a collapsed toolgroup is expanded, a ‘Fewer’ option permits
+ * users to collapse the list again.
+ *
+ * ListToolGroups are created by a {@link OO.ui.ToolGroupFactory toolgroup factory} when the toolbar is set up. The factory
+ * requires the ListToolGroup's symbolic name, 'list', which is specified along with the other configurations. For more
+ * information about how to add tools to a ListToolGroup, please see {@link OO.ui.ToolGroup toolgroup}.
+ *
+ *     @example
+ *     // Example of a ListToolGroup
+ *     var toolFactory = new OO.ui.ToolFactory();
+ *     var toolGroupFactory = new OO.ui.ToolGroupFactory();
+ *     var toolbar = new OO.ui.Toolbar( toolFactory, toolGroupFactory );
+ *
+ *     // Configure and register two tools
+ *     function SettingsTool() {
+ *         SettingsTool.super.apply( this, arguments );
+ *     }
+ *     OO.inheritClass( SettingsTool, OO.ui.Tool );
+ *     SettingsTool.static.name = 'settings';
+ *     SettingsTool.static.icon = 'settings';
+ *     SettingsTool.static.title = 'Change settings';
+ *     SettingsTool.prototype.onSelect = function () {
+ *         this.setActive( false );
+ *     };
+ *     toolFactory.register( SettingsTool );
+ *     // Register two more tools, nothing interesting here
+ *     function StuffTool() {
+ *         StuffTool.super.apply( this, arguments );
+ *     }
+ *     OO.inheritClass( StuffTool, OO.ui.Tool );
+ *     StuffTool.static.name = 'stuff';
+ *     StuffTool.static.icon = 'ellipsis';
+ *     StuffTool.static.title = 'Change the world';
+ *     StuffTool.prototype.onSelect = function () {
+ *         this.setActive( false );
+ *     };
+ *     toolFactory.register( StuffTool );
+ *     toolbar.setup( [
+ *         {
+ *             // Configurations for list toolgroup.
+ *             type: 'list',
+ *             label: 'ListToolGroup',
+ *             indicator: 'down',
+ *             icon: 'picture',
+ *             title: 'This is the title, displayed when user moves the mouse over the list toolgroup',
+ *             header: 'This is the header',
+ *             include: [ 'settings', 'stuff' ],
+ *             allowCollapse: ['stuff']
+ *         }
+ *     ] );
+ *
+ *     // Create some UI around the toolbar and place it in the document
+ *     var frame = new OO.ui.PanelLayout( {
+ *         expanded: false,
+ *         framed: true
+ *     } );
+ *     frame.$element.append(
+ *         toolbar.$element
+ *     );
+ *     $( 'body' ).append( frame.$element );
+ *     // Build the toolbar. This must be done after the toolbar has been appended to the document.
+ *     toolbar.initialize();
  *
- * This layout allows some tools to be collapsible, controlled by a "More" / "Fewer" option at the
- * bottom of the main list. These are not automatically positioned at the bottom of the list; you
- * may want to use the 'promote' and 'demote' configuration options to achieve this.
+ * For more information about toolbars in general, please see the [OOjs UI documentation on MediaWiki][1].
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Toolbars
  *
  * @class
  * @extends OO.ui.PopupToolGroup
@@ -10404,11 +10923,16 @@ OO.ui.PopupToolGroup.prototype.setActive = function ( value ) {
  * @constructor
  * @param {OO.ui.Toolbar} toolbar
  * @param {Object} [config] Configuration options
- * @cfg {Array} [allowCollapse] List of tools that can be collapsed. Remaining tools will be always
- *  shown.
- * @cfg {Array} [forceExpand] List of tools that *may not* be collapsed. All remaining tools will be
- *  allowed to be collapsed.
- * @cfg {boolean} [expanded=false] Whether the collapsible tools are expanded by default
+ * @cfg {Array} [allowCollapse] Allow the specified tools to be collapsed. By default, collapsible tools
+ *  will only be displayed if users click the ‘More’ option displayed at the bottom of the list. If
+ *  the list is expanded, a ‘Fewer’ option permits users to collapse the list again. Any tools that
+ *  are included in the toolgroup, but are not designated as collapsible, will always be displayed.
+ *  To open a collapsible list in its expanded state, set #expanded to 'true'.
+ * @cfg {Array} [forceExpand] Expand the specified tools. All other tools will be designated as collapsible.
+ *  Unless #expanded is set to true, the collapsible tools will be collapsed when the list is first opened.
+ * @cfg {boolean} [expanded=false] Expand collapsible tools. This config is only relevant if tools have
+ *  been designated as collapsible. When expanded is set to true, all tools in the group will be displayed
+ *  when the list is first opened. Users can collapse the list with a ‘Fewer’ option at the bottom.
  */
 OO.ui.ListToolGroup = function OoUiListToolGroup( toolbar, config ) {
        // Allow passing positional parameters inside the config object
@@ -10439,8 +10963,6 @@ OO.inheritClass( OO.ui.ListToolGroup, OO.ui.PopupToolGroup );
 
 /* Static Properties */
 
-OO.ui.ListToolGroup.static.accelTooltips = true;
-
 OO.ui.ListToolGroup.static.name = 'list';
 
 /* Methods */
@@ -10528,7 +11050,104 @@ OO.ui.ListToolGroup.prototype.updateCollapsibleState = function () {
 };
 
 /**
- * Drop down menu layout of tools as selectable menu items.
+ * MenuToolGroups are one of three types of {@link OO.ui.ToolGroup toolgroups} that are used to
+ * create {@link OO.ui.Toolbar toolbars} (the other types of groups are {@link OO.ui.BarToolGroup BarToolGroup}
+ * and {@link OO.ui.ListToolGroup ListToolGroup}). MenuToolGroups contain selectable {@link OO.ui.Tool tools},
+ * which are displayed by label in a dropdown menu. The tool's title is used as the label text, and the
+ * menu label is updated to reflect which tool or tools are currently selected. If no tools are selected,
+ * the menu label is empty. The menu can be configured with an indicator, icon, title, and/or header.
+ *
+ * MenuToolGroups are created by a {@link OO.ui.ToolGroupFactory tool group factory} when the toolbar
+ * is set up. Note that all tools must define an {@link OO.ui.Tool#onUpdateState onUpdateState} method if
+ * a MenuToolGroup is used.
+ *
+ *     @example
+ *     // Example of a MenuToolGroup
+ *     var toolFactory = new OO.ui.ToolFactory();
+ *     var toolGroupFactory = new OO.ui.ToolGroupFactory();
+ *     var toolbar = new OO.ui.Toolbar( toolFactory, toolGroupFactory );
+ *
+ *     // We will be placing status text in this element when tools are used
+ *     var $area = $( '<p>' ).text( 'An example of a MenuToolGroup. Select a tool from the dropdown menu.' );
+ *
+ *     // Define the tools that we're going to place in our toolbar
+ *
+ *     function SettingsTool() {
+ *         SettingsTool.super.apply( this, arguments );
+ *         this.reallyActive = false;
+ *     }
+ *     OO.inheritClass( SettingsTool, OO.ui.Tool );
+ *     SettingsTool.static.name = 'settings';
+ *     SettingsTool.static.icon = 'settings';
+ *     SettingsTool.static.title = 'Change settings';
+ *     SettingsTool.prototype.onSelect = function () {
+ *         $area.text( 'Settings tool clicked!' );
+ *         // Toggle the active state on each click
+ *         this.reallyActive = !this.reallyActive;
+ *         this.setActive( this.reallyActive );
+ *         // To update the menu label
+ *         this.toolbar.emit( 'updateState' );
+ *     };
+ *     SettingsTool.prototype.onUpdateState = function () {
+ *     };
+ *     toolFactory.register( SettingsTool );
+ *
+ *     function StuffTool() {
+ *         StuffTool.super.apply( this, arguments );
+ *         this.reallyActive = false;
+ *     }
+ *     OO.inheritClass( StuffTool, OO.ui.Tool );
+ *     StuffTool.static.name = 'stuff';
+ *     StuffTool.static.icon = 'ellipsis';
+ *     StuffTool.static.title = 'More stuff';
+ *     StuffTool.prototype.onSelect = function () {
+ *         $area.text( 'More stuff tool clicked!' );
+ *         // Toggle the active state on each click
+ *         this.reallyActive = !this.reallyActive;
+ *         this.setActive( this.reallyActive );
+ *         // To update the menu label
+ *         this.toolbar.emit( 'updateState' );
+ *     };
+ *     StuffTool.prototype.onUpdateState = function () {
+ *     };
+ *     toolFactory.register( StuffTool );
+ *
+ *     // Finally define which tools and in what order appear in the toolbar. Each tool may only be
+ *     // used once (but not all defined tools must be used).
+ *     toolbar.setup( [
+ *         {
+ *             type: 'menu',
+ *             header: 'This is the (optional) header',
+ *             title: 'This is the (optional) title',
+ *             indicator: 'down',
+ *             include: [ 'settings', 'stuff' ]
+ *         }
+ *     ] );
+ *
+ *     // Create some UI around the toolbar and place it in the document
+ *     var frame = new OO.ui.PanelLayout( {
+ *         expanded: false,
+ *         framed: true
+ *     } );
+ *     var contentFrame = new OO.ui.PanelLayout( {
+ *         expanded: false,
+ *         padded: true
+ *     } );
+ *     frame.$element.append(
+ *         toolbar.$element,
+ *         contentFrame.$element.append( $area )
+ *     );
+ *     $( 'body' ).append( frame.$element );
+ *
+ *     // Here is where the toolbar is actually built. This must be done after inserting it into the
+ *     // document.
+ *     toolbar.initialize();
+ *     toolbar.emit( 'updateState' );
+ *
+ * For more information about how to add tools to a MenuToolGroup, please see {@link OO.ui.ToolGroup toolgroup}.
+ * For more information about toolbars in general, please see the [OOjs UI documentation on MediaWiki] [1].
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Toolbars
  *
  * @class
  * @extends OO.ui.PopupToolGroup
@@ -10563,8 +11182,6 @@ OO.inheritClass( OO.ui.MenuToolGroup, OO.ui.PopupToolGroup );
 
 /* Static Properties */
 
-OO.ui.MenuToolGroup.static.accelTooltips = true;
-
 OO.ui.MenuToolGroup.static.name = 'menu';
 
 /* Methods */
@@ -10574,6 +11191,8 @@ OO.ui.MenuToolGroup.static.name = 'menu';
  *
  * When the state changes, the title of each active item in the menu will be joined together and
  * used as a label for the group. The label will be empty if none of the items are active.
+ *
+ * @private
  */
 OO.ui.MenuToolGroup.prototype.onUpdateState = function () {
        var name,
@@ -10589,12 +11208,35 @@ OO.ui.MenuToolGroup.prototype.onUpdateState = function () {
 };
 
 /**
- * Tool that shows a popup when selected.
+ * Popup tools open a popup window when they are selected from the {@link OO.ui.Toolbar toolbar}. Each popup tool is configured
+ * with a static name, title, and icon, as well with as any popup configurations. Unlike other tools, popup tools do not require that developers specify
+ * an #onSelect or #onUpdateState method, as these methods have been implemented already.
+ *
+ *     // Example of a popup tool. When selected, a popup tool displays
+ *     // a popup window.
+ *     function HelpTool( toolGroup, config ) {
+ *        OO.ui.PopupTool.call( this, toolGroup, $.extend( { popup: {
+ *            padded: true,
+ *            label: 'Help',
+ *            head: true
+ *        } }, config ) );
+ *        this.popup.$body.append( '<p>I am helpful!</p>' );
+ *     };
+ *     OO.inheritClass( HelpTool, OO.ui.PopupTool );
+ *     HelpTool.static.name = 'help';
+ *     HelpTool.static.icon = 'help';
+ *     HelpTool.static.title = 'Help';
+ *     toolFactory.register( HelpTool );
+ *
+ * For an example of a toolbar that contains a popup tool, see {@link OO.ui.Toolbar toolbars}. For more information about
+ * toolbars in genreral, please see the [OOjs UI documentation on MediaWiki][1].
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Toolbars
  *
  * @abstract
  * @class
  * @extends OO.ui.Tool
- * @mixins OO.ui.PopupElement
+ * @mixins OO.ui.mixin.PopupElement
  *
  * @constructor
  * @param {OO.ui.ToolGroup} toolGroup
@@ -10611,7 +11253,7 @@ OO.ui.PopupTool = function OoUiPopupTool( toolGroup, config ) {
        OO.ui.PopupTool.super.call( this, toolGroup, config );
 
        // Mixin constructors
-       OO.ui.PopupElement.call( this, config );
+       OO.ui.mixin.PopupElement.call( this, config );
 
        // Initialization
        this.$element
@@ -10622,7 +11264,7 @@ OO.ui.PopupTool = function OoUiPopupTool( toolGroup, config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.PopupTool, OO.ui.Tool );
-OO.mixinClass( OO.ui.PopupTool, OO.ui.PopupElement );
+OO.mixinClass( OO.ui.PopupTool, OO.ui.mixin.PopupElement );
 
 /* Methods */
 
@@ -10649,8 +11291,33 @@ OO.ui.PopupTool.prototype.onUpdateState = function () {
 };
 
 /**
- * Tool that has a tool group inside. This is a bad workaround for the lack of proper hierarchical
- * menus in toolbars (T74159).
+ * A ToolGroupTool is a special sort of tool that can contain other {@link OO.ui.Tool tools}
+ * and {@link OO.ui.ToolGroup toolgroups}. The ToolGroupTool was specifically designed to be used
+ * inside a {@link OO.ui.BarToolGroup bar} toolgroup to provide access to additional tools from
+ * the bar item. Included tools will be displayed in a dropdown {@link OO.ui.ListToolGroup list}
+ * when the ToolGroupTool is selected.
+ *
+ *     // Example: ToolGroupTool with two nested tools, 'setting1' and 'setting2', defined elsewhere.
+ *
+ *     function SettingsTool() {
+ *         SettingsTool.super.apply( this, arguments );
+ *     };
+ *     OO.inheritClass( SettingsTool, OO.ui.ToolGroupTool );
+ *     SettingsTool.static.name = 'settings';
+ *     SettingsTool.static.title = 'Change settings';
+ *     SettingsTool.static.groupConfig = {
+ *         icon: 'settings',
+ *         label: 'ToolGroupTool',
+ *         include: [  'setting1', 'setting2'  ]
+ *     };
+ *     toolFactory.register( SettingsTool );
+ *
+ * For more information, please see the [OOjs UI documentation on MediaWiki][1].
+ *
+ * Please note that this implementation is subject to change per [T74159] [2].
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Toolbars#ToolGroupTool
+ * [2]: https://phabricator.wikimedia.org/T74159
  *
  * @abstract
  * @class
@@ -10673,6 +11340,9 @@ OO.ui.ToolGroupTool = function OoUiToolGroupTool( toolGroup, config ) {
        // Properties
        this.innerToolGroup = this.createGroup( this.constructor.static.groupConfig );
 
+       // Events
+       this.innerToolGroup.connect( this, { disable: 'onToolGroupDisable' } );
+
        // Initialization
        this.$link.remove();
        this.$element
@@ -10687,7 +11357,11 @@ OO.inheritClass( OO.ui.ToolGroupTool, OO.ui.Tool );
 /* Static Properties */
 
 /**
- * Tool group configuration. See OO.ui.Toolbar#setup for the accepted values.
+ * Toolgroup configuration.
+ *
+ * The toolgroup configuration consists of the tools to include, as well as an icon and label
+ * to use for the bar item. Tools can be included by symbolic name, group, or with the
+ * wildcard selector. Please see {@link OO.ui.ToolGroup toolgroup} for more information.
  *
  * @property {Object.<string,Array>}
  */
@@ -10705,6 +11379,16 @@ OO.ui.ToolGroupTool.prototype.onSelect = function () {
        return false;
 };
 
+/**
+ * Synchronize disabledness state of the tool with the inner toolgroup.
+ *
+ * @private
+ * @param {boolean} disabled Element is disabled
+ */
+OO.ui.ToolGroupTool.prototype.onToolGroupDisable = function ( disabled ) {
+       this.setDisabled( disabled );
+};
+
 /**
  * Handle the toolbar state being updated.
  *
@@ -10715,10 +11399,10 @@ OO.ui.ToolGroupTool.prototype.onUpdateState = function () {
 };
 
 /**
- * Build a OO.ui.ToolGroup from the configuration.
+ * Build a {@link OO.ui.ToolGroup toolgroup} from the specified configuration.
  *
- * @param {Object.<string,Array>} group Tool group configuration. See OO.ui.Toolbar#setup for the
- *   accepted values.
+ * @param {Object.<string,Array>} group Toolgroup configuration. Please see {@link OO.ui.ToolGroup toolgroup} for
+ *  more information.
  * @return {OO.ui.ListToolGroup}
  */
 OO.ui.ToolGroupTool.prototype.createGroup = function ( group ) {
@@ -10733,26 +11417,26 @@ OO.ui.ToolGroupTool.prototype.createGroup = function ( group ) {
 };
 
 /**
- * Mixin for OO.ui.Widget subclasses to provide OO.ui.GroupElement.
+ * Mixin for OO.ui.Widget subclasses to provide OO.ui.mixin.GroupElement.
  *
- * Use together with OO.ui.ItemWidget to make disabled state inheritable.
+ * Use together with OO.ui.mixin.ItemWidget to make disabled state inheritable.
  *
  * @private
  * @abstract
  * @class
- * @extends OO.ui.GroupElement
+ * @extends OO.ui.mixin.GroupElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
  */
-OO.ui.GroupWidget = function OoUiGroupWidget( config ) {
+OO.ui.mixin.GroupWidget = function OoUiMixinGroupWidget( config ) {
        // Parent constructor
-       OO.ui.GroupWidget.super.call( this, config );
+       OO.ui.mixin.GroupWidget.super.call( this, config );
 };
 
 /* Setup */
 
-OO.inheritClass( OO.ui.GroupWidget, OO.ui.GroupElement );
+OO.inheritClass( OO.ui.mixin.GroupWidget, OO.ui.mixin.GroupElement );
 
 /* Methods */
 
@@ -10764,14 +11448,14 @@ OO.inheritClass( OO.ui.GroupWidget, OO.ui.GroupElement );
  * @param {boolean} disabled Disable widget
  * @chainable
  */
-OO.ui.GroupWidget.prototype.setDisabled = function ( disabled ) {
+OO.ui.mixin.GroupWidget.prototype.setDisabled = function ( disabled ) {
        var i, len;
 
        // Parent method
        // Note: Calling #setDisabled this way assumes this is mixed into an OO.ui.Widget
        OO.ui.Widget.prototype.setDisabled.call( this, disabled );
 
-       // During construction, #setDisabled is called before the OO.ui.GroupElement constructor
+       // During construction, #setDisabled is called before the OO.ui.mixin.GroupElement constructor
        if ( this.items ) {
                for ( i = 0, len = this.items.length; i < len; i++ ) {
                        this.items[ i ].updateDisabled();
@@ -10782,12 +11466,12 @@ OO.ui.GroupWidget.prototype.setDisabled = function ( disabled ) {
 };
 
 /**
- * Mixin for widgets used as items in widgets that inherit OO.ui.GroupWidget.
+ * Mixin for widgets used as items in widgets that mix in OO.ui.mixin.GroupWidget.
  *
- * Item widgets have a reference to a OO.ui.GroupWidget while they are attached to the group. This
+ * Item widgets have a reference to a OO.ui.mixin.GroupWidget while they are attached to the group. This
  * allows bidirectional communication.
  *
- * Use together with OO.ui.GroupWidget to make disabled state inheritable.
+ * Use together with OO.ui.mixin.GroupWidget to make disabled state inheritable.
  *
  * @private
  * @abstract
@@ -10795,7 +11479,7 @@ OO.ui.GroupWidget.prototype.setDisabled = function ( disabled ) {
  *
  * @constructor
  */
-OO.ui.ItemWidget = function OoUiItemWidget() {
+OO.ui.mixin.ItemWidget = function OoUiMixinItemWidget() {
        //
 };
 
@@ -10808,7 +11492,7 @@ OO.ui.ItemWidget = function OoUiItemWidget() {
  *
  * @return {boolean} Widget is disabled
  */
-OO.ui.ItemWidget.prototype.isDisabled = function () {
+OO.ui.mixin.ItemWidget.prototype.isDisabled = function () {
        return this.disabled ||
                ( this.elementGroup instanceof OO.ui.Widget && this.elementGroup.isDisabled() );
 };
@@ -10816,10 +11500,10 @@ OO.ui.ItemWidget.prototype.isDisabled = function () {
 /**
  * Set group element is in.
  *
- * @param {OO.ui.GroupElement|null} group Group element, null if none
+ * @param {OO.ui.mixin.GroupElement|null} group Group element, null if none
  * @chainable
  */
-OO.ui.ItemWidget.prototype.setElementGroup = function ( group ) {
+OO.ui.mixin.ItemWidget.prototype.setElementGroup = function ( group ) {
        // Parent method
        // Note: Calling #setElementGroup this way assumes this is mixed into an OO.ui.Element
        OO.ui.Element.prototype.setElementGroup.call( this, group );
@@ -10837,8 +11521,8 @@ OO.ui.ItemWidget.prototype.setElementGroup = function ( group ) {
  *
  * @class
  * @extends OO.ui.Widget
- * @mixins OO.ui.GroupElement
- * @mixins OO.ui.IconElement
+ * @mixins OO.ui.mixin.GroupElement
+ * @mixins OO.ui.mixin.IconElement
  *
  * @constructor
  * @param {OO.ui.OutlineSelectWidget} outline Outline to control
@@ -10861,8 +11545,8 @@ OO.ui.OutlineControlsWidget = function OoUiOutlineControlsWidget( outline, confi
        OO.ui.OutlineControlsWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.GroupElement.call( this, config );
-       OO.ui.IconElement.call( this, config );
+       OO.ui.mixin.GroupElement.call( this, config );
+       OO.ui.mixin.IconElement.call( this, config );
 
        // Properties
        this.outline = outline;
@@ -10907,8 +11591,8 @@ OO.ui.OutlineControlsWidget = function OoUiOutlineControlsWidget( outline, confi
 /* Setup */
 
 OO.inheritClass( OO.ui.OutlineControlsWidget, OO.ui.Widget );
-OO.mixinClass( OO.ui.OutlineControlsWidget, OO.ui.GroupElement );
-OO.mixinClass( OO.ui.OutlineControlsWidget, OO.ui.IconElement );
+OO.mixinClass( OO.ui.OutlineControlsWidget, OO.ui.mixin.GroupElement );
+OO.mixinClass( OO.ui.OutlineControlsWidget, OO.ui.mixin.IconElement );
 
 /* Events */
 
@@ -11074,7 +11758,7 @@ OO.ui.ToggleWidget.prototype.setValue = function ( value ) {
  *
  * @class
  * @extends OO.ui.Widget
- * @mixins OO.ui.GroupElement
+ * @mixins OO.ui.mixin.GroupElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -11088,7 +11772,7 @@ OO.ui.ButtonGroupWidget = function OoUiButtonGroupWidget( config ) {
        OO.ui.ButtonGroupWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.GroupElement.call( this, $.extend( {}, config, { $group: this.$element } ) );
+       OO.ui.mixin.GroupElement.call( this, $.extend( {}, config, { $group: this.$element } ) );
 
        // Initialization
        this.$element.addClass( 'oo-ui-buttonGroupWidget' );
@@ -11100,7 +11784,7 @@ OO.ui.ButtonGroupWidget = function OoUiButtonGroupWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.ButtonGroupWidget, OO.ui.Widget );
-OO.mixinClass( OO.ui.ButtonGroupWidget, OO.ui.GroupElement );
+OO.mixinClass( OO.ui.ButtonGroupWidget, OO.ui.mixin.GroupElement );
 
 /**
  * ButtonWidget is a generic widget for buttons. A wide variety of looks,
@@ -11123,13 +11807,13 @@ OO.mixinClass( OO.ui.ButtonGroupWidget, OO.ui.GroupElement );
  *
  * @class
  * @extends OO.ui.Widget
- * @mixins OO.ui.ButtonElement
- * @mixins OO.ui.IconElement
- * @mixins OO.ui.IndicatorElement
- * @mixins OO.ui.LabelElement
- * @mixins OO.ui.TitledElement
- * @mixins OO.ui.FlaggedElement
- * @mixins OO.ui.TabIndexedElement
+ * @mixins OO.ui.mixin.ButtonElement
+ * @mixins OO.ui.mixin.IconElement
+ * @mixins OO.ui.mixin.IndicatorElement
+ * @mixins OO.ui.mixin.LabelElement
+ * @mixins OO.ui.mixin.TitledElement
+ * @mixins OO.ui.mixin.FlaggedElement
+ * @mixins OO.ui.mixin.TabIndexedElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -11145,13 +11829,13 @@ OO.ui.ButtonWidget = function OoUiButtonWidget( config ) {
        OO.ui.ButtonWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.ButtonElement.call( this, config );
-       OO.ui.IconElement.call( this, config );
-       OO.ui.IndicatorElement.call( this, config );
-       OO.ui.LabelElement.call( this, config );
-       OO.ui.TitledElement.call( this, $.extend( {}, config, { $titled: this.$button } ) );
-       OO.ui.FlaggedElement.call( this, config );
-       OO.ui.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$button } ) );
+       OO.ui.mixin.ButtonElement.call( this, config );
+       OO.ui.mixin.IconElement.call( this, config );
+       OO.ui.mixin.IndicatorElement.call( this, config );
+       OO.ui.mixin.LabelElement.call( this, config );
+       OO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$button } ) );
+       OO.ui.mixin.FlaggedElement.call( this, config );
+       OO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$button } ) );
 
        // Properties
        this.href = null;
@@ -11174,13 +11858,13 @@ OO.ui.ButtonWidget = function OoUiButtonWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.ButtonWidget, OO.ui.Widget );
-OO.mixinClass( OO.ui.ButtonWidget, OO.ui.ButtonElement );
-OO.mixinClass( OO.ui.ButtonWidget, OO.ui.IconElement );
-OO.mixinClass( OO.ui.ButtonWidget, OO.ui.IndicatorElement );
-OO.mixinClass( OO.ui.ButtonWidget, OO.ui.LabelElement );
-OO.mixinClass( OO.ui.ButtonWidget, OO.ui.TitledElement );
-OO.mixinClass( OO.ui.ButtonWidget, OO.ui.FlaggedElement );
-OO.mixinClass( OO.ui.ButtonWidget, OO.ui.TabIndexedElement );
+OO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.ButtonElement );
+OO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.IconElement );
+OO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.IndicatorElement );
+OO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.LabelElement );
+OO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.TitledElement );
+OO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.FlaggedElement );
+OO.mixinClass( OO.ui.ButtonWidget, OO.ui.mixin.TabIndexedElement );
 
 /* Methods */
 
@@ -11193,7 +11877,7 @@ OO.ui.ButtonWidget.prototype.onMouseDown = function ( e ) {
                this.$button.removeAttr( 'tabindex' );
        }
 
-       return OO.ui.ButtonElement.prototype.onMouseDown.call( this, e );
+       return OO.ui.mixin.ButtonElement.prototype.onMouseDown.call( this, e );
 };
 
 /**
@@ -11205,29 +11889,7 @@ OO.ui.ButtonWidget.prototype.onMouseUp = function ( e ) {
                this.$button.attr( 'tabindex', this.tabIndex );
        }
 
-       return OO.ui.ButtonElement.prototype.onMouseUp.call( this, e );
-};
-
-/**
- * @inheritdoc
- */
-OO.ui.ButtonWidget.prototype.onClick = function ( e ) {
-       var ret = OO.ui.ButtonElement.prototype.onClick.call( this, e );
-       if ( this.href ) {
-               return true;
-       }
-       return ret;
-};
-
-/**
- * @inheritdoc
- */
-OO.ui.ButtonWidget.prototype.onKeyPress = function ( e ) {
-       var ret = OO.ui.ButtonElement.prototype.onKeyPress.call( this, e );
-       if ( this.href ) {
-               return true;
-       }
-       return ret;
+       return OO.ui.mixin.ButtonElement.prototype.onMouseUp.call( this, e );
 };
 
 /**
@@ -11353,7 +12015,7 @@ OO.ui.ButtonWidget.prototype.setNoFollow = function ( noFollow ) {
  *
  * @class
  * @extends OO.ui.ButtonWidget
- * @mixins OO.ui.PendingElement
+ * @mixins OO.ui.mixin.PendingElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -11371,7 +12033,7 @@ OO.ui.ActionWidget = function OoUiActionWidget( config ) {
        OO.ui.ActionWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.PendingElement.call( this, config );
+       OO.ui.mixin.PendingElement.call( this, config );
 
        // Properties
        this.action = config.action || '';
@@ -11386,7 +12048,7 @@ OO.ui.ActionWidget = function OoUiActionWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.ActionWidget, OO.ui.ButtonWidget );
-OO.mixinClass( OO.ui.ActionWidget, OO.ui.PendingElement );
+OO.mixinClass( OO.ui.ActionWidget, OO.ui.mixin.PendingElement );
 
 /* Events */
 
@@ -11458,7 +12120,7 @@ OO.ui.ActionWidget.prototype.propagateResize = function () {
  */
 OO.ui.ActionWidget.prototype.setIcon = function () {
        // Mixin method
-       OO.ui.IconElement.prototype.setIcon.apply( this, arguments );
+       OO.ui.mixin.IconElement.prototype.setIcon.apply( this, arguments );
        this.propagateResize();
 
        return this;
@@ -11469,7 +12131,7 @@ OO.ui.ActionWidget.prototype.setIcon = function () {
  */
 OO.ui.ActionWidget.prototype.setLabel = function () {
        // Mixin method
-       OO.ui.LabelElement.prototype.setLabel.apply( this, arguments );
+       OO.ui.mixin.LabelElement.prototype.setLabel.apply( this, arguments );
        this.propagateResize();
 
        return this;
@@ -11480,7 +12142,7 @@ OO.ui.ActionWidget.prototype.setLabel = function () {
  */
 OO.ui.ActionWidget.prototype.setFlags = function () {
        // Mixin method
-       OO.ui.FlaggedElement.prototype.setFlags.apply( this, arguments );
+       OO.ui.mixin.FlaggedElement.prototype.setFlags.apply( this, arguments );
        this.propagateResize();
 
        return this;
@@ -11491,7 +12153,7 @@ OO.ui.ActionWidget.prototype.setFlags = function () {
  */
 OO.ui.ActionWidget.prototype.clearFlags = function () {
        // Mixin method
-       OO.ui.FlaggedElement.prototype.clearFlags.apply( this, arguments );
+       OO.ui.mixin.FlaggedElement.prototype.clearFlags.apply( this, arguments );
        this.propagateResize();
 
        return this;
@@ -11531,7 +12193,7 @@ OO.ui.ActionWidget.prototype.toggle = function () {
  *
  * @class
  * @extends OO.ui.ButtonWidget
- * @mixins OO.ui.PopupElement
+ * @mixins OO.ui.mixin.PopupElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -11541,7 +12203,7 @@ OO.ui.PopupButtonWidget = function OoUiPopupButtonWidget( config ) {
        OO.ui.PopupButtonWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.PopupElement.call( this, config );
+       OO.ui.mixin.PopupElement.call( this, config );
 
        // Events
        this.connect( this, { click: 'onAction' } );
@@ -11556,7 +12218,7 @@ OO.ui.PopupButtonWidget = function OoUiPopupButtonWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.PopupButtonWidget, OO.ui.ButtonWidget );
-OO.mixinClass( OO.ui.PopupButtonWidget, OO.ui.PopupElement );
+OO.mixinClass( OO.ui.PopupButtonWidget, OO.ui.mixin.PopupElement );
 
 /* Methods */
 
@@ -11572,9 +12234,9 @@ OO.ui.PopupButtonWidget.prototype.onAction = function () {
 /**
  * ToggleButtons are buttons that have a state (‘on’ or ‘off’) that is represented by a
  * Boolean value. Like other {@link OO.ui.ButtonWidget buttons}, toggle buttons can be
- * configured with {@link OO.ui.IconElement icons}, {@link OO.ui.IndicatorElement indicators},
- * {@link OO.ui.TitledElement titles}, {@link OO.ui.FlaggedElement styling flags},
- * and {@link OO.ui.LabelElement labels}. Please see
+ * configured with {@link OO.ui.mixin.IconElement icons}, {@link OO.ui.mixin.IndicatorElement indicators},
+ * {@link OO.ui.mixin.TitledElement titles}, {@link OO.ui.mixin.FlaggedElement styling flags},
+ * and {@link OO.ui.mixin.LabelElement labels}. Please see
  * the [OOjs UI documentation][1] on MediaWiki for more information.
  *
  *     @example
@@ -11593,13 +12255,13 @@ OO.ui.PopupButtonWidget.prototype.onAction = function () {
  *
  * @class
  * @extends OO.ui.ToggleWidget
- * @mixins OO.ui.ButtonElement
- * @mixins OO.ui.IconElement
- * @mixins OO.ui.IndicatorElement
- * @mixins OO.ui.LabelElement
- * @mixins OO.ui.TitledElement
- * @mixins OO.ui.FlaggedElement
- * @mixins OO.ui.TabIndexedElement
+ * @mixins OO.ui.mixin.ButtonElement
+ * @mixins OO.ui.mixin.IconElement
+ * @mixins OO.ui.mixin.IndicatorElement
+ * @mixins OO.ui.mixin.LabelElement
+ * @mixins OO.ui.mixin.TitledElement
+ * @mixins OO.ui.mixin.FlaggedElement
+ * @mixins OO.ui.mixin.TabIndexedElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -11614,13 +12276,13 @@ OO.ui.ToggleButtonWidget = function OoUiToggleButtonWidget( config ) {
        OO.ui.ToggleButtonWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.ButtonElement.call( this, config );
-       OO.ui.IconElement.call( this, config );
-       OO.ui.IndicatorElement.call( this, config );
-       OO.ui.LabelElement.call( this, config );
-       OO.ui.TitledElement.call( this, $.extend( {}, config, { $titled: this.$button } ) );
-       OO.ui.FlaggedElement.call( this, config );
-       OO.ui.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$button } ) );
+       OO.ui.mixin.ButtonElement.call( this, config );
+       OO.ui.mixin.IconElement.call( this, config );
+       OO.ui.mixin.IndicatorElement.call( this, config );
+       OO.ui.mixin.LabelElement.call( this, config );
+       OO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$button } ) );
+       OO.ui.mixin.FlaggedElement.call( this, config );
+       OO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$button } ) );
 
        // Events
        this.connect( this, { click: 'onAction' } );
@@ -11635,13 +12297,13 @@ OO.ui.ToggleButtonWidget = function OoUiToggleButtonWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.ToggleButtonWidget, OO.ui.ToggleWidget );
-OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.ButtonElement );
-OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.IconElement );
-OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.IndicatorElement );
-OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.LabelElement );
-OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.TitledElement );
-OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.FlaggedElement );
-OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.TabIndexedElement );
+OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.ButtonElement );
+OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.IconElement );
+OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.IndicatorElement );
+OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.LabelElement );
+OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.TitledElement );
+OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.FlaggedElement );
+OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.mixin.TabIndexedElement );
 
 /* Methods */
 
@@ -11680,7 +12342,7 @@ OO.ui.ToggleButtonWidget.prototype.setButtonElement = function ( $button ) {
        if ( this.$button ) {
                this.$button.removeAttr( 'aria-pressed' );
        }
-       OO.ui.ButtonElement.prototype.setButtonElement.call( this, $button );
+       OO.ui.mixin.ButtonElement.prototype.setButtonElement.call( this, $button );
        this.$button.attr( 'aria-pressed', this.value.toString() );
 };
 
@@ -11689,6 +12351,9 @@ OO.ui.ToggleButtonWidget.prototype.setButtonElement = function ( $button ) {
  * OO.ui.MenuOptionWidget. The DropdownWidget takes care of opening and displaying the menu so that
  * users can interact with it.
  *
+ * If you want to use this within a HTML form, such as a OO.ui.FormLayout, use
+ * OO.ui.DropdownInputWidget instead.
+ *
  *     @example
  *     // Example: A DropdownWidget with a menu that contains three options
  *     var dropDown = new OO.ui.DropdownWidget( {
@@ -11719,11 +12384,11 @@ OO.ui.ToggleButtonWidget.prototype.setButtonElement = function ( $button ) {
  *
  * @class
  * @extends OO.ui.Widget
- * @mixins OO.ui.IconElement
- * @mixins OO.ui.IndicatorElement
- * @mixins OO.ui.LabelElement
- * @mixins OO.ui.TitledElement
- * @mixins OO.ui.TabIndexedElement
+ * @mixins OO.ui.mixin.IconElement
+ * @mixins OO.ui.mixin.IndicatorElement
+ * @mixins OO.ui.mixin.LabelElement
+ * @mixins OO.ui.mixin.TitledElement
+ * @mixins OO.ui.mixin.TabIndexedElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -11740,11 +12405,11 @@ OO.ui.DropdownWidget = function OoUiDropdownWidget( config ) {
        this.$handle = this.$( '<span>' );
 
        // Mixin constructors
-       OO.ui.IconElement.call( this, config );
-       OO.ui.IndicatorElement.call( this, config );
-       OO.ui.LabelElement.call( this, config );
-       OO.ui.TitledElement.call( this, $.extend( {}, config, { $titled: this.$label } ) );
-       OO.ui.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$handle } ) );
+       OO.ui.mixin.IconElement.call( this, config );
+       OO.ui.mixin.IndicatorElement.call( this, config );
+       OO.ui.mixin.LabelElement.call( this, config );
+       OO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$label } ) );
+       OO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$handle } ) );
 
        // Properties
        this.menu = new OO.ui.MenuSelectWidget( $.extend( { widget: this }, config.menu ) );
@@ -11768,11 +12433,11 @@ OO.ui.DropdownWidget = function OoUiDropdownWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.DropdownWidget, OO.ui.Widget );
-OO.mixinClass( OO.ui.DropdownWidget, OO.ui.IconElement );
-OO.mixinClass( OO.ui.DropdownWidget, OO.ui.IndicatorElement );
-OO.mixinClass( OO.ui.DropdownWidget, OO.ui.LabelElement );
-OO.mixinClass( OO.ui.DropdownWidget, OO.ui.TitledElement );
-OO.mixinClass( OO.ui.DropdownWidget, OO.ui.TabIndexedElement );
+OO.mixinClass( OO.ui.DropdownWidget, OO.ui.mixin.IconElement );
+OO.mixinClass( OO.ui.DropdownWidget, OO.ui.mixin.IndicatorElement );
+OO.mixinClass( OO.ui.DropdownWidget, OO.ui.mixin.LabelElement );
+OO.mixinClass( OO.ui.DropdownWidget, OO.ui.mixin.TitledElement );
+OO.mixinClass( OO.ui.DropdownWidget, OO.ui.mixin.TabIndexedElement );
 
 /* Methods */
 
@@ -11795,6 +12460,7 @@ OO.ui.DropdownWidget.prototype.onMenuSelect = function ( item ) {
        var selectedLabel;
 
        if ( !item ) {
+               this.setLabel( null );
                return;
        }
 
@@ -11828,14 +12494,400 @@ OO.ui.DropdownWidget.prototype.onClick = function ( e ) {
  * @param {jQuery.Event} e Key press event
  */
 OO.ui.DropdownWidget.prototype.onKeyPress = function ( e ) {
-       if ( !this.isDisabled() && ( e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER ) ) {
+       if ( !this.isDisabled() &&
+               ( ( e.which === OO.ui.Keys.SPACE && !this.menu.isVisible() ) || e.which === OO.ui.Keys.ENTER )
+       ) {
                this.menu.toggle();
                return false;
        }
 };
 
 /**
- * IconWidget is a generic widget for {@link OO.ui.IconElement icons}. In general, IconWidgets should be used with OO.ui.LabelWidget,
+ * SelectFileWidgets allow for selecting files, using the HTML5 File API. These
+ * widgets can be configured with {@link OO.ui.mixin.IconElement icons} and {@link
+ * OO.ui.mixin.IndicatorElement indicators}.
+ * Please see the [OOjs UI documentation on MediaWiki] [1] for more information and examples.
+ *
+ *     @example
+ *     // Example of a file select widget
+ *     var selectFile = new OO.ui.SelectFileWidget();
+ *     $( 'body' ).append( selectFile.$element );
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets
+ *
+ * @class
+ * @extends OO.ui.Widget
+ * @mixins OO.ui.mixin.IconElement
+ * @mixins OO.ui.mixin.IndicatorElement
+ * @mixins OO.ui.mixin.PendingElement
+ * @mixins OO.ui.mixin.LabelElement
+ * @mixins OO.ui.mixin.TabIndexedElement
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ * @cfg {string[]|null} [accept=null] MIME types to accept. null accepts all types.
+ * @cfg {string} [placeholder] Text to display when no file is selected.
+ * @cfg {string} [notsupported] Text to display when file support is missing in the browser.
+ * @cfg {boolean} [droppable=true] Whether to accept files by drag and drop.
+ */
+OO.ui.SelectFileWidget = function OoUiSelectFileWidget( config ) {
+       var dragHandler;
+
+       // Configuration initialization
+       config = $.extend( {
+               accept: null,
+               placeholder: OO.ui.msg( 'ooui-selectfile-placeholder' ),
+               notsupported: OO.ui.msg( 'ooui-selectfile-not-supported' ),
+               droppable: true
+       }, config );
+
+       // Parent constructor
+       OO.ui.SelectFileWidget.super.call( this, config );
+
+       // Properties (must be set before TabIndexedElement constructor call)
+       this.$handle = $( '<span>' );
+
+       // Mixin constructors
+       OO.ui.mixin.IconElement.call( this, config );
+       OO.ui.mixin.IndicatorElement.call( this, config );
+       OO.ui.mixin.PendingElement.call( this, config );
+       OO.ui.mixin.LabelElement.call( this, $.extend( config, { autoFitLabel: true } ) );
+       OO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$handle } ) );
+
+       // Properties
+       this.isSupported = this.constructor.static.isSupported();
+       this.currentFile = null;
+       if ( Array.isArray( config.accept ) ) {
+               this.accept = config.accept;
+       } else {
+               this.accept = null;
+       }
+       this.placeholder = config.placeholder;
+       this.notsupported = config.notsupported;
+       this.onFileSelectedHandler = this.onFileSelected.bind( this );
+
+       this.clearButton = new OO.ui.ButtonWidget( {
+               classes: [ 'oo-ui-selectFileWidget-clearButton' ],
+               framed: false,
+               icon: 'remove',
+               disabled: this.disabled
+       } );
+
+       // Events
+       this.$handle.on( {
+               keypress: this.onKeyPress.bind( this )
+       } );
+       this.clearButton.connect( this, {
+               click: 'onClearClick'
+       } );
+       if ( config.droppable ) {
+               dragHandler = this.onDragEnterOrOver.bind( this );
+               this.$handle.on( {
+                       dragenter: dragHandler,
+                       dragover: dragHandler,
+                       dragleave: this.onDragLeave.bind( this ),
+                       drop: this.onDrop.bind( this )
+               } );
+       }
+
+       // Initialization
+       this.addInput();
+       this.updateUI();
+       this.$label.addClass( 'oo-ui-selectFileWidget-label' );
+       this.$handle
+               .addClass( 'oo-ui-selectFileWidget-handle' )
+               .append( this.$icon, this.$label, this.clearButton.$element, this.$indicator );
+       this.$element
+               .addClass( 'oo-ui-selectFileWidget' )
+               .append( this.$handle );
+       if ( config.droppable ) {
+               this.$element.addClass( 'oo-ui-selectFileWidget-droppable' );
+       }
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.SelectFileWidget, OO.ui.Widget );
+OO.mixinClass( OO.ui.SelectFileWidget, OO.ui.mixin.IconElement );
+OO.mixinClass( OO.ui.SelectFileWidget, OO.ui.mixin.IndicatorElement );
+OO.mixinClass( OO.ui.SelectFileWidget, OO.ui.mixin.PendingElement );
+OO.mixinClass( OO.ui.SelectFileWidget, OO.ui.mixin.LabelElement );
+OO.mixinClass( OO.ui.SelectFileWidget, OO.ui.mixin.TabIndexedElement );
+
+/* Static properties */
+
+/**
+ * Check if this widget is supported
+ *
+ * @static
+ * @return {boolean}
+ */
+OO.ui.SelectFileWidget.static.isSupported = function () {
+       var $input;
+       if ( OO.ui.SelectFileWidget.static.isSupportedCache === null ) {
+               $input = $( '<input type="file">' );
+               OO.ui.SelectFileWidget.static.isSupportedCache = $input[0].files !== undefined;
+       }
+       return OO.ui.SelectFileWidget.static.isSupportedCache;
+};
+
+OO.ui.SelectFileWidget.static.isSupportedCache = null;
+
+/* Events */
+
+/**
+ * @event change
+ *
+ * A change event is emitted when the on/off state of the toggle changes.
+ *
+ * @param {File|null} value New value
+ */
+
+/* Methods */
+
+/**
+ * Get the current value of the field
+ *
+ * @return {File|null}
+ */
+OO.ui.SelectFileWidget.prototype.getValue = function () {
+       return this.currentFile;
+};
+
+/**
+ * Set the current value of the field
+ *
+ * @param {File|null} file File to select
+ */
+OO.ui.SelectFileWidget.prototype.setValue = function ( file ) {
+       if ( this.currentFile !== file ) {
+               this.currentFile = file;
+               this.updateUI();
+               this.emit( 'change', this.currentFile );
+       }
+};
+
+/**
+ * Update the user interface when a file is selected or unselected
+ *
+ * @protected
+ */
+OO.ui.SelectFileWidget.prototype.updateUI = function () {
+       if ( !this.isSupported ) {
+               this.$element.addClass( 'oo-ui-selectFileWidget-notsupported' );
+               this.$element.removeClass( 'oo-ui-selectFileWidget-empty' );
+               this.setLabel( this.notsupported );
+       } else if ( this.currentFile ) {
+               this.$element.removeClass( 'oo-ui-selectFileWidget-empty' );
+               this.setLabel( this.currentFile.name +
+                       ( this.currentFile.type !== '' ? OO.ui.msg( 'ooui-semicolon-separator' ) + this.currentFile.type : '' )
+               );
+       } else {
+               this.$element.addClass( 'oo-ui-selectFileWidget-empty' );
+               this.setLabel( this.placeholder );
+       }
+
+       if ( this.$input ) {
+               this.$input.attr( 'title', this.getLabel() );
+       }
+};
+
+/**
+ * Add the input to the handle
+ *
+ * @private
+ */
+OO.ui.SelectFileWidget.prototype.addInput = function () {
+       if ( this.$input ) {
+               this.$input.remove();
+       }
+
+       if ( !this.isSupported ) {
+               this.$input = null;
+               return;
+       }
+
+       this.$input = $( '<input type="file">' );
+       this.$input.on( 'change', this.onFileSelectedHandler );
+       this.$input.attr( {
+               tabindex: -1,
+               title: this.getLabel()
+       } );
+       if ( this.accept ) {
+               this.$input.attr( 'accept', this.accept.join( ', ' ) );
+       }
+       this.$handle.append( this.$input );
+};
+
+/**
+ * Determine if we should accept this file
+ *
+ * @private
+ * @param {File} file
+ * @return {boolean}
+ */
+OO.ui.SelectFileWidget.prototype.isFileAcceptable = function ( file ) {
+       var i, mime, mimeTest;
+
+       if ( !this.accept || file.type === '' ) {
+               return true;
+       }
+
+       mime = file.type;
+       for ( i = 0; i < this.accept.length; i++ ) {
+               mimeTest = this.accept[i];
+               if ( mimeTest === mime ) {
+                       return true;
+               } else if ( mimeTest.substr( -2 ) === '/*' ) {
+                       mimeTest = mimeTest.substr( 0, mimeTest.length - 1 );
+                       if ( mime.substr( 0, mimeTest.length ) === mimeTest ) {
+                               return true;
+                       }
+               }
+       }
+
+       return false;
+};
+
+/**
+ * Handle file selection from the input
+ *
+ * @private
+ * @param {jQuery.Event} e
+ */
+OO.ui.SelectFileWidget.prototype.onFileSelected = function ( e ) {
+       var file = null;
+
+       if ( e.target.files && e.target.files[0] ) {
+               file = e.target.files[0];
+               if ( !this.isFileAcceptable( file ) ) {
+                       file = null;
+               }
+       }
+
+       this.setValue( file );
+       this.addInput();
+};
+
+/**
+ * Handle clear button click events.
+ *
+ * @private
+ */
+OO.ui.SelectFileWidget.prototype.onClearClick = function () {
+       this.setValue( null );
+       return false;
+};
+
+/**
+ * Handle key press events.
+ *
+ * @private
+ * @param {jQuery.Event} e Key press event
+ */
+OO.ui.SelectFileWidget.prototype.onKeyPress = function ( e ) {
+       if ( this.isSupported && !this.isDisabled() && this.$input &&
+               ( e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )
+       ) {
+               this.$input.click();
+               return false;
+       }
+};
+
+/**
+ * Handle drag enter and over events
+ *
+ * @private
+ * @param {jQuery.Event} e Drag event
+ */
+OO.ui.SelectFileWidget.prototype.onDragEnterOrOver = function ( e ) {
+       var file = null,
+               dt = e.originalEvent.dataTransfer;
+
+       e.preventDefault();
+       e.stopPropagation();
+
+       if ( this.isDisabled() || !this.isSupported ) {
+               this.$element.removeClass( 'oo-ui-selectFileWidget-canDrop' );
+               dt.dropEffect = 'none';
+               return false;
+       }
+
+       if ( dt && dt.files && dt.files[0] ) {
+               file = dt.files[0];
+               if ( !this.isFileAcceptable( file ) ) {
+                       file = null;
+               }
+       } else if ( dt && dt.types && $.inArray( 'Files', dt.types ) ) {
+               // We know we have files so set 'file' to something truthy, we just
+               // can't know any details about them.
+               // * https://bugzilla.mozilla.org/show_bug.cgi?id=640534
+               file = 'Files exist, but details are unknown';
+       }
+       if ( file ) {
+               this.$element.addClass( 'oo-ui-selectFileWidget-canDrop' );
+       } else {
+               this.$element.removeClass( 'oo-ui-selectFileWidget-canDrop' );
+               dt.dropEffect = 'none';
+       }
+
+       return false;
+};
+
+/**
+ * Handle drag leave events
+ *
+ * @private
+ * @param {jQuery.Event} e Drag event
+ */
+OO.ui.SelectFileWidget.prototype.onDragLeave = function () {
+       this.$element.removeClass( 'oo-ui-selectFileWidget-canDrop' );
+};
+
+/**
+ * Handle drop events
+ *
+ * @private
+ * @param {jQuery.Event} e Drop event
+ */
+OO.ui.SelectFileWidget.prototype.onDrop = function ( e ) {
+       var file = null,
+               dt = e.originalEvent.dataTransfer;
+
+       e.preventDefault();
+       e.stopPropagation();
+       this.$element.removeClass( 'oo-ui-selectFileWidget-canDrop' );
+
+       if ( this.isDisabled() || !this.isSupported ) {
+               return false;
+       }
+
+       if ( dt && dt.files && dt.files[0] ) {
+               file = dt.files[0];
+               if ( !this.isFileAcceptable( file ) ) {
+                       file = null;
+               }
+       }
+       if ( file ) {
+               this.setValue( file );
+       }
+
+       return false;
+};
+
+/**
+ * @inheritdoc
+ */
+OO.ui.SelectFileWidget.prototype.setDisabled = function ( state ) {
+       OO.ui.SelectFileWidget.super.prototype.setDisabled.call( this, state );
+       if ( this.clearButton ) {
+               this.clearButton.setDisabled( state );
+       }
+       return this;
+};
+
+/**
+ * IconWidget is a generic widget for {@link OO.ui.mixin.IconElement icons}. In general, IconWidgets should be used with OO.ui.LabelWidget,
  * which creates a label that identifies the icon’s function. See the [OOjs UI documentation on MediaWiki] [1]
  * for a list of icons included in the library.
  *
@@ -11855,9 +12907,9 @@ OO.ui.DropdownWidget.prototype.onKeyPress = function ( e ) {
  *
  * @class
  * @extends OO.ui.Widget
- * @mixins OO.ui.IconElement
- * @mixins OO.ui.TitledElement
- * @mixins OO.ui.FlaggedElement
+ * @mixins OO.ui.mixin.IconElement
+ * @mixins OO.ui.mixin.TitledElement
+ * @mixins OO.ui.mixin.FlaggedElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -11870,9 +12922,9 @@ OO.ui.IconWidget = function OoUiIconWidget( config ) {
        OO.ui.IconWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.IconElement.call( this, $.extend( {}, config, { $icon: this.$element } ) );
-       OO.ui.TitledElement.call( this, $.extend( {}, config, { $titled: this.$element } ) );
-       OO.ui.FlaggedElement.call( this, $.extend( {}, config, { $flagged: this.$element } ) );
+       OO.ui.mixin.IconElement.call( this, $.extend( {}, config, { $icon: this.$element } ) );
+       OO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$element } ) );
+       OO.ui.mixin.FlaggedElement.call( this, $.extend( {}, config, { $flagged: this.$element } ) );
 
        // Initialization
        this.$element.addClass( 'oo-ui-iconWidget' );
@@ -11881,9 +12933,9 @@ OO.ui.IconWidget = function OoUiIconWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.IconWidget, OO.ui.Widget );
-OO.mixinClass( OO.ui.IconWidget, OO.ui.IconElement );
-OO.mixinClass( OO.ui.IconWidget, OO.ui.TitledElement );
-OO.mixinClass( OO.ui.IconWidget, OO.ui.FlaggedElement );
+OO.mixinClass( OO.ui.IconWidget, OO.ui.mixin.IconElement );
+OO.mixinClass( OO.ui.IconWidget, OO.ui.mixin.TitledElement );
+OO.mixinClass( OO.ui.IconWidget, OO.ui.mixin.FlaggedElement );
 
 /* Static Properties */
 
@@ -11911,8 +12963,8 @@ OO.ui.IconWidget.static.tagName = 'span';
  *
  * @class
  * @extends OO.ui.Widget
- * @mixins OO.ui.IndicatorElement
- * @mixins OO.ui.TitledElement
+ * @mixins OO.ui.mixin.IndicatorElement
+ * @mixins OO.ui.mixin.TitledElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -11925,8 +12977,8 @@ OO.ui.IndicatorWidget = function OoUiIndicatorWidget( config ) {
        OO.ui.IndicatorWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.IndicatorElement.call( this, $.extend( {}, config, { $indicator: this.$element } ) );
-       OO.ui.TitledElement.call( this, $.extend( {}, config, { $titled: this.$element } ) );
+       OO.ui.mixin.IndicatorElement.call( this, $.extend( {}, config, { $indicator: this.$element } ) );
+       OO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$element } ) );
 
        // Initialization
        this.$element.addClass( 'oo-ui-indicatorWidget' );
@@ -11935,8 +12987,8 @@ OO.ui.IndicatorWidget = function OoUiIndicatorWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.IndicatorWidget, OO.ui.Widget );
-OO.mixinClass( OO.ui.IndicatorWidget, OO.ui.IndicatorElement );
-OO.mixinClass( OO.ui.IndicatorWidget, OO.ui.TitledElement );
+OO.mixinClass( OO.ui.IndicatorWidget, OO.ui.mixin.IndicatorElement );
+OO.mixinClass( OO.ui.IndicatorWidget, OO.ui.mixin.TitledElement );
 
 /* Static Properties */
 
@@ -11953,8 +13005,8 @@ OO.ui.IndicatorWidget.static.tagName = 'span';
  * @abstract
  * @class
  * @extends OO.ui.Widget
- * @mixins OO.ui.FlaggedElement
- * @mixins OO.ui.TabIndexedElement
+ * @mixins OO.ui.mixin.FlaggedElement
+ * @mixins OO.ui.mixin.TabIndexedElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -11976,8 +13028,8 @@ OO.ui.InputWidget = function OoUiInputWidget( config ) {
        this.inputFilter = config.inputFilter;
 
        // Mixin constructors
-       OO.ui.FlaggedElement.call( this, config );
-       OO.ui.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$input } ) );
+       OO.ui.mixin.FlaggedElement.call( this, config );
+       OO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$input } ) );
 
        // Events
        this.$input.on( 'keydown mouseup cut paste change input select', this.onEdit.bind( this ) );
@@ -11993,8 +13045,12 @@ OO.ui.InputWidget = function OoUiInputWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.InputWidget, OO.ui.Widget );
-OO.mixinClass( OO.ui.InputWidget, OO.ui.FlaggedElement );
-OO.mixinClass( OO.ui.InputWidget, OO.ui.TabIndexedElement );
+OO.mixinClass( OO.ui.InputWidget, OO.ui.mixin.FlaggedElement );
+OO.mixinClass( OO.ui.InputWidget, OO.ui.mixin.TabIndexedElement );
+
+/* Static Properties */
+
+OO.ui.InputWidget.static.supportsSimpleLabel = true;
 
 /* Events */
 
@@ -12014,7 +13070,7 @@ OO.mixinClass( OO.ui.InputWidget, OO.ui.TabIndexedElement );
  * Subclasses of OO.ui.InputWidget use the `config` parameter to produce different elements in
  * different circumstances. The element must have a `value` property (like form elements).
  *
- * @private
+ * @protected
  * @param {Object} config Configuration options
  * @return {jQuery} Input element
  */
@@ -12170,11 +13226,11 @@ OO.ui.InputWidget.prototype.blur = function () {
  *
  * @class
  * @extends OO.ui.InputWidget
- * @mixins OO.ui.ButtonElement
- * @mixins OO.ui.IconElement
- * @mixins OO.ui.IndicatorElement
- * @mixins OO.ui.LabelElement
- * @mixins OO.ui.TitledElement
+ * @mixins OO.ui.mixin.ButtonElement
+ * @mixins OO.ui.mixin.IconElement
+ * @mixins OO.ui.mixin.IndicatorElement
+ * @mixins OO.ui.mixin.LabelElement
+ * @mixins OO.ui.mixin.TitledElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -12195,11 +13251,11 @@ OO.ui.ButtonInputWidget = function OoUiButtonInputWidget( config ) {
        OO.ui.ButtonInputWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.ButtonElement.call( this, $.extend( {}, config, { $button: this.$input } ) );
-       OO.ui.IconElement.call( this, config );
-       OO.ui.IndicatorElement.call( this, config );
-       OO.ui.LabelElement.call( this, config );
-       OO.ui.TitledElement.call( this, $.extend( {}, config, { $titled: this.$input } ) );
+       OO.ui.mixin.ButtonElement.call( this, $.extend( {}, config, { $button: this.$input } ) );
+       OO.ui.mixin.IconElement.call( this, config );
+       OO.ui.mixin.IndicatorElement.call( this, config );
+       OO.ui.mixin.LabelElement.call( this, config );
+       OO.ui.mixin.TitledElement.call( this, $.extend( {}, config, { $titled: this.$input } ) );
 
        // Initialization
        if ( !config.useInputTag ) {
@@ -12211,21 +13267,23 @@ OO.ui.ButtonInputWidget = function OoUiButtonInputWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.ButtonInputWidget, OO.ui.InputWidget );
-OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.ButtonElement );
-OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.IconElement );
-OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.IndicatorElement );
-OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.LabelElement );
-OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.TitledElement );
+OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.mixin.ButtonElement );
+OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.mixin.IconElement );
+OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.mixin.IndicatorElement );
+OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.mixin.LabelElement );
+OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.mixin.TitledElement );
 
 /* Methods */
 
 /**
  * @inheritdoc
- * @private
+ * @protected
  */
 OO.ui.ButtonInputWidget.prototype.getInputElement = function ( config ) {
-       var html = '<' + ( config.useInputTag ? 'input' : 'button' ) + ' type="' + config.type + '">';
-       return $( html );
+       var type = [ 'button', 'submit', 'reset' ].indexOf( config.type ) !== -1 ?
+               config.type :
+               'button';
+       return $( '<' + ( config.useInputTag ? 'input' : 'button' ) + ' type="' + type + '">' );
 };
 
 /**
@@ -12238,7 +13296,7 @@ OO.ui.ButtonInputWidget.prototype.getInputElement = function ( config ) {
  * @chainable
  */
 OO.ui.ButtonInputWidget.prototype.setLabel = function ( label ) {
-       OO.ui.LabelElement.prototype.setLabel.call( this, label );
+       OO.ui.mixin.LabelElement.prototype.setLabel.call( this, label );
 
        if ( this.useInputTag ) {
                if ( typeof label === 'function' ) {
@@ -12333,7 +13391,7 @@ OO.inheritClass( OO.ui.CheckboxInputWidget, OO.ui.InputWidget );
 
 /**
  * @inheritdoc
- * @private
+ * @protected
  */
 OO.ui.CheckboxInputWidget.prototype.getInputElement = function () {
        return $( '<input type="checkbox" />' );
@@ -12389,17 +13447,22 @@ OO.ui.CheckboxInputWidget.prototype.isSelected = function () {
  * of a hidden HTML `input` tag. Please see the [OOjs UI documentation on MediaWiki][1] for
  * more information about input widgets.
  *
+ * A DropdownInputWidget always has a value (one of the options is always selected), unless there
+ * are no options. If no `value` configuration option is provided, the first option is selected.
+ * If you need a state representing no value (no option being selected), use a DropdownWidget.
+ *
+ * This and OO.ui.RadioSelectInputWidget support the same configuration options.
+ *
  *     @example
  *     // Example: A DropdownInputWidget with three options
- *     var dropDown = new OO.ui.DropdownInputWidget( {
- *         label: 'Dropdown menu: Select a menu option',
+ *     var dropdownInput = new OO.ui.DropdownInputWidget( {
  *         options: [
- *             { data: 'a', label: 'First' } ,
- *             { data: 'b', label: 'Second'} ,
+ *             { data: 'a', label: 'First' },
+ *             { data: 'b', label: 'Second'},
  *             { data: 'c', label: 'Third' }
  *         ]
  *     } );
- *     $( 'body' ).append( dropDown.$element );
+ *     $( 'body' ).append( dropdownInput.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Inputs
  *
@@ -12438,7 +13501,7 @@ OO.inheritClass( OO.ui.DropdownInputWidget, OO.ui.InputWidget );
 
 /**
  * @inheritdoc
- * @private
+ * @protected
  */
 OO.ui.DropdownInputWidget.prototype.getInputElement = function () {
        return $( '<input type="hidden">' );
@@ -12582,7 +13645,7 @@ OO.inheritClass( OO.ui.RadioInputWidget, OO.ui.InputWidget );
 
 /**
  * @inheritdoc
- * @private
+ * @protected
  */
 OO.ui.RadioInputWidget.prototype.getInputElement = function () {
        return $( '<input type="radio" />' );
@@ -12616,10 +13679,138 @@ OO.ui.RadioInputWidget.prototype.isSelected = function () {
        return this.$input.prop( 'checked' );
 };
 
+/**
+ * RadioSelectInputWidget is a {@link OO.ui.RadioSelectWidget RadioSelectWidget} intended to be used
+ * within a HTML form, such as a OO.ui.FormLayout. The selected value is synchronized with the value
+ * of a hidden HTML `input` tag. Please see the [OOjs UI documentation on MediaWiki][1] for
+ * more information about input widgets.
+ *
+ * This and OO.ui.DropdownInputWidget support the same configuration options.
+ *
+ *     @example
+ *     // Example: A RadioSelectInputWidget with three options
+ *     var radioSelectInput = new OO.ui.RadioSelectInputWidget( {
+ *         options: [
+ *             { data: 'a', label: 'First' },
+ *             { data: 'b', label: 'Second'},
+ *             { data: 'c', label: 'Third' }
+ *         ]
+ *     } );
+ *     $( 'body' ).append( radioSelectInput.$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.RadioSelectInputWidget = function OoUiRadioSelectInputWidget( config ) {
+       // Configuration initialization
+       config = config || {};
+
+       // Properties (must be done before parent constructor which calls #setDisabled)
+       this.radioSelectWidget = new OO.ui.RadioSelectWidget();
+
+       // Parent constructor
+       OO.ui.RadioSelectInputWidget.super.call( this, config );
+
+       // Events
+       this.radioSelectWidget.connect( this, { select: 'onMenuSelect' } );
+
+       // Initialization
+       this.setOptions( config.options || [] );
+       this.$element
+               .addClass( 'oo-ui-radioSelectInputWidget' )
+               .empty()
+               .append( this.radioSelectWidget.$element );
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.RadioSelectInputWidget, OO.ui.InputWidget );
+
+/* Static Properties */
+
+OO.ui.RadioSelectInputWidget.static.supportsSimpleLabel = false;
+
+/* Methods */
+
+/**
+ * @inheritdoc
+ * @protected
+ */
+OO.ui.RadioSelectInputWidget.prototype.getInputElement = function () {
+       return $( '<input type="hidden">' );
+};
+
+/**
+ * Handles menu select events.
+ *
+ * @private
+ * @param {OO.ui.RadioOptionWidget} item Selected menu item
+ */
+OO.ui.RadioSelectInputWidget.prototype.onMenuSelect = function ( item ) {
+       this.setValue( item.getData() );
+};
+
+/**
+ * @inheritdoc
+ */
+OO.ui.RadioSelectInputWidget.prototype.setValue = function ( value ) {
+       this.radioSelectWidget.selectItemByData( value );
+       OO.ui.RadioSelectInputWidget.super.prototype.setValue.call( this, value );
+       return this;
+};
+
+/**
+ * @inheritdoc
+ */
+OO.ui.RadioSelectInputWidget.prototype.setDisabled = function ( state ) {
+       this.radioSelectWidget.setDisabled( state );
+       OO.ui.RadioSelectInputWidget.super.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.RadioSelectInputWidget.prototype.setOptions = function ( options ) {
+       var value = this.getValue();
+
+       // Rebuild the radioSelect menu
+       this.radioSelectWidget
+               .clearItems()
+               .addItems( options.map( function ( opt ) {
+                       return new OO.ui.RadioOptionWidget( {
+                               data: opt.data,
+                               label: opt.label !== undefined ? opt.label : opt.data
+                       } );
+               } ) );
+
+       // Restore the previous value, or reset to something sensible
+       if ( this.radioSelectWidget.getItemFromData( value ) ) {
+               // Previous value is still available, ensure consistency with the radioSelect
+               this.setValue( value );
+       } else {
+               // No longer valid, reset
+               if ( options.length ) {
+                       this.setValue( options[ 0 ].data );
+               }
+       }
+
+       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
- * with {@link OO.ui.IconElement icons}, {@link OO.ui.IndicatorElement indicators}, an optional
+ * with {@link OO.ui.mixin.IconElement icons}, {@link OO.ui.mixin.IndicatorElement indicators}, an optional
  * validation-pattern (used to determine if an input value is valid or not) and an input filter,
  * which modifies incoming values rather than validating them.
  * Please see the [OOjs UI documentation on MediaWiki] [1] for more information and examples.
@@ -12637,14 +13828,15 @@ OO.ui.RadioInputWidget.prototype.isSelected = function () {
  *
  * @class
  * @extends OO.ui.InputWidget
- * @mixins OO.ui.IconElement
- * @mixins OO.ui.IndicatorElement
- * @mixins OO.ui.PendingElement
- * @mixins OO.ui.LabelElement
+ * @mixins OO.ui.mixin.IconElement
+ * @mixins OO.ui.mixin.IndicatorElement
+ * @mixins OO.ui.mixin.PendingElement
+ * @mixins OO.ui.mixin.LabelElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {string} [type='text'] The value of the HTML `type` attribute
+ * @cfg {string} [type='text'] The value of the HTML `type` attribute: 'text', 'password', 'search',
+ *  'email' or 'url'. Ignored if `multiline` is true.
  * @cfg {string} [placeholder] Placeholder text
  * @cfg {boolean} [autofocus=false] Use an HTML `autofocus` attribute to
  *  instruct the browser to focus this widget.
@@ -12675,10 +13867,10 @@ OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {
        OO.ui.TextInputWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.IconElement.call( this, config );
-       OO.ui.IndicatorElement.call( this, config );
-       OO.ui.PendingElement.call( this, config );
-       OO.ui.LabelElement.call( this, config );
+       OO.ui.mixin.IconElement.call( this, config );
+       OO.ui.mixin.IndicatorElement.call( this, config );
+       OO.ui.mixin.PendingElement.call( this, config );
+       OO.ui.mixin.LabelElement.call( this, config );
 
        // Properties
        this.readOnly = false;
@@ -12702,7 +13894,7 @@ OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {
        // Events
        this.$input.on( {
                keypress: this.onKeyPress.bind( this ),
-               blur: this.setValidityFlag.bind( this )
+               blur: this.onBlur.bind( this )
        } );
        this.$input.one( {
                focus: this.onElementAttach.bind( this )
@@ -12728,6 +13920,7 @@ OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {
        }
        if ( config.required ) {
                this.$input.attr( 'required', 'required' );
+               this.$input.attr( 'aria-required', 'true' );
        }
        if ( this.label || config.autosize ) {
                this.installParentChangeDetector();
@@ -12737,10 +13930,10 @@ OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.TextInputWidget, OO.ui.InputWidget );
-OO.mixinClass( OO.ui.TextInputWidget, OO.ui.IconElement );
-OO.mixinClass( OO.ui.TextInputWidget, OO.ui.IndicatorElement );
-OO.mixinClass( OO.ui.TextInputWidget, OO.ui.PendingElement );
-OO.mixinClass( OO.ui.TextInputWidget, OO.ui.LabelElement );
+OO.mixinClass( OO.ui.TextInputWidget, OO.ui.mixin.IconElement );
+OO.mixinClass( OO.ui.TextInputWidget, OO.ui.mixin.IndicatorElement );
+OO.mixinClass( OO.ui.TextInputWidget, OO.ui.mixin.PendingElement );
+OO.mixinClass( OO.ui.TextInputWidget, OO.ui.mixin.LabelElement );
 
 /* Static properties */
 
@@ -12802,6 +13995,16 @@ OO.ui.TextInputWidget.prototype.onKeyPress = function ( e ) {
        }
 };
 
+/**
+ * Handle blur events.
+ *
+ * @private
+ * @param {jQuery.Event} e Blur event
+ */
+OO.ui.TextInputWidget.prototype.onBlur = function () {
+       this.setValidityFlag();
+};
+
 /**
  * Handle element attach events.
  *
@@ -12971,10 +14174,13 @@ OO.ui.TextInputWidget.prototype.adjustSize = function () {
 
 /**
  * @inheritdoc
- * @private
+ * @protected
  */
 OO.ui.TextInputWidget.prototype.getInputElement = function ( config ) {
-       return config.multiline ? $( '<textarea>' ) : $( '<input type="' + config.type + '" />' );
+       var type = [ 'text', 'password', 'search', 'email', 'url' ].indexOf( config.type ) !== -1 ?
+               config.type :
+               'text';
+       return config.multiline ? $( '<textarea>' ) : $( '<input type="' + type + '" />' );
 };
 
 /**
@@ -13025,17 +14231,25 @@ OO.ui.TextInputWidget.prototype.setValidation = function ( validate ) {
 
 /**
  * Sets the 'invalid' flag appropriately.
+ *
+ * @param {boolean} [isValid] Optionally override validation result
  */
-OO.ui.TextInputWidget.prototype.setValidityFlag = function () {
-       var widget = this;
-       this.isValid().done( function ( valid ) {
-               if ( !valid ) {
-                       widget.$input.attr( 'aria-invalid', 'true' );
-               } else {
-                       widget.$input.removeAttr( 'aria-invalid' );
-               }
-               widget.setFlags( { invalid: !valid } );
-       } );
+OO.ui.TextInputWidget.prototype.setValidityFlag = function ( isValid ) {
+       var widget = this,
+               setFlag = function ( valid ) {
+                       if ( !valid ) {
+                               widget.$input.attr( 'aria-invalid', 'true' );
+                       } else {
+                               widget.$input.removeAttr( 'aria-invalid' );
+                       }
+                       widget.setFlags( { invalid: !valid } );
+               };
+
+       if ( isValid !== undefined ) {
+               setFlag( isValid );
+       } else {
+               this.isValid().done( setFlag );
+       }
 };
 
 /**
@@ -13181,7 +14395,7 @@ OO.ui.TextInputWidget.prototype.positionLabel = function () {
  *
  * @class
  * @extends OO.ui.Widget
- * @mixins OO.ui.TabIndexedElement
+ * @mixins OO.ui.mixin.TabIndexedElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -13202,7 +14416,7 @@ OO.ui.ComboBoxWidget = function OoUiComboBoxWidget( config ) {
        this.$indicator = this.$( '<span>' );
 
        // Mixin constructors
-       OO.ui.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$indicator } ) );
+       OO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$indicator } ) );
 
        // Properties
        this.$overlay = config.$overlay || this.$element;
@@ -13251,7 +14465,7 @@ OO.ui.ComboBoxWidget = function OoUiComboBoxWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.ComboBoxWidget, OO.ui.Widget );
-OO.mixinClass( OO.ui.ComboBoxWidget, OO.ui.TabIndexedElement );
+OO.mixinClass( OO.ui.ComboBoxWidget, OO.ui.mixin.TabIndexedElement );
 
 /* Methods */
 
@@ -13396,7 +14610,7 @@ OO.ui.ComboBoxWidget.prototype.setDisabled = function ( disabled ) {
  *
  * @class
  * @extends OO.ui.Widget
- * @mixins OO.ui.LabelElement
+ * @mixins OO.ui.mixin.LabelElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -13411,8 +14625,8 @@ OO.ui.LabelWidget = function OoUiLabelWidget( config ) {
        OO.ui.LabelWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.LabelElement.call( this, $.extend( {}, config, { $label: this.$element } ) );
-       OO.ui.TitledElement.call( this, config );
+       OO.ui.mixin.LabelElement.call( this, $.extend( {}, config, { $label: this.$element } ) );
+       OO.ui.mixin.TitledElement.call( this, config );
 
        // Properties
        this.input = config.input;
@@ -13429,8 +14643,8 @@ OO.ui.LabelWidget = function OoUiLabelWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.LabelWidget, OO.ui.Widget );
-OO.mixinClass( OO.ui.LabelWidget, OO.ui.LabelElement );
-OO.mixinClass( OO.ui.LabelWidget, OO.ui.TitledElement );
+OO.mixinClass( OO.ui.LabelWidget, OO.ui.mixin.LabelElement );
+OO.mixinClass( OO.ui.LabelWidget, OO.ui.mixin.TitledElement );
 
 /* Static Properties */
 
@@ -13459,8 +14673,8 @@ OO.ui.LabelWidget.prototype.onClick = function () {
  *
  * @class
  * @extends OO.ui.Widget
- * @mixins OO.ui.LabelElement
- * @mixins OO.ui.FlaggedElement
+ * @mixins OO.ui.mixin.LabelElement
+ * @mixins OO.ui.mixin.FlaggedElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -13473,9 +14687,9 @@ OO.ui.OptionWidget = function OoUiOptionWidget( config ) {
        OO.ui.OptionWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.ItemWidget.call( this );
-       OO.ui.LabelElement.call( this, config );
-       OO.ui.FlaggedElement.call( this, config );
+       OO.ui.mixin.ItemWidget.call( this );
+       OO.ui.mixin.LabelElement.call( this, config );
+       OO.ui.mixin.FlaggedElement.call( this, config );
 
        // Properties
        this.selected = false;
@@ -13493,9 +14707,9 @@ OO.ui.OptionWidget = function OoUiOptionWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.OptionWidget, OO.ui.Widget );
-OO.mixinClass( OO.ui.OptionWidget, OO.ui.ItemWidget );
-OO.mixinClass( OO.ui.OptionWidget, OO.ui.LabelElement );
-OO.mixinClass( OO.ui.OptionWidget, OO.ui.FlaggedElement );
+OO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.ItemWidget );
+OO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.LabelElement );
+OO.mixinClass( OO.ui.OptionWidget, OO.ui.mixin.FlaggedElement );
 
 /* Static Properties */
 
@@ -13629,7 +14843,7 @@ OO.ui.OptionWidget.prototype.setPressed = function ( state ) {
 
 /**
  * DecoratedOptionWidgets are {@link OO.ui.OptionWidget options} that can be configured
- * with an {@link OO.ui.IconElement icon} and/or {@link OO.ui.IndicatorElement indicator}.
+ * with an {@link OO.ui.mixin.IconElement icon} and/or {@link OO.ui.mixin.IndicatorElement indicator}.
  * This class is used with OO.ui.SelectWidget to create a selection of mutually exclusive
  * options. For more information about options and selects, please see the
  * [OOjs UI documentation on MediaWiki][1].
@@ -13656,8 +14870,8 @@ OO.ui.OptionWidget.prototype.setPressed = function ( state ) {
  *
  * @class
  * @extends OO.ui.OptionWidget
- * @mixins OO.ui.IconElement
- * @mixins OO.ui.IndicatorElement
+ * @mixins OO.ui.mixin.IconElement
+ * @mixins OO.ui.mixin.IndicatorElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -13667,8 +14881,8 @@ OO.ui.DecoratedOptionWidget = function OoUiDecoratedOptionWidget( config ) {
        OO.ui.DecoratedOptionWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.IconElement.call( this, config );
-       OO.ui.IndicatorElement.call( this, config );
+       OO.ui.mixin.IconElement.call( this, config );
+       OO.ui.mixin.IndicatorElement.call( this, config );
 
        // Initialization
        this.$element
@@ -13680,11 +14894,11 @@ OO.ui.DecoratedOptionWidget = function OoUiDecoratedOptionWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.DecoratedOptionWidget, OO.ui.OptionWidget );
-OO.mixinClass( OO.ui.OptionWidget, OO.ui.IconElement );
-OO.mixinClass( OO.ui.OptionWidget, OO.ui.IndicatorElement );
+OO.mixinClass( OO.ui.DecoratedOptionWidget, OO.ui.mixin.IconElement );
+OO.mixinClass( OO.ui.DecoratedOptionWidget, OO.ui.mixin.IndicatorElement );
 
 /**
- * ButtonOptionWidget is a special type of {@link OO.ui.ButtonElement button element} that
+ * ButtonOptionWidget is a special type of {@link OO.ui.mixin.ButtonElement button element} that
  * can be selected and configured with data. The class is
  * used with OO.ui.ButtonSelectWidget to create a selection of button options. Please see the
  * [OOjs UI documentation on MediaWiki] [1] for more information.
@@ -13693,8 +14907,8 @@ OO.mixinClass( OO.ui.OptionWidget, OO.ui.IndicatorElement );
  *
  * @class
  * @extends OO.ui.DecoratedOptionWidget
- * @mixins OO.ui.ButtonElement
- * @mixins OO.ui.TabIndexedElement
+ * @mixins OO.ui.mixin.ButtonElement
+ * @mixins OO.ui.mixin.TabIndexedElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -13707,8 +14921,8 @@ OO.ui.ButtonOptionWidget = function OoUiButtonOptionWidget( config ) {
        OO.ui.ButtonOptionWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.ButtonElement.call( this, config );
-       OO.ui.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$button } ) );
+       OO.ui.mixin.ButtonElement.call( this, config );
+       OO.ui.mixin.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$button } ) );
 
        // Initialization
        this.$element.addClass( 'oo-ui-buttonOptionWidget' );
@@ -13719,8 +14933,8 @@ OO.ui.ButtonOptionWidget = function OoUiButtonOptionWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.ButtonOptionWidget, OO.ui.DecoratedOptionWidget );
-OO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.ButtonElement );
-OO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.TabIndexedElement );
+OO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.mixin.ButtonElement );
+OO.mixinClass( OO.ui.ButtonOptionWidget, OO.ui.mixin.TabIndexedElement );
 
 /* Static Properties */
 
@@ -13767,6 +14981,9 @@ OO.ui.RadioOptionWidget = function OoUiRadioOptionWidget( config ) {
        // Parent constructor
        OO.ui.RadioOptionWidget.super.call( this, config );
 
+       // Events
+       this.radio.$input.on( 'focus', this.onInputFocus.bind( this ) );
+
        // Initialization
        this.$element
                .addClass( 'oo-ui-radioOptionWidget' )
@@ -13789,6 +15006,15 @@ OO.ui.RadioOptionWidget.static.tagName = 'label';
 
 /* Methods */
 
+/**
+ * @param {jQuery.Event} e Focus event
+ * @private
+ */
+OO.ui.RadioOptionWidget.prototype.onInputFocus = function () {
+       this.radio.$input.blur();
+       this.$element.parent().focus();
+};
+
 /**
  * @inheritdoc
  */
@@ -14085,7 +15311,7 @@ OO.ui.TabOptionWidget.static.highlightable = false;
  *
  * @class
  * @extends OO.ui.Widget
- * @mixins OO.ui.LabelElement
+ * @mixins OO.ui.mixin.LabelElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -14124,8 +15350,8 @@ OO.ui.PopupWidget = function OoUiPopupWidget( config ) {
        this.$body = $( '<div>' );
 
        // Mixin constructors
-       OO.ui.LabelElement.call( this, config );
-       OO.ui.ClippableElement.call( this, $.extend( {}, config, { $clippable: this.$body } ) );
+       OO.ui.mixin.LabelElement.call( this, config );
+       OO.ui.mixin.ClippableElement.call( this, $.extend( {}, config, { $clippable: this.$body } ) );
 
        // Properties
        this.$popup = $( '<div>' );
@@ -14140,12 +15366,7 @@ OO.ui.PopupWidget = function OoUiPopupWidget( config ) {
        this.anchor = null;
        this.width = config.width !== undefined ? config.width : 320;
        this.height = config.height !== undefined ? config.height : null;
-       // Validate alignment and transform deprecated values
-       if ( [ 'left', 'right', 'force-left', 'force-right', 'backwards', 'forwards', 'center' ].indexOf( config.align ) > -1 ) {
-               this.align = { left: 'force-right', right: 'force-left' }[ config.align ] || config.align;
-       } else {
-               this.align = 'center';
-       }
+       this.setAlignment( config.align );
        this.closeButton = new OO.ui.ButtonWidget( { framed: false, icon: 'close' } );
        this.onMouseDownHandler = this.onMouseDown.bind( this );
        this.onDocumentKeyDownHandler = this.onDocumentKeyDown.bind( this );
@@ -14187,8 +15408,8 @@ OO.ui.PopupWidget = function OoUiPopupWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.PopupWidget, OO.ui.Widget );
-OO.mixinClass( OO.ui.PopupWidget, OO.ui.LabelElement );
-OO.mixinClass( OO.ui.PopupWidget, OO.ui.ClippableElement );
+OO.mixinClass( OO.ui.PopupWidget, OO.ui.mixin.LabelElement );
+OO.mixinClass( OO.ui.PopupWidget, OO.ui.mixin.ClippableElement );
 
 /* Methods */
 
@@ -14442,6 +15663,29 @@ OO.ui.PopupWidget.prototype.updateDimensions = function ( transition ) {
        return this;
 };
 
+/**
+ * Set popup alignment
+ * @param {string} align Alignment of the popup, `center`, `force-left`, `force-right`,
+ *  `backwards` or `forwards`.
+ */
+OO.ui.PopupWidget.prototype.setAlignment = function ( align ) {
+       // Validate alignment and transform deprecated values
+       if ( [ 'left', 'right', 'force-left', 'force-right', 'backwards', 'forwards', 'center' ].indexOf( align ) > -1 ) {
+               this.align = { left: 'force-right', right: 'force-left' }[ align ] || align;
+       } else {
+               this.align = 'center';
+       }
+};
+
+/**
+ * Get popup alignment
+ * @return {string} align Alignment of the popup, `center`, `force-left`, `force-right`,
+ *  `backwards` or `forwards`.
+ */
+OO.ui.PopupWidget.prototype.getAlignment = function () {
+       return this.align;
+};
+
 /**
  * Progress bars visually display the status of an operation, such as a download,
  * and can be either determinate or indeterminate:
@@ -14542,7 +15786,7 @@ OO.ui.ProgressBarWidget.prototype.setProgress = function ( progress ) {
 /**
  * SearchWidgets combine a {@link OO.ui.TextInputWidget text input field}, where users can type a search query,
  * and a {@link OO.ui.TextInputMenuSelectWidget menu} of search results, which is displayed beneath the query
- * field. Unlike {@link OO.ui.LookupElement lookup menus}, search result menus are always visible to the user.
+ * field. Unlike {@link OO.ui.mixin.LookupElement lookup menus}, search result menus are always visible to the user.
  * Users can choose an item from the menu or type a query into the text field to search for a matching result item.
  * In general, search widgets are used inside a separate {@link OO.ui.Dialog dialog} window.
  *
@@ -14747,9 +15991,10 @@ OO.ui.SearchWidget.prototype.getResults = function () {
  *
  * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Selects_and_Options
  *
+ * @abstract
  * @class
  * @extends OO.ui.Widget
- * @mixins OO.ui.GroupElement
+ * @mixins OO.ui.mixin.GroupElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -14766,7 +16011,7 @@ OO.ui.SelectWidget = function OoUiSelectWidget( config ) {
        OO.ui.SelectWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.GroupWidget.call( this, $.extend( {}, config, { $group: this.$element } ) );
+       OO.ui.mixin.GroupWidget.call( this, $.extend( {}, config, { $group: this.$element } ) );
 
        // Properties
        this.pressed = false;
@@ -14774,8 +16019,14 @@ OO.ui.SelectWidget = function OoUiSelectWidget( config ) {
        this.onMouseUpHandler = this.onMouseUp.bind( this );
        this.onMouseMoveHandler = this.onMouseMove.bind( this );
        this.onKeyDownHandler = this.onKeyDown.bind( this );
+       this.onKeyPressHandler = this.onKeyPress.bind( this );
+       this.keyPressBuffer = '';
+       this.keyPressBufferTimer = null;
 
        // Events
+       this.connect( this, {
+               toggle: 'onToggle'
+       } );
        this.$element.on( {
                mousedown: this.onMouseDown.bind( this ),
                mouseover: this.onMouseOver.bind( this ),
@@ -14796,8 +16047,13 @@ OO.ui.SelectWidget = function OoUiSelectWidget( config ) {
 OO.inheritClass( OO.ui.SelectWidget, OO.ui.Widget );
 
 // Need to mixin base class as well
-OO.mixinClass( OO.ui.SelectWidget, OO.ui.GroupElement );
-OO.mixinClass( OO.ui.SelectWidget, OO.ui.GroupWidget );
+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 */
 
@@ -14988,11 +16244,13 @@ OO.ui.SelectWidget.prototype.onKeyDown = function ( e ) {
                                break;
                        case OO.ui.Keys.UP:
                        case OO.ui.Keys.LEFT:
+                               this.clearKeyPressBuffer();
                                nextItem = this.getRelativeSelectableItem( currentItem, -1 );
                                handled = true;
                                break;
                        case OO.ui.Keys.DOWN:
                        case OO.ui.Keys.RIGHT:
+                               this.clearKeyPressBuffer();
                                nextItem = this.getRelativeSelectableItem( currentItem, 1 );
                                handled = true;
                                break;
@@ -15002,6 +16260,7 @@ OO.ui.SelectWidget.prototype.onKeyDown = function ( e ) {
                                        currentItem.setHighlighted( false );
                                }
                                this.unbindKeyDownListener();
+                               this.unbindKeyPressListener();
                                // Don't prevent tabbing away / defocusing
                                handled = false;
                                break;
@@ -15034,12 +16293,140 @@ OO.ui.SelectWidget.prototype.bindKeyDownListener = function () {
 };
 
 /**
- * Unbind key down listener.
+ * Unbind key down listener.
+ *
+ * @protected
+ */
+OO.ui.SelectWidget.prototype.unbindKeyDownListener = function () {
+       this.getElementWindow().removeEventListener( 'keydown', this.onKeyDownHandler, true );
+};
+
+/**
+ * Clear the key-press buffer
+ *
+ * @protected
+ */
+OO.ui.SelectWidget.prototype.clearKeyPressBuffer = function () {
+       if ( this.keyPressBufferTimer ) {
+               clearTimeout( this.keyPressBufferTimer );
+               this.keyPressBufferTimer = null;
+       }
+       this.keyPressBuffer = '';
+};
+
+/**
+ * Handle key press events.
+ *
+ * @protected
+ * @param {jQuery.Event} e Key press event
+ */
+OO.ui.SelectWidget.prototype.onKeyPress = function ( e ) {
+       var c, filter, item;
+
+       if ( !e.charCode ) {
+               if ( e.keyCode === OO.ui.Keys.BACKSPACE && this.keyPressBuffer !== '' ) {
+                       this.keyPressBuffer = this.keyPressBuffer.substr( 0, this.keyPressBuffer.length - 1 );
+                       return false;
+               }
+               return;
+       }
+       if ( String.fromCodePoint ) {
+               c = String.fromCodePoint( e.charCode );
+       } else {
+               c = String.fromCharCode( e.charCode );
+       }
+
+       if ( this.keyPressBufferTimer ) {
+               clearTimeout( this.keyPressBufferTimer );
+       }
+       this.keyPressBufferTimer = setTimeout( this.clearKeyPressBuffer.bind( this ), 1500 );
+
+       item = this.getHighlightedItem() || this.getSelectedItem();
+
+       if ( this.keyPressBuffer === c ) {
+               // Common (if weird) special case: typing "xxxx" will cycle through all
+               // the items beginning with "x".
+               if ( item ) {
+                       item = this.getRelativeSelectableItem( item, 1 );
+               }
+       } else {
+               this.keyPressBuffer += c;
+       }
+
+       filter = this.getItemMatcher( this.keyPressBuffer );
+       if ( !item || !filter( item ) ) {
+               item = this.getRelativeSelectableItem( item, 1, filter );
+       }
+       if ( item ) {
+               if ( item.constructor.static.highlightable ) {
+                       this.highlightItem( item );
+               } else {
+                       this.chooseItem( item );
+               }
+               item.scrollElementIntoView();
+       }
+
+       return false;
+};
+
+/**
+ * Get a matcher for the specific string
+ *
+ * @protected
+ * @param {string} s String to match against items
+ * @return {Function} function ( OO.ui.OptionItem ) => boolean
+ */
+OO.ui.SelectWidget.prototype.getItemMatcher = function ( s ) {
+       var re;
+
+       if ( s.normalize ) {
+               s = s.normalize();
+       }
+       re = new RegExp( '^\s*' + s.replace( /([\\{}()|.?*+\-\^$\[\]])/g, '\\$1' ).replace( /\s+/g, '\\s+' ), 'i' );
+       return function ( item ) {
+               var l = item.getLabel();
+               if ( typeof l !== 'string' ) {
+                       l = item.$label.text();
+               }
+               if ( l.normalize ) {
+                       l = l.normalize();
+               }
+               return re.test( l );
+       };
+};
+
+/**
+ * Bind key press listener.
+ *
+ * @protected
+ */
+OO.ui.SelectWidget.prototype.bindKeyPressListener = function () {
+       this.getElementWindow().addEventListener( 'keypress', this.onKeyPressHandler, true );
+};
+
+/**
+ * Unbind key down listener.
+ *
+ * If you override this, be sure to call this.clearKeyPressBuffer() from your
+ * implementation.
+ *
+ * @protected
+ */
+OO.ui.SelectWidget.prototype.unbindKeyPressListener = function () {
+       this.getElementWindow().removeEventListener( 'keypress', this.onKeyPressHandler, true );
+       this.clearKeyPressBuffer();
+};
+
+/**
+ * Visibility change handler
  *
  * @protected
+ * @param {boolean} visible
  */
-OO.ui.SelectWidget.prototype.unbindKeyDownListener = function () {
-       this.getElementWindow().removeEventListener( 'keydown', this.onKeyDownHandler, true );
+OO.ui.SelectWidget.prototype.onToggle = function ( visible ) {
+       if ( !visible ) {
+               this.clearKeyPressBuffer();
+       }
 };
 
 /**
@@ -15232,13 +16619,19 @@ 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
+ *  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
  */
-OO.ui.SelectWidget.prototype.getRelativeSelectableItem = function ( item, direction ) {
+OO.ui.SelectWidget.prototype.getRelativeSelectableItem = function ( item, direction, filter ) {
        var currentIndex, nextIndex, i,
                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 = $.inArray( item, this.items );
                nextIndex = ( currentIndex + increase + len ) % len;
@@ -15250,7 +16643,7 @@ 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() ) {
+               if ( item instanceof OO.ui.OptionWidget && item.isSelectable() && filter( item ) ) {
                        return item;
                }
                nextIndex = ( nextIndex + increase + len ) % len;
@@ -15288,7 +16681,7 @@ OO.ui.SelectWidget.prototype.getFirstSelectableItem = function () {
  */
 OO.ui.SelectWidget.prototype.addItems = function ( items, index ) {
        // Mixin method
-       OO.ui.GroupWidget.prototype.addItems.call( this, items, index );
+       OO.ui.mixin.GroupWidget.prototype.addItems.call( this, items, index );
 
        // Always provide an index, even if it was omitted
        this.emit( 'add', items, index === undefined ? this.items.length - items.length - 1 : index );
@@ -15317,7 +16710,7 @@ OO.ui.SelectWidget.prototype.removeItems = function ( items ) {
        }
 
        // Mixin method
-       OO.ui.GroupWidget.prototype.removeItems.call( this, items );
+       OO.ui.mixin.GroupWidget.prototype.removeItems.call( this, items );
 
        this.emit( 'remove', items );
 
@@ -15336,7 +16729,7 @@ OO.ui.SelectWidget.prototype.clearItems = function () {
        var items = this.items.slice();
 
        // Mixin method
-       OO.ui.GroupWidget.prototype.clearItems.call( this );
+       OO.ui.mixin.GroupWidget.prototype.clearItems.call( this );
 
        // Clear selection
        this.selectItem( null );
@@ -15382,7 +16775,7 @@ OO.ui.SelectWidget.prototype.clearItems = function () {
  *
  * @class
  * @extends OO.ui.SelectWidget
- * @mixins OO.ui.TabIndexedElement
+ * @mixins OO.ui.mixin.TabIndexedElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -15392,7 +16785,7 @@ OO.ui.ButtonSelectWidget = function OoUiButtonSelectWidget( config ) {
        OO.ui.ButtonSelectWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.TabIndexedElement.call( this, config );
+       OO.ui.mixin.TabIndexedElement.call( this, config );
 
        // Events
        this.$element.on( {
@@ -15407,7 +16800,7 @@ OO.ui.ButtonSelectWidget = function OoUiButtonSelectWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.ButtonSelectWidget, OO.ui.SelectWidget );
-OO.mixinClass( OO.ui.ButtonSelectWidget, OO.ui.TabIndexedElement );
+OO.mixinClass( OO.ui.ButtonSelectWidget, OO.ui.mixin.TabIndexedElement );
 
 /**
  * RadioSelectWidget is a {@link OO.ui.SelectWidget select widget} that contains radio
@@ -15415,6 +16808,9 @@ OO.mixinClass( OO.ui.ButtonSelectWidget, OO.ui.TabIndexedElement );
  * 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.RadioSelectInputWidget instead.
+ *
  *     @example
  *     // A RadioSelectWidget with RadioOptions.
  *     var option1 = new OO.ui.RadioOptionWidget( {
@@ -15441,7 +16837,7 @@ OO.mixinClass( OO.ui.ButtonSelectWidget, OO.ui.TabIndexedElement );
  *
  * @class
  * @extends OO.ui.SelectWidget
- * @mixins OO.ui.TabIndexedElement
+ * @mixins OO.ui.mixin.TabIndexedElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -15451,7 +16847,7 @@ OO.ui.RadioSelectWidget = function OoUiRadioSelectWidget( config ) {
        OO.ui.RadioSelectWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.TabIndexedElement.call( this, config );
+       OO.ui.mixin.TabIndexedElement.call( this, config );
 
        // Events
        this.$element.on( {
@@ -15466,13 +16862,13 @@ OO.ui.RadioSelectWidget = function OoUiRadioSelectWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.RadioSelectWidget, OO.ui.SelectWidget );
-OO.mixinClass( OO.ui.RadioSelectWidget, OO.ui.TabIndexedElement );
+OO.mixinClass( OO.ui.RadioSelectWidget, OO.ui.mixin.TabIndexedElement );
 
 /**
  * MenuSelectWidget is a {@link OO.ui.SelectWidget select widget} that contains options and
  * is used together with OO.ui.MenuOptionWidget. It is designed be used as part of another widget.
  * See {@link OO.ui.DropdownWidget DropdownWidget}, {@link OO.ui.ComboBoxWidget ComboBoxWidget},
- * and {@link OO.ui.LookupElement LookupElement} for examples of widgets that contain menus.
+ * and {@link OO.ui.mixin.LookupElement LookupElement} for examples of widgets that contain menus.
  * MenuSelectWidgets themselves are not instantiated directly, rather subclassed
  * and customized to be opened, closed, and displayed as needed.
  *
@@ -15491,13 +16887,13 @@ OO.mixinClass( OO.ui.RadioSelectWidget, OO.ui.TabIndexedElement );
  *
  * @class
  * @extends OO.ui.SelectWidget
- * @mixins OO.ui.ClippableElement
+ * @mixins OO.ui.mixin.ClippableElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
  * @cfg {OO.ui.TextInputWidget} [input] Text input used to implement option highlighting for menu items that match
  *  the text the user types. This config is used by {@link OO.ui.ComboBoxWidget ComboBoxWidget}
- *  and {@link OO.ui.LookupElement LookupElement}
+ *  and {@link OO.ui.mixin.LookupElement LookupElement}
  * @cfg {OO.ui.Widget} [widget] Widget associated with the menu’s active state. If the user clicks the mouse
  *  anywhere on the page outside of this widget, the menu is hidden.
  * @cfg {boolean} [autoHide=true] Hide the menu when the mouse is pressed outside the menu.
@@ -15510,7 +16906,7 @@ OO.ui.MenuSelectWidget = function OoUiMenuSelectWidget( config ) {
        OO.ui.MenuSelectWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.ClippableElement.call( this, $.extend( {}, config, { $clippable: this.$group } ) );
+       OO.ui.mixin.ClippableElement.call( this, $.extend( {}, config, { $clippable: this.$group } ) );
 
        // Properties
        this.newItems = null;
@@ -15534,7 +16930,7 @@ OO.ui.MenuSelectWidget = function OoUiMenuSelectWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.MenuSelectWidget, OO.ui.SelectWidget );
-OO.mixinClass( OO.ui.MenuSelectWidget, OO.ui.ClippableElement );
+OO.mixinClass( OO.ui.MenuSelectWidget, OO.ui.mixin.ClippableElement );
 
 /* Methods */
 
@@ -15609,6 +17005,26 @@ OO.ui.MenuSelectWidget.prototype.unbindKeyDownListener = function () {
        }
 };
 
+/**
+ * @inheritdoc
+ */
+OO.ui.MenuSelectWidget.prototype.bindKeyPressListener = function () {
+       if ( !this.$input ) {
+               OO.ui.MenuSelectWidget.super.prototype.bindKeyPressListener.call( this );
+       }
+};
+
+/**
+ * @inheritdoc
+ */
+OO.ui.MenuSelectWidget.prototype.unbindKeyPressListener = function () {
+       if ( this.$input ) {
+               this.clearKeyPressBuffer();
+       } else {
+               OO.ui.MenuSelectWidget.super.prototype.unbindKeyPressListener.call( this );
+       }
+};
+
 /**
  * Choose an item.
  *
@@ -15696,6 +17112,7 @@ OO.ui.MenuSelectWidget.prototype.toggle = function ( visible ) {
        if ( change ) {
                if ( visible ) {
                        this.bindKeyDownListener();
+                       this.bindKeyPressListener();
 
                        if ( this.newItems && this.newItems.length ) {
                                for ( i = 0, len = this.newItems.length; i < len; i++ ) {
@@ -15713,6 +17130,7 @@ OO.ui.MenuSelectWidget.prototype.toggle = function ( visible ) {
                        }
                } else {
                        this.unbindKeyDownListener();
+                       this.unbindKeyPressListener();
                        this.getElementDocument().removeEventListener(
                                'mousedown', this.onDocumentMouseDownHandler, true
                        );
@@ -15835,7 +17253,7 @@ OO.ui.TextInputMenuSelectWidget.prototype.position = function () {
  *
  * @class
  * @extends OO.ui.SelectWidget
- * @mixins OO.ui.TabIndexedElement
+ * @mixins OO.ui.mixin.TabIndexedElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -15845,7 +17263,7 @@ OO.ui.OutlineSelectWidget = function OoUiOutlineSelectWidget( config ) {
        OO.ui.OutlineSelectWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.TabIndexedElement.call( this, config );
+       OO.ui.mixin.TabIndexedElement.call( this, config );
 
        // Events
        this.$element.on( {
@@ -15860,7 +17278,7 @@ OO.ui.OutlineSelectWidget = function OoUiOutlineSelectWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.OutlineSelectWidget, OO.ui.SelectWidget );
-OO.mixinClass( OO.ui.OutlineSelectWidget, OO.ui.TabIndexedElement );
+OO.mixinClass( OO.ui.OutlineSelectWidget, OO.ui.mixin.TabIndexedElement );
 
 /**
  * TabSelectWidget is a list that contains {@link OO.ui.TabOptionWidget tab options}
@@ -15869,7 +17287,7 @@ OO.mixinClass( OO.ui.OutlineSelectWidget, OO.ui.TabIndexedElement );
  *
  * @class
  * @extends OO.ui.SelectWidget
- * @mixins OO.ui.TabIndexedElement
+ * @mixins OO.ui.mixin.TabIndexedElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -15879,7 +17297,7 @@ OO.ui.TabSelectWidget = function OoUiTabSelectWidget( config ) {
        OO.ui.TabSelectWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.TabIndexedElement.call( this, config );
+       OO.ui.mixin.TabIndexedElement.call( this, config );
 
        // Events
        this.$element.on( {
@@ -15894,7 +17312,364 @@ OO.ui.TabSelectWidget = function OoUiTabSelectWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.TabSelectWidget, OO.ui.SelectWidget );
-OO.mixinClass( OO.ui.TabSelectWidget, OO.ui.TabIndexedElement );
+OO.mixinClass( OO.ui.TabSelectWidget, OO.ui.mixin.TabIndexedElement );
+
+/**
+ * NumberInputWidgets combine a {@link OO.ui.TextInputWidget text input} (where a value
+ * can be entered manually) and two {@link OO.ui.ButtonWidget button widgets}
+ * (to adjust the value in increments) to allow the user to enter a number.
+ *
+ *     @example
+ *     // Example: A NumberInputWidget.
+ *     var numberInput = new OO.ui.NumberInputWidget( {
+ *         label: 'NumberInputWidget',
+ *         input: { value: 5, min: 1, max: 10 }
+ *     } );
+ *     $( 'body' ).append( numberInput.$element );
+ *
+ * @class
+ * @extends OO.ui.Widget
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ * @cfg {Object} [input] Configuration options to pass to the {@link OO.ui.TextInputWidget text input widget}.
+ * @cfg {Object} [minusButton] Configuration options to pass to the {@link OO.ui.ButtonWidget decrementing button widget}.
+ * @cfg {Object} [plusButton] Configuration options to pass to the {@link OO.ui.ButtonWidget incrementing button widget}.
+ * @cfg {boolean} [isInteger=false] Whether the field accepts only integer values.
+ * @cfg {number} [min=-Infinity] Minimum allowed value
+ * @cfg {number} [max=Infinity] Maximum allowed value
+ * @cfg {number} [step=1] Delta when using the buttons or up/down arrow keys
+ * @cfg {number|null} [pageStep] Delta when using the page-up/page-down keys. Defaults to 10 times #step.
+ */
+OO.ui.NumberInputWidget = function OoUiNumberInputWidget( config ) {
+       // Configuration initialization
+       config = $.extend( {
+               isInteger: false,
+               min: -Infinity,
+               max: Infinity,
+               step: 1,
+               pageStep: null
+       }, config );
+
+       // Parent constructor
+       OO.ui.NumberInputWidget.super.call( this, config );
+
+       // Properties
+       this.input = new OO.ui.TextInputWidget( $.extend(
+               {
+                       disabled: this.isDisabled()
+               },
+               config.input
+       ) );
+       this.minusButton = new OO.ui.ButtonWidget( $.extend(
+               {
+                       disabled: this.isDisabled(),
+                       tabIndex: -1
+               },
+               config.minusButton,
+               {
+                       classes: [ 'oo-ui-numberInputWidget-minusButton' ],
+                       label: '−'
+               }
+       ) );
+       this.plusButton = new OO.ui.ButtonWidget( $.extend(
+               {
+                       disabled: this.isDisabled(),
+                       tabIndex: -1
+               },
+               config.plusButton,
+               {
+                       classes: [ 'oo-ui-numberInputWidget-plusButton' ],
+                       label: '+'
+               }
+       ) );
+
+       // Events
+       this.input.connect( this, {
+               change: this.emit.bind( this, 'change' ),
+               enter: this.emit.bind( this, 'enter' )
+       } );
+       this.input.$input.on( {
+               keydown: this.onKeyDown.bind( this ),
+               'wheel mousewheel DOMMouseScroll': this.onWheel.bind( this )
+       } );
+       this.plusButton.connect( this, {
+               click: [ 'onButtonClick', +1 ]
+       } );
+       this.minusButton.connect( this, {
+               click: [ 'onButtonClick', -1 ]
+       } );
+
+       // Initialization
+       this.setIsInteger( !!config.isInteger );
+       this.setRange( config.min, config.max );
+       this.setStep( config.step, config.pageStep );
+
+       this.$field = $( '<div>' ).addClass( 'oo-ui-numberInputWidget-field' )
+               .append(
+                       this.minusButton.$element,
+                       this.input.$element,
+                       this.plusButton.$element
+               );
+       this.$element.addClass( 'oo-ui-numberInputWidget' ).append( this.$field );
+       this.input.setValidation( this.validateNumber.bind( this ) );
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.NumberInputWidget, OO.ui.Widget );
+
+/* Events */
+
+/**
+ * A `change` event is emitted when the value of the input changes.
+ *
+ * @event change
+ */
+
+/**
+ * An `enter` event is emitted when the user presses 'enter' inside the text box.
+ *
+ * @event enter
+ */
+
+/* Methods */
+
+/**
+ * Set whether only integers are allowed
+ * @param {boolean} flag
+ */
+OO.ui.NumberInputWidget.prototype.setIsInteger = function ( flag ) {
+       this.isInteger = !!flag;
+       this.input.setValidityFlag();
+};
+
+/**
+ * Get whether only integers are allowed
+ * @return {boolean} Flag value
+ */
+OO.ui.NumberInputWidget.prototype.getIsInteger = function () {
+       return this.isInteger;
+};
+
+/**
+ * Set the range of allowed values
+ * @param {number} min Minimum allowed value
+ * @param {number} max Maximum allowed value
+ */
+OO.ui.NumberInputWidget.prototype.setRange = function ( min, max ) {
+       if ( min > max ) {
+               throw new Error( 'Minimum (' + min + ') must not be greater than maximum (' + max + ')' );
+       }
+       this.min = min;
+       this.max = max;
+       this.input.setValidityFlag();
+};
+
+/**
+ * Get the current range
+ * @return {number[]} Minimum and maximum values
+ */
+OO.ui.NumberInputWidget.prototype.getRange = function () {
+       return [ this.min, this.max ];
+};
+
+/**
+ * Set the stepping deltas
+ * @param {number} step Normal step
+ * @param {number|null} pageStep Page step. If null, 10 * step will be used.
+ */
+OO.ui.NumberInputWidget.prototype.setStep = function ( step, pageStep ) {
+       if ( step <= 0 ) {
+               throw new Error( 'Step value must be positive' );
+       }
+       if ( pageStep === null ) {
+               pageStep = step * 10;
+       } else if ( pageStep <= 0 ) {
+               throw new Error( 'Page step value must be positive' );
+       }
+       this.step = step;
+       this.pageStep = pageStep;
+};
+
+/**
+ * Get the current stepping values
+ * @return {number[]} Step and page step
+ */
+OO.ui.NumberInputWidget.prototype.getStep = function () {
+       return [ this.step, this.pageStep ];
+};
+
+/**
+ * Get the current value of the widget
+ * @return {string}
+ */
+OO.ui.NumberInputWidget.prototype.getValue = function () {
+       return this.input.getValue();
+};
+
+/**
+ * Get the current value of the widget as a number
+ * @return {number} May be NaN, or an invalid number
+ */
+OO.ui.NumberInputWidget.prototype.getNumericValue = function () {
+       return +this.input.getValue();
+};
+
+/**
+ * Set the value of the widget
+ * @param {string} value Invalid values are allowed
+ */
+OO.ui.NumberInputWidget.prototype.setValue = function ( value ) {
+       this.input.setValue( value );
+};
+
+/**
+ * Adjust the value of the widget
+ * @param {number} delta Adjustment amount
+ */
+OO.ui.NumberInputWidget.prototype.adjustValue = function ( delta ) {
+       var n, v = this.getNumericValue();
+
+       delta = +delta;
+       if ( isNaN( delta ) || !isFinite( delta ) ) {
+               throw new Error( 'Delta must be a finite number' );
+       }
+
+       if ( isNaN( v ) ) {
+               n = 0;
+       } else {
+               n = v + delta;
+               n = Math.max( Math.min( n, this.max ), this.min );
+               if ( this.isInteger ) {
+                       n = Math.round( n );
+               }
+       }
+
+       if ( n !== v ) {
+               this.setValue( n );
+       }
+};
+
+/**
+ * Validate input
+ * @private
+ * @param {string} value Field value
+ * @return {boolean}
+ */
+OO.ui.NumberInputWidget.prototype.validateNumber = function ( value ) {
+       var n = +value;
+       if ( isNaN( n ) || !isFinite( n ) ) {
+               return false;
+       }
+
+       /*jshint bitwise: false */
+       if ( this.isInteger && ( n | 0 ) !== n ) {
+               return false;
+       }
+       /*jshint bitwise: true */
+
+       if ( n < this.min || n > this.max ) {
+               return false;
+       }
+
+       return true;
+};
+
+/**
+ * Handle mouse click events.
+ *
+ * @private
+ * @param {number} dir +1 or -1
+ */
+OO.ui.NumberInputWidget.prototype.onButtonClick = function ( dir ) {
+       this.adjustValue( dir * this.step );
+};
+
+/**
+ * Handle mouse wheel events.
+ *
+ * @private
+ * @param {jQuery.Event} event
+ */
+OO.ui.NumberInputWidget.prototype.onWheel = function ( event ) {
+       var delta = 0;
+
+       // Standard 'wheel' event
+       if ( event.originalEvent.deltaMode !== undefined ) {
+               this.sawWheelEvent = true;
+       }
+       if ( event.originalEvent.deltaY ) {
+               delta = -event.originalEvent.deltaY;
+       } else if ( event.originalEvent.deltaX ) {
+               delta = event.originalEvent.deltaX;
+       }
+
+       // Non-standard events
+       if ( !this.sawWheelEvent ) {
+               if ( event.originalEvent.wheelDeltaX ) {
+                       delta = -event.originalEvent.wheelDeltaX;
+               } else if ( event.originalEvent.wheelDeltaY ) {
+                       delta = event.originalEvent.wheelDeltaY;
+               } else if ( event.originalEvent.wheelDelta ) {
+                       delta = event.originalEvent.wheelDelta;
+               } else if ( event.originalEvent.detail ) {
+                       delta = -event.originalEvent.detail;
+               }
+       }
+
+       if ( delta ) {
+               this.adjustValue( Math.sign( delta ) * this.step );
+       }
+
+       return false;
+};
+
+/**
+ * Handle key down events.
+ *
+ *
+ * @private
+ * @param {jQuery.Event} e Key down event
+ */
+OO.ui.NumberInputWidget.prototype.onKeyDown = function ( e ) {
+       if ( !this.isDisabled() ) {
+               switch ( e.which ) {
+                       case OO.ui.Keys.UP:
+                               this.adjustValue( this.step );
+                               return false;
+                       case OO.ui.Keys.DOWN:
+                               this.adjustValue( -this.step );
+                               return false;
+                       case OO.ui.Keys.PAGEUP:
+                               this.adjustValue( this.pageStep );
+                               return false;
+                       case OO.ui.Keys.PAGEDOWN:
+                               this.adjustValue( -this.pageStep );
+                               return false;
+               }
+       }
+};
+
+/**
+ * @inheritdoc
+ */
+OO.ui.NumberInputWidget.prototype.setDisabled = function ( disabled ) {
+       // Parent method
+       OO.ui.NumberInputWidget.super.prototype.setDisabled.call( this, disabled );
+
+       if ( this.input ) {
+               this.input.setDisabled( this.isDisabled() );
+       }
+       if ( this.minusButton ) {
+               this.minusButton.setDisabled( this.isDisabled() );
+       }
+       if ( this.plusButton ) {
+               this.plusButton.setDisabled( this.isDisabled() );
+       }
+
+       return this;
+};
 
 /**
  * ToggleSwitches are switches that slide on and off. Their state is represented by a Boolean
@@ -15920,7 +17695,7 @@ OO.mixinClass( OO.ui.TabSelectWidget, OO.ui.TabIndexedElement );
  *
  * @class
  * @extends OO.ui.ToggleWidget
- * @mixins OO.ui.TabIndexedElement
+ * @mixins OO.ui.mixin.TabIndexedElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -15932,7 +17707,7 @@ OO.ui.ToggleSwitchWidget = function OoUiToggleSwitchWidget( config ) {
        OO.ui.ToggleSwitchWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.TabIndexedElement.call( this, config );
+       OO.ui.mixin.TabIndexedElement.call( this, config );
 
        // Properties
        this.dragging = false;
@@ -15959,7 +17734,7 @@ OO.ui.ToggleSwitchWidget = function OoUiToggleSwitchWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.ToggleSwitchWidget, OO.ui.ToggleWidget );
-OO.mixinClass( OO.ui.ToggleSwitchWidget, OO.ui.TabIndexedElement );
+OO.mixinClass( OO.ui.ToggleSwitchWidget, OO.ui.mixin.TabIndexedElement );
 
 /* Methods */
 
@@ -15989,4 +17764,104 @@ OO.ui.ToggleSwitchWidget.prototype.onKeyPress = function ( e ) {
        }
 };
 
+/*!
+ * Deprecated aliases for classes in the `OO.ui.mixin` namespace.
+ */
+
+/**
+ * @inheritdoc OO.ui.mixin.ButtonElement
+ * @deprecated Use {@link OO.ui.mixin.ButtonElement} instead.
+ */
+OO.ui.ButtonElement = OO.ui.mixin.ButtonElement;
+
+/**
+ * @inheritdoc OO.ui.mixin.ClippableElement
+ * @deprecated Use {@link OO.ui.mixin.ClippableElement} instead.
+ */
+OO.ui.ClippableElement = OO.ui.mixin.ClippableElement;
+
+/**
+ * @inheritdoc OO.ui.mixin.DraggableElement
+ * @deprecated Use {@link OO.ui.mixin.DraggableElement} instead.
+ */
+OO.ui.DraggableElement = OO.ui.mixin.DraggableElement;
+
+/**
+ * @inheritdoc OO.ui.mixin.DraggableGroupElement
+ * @deprecated Use {@link OO.ui.mixin.DraggableGroupElement} instead.
+ */
+OO.ui.DraggableGroupElement = OO.ui.mixin.DraggableGroupElement;
+
+/**
+ * @inheritdoc OO.ui.mixin.FlaggedElement
+ * @deprecated Use {@link OO.ui.mixin.FlaggedElement} instead.
+ */
+OO.ui.FlaggedElement = OO.ui.mixin.FlaggedElement;
+
+/**
+ * @inheritdoc OO.ui.mixin.GroupElement
+ * @deprecated Use {@link OO.ui.mixin.GroupElement} instead.
+ */
+OO.ui.GroupElement = OO.ui.mixin.GroupElement;
+
+/**
+ * @inheritdoc OO.ui.mixin.GroupWidget
+ * @deprecated Use {@link OO.ui.mixin.GroupWidget} instead.
+ */
+OO.ui.GroupWidget = OO.ui.mixin.GroupWidget;
+
+/**
+ * @inheritdoc OO.ui.mixin.IconElement
+ * @deprecated Use {@link OO.ui.mixin.IconElement} instead.
+ */
+OO.ui.IconElement = OO.ui.mixin.IconElement;
+
+/**
+ * @inheritdoc OO.ui.mixin.IndicatorElement
+ * @deprecated Use {@link OO.ui.mixin.IndicatorElement} instead.
+ */
+OO.ui.IndicatorElement = OO.ui.mixin.IndicatorElement;
+
+/**
+ * @inheritdoc OO.ui.mixin.ItemWidget
+ * @deprecated Use {@link OO.ui.mixin.ItemWidget} instead.
+ */
+OO.ui.ItemWidget = OO.ui.mixin.ItemWidget;
+
+/**
+ * @inheritdoc OO.ui.mixin.LabelElement
+ * @deprecated Use {@link OO.ui.mixin.LabelElement} instead.
+ */
+OO.ui.LabelElement = OO.ui.mixin.LabelElement;
+
+/**
+ * @inheritdoc OO.ui.mixin.LookupElement
+ * @deprecated Use {@link OO.ui.mixin.LookupElement} instead.
+ */
+OO.ui.LookupElement = OO.ui.mixin.LookupElement;
+
+/**
+ * @inheritdoc OO.ui.mixin.PendingElement
+ * @deprecated Use {@link OO.ui.mixin.PendingElement} instead.
+ */
+OO.ui.PendingElement = OO.ui.mixin.PendingElement;
+
+/**
+ * @inheritdoc OO.ui.mixin.PopupElement
+ * @deprecated Use {@link OO.ui.mixin.PopupElement} instead.
+ */
+OO.ui.PopupElement = OO.ui.mixin.PopupElement;
+
+/**
+ * @inheritdoc OO.ui.mixin.TabIndexedElement
+ * @deprecated Use {@link OO.ui.mixin.TabIndexedElement} instead.
+ */
+OO.ui.TabIndexedElement = OO.ui.mixin.TabIndexedElement;
+
+/**
+ * @inheritdoc OO.ui.mixin.TitledElement
+ * @deprecated Use {@link OO.ui.mixin.TitledElement} instead.
+ */
+OO.ui.TitledElement = OO.ui.mixin.TitledElement;
+
 }( OO ) );
diff --git a/resources/lib/oojs-ui/themes/apex/icons-editing-advanced.json b/resources/lib/oojs-ui/themes/apex/icons-editing-advanced.json
new file mode 100644 (file)
index 0000000..8fdc505
--- /dev/null
@@ -0,0 +1,75 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "alignCentre": { "file": "images/icons/align-center.svg" },
+               "alignLeft": { "file": "images/icons/align-float-left.svg" },
+               "alignRight": { "file": "images/icons/align-float-right.svg" },
+               "find": { "file": {
+                       "ltr": "images/icons/find-ltr.svg",
+                       "rtl": "images/icons/find-rtl.svg"
+               } },
+               "insert": { "file": "images/icons/insert.svg" },
+               "layout": { "file": {
+                       "ltr": "images/icons/layout-ltr.svg",
+                       "rtl": "images/icons/layout-rtl.svg"
+               } },
+               "newline": { "file": {
+                       "ltr": "images/icons/newline-ltr.svg",
+                       "rtl": "images/icons/newline-rtl.svg"
+               } },
+               "redirect": { "file": {
+                       "ltr": "images/icons/redirect-ltr.svg",
+                       "rtl": "images/icons/redirect-rtl.svg"
+               } },
+               "noWikiText": { "file": {
+                       "ltr": "images/icons/noWikiText-ltr.svg",
+                       "rtl": "images/icons/noWikiText-rtl.svg"
+               } },
+               "outline": { "file": {
+                       "ltr": "images/icons/outline-ltr.svg",
+                       "rtl": "images/icons/outline-rtl.svg"
+               } },
+               "puzzle": { "file": {
+                       "ltr": "images/icons/puzzle-ltr.svg",
+                       "rtl": "images/icons/puzzle-rtl.svg"
+               } },
+               "quotes": { "file": {
+                       "ltr": "images/icons/quotes-ltr.svg",
+                       "rtl": "images/icons/quotes-rtl.svg"
+               } },
+               "quotesAdd": { "file": {
+                       "ltr": "images/icons/quotesAdd-ltr.svg",
+                       "rtl": "images/icons/quotesAdd-rtl.svg"
+               } },
+               "redirect": { "file": {
+                       "ltr": "images/icons/redirect-ltr.svg",
+                       "rtl": "images/icons/redirect-rtl.svg"
+               } },
+               "searchCaseSensitive": { "file": "images/icons/case-sensitive.svg" },
+               "searchRegularExpression": { "file": "images/icons/regular-expression.svg" },
+               "specialCharacter": { "file": "images/icons/specialCharacter.svg" },
+               "table": { "file": "images/icons/table.svg" },
+               "tableAddColumnAfter": { "file": {
+                       "ltr": "images/icons/table-insert-column-rtl.svg",
+                       "rtl": "images/icons/table-insert-column-ltr.svg"
+               } },
+               "tableAddColumnBefore": { "file": {
+                       "ltr": "images/icons/table-insert-column-ltr.svg",
+                       "rtl": "images/icons/table-insert-column-rtl.svg"
+               } },
+               "tableAddRowAfter": { "file": "images/icons/table-insert-row-after.svg" },
+               "tableAddRowBefore": { "file": "images/icons/table-insert-row-before.svg" },
+               "tableCaption": { "file": "images/icons/table-caption.svg" },
+               "tableMergeCells": { "file": "images/icons/table-merge-cells.svg" },
+               "templateAdd": { "file": {
+                       "ltr": "images/icons/templateAdd-ltr.svg",
+                       "rtl": "images/icons/templateAdd-rtl.svg"
+               } },
+               "translation": { "file": {
+                       "ltr": "images/icons/translation-ltr.svg",
+                       "rtl": "images/icons/translation-rtl.svg"
+               } },
+               "wikiText": { "file": "images/icons/wikiText.svg" }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/apex/icons-editing-core.json b/resources/lib/oojs-ui/themes/apex/icons-editing-core.json
new file mode 100644 (file)
index 0000000..95e8358
--- /dev/null
@@ -0,0 +1,24 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "edit": { "file": {
+                       "ltr": "images/icons/edit-ltr.svg",
+                       "rtl": "images/icons/edit-rtl.svg"
+               } },
+               "editLock": { "file": {
+                       "ltr": "images/icons/editLock-ltr.svg",
+                       "rtl": "images/icons/editLock-rtl.svg"
+               } },
+               "editUndo": { "file": {
+                       "ltr": "images/icons/editUndo-ltr.svg",
+                       "rtl": "images/icons/editUndo-rtl.svg"
+               } },
+               "link": { "file": "images/icons/link.svg" },
+               "linkExternal": { "file": {
+                       "ltr": "images/icons/external-link-ltr.svg",
+                       "rtl":  "images/icons/external-link-rtl.svg"
+               } },
+               "linkSecure": { "file": "images/icons/secure-link.svg" }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/apex/icons-editing-list.json b/resources/lib/oojs-ui/themes/apex/icons-editing-list.json
new file mode 100644 (file)
index 0000000..490f8fa
--- /dev/null
@@ -0,0 +1,22 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "indent": { "file": {
+                       "ltr": "images/icons/indent-ltr.svg",
+                       "rtl": "images/icons/indent-rtl.svg"
+               } },
+               "listBullet": { "file": {
+                       "ltr": "images/icons/listBullet-ltr.svg",
+                       "rtl": "images/icons/listBullet-rtl.svg"
+               } },
+               "listNumbered": { "file": {
+                       "ltr": "images/icons/listNumbered-ltr.svg",
+                       "rtl": "images/icons/listNumbered-rtl.svg"
+               } },
+               "outdent": { "file": {
+                       "ltr": "images/icons/outdent-ltr.svg",
+                       "rtl": "images/icons/outdent-rtl.svg"
+               } }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/apex/icons-editing-styling.json b/resources/lib/oojs-ui/themes/apex/icons-editing-styling.json
new file mode 100644 (file)
index 0000000..65fbc21
--- /dev/null
@@ -0,0 +1,72 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "bigger": { "file": {
+                       "ltr": "images/icons/bigger-ltr.svg",
+                       "rtl": "images/icons/bigger-rtl.svg"
+               } },
+               "smaller": { "file": {
+                       "ltr": "images/icons/smaller-ltr.svg",
+                       "rtl": "images/icons/smaller-rtl.svg"
+               } },
+               "subscript": { "file": {
+                       "ltr": "images/icons/subscript-ltr.svg",
+                       "rtl": "images/icons/subscript-rtl.svg"
+               } },
+               "superscript": { "file": {
+                       "ltr": "images/icons/superscript-ltr.svg",
+                       "rtl": "images/icons/superscript-rtl.svg"
+               } },
+               "bold": { "file": {
+                       "default": "images/icons/bold-a.svg",
+                       "lang": {
+                               "ar": "images/icons/bold-arab-ain.svg",
+                               "be": "images/icons/bold-cyrl-te.svg",
+                               "cs,en,he,ml,pl": "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",
+                               "fa": "images/icons/bold-arab-dad.svg",
+                               "fr,it": "images/icons/bold-g.svg",
+                               "hy": "images/icons/bold-armn-to.svg",
+                               "ka": "images/icons/bold-geor-man.svg",
+                               "ky,ru": "images/icons/bold-cyrl-zhe.svg",
+                               "nl": "images/icons/bold-v.svg",
+                               "os": "images/icons/bold-cyrl-be.svg"
+                       }
+               } },
+               "italic": { "file": {
+                       "default": "images/icons/italic-a.svg",
+                       "lang": {
+                                       "ar": "images/icons/italic-arab-meem.svg",
+                                       "cs,en,fr,he,ml,pl,pt": "images/icons/italic-i.svg",
+                                       "be,da,de,fi,ky,nn,no,os,sv,ru": "images/icons/italic-k.svg",
+                                       "es,gl,it,nl": "images/icons/italic-c.svg",
+                                       "eu": "images/icons/italic-e.svg",
+                                       "fa": "images/icons/italic-arab-keheh-jeem.svg",
+                                       "hu": "images/icons/italic-d.svg",
+                                       "hy": "images/icons/italic-armn-sha.svg",
+                                       "ksh": "images/icons/italic-s.svg",
+                                       "ka": "images/icons/italic-geor-kan.svg"
+                               }
+               } },
+               "strikethrough": { "file": {
+                       "default": "images/icons/strikethrough-a.svg",
+                       "lang": {
+                               "en": "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"
+                       }
+               } },
+               "textLanguage": { "file": "images/icons/language.svg" },
+               "textDirLTR": { "file": "images/icons/text-dir-lefttoright.svg" },
+               "textDirRTL": { "file": "images/icons/text-dir-righttoleft.svg" },
+               "textStyle": { "file": "images/icons/text-style.svg" }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/apex/icons-moderation.json b/resources/lib/oojs-ui/themes/apex/icons-moderation.json
new file mode 100644 (file)
index 0000000..f904cc2
--- /dev/null
@@ -0,0 +1,33 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "block": { "file": "images/icons/block.svg" },
+               "blockUndo": { "file": {
+                       "ltr": "images/icons/blockUndo-ltr.svg",
+                       "rtl": "images/icons/blockUndo-rtl.svg"
+               } },
+               "flag": { "file": {
+                       "ltr": "images/icons/flag-ltr.svg",
+                       "rtl": "images/icons/flag-rtl.svg"
+               } },
+               "flagUndo": { "file": {
+                       "ltr": "images/icons/flagUndo-ltr.svg",
+                       "rtl": "images/icons/flagUndo-rtl.svg"
+               } },
+               "lock": { "file": "images/icons/lock.svg" },
+               "star": { "file": "images/icons/star.svg" },
+               "trash": { "file": "images/icons/trash.svg" },
+               "trashUndo": { "file": {
+                       "ltr": "images/icons/trashUndo-ltr.svg",
+                       "rtl": "images/icons/trashUndo-rtl.svg"
+               } },
+               "unLock": { "file": {
+                       "ltr": "images/icons/unLock-ltr.svg",
+                       "rtl": "images/icons/unLock-rtl.svg"
+               } },
+               "unStar": { "file": "images/icons/unStar.svg" }
+
+
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/apex/icons-movement.json b/resources/lib/oojs-ui/themes/apex/icons-movement.json
new file mode 100644 (file)
index 0000000..9aa1b80
--- /dev/null
@@ -0,0 +1,27 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "arrowNext": { "file": {
+                       "ltr": "images/icons/arrow-ltr.svg",
+                       "rtl": "images/icons/arrow-rtl.svg"
+               } },
+               "arrowLast": { "file": {
+                       "ltr": "images/icons/arrow-rtl.svg",
+                       "rtl": "images/icons/arrow-ltr.svg"
+               } },
+               "caretNext": { "file": {
+                       "ltr": "images/icons/caret-rtl.svg",
+                       "rtl": "images/icons/caret-ltr.svg"
+               } },
+               "caretLast": { "file": {
+                       "ltr": "images/icons/caret-ltr.svg",
+                       "rtl": "images/icons/caret-rtl.svg"
+               } },
+               "caretDown": { "file": "images/icons/caretDown.svg" },
+               "caretUp": { "file": "images/icons/caretUp.svg" },
+               "downTriangle": { "file": "images/icons/downTriangle.svg" },
+               "move": { "file": "images/icons/move.svg" },
+               "upTriangle": { "file": "images/icons/upTriangle.svg" }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/apex/icons.json b/resources/lib/oojs-ui/themes/apex/icons.json
new file mode 100644 (file)
index 0000000..9372363
--- /dev/null
@@ -0,0 +1,50 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "circle": { "file": "images/icons/circle.svg" },
+               "add": { "file": "images/icons/add.svg" },
+               "advanced": { "file": "images/icons/advanced.svg" },
+               "cancel": { "file": "images/icons/cancel.svg" },
+               "alert": { "file": "images/icons/alert.svg" },
+               "check": { "file": "images/icons/check.svg" },
+               "close": { "file": "images/icons/close.svg" },
+               "code": { "file": "images/icons/code.svg" },
+               "collapse": { "file": "images/icons/collapse.svg" },
+               "comment": { "file": "images/icons/comment.svg" },
+               "ellipsis": { "file": "images/icons/ellipsis.svg" },
+               "expand": { "file": "images/icons/expand.svg" },
+               "help": { "file": {
+                       "ltr": "images/icons/help-ltr.svg",
+                       "rtl": "images/icons/help-rtl.svg",
+                       "lang": {
+                               "he,yi": "images/icons/help-ltr.svg"
+                       }
+               } },
+               "history": { "file": "images/icons/history.svg" },
+               "info": { "file": "images/icons/info.svg" },
+               "menu": { "file": "images/icons/menu.svg" },
+               "next": { "file": {
+                       "ltr": "images/icons/move-ltr.svg",
+                       "rtl": "images/icons/move-rtl.svg"
+               } },
+               "picture": { "file": "images/icons/picture.svg" },
+               "previous": { "file": {
+                       "ltr": "images/icons/move-rtl.svg",
+                       "rtl": "images/icons/move-ltr.svg"
+               } },
+               "redo": { "file": {
+                       "ltr": "images/icons/arched-arrow-ltr.svg",
+                       "rtl": "images/icons/arched-arrow-rtl.svg"
+               } },
+               "remove": { "file": "images/icons/remove.svg" },
+               "search": { "file": "images/icons/search.svg" },
+               "settings": { "file": "images/icons/settings.svg" },
+               "tag": { "file": "images/icons/tag.svg" },
+               "undo": { "file": {
+                       "ltr": "images/icons/arched-arrow-rtl.svg",
+                       "rtl": "images/icons/arched-arrow-ltr.svg"
+               } },
+               "window": { "file": "images/icons/window.svg" }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/add.png b/resources/lib/oojs-ui/themes/apex/images/icons/add.png
new file mode 100644 (file)
index 0000000..730d102
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/add.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/add.svg b/resources/lib/oojs-ui/themes/apex/images/icons/add.svg
new file mode 100644 (file)
index 0000000..85e39fe
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="add">
+        <path id="plus" d="M13 8h-2v3H8v2h3v3h2v-3h3v-2h-3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/advanced.png b/resources/lib/oojs-ui/themes/apex/images/icons/advanced.png
new file mode 100644 (file)
index 0000000..9732802
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/advanced.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/advanced.svg b/resources/lib/oojs-ui/themes/apex/images/icons/advanced.svg
new file mode 100644 (file)
index 0000000..5b72d10
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="settings">
+        <path id="gear" d="M20.87 13.476c.078-.482.13-.972.13-1.476s-.052-.994-.13-1.476l-2.464-.26c-.15-.555-.367-1.08-.648-1.57l1.558-1.923c-.576-.805-1.28-1.51-2.087-2.086l-1.925 1.558c-.488-.28-1.015-.5-1.57-.648l-.26-2.463C12.996 3.053 12.506 3 12 3s-.994.052-1.476.13l-.26 2.464c-.554.15-1.08.367-1.57.648L6.772 4.685c-.804.576-1.51 1.28-2.085 2.086l1.558 1.925c-.28.488-.5 1.015-.648 1.57l-2.463.26c-.08.48-.132.97-.132 1.475s.052.994.13 1.476l2.464.26c.15.555.367 1.08.648 1.57l-1.558 1.923c.576.805 1.28 1.51 2.087 2.086l1.925-1.558c.488.28 1.015.5 1.57.648l.26 2.463c.48.078.97.13 1.475.13s.994-.052 1.476-.13l.26-2.464c.555-.15 1.08-.367 1.57-.648l1.923 1.558c.805-.576 1.51-1.28 2.086-2.087l-1.558-1.925c.28-.488.5-1.015.648-1.57l2.463-.26zM12 15.998c-2.21 0-3.998-1.79-3.998-3.998S9.792 8.002 12 8.002s3.998 1.79 3.998 3.998-1.79 3.998-3.998 3.998z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/alert.png b/resources/lib/oojs-ui/themes/apex/images/icons/alert.png
new file mode 100644 (file)
index 0000000..e98a14a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/alert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/alert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/alert.svg
new file mode 100644 (file)
index 0000000..42a4bf6
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="alert">
+        <path id="point" d="M11 16h2v2h-2z"/>
+        <path id="stroke" d="M13.516 10h-3L11 15h2z"/>
+        <path id="triangle" d="M12.017 5.974L19.537 19H4.496l7.52-13.026m0-2.474c-.544 0-1.088.357-1.5 1.07L2.532 18.403c-.825 1.43-.15 2.598 1.5 2.598H20c1.65 0 2.325-1.17 1.5-2.6L13.517 4.573c-.413-.715-.956-1.072-1.5-1.072z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/align-center.png b/resources/lib/oojs-ui/themes/apex/images/icons/align-center.png
new file mode 100644 (file)
index 0000000..92d231e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/align-center.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/align-center.svg b/resources/lib/oojs-ui/themes/apex/images/icons/align-center.svg
new file mode 100644 (file)
index 0000000..4697eb9
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="align-center">
+        <path d="M9 9h6c.554 0 1 .446 1 1v5c0 .554-.446 1-1 1H9c-.554 0-1-.446-1-1v-5c0-.554.446-1 1-1zm-5.5 9h17c.277 0 .5.223.5.5s-.223.5-.5.5h-17c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zm0-12h17c.277 0 .5.223.5.5s-.223.5-.5.5h-17c-.277 0-.5-.223-.5-.5s.223-.5.5-.5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/align-float-left.png b/resources/lib/oojs-ui/themes/apex/images/icons/align-float-left.png
new file mode 100644 (file)
index 0000000..2880478
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/align-float-left.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/align-float-left.svg b/resources/lib/oojs-ui/themes/apex/images/icons/align-float-left.svg
new file mode 100644 (file)
index 0000000..1c95377
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="align-float-left">
+        <path d="M4 9h6c.554 0 1 .446 1 1v5c0 .554-.446 1-1 1H4c-.554 0-1-.446-1-1v-5c0-.554.446-1 1-1zm9.5 0h7c.277 0 .5.223.5.5s-.223.5-.5.5h-7c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zm0 3h7c.277 0 .5.223.5.5s-.223.5-.5.5h-7c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zm0 3h7c.277 0 .5.223.5.5s-.223.5-.5.5h-7c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zm-10-9h17c.277 0 .5.223.5.5s-.223.5-.5.5h-17c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zm0 12h17c.277 0 .5.223.5.5s-.223.5-.5.5h-17c-.277 0-.5-.223-.5-.5s.223-.5.5-.5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/align-float-right.png b/resources/lib/oojs-ui/themes/apex/images/icons/align-float-right.png
new file mode 100644 (file)
index 0000000..e9c2f0e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/align-float-right.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/align-float-right.svg b/resources/lib/oojs-ui/themes/apex/images/icons/align-float-right.svg
new file mode 100644 (file)
index 0000000..2467f7f
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="align-float-right">
+        <path d="M20 9h-6c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h6c.554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm-9.5 0h-7c-.277 0-.5.223-.5.5s.223.5.5.5h7c.277 0 .5-.223.5-.5s-.223-.5-.5-.5zm0 3h-7c-.277 0-.5.223-.5.5s.223.5.5.5h7c.277 0 .5-.223.5-.5s-.223-.5-.5-.5zm0 3h-7c-.277 0-.5.223-.5.5s.223.5.5.5h7c.277 0 .5-.223.5-.5s-.223-.5-.5-.5zm10-9h-17c-.277 0-.5.223-.5.5s.223.5.5.5h17c.277 0 .5-.223.5-.5s-.223-.5-.5-.5zm0 12h-17c-.277 0-.5.223-.5.5s.223.5.5.5h17c.277 0 .5-.223.5-.5s-.223-.5-.5-.5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/arched-arrow-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/arched-arrow-ltr.png
new file mode 100644 (file)
index 0000000..3737ef8
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/arched-arrow-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/arched-arrow-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/arched-arrow-ltr.svg
new file mode 100644 (file)
index 0000000..ba80ed0
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="arched-arrow-ltr">
+        <path id="arrow" d="M19.925 14.937l-2.39-6.9-1.48 2.328c-.965-.845-2.7-1.85-5.514-1.823-4.886.046-6.523 4.244-6.523 4.244s2.753-2.64 6.925-1.95c1.73.287 3.007 1.207 3.675 1.792l-1.474 2.32 6.782-.01z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/arched-arrow-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/arched-arrow-rtl.png
new file mode 100644 (file)
index 0000000..83a1c23
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/arched-arrow-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/arched-arrow-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/arched-arrow-rtl.svg
new file mode 100644 (file)
index 0000000..9a7dbe6
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="arched-arrow-rtl">
+        <path id="arrow" d="M13.4 8.542c-2.813-.027-4.548.978-5.512 1.823l-1.48-2.33-2.39 6.902 6.78.01-1.473-2.32c.668-.584 1.945-1.504 3.675-1.79 4.172-.69 6.925 1.948 6.925 1.948S18.288 8.588 13.4 8.542z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/arrow-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/arrow-ltr.png
new file mode 100644 (file)
index 0000000..8bef0a5
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/arrow-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/arrow-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/arrow-ltr.svg
new file mode 100644 (file)
index 0000000..a0097cb
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g4">
+        <path d="M16 12H6c-1.7 0-3 1.3-3 3h13v3l5-4.5L16 9v3z" id="path6"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/arrow-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/arrow-rtl.png
new file mode 100644 (file)
index 0000000..26e3e69
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/arrow-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/arrow-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/arrow-rtl.svg
new file mode 100644 (file)
index 0000000..54d6d25
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M8 12h10c1.7 0 3 1.3 3 3H8v3l-5-4.5L8 9v3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bigger-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/bigger-ltr.png
new file mode 100644 (file)
index 0000000..b1c13a2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bigger-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bigger-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bigger-ltr.svg
new file mode 100644 (file)
index 0000000..6d95fc6
--- /dev/null
@@ -0,0 +1,7 @@
+<?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.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z" id="a"/>
+    <g id="up">
+        <path id="arrow" d="M15.5 9h7L19 3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bigger-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/bigger-rtl.png
new file mode 100644 (file)
index 0000000..052ae37
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bigger-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bigger-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bigger-rtl.svg
new file mode 100644 (file)
index 0000000..807cdd9
--- /dev/null
@@ -0,0 +1,7 @@
+<?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.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z" id="a"/>
+    <g id="up">
+        <path id="arrow" d="M1.5 9h7L5 3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/block.png b/resources/lib/oojs-ui/themes/apex/images/icons/block.png
new file mode 100644 (file)
index 0000000..181dace
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/block.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/block.svg b/resources/lib/oojs-ui/themes/apex/images/icons/block.svg
new file mode 100644 (file)
index 0000000..6299c30
--- /dev/null
@@ -0,0 +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 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm5 9H7v-2h10v2z" id="path4"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-ltr.png
new file mode 100644 (file)
index 0000000..76e0db4
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-ltr.svg
new file mode 100644 (file)
index 0000000..f6d5486
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g66">
+        <path d="M17 11v2h-2l3.6 3.6c.9-1.3 1.4-2.9 1.4-4.6 0-4.4-3.6-8-8-8-1.7 0-3.3.5-4.6 1.4L13 11h4zM4 4L3 5l2.4 2.4C4.5 8.7 4 10.3 4 12c0 4.4 3.6 8 8 8 1.7 0 3.3-.5 4.6-1.4L19 21l1-1L4 4zm3 9v-2h2l2 2H7z" id="path68"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-rtl.png
new file mode 100644 (file)
index 0000000..e31809e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-rtl.svg
new file mode 100644 (file)
index 0000000..d0ddde0
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g66">
+        <path d="M7 11v2h2l-3.6 3.6C4.5 15.3 4 13.7 4 12c0-4.4 3.6-8 8-8 1.7 0 3.3.5 4.6 1.4L11 11H7zm13-7l1 1-2.4 2.4c.9 1.3 1.4 2.9 1.4 4.6 0 4.4-3.6 8-8 8-1.7 0-3.3-.5-4.6-1.4L5 21l-1-1L20 4zm-3 9v-2h-2l-2 2h4z" id="path68"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-a.png b/resources/lib/oojs-ui/themes/apex/images/icons/bold-a.png
new file mode 100644 (file)
index 0000000..86611e3
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bold-a.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-a.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bold-a.svg
new file mode 100644 (file)
index 0000000..d5cee05
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="bold-a">
+        <path d="M16 18h3L14 6h-3L6 18h3l1.25-3h4.5L16 18zm-4.917-5L12.5 9.6l1.417 3.4h-2.834z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-arab-ain.png b/resources/lib/oojs-ui/themes/apex/images/icons/bold-arab-ain.png
new file mode 100644 (file)
index 0000000..c2addd8
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bold-arab-ain.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-arab-ain.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bold-arab-ain.svg
new file mode 100644 (file)
index 0000000..ad6b3e4
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="bold-arab-ain">
+        <path id="arab-ain" d="M9.337 13.616c0 1.35 1.386 2.1 4.16 2.258l2.186-.03.318.045c-.03.126-.25.344-.664.65l-.09.067c-1.235.93-2.422 1.393-3.56 1.393-1.142 0-2.045-.33-2.71-.99-.65-.66-.975-1.56-.975-2.698.006-1.354.567-2.573 1.685-3.658v-.044l-.606-.55c-.15-.18-.223-.39-.223-.63 0-.49.24-1.11.717-1.862.65-1.046 1.303-1.566 1.958-1.56.886.004 1.618.42 2.194 1.245.325.48-.03.552-1.064.22-.842-.327-1.527-.05-2.054.828l.015.074 1.123.865.052.006c1.404-.498 2.418-.74 3.043-.726-.058.117-.14.362-.243.733-.103.357-.204.684-.303.982l-.126.374-.384.05c-1.743.24-2.992.716-3.745 1.43-.464.463-.698.972-.703 1.524"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-arab-dad.png b/resources/lib/oojs-ui/themes/apex/images/icons/bold-arab-dad.png
new file mode 100644 (file)
index 0000000..ed491f3
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bold-arab-dad.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-arab-dad.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bold-arab-dad.svg
new file mode 100644 (file)
index 0000000..27108e2
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="bold-arab-dad">
+        <path id="arab-dad" d="M16.41 8.232l-1.675-.665L15.43 6l1.687.64-.707 1.592m.775 3.078c-.51-.286-1-.427-1.476-.423-.472 0-.983.205-1.533.616l-.506.38.007.024c1.084.066 1.934.1 2.55.1h.314c.568-.022.993-.065 1.277-.132-.067-.17-.275-.36-.625-.566h-.006m-6.803 3.295c-.017-.904-.33-1.87-.938-2.898l1.294-1.73.118.15c.267.336.504.924.713 1.766l.064.05c.496-.008.942-.17 1.338-.485v-.006l1.732-1.53c.68-.6 1.282-.902 1.807-.902.384.004.85.195 1.395.572.55.377.884.696 1 .958.063.15.094.386.094.71 0 .695-.11 1.228-.332 1.597-.192.31-.473.555-.844.734-.438.208-1.55.312-3.333.312-.8 0-1.794-.02-2.982-.062l-.144.43c-.254.67-.463 1.112-.625 1.323-.726.937-1.787 1.405-3.184 1.405C5.85 16.99 5 16.076 5 14.256c.003-.94.278-1.814.824-2.618.15-.216.298-.367.444-.454.225-.133.288-.09.188.124-.396.862-.596 1.548-.6 2.058.008 1.177.752 1.768 2.232 1.772 1.038-.004 1.803-.182 2.295-.535"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-armn-to.png b/resources/lib/oojs-ui/themes/apex/images/icons/bold-armn-to.png
new file mode 100644 (file)
index 0000000..718accb
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bold-armn-to.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-armn-to.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bold-armn-to.svg
new file mode 100644 (file)
index 0000000..b55042a
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="bold-armn-to">
+        <path id="armn-to" d="M13.86 16.257c.124 0 .254-.026.39-.078.135-.06.257-.15.367-.275.114-.13.205-.302.273-.516.073-.214.11-.48.11-.798V13h-1.14c-.14 0-.284.026-.43.078-.14.047-.27.133-.383.258-.11.125-.2.294-.274.508-.067.213-.1.487-.1.82 0 .34.035.47.108.695.08.217.176.394.29.53.12.135.248.23.384.29.14.05.276.076.406.076m-2.97-7.84c-.37.082-.695.247-.976.45-.28.198-.505.47-.672.813-.16.342-.242.78-.242 1.31V18H6v-7.188c0-.776.15-1.455.453-2.04.302-.587.714-1.077 1.234-1.467.52-.39 1.13-.685 1.83-.883.697-.198 1.44-.297 2.225-.297.526 0 1.04.044 1.54.133.504.088.98.22 1.43.398.447.172.858.388 1.233.65.375.26.698.564.97.913.275.347.49.737.64 1.17.15.432.226 1.093.226 1.61h1.354v2.04H17.78v1.6c0 .58-.103 1.09-.31 1.54-.21.44-.49.814-.845 1.116-.35.302-.834.53-1.297.687-.464.15-.953.226-1.47.226-.51 0-.996-.08-1.46-.235-.464-.156-.87-.39-1.22-.703-.348-.313-.626-.703-.835-1.172-.203-.473-.304-1.028-.304-1.663s.104-1.182.32-1.64c.212-.46.496-.685.85-.977.354-.297.76-.513 1.22-.648.457-.14.934-.21 1.43-.21h1.13c-.01-.49-.04-1.043-.24-1.36-.2-.323-.454-.58-.767-.766-.312-.193-.598-.332-.984-.426-.375-.09-.578-.094-1.1-.094-.52 0-.64.02-1.01.102z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-b.png b/resources/lib/oojs-ui/themes/apex/images/icons/bold-b.png
new file mode 100644 (file)
index 0000000..b1c6955
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bold-b.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-b.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bold-b.svg
new file mode 100644 (file)
index 0000000..1806709
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="bold-b">
+        <path id="b" d="M7 18h6c2 0 4-1 4-3 0-1.064.01-1.975-1.99-3 2-.975 1.99-1.935 1.99-3 0-2-2-3-4-3H7v12zm7-8c0 1 0 1-2 1h-2V8h2c2 0 2 0 2 1v1zm-2 6h-2v-3h2c2 0 2 0 2 1v1s0 1-2 1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-be.png b/resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-be.png
new file mode 100644 (file)
index 0000000..07a721b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-be.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-be.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-be.svg
new file mode 100644 (file)
index 0000000..5c6f8c0
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="bold-cyrl-be">
+        <path id="cyrl-be" d="M7 6h9v2h-6v3h2.65c.892 0 1.632.11 2.22.327.587.218 1.087.622 1.5 1.21.42.59.63 1.188.63 1.98 0 .812-.21 1.397-.63 1.976-.418.578-.897.974-1.436 1.187-.533.213-1.295.32-2.286.32h-5.65m4.768-2c.75 0 1.28-.05 1.584-.12.305-.077.57-.247.792-.51.23-.26.343-.472.343-.854 0-.557-.2-.868-.596-1.12-.393-.255-1.065-.397-2.017-.397H10v3"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-te.png b/resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-te.png
new file mode 100644 (file)
index 0000000..6058d8f
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-te.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-te.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-te.svg
new file mode 100644 (file)
index 0000000..63aee3e
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="bold-cyrl-te">
+        <path id="te" d="M11 18V8H7V6h11v2h-4v10"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-zhe.png b/resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-zhe.png
new file mode 100644 (file)
index 0000000..cfe0009
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-zhe.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-zhe.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bold-cyrl-zhe.svg
new file mode 100644 (file)
index 0000000..d26bdf6
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="bold-cyrl-zhe">
+        <path id="cyrl-zhe" d="M13 6v5.154c.328-.033.537-.18.705-.447.168-.266.4-.873.698-1.82.39-1.242.79-2.034 1.197-2.375.403-.336 1.075-.504 2.014-.504L18 6v1.78l-.386-.008c-.4 0-.69.062-.878.187-.186.118-.337.303-.452.552-.115.25-.286.762-.512 1.537-.12.41-.25.755-.392 1.032-.137.276-.383.537-.738.78.44.157.8.466 1.084.927.288.454.603 1.102.944 1.942L18 18h-2.314l-1.17-3.08-.113-.253-.24-.56c-.247-.57-.45-.933-.61-1.09-.16-.157-.318-.236-.553-.236V18h-2v-5.22c-.226 0-.382.077-.546.23-.164.15-.368.517-.612 1.097l-.246.56-.113.253L8.313 18H6l1.33-3.267c.327-.808.635-1.447.923-1.92.293-.476.663-.793 1.11-.95-.355-.244-.603-.5-.745-.772-.137-.275-.268-.622-.392-1.04-.222-.76-.39-1.266-.505-1.52-.11-.255-.26-.444-.45-.57-.187-.124-.493-.186-.918-.186L6 7.782v-1.78l.386.008c.953 0 1.63.17 2.034.512.4.347.79 1.136 1.177 2.366.3.954.534 1.564.698 1.83.168.26.377.405.705.438V6.002"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-f.png b/resources/lib/oojs-ui/themes/apex/images/icons/bold-f.png
new file mode 100644 (file)
index 0000000..e650eb6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bold-f.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-f.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bold-f.svg
new file mode 100644 (file)
index 0000000..89061f1
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="bold-f">
+        <path id="f" d="M16 8V6H8v12h3v-5h4v-2h-4V8z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-g.png b/resources/lib/oojs-ui/themes/apex/images/icons/bold-g.png
new file mode 100644 (file)
index 0000000..ceb792b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bold-g.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-g.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bold-g.svg
new file mode 100644 (file)
index 0000000..dd6e27a
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="bold-g">
+        <path id="g" d="M12 14v-2h5v4.203c-.497.475-1.22.894-2.166 1.26-.94.358-1.896.537-2.864.537-1.23 0-2.303-.253-3.217-.76-.915-.512-1.602-1.24-2.062-2.185-.46-.95-.69-1.982-.69-3.095 0-1.208.258-2.282.77-3.222.514-.94 1.266-1.66 2.256-2.16.754-.386 1.693-.58 2.816-.58 1.46 0 2.6.304 3.418.91.824.603 1.353 1.436 1.59 2.502l-2.36.435c-.166-.57-.48-1.018-.94-1.346-.454-.333-1.023-.5-1.708-.5-1.038 0-1.864.325-2.48.974-.61.65-.914 1.612-.914 2.89 0 1.376.31 2.41.93 3.102.62.686 1.434 1.03 2.44 1.03.497 0 .995-.096 1.492-.286.503-.195 1.332-.57 1.69-.845v-.867"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-geor-man.png b/resources/lib/oojs-ui/themes/apex/images/icons/bold-geor-man.png
new file mode 100644 (file)
index 0000000..d6dcb5d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bold-geor-man.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-geor-man.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bold-geor-man.svg
new file mode 100644 (file)
index 0000000..deb95b7
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="bold-geor-man">
+        <path id="geor-man" d="M13.832 14.06c0-1.714-.394-2.572-1.182-2.572-.868 0-1.302.78-1.302 2.338-.01 1.624.42 2.436 1.295 2.436.793 0 1.19-.734 1.19-2.2m2.167 0C16 16.686 14.884 18 12.65 18 10.218 18 9 16.614 9 13.84c0-2.737 1.217-4.105 3.65-4.105.842 0 1.183.63 1.183.63v-1.58c0-.788-.45-1.183-1.347-1.183-.572 0-.858.374-.858 1.123h-2.34C9.29 6.908 10.35 6 12.462 6 14.83 6 16.01 6.946 16 8.84"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-l.png b/resources/lib/oojs-ui/themes/apex/images/icons/bold-l.png
new file mode 100644 (file)
index 0000000..ff021ce
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bold-l.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-l.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bold-l.svg
new file mode 100644 (file)
index 0000000..7695623
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="bold-l">
+        <path id="l" d="M8 18V6h3v10h5v2"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-n.png b/resources/lib/oojs-ui/themes/apex/images/icons/bold-n.png
new file mode 100644 (file)
index 0000000..7ae9321
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bold-n.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-n.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bold-n.svg
new file mode 100644 (file)
index 0000000..62f66a2
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="bold-n">
+        <path id="n" d="M7 18V6h3l4 8V6h3v12h-3l-4-8v8H7"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-v.png b/resources/lib/oojs-ui/themes/apex/images/icons/bold-v.png
new file mode 100644 (file)
index 0000000..39c2be0
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bold-v.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bold-v.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bold-v.svg
new file mode 100644 (file)
index 0000000..027db27
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="bold-v">
+        <path id="v" d="M10.5 18L6 6h3l3 8 3-8h3l-4.5 12"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/cancel.png b/resources/lib/oojs-ui/themes/apex/images/icons/cancel.png
new file mode 100644 (file)
index 0000000..76b87e4
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/cancel.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/cancel.svg b/resources/lib/oojs-ui/themes/apex/images/icons/cancel.svg
new file mode 100644 (file)
index 0000000..00c8051
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="cancel">
+        <path id="circle-with-strike" d="M12 5.022C8.145 5.022 5.02 8.146 5.02 12c0 3.853 3.124 6.978 6.977 6.978s6.978-3.125 6.978-6.978c0-3.854-3.125-6.978-6.98-6.978zM6.885 12c0-1.092.572-3.25.93-2.93l7.113 7.114c.487.525-1.838.93-2.93.93-2.826 0-5.114-2.29-5.114-5.114zm9.298 2.93L9.07 7.815c-.445-.483 1.837-.93 2.93-.93 2.826 0 5.114 2.288 5.114 5.113 0 1.092-.364 3.542-.93 2.93z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/caret-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/caret-ltr.png
new file mode 100644 (file)
index 0000000..d90b371
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/caret-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/caret-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/caret-ltr.svg
new file mode 100644 (file)
index 0000000..44d2d1a
--- /dev/null
@@ -0,0 +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 13.1l8.9 8.9c.8-.8.8-2 0-2.8l-6.1-6.1 6-6.1c.8-.8.8-2 0-2.8L7 13.1z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/caret-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/caret-rtl.png
new file mode 100644 (file)
index 0000000..9064f61
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/caret-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/caret-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/caret-rtl.svg
new file mode 100644 (file)
index 0000000..88c7c73
--- /dev/null
@@ -0,0 +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="M16.5 13.1L7.6 22c-.8-.8-.8-2 0-2.8l6.1-6.1-6-6.1c-.8-.8-.8-2 0-2.8l8.8 8.9z" id="path108"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/caretDown.png b/resources/lib/oojs-ui/themes/apex/images/icons/caretDown.png
new file mode 100644 (file)
index 0000000..bc453ea
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/caretDown.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/caretDown.svg b/resources/lib/oojs-ui/themes/apex/images/icons/caretDown.svg
new file mode 100644 (file)
index 0000000..27cb080
--- /dev/null
@@ -0,0 +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 16l8.9-8.9c-.8-.8-2-.8-2.8 0L12 13.2l-6.1-6c-.8-.8-2-.8-2.8 0L12 16z" id="path4"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/caretUp.png b/resources/lib/oojs-ui/themes/apex/images/icons/caretUp.png
new file mode 100644 (file)
index 0000000..efd2356
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/caretUp.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/caretUp.svg b/resources/lib/oojs-ui/themes/apex/images/icons/caretUp.svg
new file mode 100644 (file)
index 0000000..1d63093
--- /dev/null
@@ -0,0 +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 6.5l8.9 8.9c-.8.8-2 .8-2.8 0L12 9.3l-6.1 6c-.8.8-2 .8-2.8 0L12 6.5z" id="path4"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/case-sensitive.png b/resources/lib/oojs-ui/themes/apex/images/icons/case-sensitive.png
new file mode 100644 (file)
index 0000000..e924c44
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/case-sensitive.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/case-sensitive.svg b/resources/lib/oojs-ui/themes/apex/images/icons/case-sensitive.svg
new file mode 100644 (file)
index 0000000..3f0a3a5
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="regular-expression">
+        <path id="upper-case" d="M7.53 7L4 17h2.063l.72-2.406h3.624l.72 2.406h2.062L9.657 7H7.533zm1.064 1.53L9.938 13H7.25l1.344-4.47z"/>
+        <path id="lower-case" d="M18.55 17l-.184-1.035h-.055c-.35.44-.71.747-1.082.92-.368.167-.85.25-1.444.25-.564 0-.955-.208-1.377-.625-.418-.418-.627-1.012-.627-1.784 0-.808.282-1.403.845-1.784.568-.386 1.193-.607 2.208-.64l1.322-.04v-.335c0-.772-.395-1.158-1.186-1.158-.61 0-1.325.183-2.147.55l-.688-1.4c.877-.46 1.85-.69 2.916-.69 1.023 0 1.588.223 2.133.668.545.445.818 1.12.818 2.03V17h-1.45m-.394-3.527l-.804.027c-.604.018-1.054.127-1.35.327-.294.2-.442.504-.442.912 0 .585.336.877 1.008.877.48 0 .865-.138 1.152-.415.29-.277.436-.645.436-1.103v-.627"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/check.png b/resources/lib/oojs-ui/themes/apex/images/icons/check.png
new file mode 100644 (file)
index 0000000..7ecd312
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/check.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/check.svg b/resources/lib/oojs-ui/themes/apex/images/icons/check.svg
new file mode 100644 (file)
index 0000000..02c9bd8
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="check">
+        <path d="M7.105 13.473l1.422-1.423 1.9 1.902L15.238 7l1.658 1.148L10.635 17z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/circle.png b/resources/lib/oojs-ui/themes/apex/images/icons/circle.png
new file mode 100644 (file)
index 0000000..3bdc8e2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/circle.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/circle.svg b/resources/lib/oojs-ui/themes/apex/images/icons/circle.svg
new file mode 100644 (file)
index 0000000..18133cc
--- /dev/null
@@ -0,0 +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">
+    <circle cx="12" cy="12" r="6"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/close.png b/resources/lib/oojs-ui/themes/apex/images/icons/close.png
new file mode 100644 (file)
index 0000000..4eedfbc
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/close.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/close.svg b/resources/lib/oojs-ui/themes/apex/images/icons/close.svg
new file mode 100644 (file)
index 0000000..f05a965
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="close">
+        <path id="x" d="M18.717 6.697l-1.414-1.414L12 10.586 6.697 5.283 5.283 6.697 10.586 12l-5.303 5.303 1.414 1.414L12 13.414l5.303 5.303 1.414-1.414L13.414 12z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/code.png b/resources/lib/oojs-ui/themes/apex/images/icons/code.png
new file mode 100644 (file)
index 0000000..ee58c9a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/code.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/code.svg b/resources/lib/oojs-ui/themes/apex/images/icons/code.svg
new file mode 100644 (file)
index 0000000..6e32d78
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24">
+    <g id="code">
+        <path id="left-bracket" d="M4 12v-1h1c1 0 1 0 1-1V7.614c0-.514.024-.896.073-1.142.054-.252.14-.463.257-.633.204-.28.473-.476.808-.585C7.473 5.14 8.01 5 8.973 5H10v1h-.752c-.457 0-.77.19-.936.408C8.145 6.623 8 6.853 8 7.476v1.857c0 .73-.04 1.18-.244 1.493-.2.307-.562.53-1.09.667.535.155.9.385 1.096.688.2.304.238.758.238 1.485v1.862c0 .62.145.848.312 1.062.166.22.48.406.936.406L10 17v1H8.973c-.963 0-1.5-.133-1.835-.248-.335-.11-.604-.307-.808-.59-.118-.166-.203-.375-.257-.626-.05-.253-.073-.636-.073-1.15V13c0-1 0-1-1-1H4z"/>
+        <use transform="matrix(-1 0 0 1 24 0)" id="right-bracket" width="24" height="24" xlink:href="#left-bracket"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/collapse.png b/resources/lib/oojs-ui/themes/apex/images/icons/collapse.png
new file mode 100644 (file)
index 0000000..4dad20f
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/collapse.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/collapse.svg b/resources/lib/oojs-ui/themes/apex/images/icons/collapse.svg
new file mode 100644 (file)
index 0000000..645bfda
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="collapse">
+        <path id="arrow" d="M6.697 15.714L12 10.412l5.303 5.302 1.414-1.414L12 7.583 5.283 14.3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/comment.png b/resources/lib/oojs-ui/themes/apex/images/icons/comment.png
new file mode 100644 (file)
index 0000000..265a3e4
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/comment.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/comment.svg b/resources/lib/oojs-ui/themes/apex/images/icons/comment.svg
new file mode 100644 (file)
index 0000000..c52ce1c
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="comment">
+        <path id="speech-bubble" d="M15 6H9C7.343 6 6 7.344 6 9v4c0 1.656 1.343 3 3 3v3l3-3h3c1.657 0 3-1.344 3-3V9c0-1.656-1.343-3-3-3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/downTriangle.png b/resources/lib/oojs-ui/themes/apex/images/icons/downTriangle.png
new file mode 100644 (file)
index 0000000..9408199
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/downTriangle.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/downTriangle.svg b/resources/lib/oojs-ui/themes/apex/images/icons/downTriangle.svg
new file mode 100644 (file)
index 0000000..e1fb989
--- /dev/null
@@ -0,0 +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 18l8-10H4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/edit-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/edit-ltr.png
new file mode 100644 (file)
index 0000000..afaddc5
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/edit-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/edit-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/edit-ltr.svg
new file mode 100644 (file)
index 0000000..4cd6cda
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="Layer_3">
+        <path d="M17 2L5 14l-1 5 5-1L21 6c0-2-2-4-4-4zM7.2 15.5c-.3-.3-.7-.6-1-.8C8.5 12.4 17.5 3.3 17.5 3.3c.4.1.7.3 1 .7L7.2 15.5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/edit-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/edit-rtl.png
new file mode 100644 (file)
index 0000000..4755937
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/edit-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/edit-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/edit-rtl.svg
new file mode 100644 (file)
index 0000000..932997b
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="Layer_3">
+        <path d="M8 2l12 12 1 5-5-1L4 6c0-2 2-4 4-4zm9.8 13.5c.3-.3.7-.6 1-.8C16.5 12.4 7.5 3.3 7.5 3.3c-.4.1-.7.3-1 .7l11.3 11.5z" id="path173"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/editLock-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/editLock-ltr.png
new file mode 100644 (file)
index 0000000..966bfcb
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/editLock-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/editLock-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/editLock-ltr.svg
new file mode 100644 (file)
index 0000000..7e37682
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="Layer_2">
+        <g id="g184">
+            <path d="M21 4v-1s0-3-3-3-3 3-3 3v1h-1v6h8v-6zm-1.5 0h-3v-1s0-1.5 1.5-1.5c1.48.06 1.5 1.5 1.5 1.5zm-6.5 5.6l-6.8 6.9c-.3-.3-.7-.6-1-.8 1.4-1.4 5-5 7.8-7.9v-1.8l-9 9-1 5 5-1 8-8h-3z" id="path186"/>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/editLock-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/editLock-rtl.png
new file mode 100644 (file)
index 0000000..961abe6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/editLock-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/editLock-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/editLock-rtl.svg
new file mode 100644 (file)
index 0000000..0b4751d
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="Layer_2">
+        <g id="g184">
+            <path d="M4 4v-1s0-3 3-3 3 3 3 3v1h1v6h-8v-6zm1.5 0h3v-1s0-1.5-1.5-1.5c-1.48.06-1.5 1.5-1.5 1.5zm6.5 5.6l6.8 6.9c.3-.3.7-.6 1-.8-1.4-1.4-5-5-7.8-7.9v-1.8l9 9 1 5-5-1-8-8h3z" id="path186"/>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/editUndo-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/editUndo-ltr.png
new file mode 100644 (file)
index 0000000..e3dc95a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/editUndo-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/editUndo-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/editUndo-ltr.svg
new file mode 100644 (file)
index 0000000..05778cd
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g196">
+        <g id="g198">
+            <path d="M14.9 2.8c.9 0 1.8.2 2.7.6.9.4 1.6.9 1.9 1.6-2.8.1-5 1.1-6.6 3.1l1.3 2-6.7-.3L8 3l1.7 2c1.8-1.5 3.5-2.2 5.2-2.2z" id="path200"/>
+        </g>
+    </g>
+    <g id="g204">
+        <path d="M15.2 11.1l-2.6-.1-5.4 5.5c-.3-.3-.7-.6-1-.8.9-.9 2.8-2.8 4.7-4.8H9.1L5 15l-1 5 5-1 7.8-7.8-1.6-.1zM20.6 6c-1.7 0-3.2.5-4.4 1.4l-.9.9.8 1.3.9 1.4 4-4c0-.3-.1-.7-.2-1h-.2z" id="path206"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/editUndo-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/editUndo-rtl.png
new file mode 100644 (file)
index 0000000..6dd8b46
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/editUndo-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/editUndo-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/editUndo-rtl.svg
new file mode 100644 (file)
index 0000000..ac03c05
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g196">
+        <g id="g198">
+            <path d="M10.1 2.8c-.9 0-1.8.2-2.7.6-.9.4-1.6.9-1.9 1.6 2.8.1 5 1.1 6.6 3.1l-1.3 2 6.7-.3L17 3l-1.7 2c-1.8-1.5-3.5-2.2-5.2-2.2z" id="path200"/>
+        </g>
+    </g>
+    <g id="g204">
+        <path d="M9.8 11.1l2.6-.1 5.4 5.5c.3-.3.7-.6 1-.8-.9-.9-2.8-2.8-4.7-4.8h1.8L20 15l1 5-5-1-7.8-7.8 1.6-.1zM4.4 6c1.7 0 3.2.5 4.4 1.4l.9.9-.8 1.3L8 11 4 7c0-.3.1-.7.2-1h.2z" id="path206"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/ellipsis.png b/resources/lib/oojs-ui/themes/apex/images/icons/ellipsis.png
new file mode 100644 (file)
index 0000000..1e4050c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/ellipsis.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/ellipsis.svg b/resources/lib/oojs-ui/themes/apex/images/icons/ellipsis.svg
new file mode 100644 (file)
index 0000000..dd36a30
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <g>
+            <path d="M8 13c0 .6-.2 1-.6 1.4-.4.4-.9.6-1.4.6-.6 0-1-.2-1.4-.6-.4-.4-.6-.9-.6-1.4s.2-1 .6-1.4c.4-.4.9-.6 1.4-.6s1 .2 1.4.6c.4.4.6.9.6 1.4z"/>
+        </g>
+        <g>
+            <path d="M14 13c0 .6-.2 1-.6 1.4-.4.4-.9.6-1.4.6-.6 0-1-.2-1.4-.6-.4-.4-.6-.9-.6-1.4s.2-1 .6-1.4c.4-.4.9-.6 1.4-.6s1 .2 1.4.6c.4.4.6.9.6 1.4z"/>
+        </g>
+        <g>
+            <path d="M20 13c0 .6-.2 1-.6 1.4-.4.4-.9.6-1.4.6-.6 0-1-.2-1.4-.6-.4-.4-.6-.9-.6-1.4s.2-1 .6-1.4c.4-.4.9-.6 1.4-.6s1 .2 1.4.6c.4.4.6.9.6 1.4z"/>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/expand.png b/resources/lib/oojs-ui/themes/apex/images/icons/expand.png
new file mode 100644 (file)
index 0000000..9073d24
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/expand.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/expand.svg b/resources/lib/oojs-ui/themes/apex/images/icons/expand.svg
new file mode 100644 (file)
index 0000000..84b9e0a
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="expand">
+        <path id="arrow" d="M17.303 8.283L12 13.586 6.697 8.283 5.283 9.697 12 16.414l6.717-6.717z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/external-link-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/external-link-ltr.png
new file mode 100644 (file)
index 0000000..10927e1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/external-link-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/external-link-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/external-link-ltr.svg
new file mode 100644 (file)
index 0000000..e836361
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
+    <g id="external">
+        <path id="box" d="M2 2h3v1H3v6h6V7h1v3H2z"/>
+        <path id="arrow" d="M6.21 2H10v3.79L8.58 4.367 6.446 6.5 5.5 5.553 7.632 3.42z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/external-link-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/external-link-rtl.png
new file mode 100644 (file)
index 0000000..7a3454e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/external-link-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/external-link-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/external-link-rtl.svg
new file mode 100644 (file)
index 0000000..60e6a0c
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
+    <g id="external">
+        <path id="box" d="M7 3h2v6H3V7H2v3h8V2H7z"/>
+        <path id="arrow" d="M2 5.79l1.42-1.422L5.554 6.5l.947-.947L4.368 3.42 5.788 2H2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/find-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/find-ltr.png
new file mode 100644 (file)
index 0000000..4625881
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/find-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/find-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/find-ltr.svg
new file mode 100644 (file)
index 0000000..e97230c
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="find">
+        <path id="magnifying-glass" d="M13.656 11c-1.92 0-3.5 1.548-3.5 3.47 0 1.92 1.58 3.5 3.5 3.5.75 0 1.432-.253 2-.657l.094.156 2.375 2.374c.19.19.534.153.78-.094s.315-.59.126-.78l-2.374-2.376-.188-.094c.403-.566.656-1.282.656-2.03 0-1.92-1.55-3.47-3.47-3.47zm0 1.656c1.01 0 1.813.8 1.813 1.813 0 1.01-.802 1.843-1.814 1.843-1.01 0-1.844-.832-1.844-1.844s.832-1.814 1.844-1.814z"/>
+        <path id="text" d="M6 5v2h10V5H6zm0 3v2h11V8H6zm0 3v2h3.53c.284-.797.787-1.486 1.44-2H6zm0 3v2h3.53c-.177-.48-.28-.99-.28-1.53 0-.16.046-.315.063-.47H6z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/find-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/find-rtl.png
new file mode 100644 (file)
index 0000000..ed8eea0
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/find-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/find-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/find-rtl.svg
new file mode 100644 (file)
index 0000000..ca03754
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="find">
+        <path id="magnifying-glass" d="M11.344 11c1.92 0 3.5 1.548 3.5 3.47 0 1.92-1.58 3.5-3.5 3.5-.75 0-1.432-.253-2-.657l-.094.156-2.375 2.374c-.19.19-.534.153-.78-.094s-.315-.59-.126-.78l2.374-2.376.188-.094c-.403-.566-.656-1.282-.656-2.03 0-1.92 1.55-3.47 3.47-3.47zm0 1.656c-1.01 0-1.813.8-1.813 1.813 0 1.01.802 1.843 1.814 1.843 1.01 0 1.844-.832 1.844-1.844s-.832-1.814-1.844-1.814z"/>
+        <path id="text" d="M19 5v2H9V5zm0 3v2H8V8zm0 3v2h-3.53c-.284-.797-.787-1.486-1.44-2zm0 3v2h-3.53c.177-.48.28-.99.28-1.53 0-.16-.046-.315-.063-.47z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/flag-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/flag-ltr.png
new file mode 100644 (file)
index 0000000..63ceaaf
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/flag-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/flag-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/flag-ltr.svg
new file mode 100644 (file)
index 0000000..bcd728e
--- /dev/null
@@ -0,0 +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="M14 6.5V5c-1.4-1.5-5.2-1.2-6 0V4H7v15h1v-7c.8-.8 3.4-.9 5-.5V13c1.2 1.5 4.3 1.2 5 0V6c-.7.7-2.7.9-4 .5z" id="path216"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/flag-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/flag-rtl.png
new file mode 100644 (file)
index 0000000..80835c0
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/flag-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/flag-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/flag-rtl.svg
new file mode 100644 (file)
index 0000000..3a93b6f
--- /dev/null
@@ -0,0 +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" id="path216"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-ltr.png
new file mode 100644 (file)
index 0000000..6f84122
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-ltr.svg
new file mode 100644 (file)
index 0000000..87245de
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g2990">
+        <g id="Layer_1">
+            <path id="path227" d="M14 6.5V5c-1.4-1.5-5.2-1.2-6 0V4H7v15h1v-7c.8-.8 3.4-.9 5-.5V13c1.2 1.5 4.3 1.2 5 0V6c-.7.7-2.7.9-4 .5z"/>
+        </g>
+        <g id="Layer_2">
+            <g id="g230">
+                <path id="path232" d="M17.997 1.99l.99.99-15.98 15.98-.99-.99z"/>
+            </g>
+            <g id="g234">
+                <path id="path236" d="M17 1.016l.99.99-15.98 15.98-.99-.99z" fill="#fff"/>
+            </g>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-rtl.png
new file mode 100644 (file)
index 0000000..89674cc
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-rtl.svg
new file mode 100644 (file)
index 0000000..06da23a
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g2990">
+        <g id="Layer_1">
+            <path id="path227" 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"/>
+        </g>
+        <g id="Layer_2">
+            <g id="g230">
+                <path id="path232" d="M7.003 1.99l-.99.99 15.98 15.98.99-.99z"/>
+            </g>
+            <g id="g234">
+                <path id="path236" d="M8 1.016l-.99.99 15.98 15.98.99-.99z" fill="#fff"/>
+            </g>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/help-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/help-ltr.png
new file mode 100644 (file)
index 0000000..4428ef3
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/help-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/help-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/help-ltr.svg
new file mode 100644 (file)
index 0000000..e5eb877
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="help">
+        <path id="circle" d="M12 2.085c-5.477 0-9.915 4.438-9.915 9.916 0 5.477 4.438 9.915 9.916 9.915 5.477 0 9.915-4.438 9.915-9.914 0-5.477-4.438-9.915-9.914-9.915zm.002 18c-4.465 0-8.084-3.62-8.084-8.083 0-4.465 3.62-8.084 8.084-8.084 4.464 0 8.083 3.62 8.083 8.084 0 4.464-3.62 8.083-8.083 8.083z"/>
+        <g id="question-mark">
+            <path id="top" d="M11.766 6.688c-2.5 0-3.22 2.188-3.22 2.188l1.412.854s.298-.79.9-1.23c.517-.374 1.626-.624 2.22.126.7.885-.17 1.587-1.078 2.72C11.047 12.53 11 15 11 15h1.97s.134-2.318 1.04-3.38c.603-.708 1.443-1.34 1.443-2.495s-1.187-2.437-3.687-2.437z"/>
+            <path id="bottom" d="M11 16h2v2h-2z"/>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/help-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/help-rtl.png
new file mode 100644 (file)
index 0000000..e6ab21b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/help-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/help-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/help-rtl.svg
new file mode 100644 (file)
index 0000000..bf4f537
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="help">
+        <path id="circle" d="M12 2.085c5.477 0 9.915 4.438 9.915 9.916 0 5.477-4.438 9.915-9.916 9.915-5.477 0-9.915-4.438-9.915-9.914 0-5.477 4.438-9.915 9.914-9.915zm-.002 18c4.465 0 8.084-3.62 8.084-8.083 0-4.465-3.62-8.084-8.084-8.084-4.464 0-8.083 3.62-8.083 8.084 0 4.464 3.62 8.083 8.083 8.083z"/>
+        <g id="question-mark">
+            <path id="top" d="M12.234 6.688c2.5 0 3.22 2.188 3.22 2.188l-1.412.854s-.298-.79-.9-1.23c-.517-.374-1.626-.624-2.22.126-.7.885.17 1.587 1.078 2.72C12.953 12.53 13 15 13 15h-1.97s-.134-2.318-1.04-3.38c-.603-.708-1.443-1.34-1.443-2.495 0-1.156 1.187-2.437 3.687-2.437z"/>
+            <path id="bottom" d="M13 16h-2v2h2z"/>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/history.png b/resources/lib/oojs-ui/themes/apex/images/icons/history.png
new file mode 100644 (file)
index 0000000..e9bbf95
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/history.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/history.svg b/resources/lib/oojs-ui/themes/apex/images/icons/history.svg
new file mode 100644 (file)
index 0000000..019e558
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="history">
+        <path id="clock-hands" d="M17.26 15.076s-2.385-1.935-4.005-3.062c.72-2.397 1.702-6.56 1.702-6.56s-4.35 5.364-4.877 6.7c-.463 1.168 1.46 2.21 2.346 1.678 1.9.55 4.834 1.244 4.834 1.244z"/>
+        <path id="arrow" d="M12.086 2.085C6.608 2.085 2.17 6.523 2.17 12c0 1.784.476 3.455 1.3 4.9L1.25 18.94h5.688v-5.22L4.87 15.616c-.55-1.088-.866-2.312-.866-3.615 0-4.464 3.62-8.083 8.084-8.083 4.464 0 8.083 3.62 8.083 8.084 0 4.465-3.618 8.084-8.082 8.084-1.145 0-2.228-.247-3.213-.678l-.833 1.634c1.235.557 2.602.874 4.045.874C17.563 21.914 22 17.476 22 12c0-5.477-4.438-9.915-9.914-9.915z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/indent-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/indent-ltr.png
new file mode 100644 (file)
index 0000000..a7bb6ec
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/indent-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/indent-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/indent-ltr.svg
new file mode 100644 (file)
index 0000000..87da9ef
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="indent-list-ltr">
+        <path id="arrow" d="M5 15.08l4.794-3.528-4.704-3.6L5.08 10H3v3h2z"/>
+        <path id="bottom_line" d="M20 17H4c-.553 0-1 .447-1 1v1c0 .553.447 1 1 1h16c.553 0 1-.447 1-1v-1c0-.553-.447-1-1-1z"/>
+        <path id="middle_line" d="M20 10h-7c-.553 0-1 .447-1 1v1c0 .553.447 1 1 1h7c.553 0 1-.447 1-1v-1c0-.553-.447-1-1-1z"/>
+        <path id="top_line" d="M20 3H4c-.553 0-1 .447-1 1v1c0 .553.447 1 1 1h16c.553 0 1-.447 1-1V4c0-.553-.447-1-1-1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/indent-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/indent-rtl.png
new file mode 100644 (file)
index 0000000..003343c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/indent-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/indent-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/indent-rtl.svg
new file mode 100644 (file)
index 0000000..77cc212
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="indent-list-rtl">
+        <path id="arrow" d="M19 15.08l-4.794-3.528 4.704-3.6.01 2.048H21v3h-2z"/>
+        <path id="bottom_line" d="M4 17h16c.553 0 1 .447 1 1v1c0 .553-.447 1-1 1H4c-.553 0-1-.447-1-1v-1c0-.553.447-1 1-1z"/>
+        <path id="middle_line" d="M4 10h7c.553 0 1 .447 1 1v1c0 .553-.447 1-1 1H4c-.553 0-1-.447-1-1v-1c0-.553.447-1 1-1z"/>
+        <path id="top_line_5_" d="M4 3h16c.553 0 1 .447 1 1v1c0 .553-.447 1-1 1H4c-.553 0-1-.447-1-1V4c0-.553.447-1 1-1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/info.png b/resources/lib/oojs-ui/themes/apex/images/icons/info.png
new file mode 100644 (file)
index 0000000..f021189
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/info.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/info.svg b/resources/lib/oojs-ui/themes/apex/images/icons/info.svg
new file mode 100644 (file)
index 0000000..3147340
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0, 0, 24, 24">
+    <g id="info">
+        <path id="circled-i" d="M11.5 17C8.462 17 6 14.536 6 11.5 6 8.463 8.462 6 11.5 6c3.036 0 5.5 2.462 5.5 5.5 0 3.036-2.464 5.5-5.5 5.5zm0-12C7.91 5 5 7.91 5 11.5S7.91 18 11.5 18s6.5-2.91 6.5-6.5S15.09 5 11.5 5zm.5 5v4h1v1h-3v-1h1v-3h-1v-1zm-1-2h1v1h-1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/insert.png b/resources/lib/oojs-ui/themes/apex/images/icons/insert.png
new file mode 100644 (file)
index 0000000..97927a8
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/insert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/insert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/insert.svg
new file mode 100644 (file)
index 0000000..d1e9ba3
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="insert">
+        <path d="M13 5h-2v6H5v2h6v6h2v-6h6v-2h-6z" id="plus"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-a.png b/resources/lib/oojs-ui/themes/apex/images/icons/italic-a.png
new file mode 100644 (file)
index 0000000..a81e803
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/italic-a.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-a.svg b/resources/lib/oojs-ui/themes/apex/images/icons/italic-a.svg
new file mode 100644 (file)
index 0000000..a3a11c6
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="italic-a">
+        <path id="a" d="M14.667 6h-1.372l-7 12H8l2.333-4h4L15 18h1.667l-2-12zm-3.75 7l2.527-4.333.723 4.333h-3.25z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-arab-keheh-jeem.png b/resources/lib/oojs-ui/themes/apex/images/icons/italic-arab-keheh-jeem.png
new file mode 100644 (file)
index 0000000..f94928b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/italic-arab-keheh-jeem.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-arab-keheh-jeem.svg b/resources/lib/oojs-ui/themes/apex/images/icons/italic-arab-keheh-jeem.svg
new file mode 100644 (file)
index 0000000..1c4aeb7
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="italic-arab-keheh-jeem">
+        <path id="arab-keheh-jeem" d="M18.125 5.844c-1.695.555-3.297 1.162-4.594 1.938-.49.3-.773.712-.874 1.125-.064.263-.035.572.063.78.188.406.538.575.843.814l.094-.124.53.625c.14.165.344.514.47.94.137.462.08.724 0 1.124H11.22c-.34 0-.593.007-.767-.02-.34-.053-.256-.208-.234-.34.33-.127.563-.173.937-.14.29-.495.593-.886.906-1.314-.98.037-1.878.015-2.688-.094-.346-.047-.698-.186-1.094-.156-.356.026-.767.24-1.03.72-.246.447-.434.838-.656 1.28l.75-.47c.23-.14.484-.226.72-.218.156.005.274.054.405.094-.232.205-.51.402-.72.563-.3.26-.702.687-.906 1-.403.614-.694 1.083-.875 1.78-.18.69.003 1.34.468 1.75.426.376.846.52 1.28.563.65.065 1.206.093 2-.188.658-.23 1.022-.553 1.5-.97-.882.11-1.816.09-2.53.032-.87-.07-1.268-.384-1.47-.594-.27-.283-.306-.64-.155-1.22.036-.14.097-.322.25-.53.168-.228.364-.435.594-.656.45-.436 1.01-.737 1.46-.938-.044.205-.106.442-.054.687.05.23.248.38.438.47.26.12.507.154.69.155 1.42.01 2.86 0 4.28 0 .247 0 .452-.163.594-.375.14-.208.25-.48.344-.844.13-.5.094-1.062-.094-1.625-.182-.543-.418-1.01-.72-1.406-.334-.443-.673-.83-1-1.22 1.258-.814 2.717-1.238 3.97-1.687.12-.452.224-.926.313-1.313zm-9.47 8.438c-.26.394-.583.69-.874 1 .376.286.75.556 1.095.813.335-.303.626-.674.875-.97-.39-.267-.77-.587-1.094-.843z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-arab-meem.png b/resources/lib/oojs-ui/themes/apex/images/icons/italic-arab-meem.png
new file mode 100644 (file)
index 0000000..a963197
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/italic-arab-meem.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-arab-meem.svg b/resources/lib/oojs-ui/themes/apex/images/icons/italic-arab-meem.svg
new file mode 100644 (file)
index 0000000..7b2670f
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="italic-arab-meem">
+        <path id="arab-meem" d="M16 9.73l-.93 2.19h-4.663c-.48 0-.857.12-1.135.366l-.06.11c-.185 2.016-.503 3.558-.956 4.627-.272.64-.633 1.252-1.082 1.833-.177.226-.22.186-.126-.12l.142-.503.17-.67.234-.87.002-.008.202-1.045.258-1.41.353-1.907c.19-.312.423-.638.698-.98.276-.342.59-.706.94-1.09.13-.092.697-.18 1.705-.266 1.05-.086 1.638-.183 1.765-.293l.065-.128c.007-.11-.01-.24-.054-.394-.044-.153-.12-.327-.232-.522-.22-.428-.438-.64-.654-.64-.294 0-.915.268-1.864.805-.36.208-.376.125-.05-.247 1.557-1.71 2.707-2.566 3.45-2.566.382 0 .67.13.862.394.135.195.25.6.344 1.21l.203 1.2c.105.586.24.895.408.925"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-armn-sha.png b/resources/lib/oojs-ui/themes/apex/images/icons/italic-armn-sha.png
new file mode 100644 (file)
index 0000000..e4f1bda
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/italic-armn-sha.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-armn-sha.svg b/resources/lib/oojs-ui/themes/apex/images/icons/italic-armn-sha.svg
new file mode 100644 (file)
index 0000000..67283c8
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="italic-armn-sha">
+        <path id="armn-sha" d="M11.564 7.678c-.268-.13-.578-.22-.93-.268-.35-.047-.75-.07-1.197-.07h-1.11L8.587 6h1.723c.558 0 1.042.032 1.45.095.416.063.794.173 1.136.33l4.483 2.033-.325 1.67-2.624-1.165c-.125-.058-.27-.103-.432-.134-.164-.04-.356-.058-.576-.058-.583 0-1.137.095-1.663.284-.525.19-1 .46-1.426.812-.42.35-.777.78-1.072 1.283-.294.505-.504 1.075-.63 1.71-.242 1.256-.152 2.21.268 2.87.426.65 1.19.977 2.294.977.55 0 1.045-.08 1.48-.237.437-.156.815-.377 1.136-.66.326-.29.59-.633.796-1.033.21-.4.362-.84.457-1.323l.11-.56h1.6l-.12.59c-.13.674-.356 1.288-.676 1.845-.32.55-.725 1.025-1.214 1.424-.488.394-1.053.7-1.694.922-.643.215-1.344.323-2.106.323-.767 0-1.434-.114-2-.34-.568-.226-1.025-.554-1.372-.985-.347-.436-.573-.97-.678-1.607-.105-.637-.078-1.364.08-2.184.125-.66.346-1.273.66-1.835.316-.568.697-1.067 1.144-1.497.445-.436.944-.794 1.496-1.072.55-.283 1.13-.474 1.733-.574l-.466-.23"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-c.png b/resources/lib/oojs-ui/themes/apex/images/icons/italic-c.png
new file mode 100644 (file)
index 0000000..1ba8613
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/italic-c.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-c.svg b/resources/lib/oojs-ui/themes/apex/images/icons/italic-c.svg
new file mode 100644 (file)
index 0000000..0ef7345
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="italic-c">
+        <path id="c" d="M15.008 13.718l1.48.214c-.467 1.34-1.15 2.354-2.045 3.04-.896.686-1.9 1.03-3.015 1.03-1.36 0-2.438-.43-3.237-1.29C7.398 15.85 7 14.618 7 13.013c0-2.09.606-3.818 1.817-5.185C9.897 6.61 11.237 6 12.84 6c1.186 0 2.145.33 2.878.99.738.66 1.165 1.546 1.282 2.66l-1.397.135c-.148-.84-.453-1.464-.916-1.876-.458-.418-1.05-.626-1.78-.626-1.368 0-2.475.63-3.32 1.892-.733 1.087-1.1 2.377-1.1 3.87 0 1.194.283 2.104.848 2.732.565.628 1.3.942 2.206.942.775 0 1.474-.26 2.1-.784.626-.522 1.08-1.26 1.366-2.216"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-d.png b/resources/lib/oojs-ui/themes/apex/images/icons/italic-d.png
new file mode 100644 (file)
index 0000000..39b09a2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/italic-d.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-d.svg b/resources/lib/oojs-ui/themes/apex/images/icons/italic-d.svg
new file mode 100644 (file)
index 0000000..6ac99ab
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="italic-d">
+        <path id="d" d="M7 18L9.462 6h3.557c.852 0 1.504.063 1.954.188.644.17 1.194.472 1.65.91.456.43.8.97 1.03 1.62.23.65.346 1.378.346 2.186 0 .966-.145 1.847-.435 2.644-.284.79-.66 1.49-1.127 2.095-.46.6-.947 1.072-1.456 1.416-.504.337-1.102.588-1.794.752-.526.126-1.172.188-1.94.188H7m1.86-1.36h1.866c.842 0 1.59-.078 2.245-.236.41-.098.757-.243 1.047-.434.38-.246.727-.57 1.038-.974.408-.535.732-1.143.974-1.825.246-.687.37-1.467.37-2.34 0-.97-.167-1.716-.5-2.235-.333-.524-.756-.87-1.27-1.04-.382-.126-.975-.188-1.78-.188H11L9.095 16.64"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-e.png b/resources/lib/oojs-ui/themes/apex/images/icons/italic-e.png
new file mode 100644 (file)
index 0000000..882a535
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/italic-e.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-e.svg b/resources/lib/oojs-ui/themes/apex/images/icons/italic-e.svg
new file mode 100644 (file)
index 0000000..72df8bb
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="italic-e">
+        <path id="e" d="M7 18L9.474 6H18l-.282 1.367H10.77L10.02 11h6.09l-.28 1.367H9.74L8.86 16.64H16.3L16.018 18H7"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-geor-kan.png b/resources/lib/oojs-ui/themes/apex/images/icons/italic-geor-kan.png
new file mode 100644 (file)
index 0000000..3ab33f2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/italic-geor-kan.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-geor-kan.svg b/resources/lib/oojs-ui/themes/apex/images/icons/italic-geor-kan.svg
new file mode 100644 (file)
index 0000000..a1a93dc
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="italic-geor-kan">
+        <path id="geor-kan" d="M15.057 14.663C14.617 16.888 13.223 18 10.88 18 8.96 18 8 17.213 8 15.64c0-.298.036-.624.108-.977.083-.43.245-.836.488-1.217l1.24.605-.206.614c-.055.26-.083.497-.083.712 0 .972.52 1.458 1.564 1.458 1.308 0 2.102-.723 2.384-2.17l.058-.33c.044-.222.066-.426.066-.614 0-.928-.546-1.39-1.638-1.39h-1.117l.248-1.26h1.118c1.202-.005 1.908-.552 2.118-1.64.04-.182.058-.356.058-.522 0-1.143-.9-1.714-2.697-1.714L11.94 6C14.646 6 16 6.877 16 8.627c0 .248-.027.516-.082.803-.204 1.092-1.05 1.824-2.54 2.194l-.033.166c1.23.2 1.845.823 1.845 1.872 0 .21-.025.433-.074.67l-.058.332"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-i.png b/resources/lib/oojs-ui/themes/apex/images/icons/italic-i.png
new file mode 100644 (file)
index 0000000..28aab44
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/italic-i.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-i.svg b/resources/lib/oojs-ui/themes/apex/images/icons/italic-i.svg
new file mode 100644 (file)
index 0000000..e670e9b
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="italic-i">
+        <path id="i" d="M12.5 18l.25-.995h-1.5l2.508-10.037h1.5L15.5 6h-5l-.242.968h1.5l-2.51 10.037h-1.5L7.5 18z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-k.png b/resources/lib/oojs-ui/themes/apex/images/icons/italic-k.png
new file mode 100644 (file)
index 0000000..4f87e9a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/italic-k.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-k.svg b/resources/lib/oojs-ui/themes/apex/images/icons/italic-k.svg
new file mode 100644 (file)
index 0000000..38bcd73
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="italic-k">
+        <path id="k" d="M12.018 10.652L17 6h-2l-5.31 5.234L11 6H9.5l-3 12H8l1.173-4.693 1.54-1.438C11 16 14 18 14 18h2s-4-2-3.982-7.348z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-s.png b/resources/lib/oojs-ui/themes/apex/images/icons/italic-s.png
new file mode 100644 (file)
index 0000000..aafa618
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/italic-s.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/italic-s.svg b/resources/lib/oojs-ui/themes/apex/images/icons/italic-s.svg
new file mode 100644 (file)
index 0000000..56e457b
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="italic-s">
+        <path id="s" d="M16.474 6.59l-.302 1.525c-.522-.28-1.04-.488-1.557-.628-.51-.145-1.007-.217-1.487-.217-.935 0-1.68.204-2.23.612-.554.408-.83.95-.83 1.627 0 .37.1.657.302.86.207.195.733.407 1.58.634l.937.232c1.06.274 1.795.622 2.208 1.046.413.418.62 1.007.62 1.766 0 1.167-.46 2.117-1.38 2.85-.913.734-2.12 1.1-3.617 1.1-.615 0-1.232-.06-1.852-.185-.62-.12-1.242-.302-1.867-.55l.317-1.61c.573.355 1.147.624 1.72.805.578.18 1.154.27 1.728.27.976 0 1.76-.216 2.347-.65.59-.434.883-1 .883-1.697 0-.464-.12-.815-.356-1.053-.233-.243-.737-.462-1.512-.658l-.937-.24c-1.068-.28-1.8-.6-2.19-.962-.388-.367-.582-.878-.582-1.534 0-1.152.442-2.094 1.325-2.828.888-.74 2.043-1.108 3.463-1.108.553 0 1.1.05 1.642.147.542.098 1.085.245 1.627.442"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/language.png b/resources/lib/oojs-ui/themes/apex/images/icons/language.png
new file mode 100644 (file)
index 0000000..ebd11a2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/language.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/language.svg b/resources/lib/oojs-ui/themes/apex/images/icons/language.svg
new file mode 100644 (file)
index 0000000..549c303
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="language">
+        <path id="japanese" d="M17.533 9.81l.27-.59 1.042.407-.18.363c.66.27 1.1.468 1.312.59.33.21.618.513.86.904.21.393.316.846.316 1.358 0 .786-.302 1.48-.905 2.083-.604.634-1.66 1.057-3.17 1.268-.12-.36-.257-.68-.407-.95.966-.15 1.646-.333 2.038-.545.454-.21.785-.48.998-.813.21-.303.314-.663.314-1.087 0-.482-.136-.905-.407-1.27-.33-.33-.8-.588-1.402-.77-.332.635-.648 1.118-.95 1.45-.242.332-.694.906-1.358 1.72.09.394.18.71.272.952l-1.042.362-.09-.498c-.424.36-.802.617-1.134.77-.36.15-.664.226-.905.226-.303 0-.574-.136-.814-.407-.244-.3-.363-.68-.363-1.132 0-.603.136-1.146.407-1.63.24-.452.603-.89 1.086-1.312.272-.24.725-.528 1.36-.86 0-.27.03-.8.09-1.585-.515.03-.922.045-1.223.045-.393 0-.71-.015-.95-.045l-.047-1.04c.725.09 1.494.134 2.31.134 0-.15.075-.738.227-1.766l1.177.184c-.15.542-.256 1.04-.316 1.493.242-.03.543-.075.906-.136.362-.06.573-.09.634-.09s.648-.15 1.766-.453l.046 1.04c-.967.244-2.145.44-3.532.592-.062.662-.092 1.085-.092 1.265.663-.15 1.284-.225 1.857-.225zm-2.672 3.893c-.06-.48-.135-1.252-.226-2.31-.573.424-1.04.86-1.403 1.313-.302.423-.45.875-.45 1.358 0 .24.043.438.135.588.09.092.195.137.316.137.364 0 .908-.362 1.63-1.087zm.772-2.763c0 .483.03 1.088.09 1.81.604-.904 1.057-1.598 1.36-2.08-.575.06-1.06.15-1.45.27z"/>
+        <path id="english" d="M9.497 15.98h1.85L8.265 7.033h-1.85l-3.08 8.95h1.85L5.74 14h3.21l.547 1.98zm-3.49-3.376L7.34 8.822l1.343 3.782H6.008z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/layout-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/layout-ltr.png
new file mode 100644 (file)
index 0000000..dac7b2c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/layout-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/layout-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/layout-ltr.svg
new file mode 100644 (file)
index 0000000..c3be66c
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="layout-ltr">
+        <path id="text" d="M5 19V5h6v8h8v6H5z"/>
+        <path id="float" d="M13 5v6h6V5h-6zm5 5h-4V6h4v4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/layout-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/layout-rtl.png
new file mode 100644 (file)
index 0000000..470b785
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/layout-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/layout-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/layout-rtl.svg
new file mode 100644 (file)
index 0000000..ce7feb8
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="layout-rtl">
+        <path id="text" d="M5 19v-6h8V5h6v14H5z"/>
+        <path id="float" d="M5 5v6h6V5H5zm1 1h4v4H6V6z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/link.png b/resources/lib/oojs-ui/themes/apex/images/icons/link.png
new file mode 100644 (file)
index 0000000..0b87983
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/link.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/link.svg b/resources/lib/oojs-ui/themes/apex/images/icons/link.svg
new file mode 100644 (file)
index 0000000..f1ac1e3
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="link">
+        <path id="right" d="M19.188 12c0 1.1-.89 2.016-1.988 2.016L13.005 14c.538 1.09.963 2 1.997 2h3C19.658 16 21 13.657 21 12s-1.342-4-2.998-4h-3c-1.034 0-1.46.91-1.998 2l4.195-.016c1.097 0 1.988.917 1.988 2.017z"/>
+        <path id="center" d="M8 12c0 .535.42 1 .938 1h6.11c.517 0 .937-.465.937-1 0-.534-.42-1-.938-1h-6.11C8.42 11 8 11.466 8 12z"/>
+        <path id="left" d="M4.816 12c0-1.1.89-2.016 1.988-2.016L11 10c-.54-1.09-.964-2-1.998-2h-3c-1.656 0-2.998 2.343-2.998 4s1.342 4 2.998 4h3c1.034 0 1.46-.91 1.998-2l-4.195.016c-1.098 0-1.99-.917-1.99-2.017z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/listBullet-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/listBullet-ltr.png
new file mode 100644 (file)
index 0000000..c449a42
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/listBullet-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/listBullet-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/listBullet-ltr.svg
new file mode 100644 (file)
index 0000000..d60fc88
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="bullet-list-ltr">
+        <path id="bottom_dot" d="M5 10H4c-.552 0-1 .447-1 1v1c0 .553.448 1 1 1h1c.552 0 1-.447 1-1v-1c0-.553-.448-1-1-1z"/>
+        <path id="middle_dot" d="M5 17H4c-.552 0-1 .447-1 1v1c0 .553.448 1 1 1h1c.552 0 1-.447 1-1v-1c0-.553-.448-1-1-1z"/>
+        <path id="top_dot" d="M5 3H4c-.552 0-1 .447-1 1v1c0 .553.448 1 1 1h1c.552 0 1-.447 1-1V4c0-.553-.448-1-1-1z"/>
+        <path id="bottom_line" d="M20 17H9c-.552 0-1 .447-1 1v1c0 .553.448 1 1 1h11c.552 0 1-.447 1-1v-1c0-.553-.448-1-1-1z"/>
+        <path id="middle_line" d="M20 10H9c-.552 0-1 .447-1 1v1c0 .553.448 1 1 1h11c.552 0 1-.447 1-1v-1c0-.553-.448-1-1-1z"/>
+        <path id="top_line" d="M20 3H9c-.552 0-1 .447-1 1v1c0 .553.448 1 1 1h11c.552 0 1-.447 1-1V4c0-.553-.448-1-1-1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/listBullet-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/listBullet-rtl.png
new file mode 100644 (file)
index 0000000..1410d61
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/listBullet-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/listBullet-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/listBullet-rtl.svg
new file mode 100644 (file)
index 0000000..4818cbb
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="bullet-list-rtl">
+        <path id="bottom_dot_1_" d="M19 10h1c.552 0 1 .447 1 1v1c0 .553-.448 1-1 1h-1c-.552 0-1-.447-1-1v-1c0-.553.448-1 1-1z"/>
+        <path id="middle_dot_1_" d="M19 17h1c.552 0 1 .447 1 1v1c0 .553-.448 1-1 1h-1c-.552 0-1-.447-1-1v-1c0-.553.448-1 1-1z"/>
+        <path id="top_dot_1_" d="M19 3h1c.552 0 1 .447 1 1v1c0 .553-.448 1-1 1h-1c-.552 0-1-.447-1-1V4c0-.553.448-1 1-1z"/>
+        <path id="bottom_line_7_" d="M4 17h11c.552 0 1 .447 1 1v1c0 .553-.448 1-1 1H4c-.552 0-1-.447-1-1v-1c0-.553.448-1 1-1z"/>
+        <path id="middle_line_7_" d="M4 10h11c.552 0 1 .447 1 1v1c0 .553-.448 1-1 1H4c-.552 0-1-.447-1-1v-1c0-.553.448-1 1-1z"/>
+        <path id="top_line_7_" d="M4 3h11c.552 0 1 .447 1 1v1c0 .553-.448 1-1 1H4c-.552 0-1-.447-1-1V4c0-.553.448-1 1-1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/listNumbered-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/listNumbered-ltr.png
new file mode 100644 (file)
index 0000000..bec80ef
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/listNumbered-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/listNumbered-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/listNumbered-ltr.svg
new file mode 100644 (file)
index 0000000..173e5db
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="number-list-ltr">
+        <path id="bottom_dot" d="M3 16v1h1.993l.03 1H4v1h1v1H3v1h2.023L6 19.998v-1l-.955-.53.955-.5v-.97L4.993 16z"/>
+        <path id="middle_dot" d="M3 9v1h2.117L3 12.187v1.81l3-.06V13H3.882L6 10.812V9.78L5.332 9z"/>
+        <path id="top_dot" d="M4.993 2h-.648L3.018 3.39l.03.61h1.026l-.068 2H3v1h3V6H4.963z"/>
+        <path id="bottom_line" d="M20.002 17H9c-.553 0-1 .447-1 1v1c0 .553.447 1 1 1h11.002c.55 0 .998-.447.998-1v-1c0-.553-.447-1-.998-1z"/>
+        <path id="middle_line" d="M20.002 10H9c-.553 0-1 .447-1 1v1c0 .553.447 1 1 1h11.002c.55 0 .998-.447.998-1v-1c0-.553-.447-1-.998-1z"/>
+        <path id="top_line" d="M20.002 3H9c-.553 0-1 .447-1 1v1c0 .553.447 1 1 1h11.002c.55 0 .998-.447.998-1V4c0-.553-.447-1-.998-1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/listNumbered-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/listNumbered-rtl.png
new file mode 100644 (file)
index 0000000..d807f9e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/listNumbered-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/listNumbered-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/listNumbered-rtl.svg
new file mode 100644 (file)
index 0000000..9e7894e
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="number-list-rtl">
+        <path id="bottom_dot" d="M18 16v1h1.993l.03 1H19v1h1v1h-2v1h2.023L21 19.998v-1l-.956-.53.956-.5v-.97L19.993 16z"/>
+        <path id="middle_dot" d="M18 9v1h2.116L18 12.187v1.81l3-.06V13h-2.118L21 10.812V9.78L20.33 9z"/>
+        <path id="top_dot" d="M19.993 2h-.648l-1.328 1.39.03.61h1.027l-.07 2H18v1h3V6h-1.038z"/>
+        <path id="bottom_line" d="M4 17h11c.553 0 1 .447 1 1v1c0 .553-.447 1-1 1H4c-.553 0-1-.447-1-1v-1c0-.553.447-1 1-1z"/>
+        <path id="middle_line" d="M4 10h11c.553 0 1 .447 1 1v1c0 .553-.447 1-1 1H4c-.553 0-1-.447-1-1v-1c0-.553.447-1 1-1z"/>
+        <path id="top_line" d="M4 3h11c.553 0 1 .447 1 1v1c0 .553-.447 1-1 1H4c-.553 0-1-.447-1-1V4c0-.553.447-1 1-1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/lock.png b/resources/lib/oojs-ui/themes/apex/images/icons/lock.png
new file mode 100644 (file)
index 0000000..2a00404
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/lock.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/lock.svg b/resources/lib/oojs-ui/themes/apex/images/icons/lock.svg
new file mode 100644 (file)
index 0000000..a7b7ae8
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="lock">
+        <path d="M12 6c-2.21 0-4 1.79-4 4v1H7v7h10v-7h-1v-1c0-2.21-1.79-4-4-4zm0 2c1.105 0 2 .895 2 2v1h-4v-1c0-1.105.895-2 2-2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/menu.png b/resources/lib/oojs-ui/themes/apex/images/icons/menu.png
new file mode 100644 (file)
index 0000000..0a78119
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/menu.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/menu.svg b/resources/lib/oojs-ui/themes/apex/images/icons/menu.svg
new file mode 100644 (file)
index 0000000..ce25178
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="menu">
+        <path id="lines" d="M6 15h12c.553 0 1 .447 1 1v1c0 .553-.447 1-1 1H6c-.553 0-1-.447-1-1v-1c0-.553.447-1 1-1zm-1-4v1c0 .553.447 1 1 1h12c.553 0 1-.447 1-1v-1c0-.553-.447-1-1-1H6c-.553 0-1 .447-1 1zm0-5v1c0 .553.447 1 1 1h12c.553 0 1-.447 1-1V6c0-.553-.447-1-1-1H6c-.553 0-1 .447-1 1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/move-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/move-ltr.png
new file mode 100644 (file)
index 0000000..fc4cd39
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/move-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/move-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/move-ltr.svg
new file mode 100644 (file)
index 0000000..670d84d
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="move-ltr">
+        <path id="arrow" d="M8.935 7.18l5.302 5.303-5.302 5.303L10.35 19.2l6.715-6.717-6.716-6.716z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/move-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/move-rtl.png
new file mode 100644 (file)
index 0000000..dbce05e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/move-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/move-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/move-rtl.svg
new file mode 100644 (file)
index 0000000..00583b4
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="move-rtl">
+        <path id="arrow" d="M15.065 17.786l-5.302-5.303 5.302-5.302-1.414-1.413-6.715 6.716L13.65 19.2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/move.png b/resources/lib/oojs-ui/themes/apex/images/icons/move.png
new file mode 100644 (file)
index 0000000..7ba0ee9
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/move.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/move.svg b/resources/lib/oojs-ui/themes/apex/images/icons/move.svg
new file mode 100644 (file)
index 0000000..b04ecdd
--- /dev/null
@@ -0,0 +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="M20 11l-4-3v2h-3V7h2l-3-4-3 4h2v3H8V8l-4 3 4 3v-2h3v3H9l3 4 3-4h-2v-3h3v2z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/newline-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/newline-ltr.png
new file mode 100644 (file)
index 0000000..9e7c67f
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/newline-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/newline-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/newline-ltr.svg
new file mode 100644 (file)
index 0000000..1d654eb
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="line_return">
+        <path d="M17.8 5.7c-.5 0-.9.2-1.2.5s-.5.7-.5 1.2v4.3H11v-4l-6 5.5 6 5.5v-4h8v-9h-1.2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/newline-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/newline-rtl.png
new file mode 100644 (file)
index 0000000..20f5d0d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/newline-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/newline-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/newline-rtl.svg
new file mode 100644 (file)
index 0000000..63e5aa1
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="line_return">
+        <path d="M6.2 5.7c.5 0 .9.2 1.2.5.3.3.5.7.5 1.2v4.3H13v-4l6 5.5-6 5.5v-4H5v-9h1.2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-ltr.png
new file mode 100644 (file)
index 0000000..8b15525
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-ltr.svg
new file mode 100644 (file)
index 0000000..e0e4fc0
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M16 14l2 2V5h-4v2h2zm0 2L9 9 7 7 6 6 5 5 2 2 1 3l2 2H2v14h4v-2H4V7h1l2 2v10h4v-2H9v-6l6 6h-1v2h3l4 4 1-1-4-4zm-5-9V5H7l2 2zm8-2v2h2v10h-2l2 2h2V5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-rtl.png
new file mode 100644 (file)
index 0000000..f7bab38
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/noWikiText-rtl.svg
new file mode 100644 (file)
index 0000000..a7be5ab
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g484">
+        <path d="M8 14l-2 2V5h4v2H8zm0 2l7-7 2-2 1-1 1-1 3-3 1 1-2 2h1v14h-4v-2h2V7h-1l-2 2v10h-4v-2h2v-6l-6 6h1v2H7l-4 4-1-1 4-4zm5-9V5h4l-2 2zM5 5v2H3v10h2l-2 2H1V5z" id="path486"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/outdent-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/outdent-ltr.png
new file mode 100644 (file)
index 0000000..03038c1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/outdent-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/outdent-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/outdent-ltr.svg
new file mode 100644 (file)
index 0000000..30b1db6
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="outdent-list-ltr">
+        <path id="arrow" d="M8 13h2v-3H7.948l-.03-2.06-4.713 3.585L8 15.08z"/>
+        <path id="bottom_line" d="M20 17H4c-.553 0-1 .447-1 1v1c0 .553.447 1 1 1h16c.553 0 1-.447 1-1v-1c0-.553-.447-1-1-1z"/>
+        <path id="middle_line" d="M20 10h-7c-.553 0-1 .447-1 1v1c0 .553.447 1 1 1h7c.553 0 1-.447 1-1v-1c0-.553-.447-1-1-1z"/>
+        <path id="top_line" d="M20 3H4c-.553 0-1 .447-1 1v1c0 .553.447 1 1 1h16c.553 0 1-.447 1-1V4c0-.553-.447-1-1-1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/outdent-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/outdent-rtl.png
new file mode 100644 (file)
index 0000000..58737cb
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/outdent-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/outdent-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/outdent-rtl.svg
new file mode 100644 (file)
index 0000000..471fe23
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="outdent-list-rtl">
+        <path id="arrow" d="M16 13h-2v-3h2.052l.03-2.06 4.713 3.585L16 15.08z"/>
+        <path id="bottom_line" d="M4 17h16c.553 0 1 .447 1 1v1c0 .553-.447 1-1 1H4c-.553 0-1-.447-1-1v-1c0-.553.447-1 1-1z"/>
+        <path id="middle_line" d="M4 10h7c.553 0 1 .447 1 1v1c0 .553-.447 1-1 1H4c-.553 0-1-.447-1-1v-1c0-.553.447-1 1-1z"/>
+        <path id="top_line" d="M4 3h16c.553 0 1 .447 1 1v1c0 .553-.447 1-1 1H4c-.553 0-1-.447-1-1V4c0-.553.447-1 1-1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/outline-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/outline-ltr.png
new file mode 100644 (file)
index 0000000..a9a186b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/outline-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/outline-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/outline-ltr.svg
new file mode 100644 (file)
index 0000000..44c1591
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="outline-ltr">
+        <path id="text" d="M5 13h14v6H5v-6z"/>
+        <path id="float" d="M5 5v6h6V5H5zm5 5H6V6h4v4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/outline-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/outline-rtl.png
new file mode 100644 (file)
index 0000000..b7f025d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/outline-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/outline-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/outline-rtl.svg
new file mode 100644 (file)
index 0000000..c5b19c8
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="outline-rtl">
+        <path id="text" d="M19 19H5v-6h14v6z"/>
+        <path id="float" d="M13 5v6h6V5h-6zm1 1h4v4h-4V6z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/picture.png b/resources/lib/oojs-ui/themes/apex/images/icons/picture.png
new file mode 100644 (file)
index 0000000..2043424
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/picture.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/picture.svg b/resources/lib/oojs-ui/themes/apex/images/icons/picture.svg
new file mode 100644 (file)
index 0000000..24d7315
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="picture">
+        <path id="frame" d="M18 4H6c-2-.007-3 .993-3 2.993L3.014 16C3 18 4 18.988 6 19h12c2-.012 2.994-1 3-3.006v-9c-.006-2-1-3-3-2.994zm1 13H5V6h14v11z"/>
+        <path id="mountains" d="M6 13.5L9.5 10l2.328 2.312-1.312 1.094.875 1.032L15.5 11l2.5 2v3H6z"/>
+        <path id="sky" d="M6 12l3.516-4.156 3.046 3.172L15.5 9l2.5 2V7H6z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/puzzle-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/puzzle-ltr.png
new file mode 100644 (file)
index 0000000..47dad2b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/puzzle-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/puzzle-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/puzzle-ltr.svg
new file mode 100644 (file)
index 0000000..0ea25d7
--- /dev/null
@@ -0,0 +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 9.9c-.7 0-1.4.3-1.8.9V6h-4c.2-.4.4-.8.4-1.2 0-1.2-1-2.2-2.2-2.2-1.3-.1-2.3.9-2.3 2.2 0 .4.2.8.4 1.2H4.1v3.6l.6-.1c1.4 0 2.5 1.1 2.5 2.5s-1.1 2.5-2.5 2.5c-.2 0-.4 0-.6-.1V18H9c-.5.4-.9 1-.9 1.8 0 1.2 1 2.2 2.3 2.2 1.2 0 2.2-1 2.2-2.2 0-.7-.3-1.4-.9-1.8h4.5v-4.5c.4.5 1 .9 1.8.9 1.2 0 2.2-1 2.2-2.2 0-1.3-1-2.3-2.2-2.3z" id="path542"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/puzzle-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/puzzle-rtl.png
new file mode 100644 (file)
index 0000000..51c40db
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/puzzle-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/puzzle-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/puzzle-rtl.svg
new file mode 100644 (file)
index 0000000..e606425
--- /dev/null
@@ -0,0 +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="M6.3 9.9c.7 0 1.4.3 1.8.9V6h4c-.2-.4-.4-.8-.4-1.2 0-1.2 1-2.2 2.2-2.2 1.3-.1 2.3.9 2.3 2.2 0 .4-.2.8-.4 1.2h4.4v3.6l-.6-.1c-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5c.2 0 .4 0 .6-.1V18h-4.9c.5.4.9 1 .9 1.8 0 1.2-1 2.2-2.3 2.2-1.2 0-2.2-1-2.2-2.2 0-.7.3-1.4.9-1.8H8.1v-4.5c-.4.5-1 .9-1.8.9-1.2 0-2.2-1-2.2-2.2 0-1.3 1-2.3 2.2-2.3z" id="path542"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/quotes-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/quotes-ltr.png
new file mode 100644 (file)
index 0000000..6c571ce
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/quotes-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/quotes-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/quotes-ltr.svg
new file mode 100644 (file)
index 0000000..062d2d9
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M19.9 8.7c.3-.1.6-.3.8-.6s.3-.7.3-1.1V6c-1.3.2-1.9.2-3.3.8-.9.5-1.6 1.1-2.2 1.8S13 12 13 16v4h6c1.1 0 2-.9 2-2v-6h-4s.1-.9.8-1.8c.6-.7 1.3-1.2 2.1-1.5zM5.5 8.6C4.9 9.3 3 12 3 16v4h6c1.1 0 2-.9 2-2v-6H7s.1-.9.8-1.8c.6-.7 1.3-1.2 2.1-1.5.3-.1.6-.3.8-.6s.3-.7.3-1.1V6c-1.3.2-1.9.2-3.3.8-.8.5-1.6 1.1-2.2 1.8z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/quotes-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/quotes-rtl.png
new file mode 100644 (file)
index 0000000..fc46c93
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/quotes-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/quotes-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/quotes-rtl.svg
new file mode 100644 (file)
index 0000000..1057ffc
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g552">
+        <path d="M4.1 8.7c-.3-.1-.6-.3-.8-.6C3.1 7.8 3 7.4 3 7V6c1.3.2 1.9.2 3.3.8.9.5 1.6 1.1 2.2 1.8.6.7 2.5 3.4 2.5 7.4v4H5c-1.1 0-2-.9-2-2v-6h4s-.1-.9-.8-1.8C5.6 9.5 4.9 9 4.1 8.7zm14.4-.1c.6.7 2.5 3.4 2.5 7.4v4h-6c-1.1 0-2-.9-2-2v-6h4s-.1-.9-.8-1.8c-.6-.7-1.3-1.2-2.1-1.5-.3-.1-.6-.3-.8-.6-.2-.3-.3-.7-.3-1.1V6c1.3.2 1.9.2 3.3.8.8.5 1.6 1.1 2.2 1.8z" id="path554"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/quotesAdd-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/quotesAdd-ltr.png
new file mode 100644 (file)
index 0000000..7fd4754
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/quotesAdd-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/quotesAdd-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/quotesAdd-ltr.svg
new file mode 100644 (file)
index 0000000..bacec22
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g4">
+        <path d="M3.5 8.6C2.9 9.3 1 12 1 16v4h6c1.1 0 2-.9 2-2v-6H5s.1-.9.8-1.8c.6-.7 1.3-1.2 2.1-1.5.3-.1.6-.3.8-.6.2-.3.3-.7.3-1.1V6c-1.3.2-1.9.2-3.3.8-.8.5-1.6 1.1-2.2 1.8zM19 5V1h-2v4h-4v2h4v4h2V7h4V5zm-4 7s.1-.9.8-1.8l.2-.2V8h-1.9l-.6.6C12.9 9.3 11 12 11 16v4h6c1.1 0 2-.9 2-2v-6h-4z" id="path6"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/quotesAdd-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/quotesAdd-rtl.png
new file mode 100644 (file)
index 0000000..e305696
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/quotesAdd-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/quotesAdd-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/quotesAdd-rtl.svg
new file mode 100644 (file)
index 0000000..9aed41d
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g4">
+        <path d="M20.5 8.6c.6.7 2.5 3.4 2.5 7.4v4h-6c-1.1 0-2-.9-2-2v-6h4s-.1-.9-.8-1.8c-.6-.7-1.3-1.2-2.1-1.5-.3-.1-.6-.3-.8-.6-.2-.3-.3-.7-.3-1.1V6c1.3.2 1.9.2 3.3.8.8.5 1.6 1.1 2.2 1.8zM5 5V1h2v4h4v2H7v4H5V7H1V5zm4 7s-.1-.9-.8-1.8L8 10V8h1.9l.6.6c.6.7 2.5 3.4 2.5 7.4v4H7c-1.1 0-2-.9-2-2v-6h4z" id="path6"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/redirect-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/redirect-ltr.png
new file mode 100644 (file)
index 0000000..18ceb35
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/redirect-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/redirect-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/redirect-ltr.svg
new file mode 100644 (file)
index 0000000..be25d43
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="create_redirect">
+        <g>
+            <path d="M17.7 2.4c-.3-.3-.7-.4-1.2-.4H4.4v16.2c0 .5.1.8.4 1.1s.7.7 1.2.7h10.2c-.6-.2-1.2-.5-1.9-1-.4-.3-.8-.6-1.2-1l-.5-.6H6.4V16h5.4s-.4-1.5-.4-2h-5v-1h9v1c.4.1 1.1.1 1.5.1.4 0 .7 0 1.1-.1V3.5c.1-.5-.1-.9-.3-1.1zM12.5 4h3v4.5h-3V4zM6.4 4h4v1.6h-4V4zm0 3h4v1.5h-4V7zm0 3h9v1.5h-9V10zm12.7 3.1l4.9 3.8-4.9 4.8v-2.2c-1.7 0-2.9-.2-4.3-1.2-1.2-.8-2.5-2.6-2.3-4.1 1.4 1 2.9 1.5 4.4 1.5.7 0 1.4-.1 2.1-.3l.1-2.3"/>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/redirect-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/redirect-rtl.png
new file mode 100644 (file)
index 0000000..dc9b0e6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/redirect-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/redirect-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/redirect-rtl.svg
new file mode 100644 (file)
index 0000000..a41d178
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="create_redirect">
+        <g id="g3264">
+            <path d="M6.3 2.4c.3-.3.7-.4 1.2-.4h12.1v16.2c0 .5-.1.8-.4 1.1-.3.3-.7.7-1.2.7H7.8c.6-.2 1.2-.5 1.9-1 .4-.3.8-.6 1.2-1l.5-.6h6.2V16h-5.4s.4-1.5.4-2h5v-1h-9v1c-.4.1-1.1.1-1.5.1-.4 0-.7 0-1.1-.1V3.5c-.1-.5.1-.9.3-1.1zM11.5 4h-3v4.5h3V4zm6.1 0h-4v1.6h4V4zm0 3h-4v1.5h4V7zm0 3h-9v1.5h9V10z" id="path3266"/>
+            <path d="M4.9 13.1L0 16.9l4.9 4.8v-2.2c1.7 0 2.9-.2 4.3-1.2 1.2-.8 2.5-2.6 2.3-4.1-1.4 1-2.9 1.5-4.4 1.5-.7 0-1.4-.1-2.1-.3l-.1-2.3" id="path3268"/>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/regular-expression.png b/resources/lib/oojs-ui/themes/apex/images/icons/regular-expression.png
new file mode 100644 (file)
index 0000000..68bb9d7
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/regular-expression.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/regular-expression.svg b/resources/lib/oojs-ui/themes/apex/images/icons/regular-expression.svg
new file mode 100644 (file)
index 0000000..e9594a1
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="regular-expression">
+        <path id="left-bracket" d="M3 12.045c0-.99.15-1.915.45-2.777.306-.862.743-1.618 1.314-2.268H6.23c-.552.72-.968 1.512-1.25 2.374-.28.862-.42 1.75-.42 2.66 0 .915.142 1.8.427 2.654.29.85.7 1.622 1.23 2.312H4.766c-.574-.635-1.012-1.376-1.313-2.223-.3-.847-.45-1.758-.45-2.732"/>
+        <path id="dot" d="M10 16c0 .552-.448 1-1 1s-1-.448-1-1 .448-1 1-1 1 .448 1 1z"/>
+        <path id="star" d="M14.25 7.013l-.24 2.156 2.187-.61.193 1.477-1.992.14 1.307 1.74-1.33.71-.914-1.834-.802 1.822-1.383-.697 1.295-1.74-1.98-.152.23-1.465 2.138.61-.24-2.156h1.535"/>
+        <path id="right-bracket" d="M21 12.045c0 .982-.152 1.896-.457 2.744-.3.846-.737 1.584-1.307 2.21h-1.453c.527-.686.936-1.455 1.225-2.306.29-.855.434-1.74.434-2.66 0-.91-.14-1.797-.422-2.66-.28-.862-.697-1.654-1.248-2.374h1.465c.574.653 1.012 1.413 1.313 2.28.3.86.45 1.783.45 2.765"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/remove.png b/resources/lib/oojs-ui/themes/apex/images/icons/remove.png
new file mode 100644 (file)
index 0000000..9dc34b8
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/remove.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/remove.svg b/resources/lib/oojs-ui/themes/apex/images/icons/remove.svg
new file mode 100644 (file)
index 0000000..ef5f97b
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="remove">
+        <path id="trash-can" d="M12 10h-1v6h1v-6zm-2 0H9v6h1v-6zm4 0h-1v6h1v-6zm0-4V5H9v1H6v3h1v7.966l1 1.03v-.073V18h6.984l.016-.018v.015l1-1.03V9h1V6h-3zm1 11H8V9h7v8zm1-9H7V7h9v1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/search.png b/resources/lib/oojs-ui/themes/apex/images/icons/search.png
new file mode 100644 (file)
index 0000000..39d3ab8
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/search.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/search.svg b/resources/lib/oojs-ui/themes/apex/images/icons/search.svg
new file mode 100644 (file)
index 0000000..e683c01
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="search">
+        <path id="search" d="M16.02 15.96l-2.373-2.375-.17-.1c.404-.565.644-1.26.644-2.008C14.12 9.557 12.564 8 10.645 8c-1.92 0-3.478 1.557-3.478 3.478 0 1.92 1.557 3.477 3.478 3.477.75 0 1.442-.24 2.01-.643l.098.17 2.375 2.373c.19.19.543.143.79-.104s.293-.6.104-.79zm-5.376-2.27c-1.22 0-2.213-.99-2.213-2.213 0-1.22.993-2.213 2.214-2.213 1.222 0 2.213.992 2.213 2.213 0 1.222-.992 2.213-2.213 2.213z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/secure-link.png b/resources/lib/oojs-ui/themes/apex/images/icons/secure-link.png
new file mode 100644 (file)
index 0000000..a2eba48
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/secure-link.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/secure-link.svg b/resources/lib/oojs-ui/themes/apex/images/icons/secure-link.svg
new file mode 100644 (file)
index 0000000..9a75454
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
+    <g id="secure">
+        <path id="lock" d="M8 5h.02v-.997c0-.057.003-1.41-.833-2.255-.434-.438-.998-.66-1.68-.66s-1.244.222-1.677.66c-.837.846-.833 2.198-.832 2.25V5H3c-.553 0-1 .447-1 1v3c0 .553.447 1 1 1h5c.553 0 1-.447 1-1V6c0-.553-.447-1-1-1zM3.998 5V3.993c0-.01.005-1 .543-1.543.483-.485 1.45-.487 1.933-.002.544.546.546 1.536.546 1.55V5H3.997z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/settings.png b/resources/lib/oojs-ui/themes/apex/images/icons/settings.png
new file mode 100644 (file)
index 0000000..dd2706b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/settings.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/settings.svg b/resources/lib/oojs-ui/themes/apex/images/icons/settings.svg
new file mode 100644 (file)
index 0000000..7ec6263
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0, 0, 24, 24">
+    <g id="settings">
+        <path id="gear" d="M3 4h3v2H3zm9 0h9v2h-9zM8 3h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1H8c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1zm-5 8h9v2H3zm15 0h3v2h-3zm-4-1h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 0-1-.448-1-1v-2c0-.552.448-1 1-1zM3 18h6v2H3zm12 0h6v2h-6zm-4-1h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 0-1-.448-1-1v-2c0-.552.448-1 1-1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/smaller-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/smaller-ltr.png
new file mode 100644 (file)
index 0000000..7181e6d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/smaller-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/smaller-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/smaller-ltr.svg
new file mode 100644 (file)
index 0000000..82d16af
--- /dev/null
@@ -0,0 +1,7 @@
+<?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 id="a" d="M12.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z"/>
+    <g id="down">
+        <path id="arrow" d="M22 3l-3.5 6L15 3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/smaller-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/smaller-rtl.png
new file mode 100644 (file)
index 0000000..cc539f0
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/smaller-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/smaller-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/smaller-rtl.svg
new file mode 100644 (file)
index 0000000..7466f48
--- /dev/null
@@ -0,0 +1,7 @@
+<?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 id="a" d="M12.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z"/>
+    <g id="down">
+        <path id="arrow" d="M9 3L5.5 9 2 3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/specialCharacter.png b/resources/lib/oojs-ui/themes/apex/images/icons/specialCharacter.png
new file mode 100644 (file)
index 0000000..2f38ecc
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/specialCharacter.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/specialCharacter.svg b/resources/lib/oojs-ui/themes/apex/images/icons/specialCharacter.svg
new file mode 100644 (file)
index 0000000..c2ffd48
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="special-character">
+        <path id="omega" d="M12 6.708c-.794 0-1.368.103-1.894.31-.525.207-.944.496-1.255.867-.31.366-.53.808-.66 1.327-.127.513-.19 1.08-.19 1.7 0 .512.057 1 .173 1.46.122.46.31.87.568 1.23.63.862 1.156 1.138 2.012 1.362L11 18H6v-3h.604l.53 1.353.395.053.604.044.75.035.457.01H10l-.09-.895c-.63-.094-.812-.268-1.337-.522-.525-.26-.98-.59-1.365-.99-.38-.402-.675-.868-.89-1.4-.213-.536-.32-1.13-.32-1.778 0-.82.13-1.537.394-2.15.27-.62.656-1.133 1.163-1.54.507-.407 1.133-.71 1.878-.912.745-.206 1.6-.31 2.565-.31.96 0 1.81.103 2.556.31.75.2 1.38.504 1.887.912.508.407.893.92 1.155 1.54.27.614.403 1.33.403 2.15 0 .65-.107 1.242-.32 1.78-.215.53-.514.996-.9 1.397-.378.4-.83.732-1.355.99-.525.255-.707.43-1.336.523l-.092.894h.66l.447-.01.75-.034.606-.044.403-.053.532-1.354h.605v3h-5l.247-3.036c1.066-.11 1.337-.696 2.002-1.363.263-.36.452-.77.568-1.23.122-.46.183-.946.183-1.46 0-.618-.064-1.185-.192-1.698-.128-.52-.348-.962-.66-1.327-.31-.372-.73-.66-1.255-.867-.525-.206-1.1-.31-1.894-.31"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/star.png b/resources/lib/oojs-ui/themes/apex/images/icons/star.png
new file mode 100644 (file)
index 0000000..046bbf7
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/star.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/star.svg b/resources/lib/oojs-ui/themes/apex/images/icons/star.svg
new file mode 100644 (file)
index 0000000..54ba77a
--- /dev/null
@@ -0,0 +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 7.4l1.7 3.6 4 .5-2.7 2.8.5 3.9-3.5-1.7-3.6 1.7.6-3.9-2.8-2.8 3.9-.5L12 7.4M12 4L9.2 9.6l-6.2.9 4.5 4.4L6.4 21l5.6-3 5.5 3-1-6.2 4.5-4.4-6.3-.9L12 4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-a.png b/resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-a.png
new file mode 100644 (file)
index 0000000..cab7a98
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-a.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-a.svg b/resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-a.svg
new file mode 100644 (file)
index 0000000..070d785
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="strikethrough-a">
+        <path id="strikethrough" d="M6 11h12v1H6v-1z"/>
+        <path id="a" d="M12.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-s.png b/resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-s.png
new file mode 100644 (file)
index 0000000..1bcb55b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-s.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-s.svg b/resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-s.svg
new file mode 100644 (file)
index 0000000..6408d01
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="strikethrough-s">
+        <path id="strikethrough" d="M6 12h12v1H6v-1z"/>
+        <path id="s" d="M12.094 6c-1.133 0-2.076.287-2.75.9-.67.613-1 1.49-1 2.52 0 .89.22 1.602.72 2.13.497.528 1.278.91 2.31 1.14l.813.182v-.03c.656.147 1.128.375 1.375.63.252.256.375.607.375 1.11 0 .573-.172.97-.53 1.26-.36.29-.895.45-1.626.45-.476 0-.968-.074-1.468-.24-.502-.166-1.03-.417-1.562-.75l-.375-.238v2.158l.156.062c.58.237 1.144.417 1.69.54.548.12 1.07.18 1.56.18 1.287 0 2.298-.293 3-.9.71-.605 1.063-1.486 1.063-2.608 0-.943-.256-1.726-.78-2.312-.522-.592-1.306-1-2.345-1.23l-.812-.18c-.716-.148-1.204-.352-1.406-.54-.205-.202-.312-.484-.312-.934 0-.533.162-.9.5-1.17.342-.27.836-.42 1.53-.42.396 0 .82.052 1.25.18.434.128.91.334 1.407.6l.375.18V6.63s-1.188-.383-1.688-.48c-.5-.097-.984-.15-1.468-.15z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-y.png b/resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-y.png
new file mode 100644 (file)
index 0000000..5b1c1fd
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-y.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-y.svg b/resources/lib/oojs-ui/themes/apex/images/icons/strikethrough-y.svg
new file mode 100644 (file)
index 0000000..2fdbc87
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="strikethrough-y">
+        <path id="strikethrough" d="M6 11h12v1H6v-1z"/>
+        <path id="a" d="M7 6h1.724l3.288 4.935L15.276 6H17l-4.194 6.285V18h-1.612v-5.715L7 6"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/subscript-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/subscript-ltr.png
new file mode 100644 (file)
index 0000000..f8b8766
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/subscript-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/subscript-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/subscript-ltr.svg
new file mode 100644 (file)
index 0000000..fbb0c3c
--- /dev/null
@@ -0,0 +1,5 @@
+<?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 id="x" d="M14 9l-2.354 3.406L14 16h-1.2L11 13.25 9.2 16H8l2.403-3.662L8 9h1.188l1.857 2.494L12.797 9H14z"/>
+    <path d="M18 13l-1 1v3l1 1h-1l-.527-.46L16 18h-1l1-1v-3l-1-1h1l.485.497L17 13z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/subscript-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/subscript-rtl.png
new file mode 100644 (file)
index 0000000..f01e11d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/subscript-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/subscript-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/subscript-rtl.svg
new file mode 100644 (file)
index 0000000..91a71ec
--- /dev/null
@@ -0,0 +1,5 @@
+<?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 id="x" d="M12 9l2.354 3.406L12 16h1.2l1.8-2.75L16.8 16H18l-2.403-3.662L18 9h-1.188l-1.857 2.494L13.203 9H12z"/>
+    <path d="M8 13l1 1v3l-1 1h1l.527-.46L10 18h1l-1-1v-3l1-1h-1l-.485.497L9 13z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/superscript-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/superscript-ltr.png
new file mode 100644 (file)
index 0000000..69fe6e7
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/superscript-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/superscript-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/superscript-ltr.svg
new file mode 100644 (file)
index 0000000..45abfda
--- /dev/null
@@ -0,0 +1,5 @@
+<?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 id="x" d="M14 9l-2.354 3.406L14 16h-1.2L11 13.25 9.2 16H8l2.403-3.662L8 9h1.188l1.857 2.494L12.797 9H14z"/>
+    <path d="M18 7l-1 1v3l1 1h-1l-.527-.46L16 12h-1l1-1V8l-1-1h1l.485.497L17 7z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/superscript-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/superscript-rtl.png
new file mode 100644 (file)
index 0000000..eac3d1d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/superscript-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/superscript-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/superscript-rtl.svg
new file mode 100644 (file)
index 0000000..33b5814
--- /dev/null
@@ -0,0 +1,5 @@
+<?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 id="x" d="M12 9l2.354 3.406L12 16h1.2l1.8-2.75L16.8 16H18l-2.403-3.662L18 9h-1.188l-1.857 2.494L13.203 9H12z"/>
+    <path d="M8 7l1 1v3l-1 1h1l.527-.46L10 12h1l-1-1V8l1-1h-1l-.485.497L9 7z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/table-caption.png b/resources/lib/oojs-ui/themes/apex/images/icons/table-caption.png
new file mode 100644 (file)
index 0000000..1389d3d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/table-caption.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/table-caption.svg b/resources/lib/oojs-ui/themes/apex/images/icons/table-caption.svg
new file mode 100644 (file)
index 0000000..6b7edc6
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="table-caption">
+        <path id="caption" d="M6 6h12v3H6z"/>
+        <path id="table" d="M4 10v7h16v-7H4zm1 1h4v2H5v-2zm5 0h4v2h-4v-2zm5 0h4v2h-4v-2zM5 14h4v2H5v-2zm5 0h4v2h-4v-2zm5 0h4v2h-4v-2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-column-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-column-ltr.png
new file mode 100644 (file)
index 0000000..dfd5e51
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-column-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-column-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-column-ltr.svg
new file mode 100644 (file)
index 0000000..a67ed20
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="table-insert-column-ltr">
+        <path d="M13 9h-2v2H9v2h2v2h2v-2h2v-2h-2z" id="plus"/>
+        <path d="M5 5h2v14H5z" id="column"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-column-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-column-rtl.png
new file mode 100644 (file)
index 0000000..1354a88
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-column-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-column-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-column-rtl.svg
new file mode 100644 (file)
index 0000000..dee782e
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="table-insert-column-rtl">
+        <path d="M13 9h-2v2H9v2h2v2h2v-2h2v-2h-2z" id="plus"/>
+        <path d="M17 5h2v14h-2z" id="column"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-row-after.png b/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-row-after.png
new file mode 100644 (file)
index 0000000..3d8091e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-row-after.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-row-after.svg b/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-row-after.svg
new file mode 100644 (file)
index 0000000..ad9d86d
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="table-insert-row-after">
+        <path d="M13 9h-2v2H9v2h2v2h2v-2h2v-2h-2z" id="plus"/>
+        <path d="M5 17h14v2H5z" id="row"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-row-before.png b/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-row-before.png
new file mode 100644 (file)
index 0000000..e357f90
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-row-before.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-row-before.svg b/resources/lib/oojs-ui/themes/apex/images/icons/table-insert-row-before.svg
new file mode 100644 (file)
index 0000000..e9dfe04
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="table-insert-row-before">
+        <path d="M13 9h-2v2H9v2h2v2h2v-2h2v-2h-2z" id="plus"/>
+        <path d="M5 5h14v2H5z" id="row"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/table-merge-cells.png b/resources/lib/oojs-ui/themes/apex/images/icons/table-merge-cells.png
new file mode 100644 (file)
index 0000000..202a120
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/table-merge-cells.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/table-merge-cells.svg b/resources/lib/oojs-ui/themes/apex/images/icons/table-merge-cells.svg
new file mode 100644 (file)
index 0000000..3ffb9e5
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24">
+    <g id="table-merge-cells">
+        <g id="merge-cell-left">
+            <path id="cell-border" d="M4 7v9h7v-3l-1 .834V15H5V8h5v1.167L11 10V7z"/>
+            <path id="arrow" d="M8 9v2H6v1h2v2l3-2.5z"/>
+        </g>
+        <use id="merge-cell-right" xlink:href="#merge-cell-left" transform="matrix(-1 0 0 1 24 0)"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/table.png b/resources/lib/oojs-ui/themes/apex/images/icons/table.png
new file mode 100644 (file)
index 0000000..fb6b985
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/table.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/table.svg b/resources/lib/oojs-ui/themes/apex/images/icons/table.svg
new file mode 100644 (file)
index 0000000..3c901f7
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="table-insert">
+        <path id="table" d="M4 5v13h16V5zm2 2h5v4H6zm7 0h5v4h-5zm-7 5h5v4H6zm7 0h5v4h-5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/tag.png b/resources/lib/oojs-ui/themes/apex/images/icons/tag.png
new file mode 100644 (file)
index 0000000..15de70b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/tag.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/tag.svg b/resources/lib/oojs-ui/themes/apex/images/icons/tag.svg
new file mode 100644 (file)
index 0000000..8e517bf
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="tag">
+        <path d="M18.748 11.717c.39.39.39 1.025 0 1.414l-4.95 4.95c-.388.39-1.024.39-1.413 0l-6.01-6.01c-.39-.388-.707-1.156-.707-1.706V6c0-.55.45-1 1-1h4.363c.55 0 1.32.318 1.708.707l6.01 6.01zM8.104 7.457c-.58.575-.578 1.513 0 2.092.577.576 1.515.576 2.094 0 .576-.578.576-1.517 0-2.095-.58-.576-1.518-.577-2.094 0z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/templateAdd-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/templateAdd-ltr.png
new file mode 100644 (file)
index 0000000..dd52d12
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/templateAdd-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/templateAdd-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/templateAdd-ltr.svg
new file mode 100644 (file)
index 0000000..13b1fc7
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M24 6h-4V2h-2v4h-4v2h4v4h2V8h4z"/>
+    </g>
+    <path d="M19 13v7H3c-1.1 0-2-.9-2-2V7h12V6H0v12c0 1.7 1.3 3 3 3h17v-8h-1z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/templateAdd-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/templateAdd-rtl.png
new file mode 100644 (file)
index 0000000..08b1613
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/templateAdd-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/templateAdd-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/templateAdd-rtl.svg
new file mode 100644 (file)
index 0000000..d44c3a4
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g690">
+        <path d="M0 6h4V2h2v4h4v2H6v4H4V8H0z" id="path692"/>
+    </g>
+    <path d="M5 13v7h16c1.1 0 2-.9 2-2V7H11V6h13v12c0 1.7-1.3 3-3 3H4v-8h1z" id="path694"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/text-dir-lefttoright.png b/resources/lib/oojs-ui/themes/apex/images/icons/text-dir-lefttoright.png
new file mode 100644 (file)
index 0000000..ffd190a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/text-dir-lefttoright.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/text-dir-lefttoright.svg b/resources/lib/oojs-ui/themes/apex/images/icons/text-dir-lefttoright.svg
new file mode 100644 (file)
index 0000000..7dbff91
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="text-dir-ltr">
+        <path d="M7 7H5V6h2l.47.5L8 6h2v1H8v10h2v1H8l-.5-.53L7 18H5v-1h2zm6.976 9v-2H11v-4h2.976V8.044L20 12.022z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/text-dir-righttoleft.png b/resources/lib/oojs-ui/themes/apex/images/icons/text-dir-righttoleft.png
new file mode 100644 (file)
index 0000000..214f8d1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/text-dir-righttoleft.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/text-dir-righttoleft.svg b/resources/lib/oojs-ui/themes/apex/images/icons/text-dir-righttoleft.svg
new file mode 100644 (file)
index 0000000..76933a6
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="text-dir-rtl">
+        <path d="M17 17h2v1h-2l-.47-.5-.53.5h-2v-1h2V7h-2V6h2l.5.53L17 6h2v1h-2zm-6.976-9v2H13v4h-2.976v1.956L4 11.978z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/text-style.png b/resources/lib/oojs-ui/themes/apex/images/icons/text-style.png
new file mode 100644 (file)
index 0000000..a2f48be
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/text-style.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/text-style.svg b/resources/lib/oojs-ui/themes/apex/images/icons/text-style.svg
new file mode 100644 (file)
index 0000000..d9ff340
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="text-style">
+        <path id="a" d="M15.296 18h2.79l-1.14-12h-2.79L6 18h2.79l2.038-3h4.183l.286 3zm-3.11-5L14.5 9.6l.323 3.4h-2.633z"/>
+        <path id="underline" d="M6 19h12v1H6v-1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/translation-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/translation-ltr.png
new file mode 100644 (file)
index 0000000..1025461
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/translation-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/translation-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/translation-ltr.svg
new file mode 100644 (file)
index 0000000..8954a21
--- /dev/null
@@ -0,0 +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.1 13.1C9.3 11 8.4 8.8 8.1 8h4.7l.7-2H8V3H6v3H1v2h5c-.2.9-1.3 4.8-5.1 7.6l1.2 1.6c2.7-2 4.3-4.5 5.1-6.4.7 1.3 1.7 3 3.2 4.5l.7-2.2zm1.4 6.9l1.3-4h5.3l1.3 4h2.2L18 6h-3l-4.7 14h2.2zm4-12l2 6h-4l2-6z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/translation-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/translation-rtl.png
new file mode 100644 (file)
index 0000000..38066d6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/translation-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/translation-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/translation-rtl.svg
new file mode 100644 (file)
index 0000000..44ba971
--- /dev/null
@@ -0,0 +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.4 13.1c1.8-2.1 2.7-4.3 3-5.1h-4.7L10 6h5.5V3h2v3h5v2h-5c.2.9 1.3 4.8 5.1 7.6l-1.2 1.6c-2.7-2-4.3-4.5-5.1-6.4-.7 1.3-1.7 3-3.2 4.5l-.7-2.2zM11 20l-1.3-4H4.4l-1.3 4H.9L5.5 6h3l4.7 14H11zM7 8l-2 6h4L7 8z" id="path704"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/trash.png b/resources/lib/oojs-ui/themes/apex/images/icons/trash.png
new file mode 100644 (file)
index 0000000..dfee886
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/trash.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/trash.svg b/resources/lib/oojs-ui/themes/apex/images/icons/trash.svg
new file mode 100644 (file)
index 0000000..76502dc
--- /dev/null
@@ -0,0 +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="M6 8c0-1.1.9-2 2-2h2l1-1h2l1 1h2c1.1 0 2 .9 2 2H6zm1 1h10l-1 11H8z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-ltr.png
new file mode 100644 (file)
index 0000000..594836e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-ltr.svg
new file mode 100644 (file)
index 0000000..071bd32
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M20.5 20.5L5 5 4 6l3 3 1 11h8l.2-1.8 3.3 3.3zM17 9h-6l5.5 5.5zm1-1c0-1.1-.9-2-2-2h-2l-1-1h-2l-1 1H8l2 2h8z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-rtl.png
new file mode 100644 (file)
index 0000000..182e56d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-rtl.svg
new file mode 100644 (file)
index 0000000..69c17b4
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g714">
+        <path d="M4 20.5L19.5 5l1 1-3 3-1 11h-8l-.2-1.8L5 21.5zM7.5 9h6L8 14.5zm-1-1c0-1.1.9-2 2-2h2l1-1h2l1 1h2l-2 2h-8z" id="path716"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/unLock-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/unLock-ltr.png
new file mode 100644 (file)
index 0000000..c7fce47
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/unLock-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/unLock-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/unLock-ltr.svg
new file mode 100644 (file)
index 0000000..6f3da1e
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="unLock">
+        <path d="M8 6c-2.21 0-4 1.79-4 4v1h2v-1c0-1.105.895-2 2-2s2 .895 2 2v1H9v7h10v-7h-7v-1c0-2.21-1.79-4-4-4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/unLock-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/unLock-rtl.png
new file mode 100644 (file)
index 0000000..63ec5cb
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/unLock-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/unLock-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/unLock-rtl.svg
new file mode 100644 (file)
index 0000000..96305a6
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="unLock">
+        <path d="M15 6c2.21 0 4 1.79 4 4v1h-2v-1c0-1.105-.895-2-2-2s-2 .895-2 2v1h1v7H4v-7h7v-1c0-2.21 1.79-4 4-4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/unStar.png b/resources/lib/oojs-ui/themes/apex/images/icons/unStar.png
new file mode 100644 (file)
index 0000000..bdb1c4f
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/unStar.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/unStar.svg b/resources/lib/oojs-ui/themes/apex/images/icons/unStar.svg
new file mode 100644 (file)
index 0000000..724d190
--- /dev/null
@@ -0,0 +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="M21 11l-6-1-3-6-3 6-6 1 4 4-1 6 6-3 6 3-1-6 4-4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/underline-a.png b/resources/lib/oojs-ui/themes/apex/images/icons/underline-a.png
new file mode 100644 (file)
index 0000000..81713bd
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/underline-a.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/underline-a.svg b/resources/lib/oojs-ui/themes/apex/images/icons/underline-a.svg
new file mode 100644 (file)
index 0000000..ea7350b
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="underline-a">
+        <path id="a" d="M14.424 16H16.5L13.037 6H10.96L7.5 16h2.077l.627-2h3.604l.616 2zm-3.92-3.623l1.495-4.38 1.51 4.38h-3z"/>
+        <path id="underline" d="M7 17h10v1H7v-1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/underline-u.png b/resources/lib/oojs-ui/themes/apex/images/icons/underline-u.png
new file mode 100644 (file)
index 0000000..2504e66
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/underline-u.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/underline-u.svg b/resources/lib/oojs-ui/themes/apex/images/icons/underline-u.svg
new file mode 100644 (file)
index 0000000..d07129f
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="underline-u">
+        <path id="u" d="M8 6h2v5.96c-.104 1.706.695 2 2 2.04 1.777.062 2.002-.88 2-2.04V6h2v6.123c0 1.28-.338 2.245-1.016 2.898-.672.652-1.666.98-2.98.98-1.32 0-2.32-.326-2.996-.98C8.336 14.37 8 13.403 8 12.124V6"/>
+        <path id="underline" d="M7 17h10v1H7v-1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/upTriangle.png b/resources/lib/oojs-ui/themes/apex/images/icons/upTriangle.png
new file mode 100644 (file)
index 0000000..1b65589
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/upTriangle.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/upTriangle.svg b/resources/lib/oojs-ui/themes/apex/images/icons/upTriangle.svg
new file mode 100644 (file)
index 0000000..9f0efc5
--- /dev/null
@@ -0,0 +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 8l8 10H4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/wikiText.png b/resources/lib/oojs-ui/themes/apex/images/icons/wikiText.png
new file mode 100644 (file)
index 0000000..4b15161
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/wikiText.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/wikiText.svg b/resources/lib/oojs-ui/themes/apex/images/icons/wikiText.svg
new file mode 100644 (file)
index 0000000..ded0fe1
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M23 5h-4v2h2v10h-2v2h4z"/>
+    </g>
+    <g>
+        <path d="M18 5h-4v2h2v10h-2v2h4z"/>
+    </g>
+    <g>
+        <path d="M2 5h4v2H4v10h2v2H2z"/>
+    </g>
+    <g>
+        <path d="M7 5h4v2H9v10h2v2H7z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/window.png b/resources/lib/oojs-ui/themes/apex/images/icons/window.png
new file mode 100644 (file)
index 0000000..db726a1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/window.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/window.svg b/resources/lib/oojs-ui/themes/apex/images/icons/window.svg
new file mode 100644 (file)
index 0000000..093c822
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="window">
+        <path id="title" d="M7 10h10v1H7z"/>
+        <path id="frame" d="M16 19H8c-2.206 0-4-1.794-4-4V9c0-2.206 1.794-4 4-4h8c2.206 0 4 1.794 4 4v6c0 2.206-1.794 4-4 4zM8 7c-1.103 0-2 .897-2 2v6c0 1.103.897 2 2 2h8c1.103 0 2-.897 2-2V9c0-1.103-.897-2-2-2H8z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/indicators/alert.png b/resources/lib/oojs-ui/themes/apex/images/indicators/alert.png
new file mode 100644 (file)
index 0000000..5bf0827
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/indicators/alert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/indicators/alert.svg b/resources/lib/oojs-ui/themes/apex/images/indicators/alert.svg
new file mode 100644 (file)
index 0000000..cddc0db
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
+    <g id="alert">
+        <path d="M6 12c-3.314 0-6-2.686-6-6s2.686-6 6-6 6 2.686 6 6-2.686 6-6 6zM5 7h2V2H5zm0 3h2V8H5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-down.png b/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-down.png
new file mode 100644 (file)
index 0000000..6574725
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-down.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-down.svg b/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-down.svg
new file mode 100644 (file)
index 0000000..5ce25ba
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
+    <g id="down">
+        <path id="arrow" d="M2 3l3.5 6L9 3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-ltr.png b/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-ltr.png
new file mode 100644 (file)
index 0000000..7c84397
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-ltr.svg
new file mode 100644 (file)
index 0000000..c4f7998
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
+    <g id="ltr">
+        <path id="arrow" d="M3 9V2l6 3.5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-rtl.png b/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-rtl.png
new file mode 100644 (file)
index 0000000..5bf9064
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-rtl.svg
new file mode 100644 (file)
index 0000000..b49613e
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
+    <g id="rtl">
+        <path id="arrow" d="M3 5.5L9 9V2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-up.png b/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-up.png
new file mode 100644 (file)
index 0000000..1a05ade
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-up.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-up.svg b/resources/lib/oojs-ui/themes/apex/images/indicators/arrow-up.svg
new file mode 100644 (file)
index 0000000..7a250f5
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
+    <g id="up">
+        <path id="arrow" d="M5.5 2L2 8h7z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/indicators/required.png b/resources/lib/oojs-ui/themes/apex/images/indicators/required.png
new file mode 100644 (file)
index 0000000..45eb03b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/indicators/required.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/indicators/required.svg b/resources/lib/oojs-ui/themes/apex/images/indicators/required.svg
new file mode 100644 (file)
index 0000000..051ed5f
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
+    <g id="required">
+        <path d="M5 1h2v10H5zm4.83 1.634l1 1.732-8.66 5-1-1.732zM1.17 4.366l1-1.732 8.66 5-1 1.732z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/indicators/search-ltr.png b/resources/lib/oojs-ui/themes/apex/images/indicators/search-ltr.png
new file mode 100644 (file)
index 0000000..cc1f377
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/indicators/search-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/indicators/search-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/indicators/search-ltr.svg
new file mode 100644 (file)
index 0000000..9b49c4b
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
+    <g id="search">
+        <path id="path3051" d="M10.37 9.474L7.994 7.1l-.17-.1c.404-.566.644-1.26.644-2.01-.002-1.92-1.56-3.476-3.478-3.476-1.92 0-3.478 1.557-3.478 3.478 0 1.92 1.557 3.477 3.478 3.477.75 0 1.442-.24 2.01-.644l.098.17 2.375 2.373c.19.188.543.142.79-.105s.293-.6.104-.79zM4.99 7.204c-1.22 0-2.213-.99-2.213-2.213 0-1.22.99-2.212 2.212-2.212 1.222 0 2.213.992 2.213 2.213 0 1.223-.992 2.214-2.213 2.214z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/indicators/search-rtl.png b/resources/lib/oojs-ui/themes/apex/images/indicators/search-rtl.png
new file mode 100644 (file)
index 0000000..5564b42
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/indicators/search-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/indicators/search-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/indicators/search-rtl.svg
new file mode 100644 (file)
index 0000000..3847af2
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
+    <g id="search">
+        <path id="path3051" d="M1.63 9.474L4.006 7.1l.17-.1c-.404-.566-.644-1.26-.644-2.01.002-1.92 1.56-3.476 3.478-3.476 1.92 0 3.478 1.557 3.478 3.478 0 1.92-1.557 3.477-3.478 3.477-.75 0-1.442-.24-2.01-.644l-.098.17-2.375 2.373c-.19.188-.543.142-.79-.105s-.293-.6-.104-.79zm5.378-2.27c1.22 0 2.213-.99 2.213-2.213 0-1.22-.99-2.212-2.212-2.212-1.222 0-2.213.992-2.213 2.213 0 1.223.992 2.214 2.213 2.214z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/textures/pending.gif b/resources/lib/oojs-ui/themes/apex/images/textures/pending.gif
new file mode 100644 (file)
index 0000000..1194eed
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/textures/pending.gif differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/textures/transparency.png b/resources/lib/oojs-ui/themes/apex/images/textures/transparency.png
new file mode 100644 (file)
index 0000000..1843f27
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/textures/transparency.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/textures/transparency.svg b/resources/lib/oojs-ui/themes/apex/images/textures/transparency.svg
new file mode 100644 (file)
index 0000000..e413e75
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0, 0, 16, 16">
+    <g id="transparency">
+        <path d="M0 0h8v8H0zm8 8h8v8H8z" fill="#ccc"/>
+        <path d="M8 0h8v8H8zM0 8h8v8H0z" fill="#fff"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/toolbar-shadow.png b/resources/lib/oojs-ui/themes/apex/images/toolbar-shadow.png
new file mode 100644 (file)
index 0000000..97e8d13
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/toolbar-shadow.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/indicators.json b/resources/lib/oojs-ui/themes/apex/indicators.json
new file mode 100644 (file)
index 0000000..0a9d1d2
--- /dev/null
@@ -0,0 +1,22 @@
+{
+       "prefix": "oo-ui-indicator",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "alert": { "file": "images/indicators/alert.svg" },
+               "up": { "file": "images/indicators/arrow-up.svg" },
+               "down": { "file": "images/indicators/arrow-down.svg" },
+               "next": { "file": {
+                       "ltr": "images/indicators/arrow-ltr.svg",
+                       "rtl": "images/indicators/arrow-rtl.svg"
+               } },
+               "previous": { "file": {
+                       "ltr": "images/indicators/arrow-rtl.svg",
+                       "rtl": "images/indicators/arrow-ltr.svg"
+               } },
+               "required": { "file": "images/indicators/required.svg" },
+               "search": { "file": {
+                       "ltr": "images/indicators/search-ltr.svg",
+                       "rtl": "images/indicators/search-rtl.svg"
+               } }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/apex/textures.json b/resources/lib/oojs-ui/themes/apex/textures.json
new file mode 100644 (file)
index 0000000..e90730a
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "prefix": "oo-ui-texture",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "pending": { "file": "images/textures/pending.gif" },
+               "transparency": { "file": "images/textures/transparency.svg" }
+       }
+}
index 948ae6c..d385eb1 100644 (file)
@@ -65,7 +65,7 @@
                        "rtl": "images/icons/search-rtl.svg"
                } },
                "settings": { "file": "images/icons/settings.svg" },
-               "tag": { "file": "images/icons/tag.svg" },
+               "tag": { "file": "images/icons/tag.svg", "variants": [ "destructive", "warning", "constructive", "progressive" ] },
                "undo": { "file": {
                        "ltr": "images/icons/arched-arrow-rtl.svg",
                        "rtl": "images/icons/arched-arrow-ltr.svg"
index 0d37afa..ef2ac5c 100644 (file)
@@ -1,6 +1,6 @@
 <?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: #00AF89 }</style>
     <g id="add">
-        <path id="plus" d="M13 8h-2v3h-3v2h3v3h2v-3h3v-2h-3z"/>
+        <path id="plus" d="M13 8h-2v3H8v2h3v3h2v-3h3v-2h-3z"/>
     </g>
 </svg>
index 93a1c6e..2ad5f60 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="add">
-        <path id="plus" d="M13 8h-2v3h-3v2h3v3h2v-3h3v-2h-3z"/>
+        <path id="plus" d="M13 8h-2v3H8v2h3v3h2v-3h3v-2h-3z"/>
     </g>
 </svg>
index 29e5dba..85e39fe 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="add">
-        <path id="plus" d="M13 8h-2v3h-3v2h3v3h2v-3h3v-2h-3z"/>
+        <path id="plus" d="M13 8h-2v3H8v2h3v3h2v-3h3v-2h-3z"/>
     </g>
 </svg>
index 733c3f9..bc9d4fd 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced-invert.png differ
index fe3dc5b..33fb468 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="M20 14.5v-2.9l-1.8-.3c-.1-.4-.3-.8-.6-1.4l1.1-1.5-2.1-2.1-1.5 1.1c-.5-.3-1-.5-1.4-.6l-.2-1.8h-2.9l-.3 1.8c-.5.1-.9.3-1.4.6l-1.5-1.1-2.1 2.1 1 1.5c-.3.5-.4.9-.6 1.4l-1.7.2v2.9l1.8.3c.1.5.3.9.6 1.4l-1 1.5 2.1 2.1 1.5-1c.4.2.9.4 1.4.6l.3 1.8h3l.3-1.8c.5-.1.9-.3 1.4-.6l1.5 1.1 2.1-2.1-1.1-1.5c.3-.5.5-1 .6-1.4l1.5-.3zm-8 1.5c-1.7 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3-1.3 3-3 3z"/>
+    <path d="M20 14.5v-2.9l-1.8-.3c-.1-.4-.3-.8-.6-1.4l1.1-1.5-2.1-2.1-1.5 1.1c-.5-.3-1-.5-1.4-.6L13.5 5h-2.9l-.3 1.8c-.5.1-.9.3-1.4.6L7.4 6.3 5.3 8.4l1 1.5c-.3.5-.4.9-.6 1.4l-1.7.2v2.9l1.8.3c.1.5.3.9.6 1.4l-1 1.5 2.1 2.1 1.5-1c.4.2.9.4 1.4.6l.3 1.8h3l.3-1.8c.5-.1.9-.3 1.4-.6l1.5 1.1 2.1-2.1-1.1-1.5c.3-.5.5-1 .6-1.4l1.5-.3zM12 16c-1.7 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3-1.3 3-3 3z"/>
 </svg>
index 7dab898..6c1a068 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced.png differ
index b4629bf..3159624 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="M20 14.5v-2.9l-1.8-.3c-.1-.4-.3-.8-.6-1.4l1.1-1.5-2.1-2.1-1.5 1.1c-.5-.3-1-.5-1.4-.6l-.2-1.8h-2.9l-.3 1.8c-.5.1-.9.3-1.4.6l-1.5-1.1-2.1 2.1 1 1.5c-.3.5-.4.9-.6 1.4l-1.7.2v2.9l1.8.3c.1.5.3.9.6 1.4l-1 1.5 2.1 2.1 1.5-1c.4.2.9.4 1.4.6l.3 1.8h3l.3-1.8c.5-.1.9-.3 1.4-.6l1.5 1.1 2.1-2.1-1.1-1.5c.3-.5.5-1 .6-1.4l1.5-.3zm-8 1.5c-1.7 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3-1.3 3-3 3z"/>
+    <path d="M20 14.5v-2.9l-1.8-.3c-.1-.4-.3-.8-.6-1.4l1.1-1.5-2.1-2.1-1.5 1.1c-.5-.3-1-.5-1.4-.6L13.5 5h-2.9l-.3 1.8c-.5.1-.9.3-1.4.6L7.4 6.3 5.3 8.4l1 1.5c-.3.5-.4.9-.6 1.4l-1.7.2v2.9l1.8.3c.1.5.3.9.6 1.4l-1 1.5 2.1 2.1 1.5-1c.4.2.9.4 1.4.6l.3 1.8h3l.3-1.8c.5-.1.9-.3 1.4-.6l1.5 1.1 2.1-2.1-1.1-1.5c.3-.5.5-1 .6-1.4l1.5-.3zM12 16c-1.7 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3-1.3 3-3 3z"/>
 </svg>
index 715a3f5..d743519 100644 (file)
@@ -2,7 +2,7 @@
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
     <g id="alert">
         <path id="point" d="M11 16h2v2h-2z"/>
-        <path id="stroke" d="M13.516 10h-3l.484 5h2z"/>
-        <path id="triangle" d="M12.017 5.974l7.519 13.026h-15.04l7.521-13.026m0-2.474c-.544 0-1.088.357-1.5 1.071l-7.985 13.831c-.825 1.429-.15 2.598 1.5 2.598h15.968c1.65 0 2.325-1.169 1.5-2.599l-7.983-13.829c-.413-.715-.956-1.072-1.5-1.072z"/>
+        <path id="stroke" d="M13.516 10h-3L11 15h2z"/>
+        <path id="triangle" d="M12.017 5.974L19.537 19H4.496l7.52-13.026m0-2.474c-.544 0-1.088.357-1.5 1.07L2.532 18.403c-.825 1.43-.15 2.598 1.5 2.598H20c1.65 0 2.325-1.17 1.5-2.6L13.517 4.573c-.413-.715-.956-1.072-1.5-1.072z"/>
     </g>
 </svg>
index 6928cab..1daa91f 100644 (file)
@@ -2,7 +2,7 @@
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FF5D00 }</style>
     <g id="alert">
         <path id="point" d="M11 16h2v2h-2z"/>
-        <path id="stroke" d="M13.516 10h-3l.484 5h2z"/>
-        <path id="triangle" d="M12.017 5.974l7.519 13.026h-15.04l7.521-13.026m0-2.474c-.544 0-1.088.357-1.5 1.071l-7.985 13.831c-.825 1.429-.15 2.598 1.5 2.598h15.968c1.65 0 2.325-1.169 1.5-2.599l-7.983-13.829c-.413-.715-.956-1.072-1.5-1.072z"/>
+        <path id="stroke" d="M13.516 10h-3L11 15h2z"/>
+        <path id="triangle" d="M12.017 5.974L19.537 19H4.496l7.52-13.026m0-2.474c-.544 0-1.088.357-1.5 1.07L2.532 18.403c-.825 1.43-.15 2.598 1.5 2.598H20c1.65 0 2.325-1.17 1.5-2.6L13.517 4.573c-.413-.715-.956-1.072-1.5-1.072z"/>
     </g>
 </svg>
index f0c6522..42a4bf6 100644 (file)
@@ -2,7 +2,7 @@
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="alert">
         <path id="point" d="M11 16h2v2h-2z"/>
-        <path id="stroke" d="M13.516 10h-3l.484 5h2z"/>
-        <path id="triangle" d="M12.017 5.974l7.519 13.026h-15.04l7.521-13.026m0-2.474c-.544 0-1.088.357-1.5 1.071l-7.985 13.831c-.825 1.429-.15 2.598 1.5 2.598h15.968c1.65 0 2.325-1.169 1.5-2.599l-7.983-13.829c-.413-.715-.956-1.072-1.5-1.072z"/>
+        <path id="stroke" d="M13.516 10h-3L11 15h2z"/>
+        <path id="triangle" d="M12.017 5.974L19.537 19H4.496l7.52-13.026m0-2.474c-.544 0-1.088.357-1.5 1.07L2.532 18.403c-.825 1.43-.15 2.598 1.5 2.598H20c1.65 0 2.325-1.17 1.5-2.6L13.517 4.573c-.413-.715-.956-1.072-1.5-1.072z"/>
     </g>
 </svg>
index 887c2f6..4697eb9 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="align-center">
-        <path d="M9 9h6c.554 0 1 .446 1 1v5c0 .554-.446 1-1 1h-6c-.554 0-1-.446-1-1v-5c0-.554.446-1 1-1zM3.5 18h17c.277 0 .5.223.5.5s-.223.5-.5.5h-17c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zM3.5 6h17c.277 0 .5.223.5.5s-.223.5-.5.5h-17c-.277 0-.5-.223-.5-.5s.223-.5.5-.5z"/>
+        <path d="M9 9h6c.554 0 1 .446 1 1v5c0 .554-.446 1-1 1H9c-.554 0-1-.446-1-1v-5c0-.554.446-1 1-1zm-5.5 9h17c.277 0 .5.223.5.5s-.223.5-.5.5h-17c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zm0-12h17c.277 0 .5.223.5.5s-.223.5-.5.5h-17c-.277 0-.5-.223-.5-.5s.223-.5.5-.5z"/>
     </g>
 </svg>
index ce9761e..1c95377 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="align-float-left">
-        <path d="M4 9h6c.554 0 1 .446 1 1v5c0 .554-.446 1-1 1h-6c-.554 0-1-.446-1-1v-5c0-.554.446-1 1-1zM13.5 9h7c.277 0 .5.223.5.5s-.223.5-.5.5h-7c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zM13.5 12h7c.277 0 .5.223.5.5s-.223.5-.5.5h-7c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zM13.5 15h7c.277 0 .5.223.5.5s-.223.5-.5.5h-7c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zM3.5 6h17c.277 0 .5.223.5.5s-.223.5-.5.5h-17c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zM3.5 18h17c.277 0 .5.223.5.5s-.223.5-.5.5h-17c-.277 0-.5-.223-.5-.5s.223-.5.5-.5z"/>
+        <path d="M4 9h6c.554 0 1 .446 1 1v5c0 .554-.446 1-1 1H4c-.554 0-1-.446-1-1v-5c0-.554.446-1 1-1zm9.5 0h7c.277 0 .5.223.5.5s-.223.5-.5.5h-7c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zm0 3h7c.277 0 .5.223.5.5s-.223.5-.5.5h-7c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zm0 3h7c.277 0 .5.223.5.5s-.223.5-.5.5h-7c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zm-10-9h17c.277 0 .5.223.5.5s-.223.5-.5.5h-17c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zm0 12h17c.277 0 .5.223.5.5s-.223.5-.5.5h-17c-.277 0-.5-.223-.5-.5s.223-.5.5-.5z"/>
     </g>
 </svg>
index 557692a..2467f7f 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="align-float-right">
-        <path d="M20 9h-6c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h6c.554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zM10.5 9h-7c-.277 0-.5.223-.5.5s.223.5.5.5h7c.277 0 .5-.223.5-.5s-.223-.5-.5-.5zM10.5 12h-7c-.277 0-.5.223-.5.5s.223.5.5.5h7c.277 0 .5-.223.5-.5s-.223-.5-.5-.5zM10.5 15h-7c-.277 0-.5.223-.5.5s.223.5.5.5h7c.277 0 .5-.223.5-.5s-.223-.5-.5-.5zM20.5 6h-17c-.277 0-.5.223-.5.5s.223.5.5.5h17c.277 0 .5-.223.5-.5s-.223-.5-.5-.5zM20.5 18h-17c-.277 0-.5.223-.5.5s.223.5.5.5h17c.277 0 .5-.223.5-.5s-.223-.5-.5-.5z"/>
+        <path d="M20 9h-6c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h6c.554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm-9.5 0h-7c-.277 0-.5.223-.5.5s.223.5.5.5h7c.277 0 .5-.223.5-.5s-.223-.5-.5-.5zm0 3h-7c-.277 0-.5.223-.5.5s.223.5.5.5h7c.277 0 .5-.223.5-.5s-.223-.5-.5-.5zm0 3h-7c-.277 0-.5.223-.5.5s.223.5.5.5h7c.277 0 .5-.223.5-.5s-.223-.5-.5-.5zm10-9h-17c-.277 0-.5.223-.5.5s.223.5.5.5h17c.277 0 .5-.223.5-.5s-.223-.5-.5-.5zm0 12h-17c-.277 0-.5.223-.5.5s.223.5.5.5h17c.277 0 .5-.223.5-.5s-.223-.5-.5-.5z"/>
     </g>
 </svg>
index 8a07140..37b57fe 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-ltr-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-ltr-invert.png differ
index 1874597..5b29c98 100644 (file)
@@ -1,6 +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>
-    <g id="arched-arrow-ltr">
-        <path id="arrow" d="M19.925 14.937l-2.391-6.901-1.48 2.329c-.964-.845-2.699-1.85-5.513-1.823-4.887.046-6.524 4.244-6.524 4.244s2.753-2.639 6.925-1.949c1.729.286 3.007 1.206 3.675 1.791l-1.474 2.319 6.782-.01z"/>
-    </g>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-487 489 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M-472.8 494.7l6.3 5.7-6.3 5.7v-3.8h-1.3c-3.2 0-6.3 1.3-7.6 3.8 0-4.7 2.8-7.6 7.9-7.6h.9v-3.8z"/>
 </svg>
index 88db108..7d2113f 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-ltr.png differ
index 8a670ef..20835d2 100644 (file)
@@ -1,6 +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">
-    <g id="arched-arrow-ltr">
-        <path id="arrow" d="M19.925 14.937l-2.391-6.901-1.48 2.329c-.964-.845-2.699-1.85-5.513-1.823-4.887.046-6.524 4.244-6.524 4.244s2.753-2.639 6.925-1.949c1.729.286 3.007 1.206 3.675 1.791l-1.474 2.319 6.782-.01z"/>
-    </g>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-487 489 24 24">
+    <path d="M-472.8 494.7l6.3 5.7-6.3 5.7v-3.8h-1.3c-3.2 0-6.3 1.3-7.6 3.8 0-4.7 2.8-7.6 7.9-7.6h.9v-3.8z"/>
 </svg>
index c6cbec1..a50b306 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-rtl-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-rtl-invert.png differ
index 75b23b4..6f69940 100644 (file)
@@ -1,6 +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>
-    <g id="arched-arrow-rtl">
-        <path id="arrow" d="M13.401 8.542c-2.814-.027-4.549.978-5.513 1.823l-1.48-2.329-2.391 6.901 6.782.009-1.474-2.319c.668-.584 1.945-1.504 3.675-1.791 4.172-.69 6.925 1.949 6.925 1.949s-1.637-4.197-6.524-4.243z"/>
-    </g>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-487 489 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M-476.3 494.7l-6.3 5.7 6.3 5.7v-3.8h1.3c3.2 0 6.3 1.3 7.6 3.8 0-4.7-2.8-7.6-7.9-7.6h-.9v-3.8z"/>
 </svg>
index 0afcbfa..ed69a01 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-rtl.png differ
index 01fc216..e919d37 100644 (file)
@@ -1,6 +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">
-    <g id="arched-arrow-rtl">
-        <path id="arrow" d="M13.401 8.542c-2.814-.027-4.549.978-5.513 1.823l-1.48-2.329-2.391 6.901 6.782.009-1.474-2.319c.668-.584 1.945-1.504 3.675-1.791 4.172-.69 6.925 1.949 6.925 1.949s-1.637-4.197-6.524-4.243z"/>
-    </g>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-487 489 24 24">
+    <path d="M-476.3 494.7l-6.3 5.7 6.3 5.7v-3.8h1.3c3.2 0 6.3 1.3 7.6 3.8 0-4.7-2.8-7.6-7.9-7.6h-.9v-3.8z"/>
 </svg>
index b07621e..a0097cb 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g4">
-        <path d="M16 12h-10c-1.7 0-3 1.3-3 3h13v3l5-4.5-5-4.5v3z" id="path6"/>
+        <path d="M16 12H6c-1.7 0-3 1.3-3 3h13v3l5-4.5L16 9v3z" id="path6"/>
     </g>
 </svg>
index a018928..54d6d25 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M8 12h10c1.7 0 3 1.3 3 3h-13v3l-5-4.5 5-4.5v3z"/>
+        <path d="M8 12h10c1.7 0 3 1.3 3 3H8v3l-5-4.5L8 9v3z"/>
     </g>
 </svg>
index b719946..e8a1ad3 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M12 10h4v-5h-4v5zm-5 2h9v-1h-9v1zm0 2h9v-1h-9v1zm0 2h9v-1h-9v1zm4-9h-4v1h4v-1zm0 2h-4v1h4v-1zm0-4h-4v1h4v-1zm-6-2h13v16h-10c-1.7 0-3-1.3-3-3v-13z"/>
+        <path d="M12 10h4V5h-4v5zm-5 2h9v-1H7v1zm0 2h9v-1H7v1zm0 2h9v-1H7v1zm4-9H7v1h4V7zm0 2H7v1h4V9zm0-4H7v1h4V5zM5 3h13v16H8c-1.7 0-3-1.3-3-3V3z"/>
     </g>
 </svg>
index f14dfbd..ab4398e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g16">
-        <path d="M11 10h-4v-5h4v5zm5 2h-9v-1h9v1zm0 2h-9v-1h9v1zm0 2h-9v-1h9v1zm-4-9h4v1h-4v-1zm0 2h4v1h-4v-1zm0-4h4v1h-4v-1zm6-2h-13v16h10c1.7 0 3-1.3 3-3v-13z" id="path18"/>
+        <path d="M11 10H7V5h4v5zm5 2H7v-1h9v1zm0 2H7v-1h9v1zm0 2H7v-1h9v1zm-4-9h4v1h-4V7zm0 2h4v1h-4V9zm0-4h4v1h-4V5zm6-2H5v16h10c1.7 0 3-1.3 3-3V3z" id="path18"/>
     </g>
 </svg>
index 7711971..08afca2 100644 (file)
@@ -4,6 +4,6 @@
         <g>
             <path d="M21 11l-6 7-4-4-1 1 5 5 7-8z"/>
         </g>
-        <path d="M17 14v-11h-13v13c0 1.7 1.3 3 3 3h5l-3-3h-3v-1h2.6l1-1h-3.6v-1h9v1h-2l1 1h2l1-1zm-11-9h4v1h-4v-1zm0 2h4v1h-4v-1zm0 2h4v1h-4v-1zm9 3h-9v-1h9v1zm-4-2v-5h4v5h-4z"/>
+        <path d="M17 14V3H4v13c0 1.7 1.3 3 3 3h5l-3-3H6v-1h2.6l1-1H6v-1h9v1h-2l1 1h2l1-1zM6 5h4v1H6V5zm0 2h4v1H6V7zm0 2h4v1H6V9zm9 3H6v-1h9v1zm-4-2V5h4v5h-4z"/>
     </g>
 </svg>
index 771b3ff..e405ff5 100644 (file)
@@ -4,6 +4,6 @@
         <g id="g30">
             <path d="M5 11l6 7 4-4 1 1-5 5-7-8z" id="path32"/>
         </g>
-        <path d="M9 14v-11h13v13c0 1.7-1.3 3-3 3h-5l3-3h3v-1h-2.6l-1-1h3.6v-1h-9v1h2l-1 1h-2l-1-1zm11-9h-4v1h4v-1zm0 2h-4v1h4v-1zm0 2h-4v1h4v-1zm-9 3h9v-1h-9v1zm4-2v-5h-4v5h4z" id="path34"/>
+        <path d="M9 14V3h13v13c0 1.7-1.3 3-3 3h-5l3-3h3v-1h-2.6l-1-1H20v-1h-9v1h2l-1 1h-2l-1-1zm11-9h-4v1h4V5zm0 2h-4v1h4V7zm0 2h-4v1h4V9zm-9 3h9v-1h-9v1zm4-2V5h-4v5h4z" id="path34"/>
     </g>
 </svg>
index e54c0c4..fcbe4ee 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M19.1 18.5c.6-.7.9-1.5.9-2.5 0-2.2-1.8-4-4-4s-4 1.8-4 4 1.8 4 4 4c.7 0 1.3-.1 1.8-.4l2.7 2.7 1.1-1.1-2.5-2.7zm-3.1-.3c-1.2 0-2.2-1-2.2-2.3 0-1.2 1-2.2 2.2-2.2 1.2 0 2.3 1 2.3 2.2-.1 1.3-1.1 2.3-2.3 2.3zm-4.2-5.2c.3-.4.6-.7 1-1h-5.8v-1h9s1.2 0 2 .6v-8.6h-13v13c0 1.7 1.3 3 3 3h3.8c-.6-.8-1-1.9-1-3h-3.8v-1h3.9l.3-1h-4.2v-1h4.8zm.2-8h4v5h-4v-5zm-5 0h4v1h-4v-1zm0 2h4v1h-4v-1zm0 2h4v1h-4v-1z"/>
+        <path d="M19.1 18.5c.6-.7.9-1.5.9-2.5 0-2.2-1.8-4-4-4s-4 1.8-4 4 1.8 4 4 4c.7 0 1.3-.1 1.8-.4l2.7 2.7 1.1-1.1-2.5-2.7zm-3.1-.3c-1.2 0-2.2-1-2.2-2.3 0-1.2 1-2.2 2.2-2.2 1.2 0 2.3 1 2.3 2.2-.1 1.3-1.1 2.3-2.3 2.3zM11.8 13c.3-.4.6-.7 1-1H7v-1h9s1.2 0 2 .6V3H5v13c0 1.7 1.3 3 3 3h3.8c-.6-.8-1-1.9-1-3H7v-1h3.9l.3-1H7v-1h4.8zm.2-8h4v5h-4V5zM7 5h4v1H7V5zm0 2h4v1H7V7zm0 2h4v1H7V9z"/>
     </g>
 </svg>
index 31134f1..7ded232 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g44">
-        <path d="M7.5 18.5c-.6-.7-.9-1.5-.9-2.5 0-2.2 1.8-4 4-4s4 1.8 4 4-1.8 4-4 4c-.7 0-1.3-.1-1.8-.4l-2.7 2.7-1.1-1.1 2.5-2.7zm3.1-.3c1.2 0 2.2-1 2.2-2.3 0-1.2-1-2.2-2.2-2.2-1.2 0-2.3 1-2.3 2.2.1 1.3 1.1 2.3 2.3 2.3zm4.2-5.2c-.3-.4-.6-.7-1-1h5.8v-1h-9s-1.2 0-2 .6v-8.6h13v13c0 1.7-1.3 3-3 3h-3.8c.6-.8 1-1.9 1-3h3.8v-1h-3.9l-.3-1h4.2v-1h-4.8zm-.2-8h-4v5h4v-5zm5 0h-4v1h4v-1zm0 2h-4v1h4v-1zm0 2h-4v1h4v-1z" id="path46"/>
+        <path d="M7.5 18.5c-.6-.7-.9-1.5-.9-2.5 0-2.2 1.8-4 4-4s4 1.8 4 4-1.8 4-4 4c-.7 0-1.3-.1-1.8-.4l-2.7 2.7L5 21.2l2.5-2.7zm3.1-.3c1.2 0 2.2-1 2.2-2.3 0-1.2-1-2.2-2.2-2.2-1.2 0-2.3 1-2.3 2.2.1 1.3 1.1 2.3 2.3 2.3zm4.2-5.2c-.3-.4-.6-.7-1-1h5.8v-1h-9s-1.2 0-2 .6V3h13v13c0 1.7-1.3 3-3 3h-3.8c.6-.8 1-1.9 1-3h3.8v-1h-3.9l-.3-1h4.2v-1h-4.8zm-.2-8h-4v5h4V5zm5 0h-4v1h4V5zm0 2h-4v1h4V7zm0 2h-4v1h4V9z" id="path46"/>
     </g>
 </svg>
index df08800..787ed14 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="M17.5 14v-5c0-3-2.3-5-5.5-5s-5.5 2-5.5 5v5c0 2 0 3-2 3v1h15v-1c-2 0-2-1-2-3zm-5.5 6h-3c0 1 1.6 2 3 2s3-1 3-2h-3z"/>
+    <path d="M17.5 14V9c0-3-2.3-5-5.5-5S6.5 6 6.5 9v5c0 2 0 3-2 3v1h15v-1c-2 0-2-1-2-3zM12 20H9c0 1 1.6 2 3 2s3-1 3-2h-3z"/>
 </svg>
index 4450e69..9572f43 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr.png differ
index f419e79..f68a8e0 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="M17.8 14.7l1.7-4.7c1-2.8-.5-5.5-3.5-6.6s-5.9 0-6.9 2.8l-1.7 4.7c-.7 1.9-1 2.8-2.9 2.1l-.3 1 14.1 5.1.3-.9c-1.9-.7-1.5-1.6-.8-3.5zm-5.8 5.1l-2.8-1c-.3.9.8 2.4 2.1 2.9s3.2.1 3.5-.9l-2.8-1z"/>
+    <path d="M17.8 14.7l1.7-4.7c1-2.8-.5-5.5-3.5-6.6s-5.9 0-6.9 2.8l-1.7 4.7c-.7 1.9-1 2.8-2.9 2.1l-.3 1 14.1 5.1.3-.9c-1.9-.7-1.5-1.6-.8-3.5zM12 19.8l-2.8-1c-.3.9.8 2.4 2.1 2.9s3.2.1 3.5-.9l-2.8-1z"/>
 </svg>
index b236b99..6e71a86 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl.png differ
index e4c3a3f..ae03529 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="M6.209 14.7l-1.7-4.7c-1-2.8.5-5.5 3.5-6.6 3-1.1 5.9 0 6.9 2.8l1.7 4.7c.7 1.9 1 2.8 2.9 2.1l.3 1-14.1 5.1-.3-.9c1.9-.7 1.5-1.6.8-3.5zm5.8 5.1l2.8-1c.3.9-.8 2.4-2.1 2.9s-3.2.1-3.5-.9l2.8-1z" id="path56"/>
+    <path d="M6.21 14.7L4.51 10c-1-2.8.5-5.5 3.5-6.6 3-1.1 5.9 0 6.9 2.8l1.7 4.7c.7 1.9 1 2.8 2.9 2.1l.3 1-14.1 5.1-.3-.9c1.9-.7 1.5-1.6.8-3.5zm5.8 5.1l2.8-1c.3.9-.8 2.4-2.1 2.9s-3.2.1-3.5-.9l2.8-1z" id="path56"/>
 </svg>
index a693b59..c3f99d6 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="M15.3 14.7c.8-3.8-.6-10.7-3.3-10.7-2.7 0-4.2 6.7-3.4 10.5l-1.6 3.5h2.7l.3 1h4c.2-.3.1-.5.3-1h2.7l-1.7-3.3zm-3.3-4.7c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm2 10c0 1.1-2 2-2 2s-2-.9-2-2"/>
+    <path d="M15.3 14.7C16.1 10.9 14.7 4 12 4c-2.7 0-4.2 6.7-3.4 10.5L7 18h2.7l.3 1h4c.2-.3.1-.5.3-1H17l-1.7-3.3zM12 10c-.8 0-1.5-.7-1.5-1.5S11.2 7 12 7s1.5.7 1.5 1.5S12.8 10 12 10zm2 10c0 1.1-2 2-2 2s-2-.9-2-2"/>
 </svg>
index 94ec670..6d95fc6 100644 (file)
@@ -1,7 +1,7 @@
 <?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.666 6h-1.372l-4.48 12h1.705l1.494-4h3.999l1.508 4h1.666l-4.52-12zm-2.28 7l1.617-4.333 1.634 4.333h-3.251z" id="a"/>
-  <g id="up">
-    <path id="arrow" d="M15.5 9h7l-3.5-6z"/>
-  </g>
+    <path d="M12.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z" id="a"/>
+    <g id="up">
+        <path id="arrow" d="M15.5 9h7L19 3z"/>
+    </g>
 </svg>
index b2a6c13..807cdd9 100644 (file)
@@ -1,7 +1,7 @@
 <?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.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z" id="a"/>
-  <g id="up">
-    <path id="arrow" d="M1.5 9h7L5 3z"/>
-  </g>
+    <path d="M12.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z" id="a"/>
+    <g id="up">
+        <path id="arrow" d="M1.5 9h7L5 3z"/>
+    </g>
 </svg>
index c850e65..1447b77 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: #D11D13 }</style>
-    <path d="M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm5 9h-10v-2h10v2z" id="path4"/>
+    <path d="M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm5 9H7v-2h10v2z" id="path4"/>
 </svg>
index 289ef4f..db7d0f7 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 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm5 9h-10v-2h10v2z" id="path4"/>
+    <path d="M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm5 9H7v-2h10v2z" id="path4"/>
 </svg>
index 0ddd1d4..6299c30 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 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm5 9h-10v-2h10v2z" id="path4"/>
+    <path d="M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm5 9H7v-2h10v2z" id="path4"/>
 </svg>
index 9408937..6a542dc 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="g66">
-        <path d="M17 11v2h-2l3.6 3.6c.9-1.3 1.4-2.9 1.4-4.6 0-4.4-3.6-8-8-8-1.7 0-3.3.5-4.6 1.4l5.6 5.6h4zm-13-7l-1 1 2.4 2.4c-.9 1.3-1.4 2.9-1.4 4.6 0 4.4 3.6 8 8 8 1.7 0 3.3-.5 4.6-1.4l2.4 2.4 1-1-16-16zm3 9v-2h2l2 2h-4z" id="path68"/>
+        <path d="M17 11v2h-2l3.6 3.6c.9-1.3 1.4-2.9 1.4-4.6 0-4.4-3.6-8-8-8-1.7 0-3.3.5-4.6 1.4L13 11h4zM4 4L3 5l2.4 2.4C4.5 8.7 4 10.3 4 12c0 4.4 3.6 8 8 8 1.7 0 3.3-.5 4.6-1.4L19 21l1-1L4 4zm3 9v-2h2l2 2H7z" id="path68"/>
     </g>
 </svg>
index 3d9cfd7..f6d5486 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g66">
-        <path d="M17 11v2h-2l3.6 3.6c.9-1.3 1.4-2.9 1.4-4.6 0-4.4-3.6-8-8-8-1.7 0-3.3.5-4.6 1.4l5.6 5.6h4zm-13-7l-1 1 2.4 2.4c-.9 1.3-1.4 2.9-1.4 4.6 0 4.4 3.6 8 8 8 1.7 0 3.3-.5 4.6-1.4l2.4 2.4 1-1-16-16zm3 9v-2h2l2 2h-4z" id="path68"/>
+        <path d="M17 11v2h-2l3.6 3.6c.9-1.3 1.4-2.9 1.4-4.6 0-4.4-3.6-8-8-8-1.7 0-3.3.5-4.6 1.4L13 11h4zM4 4L3 5l2.4 2.4C4.5 8.7 4 10.3 4 12c0 4.4 3.6 8 8 8 1.7 0 3.3-.5 4.6-1.4L19 21l1-1L4 4zm3 9v-2h2l2 2H7z" id="path68"/>
     </g>
 </svg>
index ba48235..4080e8d 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="g66">
-        <path d="M7 11v2h2l-3.6 3.6c-.9-1.3-1.4-2.9-1.4-4.6 0-4.4 3.6-8 8-8 1.7 0 3.3.5 4.6 1.4l-5.6 5.6h-4zm13-7l1 1-2.4 2.4c.9 1.3 1.4 2.9 1.4 4.6 0 4.4-3.6 8-8 8-1.7 0-3.3-.5-4.6-1.4l-2.4 2.4-1-1 16-16zm-3 9v-2h-2l-2 2h4z" id="path68"/>
+        <path d="M7 11v2h2l-3.6 3.6C4.5 15.3 4 13.7 4 12c0-4.4 3.6-8 8-8 1.7 0 3.3.5 4.6 1.4L11 11H7zm13-7l1 1-2.4 2.4c.9 1.3 1.4 2.9 1.4 4.6 0 4.4-3.6 8-8 8-1.7 0-3.3-.5-4.6-1.4L5 21l-1-1L20 4zm-3 9v-2h-2l-2 2h4z" id="path68"/>
     </g>
 </svg>
index 8f80759..d0ddde0 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g66">
-        <path d="M7 11v2h2l-3.6 3.6c-.9-1.3-1.4-2.9-1.4-4.6 0-4.4 3.6-8 8-8 1.7 0 3.3.5 4.6 1.4l-5.6 5.6h-4zm13-7l1 1-2.4 2.4c.9 1.3 1.4 2.9 1.4 4.6 0 4.4-3.6 8-8 8-1.7 0-3.3-.5-4.6-1.4l-2.4 2.4-1-1 16-16zm-3 9v-2h-2l-2 2h4z" id="path68"/>
+        <path d="M7 11v2h2l-3.6 3.6C4.5 15.3 4 13.7 4 12c0-4.4 3.6-8 8-8 1.7 0 3.3.5 4.6 1.4L11 11H7zm13-7l1 1-2.4 2.4c.9 1.3 1.4 2.9 1.4 4.6 0 4.4-3.6 8-8 8-1.7 0-3.3-.5-4.6-1.4L5 21l-1-1L20 4zm-3 9v-2h-2l-2 2h4z" id="path68"/>
     </g>
 </svg>
index 4b82877..d5cee05 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="bold-a">
-        <path d="M16 18h3l-5-12h-3l-5 12h3l1.25-3h4.5l1.25 3zm-4.917-5l1.417-3.4 1.417 3.4h-2.834z"/>
+        <path d="M16 18h3L14 6h-3L6 18h3l1.25-3h4.5L16 18zm-4.917-5L12.5 9.6l1.417 3.4h-2.834z"/>
     </g>
 </svg>
index 871da47..c2addd8 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-ain.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-ain.png differ
index f96cebc..ad6b3e4 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="bold-arab-ain">
-        <path id="arab-ain" d="M9.337 13.616c0 1.349 1.386 2.101 4.159 2.258l2.187-.029.318.044c-.03.127-.251.345-.665.652l-.089.066c-1.236.929-2.423 1.393-3.56 1.393-1.143 0-2.046-.33-2.711-.99-.65-.66-.975-1.559-.975-2.698.005-1.354.566-2.573 1.684-3.658v-.044l-.606-.55c-.148-.181-.222-.391-.222-.63 0-.489.239-1.109.717-1.862.65-1.046 1.303-1.566 1.958-1.561.886.005 1.618.42 2.194 1.246.325.479-.03.552-1.064.22-.842-.327-1.527-.051-2.054.828l.015.073 1.123.865.052.007c1.404-.498 2.418-.74 3.043-.726-.059.117-.14.362-.244.733-.103.357-.204.684-.303.982l-.126.374-.384.051c-1.743.239-2.992.716-3.745 1.429-.463.464-.697.973-.702 1.525"/>
+        <path id="arab-ain" d="M9.337 13.616c0 1.35 1.386 2.1 4.16 2.258l2.186-.03.318.045c-.03.126-.25.344-.664.65l-.09.067c-1.235.93-2.422 1.393-3.56 1.393-1.142 0-2.045-.33-2.71-.99-.65-.66-.975-1.56-.975-2.698.006-1.354.567-2.573 1.685-3.658v-.044l-.606-.55c-.15-.18-.223-.39-.223-.63 0-.49.24-1.11.717-1.862.65-1.046 1.303-1.566 1.958-1.56.886.004 1.618.42 2.194 1.245.325.48-.03.552-1.064.22-.842-.327-1.527-.05-2.054.828l.015.074 1.123.865.052.006c1.404-.498 2.418-.74 3.043-.726-.058.117-.14.362-.243.733-.103.357-.204.684-.303.982l-.126.374-.384.05c-1.743.24-2.992.716-3.745 1.43-.464.463-.698.972-.703 1.524"/>
     </g>
 </svg>
index ad6f342..ed491f3 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-dad.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-dad.png differ
index f04c6aa..27108e2 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="bold-arab-dad">
-        <path id="arab-dad" d="M16.411 8.232l-1.676-.665.694-1.567 1.688.64-.707 1.592m.775 3.078c-.509-.286-1-.427-1.476-.423-.471 0-.982.205-1.532.616l-.506.379.006.025c1.084.066 1.934.099 2.551.099h.313c.567-.021.992-.064 1.276-.131-.067-.17-.275-.359-.625-.566h-.006m-6.803 3.296c-.017-.904-.329-1.87-.938-2.898l1.294-1.729.119.149c.267.336.504.924.713 1.766l.063.05c.496-.008.942-.17 1.338-.485v-.006l1.732-1.53c.679-.601 1.282-.902 1.807-.902.383.004.848.195 1.394.572.55.377.884.696 1 .958.063.149.094.386.094.709 0 .696-.11 1.229-.331 1.598-.192.311-.473.555-.844.734-.438.207-1.549.311-3.333.311-.8 0-1.795-.021-2.983-.062l-.144.429c-.254.672-.463 1.113-.625 1.324-.725.937-1.786 1.405-3.183 1.405-1.705-.008-2.557-.922-2.557-2.742.004-.941.279-1.814.825-2.618.15-.216.298-.367.444-.454.225-.133.288-.091.188.124-.396.862-.596 1.548-.6 2.058.008 1.177.752 1.768 2.232 1.772 1.038-.004 1.803-.182 2.295-.535"/>
+        <path id="arab-dad" d="M16.41 8.232l-1.675-.665L15.43 6l1.687.64-.707 1.592m.775 3.078c-.51-.286-1-.427-1.476-.423-.472 0-.983.205-1.533.616l-.506.38.007.024c1.084.066 1.934.1 2.55.1h.314c.568-.022.993-.065 1.277-.132-.067-.17-.275-.36-.625-.566h-.006m-6.803 3.295c-.017-.904-.33-1.87-.938-2.898l1.294-1.73.118.15c.267.336.504.924.713 1.766l.064.05c.496-.008.942-.17 1.338-.485v-.006l1.732-1.53c.68-.6 1.282-.902 1.807-.902.384.004.85.195 1.395.572.55.377.884.696 1 .958.063.15.094.386.094.71 0 .695-.11 1.228-.332 1.597-.192.31-.473.555-.844.734-.438.208-1.55.312-3.333.312-.8 0-1.794-.02-2.982-.062l-.144.43c-.254.67-.463 1.112-.625 1.323-.726.937-1.787 1.405-3.184 1.405C5.85 16.99 5 16.076 5 14.256c.003-.94.278-1.814.824-2.618.15-.216.298-.367.444-.454.225-.133.288-.09.188.124-.396.862-.596 1.548-.6 2.058.008 1.177.752 1.768 2.232 1.772 1.038-.004 1.803-.182 2.295-.535"/>
     </g>
 </svg>
index c4af66e..718accb 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-armn-to.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-armn-to.png differ
index 4dbec6d..b55042a 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="bold-armn-to">
-        <path id="armn-to" d="M13.86 16.257c.124 0 .254-.026.39-.078.135-.058.257-.15.367-.274.114-.13.205-.302.273-.516.073-.213.11-.48.11-.797V13h-1.14c-.14 0-.284.026-.43.078-.14.047-.27.133-.383.258-.11.125-.2.294-.274.508-.067.213-.1.487-.1.82 0 .34.035.47.108.695.08.218.175.395.29.53.12.136.247.232.383.29.14.05.276.077.406.077m-2.97-7.84c-.37.082-.695.247-.976.45-.28.198-.505.47-.672.813-.16.343-.242.78-.242 1.312V18H6v-7.188c0-.776.15-1.455.453-2.04.302-.587.714-1.077 1.234-1.467.52-.39 1.13-.685 1.83-.883.697-.198 1.44-.297 2.225-.297.526 0 1.04.044 1.54.133.504.088.98.22 1.43.398.447.172.858.388 1.233.65.375.26.698.564.97.913.275.348.49.738.64 1.17.15.433.226 1.094.226 1.61h1.353v2.04H17.78v1.6c0 .58-.103 1.092-.31 1.54-.21.442-.49.815-.845 1.117-.35.302-.834.53-1.297.687-.464.15-.953.226-1.47.226-.51 0-.996-.078-1.46-.234-.464-.156-.87-.39-1.22-.703-.348-.313-.626-.703-.835-1.172-.203-.473-.304-1.028-.304-1.663s.105-1.182.32-1.64c.213-.46.497-.685.85-.977.355-.297.76-.513 1.22-.648.458-.14.935-.21 1.43-.21h1.132c-.01-.49-.04-1.043-.242-1.36-.198-.323-.453-.58-.766-.766-.312-.193-.598-.332-.984-.426-.374-.09-.577-.094-1.1-.094-.52 0-.64.02-1.01.102z"/>
+        <path id="armn-to" d="M13.86 16.257c.124 0 .254-.026.39-.078.135-.06.257-.15.367-.275.114-.13.205-.302.273-.516.073-.214.11-.48.11-.798V13h-1.14c-.14 0-.284.026-.43.078-.14.047-.27.133-.383.258-.11.125-.2.294-.274.508-.067.213-.1.487-.1.82 0 .34.035.47.108.695.08.217.176.394.29.53.12.135.248.23.384.29.14.05.276.076.406.076m-2.97-7.84c-.37.082-.695.247-.976.45-.28.198-.505.47-.672.813-.16.342-.242.78-.242 1.31V18H6v-7.188c0-.776.15-1.455.453-2.04.302-.587.714-1.077 1.234-1.467.52-.39 1.13-.685 1.83-.883.697-.198 1.44-.297 2.225-.297.526 0 1.04.044 1.54.133.504.088.98.22 1.43.398.447.172.858.388 1.233.65.375.26.698.564.97.913.275.347.49.737.64 1.17.15.432.226 1.093.226 1.61h1.354v2.04H17.78v1.6c0 .58-.103 1.09-.31 1.54-.21.44-.49.814-.845 1.116-.35.302-.834.53-1.297.687-.464.15-.953.226-1.47.226-.51 0-.996-.08-1.46-.235-.464-.156-.87-.39-1.22-.703-.348-.313-.626-.703-.835-1.172-.203-.473-.304-1.028-.304-1.663s.104-1.182.32-1.64c.212-.46.496-.685.85-.977.354-.297.76-.513 1.22-.648.457-.14.934-.21 1.43-.21h1.13c-.01-.49-.04-1.043-.24-1.36-.2-.323-.454-.58-.767-.766-.312-.193-.598-.332-.984-.426-.375-.09-.578-.094-1.1-.094-.52 0-.64.02-1.01.102z"/>
     </g>
 </svg>
index 4f64820..1806709 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="bold-b">
-        <path id="b" d="M7 18h6c2 0 4-1 4-3 0-1.064.011-1.975-1.989-3 2-.975 1.989-1.935 1.989-3 0-2-2-3-4-3h-6v12zm7-8c0 1.001 0 1-2 1h-2v-3h2c2 0 2 0 2 1v1zm-2 6h-2v-3h2c2 0 2 0 2 1v1s0 1-2 1z"/>
+        <path id="b" d="M7 18h6c2 0 4-1 4-3 0-1.064.01-1.975-1.99-3 2-.975 1.99-1.935 1.99-3 0-2-2-3-4-3H7v12zm7-8c0 1 0 1-2 1h-2V8h2c2 0 2 0 2 1v1zm-2 6h-2v-3h2c2 0 2 0 2 1v1s0 1-2 1z"/>
     </g>
 </svg>
index dc31051..07a721b 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-be.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-be.png differ
index 279466d..5c6f8c0 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="bold-cyrl-be">
-        <path id="cyrl-be" d="M7 6h9v2h-6v3h2.649c.893 0 1.633.109 2.22.327.588.218 1.088.622 1.502 1.211.419.589.629 1.187.629 1.978 0 .813-.21 1.398-.629 1.977-.419.578-.898.974-1.437 1.187-.533.213-1.295.319-2.286.319h-5.649m4.767-2c.751 0 1.279-.049 1.584-.12.305-.076.569-.246.792-.508.229-.262.343-.473.343-.855 0-.557-.199-.868-.596-1.119-.392-.256-1.064-.398-2.016-.398h-1.873v3"/>
+        <path id="cyrl-be" d="M7 6h9v2h-6v3h2.65c.892 0 1.632.11 2.22.327.587.218 1.087.622 1.5 1.21.42.59.63 1.188.63 1.98 0 .812-.21 1.397-.63 1.976-.418.578-.897.974-1.436 1.187-.533.213-1.295.32-2.286.32h-5.65m4.768-2c.75 0 1.28-.05 1.584-.12.305-.077.57-.247.792-.51.23-.26.343-.472.343-.854 0-.557-.2-.868-.596-1.12-.393-.255-1.065-.397-2.017-.397H10v3"/>
     </g>
 </svg>
index fdeeb6c..63aee3e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="bold-cyrl-te">
-        <path id="te" d="M11 18v-10h-4v-2h11v2h-4v10"/>
+        <path id="te" d="M11 18V8H7V6h11v2h-4v10"/>
     </g>
 </svg>
index 3084fef..cfe0009 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-zhe.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-zhe.png differ
index 5996c81..d26bdf6 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="bold-cyrl-zhe">
-        <path id="cyrl-zhe" d="M13 6v5.154c.328-.033.537-.181.705-.447.168-.266.401-.873.698-1.821.39-1.241.789-2.033 1.197-2.374.403-.336 1.075-.504 2.014-.504l.386-.008v1.78l-.386-.008c-.399 0-.691.062-.878.187-.186.119-.337.304-.452.553-.115.249-.286.762-.512 1.537-.12.412-.25.756-.392 1.033-.137.276-.383.537-.738.78.439.157.8.466 1.084.927.288.455.603 1.103.944 1.943l1.33 3.268h-2.314l-1.17-3.081-.113-.252-.239-.561c-.248-.569-.452-.932-.612-1.089-.16-.157-.317-.236-.552-.236v5.22h-2v-5.22c-.226 0-.382.076-.546.228-.164.152-.368.518-.612 1.098l-.246.561-.113.252-1.17 3.081h-2.314l1.33-3.268c.328-.808.636-1.447.924-1.919.293-.477.663-.794 1.11-.951-.355-.244-.603-.501-.745-.772-.137-.276-.268-.623-.392-1.041-.222-.759-.39-1.266-.505-1.52-.111-.255-.261-.444-.452-.569-.186-.125-.492-.187-.917-.187l-.352.008v-1.78l.386.008c.953 0 1.631.171 2.034.512.399.347.791 1.136 1.177 2.366.301.954.534 1.564.698 1.829.168.26.377.406.705.439v-5.154"/>
+        <path id="cyrl-zhe" d="M13 6v5.154c.328-.033.537-.18.705-.447.168-.266.4-.873.698-1.82.39-1.242.79-2.034 1.197-2.375.403-.336 1.075-.504 2.014-.504L18 6v1.78l-.386-.008c-.4 0-.69.062-.878.187-.186.118-.337.303-.452.552-.115.25-.286.762-.512 1.537-.12.41-.25.755-.392 1.032-.137.276-.383.537-.738.78.44.157.8.466 1.084.927.288.454.603 1.102.944 1.942L18 18h-2.314l-1.17-3.08-.113-.253-.24-.56c-.247-.57-.45-.933-.61-1.09-.16-.157-.318-.236-.553-.236V18h-2v-5.22c-.226 0-.382.077-.546.23-.164.15-.368.517-.612 1.097l-.246.56-.113.253L8.313 18H6l1.33-3.267c.327-.808.635-1.447.923-1.92.293-.476.663-.793 1.11-.95-.355-.244-.603-.5-.745-.772-.137-.275-.268-.622-.392-1.04-.222-.76-.39-1.266-.505-1.52-.11-.255-.26-.444-.45-.57-.187-.124-.493-.186-.918-.186L6 7.782v-1.78l.386.008c.953 0 1.63.17 2.034.512.4.347.79 1.136 1.177 2.366.3.954.534 1.564.698 1.83.168.26.377.405.705.438V6.002"/>
     </g>
 </svg>
index 357d2e5..89061f1 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="bold-f">
-        <path id="f" d="M16 8v-2h-8v12h3v-5h4v-2h-4v-3z"/>
+        <path id="f" d="M16 8V6H8v12h3v-5h4v-2h-4V8z"/>
     </g>
 </svg>
index e30e1fe..ceb792b 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-g.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-g.png differ
index e032542..dd6e27a 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="bold-g">
-        <path id="g" d="M12 14v-2h5v4.203c-.497.475-1.22.894-2.166 1.259-.941.359-1.896.538-2.864.538-1.23 0-2.303-.253-3.217-.76-.915-.512-1.602-1.24-2.062-2.185-.46-.95-.69-1.982-.69-3.095 0-1.208.257-2.282.77-3.222.513-.939 1.265-1.66 2.255-2.161.754-.385 1.693-.578 2.816-.578 1.46 0 2.6.303 3.418.91.824.602 1.353 1.435 1.589 2.501l-2.359.435c-.166-.57-.479-1.018-.939-1.346-.455-.332-1.024-.499-1.709-.499-1.038 0-1.864.325-2.479.974-.61.649-.915 1.612-.915 2.889 0 1.377.31 2.412.931 3.103.62.686 1.433 1.029 2.439 1.029.497 0 .995-.095 1.492-.285.503-.195 1.332-.571 1.691-.845v-.867"/>
+        <path id="g" d="M12 14v-2h5v4.203c-.497.475-1.22.894-2.166 1.26-.94.358-1.896.537-2.864.537-1.23 0-2.303-.253-3.217-.76-.915-.512-1.602-1.24-2.062-2.185-.46-.95-.69-1.982-.69-3.095 0-1.208.258-2.282.77-3.222.514-.94 1.266-1.66 2.256-2.16.754-.386 1.693-.58 2.816-.58 1.46 0 2.6.304 3.418.91.824.603 1.353 1.436 1.59 2.502l-2.36.435c-.166-.57-.48-1.018-.94-1.346-.454-.333-1.023-.5-1.708-.5-1.038 0-1.864.325-2.48.974-.61.65-.914 1.612-.914 2.89 0 1.376.31 2.41.93 3.102.62.686 1.434 1.03 2.44 1.03.497 0 .995-.096 1.492-.286.503-.195 1.332-.57 1.69-.845v-.867"/>
     </g>
 </svg>
index 814eff8..d6dcb5d 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-geor-man.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-geor-man.png differ
index b211bf7..deb95b7 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="bold-geor-man">
-        <path id="geor-man" d="M13.832 14.061c0-1.715-.394-2.573-1.182-2.573-.868 0-1.302.779-1.302 2.338-.01 1.624.421 2.436 1.295 2.436.793 0 1.189-.734 1.189-2.201m2.168 0c0 2.626-1.116 3.939-3.349 3.939-2.434 0-3.651-1.386-3.651-4.159 0-2.738 1.217-4.106 3.651-4.106.841 0 1.182.63 1.182.63v-1.579c0-.789-.449-1.184-1.347-1.184-.572 0-.858.374-.858 1.123h-2.341c.005-1.817 1.064-2.725 3.176-2.725 2.368 0 3.548.946 3.538 2.839"/>
+        <path id="geor-man" d="M13.832 14.06c0-1.714-.394-2.572-1.182-2.572-.868 0-1.302.78-1.302 2.338-.01 1.624.42 2.436 1.295 2.436.793 0 1.19-.734 1.19-2.2m2.167 0C16 16.686 14.884 18 12.65 18 10.218 18 9 16.614 9 13.84c0-2.737 1.217-4.105 3.65-4.105.842 0 1.183.63 1.183.63v-1.58c0-.788-.45-1.183-1.347-1.183-.572 0-.858.374-.858 1.123h-2.34C9.29 6.908 10.35 6 12.462 6 14.83 6 16.01 6.946 16 8.84"/>
     </g>
 </svg>
index 1679793..7695623 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="bold-l">
-        <path id="l" d="M8 18v-12h3v10h5v2"/>
+        <path id="l" d="M8 18V6h3v10h5v2"/>
     </g>
 </svg>
index 73ad019..62f66a2 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="bold-n">
-        <path id="n" d="M7 18v-12h3l4 8v-8h3v12h-3l-4-8v8h-3"/>
+        <path id="n" d="M7 18V6h3l4 8V6h3v12h-3l-4-8v8H7"/>
     </g>
 </svg>
index 146943a..027db27 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="bold-v">
-        <path id="v" d="M10.5 18l-4.5-12h3l3 8 3-8h3l-4.5 12"/>
+        <path id="v" d="M10.5 18L6 6h3l3 8 3-8h3l-4.5 12"/>
     </g>
 </svg>
index 7a058ed..6a9a748 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="M15 7c-1.7 0-3 1.3-3 3 0-1.7-1.3-3-3-3h-6v13h6c1.7 0 3 1 3 2 0-1 1.3-2 3-2h6v-13h-6zm5 12h-5c-1.7 0-2 .4-2 .4v-8.9c0-1.4 1.1-2.5 2.5-2.5h4.5v11z"/>
+    <path d="M15 7c-1.7 0-3 1.3-3 3 0-1.7-1.3-3-3-3H3v13h6c1.7 0 3 1 3 2 0-1 1.3-2 3-2h6V7h-6zm5 12h-5c-1.7 0-2 .4-2 .4v-8.9C13 9.1 14.1 8 15.5 8H20v11z"/>
 </svg>
index 6ae47ec..b192ea6 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="M9 7c1.7 0 3 1.3 3 3 0-1.7 1.3-3 3-3h6v13h-6c-1.7 0-3 1-3 2 0-1-1.3-2-3-2h-6v-13h6zm-5 12h5c1.7 0 2 .4 2 .4v-8.9c0-1.4-1.1-2.5-2.5-2.5h-4.5v11z" id="path78"/>
+    <path d="M9 7c1.7 0 3 1.3 3 3 0-1.7 1.3-3 3-3h6v13h-6c-1.7 0-3 1-3 2 0-1-1.3-2-3-2H3V7h6zM4 19h5c1.7 0 2 .4 2 .4v-8.9C11 9.1 9.9 8 8.5 8H4v11z" id="path78"/>
 </svg>
index d803d6b..ba3ff91 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="M15 5h-7c-1.1 0-2 .9-2 2v3h3v11l4-3 4 3v-14c0-1.1-.9-2-2-2zm-6 4h-2v-2c0-.6.4-1 1-1h1v3z"/>
+    <path d="M15 5H8c-1.1 0-2 .9-2 2v3h3v11l4-3 4 3V7c0-1.1-.9-2-2-2zM9 9H7V7c0-.6.4-1 1-1h1v3z"/>
 </svg>
index 744d0f4..ba0be74 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="M8 5h7c1.1 0 2 .9 2 2v3h-3v11l-4-3-4 3v-14c0-1.1.9-2 2-2zm6 4h2v-2c0-.6-.4-1-1-1h-1v3z" id="path88"/>
+    <path d="M8 5h7c1.1 0 2 .9 2 2v3h-3v11l-4-3-4 3V7c0-1.1.9-2 2-2zm6 4h2V7c0-.6-.4-1-1-1h-1v3z" id="path88"/>
 </svg>
index 7bd0425..e7be7e5 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="M3 6v11c0 1.7 1.3 3 3 3h15v-14h-18zm2.5 1c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5.7-1.5 1.5-1.5zm14.5 12h-14c-1.1 0-2-.9-2-2v-6h16v8z"/>
+    <path d="M3 6v11c0 1.7 1.3 3 3 3h15V6H3zm2.5 1C6.3 7 7 7.7 7 8.5S6.3 10 5.5 10 4 9.3 4 8.5 4.7 7 5.5 7zM20 19H6c-1.1 0-2-.9-2-2v-6h16v8z"/>
 </svg>
index 84b18da..080e237 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="M21 6v11c0 1.7-1.3 3-3 3h-15v-14h18zm-2.5 1c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5 1.5-.7 1.5-1.5-.7-1.5-1.5-1.5zm-14.5 12h14c1.1 0 2-.9 2-2v-6h-16v8z" id="path98"/>
+    <path d="M21 6v11c0 1.7-1.3 3-3 3H3V6h18zm-2.5 1c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5S20 9.3 20 8.5 19.3 7 18.5 7zM4 19h14c1.1 0 2-.9 2-2v-6H4v8z" id="path98"/>
 </svg>
index 5668e12..70dcb87 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-invert.png differ
index 8a9d3d4..0858177 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="cancel">
-        <path id="circle-with-strike" d="M11.999 5.022c-3.853 0-6.977 3.124-6.977 6.978 0 3.853 3.124 6.978 6.977 6.978 3.854 0 6.979-3.125 6.979-6.978 0-3.854-3.125-6.978-6.979-6.978zm-5.113 6.978c0-1.092.572-3.25.93-2.929l7.113 7.113c.488.525-1.837.931-2.93.931-2.825-.001-5.113-2.291-5.113-5.115zm9.298 2.929l-7.114-7.113c-.445-.483 1.837-.931 2.929-.931 2.827 0 5.115 2.289 5.115 5.114 0 1.093-.364 3.543-.93 2.93z"/>
+        <path id="circle-with-strike" d="M12 5.022C8.145 5.022 5.02 8.146 5.02 12c0 3.853 3.124 6.978 6.977 6.978s6.978-3.125 6.978-6.978c0-3.854-3.125-6.978-6.98-6.978zM6.885 12c0-1.092.572-3.25.93-2.93l7.113 7.114c.487.525-1.838.93-2.93.93-2.826 0-5.114-2.29-5.114-5.114zm9.298 2.93L9.07 7.815c-.445-.483 1.837-.93 2.93-.93 2.826 0 5.114 2.288 5.114 5.113 0 1.092-.364 3.542-.93 2.93z"/>
     </g>
 </svg>
index 51a33ff..76b87e4 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel.png differ
index bfc1b44..00c8051 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="cancel">
-        <path id="circle-with-strike" d="M11.999 5.022c-3.853 0-6.977 3.124-6.977 6.978 0 3.853 3.124 6.978 6.977 6.978 3.854 0 6.979-3.125 6.979-6.978 0-3.854-3.125-6.978-6.979-6.978zm-5.113 6.978c0-1.092.572-3.25.93-2.929l7.113 7.113c.488.525-1.837.931-2.93.931-2.825-.001-5.113-2.291-5.113-5.115zm9.298 2.929l-7.114-7.113c-.445-.483 1.837-.931 2.929-.931 2.827 0 5.115 2.289 5.115 5.114 0 1.093-.364 3.543-.93 2.93z"/>
+        <path id="circle-with-strike" d="M12 5.022C8.145 5.022 5.02 8.146 5.02 12c0 3.853 3.124 6.978 6.977 6.978s6.978-3.125 6.978-6.978c0-3.854-3.125-6.978-6.98-6.978zM6.885 12c0-1.092.572-3.25.93-2.93l7.113 7.114c.487.525-1.838.93-2.93.93-2.826 0-5.114-2.29-5.114-5.114zm9.298 2.93L9.07 7.815c-.445-.483 1.837-.93 2.93-.93 2.826 0 5.114 2.288 5.114 5.113 0 1.092-.364 3.542-.93 2.93z"/>
     </g>
 </svg>
index a42aaa5..d90b371 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr.png differ
index f31ec09..44d2d1a 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 13.1l8.9 8.9c.8-.8.8-2 0-2.8l-6.1-6.1 6-6.1c.8-.8.8-2 0-2.8l-8.8 8.9z"/>
+    <path d="M7 13.1l8.9 8.9c.8-.8.8-2 0-2.8l-6.1-6.1 6-6.1c.8-.8.8-2 0-2.8L7 13.1z"/>
 </svg>
index 02b4e38..88c7c73 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="M16.5 13.1l-8.9 8.9c-.8-.8-.8-2 0-2.8l6.1-6.1-6-6.1c-.8-.8-.8-2 0-2.8l8.8 8.9z" id="path108"/>
+    <path d="M16.5 13.1L7.6 22c-.8-.8-.8-2 0-2.8l6.1-6.1-6-6.1c-.8-.8-.8-2 0-2.8l8.8 8.9z" id="path108"/>
 </svg>
index a04ca57..27cb080 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 16l8.9-8.9c-.8-.8-2-.8-2.8 0l-6.1 6.1-6.1-6c-.8-.8-2-.8-2.8 0l8.9 8.8z" id="path4"/>
+    <path d="M12 16l8.9-8.9c-.8-.8-2-.8-2.8 0L12 13.2l-6.1-6c-.8-.8-2-.8-2.8 0L12 16z" id="path4"/>
 </svg>
index 5591095..efd2356 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp.png differ
index d0e0c28..1d63093 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 6.5l8.9 8.9c-.8.8-2 .8-2.8 0l-6.1-6.1-6.1 6c-.8.8-2 .8-2.8 0l8.9-8.8z" id="path4"/>
+    <path d="M12 6.5l8.9 8.9c-.8.8-2 .8-2.8 0L12 9.3l-6.1 6c-.8.8-2 .8-2.8 0L12 6.5z" id="path4"/>
 </svg>
index e30bf2d..e924c44 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/case-sensitive.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/case-sensitive.png differ
index 824790c..3f0a3a5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="regular-expression">
-        <path id="upper-case" d="M 7.53125,7 4,17 l 2.0625,0 0.71875,-2.40625 3.625,0 L 11.125,17 13.1875,17 9.65625,7 7.53125,7 z M 8.59375,8.53125 9.9375,13 7.25,13 8.59375,8.53125 z" />
-        <path id="lower-case" d="m 18.548697,17 -0.183254,-1.035072 -0.05451,0 c -0.349771,0.440361 -0.710892,0.746796 -1.083366,0.919307 -0.367941,0.167972 -0.849436,0.251959 -1.444489,0.251959 -0.564328,0 -0.954665,-0.20883 -1.377109,-0.626492 -0.417903,-0.417659 -0.626854,-1.012371 -0.626853,-1.784137 -1e-6,-0.80808 0.281628,-1.402791 0.844889,-1.784137 0.567801,-0.385878 1.193222,-0.607062 2.208372,-0.640111 l 1.321843,-0.04086 0,-0.333674 c 0,-0.771759 -0.395195,-1.15764 -1.185571,-1.157647 -0.608688,7e-6 -1.324118,0.183867 -2.146293,0.551584 L 14.134181,9.9184512 c 0.876685,-0.4585114 1.848761,-0.6877705 2.916233,-0.6877783 1.022038,7.8e-6 1.586855,0.2224573 2.131951,0.6673492 C 19.727448,10.342928 20,11.019356 20,11.927309 l 0,5.073215 -1.451303,0 m -0.394476,-3.527417 -0.804008,0.02724 c -0.604145,0.01816 -1.053844,0.127119 -1.349098,0.326866 -0.29526,0.199753 -0.442889,0.503919 -0.442886,0.912498 -3e-6,0.585634 0.336136,0.878451 1.008417,0.878449 0.481492,2e-6 0.865326,-0.138462 1.151503,-0.415391 0.29071,-0.276925 0.436067,-0.644648 0.436072,-1.103169 l 0,-0.626491" />
+        <path id="upper-case" d="M7.53 7L4 17h2.063l.72-2.406h3.624l.72 2.406h2.062L9.657 7H7.533zm1.064 1.53L9.938 13H7.25l1.344-4.47z"/>
+        <path id="lower-case" d="M18.55 17l-.184-1.035h-.055c-.35.44-.71.747-1.082.92-.368.167-.85.25-1.444.25-.564 0-.955-.208-1.377-.625-.418-.418-.627-1.012-.627-1.784 0-.808.282-1.403.845-1.784.568-.386 1.193-.607 2.208-.64l1.322-.04v-.335c0-.772-.395-1.158-1.186-1.158-.61 0-1.325.183-2.147.55l-.688-1.4c.877-.46 1.85-.69 2.916-.69 1.023 0 1.588.223 2.133.668.545.445.818 1.12.818 2.03V17h-1.45m-.394-3.527l-.804.027c-.604.018-1.054.127-1.35.327-.294.2-.442.504-.442.912 0 .585.336.877 1.008.877.48 0 .865-.138 1.152-.415.29-.277.436-.645.436-1.103v-.627"/>
     </g>
 </svg>
index 085e667..f1291f9 100644 (file)
@@ -1,2 +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: #00AF89 }</style><circle cx="12" cy="12" r="6"></circle></svg>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #00AF89 }</style>
+    <circle cx="12" cy="12" r="6"/>
+</svg>
index f5285c7..7cae5db 100644 (file)
@@ -1,2 +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><circle cx="12" cy="12" r="6"></circle></svg>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <circle cx="12" cy="12" r="6"/>
+</svg>
index 436259e..18133cc 100644 (file)
@@ -1,2 +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"><circle cx="12" cy="12" r="6"></circle></svg>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <circle cx="12" cy="12" r="6"/>
+</svg>
index 28ba0cb..d997cf2 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M7 12h9v-1h-9v1zm0 2h9v-1h-9v1zm0 2h9v-1h-9v1zm4-9h-4v1h4v-1zm0 2h-4v1h4v-1zm0-4h-4v1h4v-1zm5-2h2v16h-10c-1.7 0-3-1.3-3-3v-13h8v7l1.5-2 1.5 2v-7z"/>
+        <path d="M7 12h9v-1H7v1zm0 2h9v-1H7v1zm0 2h9v-1H7v1zm4-9H7v1h4V7zm0 2H7v1h4V9zm0-4H7v1h4V5zm5-2h2v16H8c-1.7 0-3-1.3-3-3V3h8v7l1.5-2 1.5 2V3z"/>
     </g>
 </svg>
index 7625307..688bd1b 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g128">
-        <path d="M16 12h-9v-1h9v1zm0 2h-9v-1h9v1zm0 2h-9v-1h9v1zm-4-9h4v1h-4v-1zm0 2h4v1h-4v-1zm0-4h4v1h-4v-1zm-5-2h-2v16h10c1.7 0 3-1.3 3-3v-13h-8v7l-1.5-2-1.5 2v-7z" id="path130"/>
+        <path d="M16 12H7v-1h9v1zm0 2H7v-1h9v1zm0 2H7v-1h9v1zm-4-9h4v1h-4V7zm0 2h4v1h-4V9zm0-4h4v1h-4V5zM7 3H5v16h10c1.7 0 3-1.3 3-3V3h-8v7L8.5 8 7 10V3z" id="path130"/>
     </g>
 </svg>
index 55a26c9..8689e77 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-  <g id="clear">
-    <path id="circle-with-cross" d="M12 5c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm4 11l-1 1-3-3-3 3-1-1 3-3-3-3 1-1 3 3 3-3 1 1-3 3 3 3z"/>
-  </g>
+    <g id="clear">
+        <path id="circle-with-cross" d="M12 5c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm4 11l-1 1-3-3-3 3-1-1 3-3-3-3 1-1 3 3 3-3 1 1-3 3 3 3z"/>
+    </g>
 </svg>
index 1cf7267..6d8f75e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <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 12l-4-3v-6h2v5l1.7 1.2c1.3.9 1 1.9.3 2.8z"/>
+        <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 12l-4-3V8h2v5l1.7 1.2c1.3.9 1 1.9.3 2.8z"/>
     </g>
 </svg>
index ec44c92..89c5e25 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.4 8.1c.8-.8.8-2 0-2.8l-6.4 6.5-5.6-5.6-1.4 1.4 5.6 5.6-5 5c-.8.8-.8 2 0 2.8l6.4-6.4 5.6 5.6 1.4-1.4-5.6-5.6 5-5.1z"/>
+    <path d="M18.4 8.1c.8-.8.8-2 0-2.8L12 11.8 6.4 6.2 5 7.6l5.6 5.6-5 5c-.8.8-.8 2 0 2.8l6.4-6.4 5.6 5.6 1.4-1.4-5.6-5.6 5-5.1z"/>
 </svg>
index 4f0f64e..4dfa16a 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.4 8.1c.8-.8.8-2 0-2.8l-6.4 6.5-5.6-5.6-1.4 1.4 5.6 5.6-5 5c-.8.8-.8 2 0 2.8l6.4-6.4 5.6 5.6 1.4-1.4-5.6-5.6 5-5.1z"/>
+    <path d="M18.4 8.1c.8-.8.8-2 0-2.8L12 11.8 6.4 6.2 5 7.6l5.6 5.6-5 5c-.8.8-.8 2 0 2.8l6.4-6.4 5.6 5.6 1.4-1.4-5.6-5.6 5-5.1z"/>
 </svg>
index b5ae392..d20fff1 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="M5.6 8.1c-.8-.8-.8-2 0-2.8l6.4 6.5 5.6-5.6 1.4 1.4-5.6 5.6 5 5c.8.8.8 2 0 2.8l-6.4-6.4-5.6 5.6-1.4-1.4 5.6-5.6-5-5.1z" id="path140"/>
+    <path d="M5.6 8.1c-.8-.8-.8-2 0-2.8l6.4 6.5 5.6-5.6L19 7.6l-5.6 5.6 5 5c.8.8.8 2 0 2.8L12 14.6l-5.6 5.6L5 18.8l5.6-5.6-5-5.1z" id="path140"/>
 </svg>
index d9829d0..3666a34 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="M5.6 8.1c-.8-.8-.8-2 0-2.8l6.4 6.5 5.6-5.6 1.4 1.4-5.6 5.6 5 5c.8.8.8 2 0 2.8l-6.4-6.4-5.6 5.6-1.4-1.4 5.6-5.6-5-5.1z" id="path140"/>
+    <path d="M5.6 8.1c-.8-.8-.8-2 0-2.8l6.4 6.5 5.6-5.6L19 7.6l-5.6 5.6 5 5c.8.8.8 2 0 2.8L12 14.6l-5.6 5.6L5 18.8l5.6-5.6-5-5.1z" id="path140"/>
 </svg>
index bc4ae94..a816be8 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
     <g id="code">
-        <path id="left-bracket" d="M4 12v-1h1c1 0 1 0 1-1v-2.386c0-.514.024-.896.073-1.142.054-.252.139-.463.257-.633.204-.279.473-.475.808-.584.335-.115.872-.255 1.835-.255h1.027v1h-.752c-.457 0-.77.191-.936.408-.167.215-.312.445-.312 1.068v1.857c0 .729-.041 1.18-.244 1.493-.2.307-.562.529-1.09.667.535.155.9.385 1.096.688.199.303.238.757.238 1.484v1.862c0 .619.145.848.312 1.062.166.22.479.407.936.407l.752.004v1h-1.027c-.963 0-1.5-.133-1.835-.248-.335-.109-.604-.307-.808-.591-.118-.165-.203-.374-.257-.625-.049-.253-.073-.636-.073-1.149v-2.387c0-1 0-1-1-1h-1z"/>
+        <path id="left-bracket" d="M4 12v-1h1c1 0 1 0 1-1V7.614c0-.514.024-.896.073-1.142.054-.252.14-.463.257-.633.204-.28.473-.476.808-.585C7.473 5.14 8.01 5 8.973 5H10v1h-.752c-.457 0-.77.19-.936.408C8.145 6.623 8 6.853 8 7.476v1.857c0 .73-.04 1.18-.244 1.493-.2.307-.562.53-1.09.667.535.155.9.385 1.096.688.2.304.238.758.238 1.485v1.862c0 .62.145.848.312 1.062.166.22.48.406.936.406L10 17v1H8.973c-.963 0-1.5-.133-1.835-.248-.335-.11-.604-.307-.808-.59-.118-.166-.203-.375-.257-.626-.05-.253-.073-.636-.073-1.15V13c0-1 0-1-1-1H4z"/>
         <use transform="matrix(-1 0 0 1 24 0)" id="right-bracket" width="24" height="24" xlink:href="#left-bracket"/>
     </g>
 </svg>
index 32f140d..6e32d78 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24">
     <g id="code">
-        <path id="left-bracket" d="M4 12v-1h1c1 0 1 0 1-1v-2.386c0-.514.024-.896.073-1.142.054-.252.139-.463.257-.633.204-.279.473-.475.808-.584.335-.115.872-.255 1.835-.255h1.027v1h-.752c-.457 0-.77.191-.936.408-.167.215-.312.445-.312 1.068v1.857c0 .729-.041 1.18-.244 1.493-.2.307-.562.529-1.09.667.535.155.9.385 1.096.688.199.303.238.757.238 1.484v1.862c0 .619.145.848.312 1.062.166.22.479.407.936.407l.752.004v1h-1.027c-.963 0-1.5-.133-1.835-.248-.335-.109-.604-.307-.808-.591-.118-.165-.203-.374-.257-.625-.049-.253-.073-.636-.073-1.149v-2.387c0-1 0-1-1-1h-1z"/>
+        <path id="left-bracket" d="M4 12v-1h1c1 0 1 0 1-1V7.614c0-.514.024-.896.073-1.142.054-.252.14-.463.257-.633.204-.28.473-.476.808-.585C7.473 5.14 8.01 5 8.973 5H10v1h-.752c-.457 0-.77.19-.936.408C8.145 6.623 8 6.853 8 7.476v1.857c0 .73-.04 1.18-.244 1.493-.2.307-.562.53-1.09.667.535.155.9.385 1.096.688.2.304.238.758.238 1.485v1.862c0 .62.145.848.312 1.062.166.22.48.406.936.406L10 17v1H8.973c-.963 0-1.5-.133-1.835-.248-.335-.11-.604-.307-.808-.59-.118-.166-.203-.375-.257-.626-.05-.253-.073-.636-.073-1.15V13c0-1 0-1-1-1H4z"/>
         <use transform="matrix(-1 0 0 1 24 0)" id="right-bracket" width="24" height="24" xlink:href="#left-bracket"/>
     </g>
 </svg>
index a9d0d33..3e7e993 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/collapse-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/collapse-invert.png differ
index 451e0fe..926f98d 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="collapse">
-        <path id="arrow" d="M6.697 15.714l5.303-5.302 5.303 5.302 1.414-1.414-6.717-6.717-6.717 6.717z"/>
+        <path id="arrow" d="M6.697 15.714L12 10.412l5.303 5.302 1.414-1.414L12 7.583 5.283 14.3z"/>
     </g>
 </svg>
index 353ac79..4dad20f 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/collapse.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/collapse.png differ
index 55aa8f8..645bfda 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="collapse">
-        <path id="arrow" d="M6.697 15.714l5.303-5.302 5.303 5.302 1.414-1.414-6.717-6.717-6.717 6.717z"/>
+        <path id="arrow" d="M6.697 15.714L12 10.412l5.303 5.302 1.414-1.414L12 7.583 5.283 14.3z"/>
     </g>
 </svg>
index b6152fe..3b58d71 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="comment">
-        <path id="speech-bubble" d="M15 6h-6c-1.657 0-3 1.344-3 3v4c0 1.656 1.343 3 3 3v3l3-3h3c1.657 0 3-1.344 3-3v-4c0-1.656-1.343-3-3-3z"/>
+        <path id="speech-bubble" d="M15 6H9C7.343 6 6 7.344 6 9v4c0 1.656 1.343 3 3 3v3l3-3h3c1.657 0 3-1.344 3-3V9c0-1.656-1.343-3-3-3z"/>
     </g>
 </svg>
index 0ae7e63..c52ce1c 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="comment">
-        <path id="speech-bubble" d="M15 6h-6c-1.657 0-3 1.344-3 3v4c0 1.656 1.343 3 3 3v3l3-3h3c1.657 0 3-1.344 3-3v-4c0-1.656-1.343-3-3-3z"/>
+        <path id="speech-bubble" d="M15 6H9C7.343 6 6 7.344 6 9v4c0 1.656 1.343 3 3 3v3l3-3h3c1.657 0 3-1.344 3-3V9c0-1.656-1.343-3-3-3z"/>
     </g>
 </svg>
index eb4c360..2571d4d 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="M16 5h-12v12c0 1.6 1.3 3 3 3h12v-12c0-1.7-1.4-3-3-3zm-8.5 12c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm0-6c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm4 3c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm4 3c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm0-6c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5z"/>
+    <path d="M16 5H4v12c0 1.6 1.3 3 3 3h12V8c0-1.7-1.4-3-3-3zM7.5 17c-.8 0-1.5-.7-1.5-1.5S6.7 14 7.5 14s1.5.7 1.5 1.5S8.3 17 7.5 17zm0-6C6.7 11 6 10.3 6 9.5S6.7 8 7.5 8 9 8.7 9 9.5 8.3 11 7.5 11zm4 3c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm4 3c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm0-6c-.8 0-1.5-.7-1.5-1.5S14.7 8 15.5 8s1.5.7 1.5 1.5-.7 1.5-1.5 1.5z"/>
 </svg>
index e929fdb..1b4a6ca 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 5h12v12c0 1.6-1.3 3-3 3h-12v-12c0-1.7 1.4-3 3-3zm8.5 12c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5-1.5.7-1.5 1.5.7 1.5 1.5 1.5zm0-6c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5-1.5.7-1.5 1.5.7 1.5 1.5 1.5zm-4 3c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5-1.5.7-1.5 1.5.7 1.5 1.5 1.5zm-4 3c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5-1.5.7-1.5 1.5.7 1.5 1.5 1.5zm0-6c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5-1.5.7-1.5 1.5.7 1.5 1.5 1.5z" id="path150"/>
+    <path d="M7 5h12v12c0 1.6-1.3 3-3 3H4V8c0-1.7 1.4-3 3-3zm8.5 12c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5-1.5.7-1.5 1.5.7 1.5 1.5 1.5zm0-6c.8 0 1.5-.7 1.5-1.5S16.3 8 15.5 8 14 8.7 14 9.5s.7 1.5 1.5 1.5zm-4 3c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5-1.5.7-1.5 1.5.7 1.5 1.5 1.5zm-4 3c.8 0 1.5-.7 1.5-1.5S8.3 14 7.5 14 6 14.7 6 15.5 6.7 17 7.5 17zm0-6c.8 0 1.5-.7 1.5-1.5S8.3 8 7.5 8 6 8.7 6 9.5 6.7 11 7.5 11z" id="path150"/>
 </svg>
index 7bc1c22..e1fb989 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 18l8-10h-16z"/>
+    <path d="M12 18l8-10H4z"/>
 </svg>
index d0d5bb5..ba37848 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M16 11h-3v-7c-1.7 0-3 1.3-3 3v4h-3l4.5 5 4.5-5zm1 2v5h-10c-.6 0-1-.4-1-1v-4h-2v4c0 1.9 1.3 3 3 3h12v-7h-2z"/>
+        <path d="M16 11h-3V4c-1.7 0-3 1.3-3 3v4H7l4.5 5 4.5-5zm1 2v5H7c-.6 0-1-.4-1-1v-4H4v4c0 1.9 1.3 3 3 3h12v-7h-2z"/>
     </g>
 </svg>
index 9abb2ae..544c3c8 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g160">
-        <path d="M7 11h3v-7c1.7 0 3 1.3 3 3v4h3l-4.5 5-4.5-5zm-1 2v5h10c.6 0 1-.4 1-1v-4h2v4c0 1.9-1.3 3-3 3h-12v-7h2z" id="path162"/>
+        <path d="M7 11h3V4c1.7 0 3 1.3 3 3v4h3l-4.5 5L7 11zm-1 2v5h10c.6 0 1-.4 1-1v-4h2v4c0 1.9-1.3 3-3 3H4v-7h2z" id="path162"/>
     </g>
 </svg>
index add25a4..fbae9d2 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="Layer_3">
-        <path d="M17 2l-12 12-1 5 5-1 12-12c0-2-2-4-4-4zm-9.8 13.5c-.3-.3-.7-.6-1-.8 2.3-2.3 11.3-11.4 11.3-11.4.4.1.7.3 1 .7l-11.3 11.5z"/>
+        <path d="M17 2L5 14l-1 5 5-1L21 6c0-2-2-4-4-4zM7.2 15.5c-.3-.3-.7-.6-1-.8C8.5 12.4 17.5 3.3 17.5 3.3c.4.1.7.3 1 .7L7.2 15.5z"/>
     </g>
 </svg>
index bceb7c1..d27c3a5 100644 (file)
@@ -1,6 +1,6 @@
 <?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: #347BFF }</style>
     <g id="Layer_3">
-        <path d="M17 2l-12 12-1 5 5-1 12-12c0-2-2-4-4-4zm-9.8 13.5c-.3-.3-.7-.6-1-.8 2.3-2.3 11.3-11.4 11.3-11.4.4.1.7.3 1 .7l-11.3 11.5z"/>
+        <path d="M17 2L5 14l-1 5 5-1L21 6c0-2-2-4-4-4zM7.2 15.5c-.3-.3-.7-.6-1-.8C8.5 12.4 17.5 3.3 17.5 3.3c.4.1.7.3 1 .7L7.2 15.5z"/>
     </g>
 </svg>
index 3972e07..4cd6cda 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="Layer_3">
-        <path d="M17 2l-12 12-1 5 5-1 12-12c0-2-2-4-4-4zm-9.8 13.5c-.3-.3-.7-.6-1-.8 2.3-2.3 11.3-11.4 11.3-11.4.4.1.7.3 1 .7l-11.3 11.5z"/>
+        <path d="M17 2L5 14l-1 5 5-1L21 6c0-2-2-4-4-4zM7.2 15.5c-.3-.3-.7-.6-1-.8C8.5 12.4 17.5 3.3 17.5 3.3c.4.1.7.3 1 .7L7.2 15.5z"/>
     </g>
 </svg>
index 2b311a9..c66c5fd 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-invert.png differ
index 339c830..42c9f2c 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="Layer_3">
-        <path d="M8 2l12 12 1 5-5-1-12-12c0-2 2-4 4-4zm9.8 13.5c.3-.3.7-.6 1-.8-2.3-2.3-11.3-11.4-11.3-11.4-.4.1-.7.3-1 .7l11.3 11.5z" id="path173"/>
+        <path d="M8 2l12 12 1 5-5-1L4 6c0-2 2-4 4-4zm9.8 13.5c.3-.3.7-.6 1-.8C16.5 12.4 7.5 3.3 7.5 3.3c-.4.1-.7.3-1 .7l11.3 11.5z" id="path173"/>
     </g>
 </svg>
index 8d36fa8..ef6c949 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-progressive.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-progressive.png differ
index d526fb4..b4db76b 100644 (file)
@@ -1,6 +1,6 @@
 <?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: #347BFF }</style>
     <g id="Layer_3">
-        <path d="M8 2l12 12 1 5-5-1-12-12c0-2 2-4 4-4zm9.8 13.5c.3-.3.7-.6 1-.8-2.3-2.3-11.3-11.4-11.3-11.4-.4.1-.7.3-1 .7l11.3 11.5z" id="path173"/>
+        <path d="M8 2l12 12 1 5-5-1L4 6c0-2 2-4 4-4zm9.8 13.5c.3-.3.7-.6 1-.8C16.5 12.4 7.5 3.3 7.5 3.3c-.4.1-.7.3-1 .7l11.3 11.5z" id="path173"/>
     </g>
 </svg>
index 4750795..4755937 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl.png differ
index 978b2fd..932997b 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="Layer_3">
-        <path d="M8 2l12 12 1 5-5-1-12-12c0-2 2-4 4-4zm9.8 13.5c.3-.3.7-.6 1-.8-2.3-2.3-11.3-11.4-11.3-11.4-.4.1-.7.3-1 .7l11.3 11.5z" id="path173"/>
+        <path d="M8 2l12 12 1 5-5-1L4 6c0-2 2-4 4-4zm9.8 13.5c.3-.3.7-.6 1-.8C16.5 12.4 7.5 3.3 7.5 3.3c-.4.1-.7.3-1 .7l11.3 11.5z" id="path173"/>
     </g>
 </svg>
index 3952442..1977477 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr-invert.png differ
index cc8b61f..5d720f4 100644 (file)
@@ -2,10 +2,10 @@
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
     <g id="g196">
         <g id="g198">
-            <path d="M14.9 2.8c.9 0 1.8.2 2.7.6.9.4 1.6.9 1.9 1.6-2.8.1-5 1.1-6.6 3.1l1.3 2-6.7-.3.5-6.8 1.7 2c1.8-1.5 3.5-2.2 5.2-2.2z" id="path200"/>
+            <path d="M14.9 2.8c.9 0 1.8.2 2.7.6.9.4 1.6.9 1.9 1.6-2.8.1-5 1.1-6.6 3.1l1.3 2-6.7-.3L8 3l1.7 2c1.8-1.5 3.5-2.2 5.2-2.2z" id="path200"/>
         </g>
     </g>
     <g id="g204">
-        <path d="M15.2 11.1l-2.6-.1-5.4 5.5c-.3-.3-.7-.6-1-.8.9-.9 2.8-2.8 4.7-4.8h-1.8l-4.1 4.1-1 5 5-1 7.8-7.8-1.6-.1zm5.4-5.1c-1.7 0-3.2.5-4.4 1.4l-.9.9.8 1.3.9 1.4 4-4c0-.3-.1-.7-.2-1h-.2z" id="path206"/>
+        <path d="M15.2 11.1l-2.6-.1-5.4 5.5c-.3-.3-.7-.6-1-.8.9-.9 2.8-2.8 4.7-4.8H9.1L5 15l-1 5 5-1 7.8-7.8-1.6-.1zM20.6 6c-1.7 0-3.2.5-4.4 1.4l-.9.9.8 1.3.9 1.4 4-4c0-.3-.1-.7-.2-1h-.2z" id="path206"/>
     </g>
 </svg>
index fe8631e..e3dc95a 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr.png differ
index f346874..05778cd 100644 (file)
@@ -2,10 +2,10 @@
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g196">
         <g id="g198">
-            <path d="M14.9 2.8c.9 0 1.8.2 2.7.6.9.4 1.6.9 1.9 1.6-2.8.1-5 1.1-6.6 3.1l1.3 2-6.7-.3.5-6.8 1.7 2c1.8-1.5 3.5-2.2 5.2-2.2z" id="path200"/>
+            <path d="M14.9 2.8c.9 0 1.8.2 2.7.6.9.4 1.6.9 1.9 1.6-2.8.1-5 1.1-6.6 3.1l1.3 2-6.7-.3L8 3l1.7 2c1.8-1.5 3.5-2.2 5.2-2.2z" id="path200"/>
         </g>
     </g>
     <g id="g204">
-        <path d="M15.2 11.1l-2.6-.1-5.4 5.5c-.3-.3-.7-.6-1-.8.9-.9 2.8-2.8 4.7-4.8h-1.8l-4.1 4.1-1 5 5-1 7.8-7.8-1.6-.1zm5.4-5.1c-1.7 0-3.2.5-4.4 1.4l-.9.9.8 1.3.9 1.4 4-4c0-.3-.1-.7-.2-1h-.2z" id="path206"/>
+        <path d="M15.2 11.1l-2.6-.1-5.4 5.5c-.3-.3-.7-.6-1-.8.9-.9 2.8-2.8 4.7-4.8H9.1L5 15l-1 5 5-1 7.8-7.8-1.6-.1zM20.6 6c-1.7 0-3.2.5-4.4 1.4l-.9.9.8 1.3.9 1.4 4-4c0-.3-.1-.7-.2-1h-.2z" id="path206"/>
     </g>
 </svg>
index 53469ce..9070cab 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl-invert.png differ
index 82018f0..8323c2f 100644 (file)
@@ -2,10 +2,10 @@
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
     <g id="g196">
         <g id="g198">
-            <path d="M10.1 2.8c-.9 0-1.8.2-2.7.6-.9.4-1.6.9-1.9 1.6 2.8.1 5 1.1 6.6 3.1l-1.3 2 6.7-.3-.5-6.8-1.7 2c-1.8-1.5-3.5-2.2-5.2-2.2z" id="path200"/>
+            <path d="M10.1 2.8c-.9 0-1.8.2-2.7.6-.9.4-1.6.9-1.9 1.6 2.8.1 5 1.1 6.6 3.1l-1.3 2 6.7-.3L17 3l-1.7 2c-1.8-1.5-3.5-2.2-5.2-2.2z" id="path200"/>
         </g>
     </g>
     <g id="g204">
-        <path d="M9.8 11.1l2.6-.1 5.4 5.5c.3-.3.7-.6 1-.8-.9-.9-2.8-2.8-4.7-4.8h1.8l4.1 4.1 1 5-5-1-7.8-7.8 1.6-.1zm-5.4-5.1c1.7 0 3.2.5 4.4 1.4l.9.9-.8 1.3-.9 1.4-4-4c0-.3.1-.7.2-1h.2z" id="path206"/>
+        <path d="M9.8 11.1l2.6-.1 5.4 5.5c.3-.3.7-.6 1-.8-.9-.9-2.8-2.8-4.7-4.8h1.8L20 15l1 5-5-1-7.8-7.8 1.6-.1zM4.4 6c1.7 0 3.2.5 4.4 1.4l.9.9-.8 1.3L8 11 4 7c0-.3.1-.7.2-1h.2z" id="path206"/>
     </g>
 </svg>
index ca5596e..6dd8b46 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl.png differ
index 5b59d45..ac03c05 100644 (file)
@@ -2,10 +2,10 @@
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g196">
         <g id="g198">
-            <path d="M10.1 2.8c-.9 0-1.8.2-2.7.6-.9.4-1.6.9-1.9 1.6 2.8.1 5 1.1 6.6 3.1l-1.3 2 6.7-.3-.5-6.8-1.7 2c-1.8-1.5-3.5-2.2-5.2-2.2z" id="path200"/>
+            <path d="M10.1 2.8c-.9 0-1.8.2-2.7.6-.9.4-1.6.9-1.9 1.6 2.8.1 5 1.1 6.6 3.1l-1.3 2 6.7-.3L17 3l-1.7 2c-1.8-1.5-3.5-2.2-5.2-2.2z" id="path200"/>
         </g>
     </g>
     <g id="g204">
-        <path d="M9.8 11.1l2.6-.1 5.4 5.5c.3-.3.7-.6 1-.8-.9-.9-2.8-2.8-4.7-4.8h1.8l4.1 4.1 1 5-5-1-7.8-7.8 1.6-.1zm-5.4-5.1c1.7 0 3.2.5 4.4 1.4l.9.9-.8 1.3-.9 1.4-4-4c0-.3.1-.7.2-1h.2z" id="path206"/>
+        <path d="M9.8 11.1l2.6-.1 5.4 5.5c.3-.3.7-.6 1-.8-.9-.9-2.8-2.8-4.7-4.8h1.8L20 15l1 5-5-1-7.8-7.8 1.6-.1zM4.4 6c1.7 0 3.2.5 4.4 1.4l.9.9-.8 1.3L8 11 4 7c0-.3.1-.7.2-1h.2z" id="path206"/>
     </g>
 </svg>
index a3cadb4..21f80da 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="expand">
-        <path id="arrow" d="M17.303 8.283l-5.303 5.303-5.303-5.303-1.414 1.414 6.717 6.717 6.717-6.717z"/>
+        <path id="arrow" d="M17.303 8.283L12 13.586 6.697 8.283 5.283 9.697 12 16.414l6.717-6.717z"/>
     </g>
 </svg>
index 7666b41..84b9e0a 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="expand">
-        <path id="arrow" d="M17.303 8.283l-5.303 5.303-5.303-5.303-1.414 1.414 6.717 6.717 6.717-6.717z"/>
+        <path id="arrow" d="M17.303 8.283L12 13.586 6.697 8.283 5.283 9.697 12 16.414l6.717-6.717z"/>
     </g>
 </svg>
index c1bad9e..99ded02 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><style>* { fill: #FFFFFF }</style>
     <g id="external">
-        <path id="box" d="M2 2h3v1h-2v6h6v-2h1v3h-8z"/>
-        <path id="arrow" d="M6.211 2h3.789v3.789l-1.421-1.421-2.132 2.132-.947-.947 2.132-2.132z"/>
+        <path id="box" d="M2 2h3v1H3v6h6V7h1v3H2z"/>
+        <path id="arrow" d="M6.21 2H10v3.79L8.58 4.367 6.446 6.5 5.5 5.553 7.632 3.42z"/>
     </g>
 </svg>
index 827bc1b..e836361 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
     <g id="external">
-        <path id="box" d="M2 2h3v1h-2v6h6v-2h1v3h-8z"/>
-        <path id="arrow" d="M6.211 2h3.789v3.789l-1.421-1.421-2.132 2.132-.947-.947 2.132-2.132z"/>
+        <path id="box" d="M2 2h3v1H3v6h6V7h1v3H2z"/>
+        <path id="arrow" d="M6.21 2H10v3.79L8.58 4.367 6.446 6.5 5.5 5.553 7.632 3.42z"/>
     </g>
 </svg>
index f448c87..fa3ffe0 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><style>* { fill: #FFFFFF }</style>
     <g id="external">
-        <path id="box" d="M7 3h2v6h-6v-2h-1v3h8v-8h-3z"/>
-        <path id="arrow" d="M2 5.789l1.421-1.421 2.132 2.132.947-.947-2.132-2.132 1.421-1.421h-3.789z"/>
+        <path id="box" d="M7 3h2v6H3V7H2v3h8V2H7z"/>
+        <path id="arrow" d="M2 5.79l1.42-1.422L5.554 6.5l.947-.947L4.368 3.42 5.788 2H2z"/>
     </g>
 </svg>
index c375ca0..60e6a0c 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
     <g id="external">
-        <path id="box" d="M7 3h2v6h-6v-2h-1v3h8v-8h-3z"/>
-        <path id="arrow" d="M2 5.789l1.421-1.421 2.132 2.132.947-.947-2.132-2.132 1.421-1.421h-3.789z"/>
+        <path id="box" d="M7 3h2v6H3V7H2v3h8V2H7z"/>
+        <path id="arrow" d="M2 5.79l1.42-1.422L5.554 6.5l.947-.947L4.368 3.42 5.788 2H2z"/>
     </g>
 </svg>
index 26accd8..f851591 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/eye.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/eye.png differ
index fa3bc3c..09d783b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g4">
-        <path d="M12 8c-5 0-11 6-11 6s6 6 11 6 11-6 11-6-6-6-11-6zm0 10c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z" id="path6"/>
+        <path d="M12 8C7 8 1 14 1 14s6 6 11 6l11-6s-6-6-11-6zm0 10c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z" id="path6"/>
         <circle cx="12" cy="14" r="2" id="circle8"/>
     </g>
 </svg>
index 301bf8c..f350b57 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed.png differ
index fa1167d..d17f2c8 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="M19.4 12.7c.7-.8 1.2-1.7 1.4-2.7h-1.6c-.9 2.5-3.9 4.4-7.7 4.6h-.1c-3.7-.2-6.8-2.1-7.7-4.6h-1.5c.2 1 .8 1.9 1.4 2.7l-2 2 .7.7 2-2c.8.6 1.7 1.2 2.7 1.7l-1 2.8.9.3 1-2.8c1 .3 2 .6 3.1.6v3h1v-3c1.1-.1 2.2-.3 3.1-.6l1 2.8.9-.3-1-2.8c1-.4 1.9-1 2.6-1.7l2 2 .7-.7-1.9-2z"/>
+    <path d="M19.4 12.7c.7-.8 1.2-1.7 1.4-2.7h-1.6c-.9 2.5-3.9 4.4-7.7 4.6h-.1c-3.7-.2-6.8-2.1-7.7-4.6H2.2c.2 1 .8 1.9 1.4 2.7l-2 2 .7.7 2-2c.8.6 1.7 1.2 2.7 1.7l-1 2.8.9.3 1-2.8c1 .3 2 .6 3.1.6v3h1v-3c1.1-.1 2.2-.3 3.1-.6l1 2.8.9-.3-1-2.8c1-.4 1.9-1 2.6-1.7l2 2 .7-.7-1.9-2z"/>
 </svg>
index 4336892..4625881 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/find-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/find-ltr.png differ
index f8578cf..e97230c 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="find">
-        <path id="magnifying-glass" d="m 13.65625,11 c -1.921,0 -3.5,1.54775 -3.5,3.46875 0,1.92 1.579,3.5 3.5,3.5 0.749,0 1.432,-0.25225 2,-0.65625 l 0.09375,0.15625 2.375,2.375 c 0.19,0.189 0.53425,0.15325 0.78125,-0.09375 0.247,-0.247 0.314,-0.59125 0.125,-0.78125 l -2.375,-2.375 L 16.46875,16.5 C 16.87175,15.934 17.125,15.21775 17.125,14.46875 17.124,12.54875 15.57525,11 13.65625,11 z m 0,1.65625 c 1.011306,0 1.8125,0.801194 1.8125,1.8125 0,1.011306 -0.801194,1.84375 -1.8125,1.84375 -1.011306,0 -1.84375,-0.832444 -1.84375,-1.84375 0,-1.011306 0.832444,-1.8125 1.84375,-1.8125 z" />
-        <path id="text" d="M 6,5 6,7 16,7 16,5 6,5 z m 0,3 0,2 11,0 0,-2 -11,0 z m 0,3 0,2 3.53125,0 c 0.2825289,-0.797203 0.786096,-1.486208 1.4375,-2 L 6,11 z m 0,3 0,2 3.53125,0 C 9.3537004,15.520243 9.25,15.010236 9.25,14.46875 9.25,14.309811 9.2962033,14.154621 9.3125,14 L 6,14 z" />
+        <path id="magnifying-glass" d="M13.656 11c-1.92 0-3.5 1.548-3.5 3.47 0 1.92 1.58 3.5 3.5 3.5.75 0 1.432-.253 2-.657l.094.156 2.375 2.374c.19.19.534.153.78-.094s.315-.59.126-.78l-2.374-2.376-.188-.094c.403-.566.656-1.282.656-2.03 0-1.92-1.55-3.47-3.47-3.47zm0 1.656c1.01 0 1.813.8 1.813 1.813 0 1.01-.802 1.843-1.814 1.843-1.01 0-1.844-.832-1.844-1.844s.832-1.814 1.844-1.814z"/>
+        <path id="text" d="M6 5v2h10V5H6zm0 3v2h11V8H6zm0 3v2h3.53c.284-.797.787-1.486 1.44-2H6zm0 3v2h3.53c-.177-.48-.28-.99-.28-1.53 0-.16.046-.315.063-.47H6z"/>
     </g>
 </svg>
index f492c79..ed8eea0 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/find-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/find-rtl.png differ
index 2a1e9c6..ca03754 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="find">
-        <path id="magnifying-glass" d="m 11.343828,11.000025 c 1.921,0 3.5,1.54775 3.5,3.46875 0,1.92 -1.579,3.5 -3.5,3.5 -0.749,0 -1.432,-0.25225 -2,-0.65625 l -0.09375,0.15625 -2.375,2.375 c -0.19,0.189 -0.53425,0.15325 -0.78125,-0.09375 -0.247,-0.247 -0.314,-0.59125 -0.125,-0.78125 l 2.375,-2.375 0.1875,-0.09375 c -0.403,-0.566 -0.65625,-1.28225 -0.65625,-2.03125 10e-4,-1.92 1.54975,-3.46875 3.46875,-3.46875 z m 0,1.65625 c -1.011306,0 -1.8125,0.801194 -1.8125,1.8125 0,1.011306 0.801194,1.84375 1.8125,1.84375 1.011306,0 1.84375,-0.832444 1.84375,-1.84375 0,-1.011306 -0.832444,-1.8125 -1.84375,-1.8125 z" />
-        <path id="text" d="M 19,5 19,7 9,7 9,5 z m 0,3 0,2 -11,0 0,-2 z m 0,3 0,2 -3.53125,0 c -0.282529,-0.797203 -0.786096,-1.486208 -1.4375,-2 z m 0,3 0,2 -3.53125,0 C 15.6463,15.520243 15.75,15.010236 15.75,14.46875 15.75,14.309811 15.703797,14.154621 15.6875,14 z" />
+        <path id="magnifying-glass" d="M11.344 11c1.92 0 3.5 1.548 3.5 3.47 0 1.92-1.58 3.5-3.5 3.5-.75 0-1.432-.253-2-.657l-.094.156-2.375 2.374c-.19.19-.534.153-.78-.094s-.315-.59-.126-.78l2.374-2.376.188-.094c-.403-.566-.656-1.282-.656-2.03 0-1.92 1.55-3.47 3.47-3.47zm0 1.656c-1.01 0-1.813.8-1.813 1.813 0 1.01.802 1.843 1.814 1.843 1.01 0 1.844-.832 1.844-1.844s-.832-1.814-1.844-1.814z"/>
+        <path id="text" d="M19 5v2H9V5zm0 3v2H8V8zm0 3v2h-3.53c-.284-.797-.787-1.486-1.44-2zm0 3v2h-3.53c.177-.48.28-.99.28-1.53 0-.16-.046-.315-.063-.47z"/>
     </g>
 </svg>
index 37ddb24..964d551 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="M14 6.5v-1.5c-1.4-1.5-5.2-1.2-6 0v-1h-1v15h1v-7c.8-.8 3.4-.9 5-.5v1.5c1.2 1.5 4.3 1.2 5 0v-7c-.7.7-2.7.9-4 .5z" id="path216"/>
+    <path d="M14 6.5V5c-1.4-1.5-5.2-1.2-6 0V4H7v15h1v-7c.8-.8 3.4-.9 5-.5V13c1.2 1.5 4.3 1.2 5 0V6c-.7.7-2.7.9-4 .5z" id="path216"/>
 </svg>
index 6e81d2b..bcd728e 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="M14 6.5v-1.5c-1.4-1.5-5.2-1.2-6 0v-1h-1v15h1v-7c.8-.8 3.4-.9 5-.5v1.5c1.2 1.5 4.3 1.2 5 0v-7c-.7.7-2.7.9-4 .5z" id="path216"/>
+    <path d="M14 6.5V5c-1.4-1.5-5.2-1.2-6 0V4H7v15h1v-7c.8-.8 3.4-.9 5-.5V13c1.2 1.5 4.3 1.2 5 0V6c-.7.7-2.7.9-4 .5z" id="path216"/>
 </svg>
index 4875a44..4996fe0 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.5v-1.5c1.4-1.5 5.2-1.2 6 0v-1h1v15h-1v-7c-.8-.8-3.4-.9-5-.5v1.5c-1.2 1.5-4.3 1.2-5 0v-7c.7.7 2.7.9 4 .5z" id="path216"/>
+    <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" id="path216"/>
 </svg>
index 4b743aa..3a93b6f 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.5v-1.5c1.4-1.5 5.2-1.2 6 0v-1h1v15h-1v-7c-.8-.8-3.4-.9-5-.5v1.5c-1.2 1.5-4.3 1.2-5 0v-7c.7.7 2.7.9 4 .5z" id="path216"/>
+    <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" id="path216"/>
 </svg>
index fd7f2ae..9ef0552 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 dcea1eb..5b1c8cd 100644 (file)
@@ -2,14 +2,14 @@
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
     <g id="g2990">
         <g id="Layer_1">
-            <path id="path227" d="M14 6.5v-1.5c-1.4-1.5-5.2-1.2-6 0v-1h-1v15h1v-7c.8-.8 3.4-.9 5-.5v1.5c1.2 1.5 4.3 1.2 5 0v-7c-.7.7-2.7.9-4 .5z"/>
+            <path id="path227" d="M14 6.5V5c-1.4-1.5-5.2-1.2-6 0V4H7v15h1v-7c.8-.8 3.4-.9 5-.5V13c1.2 1.5 4.3 1.2 5 0V6c-.7.7-2.7.9-4 .5z"/>
         </g>
         <g id="Layer_2">
             <g id="g230">
-                <path id="path232" d="M17.997 1.989l.99.99-15.98 15.98-.99-.99z"/>
+                <path id="path232" d="M17.997 1.99l.99.99-15.98 15.98-.99-.99z"/>
             </g>
             <g id="g234">
-                <path id="path236" d="M16.999 1.016l.99.99-15.98 15.98-.99-.99z" fill="#fff"/>
+                <path id="path236" d="M17 1.016l.99.99-15.98 15.98-.99-.99z" fill="#fff"/>
             </g>
         </g>
     </g>
index fff89fe..6f84122 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 49cdb7a..87245de 100644 (file)
@@ -2,14 +2,14 @@
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g2990">
         <g id="Layer_1">
-            <path id="path227" d="M14 6.5v-1.5c-1.4-1.5-5.2-1.2-6 0v-1h-1v15h1v-7c.8-.8 3.4-.9 5-.5v1.5c1.2 1.5 4.3 1.2 5 0v-7c-.7.7-2.7.9-4 .5z"/>
+            <path id="path227" d="M14 6.5V5c-1.4-1.5-5.2-1.2-6 0V4H7v15h1v-7c.8-.8 3.4-.9 5-.5V13c1.2 1.5 4.3 1.2 5 0V6c-.7.7-2.7.9-4 .5z"/>
         </g>
         <g id="Layer_2">
             <g id="g230">
-                <path id="path232" d="M17.997 1.989l.99.99-15.98 15.98-.99-.99z"/>
+                <path id="path232" d="M17.997 1.99l.99.99-15.98 15.98-.99-.99z"/>
             </g>
             <g id="g234">
-                <path id="path236" d="M16.999 1.016l.99.99-15.98 15.98-.99-.99z" fill="#fff"/>
+                <path id="path236" d="M17 1.016l.99.99-15.98 15.98-.99-.99z" fill="#fff"/>
             </g>
         </g>
     </g>
index d6ffcea..5216469 100644 (file)
@@ -2,14 +2,14 @@
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
     <g id="g2990">
         <g id="Layer_1">
-            <path id="path227" d="M11 6.5v-1.5c1.4-1.5 5.2-1.2 6 0v-1h1v15h-1v-7c-.8-.8-3.4-.9-5-.5v1.5c-1.2 1.5-4.3 1.2-5 0v-7c.7.7 2.7.9 4 .5z"/>
+            <path id="path227" 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"/>
         </g>
         <g id="Layer_2">
             <g id="g230">
-                <path id="path232" d="M7.003 1.989l-.99.99 15.98 15.98.99-.99z"/>
+                <path id="path232" d="M7.003 1.99l-.99.99 15.98 15.98.99-.99z"/>
             </g>
             <g id="g234">
-                <path id="path236" d="M8.001 1.016l-.99.99 15.98 15.98.99-.99z" fill="#fff"/>
+                <path id="path236" d="M8 1.016l-.99.99 15.98 15.98.99-.99z" fill="#fff"/>
             </g>
         </g>
     </g>
index e470de4..06da23a 100644 (file)
@@ -2,14 +2,14 @@
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g2990">
         <g id="Layer_1">
-            <path id="path227" d="M11 6.5v-1.5c1.4-1.5 5.2-1.2 6 0v-1h1v15h-1v-7c-.8-.8-3.4-.9-5-.5v1.5c-1.2 1.5-4.3 1.2-5 0v-7c.7.7 2.7.9 4 .5z"/>
+            <path id="path227" 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"/>
         </g>
         <g id="Layer_2">
             <g id="g230">
-                <path id="path232" d="M7.003 1.989l-.99.99 15.98 15.98.99-.99z"/>
+                <path id="path232" d="M7.003 1.99l-.99.99 15.98 15.98.99-.99z"/>
             </g>
             <g id="g234">
-                <path id="path236" d="M8.001 1.016l-.99.99 15.98 15.98.99-.99z" fill="#fff"/>
+                <path id="path236" d="M8 1.016l-.99.99 15.98 15.98.99-.99z" fill="#fff"/>
             </g>
         </g>
     </g>
index 63e0b1a..7e60fb4 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="M2 5v15h20v-15h-20zm15 11h-9c-.6 0-1-.4-1-1v-6h3l2 1h5v6z"/>
+    <path d="M2 5v15h20V5H2zm15 11H8c-.6 0-1-.4-1-1V9h3l2 1h5v6z"/>
 </svg>
index 25bec74..29f5c6b 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="M22 5v15h-20v-15h20zm-15 11h9c.6 0 1-.4 1-1v-6h-3l-2 1h-5v6z" id="path246"/>
+    <path d="M22 5v15H2V5h20zM7 16h9c.6 0 1-.4 1-1V9h-3l-2 1H7v6z" id="path246"/>
 </svg>
index 191584e..8d5bf44 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M11 13l-6-7h15l-6 7v7c-1.7 0-3-1.3-3-3v-4z"/>
+        <path d="M11 13L5 6h15l-6 7v7c-1.7 0-3-1.3-3-3v-4z"/>
     </g>
 </svg>
index 45f2f64..ec54b1b 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g256">
-        <path d="M14 13l6-7h-15l6 7v7c1.7 0 3-1.3 3-3v-4z" id="path258"/>
+        <path d="M14 13l6-7H5l6 7v7c1.7 0 3-1.3 3-3v-4z" id="path258"/>
     </g>
 </svg>
index 185c1a2..ac9968d 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/help-ltr-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/help-ltr-invert.png differ
index 3670661..ccd9e96 100644 (file)
@@ -1,9 +1,9 @@
 <?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>
     <g id="help">
-        <path id="circle" d="M12.001 2.085c-5.478 0-9.916 4.438-9.916 9.916 0 5.476 4.438 9.914 9.916 9.914 5.476 0 9.914-4.438 9.914-9.914 0-5.478-4.438-9.916-9.914-9.916zm.001 18c-4.465 0-8.084-3.619-8.084-8.083 0-4.465 3.619-8.084 8.084-8.084 4.464 0 8.083 3.619 8.083 8.084 0 4.464-3.619 8.083-8.083 8.083z"/>
+        <path id="circle" d="M12 2.085c-5.477 0-9.915 4.438-9.915 9.916 0 5.477 4.438 9.915 9.916 9.915 5.477 0 9.915-4.438 9.915-9.914 0-5.477-4.438-9.915-9.914-9.915zm.002 18c-4.465 0-8.084-3.62-8.084-8.083 0-4.465 3.62-8.084 8.084-8.084 4.464 0 8.083 3.62 8.083 8.084 0 4.464-3.62 8.083-8.083 8.083z"/>
         <g id="question-mark">
-            <path id="top" d="M11.766 6.688c-2.5 0-3.219 2.188-3.219 2.188l1.411.854s.298-.791.901-1.229c.516-.375 1.625-.625 2.219.125.701.885-.17 1.587-1.078 2.719-.953 1.186-1 3.655-1 3.655h1.969s.135-2.318 1.041-3.381c.603-.707 1.443-1.338 1.443-2.494s-1.187-2.437-3.687-2.437z"/>
+            <path id="top" d="M11.766 6.688c-2.5 0-3.22 2.188-3.22 2.188l1.412.854s.298-.79.9-1.23c.517-.374 1.626-.624 2.22.126.7.885-.17 1.587-1.078 2.72C11.047 12.53 11 15 11 15h1.97s.134-2.318 1.04-3.38c.603-.708 1.443-1.34 1.443-2.495s-1.187-2.437-3.687-2.437z"/>
             <path id="bottom" d="M11 16h2v2h-2z"/>
         </g>
     </g>
index b80df00..4428ef3 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/help-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/help-ltr.png differ
index bb2545c..e5eb877 100644 (file)
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="help">
-        <path id="circle" d="M12.001 2.085c-5.478 0-9.916 4.438-9.916 9.916 0 5.476 4.438 9.914 9.916 9.914 5.476 0 9.914-4.438 9.914-9.914 0-5.478-4.438-9.916-9.914-9.916zm.001 18c-4.465 0-8.084-3.619-8.084-8.083 0-4.465 3.619-8.084 8.084-8.084 4.464 0 8.083 3.619 8.083 8.084 0 4.464-3.619 8.083-8.083 8.083z"/>
+        <path id="circle" d="M12 2.085c-5.477 0-9.915 4.438-9.915 9.916 0 5.477 4.438 9.915 9.916 9.915 5.477 0 9.915-4.438 9.915-9.914 0-5.477-4.438-9.915-9.914-9.915zm.002 18c-4.465 0-8.084-3.62-8.084-8.083 0-4.465 3.62-8.084 8.084-8.084 4.464 0 8.083 3.62 8.083 8.084 0 4.464-3.62 8.083-8.083 8.083z"/>
         <g id="question-mark">
-            <path id="top" d="M11.766 6.688c-2.5 0-3.219 2.188-3.219 2.188l1.411.854s.298-.791.901-1.229c.516-.375 1.625-.625 2.219.125.701.885-.17 1.587-1.078 2.719-.953 1.186-1 3.655-1 3.655h1.969s.135-2.318 1.041-3.381c.603-.707 1.443-1.338 1.443-2.494s-1.187-2.437-3.687-2.437z"/>
+            <path id="top" d="M11.766 6.688c-2.5 0-3.22 2.188-3.22 2.188l1.412.854s.298-.79.9-1.23c.517-.374 1.626-.624 2.22.126.7.885-.17 1.587-1.078 2.72C11.047 12.53 11 15 11 15h1.97s.134-2.318 1.04-3.38c.603-.708 1.443-1.34 1.443-2.495s-1.187-2.437-3.687-2.437z"/>
             <path id="bottom" d="M11 16h2v2h-2z"/>
         </g>
     </g>
index dfb9c03..f425c35 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/help-rtl-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/help-rtl-invert.png differ
index 203f8f9..0b02d6b 100644 (file)
@@ -1,9 +1,9 @@
 <?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>
     <g id="help">
-        <path id="circle" d="M11.999 2.085c5.478 0 9.916 4.438 9.916 9.916 0 5.476-4.438 9.914-9.916 9.914-5.476 0-9.914-4.438-9.914-9.914 0-5.478 4.438-9.916 9.914-9.916zm-.001 18c4.465 0 8.084-3.619 8.084-8.083 0-4.465-3.619-8.084-8.084-8.084-4.464 0-8.083 3.619-8.083 8.084 0 4.464 3.619 8.083 8.083 8.083z"/>
+        <path id="circle" d="M12 2.085c5.477 0 9.915 4.438 9.915 9.916 0 5.477-4.438 9.915-9.916 9.915-5.477 0-9.915-4.438-9.915-9.914 0-5.477 4.438-9.915 9.914-9.915zm-.002 18c4.465 0 8.084-3.62 8.084-8.083 0-4.465-3.62-8.084-8.084-8.084-4.464 0-8.083 3.62-8.083 8.084 0 4.464 3.62 8.083 8.083 8.083z"/>
         <g id="question-mark">
-            <path id="top" d="M12.234 6.688c2.5 0 3.219 2.188 3.219 2.188l-1.411.854s-.298-.791-.901-1.229c-.516-.375-1.625-.625-2.219.125-.701.885.17 1.587 1.078 2.719.953 1.186 1 3.655 1 3.655h-1.969s-.135-2.318-1.041-3.381c-.603-.707-1.443-1.338-1.443-2.494 0-1.156 1.187-2.437 3.687-2.437z"/>
+            <path id="top" d="M12.234 6.688c2.5 0 3.22 2.188 3.22 2.188l-1.412.854s-.298-.79-.9-1.23c-.517-.374-1.626-.624-2.22.126-.7.885.17 1.587 1.078 2.72C12.953 12.53 13 15 13 15h-1.97s-.134-2.318-1.04-3.38c-.603-.708-1.443-1.34-1.443-2.495 0-1.156 1.187-2.437 3.687-2.437z"/>
             <path id="bottom" d="M13 16h-2v2h2z"/>
         </g>
     </g>
index 62f3d21..e6ab21b 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/help-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/help-rtl.png differ
index 99c7f84..bf4f537 100644 (file)
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="help">
-        <path id="circle" d="M11.999 2.085c5.478 0 9.916 4.438 9.916 9.916 0 5.476-4.438 9.914-9.916 9.914-5.476 0-9.914-4.438-9.914-9.914 0-5.478 4.438-9.916 9.914-9.916zm-.001 18c4.465 0 8.084-3.619 8.084-8.083 0-4.465-3.619-8.084-8.084-8.084-4.464 0-8.083 3.619-8.083 8.084 0 4.464 3.619 8.083 8.083 8.083z"/>
+        <path id="circle" d="M12 2.085c5.477 0 9.915 4.438 9.915 9.916 0 5.477-4.438 9.915-9.916 9.915-5.477 0-9.915-4.438-9.915-9.914 0-5.477 4.438-9.915 9.914-9.915zm-.002 18c4.465 0 8.084-3.62 8.084-8.083 0-4.465-3.62-8.084-8.084-8.084-4.464 0-8.083 3.62-8.083 8.084 0 4.464 3.62 8.083 8.083 8.083z"/>
         <g id="question-mark">
-            <path id="top" d="M12.234 6.688c2.5 0 3.219 2.188 3.219 2.188l-1.411.854s-.298-.791-.901-1.229c-.516-.375-1.625-.625-2.219.125-.701.885.17 1.587 1.078 2.719.953 1.186 1 3.655 1 3.655h-1.969s-.135-2.318-1.041-3.381c-.603-.707-1.443-1.338-1.443-2.494 0-1.156 1.187-2.437 3.687-2.437z"/>
+            <path id="top" d="M12.234 6.688c2.5 0 3.22 2.188 3.22 2.188l-1.412.854s-.298-.79-.9-1.23c-.517-.374-1.626-.624-2.22.126-.7.885.17 1.587 1.078 2.72C12.953 12.53 13 15 13 15h-1.97s-.134-2.318-1.04-3.38c-.603-.708-1.443-1.34-1.443-2.495 0-1.156 1.187-2.437 3.687-2.437z"/>
             <path id="bottom" d="M13 16h-2v2h2z"/>
         </g>
     </g>
index 24d3e17..a38092d 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/history-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/history-invert.png differ
index fb61382..2a1db00 100644 (file)
@@ -1,7 +1,7 @@
 <?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>
     <g id="history">
-        <path id="clock-hands" d="M17.26 15.076s-2.385-1.935-4.005-3.062c.72-2.397 1.702-6.559 1.702-6.559s-4.35 5.363-4.877 6.699c-.463 1.168 1.459 2.209 2.346 1.678 1.9.551 4.834 1.244 4.834 1.244z"/>
-        <path id="arrow" d="M12.086 2.085c-5.478 0-9.916 4.438-9.916 9.916 0 1.783.476 3.454 1.301 4.898l-2.223 2.04h5.688v-5.219l-2.066 1.896c-.55-1.088-.866-2.312-.866-3.615 0-4.465 3.619-8.084 8.084-8.084 4.464 0 8.083 3.619 8.083 8.084 0 4.464-3.619 8.083-8.083 8.083-1.145 0-2.228-.247-3.213-.678l-.833 1.634c1.235.557 2.602.874 4.045.874 5.476 0 9.914-4.438 9.914-9.914-.001-5.477-4.439-9.915-9.915-9.915z"/>
+        <path id="clock-hands" d="M17.26 15.076s-2.385-1.935-4.005-3.062c.72-2.397 1.702-6.56 1.702-6.56s-4.35 5.364-4.877 6.7c-.463 1.168 1.46 2.21 2.346 1.678 1.9.55 4.834 1.244 4.834 1.244z"/>
+        <path id="arrow" d="M12.086 2.085C6.608 2.085 2.17 6.523 2.17 12c0 1.784.476 3.455 1.3 4.9L1.25 18.94h5.688v-5.22L4.87 15.616c-.55-1.088-.866-2.312-.866-3.615 0-4.464 3.62-8.083 8.084-8.083 4.464 0 8.083 3.62 8.083 8.084 0 4.465-3.618 8.084-8.082 8.084-1.145 0-2.228-.247-3.213-.678l-.833 1.634c1.235.557 2.602.874 4.045.874C17.563 21.914 22 17.476 22 12c0-5.477-4.438-9.915-9.914-9.915z"/>
     </g>
 </svg>
index f5a7d36..e9bbf95 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/history.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/history.png differ
index 35f15af..019e558 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="history">
-        <path id="clock-hands" d="M17.26 15.076s-2.385-1.935-4.005-3.062c.72-2.397 1.702-6.559 1.702-6.559s-4.35 5.363-4.877 6.699c-.463 1.168 1.459 2.209 2.346 1.678 1.9.551 4.834 1.244 4.834 1.244z"/>
-        <path id="arrow" d="M12.086 2.085c-5.478 0-9.916 4.438-9.916 9.916 0 1.783.476 3.454 1.301 4.898l-2.223 2.04h5.688v-5.219l-2.066 1.896c-.55-1.088-.866-2.312-.866-3.615 0-4.465 3.619-8.084 8.084-8.084 4.464 0 8.083 3.619 8.083 8.084 0 4.464-3.619 8.083-8.083 8.083-1.145 0-2.228-.247-3.213-.678l-.833 1.634c1.235.557 2.602.874 4.045.874 5.476 0 9.914-4.438 9.914-9.914-.001-5.477-4.439-9.915-9.915-9.915z"/>
+        <path id="clock-hands" d="M17.26 15.076s-2.385-1.935-4.005-3.062c.72-2.397 1.702-6.56 1.702-6.56s-4.35 5.364-4.877 6.7c-.463 1.168 1.46 2.21 2.346 1.678 1.9.55 4.834 1.244 4.834 1.244z"/>
+        <path id="arrow" d="M12.086 2.085C6.608 2.085 2.17 6.523 2.17 12c0 1.784.476 3.455 1.3 4.9L1.25 18.94h5.688v-5.22L4.87 15.616c-.55-1.088-.866-2.312-.866-3.615 0-4.464 3.62-8.083 8.084-8.083 4.464 0 8.083 3.62 8.083 8.084 0 4.465-3.618 8.084-8.082 8.084-1.145 0-2.228-.247-3.213-.678l-.833 1.634c1.235.557 2.602.874 4.045.874C17.563 21.914 22 17.476 22 12c0-5.477-4.438-9.915-9.914-9.915z"/>
     </g>
 </svg>
index bebe0a9..72ebf10 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M20 18l-4-4-2 2-4-4-2 1-4 5h16zm2-13v15h-20v-15h20z"/>
+        <path d="M20 18l-4-4-2 2-4-4-2 1-4 5h16zm2-13v15H2V5h20z"/>
     </g>
 </svg>
index 88e0e3c..ca53d9b 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g278">
-        <path d="M4 18l4-4 2 2 4-4 2 1 4 5h-16zm-2-13v15h20v-15h-20z" id="path280"/>
+        <path d="M4 18l4-4 2 2 4-4 2 1 4 5H4zM2 5v15h20V5H2z" id="path280"/>
     </g>
 </svg>
index 300e4b1..b775ddf 100644 (file)
@@ -1,7 +1,7 @@
 <?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="M17 12v-4h-4v-3h-13v15h20v-8h-3zm-15 6l4-5 2-1 4 4 2-2 4 4h-16z"/>
+    <path d="M17 12V8h-4V5H0v15h20v-8h-3zM2 18l4-5 2-1 4 4 2-2 4 4H2z"/>
     <g>
-        <path d="M24 5h-4v-4h-2v4h-4v2h4v4h2v-4h4z"/>
+        <path d="M24 5h-4V1h-2v4h-4v2h4v4h2V7h4z"/>
     </g>
 </svg>
index 70e3248..a7128be 100644 (file)
@@ -1,7 +1,7 @@
 <?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 12v-4h4v-3h13v15h-20v-8h3zm15 6l-4-5-2-1-4 4-2-2-4 4h16z" id="path290"/>
+    <path d="M7 12V8h4V5h13v15H4v-8h3zm15 6l-4-5-2-1-4 4-2-2-4 4h16z" id="path290"/>
     <g id="g292">
-        <path d="M0 5h4v-4h2v4h4v2h-4v4h-2v-4h-4z" id="path294"/>
+        <path d="M0 5h4V1h2v4h4v2H6v4H4V7H0z" id="path294"/>
     </g>
 </svg>
index ada3395..238558a 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M10 8h9v2h-9v-2zm0 3h9v2h-9v-2zm0 3h6v2h-6v-2zm11-8h-18v-2h18v2zm0 14h-18v-2h18v2zm-18-12v8l5-4-5-4z"/>
+        <path d="M10 8h9v2h-9V8zm0 3h9v2h-9v-2zm0 3h6v2h-6v-2zm11-8H3V4h18v2zm0 14H3v-2h18v2zM3 8v8l5-4-5-4z"/>
     </g>
 </svg>
index 9afedbb..0334b06 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g314">
-        <path d="M14 8h-9v2h9v-2zm0 3h-9v2h9v-2zm0 3h-6v2h6v-2zm-11-8h18v-2h-18v2zm0 14h18v-2h-18v2zm18-12v8l-5-4 5-4z" id="path316"/>
+        <path d="M14 8H5v2h9V8zm0 3H5v2h9v-2zm0 3H8v2h6v-2zM3 6h18V4H3v2zm0 14h18v-2H3v2zM21 8v8l-5-4 5-4z" id="path316"/>
     </g>
 </svg>
index 83b00a2..a89528f 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/info-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/info-invert.png differ
index 04cd889..a5894a1 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="info">
-        <path id="circled-i" d="M11.499 17c-3.036 0-5.499-2.464-5.499-5.5 0-3.037 2.462-5.5 5.499-5.5 3.037 0 5.501 2.462 5.501 5.5 0 3.036-2.464 5.5-5.501 5.5zm.002-12c-3.591 0-6.501 2.91-6.501 6.5s2.91 6.5 6.501 6.5c3.588 0 6.499-2.911 6.499-6.5s-2.911-6.5-6.499-6.5zM12 10v4h1v1h-3v-1h1v-3h-1v-1zM11 8h1v1h-1z"/>
+        <path id="circled-i" d="M11.5 17C8.462 17 6 14.536 6 11.5 6 8.463 8.462 6 11.5 6c3.036 0 5.5 2.462 5.5 5.5 0 3.036-2.464 5.5-5.5 5.5zm0-12C7.91 5 5 7.91 5 11.5S7.91 18 11.5 18s6.5-2.91 6.5-6.5S15.09 5 11.5 5zm.5 5v4h1v1h-3v-1h1v-3h-1v-1zm-1-2h1v1h-1z"/>
     </g>
 </svg>
index eb0fb46..f021189 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/info.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/info.png differ
index 4bdefd4..6cff2ff 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="info">
-        <path id="circled-i" d="M11.499 17c-3.036 0-5.499-2.464-5.499-5.5 0-3.037 2.462-5.5 5.499-5.5 3.037 0 5.501 2.462 5.501 5.5 0 3.036-2.464 5.5-5.501 5.5zm.002-12c-3.591 0-6.501 2.91-6.501 6.5s2.91 6.5 6.501 6.5c3.588 0 6.499-2.911 6.499-6.5s-2.911-6.5-6.499-6.5zM12 10v4h1v1h-3v-1h1v-3h-1v-1zM11 8h1v1h-1z"/>
+        <path id="circled-i" d="M11.5 17C8.462 17 6 14.536 6 11.5 6 8.463 8.462 6 11.5 6c3.036 0 5.5 2.462 5.5 5.5 0 3.036-2.464 5.5-5.5 5.5zm0-12C7.91 5 5 7.91 5 11.5S7.91 18 11.5 18s6.5-2.91 6.5-6.5S15.09 5 11.5 5zm.5 5v4h1v1h-3v-1h1v-3h-1v-1zm-1-2h1v1h-1z"/>
     </g>
 </svg>
index 0833f84..d1e9ba3 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="insert">
-        <path d="M13 5h-2v6h-6v2h6v6h2v-6h6v-2h-6z" id="plus"/>
+        <path d="M13 5h-2v6H5v2h6v6h2v-6h6v-2h-6z" id="plus"/>
     </g>
 </svg>
index a0e66bf..a3a11c6 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="italic-a">
-        <path id="a" d="M14.667 6h-1.372l-7 12h1.705l2.333-4h4l.667 4h1.667l-2-12zm-3.75 7l2.527-4.333.723 4.333h-3.25z"/>
+        <path id="a" d="M14.667 6h-1.372l-7 12H8l2.333-4h4L15 18h1.667l-2-12zm-3.75 7l2.527-4.333.723 4.333h-3.25z"/>
     </g>
 </svg>
index 7cf774f..f94928b 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-keheh-jeem.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-keheh-jeem.png differ
index d4bff1b..1c4aeb7 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="italic-arab-keheh-jeem">
-        <path id="arab-keheh-jeem" d="M18.125 5.844c-1.695.555-3.297 1.162-4.594 1.938-.49.299-.774.712-.875 1.125-.064.263-.035.572.063.781.189.405.539.574.844.813l.094-.125.531.625c.14.164.343.513.469.938.137.463.08.725 0 1.125h-3.438c-.338 0-.592.007-.766-.02-.339-.053-.256-.208-.234-.34.332-.127.564-.173.938-.141.29-.494.593-.885.906-1.313-.98.037-1.878.015-2.688-.094-.346-.047-.698-.186-1.094-.156-.357.026-.768.239-1.031.719-.246.448-.434.839-.656 1.281l.75-.469c.23-.142.484-.227.719-.219.157.005.275.054.406.094-.231.205-.509.402-.719.563-.301.26-.702.688-.906 1-.403.615-.694 1.084-.875 1.781-.179.689.004 1.339.469 1.75.426.376.846.519 1.281.563.65.065 1.205.093 2-.188.657-.231 1.021-.553 1.5-.969-.883.11-1.817.089-2.531.031-.871-.07-1.268-.384-1.469-.594-.271-.283-.307-.64-.156-1.219.036-.141.097-.323.25-.531.168-.228.364-.435.594-.656.451-.436 1.011-.737 1.461-.938-.045.206-.107.443-.055.688.049.229.248.379.438.469.259.122.506.155.688.156 1.421.011 2.862 0 4.281 0 .247 0 .452-.163.594-.375.139-.208.249-.481.344-.844.131-.499.094-1.062-.094-1.625-.182-.543-.418-1.009-.719-1.406-.335-.443-.674-.829-1-1.219 1.257-.815 2.716-1.239 3.969-1.688.121-.452.224-.926.313-1.313zm-9.469 8.438c-.262.394-.584.691-.875 1 .375.286.748.556 1.094.813.335-.303.626-.674.875-.969-.39-.268-.771-.588-1.094-.844z"/>
+        <path id="arab-keheh-jeem" d="M18.125 5.844c-1.695.555-3.297 1.162-4.594 1.938-.49.3-.773.712-.874 1.125-.064.263-.035.572.063.78.188.406.538.575.843.814l.094-.124.53.625c.14.165.344.514.47.94.137.462.08.724 0 1.124H11.22c-.34 0-.593.007-.767-.02-.34-.053-.256-.208-.234-.34.33-.127.563-.173.937-.14.29-.495.593-.886.906-1.314-.98.037-1.878.015-2.688-.094-.346-.047-.698-.186-1.094-.156-.356.026-.767.24-1.03.72-.246.447-.434.838-.656 1.28l.75-.47c.23-.14.484-.226.72-.218.156.005.274.054.405.094-.232.205-.51.402-.72.563-.3.26-.702.687-.906 1-.403.614-.694 1.083-.875 1.78-.18.69.003 1.34.468 1.75.426.376.846.52 1.28.563.65.065 1.206.093 2-.188.658-.23 1.022-.553 1.5-.97-.882.11-1.816.09-2.53.032-.87-.07-1.268-.384-1.47-.594-.27-.283-.306-.64-.155-1.22.036-.14.097-.322.25-.53.168-.228.364-.435.594-.656.45-.436 1.01-.737 1.46-.938-.044.205-.106.442-.054.687.05.23.248.38.438.47.26.12.507.154.69.155 1.42.01 2.86 0 4.28 0 .247 0 .452-.163.594-.375.14-.208.25-.48.344-.844.13-.5.094-1.062-.094-1.625-.182-.543-.418-1.01-.72-1.406-.334-.443-.673-.83-1-1.22 1.258-.814 2.717-1.238 3.97-1.687.12-.452.224-.926.313-1.313zm-9.47 8.438c-.26.394-.583.69-.874 1 .376.286.75.556 1.095.813.335-.303.626-.674.875-.97-.39-.267-.77-.587-1.094-.843z"/>
     </g>
 </svg>
index e8f2b62..a963197 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-meem.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-meem.png differ
index bfbc9bf..7b2670f 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="italic-arab-meem">
-        <path id="arab-meem" d="M16 9.729l-.93 2.19h-4.663c-.479 0-.857.122-1.135.367l-.061.11c-.184 2.016-.502 3.558-.955 4.627-.272.641-.633 1.252-1.082 1.833-.177.226-.219.186-.126-.119l.142-.504.17-.669.234-.87.002-.009.202-1.045.258-1.411.353-1.906c.191-.312.424-.638.699-.98.276-.342.589-.706.94-1.09.129-.092.697-.18 1.705-.266 1.05-.086 1.638-.183 1.765-.293l.065-.128c.007-.11-.011-.241-.054-.394-.043-.153-.12-.327-.231-.522-.22-.428-.438-.641-.654-.641-.294 0-.915.269-1.864.806-.359.208-.376.125-.051-.247 1.558-1.71 2.708-2.566 3.45-2.566.383 0 .671.131.863.394.135.195.25.599.344 1.21l.203 1.2c.106.586.242.895.409.925"/>
+        <path id="arab-meem" d="M16 9.73l-.93 2.19h-4.663c-.48 0-.857.12-1.135.366l-.06.11c-.185 2.016-.503 3.558-.956 4.627-.272.64-.633 1.252-1.082 1.833-.177.226-.22.186-.126-.12l.142-.503.17-.67.234-.87.002-.008.202-1.045.258-1.41.353-1.907c.19-.312.423-.638.698-.98.276-.342.59-.706.94-1.09.13-.092.697-.18 1.705-.266 1.05-.086 1.638-.183 1.765-.293l.065-.128c.007-.11-.01-.24-.054-.394-.044-.153-.12-.327-.232-.522-.22-.428-.438-.64-.654-.64-.294 0-.915.268-1.864.805-.36.208-.376.125-.05-.247 1.557-1.71 2.707-2.566 3.45-2.566.382 0 .67.13.862.394.135.195.25.6.344 1.21l.203 1.2c.105.586.24.895.408.925"/>
     </g>
 </svg>
index 4d4178a..e4f1bda 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-armn-sha.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-armn-sha.png differ
index 63de0f6..67283c8 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="italic-armn-sha">
-        <path id="armn-sha" d="M11.564 7.678c-.268-.13-.578-.22-.93-.268-.35-.047-.75-.07-1.197-.07h-1.11L8.586 6h1.724c.558 0 1.042.032 1.45.095.416.063.794.173 1.136.33l4.483 2.033-.324 1.67-2.624-1.165c-.126-.058-.27-.103-.433-.134-.164-.038-.356-.057-.576-.057-.583 0-1.137.095-1.663.284-.524.19-1 .46-1.425.812-.42.35-.777.78-1.072 1.283-.294.504-.504 1.074-.63 1.71-.242 1.255-.152 2.21.268 2.868.426.652 1.19.978 2.294.978.55 0 1.045-.08 1.48-.237.437-.156.815-.377 1.136-.66.326-.29.59-.633.796-1.033.21-.4.362-.84.457-1.323l.11-.56h1.6l-.12.59c-.13.674-.356 1.288-.676 1.845-.32.55-.725 1.026-1.214 1.425-.488.394-1.053.7-1.694.922-.642.215-1.343.323-2.105.323-.767 0-1.434-.113-2-.34-.568-.225-1.025-.553-1.372-.984-.347-.436-.573-.97-.678-1.607-.105-.637-.078-1.364.08-2.184.125-.66.346-1.273.66-1.835.316-.567.697-1.066 1.144-1.496.445-.436.944-.794 1.496-1.072.55-.284 1.13-.475 1.733-.575l-.466-.23"/>
+        <path id="armn-sha" d="M11.564 7.678c-.268-.13-.578-.22-.93-.268-.35-.047-.75-.07-1.197-.07h-1.11L8.587 6h1.723c.558 0 1.042.032 1.45.095.416.063.794.173 1.136.33l4.483 2.033-.325 1.67-2.624-1.165c-.125-.058-.27-.103-.432-.134-.164-.04-.356-.058-.576-.058-.583 0-1.137.095-1.663.284-.525.19-1 .46-1.426.812-.42.35-.777.78-1.072 1.283-.294.505-.504 1.075-.63 1.71-.242 1.256-.152 2.21.268 2.87.426.65 1.19.977 2.294.977.55 0 1.045-.08 1.48-.237.437-.156.815-.377 1.136-.66.326-.29.59-.633.796-1.033.21-.4.362-.84.457-1.323l.11-.56h1.6l-.12.59c-.13.674-.356 1.288-.676 1.845-.32.55-.725 1.025-1.214 1.424-.488.394-1.053.7-1.694.922-.643.215-1.344.323-2.106.323-.767 0-1.434-.114-2-.34-.568-.226-1.025-.554-1.372-.985-.347-.436-.573-.97-.678-1.607-.105-.637-.078-1.364.08-2.184.125-.66.346-1.273.66-1.835.316-.568.697-1.067 1.144-1.497.445-.436.944-.794 1.496-1.072.55-.283 1.13-.474 1.733-.574l-.466-.23"/>
     </g>
 </svg>
index fc6133c..1ba8613 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-c.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-c.png differ
index b468dea..0ef7345 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="italic-c">
-        <path id="c" d="M15.008 13.718l1.481.214c-.468 1.34-1.15 2.354-2.046 3.04-.896.686-1.901 1.029-3.015 1.029-1.359 0-2.438-.43-3.237-1.29-.794-.86-1.191-2.092-1.191-3.697 0-2.09.606-3.818 1.817-5.185 1.079-1.219 2.42-1.828 4.023-1.828 1.186 0 2.145.33 2.878.989.738.66 1.165 1.546 1.282 2.66l-1.397.135c-.148-.839-.453-1.464-.916-1.876-.458-.417-1.051-.625-1.779-.625-1.369 0-2.476.631-3.321 1.892-.733 1.087-1.099 2.377-1.099 3.871 0 1.193.282 2.103.847 2.731.565.628 1.3.942 2.206.942.774 0 1.473-.261 2.099-.784.626-.522 1.081-1.261 1.366-2.216"/>
+        <path id="c" d="M15.008 13.718l1.48.214c-.467 1.34-1.15 2.354-2.045 3.04-.896.686-1.9 1.03-3.015 1.03-1.36 0-2.438-.43-3.237-1.29C7.398 15.85 7 14.618 7 13.013c0-2.09.606-3.818 1.817-5.185C9.897 6.61 11.237 6 12.84 6c1.186 0 2.145.33 2.878.99.738.66 1.165 1.546 1.282 2.66l-1.397.135c-.148-.84-.453-1.464-.916-1.876-.458-.418-1.05-.626-1.78-.626-1.368 0-2.475.63-3.32 1.892-.733 1.087-1.1 2.377-1.1 3.87 0 1.194.283 2.104.848 2.732.565.628 1.3.942 2.206.942.775 0 1.474-.26 2.1-.784.626-.522 1.08-1.26 1.366-2.216"/>
     </g>
 </svg>
index 1711ef9..39b09a2 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-d.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-d.png differ
index 92a834d..6ac99ab 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="italic-d">
-        <path id="d" d="M7 18l2.462-12h3.557c.853 0 1.505.063 1.955.188.644.169 1.194.472 1.65.909.456.431.799.971 1.03 1.621.231.649.346 1.378.346 2.186 0 .966-.145 1.847-.435 2.644-.284.791-.66 1.49-1.127 2.095-.461.6-.947 1.072-1.456 1.416-.504.338-1.102.589-1.794.753-.526.126-1.172.188-1.939.188h-4.249m1.859-1.359h1.867c.842 0 1.591-.079 2.245-.237.408-.098.756-.243 1.046-.434.381-.246.727-.57 1.038-.974.408-.535.732-1.143.974-1.825.247-.688.37-1.468.37-2.341 0-.971-.166-1.716-.499-2.235-.333-.524-.756-.87-1.271-1.04-.381-.126-.974-.188-1.778-.188h-1.85l-1.907 9.274"/>
+        <path id="d" d="M7 18L9.462 6h3.557c.852 0 1.504.063 1.954.188.644.17 1.194.472 1.65.91.456.43.8.97 1.03 1.62.23.65.346 1.378.346 2.186 0 .966-.145 1.847-.435 2.644-.284.79-.66 1.49-1.127 2.095-.46.6-.947 1.072-1.456 1.416-.504.337-1.102.588-1.794.752-.526.126-1.172.188-1.94.188H7m1.86-1.36h1.866c.842 0 1.59-.078 2.245-.236.41-.098.757-.243 1.047-.434.38-.246.727-.57 1.038-.974.408-.535.732-1.143.974-1.825.246-.687.37-1.467.37-2.34 0-.97-.167-1.716-.5-2.235-.333-.524-.756-.87-1.27-1.04-.382-.126-.975-.188-1.78-.188H11L9.095 16.64"/>
     </g>
 </svg>
index f5b44d9..882a535 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-e.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-e.png differ
index 66a5ef5..72df8bb 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="italic-e">
-        <path id="e" d="M7 18l2.474-12h8.526l-.282 1.367h-6.947l-.75 3.633h6.09l-.282 1.367h-6.09l-.877 4.274h7.438l-.282 1.359h-9.018"/>
+        <path id="e" d="M7 18L9.474 6H18l-.282 1.367H10.77L10.02 11h6.09l-.28 1.367H9.74L8.86 16.64H16.3L16.018 18H7"/>
     </g>
 </svg>
index e728cd7..3ab33f2 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-geor-kan.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-geor-kan.png differ
index 3398904..a1a93dc 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="italic-geor-kan">
-        <path id="geor-kan" d="M15.057 14.663c-.441 2.225-1.834 3.337-4.178 3.337-1.919 0-2.879-.787-2.879-2.36 0-.298.036-.624.108-.977.083-.431.245-.836.488-1.217l1.241.605-.207.613c-.055.259-.083.497-.083.712 0 .972.521 1.458 1.564 1.458 1.307 0 2.101-.723 2.383-2.17l.058-.331c.044-.221.066-.425.066-.613 0-.928-.546-1.391-1.638-1.391h-1.117l.248-1.259h1.117c1.202-.005 1.908-.552 2.118-1.64.039-.182.058-.356.058-.522 0-1.143-.899-1.714-2.697-1.714l.232-1.193c2.708 0 4.062.875 4.062 2.625 0 .248-.028.516-.083.803-.204 1.093-1.051 1.825-2.54 2.195l-.033.166c1.23.199 1.845.823 1.845 1.872 0 .21-.025.433-.074.671l-.058.331"/>
+        <path id="geor-kan" d="M15.057 14.663C14.617 16.888 13.223 18 10.88 18 8.96 18 8 17.213 8 15.64c0-.298.036-.624.108-.977.083-.43.245-.836.488-1.217l1.24.605-.206.614c-.055.26-.083.497-.083.712 0 .972.52 1.458 1.564 1.458 1.308 0 2.102-.723 2.384-2.17l.058-.33c.044-.222.066-.426.066-.614 0-.928-.546-1.39-1.638-1.39h-1.117l.248-1.26h1.118c1.202-.005 1.908-.552 2.118-1.64.04-.182.058-.356.058-.522 0-1.143-.9-1.714-2.697-1.714L11.94 6C14.646 6 16 6.877 16 8.627c0 .248-.027.516-.082.803-.204 1.092-1.05 1.824-2.54 2.194l-.033.166c1.23.2 1.845.823 1.845 1.872 0 .21-.025.433-.074.67l-.058.332"/>
     </g>
 </svg>
index 3c6b3c1..28aab44 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-i.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-i.png differ
index 93bec5a..e670e9b 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="italic-i">
-        <path id="i" d="M12.5 17.999l.249-.994h-1.5l2.509-10.037h1.5l.242-.967h-5l-.242.967h1.5l-2.509 10.037h-1.5l-.249.994z"/>
+        <path id="i" d="M12.5 18l.25-.995h-1.5l2.508-10.037h1.5L15.5 6h-5l-.242.968h1.5l-2.51 10.037h-1.5L7.5 18z"/>
     </g>
 </svg>
index d483154..38bcd73 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="italic-k">
-        <path id="k" d="M12.018 10.652l4.982-4.652h-2l-5.309 5.234 1.309-5.234h-1.5l-3 12h1.5l1.173-4.693 1.54-1.438c.287 4.131 3.287 6.131 3.287 6.131h2s-4-2-3.982-7.348z"/>
+        <path id="k" d="M12.018 10.652L17 6h-2l-5.31 5.234L11 6H9.5l-3 12H8l1.173-4.693 1.54-1.438C11 16 14 18 14 18h2s-4-2-3.982-7.348z"/>
     </g>
 </svg>
index 4fc10c5..aafa618 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-s.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-s.png differ
index 4f6364c..56e457b 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="italic-s">
-        <path id="s" d="M16.474 6.589l-.302 1.526c-.522-.279-1.041-.488-1.557-.628-.511-.145-1.007-.217-1.487-.217-.935 0-1.679.204-2.231.612-.553.408-.829.95-.829 1.627 0 .372.101.658.302.86.207.196.733.408 1.58.635l.937.232c1.059.274 1.795.622 2.208 1.046.413.418.62 1.007.62 1.766 0 1.167-.46 2.117-1.379 2.851-.914.733-2.12 1.1-3.618 1.1-.615 0-1.232-.062-1.852-.186-.62-.119-1.242-.302-1.867-.55l.318-1.611c.573.356 1.147.625 1.72.806.578.181 1.154.271 1.728.271.976 0 1.759-.217 2.347-.651.589-.434.883-.999.883-1.697 0-.465-.119-.816-.356-1.054-.232-.243-.736-.462-1.511-.658l-.937-.24c-1.069-.279-1.8-.599-2.192-.961-.387-.367-.581-.878-.581-1.534 0-1.152.442-2.094 1.325-2.828.888-.739 2.043-1.108 3.463-1.108.553 0 1.1.049 1.642.147.542.098 1.085.245 1.627.442"/>
+        <path id="s" d="M16.474 6.59l-.302 1.525c-.522-.28-1.04-.488-1.557-.628-.51-.145-1.007-.217-1.487-.217-.935 0-1.68.204-2.23.612-.554.408-.83.95-.83 1.627 0 .37.1.657.302.86.207.195.733.407 1.58.634l.937.232c1.06.274 1.795.622 2.208 1.046.413.418.62 1.007.62 1.766 0 1.167-.46 2.117-1.38 2.85-.913.734-2.12 1.1-3.617 1.1-.615 0-1.232-.06-1.852-.185-.62-.12-1.242-.302-1.867-.55l.317-1.61c.573.355 1.147.624 1.72.805.578.18 1.154.27 1.728.27.976 0 1.76-.216 2.347-.65.59-.434.883-1 .883-1.697 0-.464-.12-.815-.356-1.053-.233-.243-.737-.462-1.512-.658l-.937-.24c-1.068-.28-1.8-.6-2.19-.962-.388-.367-.582-.878-.582-1.534 0-1.152.442-2.094 1.325-2.828.888-.74 2.043-1.108 3.463-1.108.553 0 1.1.05 1.642.147.542.098 1.085.245 1.627.442"/>
     </g>
 </svg>
index c7e1603..c9fa553 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="M16 9v-1h-6v1h6zm-2 2v-1h-4v1h4zm-8-6h1v16h-1v-16zm2 0h10v13c0 1.7-1.3 3-3 3h-7v-16z"/>
+    <path d="M16 9V8h-6v1h6zm-2 2v-1h-4v1h4zM6 5h1v16H6V5zm2 0h10v13c0 1.7-1.3 3-3 3H8V5z"/>
 </svg>
index 2d16be3..393f19d 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="M8 9v-1h6v1h-6zm2 2v-1h4v1h-4zm8-6h-1v16h1v-16zm-2 0h-10v13c0 1.7 1.3 3 3 3h7v-16z" id="path326"/>
+    <path d="M8 9V8h6v1H8zm2 2v-1h4v1h-4zm8-6h-1v16h1V5zm-2 0H6v13c0 1.7 1.3 3 3 3h7V5z" id="path326"/>
 </svg>
index 8dfb89a..fc0d3c3 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="M14.5 4c-3 0-5.5 2.5-5.5 5.5 0 1 .3 1.9.7 2.8l-5.7 5.7v2h4v-2h2v-2h2l1.2-1.2c.4.1.9.2 1.3.2 3 0 5.5-2.5 5.5-5.5s-2.5-5.5-5.5-5.5zm1.5 5c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5z"/>
+    <path d="M14.5 4C11.5 4 9 6.5 9 9.5c0 1 .3 1.9.7 2.8L4 18v2h4v-2h2v-2h2l1.2-1.2c.4.1.9.2 1.3.2 3 0 5.5-2.5 5.5-5.5S17.5 4 14.5 4zM16 9c-.8 0-1.5-.7-1.5-1.5S15.2 6 16 6s1.5.7 1.5 1.5S16.8 9 16 9z"/>
 </svg>
index 0639287..8975b66 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="M9.5 4c3 0 5.5 2.5 5.5 5.5 0 1-.3 1.9-.7 2.8l5.7 5.7v2h-4v-2h-2v-2h-2l-1.2-1.2c-.4.1-.9.2-1.3.2-3 0-5.5-2.5-5.5-5.5s2.5-5.5 5.5-5.5zm-1.5 5c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5-1.5.7-1.5 1.5.7 1.5 1.5 1.5z" id="path336"/>
+    <path d="M9.5 4c3 0 5.5 2.5 5.5 5.5 0 1-.3 1.9-.7 2.8L20 18v2h-4v-2h-2v-2h-2l-1.2-1.2c-.4.1-.9.2-1.3.2-3 0-5.5-2.5-5.5-5.5S6.5 4 9.5 4zM8 9c.8 0 1.5-.7 1.5-1.5S8.8 6 8 6s-1.5.7-1.5 1.5S7.2 9 8 9z" id="path336"/>
 </svg>
index ea5055c..2bb795e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M3 7v9c0 1.7 1.3 3 3 3h15v-12h-18zm8 2h2v2h-2v-2zm0 3h2v2h-2v-2zm-3-3h2v2h-2v-2zm0 3h2v2h-2v-2zm-1 5h-1c-.6 0-1-.4-1-1v-1h2v2zm0-3h-2v-2h2v2zm0-3h-2v-2h2v2zm9 6h-8v-2h8v2zm0-3h-2v-2h2v2zm0-3h-2v-2h2v2zm3 6h-2v-2h2v2zm0-3h-2v-2h2v2zm0-3h-2v-2h2v2z"/>
+        <path d="M3 7v9c0 1.7 1.3 3 3 3h15V7H3zm8 2h2v2h-2V9zm0 3h2v2h-2v-2zM8 9h2v2H8V9zm0 3h2v2H8v-2zm-1 5H6c-.6 0-1-.4-1-1v-1h2v2zm0-3H5v-2h2v2zm0-3H5V9h2v2zm9 6H8v-2h8v2zm0-3h-2v-2h2v2zm0-3h-2V9h2v2zm3 6h-2v-2h2v2zm0-3h-2v-2h2v2zm0-3h-2V9h2v2z"/>
     </g>
 </svg>
index b35d108..b7b47cc 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g346">
-        <path d="M21 7v9c0 1.7-1.3 3-3 3h-15v-12h18zm-8 2h-2v2h2v-2zm0 3h-2v2h2v-2zm3-3h-2v2h2v-2zm0 3h-2v2h2v-2zm1 5h1c.6 0 1-.4 1-1v-1h-2v2zm0-3h2v-2h-2v2zm0-3h2v-2h-2v2zm-9 6h8v-2h-8v2zm0-3h2v-2h-2v2zm0-3h2v-2h-2v2zm-3 6h2v-2h-2v2zm0-3h2v-2h-2v2zm0-3h2v-2h-2v2z" id="path348"/>
+        <path d="M21 7v9c0 1.7-1.3 3-3 3H3V7h18zm-8 2h-2v2h2V9zm0 3h-2v2h2v-2zm3-3h-2v2h2V9zm0 3h-2v2h2v-2zm1 5h1c.6 0 1-.4 1-1v-1h-2v2zm0-3h2v-2h-2v2zm0-3h2V9h-2v2zm-9 6h8v-2H8v2zm0-3h2v-2H8v2zm0-3h2V9H8v2zm-3 6h2v-2H5v2zm0-3h2v-2H5v2zm0-3h2V9H5v2z" id="path348"/>
     </g>
 </svg>
index c864384..ebd11a2 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/language.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/language.png differ
index 081e49a..549c303 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="language">
-        <path id="japanese" d="M17.533 9.81l.271-.59 1.041.407-.18.363c.661.271 1.101.468 1.312.589.331.211.618.514.86.905.211.393.316.846.316 1.358 0 .786-.302 1.479-.905 2.083-.604.634-1.66 1.057-3.169 1.268-.121-.361-.258-.679-.408-.95.965-.151 1.645-.333 2.037-.545.454-.21.785-.481.998-.813.21-.303.314-.663.314-1.087 0-.482-.136-.905-.407-1.269-.331-.331-.8-.589-1.402-.77-.333.634-.649 1.117-.951 1.449-.242.332-.694.906-1.358 1.721.09.393.181.709.272.951l-1.042.362-.091-.498c-.423.361-.801.617-1.133.77-.361.15-.664.226-.905.226-.303 0-.574-.136-.814-.407-.243-.301-.362-.68-.362-1.132 0-.604.136-1.147.407-1.63.241-.453.603-.89 1.086-1.313.272-.241.725-.528 1.359-.86 0-.271.03-.799.09-1.585-.514.03-.921.045-1.222.045-.393 0-.711-.015-.951-.045l-.046-1.041c.725.091 1.494.135 2.31.135 0-.149.075-.738.227-1.766l1.177.183c-.151.542-.256 1.041-.316 1.493.242-.029.543-.075.906-.136.362-.061.573-.091.634-.091s.648-.15 1.766-.453l.046 1.041c-.967.243-2.145.439-3.532.591-.062.663-.092 1.086-.092 1.266.663-.151 1.284-.225 1.857-.225zm-2.672 3.893c-.061-.481-.136-1.252-.227-2.31-.573.424-1.041.86-1.403 1.313-.303.423-.452.875-.452 1.358 0 .241.044.438.136.588.09.092.195.137.316.137.363.001.907-.361 1.63-1.086zm.771-2.763c0 .483.029 1.088.09 1.811.604-.905 1.057-1.599 1.359-2.082-.574.06-1.058.151-1.449.271z"/>
-        <path id="english" d="M9.497 15.981h1.851l-3.084-8.949h-1.85l-3.081 8.949h1.85l.557-1.981h3.209l.548 1.981zm-3.489-3.377l1.331-3.782 1.344 3.782h-2.675z"/>
+        <path id="japanese" d="M17.533 9.81l.27-.59 1.042.407-.18.363c.66.27 1.1.468 1.312.59.33.21.618.513.86.904.21.393.316.846.316 1.358 0 .786-.302 1.48-.905 2.083-.604.634-1.66 1.057-3.17 1.268-.12-.36-.257-.68-.407-.95.966-.15 1.646-.333 2.038-.545.454-.21.785-.48.998-.813.21-.303.314-.663.314-1.087 0-.482-.136-.905-.407-1.27-.33-.33-.8-.588-1.402-.77-.332.635-.648 1.118-.95 1.45-.242.332-.694.906-1.358 1.72.09.394.18.71.272.952l-1.042.362-.09-.498c-.424.36-.802.617-1.134.77-.36.15-.664.226-.905.226-.303 0-.574-.136-.814-.407-.244-.3-.363-.68-.363-1.132 0-.603.136-1.146.407-1.63.24-.452.603-.89 1.086-1.312.272-.24.725-.528 1.36-.86 0-.27.03-.8.09-1.585-.515.03-.922.045-1.223.045-.393 0-.71-.015-.95-.045l-.047-1.04c.725.09 1.494.134 2.31.134 0-.15.075-.738.227-1.766l1.177.184c-.15.542-.256 1.04-.316 1.493.242-.03.543-.075.906-.136.362-.06.573-.09.634-.09s.648-.15 1.766-.453l.046 1.04c-.967.244-2.145.44-3.532.592-.062.662-.092 1.085-.092 1.265.663-.15 1.284-.225 1.857-.225zm-2.672 3.893c-.06-.48-.135-1.252-.226-2.31-.573.424-1.04.86-1.403 1.313-.302.423-.45.875-.45 1.358 0 .24.043.438.135.588.09.092.195.137.316.137.364 0 .908-.362 1.63-1.087zm.772-2.763c0 .483.03 1.088.09 1.81.604-.904 1.057-1.598 1.36-2.08-.575.06-1.06.15-1.45.27z"/>
+        <path id="english" d="M9.497 15.98h1.85L8.265 7.033h-1.85l-3.08 8.95h1.85L5.74 14h3.21l.547 1.98zm-3.49-3.376L7.34 8.822l1.343 3.782H6.008z"/>
     </g>
 </svg>
index 47e71b3..c3be66c 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="layout-ltr">
-        <path id="text" d="M5 19v-14h6v8h8v6h-14z"/>
-        <path id="float" d="M13 5v6h6v-6h-6zm5 5h-4v-4h4v4z"/>
+        <path id="text" d="M5 19V5h6v8h8v6H5z"/>
+        <path id="float" d="M13 5v6h6V5h-6zm5 5h-4V6h4v4z"/>
     </g>
 </svg>
index fe9ee61..ce7feb8 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="layout-rtl">
-        <path id="text" d="M5 19v-6h8v-8h6v14h-14z"/>
-        <path id="float" d="M5 5v6h6v-6h-6zm1 1h4v4h-4v-4z"/>
+        <path id="text" d="M5 19v-6h8V5h6v14H5z"/>
+        <path id="float" d="M5 5v6h6V5H5zm1 1h4v4H6V6z"/>
     </g>
 </svg>
index dfcfb7f..ed0006c 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr-invert.png differ
index d17622c..7b545ca 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-487 489 24 24"><style>* { fill: #FFFFFF }</style>
     <g>
-        <path d="M15.8 3.6c-2.1 0-3.6 1.9-5.1 3.3.2 0 .5-.1.8-.1.5 0 1 .1 1.5.3.8-.8 1.6-1.7 2.8-1.7.6 0 1.3.3 1.8.7 1 1 1 2.6 0 3.6l-2.6 2.6c-.4.4-1.2.7-1.8.7-1.4 0-2.1-.9-2.6-2l-1.3 1.3c.8 1.5 2 2.6 3.8 2.6 1.2 0 2.3-.5 3-1.3l2.6-2.6c.9-.9 1.5-2 1.5-3.3-.2-2.2-2.2-4.1-4.4-4.1zm-4.3 12.1l-.9.9c-.4.4-1.2.7-1.8.7-.6 0-1.3-.3-1.8-.7-1-1-1-2.7 0-3.6l2.6-2.6c.4-.4 1.2-.7 1.8-.7 1.4 0 2.1 1 2.6 2l1.3-1.3c-.8-1.5-2-2.6-3.8-2.6-1.2 0-2.3.5-3 1.3l-2.6 2.6c-1.7 1.7-1.7 4.4 0 6 1.6 1.6 4.4 1.7 5.9 0l1.9-1.9c-.3.1-.6.1-.9.1-.5 0-.9 0-1.3-.2z"/>
+        <path d="M-471.2 493.6c-2.1 0-3.6 1.9-5.1 3.3.2 0 .5-.1.8-.1.5 0 1 .1 1.5.3.8-.8 1.6-1.7 2.8-1.7.6 0 1.3.3 1.8.7 1 1 1 2.6 0 3.6l-2.6 2.6c-.4.4-1.2.7-1.8.7-1.4 0-2.1-.9-2.6-2l-1.3 1.3c.8 1.5 2 2.6 3.8 2.6 1.2 0 2.3-.5 3-1.3l2.6-2.6c.9-.9 1.5-2 1.5-3.3-.2-2.2-2.2-4.1-4.4-4.1zm-4.3 12.1l-.9.9c-.4.4-1.2.7-1.8.7-.6 0-1.3-.3-1.8-.7-1-1-1-2.7 0-3.6l2.6-2.6c.4-.4 1.2-.7 1.8-.7 1.4 0 2.1 1 2.6 2l1.3-1.3c-.8-1.5-2-2.6-3.8-2.6-1.2 0-2.3.5-3 1.3l-2.6 2.6c-1.7 1.7-1.7 4.4 0 6 1.6 1.6 4.4 1.7 5.9 0l1.9-1.9c-.3.1-.6.1-.9.1-.5 0-.9 0-1.3-.2z"/>
     </g>
 </svg>
index 3b60a11..3db2467 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr.png differ
index 1b332ce..0d3c186 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-487 489 24 24">
     <g>
-        <path d="M15.8 3.6c-2.1 0-3.6 1.9-5.1 3.3.2 0 .5-.1.8-.1.5 0 1 .1 1.5.3.8-.8 1.6-1.7 2.8-1.7.6 0 1.3.3 1.8.7 1 1 1 2.6 0 3.6l-2.6 2.6c-.4.4-1.2.7-1.8.7-1.4 0-2.1-.9-2.6-2l-1.3 1.3c.8 1.5 2 2.6 3.8 2.6 1.2 0 2.3-.5 3-1.3l2.6-2.6c.9-.9 1.5-2 1.5-3.3-.2-2.2-2.2-4.1-4.4-4.1zm-4.3 12.1l-.9.9c-.4.4-1.2.7-1.8.7-.6 0-1.3-.3-1.8-.7-1-1-1-2.7 0-3.6l2.6-2.6c.4-.4 1.2-.7 1.8-.7 1.4 0 2.1 1 2.6 2l1.3-1.3c-.8-1.5-2-2.6-3.8-2.6-1.2 0-2.3.5-3 1.3l-2.6 2.6c-1.7 1.7-1.7 4.4 0 6 1.6 1.6 4.4 1.7 5.9 0l1.9-1.9c-.3.1-.6.1-.9.1-.5 0-.9 0-1.3-.2z"/>
+        <path d="M-471.2 493.6c-2.1 0-3.6 1.9-5.1 3.3.2 0 .5-.1.8-.1.5 0 1 .1 1.5.3.8-.8 1.6-1.7 2.8-1.7.6 0 1.3.3 1.8.7 1 1 1 2.6 0 3.6l-2.6 2.6c-.4.4-1.2.7-1.8.7-1.4 0-2.1-.9-2.6-2l-1.3 1.3c.8 1.5 2 2.6 3.8 2.6 1.2 0 2.3-.5 3-1.3l2.6-2.6c.9-.9 1.5-2 1.5-3.3-.2-2.2-2.2-4.1-4.4-4.1zm-4.3 12.1l-.9.9c-.4.4-1.2.7-1.8.7-.6 0-1.3-.3-1.8-.7-1-1-1-2.7 0-3.6l2.6-2.6c.4-.4 1.2-.7 1.8-.7 1.4 0 2.1 1 2.6 2l1.3-1.3c-.8-1.5-2-2.6-3.8-2.6-1.2 0-2.3.5-3 1.3l-2.6 2.6c-1.7 1.7-1.7 4.4 0 6 1.6 1.6 4.4 1.7 5.9 0l1.9-1.9c-.3.1-.6.1-.9.1-.5 0-.9 0-1.3-.2z"/>
     </g>
 </svg>
index 09a4ff5..5f0b15f 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="M21 7h-12v-2h12v2zm-14-1c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm14 7h-12v-2h12v2zm-14-1c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm14 7h-12v-2h12v2zm-14-1c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2z"/>
+    <path d="M21 7H9V5h12v2zM7 6c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm14 7H9v-2h12v2zM7 12c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm14 7H9v-2h12v2zM7 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2z"/>
 </svg>
index 67b9dfe..f29a05e 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="M3 7h12v-2h-12v2zm14-1c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2zm-14 7h12v-2h-12v2zm14-1c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2zm-14 7h12v-2h-12v2zm14-1c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2z" id="path370"/>
+    <path d="M3 7h12V5H3v2zm14-1c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2zM3 13h12v-2H3v2zm14-1c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2zM3 19h12v-2H3v2zm14-1c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2z" id="path370"/>
 </svg>
index 87e8854..8e849a7 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="M21 7h-13v-2h13v2zm0 6h-13v-2h13v2zm0 6h-13v-2h13v2zm-17-15h2v4h-1v-3h-1zm-1 6v-1h3v3h-2v1h2v1h-3v-3h2v-1zm3 10h-3v-1h2v-1h-1v-1h1v-1h-2v-1h3z"/>
+    <path d="M21 7H8V5h13v2zm0 6H8v-2h13v2zm0 6H8v-2h13v2zM4 4h2v4H5V5H4zm-1 6V9h3v3H4v1h2v1H3v-3h2v-1zm3 10H3v-1h2v-1H4v-1h1v-1H3v-1h3z"/>
 </svg>
index 831a5fb..331dc8d 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="M3 7h13v-2h-13zm0 6h13v-2h-13zm0 6h13v-2h-13zm15-15h2v4h-1v-3h-1zm0 6v-1h3v3h-2v1h2v1h-3v-3h2v-1zm3 10h-3v-1h2v-1h-1v-1h1v-1h-2v-1h3z" id="path380"/>
+    <path d="M3 7h13V5H3zm0 6h13v-2H3zm0 6h13v-2H3zM18 4h2v4h-1V5h-1zm0 6V9h3v3h-2v1h2v1h-3v-3h2v-1zm3 10h-3v-1h2v-1h-1v-1h1v-1h-2v-1h3z" id="path380"/>
 </svg>
index 4af765c..61c369f 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M15 14v3l5-4.5-5-4.5v3h-7c0 1.7 1.3 3 3 3h4zm-1-9h-10v15h10v-2h-8v-11h8v-2z"/>
+        <path d="M15 14v3l5-4.5L15 8v3H8c0 1.7 1.3 3 3 3h4zm-1-9H4v15h10v-2H6V7h8V5z"/>
     </g>
 </svg>
index f72c04a..5cb4687 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g402">
-        <path d="M9 14v3l-5-4.5 5-4.5v3h7c0 1.7-1.3 3-3 3h-4zm1-9h10v15h-10v-2h8v-11h-8v-2z" id="path404"/>
+        <path d="M9 14v3l-5-4.5L9 8v3h7c0 1.7-1.3 3-3 3H9zm1-9h10v15H10v-2h8V7h-8V5z" id="path404"/>
     </g>
 </svg>
index 079e177..c195d4c 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M15.4 7.8c-2-.9-2.3-2.5-2.4-2.8.1.1 2 1 2 1l-3-5-3 5 2-1s0 .8.6 2.1c.8 1.5 2.2 2.2 2.2 2.2s1.6.7 2.2 1.3l-.7.7-.5-.5-.4 1.8 1.8-.4-.5-.5.7-.7c.9 1 1.5 2.3 1.6 3.8h-1v-.8l-1.5 1 1.5 1v-.8h1c-.1 1.5-.6 2.8-1.6 3.8l-.7-.7.5-.5-1.8-.4.4 1.8.5-.5.7.7c-1 .9-2.3 1.5-3.8 1.6v-1h.8l-1-1.5-1 1.5h.8v1c-1.5-.1-2.8-.6-3.8-1.6l.7-.7.5.5.4-1.8-1.8.4.5.5-.7.7c-.9-1-1.5-2.3-1.6-3.8h1v.8l1.5-1-1.5-1v.8h-1c.1-1.5.6-2.8 1.6-3.8l.7.7-.5.5 1.8.4-.4-1.8-.5.5-.7-.7-1.5-1.4c-1.5 1.4-2.5 3.5-2.5 5.8 0 4.4 3.6 8 8 8s8-3.6 8-8c0-3.2-1.9-5.9-4.6-7.2z"/>
+        <path d="M15.4 7.8c-2-.9-2.3-2.5-2.4-2.8.1.1 2 1 2 1l-3-5-3 5 2-1s0 .8.6 2.1c.8 1.5 2.2 2.2 2.2 2.2s1.6.7 2.2 1.3l-.7.7-.5-.5-.4 1.8 1.8-.4-.5-.5.7-.7c.9 1 1.5 2.3 1.6 3.8h-1V14l-1.5 1 1.5 1v-.8h1c-.1 1.5-.6 2.8-1.6 3.8l-.7-.7.5-.5-1.8-.4.4 1.8.5-.5.7.7c-1 .9-2.3 1.5-3.8 1.6v-1h.8l-1-1.5-1 1.5h.8v1c-1.5-.1-2.8-.6-3.8-1.6l.7-.7.5.5.4-1.8-1.8.4.5.5-.7.7c-.9-1-1.5-2.3-1.6-3.8h1v.8l1.5-1L7 14v.8H6c.1-1.5.6-2.8 1.6-3.8l.7.7-.5.5 1.8.4-.4-1.8-.5.5-.7-.7-1.5-1.4C5 10.6 4 12.7 4 15c0 4.4 3.6 8 8 8s8-3.6 8-8c0-3.2-1.9-5.9-4.6-7.2z"/>
         <circle cx="12" cy="15" r="3"/>
     </g>
 </svg>
index 8629f29..05bf48c 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia.png differ
index 6672d9d..587780c 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M22.3 6.3c0 .2 0 .3-.1.3-.7.1-1.2.5-1.6 1.1-.1.2-.2.4-.3.7l-4.6 10.1c-.1.2-.2.3-.2.3s-.1.1-.2.1c-.2 0-.4-.1-.5-.4l-2.6-5.5-2.8 5.5c-.1.3-.3.4-.5.4s-.4-.1-.5-.4l-4.3-10.1c-.3-.8-.6-1.2-.8-1.4-.2-.2-.5-.3-1-.4-.1-.1-.1-.2-.1-.3 0-.2 0-.3.1-.3h4.3c.1.1.1.2.1.3 0 .2 0 .3-.1.3-.6.1-1 .2-1.1.4-.1.2 0 .6.3 1.2l3.6 8.2h.1l2.2-4.4-1.7-3.6c-.3-.7-.6-1.2-.8-1.4s-.5-.3-.9-.4c-.1-.1-.1-.2-.1-.3 0-.2 0-.3.1-.3h3.6c.1.1.1.2.1.3 0 .2 0 .3-.1.3-.4.1-.6.2-.6.4s.1.6.4 1.2l1 1.9 1-1.9c.3-.6.5-.9.5-1.1 0-.2 0-.3-.1-.4-.1-.1-.3-.1-.5-.1l-.1-.3c0-.2 0-.3.1-.3h3c.1.1.1.2.1.3 0 .2 0 .3-.1.3-.5.1-.8.2-1.1.5-.3.3-.6.7-.8 1.3l-1.3 2.8 2.5 5.2h.1l3.7-8.1c.3-.5.3-.9.2-1.2-.1-.3-.5-.4-1.1-.5-.1-.1-.1-.2-.1-.3s0-.3.1-.3h3.7c-.2.1-.2.2-.2.3z"/>
+        <path d="M22.3 6.3c0 .2 0 .3-.1.3-.7.1-1.2.5-1.6 1.1-.1.2-.2.4-.3.7l-4.6 10.1c-.1.2-.2.3-.2.3s-.1.1-.2.1c-.2 0-.4-.1-.5-.4L12.2 13l-2.8 5.5c-.1.3-.3.4-.5.4s-.4-.1-.5-.4L4.1 8.4c-.3-.8-.6-1.2-.8-1.4-.2-.2-.5-.3-1-.4-.1-.1-.1-.2-.1-.3 0-.2 0-.3.1-.3h4.3c.1.1.1.2.1.3 0 .2 0 .3-.1.3-.6.1-1 .2-1.1.4-.1.2 0 .6.3 1.2l3.6 8.2h.1l2.2-4.4L10 8.4c-.3-.7-.6-1.2-.8-1.4s-.5-.3-.9-.4c-.1-.1-.1-.2-.1-.3 0-.2 0-.3.1-.3h3.6c.1.1.1.2.1.3 0 .2 0 .3-.1.3-.4.1-.6.2-.6.4s.1.6.4 1.2l1 1.9 1-1.9c.3-.6.5-.9.5-1.1 0-.2 0-.3-.1-.4-.1-.1-.3-.1-.5-.1l-.1-.3c0-.2 0-.3.1-.3h3c.1.1.1.2.1.3 0 .2 0 .3-.1.3-.5.1-.8.2-1.1.5-.3.3-.6.7-.8 1.3l-1.3 2.8 2.5 5.2h.1l3.7-8.1c.3-.5.3-.9.2-1.2-.1-.3-.5-.4-1.1-.5-.1-.1-.1-.2-.1-.3s0-.3.1-.3h3.7c-.2.1-.2.2-.2.3z"/>
     </g>
 </svg>
index 0fc4773..0e5a52e 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="M15 6l-6-2-6 2v15l6-2 6 2 6-2v-15l-6 2zm-6.3 12.1l-4.7 1.5v-12.9l5-1.7v12.9l-.3.2zm11.3.2l-5 1.7v-12.9l.3-.1 4.7-1.6v12.9z"/>
+    <path d="M15 6L9 4 3 6v15l6-2 6 2 6-2V4l-6 2zM8.7 18.1L4 19.6V6.7L9 5v12.9l-.3.2zm11.3.2L15 20V7.1l.3-.1L20 5.4v12.9z"/>
 </svg>
index b33f1e3..36a5b24 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="M9 6l6-2 6 2v15l-6-2-6 2-6-2v-15l6 2zm6.3 12.1l4.7 1.5v-12.9l-5-1.7v12.9l.3.2zm-11.3.2l5 1.7v-12.9l-.3-.1-4.7-1.6v12.9z" id="path424"/>
+    <path d="M9 6l6-2 6 2v15l-6-2-6 2-6-2V4l6 2zm6.3 12.1l4.7 1.5V6.7L15 5v12.9l.3.2zM4 18.3L9 20V7.1L8.7 7 4 5.4v12.9z" id="path424"/>
 </svg>
index f422c84..5310f82 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="M19 12c0-3.9-3.1-7-7-7s-7 3.1-7 7c0 1.4.4 2.6 1.1 3.7l5.9 7.3 5.9-7.3c.7-1.1 1.1-2.3 1.1-3.7zm-7 4c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z" id="path4"/>
+    <path d="M19 12c0-3.9-3.1-7-7-7s-7 3.1-7 7c0 1.4.4 2.6 1.1 3.7L12 23l5.9-7.3c.7-1.1 1.1-2.3 1.1-3.7zm-7 4c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z" id="path4"/>
 </svg>
index 9a54eb6..a1b024e 100644 (file)
@@ -2,8 +2,8 @@
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g434">
         <g id="g436">
-            <path d="M24 4h-4v-4h-2v4h-4v2h4v4h2v-4h4z" id="path438"/>
+            <path d="M24 4h-4V0h-2v4h-4v2h4v4h2V6h4z" id="path438"/>
         </g>
     </g>
-    <path d="M18 11h-1v-3.9l-.1-.1h-3.9v-1.9c-.3-.1-.7-.1-1-.1-3.9 0-7 3.1-7 7 0 1.4.4 2.6 1.1 3.7l5.9 7.3 5.9-7.3c.7-1.1 1.1-2.3 1.1-3.7 0-.3 0-.7-.1-1h-.9zm-6 5c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z" id="path440"/>
+    <path d="M18 11h-1V7.1l-.1-.1H13V5.1c-.3-.1-.7-.1-1-.1-3.9 0-7 3.1-7 7 0 1.4.4 2.6 1.1 3.7L12 23l5.9-7.3c.7-1.1 1.1-2.3 1.1-3.7 0-.3 0-.7-.1-1H18zm-6 5c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z" id="path440"/>
 </svg>
index d3e152e..eb92036 100644 (file)
@@ -2,8 +2,8 @@
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g434">
         <g id="g436">
-            <path d="M0 4h4v-4h2v4h4v2h-4v4h-2v-4h-4z" id="path438"/>
+            <path d="M0 4h4V0h2v4h4v2H6v4H4V6H0z" id="path438"/>
         </g>
     </g>
-    <path d="M6 11h1v-3.9l.1-.1h3.9v-1.9c.3-.1.7-.1 1-.1 3.9 0 7 3.1 7 7 0 1.4-.4 2.6-1.1 3.7l-5.9 7.3-5.9-7.3c-.7-1.1-1.1-2.3-1.1-3.7 0-.3 0-.7.1-1h.9zm6 5c2.2 0 4-1.8 4-4s-1.8-4-4-4-4 1.8-4 4 1.8 4 4 4z" id="path440"/>
+    <path d="M6 11h1V7.1l.1-.1H11V5.1c.3-.1.7-.1 1-.1 3.9 0 7 3.1 7 7 0 1.4-.4 2.6-1.1 3.7L12 23l-5.9-7.3C5.4 14.6 5 13.4 5 12c0-.3 0-.7.1-1H6zm6 5c2.2 0 4-1.8 4-4s-1.8-4-4-4-4 1.8-4 4 1.8 4 4 4z" id="path440"/>
 </svg>
index 0400c19..0246e4d 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu-invert.png differ
index dddbbb8..59885e9 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-487 489 24 24"><style>* { fill: #FFFFFF }</style>
     <g id="menu">
-        <path id="lines" d="M6 15h12c.553 0 1 .447 1 1v1c0 .553-.447 1-1 1h-12c-.553 0-1-.447-1-1v-1c0-.553.447-1 1-1zm-1-4v1c0 .553.447 1 1 1h12c.553 0 1-.447 1-1v-1c0-.553-.447-1-1-1h-12c-.553 0-1 .447-1 1zm0-5v1c0 .553.447 1 1 1h12c.553 0 1-.447 1-1v-1c0-.553-.447-1-1-1h-12c-.553 0-1 .447-1 1z"/>
+        <path id="lines" d="M-481 505h12c.6 0 1 .4 1 1v1c0 .6-.4 1-1 1h-12c-.6 0-1-.4-1-1v-1c0-.6.4-1 1-1zm-1-4v1c0 .6.4 1 1 1h12c.6 0 1-.4 1-1v-1c0-.6-.4-1-1-1h-12c-.6 0-1 .4-1 1zm0-5v1c0 .6.4 1 1 1h12c.6 0 1-.4 1-1v-1c0-.6-.4-1-1-1h-12c-.6 0-1 .4-1 1z"/>
     </g>
 </svg>
index 0a78119..de7b1d2 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/menu.png differ
index 50ac8a3..9ef19fe 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-487 489 24 24">
     <g id="menu">
-        <path id="lines" d="M6 15h12c.553 0 1 .447 1 1v1c0 .553-.447 1-1 1h-12c-.553 0-1-.447-1-1v-1c0-.553.447-1 1-1zm-1-4v1c0 .553.447 1 1 1h12c.553 0 1-.447 1-1v-1c0-.553-.447-1-1-1h-12c-.553 0-1 .447-1 1zm0-5v1c0 .553.447 1 1 1h12c.553 0 1-.447 1-1v-1c0-.553-.447-1-1-1h-12c-.553 0-1 .447-1 1z"/>
+        <path id="lines" d="M-481 505h12c.6 0 1 .4 1 1v1c0 .6-.4 1-1 1h-12c-.6 0-1-.4-1-1v-1c0-.6.4-1 1-1zm-1-4v1c0 .6.4 1 1 1h12c.6 0 1-.4 1-1v-1c0-.6-.4-1-1-1h-12c-.6 0-1 .4-1 1zm0-5v1c0 .6.4 1 1 1h12c.6 0 1-.4 1-1v-1c0-.6-.4-1-1-1h-12c-.6 0-1 .4-1 1z"/>
     </g>
 </svg>
index 3f308ff..18387e1 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M21 9c0-1.7-1.3-3-3-3h-15v3l9 4 9-4zm-18 2v6c0 1.7 1.3 3 3 3h15v-9l-9 4-9-4z"/>
+        <path d="M21 9c0-1.7-1.3-3-3-3H3v3l9 4 9-4zM3 11v6c0 1.7 1.3 3 3 3h15v-9l-9 4-9-4z"/>
     </g>
 </svg>
index fa61aa1..ff61048 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g450">
-        <path d="M3 9c0-1.7 1.3-3 3-3h15v3l-9 4-9-4zm18 2v6c0 1.7-1.3 3-3 3h-15v-9l9 4 9-4z" id="path452"/>
+        <path d="M3 9c0-1.7 1.3-3 3-3h15v3l-9 4-9-4zm18 2v6c0 1.7-1.3 3-3 3H3v-9l9 4 9-4z" id="path452"/>
     </g>
 </svg>
index 10f0c4e..fbebf0c 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="move-ltr">
-        <path id="arrow" d="M8.935 7.181l5.302 5.302-5.302 5.303 1.414 1.414 6.716-6.717-6.716-6.716z"/>
+        <path id="arrow" d="M8.935 7.18l5.302 5.303-5.302 5.303L10.35 19.2l6.715-6.717-6.716-6.716z"/>
     </g>
 </svg>
index 51e6611..670d84d 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="move-ltr">
-        <path id="arrow" d="M8.935 7.181l5.302 5.302-5.302 5.303 1.414 1.414 6.716-6.717-6.716-6.716z"/>
+        <path id="arrow" d="M8.935 7.18l5.302 5.303-5.302 5.303L10.35 19.2l6.715-6.717-6.716-6.716z"/>
     </g>
 </svg>
index 002ec0f..f8eadf9 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="move-rtl">
-        <path id="arrow" d="M15.065 17.786l-5.302-5.303 5.302-5.302-1.414-1.414-6.716 6.716 6.716 6.717z"/>
+        <path id="arrow" d="M15.065 17.786l-5.302-5.303 5.302-5.302-1.414-1.413-6.715 6.716L13.65 19.2z"/>
     </g>
 </svg>
index bcee09d..00583b4 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="move-rtl">
-        <path id="arrow" d="M15.065 17.786l-5.302-5.303 5.302-5.302-1.414-1.414-6.716 6.716 6.716 6.717z"/>
+        <path id="arrow" d="M15.065 17.786l-5.302-5.303 5.302-5.302-1.414-1.413-6.715 6.716L13.65 19.2z"/>
     </g>
 </svg>
index 9063bd4..b04ecdd 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="M20 11l-4-3v2h-3v-3h2l-3-4-3 4h2v3h-3v-2l-4 3 4 3v-2h3v3h-2l3 4 3-4h-2v-3h3v2z"/>
+    <path d="M20 11l-4-3v2h-3V7h2l-3-4-3 4h2v3H8V8l-4 3 4 3v-2h3v3H9l3 4 3-4h-2v-3h3v2z"/>
 </svg>
index b8ea833..02e24f6 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g4">
-        <path d="M12 5l2.5 2.5-3.5 3.5c-1.2 1.2-1.2 2.8 0 4l5.5-5.5 2.5 2.5v-7h-7zm5 12h-9c-.6 0-1-.4-1-1v-9h3l-2-2h-3v11c0 1.7 1.3 3 3 3h11v-3l-2-2v3z" id="path6"/>
+        <path d="M12 5l2.5 2.5L11 11c-1.2 1.2-1.2 2.8 0 4l5.5-5.5L19 12V5h-7zm5 12H8c-.6 0-1-.4-1-1V7h3L8 5H5v11c0 1.7 1.3 3 3 3h11v-3l-2-2v3z" id="path6"/>
     </g>
 </svg>
index 58a9eeb..16ad8b4 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g462">
-        <path d="M12 5l-2.5 2.5 3.5 3.5c1.2 1.2 1.2 2.8 0 4l-5.5-5.5-2.5 2.5v-7h7zm-5 12h9c.6 0 1-.4 1-1v-9h-3l2-2h3v11c0 1.7-1.3 3-3 3h-11v-3l2-2v3z" id="path464"/>
+        <path d="M12 5L9.5 7.5 13 11c1.2 1.2 1.2 2.8 0 4L7.5 9.5 5 12V5h7zM7 17h9c.6 0 1-.4 1-1V7h-3l2-2h3v11c0 1.7-1.3 3-3 3H5v-3l2-2v3z" id="path464"/>
     </g>
 </svg>
index d4b638a..9e7c67f 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr.png differ
index dad5f51..1d654eb 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-  <g id="line_return">
-    <path d="M17.8 5.7c-.5 0-.9.2-1.2.5s-.5.7-.5 1.2v4.3h-5.1v-4l-6 5.5 6 5.5v-4h8v-9h-1.2z"/>
-  </g>
+    <g id="line_return">
+        <path d="M17.8 5.7c-.5 0-.9.2-1.2.5s-.5.7-.5 1.2v4.3H11v-4l-6 5.5 6 5.5v-4h8v-9h-1.2z"/>
+    </g>
 </svg>
index fd758cc..63e5aa1 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-  <g id="line_return">
-    <path d="M6.2 5.7c.5 0 .9.2 1.2.5.3.3.5.7.5 1.2v4.3H13v-4l6 5.5-6 5.5v-4H5v-9h1.2z"/>
-  </g>
+    <g id="line_return">
+        <path d="M6.2 5.7c.5 0 .9.2 1.2.5.3.3.5.7.5 1.2v4.3H13v-4l6 5.5-6 5.5v-4H5v-9h1.2z"/>
+    </g>
 </svg>
index 46471a3..4ff5856 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="M6 7v12c-.6 0-1-.4-1-1v-9h-1v9c0 1.1.9 2 2 2h15v-13h-15zm9 11h-7v-1h7v1zm0-2h-7v-1h7v1zm0-2h-7v-1h7v1zm4 4h-3v-5h3v5zm0-7h-11v-2h11v2z"/>
+    <path d="M6 7v12c-.6 0-1-.4-1-1V9H4v9c0 1.1.9 2 2 2h15V7H6zm9 11H8v-1h7v1zm0-2H8v-1h7v1zm0-2H8v-1h7v1zm4 4h-3v-5h3v5zm0-7H8V9h11v2z"/>
 </svg>
index 7564dff..2c4a321 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="M19 7v12c.6 0 1-.4 1-1v-9h1v9c0 1.1-.9 2-2 2h-15v-13h15zm-9 11h7v-1h-7v1zm0-2h7v-1h-7v1zm0-2h7v-1h-7v1zm-4 4h3v-5h-3v5zm0-7h11v-2h-11v2z" id="path474"/>
+    <path d="M19 7v12c.6 0 1-.4 1-1V9h1v9c0 1.1-.9 2-2 2H4V7h15zm-9 11h7v-1h-7v1zm0-2h7v-1h-7v1zm0-2h7v-1h-7v1zm-4 4h3v-5H6v5zm0-7h11V9H6v2z" id="path474"/>
 </svg>
index 601428e..e0e4fc0 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M16 14l2 2v-11h-4v2h2zm0 2l-7-7-2-2-1-1-1-1-3-3-1 1 2 2h-1v14h4v-2h-2v-10h1l2 2v10h4v-2h-2v-6l6 6h-1v2h3l4 4 1-1-4-4zm-5-9v-2h-4l2 2zm8-2v2h2v10h-2l2 2h2v-14z"/>
+        <path d="M16 14l2 2V5h-4v2h2zm0 2L9 9 7 7 6 6 5 5 2 2 1 3l2 2H2v14h4v-2H4V7h1l2 2v10h4v-2H9v-6l6 6h-1v2h3l4 4 1-1-4-4zm-5-9V5H7l2 2zm8-2v2h2v10h-2l2 2h2V5z"/>
     </g>
 </svg>
index 31785a3..a7be5ab 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g484">
-        <path d="M8 14l-2 2v-11h4v2h-2zm0 2l7-7 2-2 1-1 1-1 3-3 1 1-2 2h1v14h-4v-2h2v-10h-1l-2 2v10h-4v-2h2v-6l-6 6h1v2h-3l-4 4-1-1 4-4zm5-9v-2h4l-2 2zm-8-2v2h-2v10h2l-2 2h-2v-14z" id="path486"/>
+        <path d="M8 14l-2 2V5h4v2H8zm0 2l7-7 2-2 1-1 1-1 3-3 1 1-2 2h1v14h-4v-2h2V7h-1l-2 2v10h-4v-2h2v-6l-6 6h1v2H7l-4 4-1-1 4-4zm5-9V5h4l-2 2zM5 5v2H3v10h2l-2 2H1V5z" id="path486"/>
     </g>
 </svg>
index 4264ff0..d718154 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M10 8h9v2h-9v-2zm0 3h9v2h-9v-2zm0 3h6v2h-6v-2zm11-8h-18v-2h18v2zm0 14h-18v-2h18v2zm-18-8l5 4v-8l-5 4z"/>
+        <path d="M10 8h9v2h-9V8zm0 3h9v2h-9v-2zm0 3h6v2h-6v-2zm11-8H3V4h18v2zm0 14H3v-2h18v2zM3 12l5 4V8l-5 4z"/>
     </g>
 </svg>
index 2479343..b1a437f 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g496">
-        <path d="M14 8h-9v2h9v-2zm0 3h-9v2h9v-2zm0 3h-6v2h6v-2zm-11-8h18v-2h-18v2zm0 14h18v-2h-18v2zm18-8l-5 4v-8l5 4z" id="path498"/>
+        <path d="M14 8H5v2h9V8zm0 3H5v2h9v-2zm0 3H8v2h6v-2zM3 6h18V4H3v2zm0 14h18v-2H3v2zm18-8l-5 4V8l5 4z" id="path498"/>
     </g>
 </svg>
index 9c0ea59..44c1591 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="outline-ltr">
-        <path id="text" d="M5 13h14v6h-14v-6z"/>
-        <path id="float" d="M5 5v6h6v-6h-6zm5 5h-4v-4h4v4z"/>
+        <path id="text" d="M5 13h14v6H5v-6z"/>
+        <path id="float" d="M5 5v6h6V5H5zm5 5H6V6h4v4z"/>
     </g>
 </svg>
index 2a3428e..c5b19c8 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="outline-rtl">
-        <path id="text" d="M19 19h-14v-6h14v6z"/>
-        <path id="float" d="M13 5v6h6v-6h-6zm1 1h4v4h-4v-4z"/>
+        <path id="text" d="M19 19H5v-6h14v6z"/>
+        <path id="float" d="M13 5v6h6V5h-6zm1 1h4v4h-4V6z"/>
     </g>
 </svg>
index 92fc07e..17eee17 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M2 3h18v2h-16v12h-2v-14zm13 13l-4-4-4 5h13l-3-3-2 2zm-10-10h17v13h-17v-13z"/>
+        <path d="M2 3h18v2H4v12H2V3zm13 13l-4-4-4 5h13l-3-3-2 2zM5 6h17v13H5V6z"/>
     </g>
 </svg>
index d989d3d..24a4e12 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g508">
-        <path d="M22 3h-18v2h16v12h2v-14zm-13 13l4-4 4 5h-13l3-3 2 2zm10-10h-17v13h17v-13z" id="path510"/>
+        <path d="M22 3H4v2h16v12h2V3zM9 16l4-4 4 5H4l3-3 2 2zM19 6H2v13h17V6z" id="path510"/>
     </g>
 </svg>
index 55e0b7f..be2c66d 100644 (file)
@@ -1,8 +1,8 @@
 <?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>
     <g id="picture">
-        <path id="frame" d="M18 4h-12c-2-.007-3 .993-3 2.993l.014 9.007c-.014 2 .986 2.988 2.986 3h12c2-.012 2.994-1 3-3.006v-9.001c-.006-2-1-3-3-2.993zm1 13h-14v-11h14v11z"/>
-        <path id="mountains" d="M6 13.5l3.5-3.5 2.328 2.312-1.312 1.094.875 1.032 4.109-3.438 2.5 2v3h-12z"/>
-        <path id="sky" d="M6 12l3.516-4.156 3.046 3.172 2.938-2.016 2.5 2v-4h-12z"/>
+        <path id="frame" d="M18 4H6c-2-.007-3 .993-3 2.993L3.014 16C3 18 4 18.988 6 19h12c2-.012 2.994-1 3-3.006v-9c-.006-2-1-3-3-2.994zm1 13H5V6h14v11z"/>
+        <path id="mountains" d="M6 13.5L9.5 10l2.328 2.312-1.312 1.094.875 1.032L15.5 11l2.5 2v3H6z"/>
+        <path id="sky" d="M6 12l3.516-4.156 3.046 3.172L15.5 9l2.5 2V7H6z"/>
     </g>
 </svg>
index 7400bca..24d7315 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="picture">
-        <path id="frame" d="M18 4h-12c-2-.007-3 .993-3 2.993l.014 9.007c-.014 2 .986 2.988 2.986 3h12c2-.012 2.994-1 3-3.006v-9.001c-.006-2-1-3-3-2.993zm1 13h-14v-11h14v11z"/>
-        <path id="mountains" d="M6 13.5l3.5-3.5 2.328 2.312-1.312 1.094.875 1.032 4.109-3.438 2.5 2v3h-12z"/>
-        <path id="sky" d="M6 12l3.516-4.156 3.046 3.172 2.938-2.016 2.5 2v-4h-12z"/>
+        <path id="frame" d="M18 4H6c-2-.007-3 .993-3 2.993L3.014 16C3 18 4 18.988 6 19h12c2-.012 2.994-1 3-3.006v-9c-.006-2-1-3-3-2.994zm1 13H5V6h14v11z"/>
+        <path id="mountains" d="M6 13.5L9.5 10l2.328 2.312-1.312 1.094.875 1.032L15.5 11l2.5 2v3H6z"/>
+        <path id="sky" d="M6 12l3.516-4.156 3.046 3.172L15.5 9l2.5 2V7H6z"/>
     </g>
 </svg>
index 5ce9563..669e49d 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <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-8zm-2 12v-8l6 4-6 4z"/>
+        <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-8zm-2 12V9l6 4-6 4z"/>
     </g>
 </svg>
index 591a5d3..456fb4c 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g520">
-        <path d="M12 5c4.4 0 8 3.6 8 8s-3.6 8-8 8-8-3.6-8-8 3.6-8 8-8zm2 12v-8l-6 4 6 4z" id="path522"/>
+        <path d="M12 5c4.4 0 8 3.6 8 8s-3.6 8-8 8-8-3.6-8-8 3.6-8 8-8zm2 12V9l-6 4 6 4z" id="path522"/>
     </g>
 </svg>
index baae35e..7081606 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 8h-1v-4h-10v4h-4v6c0 1.7 1.3 3 3 3h1v3h10v-3h4v-6c0-1.7-1.3-3-3-3zm-10-3h8v3h-8v-3zm8 14h-8v-6h8v6z"/>
+    <path d="M18 8h-1V4H7v4H3v6c0 1.7 1.3 3 3 3h1v3h10v-3h4v-6c0-1.7-1.3-3-3-3zM8 5h8v3H8V5zm8 14H8v-6h8v6z"/>
 </svg>
index 8294afd..79fd4e1 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="M6 8h1v-4h10v4h4v6c0 1.7-1.3 3-3 3h-1v3h-10v-3h-4v-6c0-1.7 1.3-3 3-3zm10-3h-8v3h8v-3zm-8 14h8v-6h-8v6z" id="path532"/>
+    <path d="M6 8h1V4h10v4h4v6c0 1.7-1.3 3-3 3h-1v3H7v-3H3v-6c0-1.7 1.3-3 3-3zm10-3H8v3h8V5zM8 19h8v-6H8v6z" id="path532"/>
 </svg>
index f6a9c86..47dad2b 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr.png differ
index 97b77bb..0ea25d7 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 9.9c-.7 0-1.4.3-1.8.9v-4.8h-4c.2-.4.4-.8.4-1.2 0-1.2-1-2.2-2.2-2.2-1.3-.1-2.3.9-2.3 2.2 0 .4.2.8.4 1.2h-4.4v3.6l.6-.1c1.4 0 2.5 1.1 2.5 2.5s-1.1 2.5-2.5 2.5c-.2 0-.4 0-.6-.1v3.6h4.9c-.5.4-.9 1-.9 1.8 0 1.2 1 2.2 2.3 2.2 1.2 0 2.2-1 2.2-2.2 0-.7-.3-1.4-.9-1.8h4.5v-4.5c.4.5 1 .9 1.8.9 1.2 0 2.2-1 2.2-2.2 0-1.3-1-2.3-2.2-2.3z" id="path542"/>
+    <path d="M18 9.9c-.7 0-1.4.3-1.8.9V6h-4c.2-.4.4-.8.4-1.2 0-1.2-1-2.2-2.2-2.2-1.3-.1-2.3.9-2.3 2.2 0 .4.2.8.4 1.2H4.1v3.6l.6-.1c1.4 0 2.5 1.1 2.5 2.5s-1.1 2.5-2.5 2.5c-.2 0-.4 0-.6-.1V18H9c-.5.4-.9 1-.9 1.8 0 1.2 1 2.2 2.3 2.2 1.2 0 2.2-1 2.2-2.2 0-.7-.3-1.4-.9-1.8h4.5v-4.5c.4.5 1 .9 1.8.9 1.2 0 2.2-1 2.2-2.2 0-1.3-1-2.3-2.2-2.3z" id="path542"/>
 </svg>
index 03050e1..51c40db 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl.png differ
index 0ad5f37..e606425 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="M6.3 9.9c.7 0 1.4.3 1.8.9v-4.8h4c-.2-.4-.4-.8-.4-1.2 0-1.2 1-2.2 2.2-2.2 1.3-.1 2.3.9 2.3 2.2 0 .4-.2.8-.4 1.2h4.4v3.6l-.6-.1c-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5c.2 0 .4 0 .6-.1v3.6h-4.9c.5.4.9 1 .9 1.8 0 1.2-1 2.2-2.3 2.2-1.2 0-2.2-1-2.2-2.2 0-.7.3-1.4.9-1.8h-4.5v-4.5c-.4.5-1 .9-1.8.9-1.2 0-2.2-1-2.2-2.2 0-1.3 1-2.3 2.2-2.3z" id="path542"/>
+    <path d="M6.3 9.9c.7 0 1.4.3 1.8.9V6h4c-.2-.4-.4-.8-.4-1.2 0-1.2 1-2.2 2.2-2.2 1.3-.1 2.3.9 2.3 2.2 0 .4-.2.8-.4 1.2h4.4v3.6l-.6-.1c-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5c.2 0 .4 0 .6-.1V18h-4.9c.5.4.9 1 .9 1.8 0 1.2-1 2.2-2.3 2.2-1.2 0-2.2-1-2.2-2.2 0-.7.3-1.4.9-1.8H8.1v-4.5c-.4.5-1 .9-1.8.9-1.2 0-2.2-1-2.2-2.2 0-1.3 1-2.3 2.2-2.3z" id="path542"/>
 </svg>
index 7060db7..5f14322 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr.png differ
index dc1c06f..c2925ca 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-487 489 24 24">
     <g>
-        <path d="M19.9 8.7c.3-.1.6-.3.8-.6s.3-.7.3-1.1v-1c-1.3.2-1.9.2-3.3.8-.9.5-1.6 1.1-2.2 1.8s-2.5 3.4-2.5 7.4v4h6c1.1 0 2-.9 2-2v-6h-4s.1-.9.8-1.8c.6-.7 1.3-1.2 2.1-1.5zm-14.4-.1c-.6.7-2.5 3.4-2.5 7.4v4h6c1.1 0 2-.9 2-2v-6h-4s.1-.9.8-1.8c.6-.7 1.3-1.2 2.1-1.5.3-.1.6-.3.8-.6s.3-.7.3-1.1v-1c-1.3.2-1.9.2-3.3.8-.8.5-1.6 1.1-2.2 1.8z"/>
+        <path d="M-468.9 498.1c.2-.1.5-.2.6-.5s.2-.5.2-.9v-.7c-1 .2-1.5.2-2.6.6-.7.4-1.2.9-1.7 1.4-.5.5-1.9 2.6-1.9 5.8v3.1h4.7c.9 0 1.6-.7 1.6-1.6v-4.7h-3.1s.1-.7.6-1.4c.5-.5 1-.9 1.6-1.1zm-11.2-.1c-.5.5-1.9 2.9-1.9 6v2.9h4.7c.9 0 1.6-.7 1.6-1.6v-4.7h-3.1s.1-.7.6-1.4c.5-.5 1-.9 1.6-1.2.2-.1.5-.2.6-.5s.2-.5.2-.9v-.6c-1 .2-1.5.2-2.6.6-.6.4-1.2.9-1.7 1.4z"/>
     </g>
 </svg>
index df0facf..e5039fc 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl.png differ
index 3a8b701..dd7bfb1 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <g id="g552">
-        <path d="M4.1 8.7c-.3-.1-.6-.3-.8-.6-.2-.3-.3-.7-.3-1.1v-1c1.3.2 1.9.2 3.3.8.9.5 1.6 1.1 2.2 1.8.6.7 2.5 3.4 2.5 7.4v4h-6c-1.1 0-2-.9-2-2v-6h4s-.1-.9-.8-1.8c-.6-.7-1.3-1.2-2.1-1.5zm14.4-.1c.6.7 2.5 3.4 2.5 7.4v4h-6c-1.1 0-2-.9-2-2v-6h4s-.1-.9-.8-1.8c-.6-.7-1.3-1.2-2.1-1.5-.3-.1-.6-.3-.8-.6-.2-.3-.3-.7-.3-1.1v-1c1.3.2 1.9.2 3.3.8.8.5 1.6 1.1 2.2 1.8z" id="path554"/>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-487 489 24 24">
+    <g>
+        <path d="M-479.5 499.3c.5.7.6 1.4.6 1.4h-3.1v4.7c0 .9.7 1.6 1.6 1.6h4.7v-3.1c0-3.1-1.5-5.2-1.9-5.8-.5-.5-1-1-1.7-1.4-1.1-.5-1.6-.5-2.6-.6v.8c0 .3.1.6.2.9s.4.4.6.5c.6 0 1.1.4 1.6 1zm7.8-2.7c-1.1-.5-1.6-.5-2.6-.6v.8c0 .3.1.6.2.9s.4.4.6.5c.6.2 1.2.6 1.6 1.2.5.7.6 1.4.6 1.4h-3.1v4.7c0 .9.7 1.6 1.6 1.6h4.7V504c0-3.1-1.5-5.4-1.9-6-.4-.5-1-1-1.7-1.4z"/>
     </g>
 </svg>
index b04ec74..7fd4754 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr.png differ
index 24fca8f..bacec22 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g4">
-        <path d="M3.5 8.6c-.6.7-2.5 3.4-2.5 7.4v4h6c1.1 0 2-.9 2-2v-6h-4s.1-.9.8-1.8c.6-.7 1.3-1.2 2.1-1.5.3-.1.6-.3.8-.6.2-.3.3-.7.3-1.1v-1c-1.3.2-1.9.2-3.3.8-.8.5-1.6 1.1-2.2 1.8zm15.5-3.6v-4h-2v4h-4v2h4v4h2v-4h4v-2zm-4 7s.1-.9.8-1.8l.2-.2v-2h-1.9l-.6.6c-.6.7-2.5 3.4-2.5 7.4v4h6c1.1 0 2-.9 2-2v-6h-4z" id="path6"/>
+        <path d="M3.5 8.6C2.9 9.3 1 12 1 16v4h6c1.1 0 2-.9 2-2v-6H5s.1-.9.8-1.8c.6-.7 1.3-1.2 2.1-1.5.3-.1.6-.3.8-.6.2-.3.3-.7.3-1.1V6c-1.3.2-1.9.2-3.3.8-.8.5-1.6 1.1-2.2 1.8zM19 5V1h-2v4h-4v2h4v4h2V7h4V5zm-4 7s.1-.9.8-1.8l.2-.2V8h-1.9l-.6.6C12.9 9.3 11 12 11 16v4h6c1.1 0 2-.9 2-2v-6h-4z" id="path6"/>
     </g>
 </svg>
index 9e91202..e305696 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl.png differ
index 736f2a6..9aed41d 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g4">
-        <path d="M20.5 8.6c.6.7 2.5 3.4 2.5 7.4v4h-6c-1.1 0-2-.9-2-2v-6h4s-.1-.9-.8-1.8c-.6-.7-1.3-1.2-2.1-1.5-.3-.1-.6-.3-.8-.6-.2-.3-.3-.7-.3-1.1v-1c1.3.2 1.9.2 3.3.8.8.5 1.6 1.1 2.2 1.8zm-15.5-3.6v-4h2v4h4v2h-4v4h-2v-4h-4v-2zm4 7s-.1-.9-.8-1.8l-.2-.2v-2h1.9l.6.6c.6.7 2.5 3.4 2.5 7.4v4h-6c-1.1 0-2-.9-2-2v-6h4z" id="path6"/>
+        <path d="M20.5 8.6c.6.7 2.5 3.4 2.5 7.4v4h-6c-1.1 0-2-.9-2-2v-6h4s-.1-.9-.8-1.8c-.6-.7-1.3-1.2-2.1-1.5-.3-.1-.6-.3-.8-.6-.2-.3-.3-.7-.3-1.1V6c1.3.2 1.9.2 3.3.8.8.5 1.6 1.1 2.2 1.8zM5 5V1h2v4h4v2H7v4H5V7H1V5zm4 7s-.1-.9-.8-1.8L8 10V8h1.9l.6.6c.6.7 2.5 3.4 2.5 7.4v4H7c-1.1 0-2-.9-2-2v-6h4z" id="path6"/>
     </g>
 </svg>
index 3bca20f..18ceb35 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr.png differ
index 884d40d..be25d43 100644 (file)
@@ -2,7 +2,7 @@
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="create_redirect">
         <g>
-            <path d="M17.7 2.4c-.3-.3-.7-.4-1.2-.4h-12.1v16.2c0 .5.1.8.4 1.1s.7.7 1.2.7h10.2c-.6-.2-1.2-.5-1.9-1-.4-.3-.8-.6-1.2-1l-.5-.6h-6.2v-1.4h5.4s-.4-1.5-.4-2h-5v-1h9v1c.4.1 1.1.1 1.5.1.4 0 .7 0 1.1-.1v-10.5c.1-.5-.1-.9-.3-1.1zm-5.2 1.6h3v4.5h-3v-4.5zm-6.1 0h4v1.6h-4v-1.6zm0 3h4v1.5h-4v-1.5zm0 3h9v1.5h-9v-1.5zm12.7 3.1l4.9 3.8-4.9 4.8v-2.2c-1.7 0-2.9-.2-4.3-1.2-1.2-.8-2.5-2.6-2.3-4.1 1.4 1 2.9 1.5 4.4 1.5.7 0 1.4-.1 2.1-.3l.1-2.3"/>
+            <path d="M17.7 2.4c-.3-.3-.7-.4-1.2-.4H4.4v16.2c0 .5.1.8.4 1.1s.7.7 1.2.7h10.2c-.6-.2-1.2-.5-1.9-1-.4-.3-.8-.6-1.2-1l-.5-.6H6.4V16h5.4s-.4-1.5-.4-2h-5v-1h9v1c.4.1 1.1.1 1.5.1.4 0 .7 0 1.1-.1V3.5c.1-.5-.1-.9-.3-1.1zM12.5 4h3v4.5h-3V4zM6.4 4h4v1.6h-4V4zm0 3h4v1.5h-4V7zm0 3h9v1.5h-9V10zm12.7 3.1l4.9 3.8-4.9 4.8v-2.2c-1.7 0-2.9-.2-4.3-1.2-1.2-.8-2.5-2.6-2.3-4.1 1.4 1 2.9 1.5 4.4 1.5.7 0 1.4-.1 2.1-.3l.1-2.3"/>
         </g>
     </g>
 </svg>
index a07e836..a41d178 100644 (file)
@@ -2,8 +2,8 @@
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="create_redirect">
         <g id="g3264">
-            <path d="M6.3 2.4c.3-.3.7-.4 1.2-.4h12.1v16.2c0 .5-.1.8-.4 1.1-.3.3-.7.7-1.2.7h-10.2c.6-.2 1.2-.5 1.9-1 .4-.3.8-.6 1.2-1l.5-.6h6.2v-1.4h-5.4s.4-1.5.4-2h5v-1h-9v1c-.4.1-1.1.1-1.5.1-.4 0-.7 0-1.1-.1v-10.5c-.1-.5.1-.9.3-1.1zm5.2 1.6h-3v4.5h3v-4.5zm6.1 0h-4v1.6h4v-1.6zm0 3h-4v1.5h4v-1.5zm0 3h-9v1.5h9v-1.5z" id="path3266"/>
-            <path d="M4.9 13.1l-4.9 3.8 4.9 4.8v-2.2c1.7 0 2.9-.2 4.3-1.2 1.2-.8 2.5-2.6 2.3-4.1-1.4 1-2.9 1.5-4.4 1.5-.7 0-1.4-.1-2.1-.3l-.1-2.3" id="path3268"/>
+            <path d="M6.3 2.4c.3-.3.7-.4 1.2-.4h12.1v16.2c0 .5-.1.8-.4 1.1-.3.3-.7.7-1.2.7H7.8c.6-.2 1.2-.5 1.9-1 .4-.3.8-.6 1.2-1l.5-.6h6.2V16h-5.4s.4-1.5.4-2h5v-1h-9v1c-.4.1-1.1.1-1.5.1-.4 0-.7 0-1.1-.1V3.5c-.1-.5.1-.9.3-1.1zM11.5 4h-3v4.5h3V4zm6.1 0h-4v1.6h4V4zm0 3h-4v1.5h4V7zm0 3h-9v1.5h9V10z" id="path3266"/>
+            <path d="M4.9 13.1L0 16.9l4.9 4.8v-2.2c1.7 0 2.9-.2 4.3-1.2 1.2-.8 2.5-2.6 2.3-4.1-1.4 1-2.9 1.5-4.4 1.5-.7 0-1.4-.1-2.1-.3l-.1-2.3" id="path3268"/>
         </g>
     </g>
 </svg>
index 4643928..68bb9d7 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/regular-expression.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/regular-expression.png differ
index 7b67261..e9594a1 100644 (file)
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="regular-expression">
-        <path id="left-bracket" d="m 3,12.044797 c -5e-7,-0.989171 0.150394,-1.914889 0.451184,-2.7771612 C 3.7558785,8.4053812 4.1933899,7.6495032 4.7637193,7 L 6.2286026,7 C 5.6778034,7.7204251 5.261777,8.511764 4.9805221,9.3740188 4.6992623,10.236291 4.5586337,11.122815 4.5586357,12.033598 c -2e-6,0.914522 0.1425798,1.799179 0.427746,2.653974 C 5.2754491,15.538635 5.6856161,16.309444 6.2168835,17 L 4.7637193,17 C 4.1894835,16.365435 3.7519721,15.624488 3.451184,14.777158 3.150394,13.929828 3,13.019042 3,12.044797" />
-        <path id="dot" d="m 10,16 c 0,0.552285 -0.4477153,1 -1,1 -0.5522847,0 -1,-0.447715 -1,-1 0,-0.552285 0.4477153,-1 1,-1 0.5522847,0 1,0.447715 1,1 z" />
-        <path id="star" d="m 14.250652,7.0127142 -0.240235,2.15625 2.185547,-0.609375 0.193359,1.4765618 -1.992187,0.140625 1.306641,1.740234 -1.330079,0.708985 -0.914062,-1.833985 -0.802734,1.822266 -1.382813,-0.697266 1.294922,-1.740234 -1.980469,-0.152343 0.228516,-1.4648438 2.138672,0.609375 -0.240235,-2.15625 1.535157,0" />
-        <path id="right-bracket" d="m 21,12.044797 c -3e-6,0.981711 -0.152351,1.896229 -0.457043,2.743558 C 20.241767,15.635686 19.806209,16.3729 19.235883,17 l -1.453164,0 c 0.527356,-0.686824 0.93557,-1.455766 1.224642,-2.306829 0.289069,-0.854795 0.433604,-1.741318 0.433606,-2.659573 -2e-6,-0.910783 -0.140631,-1.797307 -0.421886,-2.6595792 C 18.737821,8.511764 18.321795,7.7204251 17.771,7 l 1.464883,0 c 0.574232,0.653236 1.011744,1.4128466 1.312536,2.2788341 0.300785,0.8622719 0.45118,1.7842569 0.451183,2.7659629" />
+        <path id="left-bracket" d="M3 12.045c0-.99.15-1.915.45-2.777.306-.862.743-1.618 1.314-2.268H6.23c-.552.72-.968 1.512-1.25 2.374-.28.862-.42 1.75-.42 2.66 0 .915.142 1.8.427 2.654.29.85.7 1.622 1.23 2.312H4.766c-.574-.635-1.012-1.376-1.313-2.223-.3-.847-.45-1.758-.45-2.732"/>
+        <path id="dot" d="M10 16c0 .552-.448 1-1 1s-1-.448-1-1 .448-1 1-1 1 .448 1 1z"/>
+        <path id="star" d="M14.25 7.013l-.24 2.156 2.187-.61.193 1.477-1.992.14 1.307 1.74-1.33.71-.914-1.834-.802 1.822-1.383-.697 1.295-1.74-1.98-.152.23-1.465 2.138.61-.24-2.156h1.535"/>
+        <path id="right-bracket" d="M21 12.045c0 .982-.152 1.896-.457 2.744-.3.846-.737 1.584-1.307 2.21h-1.453c.527-.686.936-1.455 1.225-2.306.29-.855.434-1.74.434-2.66 0-.91-.14-1.797-.422-2.66-.28-.862-.697-1.654-1.248-2.374h1.465c.574.653 1.012 1.413 1.313 2.28.3.86.45 1.783.45 2.765"/>
     </g>
 </svg>
index 3551e58..c242b8a 100644 (file)
@@ -1,6 +1,6 @@
 <?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: #D11D13 }</style>
     <g id="remove">
-        <path id="trash-can" d="M12 10h-1v6h1v-6zm-2 0h-1v6h1v-6zm4 0h-1v6h1v-6zm0-4v-1h-5v1h-3v3h1v7.966l1 1.031v-.074.077h6.984l.016-.018v.015l1-1.031v-7.966h1v-3h-3zm1 11h-7v-8h7v8zm1-9h-9v-1h9v1z"/>
+        <path id="trash-can" d="M12 10h-1v6h1v-6zm-2 0H9v6h1v-6zm4 0h-1v6h1v-6zm0-4V5H9v1H6v3h1v7.966l1 1.03v-.073V18h6.984l.016-.018v.015l1-1.03V9h1V6h-3zm1 11H8V9h7v8zm1-9H7V7h9v1z"/>
     </g>
 </svg>
index ddc352f..0e2c8ba 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="remove">
-        <path id="trash-can" d="M12 10h-1v6h1v-6zm-2 0h-1v6h1v-6zm4 0h-1v6h1v-6zm0-4v-1h-5v1h-3v3h1v7.966l1 1.031v-.074.077h6.984l.016-.018v.015l1-1.031v-7.966h1v-3h-3zm1 11h-7v-8h7v8zm1-9h-9v-1h9v1z"/>
+        <path id="trash-can" d="M12 10h-1v6h1v-6zm-2 0H9v6h1v-6zm4 0h-1v6h1v-6zm0-4V5H9v1H6v3h1v7.966l1 1.03v-.073V18h6.984l.016-.018v.015l1-1.03V9h1V6h-3zm1 11H8V9h7v8zm1-9H7V7h9v1z"/>
     </g>
 </svg>
index 6ad7917..ef5f97b 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="remove">
-        <path id="trash-can" d="M12 10h-1v6h1v-6zm-2 0h-1v6h1v-6zm4 0h-1v6h1v-6zm0-4v-1h-5v1h-3v3h1v7.966l1 1.031v-.074.077h6.984l.016-.018v.015l1-1.031v-7.966h1v-3h-3zm1 11h-7v-8h7v8zm1-9h-9v-1h9v1z"/>
+        <path id="trash-can" d="M12 10h-1v6h1v-6zm-2 0H9v6h1v-6zm4 0h-1v6h1v-6zm0-4V5H9v1H6v3h1v7.966l1 1.03v-.073V18h6.984l.016-.018v.015l1-1.03V9h1V6h-3zm1 11H8V9h7v8zm1-9H7V7h9v1z"/>
     </g>
 </svg>
index ebce3c0..304a4fa 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize.png differ
index 6e4979f..d15f387 100644 (file)
@@ -3,7 +3,7 @@
     <g id="Layer_1">
         <g>
             <circle cx="11.5" cy="8.5" r="2.5"/>
-            <path d="M16.3 8.7l.7-.7-.8-.8.4-.8-1.1-.5.1-.9-1.2-.2-.1-.9-1.2.2-.4-.8-1.1.5-.6-.8-.8.8-.9-.4-.5 1.1-.9-.2-.2 1.2-.9.2.2 1.2-.9.4.5 1.1-.6.6.8.8-.4.8 1.1.5-.1.9 1.2.2.1.9 1.2-.2.4.8 1.1-.5.6.8.8-.8.8.4.5-1.1.9.1.2-1.2.9-.1-.2-1.2.8-.4-.4-1zm-4.8 3.3c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5-1.6 3.5-3.5 3.5zm.5 3l-.7-.7-1.1.6-.4-.7-.8.3v8.5l2.5-3 2.5 3v-8.5l-1-.5z"/>
+            <path d="M16.3 8.7L17 8l-.8-.8.4-.8-1.1-.5.1-.9-1.2-.2-.1-.9-1.2.2-.4-.8-1.1.5L11 3l-.8.8-.9-.4-.5 1.1-.9-.2-.2 1.2-.9.2.2 1.2-.9.4.5 1.1L6 9l.8.8-.4.8 1.1.5-.1.9 1.2.2.1.9 1.2-.2.4.8 1.1-.5.6.8.8-.8.8.4.5-1.1.9.1.2-1.2.9-.1-.2-1.2.8-.4-.4-1zM11.5 12C9.6 12 8 10.4 8 8.5S9.6 5 11.5 5 15 6.6 15 8.5 13.4 12 11.5 12zm.5 3l-.7-.7-1.1.6-.4-.7-.8.3V23l2.5-3 2.5 3v-8.5l-1-.5z"/>
         </g>
     </g>
 </svg>
index 4b6ecd2..555b641 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr-invert.png differ
index 3d58783..41b0227 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="search">
-        <path id="magnifying-glass" d="M 10.5,4 C 6.9101491,4 4,6.9101491 4,10.5 c 0,3.589851 2.9101491,6.5 6.5,6.5 1.02211,0 1.983324,-0.235899 2.84375,-0.65625 L 16,19 c 1.4,1.4 2.5,1.5 4,0 L 15.5625,14.5625 C 16.462737,13.447115 17,12.044969 17,10.5 17,6.9101491 14.089851,4 10.5,4 z m 0,2 C 12.985281,6 15,8.0147186 15,10.5 15,12.985281 12.985281,15 10.5,15 8.0147186,15 6,12.985281 6,10.5 6,8.0147186 8.0147186,6 10.5,6 z"/>
+        <path id="magnifying-glass" d="M10.5 4C6.91 4 4 6.91 4 10.5S6.91 17 10.5 17c1.022 0 1.983-.236 2.844-.656L16 19c1.4 1.4 2.5 1.5 4 0l-4.438-4.438C16.462 13.447 17 12.044 17 10.5 17 6.91 14.09 4 10.5 4zm0 2c2.485 0 4.5 2.015 4.5 4.5S12.985 15 10.5 15 6 12.985 6 10.5 8.015 6 10.5 6z"/>
     </g>
 </svg>
index c10dc66..9f2033b 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr.png differ
index cdcbc30..eadb088 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="search">
-        <path id="magnifying-glass" d="M 10.5,4 C 6.9101491,4 4,6.9101491 4,10.5 c 0,3.589851 2.9101491,6.5 6.5,6.5 1.02211,0 1.983324,-0.235899 2.84375,-0.65625 L 16,19 c 1.4,1.4 2.5,1.5 4,0 L 15.5625,14.5625 C 16.462737,13.447115 17,12.044969 17,10.5 17,6.9101491 14.089851,4 10.5,4 z m 0,2 C 12.985281,6 15,8.0147186 15,10.5 15,12.985281 12.985281,15 10.5,15 8.0147186,15 6,12.985281 6,10.5 6,8.0147186 8.0147186,6 10.5,6 z"/>
+        <path id="magnifying-glass" d="M10.5 4C6.91 4 4 6.91 4 10.5S6.91 17 10.5 17c1.022 0 1.983-.236 2.844-.656L16 19c1.4 1.4 2.5 1.5 4 0l-4.438-4.438C16.462 13.447 17 12.044 17 10.5 17 6.91 14.09 4 10.5 4zm0 2c2.485 0 4.5 2.015 4.5 4.5S12.985 15 10.5 15 6 12.985 6 10.5 8.015 6 10.5 6z"/>
     </g>
 </svg>
index 7868dc1..8419713 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl-invert.png differ
index 91130f0..8b143fc 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="search">
-        <path id="magnifying-glass" d="m 13.5,4 c 3.589851,0 6.5,2.9101491 6.5,6.5 0,3.589851 -2.910149,6.5 -6.5,6.5 -1.02211,0 -1.983324,-0.235899 -2.84375,-0.65625 L 8,19 C 6.6,20.4 5.5,20.5 4,19 L 8.4375,14.5625 C 7.537263,13.447115 7,12.044969 7,10.5 7,6.9101491 9.910149,4 13.5,4 z m 0,2 C 11.014719,6 9,8.0147186 9,10.5 9,12.985281 11.014719,15 13.5,15 15.985281,15 18,12.985281 18,10.5 18,8.0147186 15.985281,6 13.5,6 z"/>
+        <path id="magnifying-glass" d="M13.5 4c3.59 0 6.5 2.91 6.5 6.5S17.09 17 13.5 17c-1.022 0-1.983-.236-2.844-.656L8 19c-1.4 1.4-2.5 1.5-4 0l4.438-4.438C7.538 13.447 7 12.044 7 10.5 7 6.91 9.91 4 13.5 4zm0 2C11.015 6 9 8.015 9 10.5s2.015 4.5 4.5 4.5 4.5-2.015 4.5-4.5S15.985 6 13.5 6z"/>
     </g>
 </svg>
index dab4ff1..c7bc7a8 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl.png differ
index c675349..d2e4585 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="search">
-        <path id="magnifying-glass" d="m 13.5,4 c 3.589851,0 6.5,2.9101491 6.5,6.5 0,3.589851 -2.910149,6.5 -6.5,6.5 -1.02211,0 -1.983324,-0.235899 -2.84375,-0.65625 L 8,19 C 6.6,20.4 5.5,20.5 4,19 L 8.4375,14.5625 C 7.537263,13.447115 7,12.044969 7,10.5 7,6.9101491 9.910149,4 13.5,4 z m 0,2 C 11.014719,6 9,8.0147186 9,10.5 9,12.985281 11.014719,15 13.5,15 15.985281,15 18,12.985281 18,10.5 18,8.0147186 15.985281,6 13.5,6 z"/>
+        <path id="magnifying-glass" d="M13.5 4c3.59 0 6.5 2.91 6.5 6.5S17.09 17 13.5 17c-1.022 0-1.983-.236-2.844-.656L8 19c-1.4 1.4-2.5 1.5-4 0l4.438-4.438C7.538 13.447 7 12.044 7 10.5 7 6.91 9.91 4 13.5 4zm0 2C11.015 6 9 8.015 9 10.5s2.015 4.5 4.5 4.5 4.5-2.015 4.5-4.5S15.985 6 13.5 6z"/>
     </g>
 </svg>
index 0e9a5c5..2bb6e9d 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/secure-link-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/secure-link-invert.png differ
index 2aeba4e..092200a 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><style>* { fill: #FFFFFF }</style>
     <g id="secure">
-        <path id="lock" d="M8 5h.019v-.997c.001-.057.004-1.409-.832-2.255-.434-.438-.998-.66-1.679-.66s-1.245.222-1.678.659c-.837.847-.833 2.199-.832 2.251v1.002h.002c-.553 0-1 .447-1 1v3c0 .553.447 1 1 1h5c.553 0 1-.447 1-1v-3c0-.553-.447-1-1-1zm-4.002 0v-1.007c0-.01.005-.999.543-1.543.482-.485 1.449-.487 1.932-.002.544.546.546 1.536.546 1.55v1.002h-3.021z"/>
+        <path id="lock" d="M8 5h.02v-.997c0-.057.003-1.41-.833-2.255-.434-.438-.998-.66-1.68-.66s-1.244.222-1.677.66c-.837.846-.833 2.198-.832 2.25V5H3c-.553 0-1 .447-1 1v3c0 .553.447 1 1 1h5c.553 0 1-.447 1-1V6c0-.553-.447-1-1-1zM3.998 5V3.993c0-.01.005-1 .543-1.543.483-.485 1.45-.487 1.933-.002.544.546.546 1.536.546 1.55V5H3.997z"/>
     </g>
 </svg>
index 918b3d7..a2eba48 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/secure-link.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/secure-link.png differ
index a9c7d27..9a75454 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
     <g id="secure">
-        <path id="lock" d="M8 5h.019v-.997c.001-.057.004-1.409-.832-2.255-.434-.438-.998-.66-1.679-.66s-1.245.222-1.678.659c-.837.847-.833 2.199-.832 2.251v1.002h.002c-.553 0-1 .447-1 1v3c0 .553.447 1 1 1h5c.553 0 1-.447 1-1v-3c0-.553-.447-1-1-1zm-4.002 0v-1.007c0-.01.005-.999.543-1.543.482-.485 1.449-.487 1.932-.002.544.546.546 1.536.546 1.55v1.002h-3.021z"/>
+        <path id="lock" d="M8 5h.02v-.997c0-.057.003-1.41-.833-2.255-.434-.438-.998-.66-1.68-.66s-1.244.222-1.677.66c-.837.846-.833 2.198-.832 2.25V5H3c-.553 0-1 .447-1 1v3c0 .553.447 1 1 1h5c.553 0 1-.447 1-1V6c0-.553-.447-1-1-1zM3.998 5V3.993c0-.01.005-1 .543-1.543.483-.485 1.45-.487 1.933-.002.544.546.546 1.536.546 1.55V5H3.997z"/>
     </g>
 </svg>
index c6eba15..34cc190 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="settings">
-        <path id="gear" d="M3 4h3v2h-3zM12 4h9v2h-9zM8 3h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 0-1-.448-1-1v-2c0-.552.448-1 1-1zM3 11h9v2h-9zM18 11h3v2h-3zM14 10h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 0-1-.448-1-1v-2c0-.552.448-1 1-1zM3 18h6v2h-6zM15 18h6v2h-6zM11 17h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 0-1-.448-1-1v-2c0-.552.448-1 1-1z"/>
+        <path id="gear" d="M3 4h3v2H3zm9 0h9v2h-9zM8 3h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1H8c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1zm-5 8h9v2H3zm15 0h3v2h-3zm-4-1h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 0-1-.448-1-1v-2c0-.552.448-1 1-1zM3 18h6v2H3zm12 0h6v2h-6zm-4-1h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 0-1-.448-1-1v-2c0-.552.448-1 1-1z"/>
     </g>
 </svg>
index bcd665e..3799767 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="settings">
-        <path id="gear" d="M3 4h3v2h-3zM12 4h9v2h-9zM8 3h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 0-1-.448-1-1v-2c0-.552.448-1 1-1zM3 11h9v2h-9zM18 11h3v2h-3zM14 10h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 0-1-.448-1-1v-2c0-.552.448-1 1-1zM3 18h6v2h-6zM15 18h6v2h-6zM11 17h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 0-1-.448-1-1v-2c0-.552.448-1 1-1z"/>
+        <path id="gear" d="M3 4h3v2H3zm9 0h9v2h-9zM8 3h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1H8c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1zm-5 8h9v2H3zm15 0h3v2h-3zm-4-1h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 0-1-.448-1-1v-2c0-.552.448-1 1-1zM3 18h6v2H3zm12 0h6v2h-6zm-4-1h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 0-1-.448-1-1v-2c0-.552.448-1 1-1z"/>
     </g>
 </svg>
index 0d49504..03b34cf 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="M0 20h24v1h-24v-1zm6-8l-1-1-2 2-2-2-1 1 2 2-2 2 1 1 2-2 2 2 1-1-2-2zm15.6 3.7c-.9-.5-1.9-.5-2.7 0-1.5.9-3.1.4-3.1.4-.4-.2-.8-.4-1.1-.6 2.2-.6 4.4-1.8 6-3.9 1.1-1.2 2.5-3.9.4-6-.7-.7-1.6-1.1-2.7-1-1.4.1-2.8.9-3.9 2.1-.9 1.1-3.1 4.5-2.3 7.5 0 .1 0 .2.1.3-2.3.3-4.2.2-4.4.1v1.5c.7.1 2.7.2 5.1-.2.5.7 1.3 1.2 2.3 1.6.1 0 2.4.8 4.5-.6.5-.3.9-.1 1.1 0 .4.2.7.6.7 1h1.4c0-.8-.6-1.7-1.4-2.2zm-8-1.7c-.5-2.2 1.1-5.1 2-6.2.8-.9 1.8-1.5 2.8-1.6h.1c.6 0 1.1.2 1.5.6 1.6 1.6-.4 3.9-.5 4-1.5 2-3.7 3-5.8 3.5l-.1-.3z"/>
+    <path d="M0 20h24v1H0v-1zm6-8l-1-1-2 2-2-2-1 1 2 2-2 2 1 1 2-2 2 2 1-1-2-2zm15.6 3.7c-.9-.5-1.9-.5-2.7 0-1.5.9-3.1.4-3.1.4-.4-.2-.8-.4-1.1-.6 2.2-.6 4.4-1.8 6-3.9 1.1-1.2 2.5-3.9.4-6-.7-.7-1.6-1.1-2.7-1-1.4.1-2.8.9-3.9 2.1-.9 1.1-3.1 4.5-2.3 7.5 0 .1 0 .2.1.3-2.3.3-4.2.2-4.4.1v1.5c.7.1 2.7.2 5.1-.2.5.7 1.3 1.2 2.3 1.6.1 0 2.4.8 4.5-.6.5-.3.9-.1 1.1 0 .4.2.7.6.7 1H23c0-.8-.6-1.7-1.4-2.2zm-8-1.7c-.5-2.2 1.1-5.1 2-6.2.8-.9 1.8-1.5 2.8-1.6h.1c.6 0 1.1.2 1.5.6 1.6 1.6-.4 3.9-.5 4-1.5 2-3.7 3-5.8 3.5l-.1-.3z"/>
 </svg>
index 3d9fb23..665c4e2 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl.png differ
index 6c0ae5e..97b2465 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="M24 20h-24v1h24v-1zm-6-8l1-1 2 2 2-2 1 1-2 2 2 2-1 1-2-2-2 2-1-1 2-2zm-15.6 3.7c.9-.5 1.9-.5 2.7 0 1.5.9 3.1.4 3.1.4.4-.2.8-.4 1.1-.6-2.2-.6-4.4-1.8-6-3.9-1.1-1.2-2.5-3.9-.4-6 .7-.7 1.6-1.1 2.7-1 1.4.1 2.8.9 3.9 2.1.9 1.1 3.1 4.5 2.3 7.5 0 .1 0 .2-.1.3 2.3.3 4.2.2 4.4.1v1.5c-.7.1-2.7.2-5.1-.2-.5.7-1.3 1.2-2.3 1.6-.1 0-2.4.8-4.5-.6-.5-.3-.9-.1-1.1 0-.4.2-.7.6-.7 1h-1.4c0-.8.6-1.7 1.4-2.2zm8-1.7c.5-2.2-1.1-5.1-2-6.2-.8-.9-1.8-1.5-2.8-1.6h-.1c-.6 0-1.1.2-1.5.6-1.6 1.6.4 3.9.5 4 1.5 2 3.7 3 5.8 3.5l.1-.3z" id="path576"/>
+    <path d="M24 20H0v1h24v-1zm-6-8l1-1 2 2 2-2 1 1-2 2 2 2-1 1-2-2-2 2-1-1 2-2zM2.4 15.7c.9-.5 1.9-.5 2.7 0 1.5.9 3.1.4 3.1.4.4-.2.8-.4 1.1-.6-2.2-.6-4.4-1.8-6-3.9-1.1-1.2-2.5-3.9-.4-6 .7-.7 1.6-1.1 2.7-1 1.4.1 2.8.9 3.9 2.1.9 1.1 3.1 4.5 2.3 7.5 0 .1 0 .2-.1.3 2.3.3 4.2.2 4.4.1v1.5c-.7.1-2.7.2-5.1-.2-.5.7-1.3 1.2-2.3 1.6-.1 0-2.4.8-4.5-.6-.5-.3-.9-.1-1.1 0-.4.2-.7.6-.7 1H1c0-.8.6-1.7 1.4-2.2zm8-1.7c.5-2.2-1.1-5.1-2-6.2-.8-.9-1.8-1.5-2.8-1.6h-.1c-.6 0-1.1.2-1.5.6-1.6 1.6.4 3.9.5 4 1.5 2 3.7 3 5.8 3.5l.1-.3z" id="path576"/>
 </svg>
index e8b427b..82d16af 100644 (file)
@@ -1,7 +1,7 @@
 <?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 id="a" d="M12.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z"/>
-  <g id="down">
-    <path id="arrow" d="M22 3l-3.5 6L15 3z"/>
-  </g>
+    <path id="a" d="M12.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z"/>
+    <g id="down">
+        <path id="arrow" d="M22 3l-3.5 6L15 3z"/>
+    </g>
 </svg>
index e5e9519..7466f48 100644 (file)
@@ -1,7 +1,7 @@
 <?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 id="a" d="M12.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z"/>
-  <g id="down">
-    <path id="arrow" d="M9 3L5.5 9 2 3z"/>
-  </g>
+    <path id="a" d="M12.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z"/>
+    <g id="down">
+        <path id="arrow" d="M9 3L5.5 9 2 3z"/>
+    </g>
 </svg>
index 51ccb89..2f38ecc 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/specialCharacter.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/specialCharacter.png differ
index 4d60128..c2ffd48 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="special-character">
-        <path id="omega" d="M12 6.708c-.794 0-1.368.103-1.894.31-.525.207-.944.496-1.255.867-.311.366-.531.808-.66 1.327-.128.513-.192 1.08-.192 1.699 0 .513.058 1 .174 1.46.122.46.311.87.568 1.23.629.863 1.155 1.139 2.011 1.363l.247 3.035h-5v-3h.605l.531 1.354.394.053.605.044.751.035.456.009h.66l-.092-.894c-.629-.094-.811-.268-1.336-.522-.525-.26-.98-.59-1.365-.991-.379-.401-.675-.867-.889-1.398-.214-.537-.321-1.13-.321-1.779 0-.82.131-1.537.394-2.15.269-.619.656-1.133 1.163-1.54.507-.407 1.133-.711 1.878-.912.745-.206 1.6-.31 2.565-.31.959 0 1.811.103 2.556.31.751.201 1.38.504 1.887.912.507.407.892.92 1.154 1.54.269.614.403 1.33.403 2.15 0 .649-.107 1.242-.321 1.779-.214.531-.513.997-.898 1.398-.379.401-.831.732-1.356.991-.525.254-.707.428-1.336.522l-.092.894h.66l.447-.009.751-.035.605-.044.403-.053.531-1.354h.605v3h-5l.247-3.035c1.066-.11 1.337-.696 2.002-1.363.263-.36.452-.77.568-1.23.122-.46.183-.947.183-1.46 0-.619-.064-1.186-.192-1.699-.128-.519-.348-.962-.66-1.327-.311-.372-.73-.661-1.255-.867-.525-.206-1.1-.31-1.894-.31"/>
+        <path id="omega" d="M12 6.708c-.794 0-1.368.103-1.894.31-.525.207-.944.496-1.255.867-.31.366-.53.808-.66 1.327-.127.513-.19 1.08-.19 1.7 0 .512.057 1 .173 1.46.122.46.31.87.568 1.23.63.862 1.156 1.138 2.012 1.362L11 18H6v-3h.604l.53 1.353.395.053.604.044.75.035.457.01H10l-.09-.895c-.63-.094-.812-.268-1.337-.522-.525-.26-.98-.59-1.365-.99-.38-.402-.675-.868-.89-1.4-.213-.536-.32-1.13-.32-1.778 0-.82.13-1.537.394-2.15.27-.62.656-1.133 1.163-1.54.507-.407 1.133-.71 1.878-.912.745-.206 1.6-.31 2.565-.31.96 0 1.81.103 2.556.31.75.2 1.38.504 1.887.912.508.407.893.92 1.155 1.54.27.614.403 1.33.403 2.15 0 .65-.107 1.242-.32 1.78-.215.53-.514.996-.9 1.397-.378.4-.83.732-1.355.99-.525.255-.707.43-1.336.523l-.092.894h.66l.447-.01.75-.034.606-.044.403-.053.532-1.354h.605v3h-5l.247-3.036c1.066-.11 1.337-.696 2.002-1.363.263-.36.452-.77.568-1.23.122-.46.183-.946.183-1.46 0-.618-.064-1.185-.192-1.698-.128-.52-.348-.962-.66-1.327-.31-.372-.73-.66-1.255-.867-.525-.206-1.1-.31-1.894-.31"/>
     </g>
 </svg>
index f3fb8b3..6e5eacd 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M19 20h-17l3-3v-11h17v11c0 1.7-1.3 3-3 3z"/>
+        <path d="M19 20H2l3-3V6h17v11c0 1.7-1.3 3-3 3z"/>
     </g>
 </svg>
index fd9b7bd..139c34e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g586">
-        <path d="M5 20h17l-3-3v-11h-17v11c0 1.7 1.3 3 3 3z" id="path588"/>
+        <path d="M5 20h17l-3-3V6H2v11c0 1.7 1.3 3 3 3z" id="path588"/>
     </g>
 </svg>
index 333c1e8..054c0be 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M19 20h-17l3-3v-11h17v11c0 1.7-1.3 3-3 3z"/>
+        <path d="M19 20H2l3-3V6h17v11c0 1.7-1.3 3-3 3z"/>
     </g>
     <path fill="#fff" d="M13 9h1v7h-1zm-3 3h7v1h-7z"/>
 </svg>
index 4e6313f..c822ec5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g598">
-        <path d="M5 20h17l-3-3v-11h-17v11c0 1.7 1.3 3 3 3z" id="path600"/>
+        <path d="M5 20h17l-3-3V6H2v11c0 1.7 1.3 3 3 3z" id="path600"/>
     </g>
-    <path d="M11 9h-1v7h1zm3 3h-7v1h7z" id="path602" fill="#fff"/>
+    <path d="M11 9h-1v7h1zm3 3H7v1h7z" id="path602" fill="#fff"/>
 </svg>
index c4b4a2f..9c1c3f8 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M20 9v9l2 2h-14v-11h12zm-17-5h12v4h-8v7h-6l2-2v-9z"/>
+        <path d="M20 9v9l2 2H8V9h12zM3 4h12v4H7v7H1l2-2V4z"/>
     </g>
 </svg>
index c452fbb..49fc3d3 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g612">
-        <path d="M3 9v9l-2 2h14v-11h-12zm17-5h-12v4h8v7h6l-2-2v-9z" id="path614"/>
+        <path d="M3 9v9l-2 2h14V9H3zm17-5H8v4h8v7h6l-2-2V4z" id="path614"/>
     </g>
 </svg>
index f58e8ce..af06636 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 7.4l1.7 3.6 4 .5-2.7 2.8.5 3.9-3.5-1.7-3.6 1.7.6-3.9-2.8-2.8 3.9-.5 1.9-3.6m0-3.4l-2.8 5.6-6.2.9 4.5 4.4-1.1 6.1 5.6-3 5.5 3-1-6.2 4.5-4.4-6.3-.9-2.7-5.5z"/>
+    <path d="M12 7.4l1.7 3.6 4 .5-2.7 2.8.5 3.9-3.5-1.7-3.6 1.7.6-3.9-2.8-2.8 3.9-.5L12 7.4M12 4L9.2 9.6l-6.2.9 4.5 4.4L6.4 21l5.6-3 5.5 3-1-6.2 4.5-4.4-6.3-.9L12 4z"/>
 </svg>
index ea8c26c..54ba77a 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 7.4l1.7 3.6 4 .5-2.7 2.8.5 3.9-3.5-1.7-3.6 1.7.6-3.9-2.8-2.8 3.9-.5 1.9-3.6m0-3.4l-2.8 5.6-6.2.9 4.5 4.4-1.1 6.1 5.6-3 5.5 3-1-6.2 4.5-4.4-6.3-.9-2.7-5.5z"/>
+    <path d="M12 7.4l1.7 3.6 4 .5-2.7 2.8.5 3.9-3.5-1.7-3.6 1.7.6-3.9-2.8-2.8 3.9-.5L12 7.4M12 4L9.2 9.6l-6.2.9 4.5 4.4L6.4 21l5.6-3 5.5 3-1-6.2 4.5-4.4-6.3-.9L12 4z"/>
 </svg>
index 7bd0633..aa25e3d 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 5h6v6h-6z"/>
+    <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"/>
 </svg>
index 480189f..070d785 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="strikethrough-a">
-        <path id="strikethrough" d="M6 11h12v1h-12v-1z"/>
-        <path id="a" d="M12.666 6h-1.372l-4.48 12h1.705l1.494-4h3.999l1.508 4h1.666l-4.52-12zm-2.28 7l1.617-4.333 1.634 4.333h-3.251z"/>
+        <path id="strikethrough" d="M6 11h12v1H6v-1z"/>
+        <path id="a" d="M12.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z"/>
     </g>
 </svg>
index 8aafe3f..1bcb55b 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-s.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-s.png differ
index d57b652..6408d01 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="strikethrough-s">
-        <path id="strikethrough" d="M6 12h12v1h-12v-1z"/>
-        <path id="s" d="M12.094 6c-1.133 0-2.076.287-2.75.9-.67.613-1 1.49-1 2.52 0 .889.221 1.602.719 2.13.498.528 1.279.91 2.312 1.14l.812.182v-.03c.656.147 1.128.375 1.375.63.252.256.375.607.375 1.11 0 .573-.172.97-.531 1.26-.358.291-.894.45-1.625.45-.477 0-.969-.074-1.469-.24-.502-.166-1.031-.417-1.562-.75l-.375-.238v2.158l.156.062c.58.237 1.143.417 1.688.54.549.121 1.07.18 1.562.18 1.286 0 2.297-.293 3-.9.709-.605 1.062-1.486 1.062-2.608 0-.943-.256-1.726-.781-2.312-.521-.592-1.305-1-2.344-1.229l-.812-.181c-.716-.148-1.204-.352-1.406-.539-.205-.203-.312-.485-.312-.935 0-.533.162-.899.5-1.17.342-.271.836-.42 1.531-.42.395 0 .818.052 1.25.181.433.127.908.333 1.406.6l.375.18v-2.041s-1.188-.383-1.688-.479c-.499-.098-.984-.151-1.468-.151z"/>
+        <path id="strikethrough" d="M6 12h12v1H6v-1z"/>
+        <path id="s" d="M12.094 6c-1.133 0-2.076.287-2.75.9-.67.613-1 1.49-1 2.52 0 .89.22 1.602.72 2.13.497.528 1.278.91 2.31 1.14l.813.182v-.03c.656.147 1.128.375 1.375.63.252.256.375.607.375 1.11 0 .573-.172.97-.53 1.26-.36.29-.895.45-1.626.45-.476 0-.968-.074-1.468-.24-.502-.166-1.03-.417-1.562-.75l-.375-.238v2.158l.156.062c.58.237 1.144.417 1.69.54.548.12 1.07.18 1.56.18 1.287 0 2.298-.293 3-.9.71-.605 1.063-1.486 1.063-2.608 0-.943-.256-1.726-.78-2.312-.522-.592-1.306-1-2.345-1.23l-.812-.18c-.716-.148-1.204-.352-1.406-.54-.205-.202-.312-.484-.312-.934 0-.533.162-.9.5-1.17.342-.27.836-.42 1.53-.42.396 0 .82.052 1.25.18.434.128.91.334 1.407.6l.375.18V6.63s-1.188-.383-1.688-.48c-.5-.097-.984-.15-1.468-.15z"/>
     </g>
 </svg>
index a0065cb..5b1c1fd 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-y.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-y.png differ
index 8409dc1..2fdbc87 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="strikethrough-y">
-        <path id="strikethrough" d="M6 11h12v1h-12v-1z"/>
-        <path id="a" d="M7 6h1.724l3.288 4.935 3.264-4.935h1.724l-4.194 6.285v5.715h-1.612v-5.715l-4.194-6.285"/>
+        <path id="strikethrough" d="M6 11h12v1H6v-1z"/>
+        <path id="a" d="M7 6h1.724l3.288 4.935L15.276 6H17l-4.194 6.285V18h-1.612v-5.715L7 6"/>
     </g>
 </svg>
index 4fbd4ec..97aacad 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="M4 9h12v2h-12v-2zm0 3h8v2h-8v-2zm0-7h16v3h-16v-3zm16 14h-16v-3h16v3z"/>
+    <path d="M4 9h12v2H4V9zm0 3h8v2H4v-2zm0-7h16v3H4V5zm16 14H4v-3h16v3z"/>
 </svg>
index acacc36..2112bb2 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="M4 9h12v2h-12v-2zm0 3h8v2h-8v-2zm0-7h16v3h-16v-3zm16 14h-16v-3h16v3z"/>
+    <path d="M4 9h12v2H4V9zm0 3h8v2H4v-2zm0-7h16v3H4V5zm16 14H4v-3h16v3z"/>
 </svg>
index b18ddc4..8187dba 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="M20 9h-12v2h12v-2zm0 3h-8v2h8v-2zm0-7h-16v3h16v-3zm-16 14h16v-3h-16v3z" id="path624"/>
+    <path d="M20 9H8v2h12V9zm0 3h-8v2h8v-2zm0-7H4v3h16V5zM4 19h16v-3H4v3z" id="path624"/>
 </svg>
index c38a283..f34bec2 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="M20 9h-12v2h12v-2zm0 3h-8v2h8v-2zm0-7h-16v3h16v-3zm-16 14h16v-3h-16v3z" id="path624"/>
+    <path d="M20 9H8v2h12V9zm0 3h-8v2h8v-2zm0-7H4v3h16V5zM4 19h16v-3H4v3z" id="path624"/>
 </svg>
index 47eff5d..9b7bba9 100644 (file)
@@ -1,12 +1,12 @@
 <?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>
     <g>
-        <path d="M20 19h-16v-2h16v2z"/>
+        <path d="M20 19H4v-2h16v2z"/>
     </g>
     <g>
-        <path d="M20 15h-16v-2h16v2z"/>
+        <path d="M20 15H4v-2h16v2z"/>
     </g>
     <g>
-        <path d="M20 11h-16v-2h16v2z"/>
+        <path d="M20 11H4V9h16v2z"/>
     </g>
 </svg>
index 47e70d7..ea40dde 100644 (file)
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M20 19h-16v-2h16v2z"/>
+        <path d="M20 19H4v-2h16v2z"/>
     </g>
     <g>
-        <path d="M20 15h-16v-2h16v2z"/>
+        <path d="M20 15H4v-2h16v2z"/>
     </g>
     <g>
-        <path d="M20 11h-16v-2h16v2z"/>
+        <path d="M20 11H4V9h16v2z"/>
     </g>
 </svg>
index d694cb1..a59f0d9 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g>
-        <path d="M20 11h-16v-2h16v2zm-16 1h8v2h-8v-2z"/>
+        <path d="M20 11H4V9h16v2zM4 12h8v2H4v-2z"/>
     </g>
 </svg>
index 7f8822b..a924c9c 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M20 11h-16v-2h16v2zm-16 1h8v2h-8v-2z"/>
+        <path d="M20 11H4V9h16v2zM4 12h8v2H4v-2z"/>
     </g>
 </svg>
index 86a52ee..391597c 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="g654">
-        <path d="M4 11h16v-2h-16v2zm16 1h-8v2h8v-2z" id="path656"/>
+        <path d="M4 11h16V9H4v2zm16 1h-8v2h8v-2z" id="path656"/>
     </g>
 </svg>
index fcb10ba..1da4bd9 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g654">
-        <path d="M4 11h16v-2h-16v2zm16 1h-8v2h8v-2z" id="path656"/>
+        <path d="M4 11h16V9H4v2zm16 1h-8v2h8v-2z" id="path656"/>
     </g>
 </svg>
index d2e9786..8710bd3 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g>
-        <path d="M17 13h-13v-3h13v3zm-5 6h-8v-3h8v3zm-8-12v-3h16v3h-16z"/>
+        <path d="M17 13H4v-3h13v3zm-5 6H4v-3h8v3zM4 7V4h16v3H4z"/>
     </g>
 </svg>
index be30320..b16a94b 100644 (file)
@@ -1,6 +1,6 @@
 <?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: #347BFF }</style>
     <g>
-        <path d="M17 13h-13v-3h13v3zm-5 6h-8v-3h8v3zm-8-12v-3h16v3h-16z"/>
+        <path d="M17 13H4v-3h13v3zm-5 6H4v-3h8v3zM4 7V4h16v3H4z"/>
     </g>
 </svg>
index 76c80d2..21ed0ea 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M17 13h-13v-3h13v3zm-5 6h-8v-3h8v3zm-8-12v-3h16v3h-16z"/>
+        <path d="M17 13H4v-3h13v3zm-5 6H4v-3h8v3zM4 7V4h16v3H4z"/>
     </g>
 </svg>
index 6266319..9dc9a54 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="g666">
-        <path d="M7 13h13v-3h-13v3zm5 6h8v-3h-8v3zm8-12v-3h-16v3h16z" id="path668"/>
+        <path d="M7 13h13v-3H7v3zm5 6h8v-3h-8v3zm8-12V4H4v3h16z" id="path668"/>
     </g>
 </svg>
index c5847b1..7485ba0 100644 (file)
@@ -1,6 +1,6 @@
 <?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: #347BFF }</style>
     <g id="g666">
-        <path d="M7 13h13v-3h-13v3zm5 6h8v-3h-8v3zm8-12v-3h-16v3h16z" id="path668"/>
+        <path d="M7 13h13v-3H7v3zm5 6h8v-3h-8v3zm8-12V4H4v3h16z" id="path668"/>
     </g>
 </svg>
index 308c2e6..14b2f8c 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g666">
-        <path d="M7 13h13v-3h-13v3zm5 6h8v-3h-8v3zm8-12v-3h-16v3h16z" id="path668"/>
+        <path d="M7 13h13v-3H7v3zm5 6h8v-3h-8v3zm8-12V4H4v3h16z" id="path668"/>
     </g>
 </svg>
index b7507da..fbb0c3c 100644 (file)
@@ -1,5 +1,5 @@
 <?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 id="x" d="M14 9l-2.354 3.406L14 16h-1.2L11 13.25 9.2 16H8l2.403-3.662L8 9h1.188l1.857 2.494L12.797 9H14z"/>
-       <path d="M18 13l-1 1v3l1 1h-1l-.527-.46L16 18h-1l1-1v-3l-1-1h1l.485.497L17 13z"/>
+    <path id="x" d="M14 9l-2.354 3.406L14 16h-1.2L11 13.25 9.2 16H8l2.403-3.662L8 9h1.188l1.857 2.494L12.797 9H14z"/>
+    <path d="M18 13l-1 1v3l1 1h-1l-.527-.46L16 18h-1l1-1v-3l-1-1h1l.485.497L17 13z"/>
 </svg>
index 9fe5325..91a71ec 100644 (file)
@@ -1,5 +1,5 @@
 <?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 id="x" d="M12 9l2.354 3.406L12 16h1.2l1.8-2.75L16.8 16H18l-2.403-3.662L18 9h-1.188l-1.857 2.494L13.203 9H12z"/>
-       <path d="M8 13l1 1v3l-1 1h1l.527-.46L10 18h1l-1-1v-3l1-1h-1l-.485.497L9 13z"/>
+    <path id="x" d="M12 9l2.354 3.406L12 16h1.2l1.8-2.75L16.8 16H18l-2.403-3.662L18 9h-1.188l-1.857 2.494L13.203 9H12z"/>
+    <path d="M8 13l1 1v3l-1 1h1l.527-.46L10 18h1l-1-1v-3l1-1h-1l-.485.497L9 13z"/>
 </svg>
index 1f829c1..459f4c9 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr.png differ
index f1b7caf..4bde183 100644 (file)
@@ -1,5 +1,5 @@
 <?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.1 5.1c0 .3-.1.6-.3.9l-1.4 1.4-.9-.8 2.2-2.2c.3.1.4.4.4.7zm-.5 5.3h3.2c0 .3-.1.6-.4.9s-.5.4-.8.4h-2v-1.3zm-6.2-5v-3.2c.3 0 .6.1.9.4s.4.5.4.8v2h-1.3zm6.4 11.7c-.3 0-.6-.1-.8-.3l-1.4-1.4.8-.8 2.2 2.2c-.2.2-.5.3-.8.3zm-11.6-12.2c.3 0 .6.1.8.3l1.4 1.4-.8.9-2.2-2.3c.2-.2.5-.3.8-.3zm5.2 11.7h1.2v3.2c-.3 0-.6-.1-.9-.4s-.4-.5-.4-.8l.1-2zm-7-6.2h2v1.2h-3.2c0-.3.1-.6.4-.9s.5-.3.8-.3zm1.8 5.6l1.4-1.4.8.8-2.2 2.2c-.2-.2-.3-.5-.3-.8s.1-.6.3-.8z"/>
+    <path d="M18.1 5.1c0 .3-.1.6-.3.9l-1.4 1.4-.9-.8 2.2-2.2c.3.1.4.4.4.7zm-.5 5.3h3.2c0 .3-.1.6-.4.9s-.5.4-.8.4h-2v-1.3zm-6.2-5V2.2c.3 0 .6.1.9.4s.4.5.4.8v2h-1.3zm6.4 11.7c-.3 0-.6-.1-.8-.3l-1.4-1.4.8-.8 2.2 2.2c-.2.2-.5.3-.8.3zM6.2 4.9c.3 0 .6.1.8.3l1.4 1.4-.8.9-2.2-2.3c.2-.2.5-.3.8-.3zm5.2 11.7h1.2v3.2c-.3 0-.6-.1-.9-.4s-.4-.5-.4-.8l.1-2zm-7-6.2h2v1.2H3.2c0-.3.1-.6.4-.9s.5-.3.8-.3zM6.2 16l1.4-1.4.8.8-2.2 2.2c-.2-.2-.3-.5-.3-.8s.1-.6.3-.8z"/>
     <circle cx="12" cy="11" r="4"/>
 </svg>
index 1e6f362..8a0fc83 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl.png differ
index a625fb9..2570610 100644 (file)
@@ -1,5 +1,5 @@
 <?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="M5.9 5.1c0 .3.1.6.3.9l1.4 1.4.9-.8-2.2-2.2c-.3.1-.4.4-.4.7zm.5 5.3h-3.2c0 .3.1.6.4.9.3.3.5.4.8.4h2v-1.3zm6.2-5v-3.2c-.3 0-.6.1-.9.4-.3.3-.4.5-.4.8v2h1.3zm-6.4 11.7c.3 0 .6-.1.8-.3l1.4-1.4-.8-.8-2.2 2.2c.2.2.5.3.8.3zm11.6-12.2c-.3 0-.6.1-.8.3l-1.4 1.4.8.9 2.2-2.3c-.2-.2-.5-.3-.8-.3zm-5.2 11.7h-1.2v3.2c.3 0 .6-.1.9-.4.3-.3.4-.5.4-.8l-.1-2zm7-6.2h-2v1.2h3.2c0-.3-.1-.6-.4-.9-.3-.3-.5-.3-.8-.3zm-1.8 5.6l-1.4-1.4-.8.8 2.2 2.2c.2-.2.3-.5.3-.8 0-.3-.1-.6-.3-.8z" id="path678"/>
+    <path d="M5.9 5.1c0 .3.1.6.3.9l1.4 1.4.9-.8-2.2-2.2c-.3.1-.4.4-.4.7zm.5 5.3H3.2c0 .3.1.6.4.9.3.3.5.4.8.4h2v-1.3zm6.2-5V2.2c-.3 0-.6.1-.9.4-.3.3-.4.5-.4.8v2h1.3zM6.2 17.1c.3 0 .6-.1.8-.3l1.4-1.4-.8-.8-2.2 2.2c.2.2.5.3.8.3zM17.8 4.9c-.3 0-.6.1-.8.3l-1.4 1.4.8.9 2.2-2.3c-.2-.2-.5-.3-.8-.3zm-5.2 11.7h-1.2v3.2c.3 0 .6-.1.9-.4.3-.3.4-.5.4-.8l-.1-2zm7-6.2h-2v1.2h3.2c0-.3-.1-.6-.4-.9-.3-.3-.5-.3-.8-.3zM17.8 16l-1.4-1.4-.8.8 2.2 2.2c.2-.2.3-.5.3-.8 0-.3-.1-.6-.3-.8z" id="path678"/>
     <circle cx="12" cy="11" r="4" id="circle680" transform="matrix(-1 0 0 1 24 0)"/>
 </svg>
index 39f30a7..45abfda 100644 (file)
@@ -1,5 +1,5 @@
 <?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 id="x" d="M14 9l-2.354 3.406L14 16h-1.2L11 13.25 9.2 16H8l2.403-3.662L8 9h1.188l1.857 2.494L12.797 9H14z"/>
-       <path d="M18 7l-1 1v3l1 1h-1l-.527-.46L16 12h-1l1-1V8l-1-1h1l.485.497L17 7z"/>
+    <path id="x" d="M14 9l-2.354 3.406L14 16h-1.2L11 13.25 9.2 16H8l2.403-3.662L8 9h1.188l1.857 2.494L12.797 9H14z"/>
+    <path d="M18 7l-1 1v3l1 1h-1l-.527-.46L16 12h-1l1-1V8l-1-1h1l.485.497L17 7z"/>
 </svg>
index eabab21..33b5814 100644 (file)
@@ -1,5 +1,5 @@
 <?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 id="x" d="M12 9l2.354 3.406L12 16h1.2l1.8-2.75L16.8 16H18l-2.403-3.662L18 9h-1.188l-1.857 2.494L13.203 9H12z"/>
-       <path d="M8 7l1 1v3l-1 1h1l.527-.46L10 12h1l-1-1V8l1-1h-1l-.485.497L9 7z"/>
+    <path id="x" d="M12 9l2.354 3.406L12 16h1.2l1.8-2.75L16.8 16H18l-2.403-3.662L18 9h-1.188l-1.857 2.494L13.203 9H12z"/>
+    <path d="M8 7l1 1v3l-1 1h1l.527-.46L10 12h1l-1-1V8l1-1h-1l-.485.497L9 7z"/>
 </svg>
index 15bb06a..6b7edc6 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="table-caption">
-      <path id="caption" d="M6 6h12v3H6z"/>
-      <path id="table" d="M4 10v7h16v-7H4zm1 1h4v2H5v-2zm5 0h4v2h-4v-2zm5 0h4v2h-4v-2zM5 14h4v2H5v-2zm5 0h4v2h-4v-2zm5 0h4v2h-4v-2z"/>
+        <path id="caption" d="M6 6h12v3H6z"/>
+        <path id="table" d="M4 10v7h16v-7H4zm1 1h4v2H5v-2zm5 0h4v2h-4v-2zm5 0h4v2h-4v-2zM5 14h4v2H5v-2zm5 0h4v2h-4v-2zm5 0h4v2h-4v-2z"/>
     </g>
 </svg>
index 798ee4a..a67ed20 100644 (file)
@@ -1,11 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="table-insert-column-ltr">
-      <path
-         d="m 13,9 -2,0 0,2 -2,0 0,2 2,0 0,2 2,0 0,-2 2,0 0,-2 -2,0 z"
-         id="plus" />
-      <path
-         d="m 5,5 2,0 0,14 -2,0 z"
-         id="column" />
+        <path d="M13 9h-2v2H9v2h2v2h2v-2h2v-2h-2z" id="plus"/>
+        <path d="M5 5h2v14H5z" id="column"/>
     </g>
 </svg>
index dfa33a0..dee782e 100644 (file)
@@ -1,11 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="table-insert-column-rtl">
-      <path
-         d="m 13,9 -2,0 0,2 -2,0 0,2 2,0 0,2 2,0 0,-2 2,0 0,-2 -2,0 z"
-         id="plus" />
-      <path
-         d="m 17,5 2,0 0,14 -2,0 z"
-         id="column" />
+        <path d="M13 9h-2v2H9v2h2v2h2v-2h2v-2h-2z" id="plus"/>
+        <path d="M17 5h2v14h-2z" id="column"/>
     </g>
 </svg>
index 91d0664..ad9d86d 100644 (file)
@@ -1,11 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="table-insert-row-after">
-      <path
-         d="m 13,9 -2,0 0,2 -2,0 0,2 2,0 0,2 2,0 0,-2 2,0 0,-2 -2,0 z"
-         id="plus" />
-      <path
-         d="m 5,17 14,0 0,2 -14,0 z"
-         id="row" />
+        <path d="M13 9h-2v2H9v2h2v2h2v-2h2v-2h-2z" id="plus"/>
+        <path d="M5 17h14v2H5z" id="row"/>
     </g>
 </svg>
index 4b71f2a..e9dfe04 100644 (file)
@@ -1,11 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="table-insert-row-before">
-      <path
-         d="m 13,9 -2,0 0,2 -2,0 0,2 2,0 0,2 2,0 0,-2 2,0 0,-2 -2,0 z"
-         id="plus" />
-      <path
-         d="m 5,5 14,0 0,2 -14,0 z"
-         id="row" />
+        <path d="M13 9h-2v2H9v2h2v2h2v-2h2v-2h-2z" id="plus"/>
+        <path d="M5 5h14v2H5z" id="row"/>
     </g>
 </svg>
index 6a8b77d..3ffb9e5 100644 (file)
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24">
-  <g id="table-merge-cells">
-    <g id="merge-cell-left">
-      <path id="cell-border" d="m 4,7 0,9 7,0 0,-3 -1,0.834 L 10,15 5,15 5,8 10,8 10,9.167 11,10 11,7 z" />
-      <path id="arrow" d="m 8,9 0,2 -2,0 0,1 2,0 0,2 3,-2.5 z" />
+    <g id="table-merge-cells">
+        <g id="merge-cell-left">
+            <path id="cell-border" d="M4 7v9h7v-3l-1 .834V15H5V8h5v1.167L11 10V7z"/>
+            <path id="arrow" d="M8 9v2H6v1h2v2l3-2.5z"/>
+        </g>
+        <use id="merge-cell-right" xlink:href="#merge-cell-left" transform="matrix(-1 0 0 1 24 0)"/>
     </g>
-    <use id="merge-cell-right" xlink:href="#merge-cell-left" transform="matrix(-1,0,0,1,24,0)" />
-  </g>
 </svg>
index 1ba8c44..3c901f7 100644 (file)
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-
     <g id="table-insert">
-        <path id="table" d="M4 5v13h16v-13zm2 2h5v4h-5zm7 0h5v4h-5zm-7 5h5v4h-5zm7 0h5v4h-5z"/>
+        <path id="table" d="M4 5v13h16V5zm2 2h5v4H6zm7 0h5v4h-5zm-7 5h5v4H6zm7 0h5v4h-5z"/>
     </g>
 </svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-constructive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-constructive.png
new file mode 100644 (file)
index 0000000..6067a84
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-constructive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-constructive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-constructive.svg
new file mode 100644 (file)
index 0000000..d53e332
--- /dev/null
@@ -0,0 +1,6 @@
+<?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: #00AF89 }</style>
+    <g id="tag">
+        <path d="M18.748 11.717c.39.39.39 1.025 0 1.414l-4.95 4.95c-.388.39-1.024.39-1.413 0l-6.01-6.01c-.39-.388-.707-1.156-.707-1.706V6c0-.55.45-1 1-1h4.363c.55 0 1.32.318 1.708.707l6.01 6.01zM8.104 7.457c-.58.575-.578 1.513 0 2.092.577.576 1.515.576 2.094 0 .576-.578.576-1.517 0-2.095-.58-.576-1.518-.577-2.094 0z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-destructive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-destructive.png
new file mode 100644 (file)
index 0000000..6c6099e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-destructive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-destructive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-destructive.svg
new file mode 100644 (file)
index 0000000..710a19a
--- /dev/null
@@ -0,0 +1,6 @@
+<?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: #D11D13 }</style>
+    <g id="tag">
+        <path d="M18.748 11.717c.39.39.39 1.025 0 1.414l-4.95 4.95c-.388.39-1.024.39-1.413 0l-6.01-6.01c-.39-.388-.707-1.156-.707-1.706V6c0-.55.45-1 1-1h4.363c.55 0 1.32.318 1.708.707l6.01 6.01zM8.104 7.457c-.58.575-.578 1.513 0 2.092.577.576 1.515.576 2.094 0 .576-.578.576-1.517 0-2.095-.58-.576-1.518-.577-2.094 0z"/>
+    </g>
+</svg>
index c233429..80c5e8c 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-invert.png differ
index e573429..d42ac07 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="tag">
-        <path d="M18.748 11.717c.389.389.389 1.025 0 1.414l-4.949 4.95c-.389.389-1.025.389-1.414 0l-6.01-6.01c-.389-.389-.707-1.157-.707-1.707l-.001-4.364c0-.55.45-1 1-1h4.364c.55 0 1.318.318 1.707.707l6.01 6.01zm-10.644-4.261c-.579.576-.578 1.514-.001 2.093.578.577 1.516.577 2.095.001.576-.578.576-1.517 0-2.095-.581-.576-1.518-.577-2.094.001z"/>
+        <path d="M18.748 11.717c.39.39.39 1.025 0 1.414l-4.95 4.95c-.388.39-1.024.39-1.413 0l-6.01-6.01c-.39-.388-.707-1.156-.707-1.706V6c0-.55.45-1 1-1h4.363c.55 0 1.32.318 1.708.707l6.01 6.01zM8.104 7.457c-.58.575-.578 1.513 0 2.092.577.576 1.515.576 2.094 0 .576-.578.576-1.517 0-2.095-.58-.576-1.518-.577-2.094 0z"/>
     </g>
 </svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-progressive.png
new file mode 100644 (file)
index 0000000..7b4e2f9
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-progressive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-progressive.svg
new file mode 100644 (file)
index 0000000..49dde93
--- /dev/null
@@ -0,0 +1,6 @@
+<?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: #347BFF }</style>
+    <g id="tag">
+        <path d="M18.748 11.717c.39.39.39 1.025 0 1.414l-4.95 4.95c-.388.39-1.024.39-1.413 0l-6.01-6.01c-.39-.388-.707-1.156-.707-1.706V6c0-.55.45-1 1-1h4.363c.55 0 1.32.318 1.708.707l6.01 6.01zM8.104 7.457c-.58.575-.578 1.513 0 2.092.577.576 1.515.576 2.094 0 .576-.578.576-1.517 0-2.095-.58-.576-1.518-.577-2.094 0z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-warning.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-warning.png
new file mode 100644 (file)
index 0000000..844cc18
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-warning.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-warning.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-warning.svg
new file mode 100644 (file)
index 0000000..3fe96f5
--- /dev/null
@@ -0,0 +1,6 @@
+<?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: #FF5D00 }</style>
+    <g id="tag">
+        <path d="M18.748 11.717c.39.39.39 1.025 0 1.414l-4.95 4.95c-.388.39-1.024.39-1.413 0l-6.01-6.01c-.39-.388-.707-1.156-.707-1.706V6c0-.55.45-1 1-1h4.363c.55 0 1.32.318 1.708.707l6.01 6.01zM8.104 7.457c-.58.575-.578 1.513 0 2.092.577.576 1.515.576 2.094 0 .576-.578.576-1.517 0-2.095-.58-.576-1.518-.577-2.094 0z"/>
+    </g>
+</svg>
index 8e100fc..15de70b 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/tag.png differ
index 534824c..8e517bf 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="tag">
-        <path d="M18.748 11.717c.389.389.389 1.025 0 1.414l-4.949 4.95c-.389.389-1.025.389-1.414 0l-6.01-6.01c-.389-.389-.707-1.157-.707-1.707l-.001-4.364c0-.55.45-1 1-1h4.364c.55 0 1.318.318 1.707.707l6.01 6.01zm-10.644-4.261c-.579.576-.578 1.514-.001 2.093.578.577 1.516.577 2.095.001.576-.578.576-1.517 0-2.095-.581-.576-1.518-.577-2.094.001z"/>
+        <path d="M18.748 11.717c.39.39.39 1.025 0 1.414l-4.95 4.95c-.388.39-1.024.39-1.413 0l-6.01-6.01c-.39-.388-.707-1.156-.707-1.706V6c0-.55.45-1 1-1h4.363c.55 0 1.32.318 1.708.707l6.01 6.01zM8.104 7.457c-.58.575-.578 1.513 0 2.092.577.576 1.515.576 2.094 0 .576-.578.576-1.517 0-2.095-.58-.576-1.518-.577-2.094 0z"/>
     </g>
 </svg>
index 6b594b2..13b1fc7 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M24 6h-4v-4h-2v4h-4v2h4v4h2v-4h4z"/>
+        <path d="M24 6h-4V2h-2v4h-4v2h4v4h2V8h4z"/>
     </g>
-    <path d="M19 13v7h-16c-1.1 0-2-.9-2-2v-11h12v-1h-13v12c0 1.7 1.3 3 3 3h17v-8h-1z"/>
+    <path d="M19 13v7H3c-1.1 0-2-.9-2-2V7h12V6H0v12c0 1.7 1.3 3 3 3h17v-8h-1z"/>
 </svg>
index 36b25a3..d44c3a4 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g690">
-        <path d="M0 6h4v-4h2v4h4v2h-4v4h-2v-4h-4z" id="path692"/>
+        <path d="M0 6h4V2h2v4h4v2H6v4H4V8H0z" id="path692"/>
     </g>
-    <path d="M5 13v7h16c1.1 0 2-.9 2-2v-11h-12v-1h13v12c0 1.7-1.3 3-3 3h-17v-8h1z" id="path694"/>
+    <path d="M5 13v7h16c1.1 0 2-.9 2-2V7H11V6h13v12c0 1.7-1.3 3-3 3H4v-8h1z" id="path694"/>
 </svg>
index 62526a0..7dbff91 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="text-dir-ltr">
-        <path d="M7 7h-2v-1h2l.469.5.531-.5h2v1h-2v10h2v1h-2l-.5-.531-.5.531h-2v-1h2zM13.976 16v-2h-2.976v-4h2.976v-1.956l6.024 3.978z"/>
+        <path d="M7 7H5V6h2l.47.5L8 6h2v1H8v10h2v1H8l-.5-.53L7 18H5v-1h2zm6.976 9v-2H11v-4h2.976V8.044L20 12.022z"/>
     </g>
 </svg>
index 913bbfd..76933a6 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="text-dir-rtl">
-        <path d="M17 17h2v1h-2l-.469-.5-.531.5h-2v-1h2v-10h-2v-1h2l.5.531.5-.531h2v1h-2zM10.024 8v2h2.976v4h-2.976v1.956l-6.024-3.978z"/>
+        <path d="M17 17h2v1h-2l-.47-.5-.53.5h-2v-1h2V7h-2V6h2l.5.53L17 6h2v1h-2zm-6.976-9v2H13v4h-2.976v1.956L4 11.978z"/>
     </g>
 </svg>
index 4484496..a2f48be 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/text-style.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/text-style.png differ
index 0198c35..d9ff340 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="text-style">
-        <path id="a" d="M15.296 18h2.789l-1.14-12h-2.789l-8.156 12h2.789l2.039-3h4.183l.285 3zm-3.109-5l2.311-3.4.323 3.4h-2.634z"/>
-        <path id="underline" d="M6 19h12v1h-12v-1z"/>
+        <path id="a" d="M15.296 18h2.79l-1.14-12h-2.79L6 18h2.79l2.038-3h4.183l.286 3zm-3.11-5L14.5 9.6l.323 3.4h-2.633z"/>
+        <path id="underline" d="M6 19h12v1H6v-1z"/>
     </g>
 </svg>
index 7740e43..8954a21 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.1 13.1c-1.8-2.1-2.7-4.3-3-5.1h4.7l.7-2h-5.5v-3h-2v3h-5v2h5c-.2.9-1.3 4.8-5.1 7.6l1.2 1.6c2.7-2 4.3-4.5 5.1-6.4.7 1.3 1.7 3 3.2 4.5l.7-2.2zm1.4 6.9l1.3-4h5.3l1.3 4h2.2l-4.6-14h-3l-4.7 14h2.2zm4-12l2 6h-4l2-6z"/>
+    <path d="M11.1 13.1C9.3 11 8.4 8.8 8.1 8h4.7l.7-2H8V3H6v3H1v2h5c-.2.9-1.3 4.8-5.1 7.6l1.2 1.6c2.7-2 4.3-4.5 5.1-6.4.7 1.3 1.7 3 3.2 4.5l.7-2.2zm1.4 6.9l1.3-4h5.3l1.3 4h2.2L18 6h-3l-4.7 14h2.2zm4-12l2 6h-4l2-6z"/>
 </svg>
index 17f543c..38066d6 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl.png differ
index c78e622..44ba971 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.4 13.1c1.8-2.1 2.7-4.3 3-5.1h-4.7l-.7-2h5.5v-3h2v3h5v2h-5c.2.9 1.3 4.8 5.1 7.6l-1.2 1.6c-2.7-2-4.3-4.5-5.1-6.4-.7 1.3-1.7 3-3.2 4.5l-.7-2.2zm-1.4 6.9l-1.3-4h-5.3l-1.3 4h-2.2l4.6-14h3l4.7 14h-2.2zm-4-12l-2 6h4l-2-6z" id="path704"/>
+    <path d="M12.4 13.1c1.8-2.1 2.7-4.3 3-5.1h-4.7L10 6h5.5V3h2v3h5v2h-5c.2.9 1.3 4.8 5.1 7.6l-1.2 1.6c-2.7-2-4.3-4.5-5.1-6.4-.7 1.3-1.7 3-3.2 4.5l-.7-2.2zM11 20l-1.3-4H4.4l-1.3 4H.9L5.5 6h3l4.7 14H11zM7 8l-2 6h4L7 8z" id="path704"/>
 </svg>
index baa31f6..65ba012 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="M6 8c0-1.1.9-2 2-2h2l1-1h2l1 1h2c1.1 0 2 .9 2 2h-12zm1 1h10l-1 11h-8z"/>
+    <path d="M6 8c0-1.1.9-2 2-2h2l1-1h2l1 1h2c1.1 0 2 .9 2 2H6zm1 1h10l-1 11H8z"/>
 </svg>
index f591431..76502dc 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="M6 8c0-1.1.9-2 2-2h2l1-1h2l1 1h2c1.1 0 2 .9 2 2h-12zm1 1h10l-1 11h-8z"/>
+    <path d="M6 8c0-1.1.9-2 2-2h2l1-1h2l1 1h2c1.1 0 2 .9 2 2H6zm1 1h10l-1 11H8z"/>
 </svg>
index 20cd299..8717c94 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g>
-        <path d="M20.5 20.5l-15.5-15.5-1 1 3 3 1 11h8l.2-1.8 3.3 3.3zm-3.5-11.5h-6l5.5 5.5zm1-1c0-1.1-.9-2-2-2h-2l-1-1h-2l-1 1h-2l2 2h8z"/>
+        <path d="M20.5 20.5L5 5 4 6l3 3 1 11h8l.2-1.8 3.3 3.3zM17 9h-6l5.5 5.5zm1-1c0-1.1-.9-2-2-2h-2l-1-1h-2l-1 1H8l2 2h8z"/>
     </g>
 </svg>
index 0731f05..071bd32 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M20.5 20.5l-15.5-15.5-1 1 3 3 1 11h8l.2-1.8 3.3 3.3zm-3.5-11.5h-6l5.5 5.5zm1-1c0-1.1-.9-2-2-2h-2l-1-1h-2l-1 1h-2l2 2h8z"/>
+        <path d="M20.5 20.5L5 5 4 6l3 3 1 11h8l.2-1.8 3.3 3.3zM17 9h-6l5.5 5.5zm1-1c0-1.1-.9-2-2-2h-2l-1-1h-2l-1 1H8l2 2h8z"/>
     </g>
 </svg>
index aebedec..af43db7 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
     <g id="g714">
-        <path d="M4 20.5l15.5-15.5 1 1-3 3-1 11h-8l-.2-1.8-3.3 3.3zm3.5-11.5h6l-5.5 5.5zm-1-1c0-1.1.9-2 2-2h2l1-1h2l1 1h2l-2 2h-8z" id="path716"/>
+        <path d="M4 20.5L19.5 5l1 1-3 3-1 11h-8l-.2-1.8L5 21.5zM7.5 9h6L8 14.5zm-1-1c0-1.1.9-2 2-2h2l1-1h2l1 1h2l-2 2h-8z" id="path716"/>
     </g>
 </svg>
index 2a92cbe..69c17b4 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g714">
-        <path d="M4 20.5l15.5-15.5 1 1-3 3-1 11h-8l-.2-1.8-3.3 3.3zm3.5-11.5h6l-5.5 5.5zm-1-1c0-1.1.9-2 2-2h2l1-1h2l1 1h2l-2 2h-8z" id="path716"/>
+        <path d="M4 20.5L19.5 5l1 1-3 3-1 11h-8l-.2-1.8L5 21.5zM7.5 9h6L8 14.5zm-1-1c0-1.1.9-2 2-2h2l1-1h2l1 1h2l-2 2h-8z" id="path716"/>
     </g>
 </svg>
index dd6dde3..ea7350b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="underline-a">
-        <path id="a" d="M14.424 16h2.076l-3.463-10h-2.077l-3.46 10h2.077l.627-2h3.604l.616 2zm-3.921-3.623l1.496-4.379 1.511 4.379h-3z"/>
-        <path id="underline" d="M7 17h10v1h-10v-1z"/>
+        <path id="a" d="M14.424 16H16.5L13.037 6H10.96L7.5 16h2.077l.627-2h3.604l.616 2zm-3.92-3.623l1.495-4.38 1.51 4.38h-3z"/>
+        <path id="underline" d="M7 17h10v1H7v-1z"/>
     </g>
 </svg>
index c4eb2a2..2504e66 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-u.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-u.png differ
index fbd7c14..d07129f 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="underline-u">
-        <path id="u" d="M8 6h2v5.959c-.104 1.707.695 2.002 2 2.041 1.777.062 2.002-.879 2-2.041v-5.959h2v6.123c0 1.279-.338 2.245-1.016 2.898-.672.651-1.666.979-2.98.979-1.32 0-2.319-.326-2.996-.979-.672-.653-1.008-1.619-1.008-2.898v-6.123"/>
-        <path id="underline" d="M7 17h10v1h-10v-1z"/>
+        <path id="u" d="M8 6h2v5.96c-.104 1.706.695 2 2 2.04 1.777.062 2.002-.88 2-2.04V6h2v6.123c0 1.28-.338 2.245-1.016 2.898-.672.652-1.666.98-2.98.98-1.32 0-2.32-.326-2.996-.98C8.336 14.37 8 13.403 8 12.124V6"/>
+        <path id="underline" d="M7 17h10v1H7v-1z"/>
     </g>
 </svg>
index 9e5e72f..9f0efc5 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 8l8 10h-16z"/>
+    <path d="M12 8l8 10H4z"/>
 </svg>
index 18879e3..e07541d 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M10 13c0 1.7 1.3 3 3 3v-7h3l-4.5-5-4.5 5h3v4zm7 0v5h-10c-.6 0-1-.4-1-1v-4h-2v4c0 1.9 1.3 3 3 3h12v-7h-2z"/>
+        <path d="M10 13c0 1.7 1.3 3 3 3V9h3l-4.5-5L7 9h3v4zm7 0v5H7c-.6 0-1-.4-1-1v-4H4v4c0 1.9 1.3 3 3 3h12v-7h-2z"/>
     </g>
 </svg>
index 7a3535b..0f3d629 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g736">
-        <path d="M13 13c0 1.7-1.3 3-3 3v-7h-3l4.5-5 4.5 5h-3v4zm-7 0v5h10c.6 0 1-.4 1-1v-4h2v4c0 1.9-1.3 3-3 3h-12v-7h2z" id="path738"/>
+        <path d="M13 13c0 1.7-1.3 3-3 3V9H7l4.5-5L16 9h-3v4zm-7 0v5h10c.6 0 1-.4 1-1v-4h2v4c0 1.9-1.3 3-3 3H4v-7h2z" id="path738"/>
     </g>
 </svg>
index 5dcc317..7f526e5 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="M16 5h-12v12c0 1.7 1.3 3 3 3h12v-12c0-1.7-1.3-3-3-3zm-2 4c.7 0 1.2.6 1.2 1.2s-.6 1.2-1.2 1.2-1.2-.6-1.2-1.2.5-1.2 1.2-1.2zm-5 0c.7 0 1.2.6 1.2 1.2s-.5 1.3-1.2 1.3-1.2-.6-1.2-1.2.5-1.3 1.2-1.3zm7 5.4c0 .2-.1.3-.3.5-.7.6-1.6 1-2.6 1.3s-2.1.2-3.1 0-2-.9-2.7-1.5c-.1-.1-.2-.3-.2-.4s.1-.3.2-.4c.1-.1.3-.2.4-.2.2 0 .3.1.4.2.5.5 1.2.9 2.1 1.1s1.7.2 2.6 0 1.6-.5 2.1-1c.1-.1.3-.2.4-.2s.3.1.5.2.2.2.2.4z"/>
+    <path d="M16 5H4v12c0 1.7 1.3 3 3 3h12V8c0-1.7-1.3-3-3-3zm-2 4c.7 0 1.2.6 1.2 1.2s-.6 1.2-1.2 1.2-1.2-.6-1.2-1.2S13.3 9 14 9zM9 9c.7 0 1.2.6 1.2 1.2s-.5 1.3-1.2 1.3-1.2-.6-1.2-1.2S8.3 9 9 9zm7 5.4c0 .2-.1.3-.3.5-.7.6-1.6 1-2.6 1.3s-2.1.2-3.1 0-2-.9-2.7-1.5c-.1-.1-.2-.3-.2-.4s.1-.3.2-.4c.1-.1.3-.2.4-.2.2 0 .3.1.4.2.5.5 1.2.9 2.1 1.1s1.7.2 2.6 0 1.6-.5 2.1-1c.1-.1.3-.2.4-.2s.3.1.5.2.2.2.2.4z"/>
 </svg>
index a5e4dc9..a451f00 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 5h12v12c0 1.7-1.3 3-3 3h-12v-12c0-1.7 1.3-3 3-3zm2 4c-.7 0-1.2.6-1.2 1.2s.6 1.2 1.2 1.2 1.2-.6 1.2-1.2-.5-1.2-1.2-1.2zm5 0c-.7 0-1.2.6-1.2 1.2s.5 1.3 1.2 1.3 1.2-.6 1.2-1.2-.5-1.3-1.2-1.3zm-7 5.4c0 .2.1.3.3.5.7.6 1.6 1 2.6 1.3 1 .3 2.1.2 3.1 0s2-.9 2.7-1.5c.1-.1.2-.3.2-.4 0-.1-.1-.3-.2-.4-.1-.1-.3-.2-.4-.2-.2 0-.3.1-.4.2-.5.5-1.2.9-2.1 1.1-.9.2-1.7.2-2.6 0-.9-.2-1.6-.5-2.1-1-.1-.1-.3-.2-.4-.2-.1 0-.3.1-.5.2s-.2.2-.2.4z" id="path748"/>
+    <path d="M7 5h12v12c0 1.7-1.3 3-3 3H4V8c0-1.7 1.3-3 3-3zm2 4c-.7 0-1.2.6-1.2 1.2s.6 1.2 1.2 1.2 1.2-.6 1.2-1.2S9.7 9 9 9zm5 0c-.7 0-1.2.6-1.2 1.2s.5 1.3 1.2 1.3 1.2-.6 1.2-1.2S14.7 9 14 9zm-7 5.4c0 .2.1.3.3.5.7.6 1.6 1 2.6 1.3 1 .3 2.1.2 3.1 0s2-.9 2.7-1.5c.1-.1.2-.3.2-.4 0-.1-.1-.3-.2-.4-.1-.1-.3-.2-.4-.2-.2 0-.3.1-.4.2-.5.5-1.2.9-2.1 1.1-.9.2-1.7.2-2.6 0-.9-.2-1.6-.5-2.1-1-.1-.1-.3-.2-.4-.2-.1 0-.3.1-.5.2s-.2.2-.2.4z" id="path748"/>
 </svg>
index e9687fa..1bf7d80 100644 (file)
@@ -2,7 +2,7 @@
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g4">
         <g id="g6">
-            <path d="M11.5 13c1.7 0 3.5-2 3.5-5 0-.1 0-4-3.5-4s-3.5 3.9-3.5 4c0 3 1.8 5 3.5 5zm3.5-1c-.4.7-1.7 2-3.5 2s-3.2-1.3-3.5-2h-2c-1.1 0-2 .9-2 2v6h15v-6c0-1.1-.9-2-2-2h-2z" id="path8"/>
+            <path d="M11.5 13c1.7 0 3.5-2 3.5-5 0-.1 0-4-3.5-4S8 7.9 8 8c0 3 1.8 5 3.5 5zm3.5-1c-.4.7-1.7 2-3.5 2S8.3 12.7 8 12H6c-1.1 0-2 .9-2 2v6h15v-6c0-1.1-.9-2-2-2h-2z" id="path8"/>
         </g>
     </g>
 </svg>
index 7e4cfd1..b6f9b15 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr.png differ
index bb5b096..e58bbc3 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="M16 5h-12v12c0 1.7 1.3 3 3 3h12v-12c0-1.7-1.3-3-3-3zm-9.3 5.4c-.5-.4-.7-.8-.7-1.4.6.6 1.5.9 2.5.9s1.9-.3 2.5-.9c0 .6-.2 1-.7 1.4-.5.4-1.1.6-1.8.6s-1.3-.2-1.8-.6zm8.4 4.3c0 .2-.1.3-.3.4-1 .6-2.2.9-3.5.9-1.2 0-2.3-.3-3.3-1-.2-.1-.2-.2-.3-.4s0-.3.1-.5.2-.2.4-.3.3 0 .5.1c.8.5 1.7.8 2.8.8s2-.2 2.8-.7c.1-.1.3-.1.5-.1s.3.1.4.3l-.1.5zm1.2-4.3c-.5.4-1.1.6-1.8.6s-1.3-.2-1.8-.6-.7-.8-.7-1.4c.6.6 1.5.9 2.5.9s1.9-.3 2.5-.9c0 .6-.2 1-.7 1.4z"/>
+    <path d="M16 5H4v12c0 1.7 1.3 3 3 3h12V8c0-1.7-1.3-3-3-3zm-9.3 5.4C6.2 10 6 9.6 6 9c.6.6 1.5.9 2.5.9s1.9-.3 2.5-.9c0 .6-.2 1-.7 1.4-.5.4-1.1.6-1.8.6s-1.3-.2-1.8-.6zm8.4 4.3c0 .2-.1.3-.3.4-1 .6-2.2.9-3.5.9-1.2 0-2.3-.3-3.3-1-.2-.1-.2-.2-.3-.4s0-.3.1-.5.2-.2.4-.3.3 0 .5.1c.8.5 1.7.8 2.8.8s2-.2 2.8-.7c.1-.1.3-.1.5-.1s.3.1.4.3l-.1.5zm1.2-4.3c-.5.4-1.1.6-1.8.6s-1.3-.2-1.8-.6S12 9.6 12 9c.6.6 1.5.9 2.5.9s1.9-.3 2.5-.9c0 .6-.2 1-.7 1.4z"/>
 </svg>
index 4a9fd0d..d4476bd 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 5h12v12c0 1.7-1.3 3-3 3h-12v-12c0-1.7 1.3-3 3-3zm9.3 5.4c.5-.4.7-.8.7-1.4-.6.6-1.5.9-2.5.9s-1.9-.3-2.5-.9c0 .6.2 1 .7 1.4.5.4 1.1.6 1.8.6s1.3-.2 1.8-.6zm-8.4 4.3c0 .2.1.3.3.4 1 .6 2.2.9 3.5.9 1.2 0 2.3-.3 3.3-1 .2-.1.2-.2.3-.4.1-.2 0-.3-.1-.5s-.2-.2-.4-.3c-.2-.1-.3 0-.5.1-.8.5-1.7.8-2.8.8-1.1 0-2-.2-2.8-.7-.1-.1-.3-.1-.5-.1s-.3.1-.4.3l.1.5zm-1.2-4.3c.5.4 1.1.6 1.8.6s1.3-.2 1.8-.6c.5-.4.7-.8.7-1.4-.6.6-1.5.9-2.5.9s-1.9-.3-2.5-.9c0 .6.2 1 .7 1.4z" id="path758"/>
+    <path d="M7 5h12v12c0 1.7-1.3 3-3 3H4V8c0-1.7 1.3-3 3-3zm9.3 5.4c.5-.4.7-.8.7-1.4-.6.6-1.5.9-2.5.9S12.6 9.6 12 9c0 .6.2 1 .7 1.4.5.4 1.1.6 1.8.6s1.3-.2 1.8-.6zm-8.4 4.3c0 .2.1.3.3.4 1 .6 2.2.9 3.5.9 1.2 0 2.3-.3 3.3-1 .2-.1.2-.2.3-.4.1-.2 0-.3-.1-.5s-.2-.2-.4-.3c-.2-.1-.3 0-.5.1-.8.5-1.7.8-2.8.8-1.1 0-2-.2-2.8-.7-.1-.1-.3-.1-.5-.1s-.3.1-.4.3l.1.5zm-1.2-4.3c.5.4 1.1.6 1.8.6s1.3-.2 1.8-.6c.5-.4.7-.8.7-1.4-.6.6-1.5.9-2.5.9S6.6 9.6 6 9c0 .6.2 1 .7 1.4z" id="path758"/>
 </svg>
index f516539..b58974c 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="M5 6v11l-3 3h17c1.7 0 3-1.3 3-3v-11h-17zm11.2 2.5c.7 0 1.2.6 1.2 1.2s-.5 1.3-1.2 1.3-1.2-.6-1.2-1.2.6-1.3 1.2-1.3zm-5.4 0c.7 0 1.2.6 1.2 1.2s-.6 1.3-1.2 1.3-1.2-.6-1.2-1.2.5-1.3 1.2-1.3zm2.7 8.5c-5.1 0-6-5-6-5s2 1 6 1l6-1s-1 5-6 5z" id="path6"/>
+    <path d="M5 6v11l-3 3h17c1.7 0 3-1.3 3-3V6H5zm11.2 2.5c.7 0 1.2.6 1.2 1.2s-.5 1.3-1.2 1.3-1.2-.6-1.2-1.2.6-1.3 1.2-1.3zm-5.4 0c.7 0 1.2.6 1.2 1.2s-.6 1.3-1.2 1.3-1.2-.6-1.2-1.2.5-1.3 1.2-1.3zm2.7 8.5c-5.1 0-6-5-6-5s2 1 6 1l6-1s-1 5-6 5z" id="path6"/>
 </svg>
index 8963faf..7ef9ec2 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="M19 6v11l3 3h-17c-1.7 0-3-1.3-3-3v-11h17zm-11.2 2.5c-.7 0-1.2.6-1.2 1.2s.5 1.3 1.2 1.3 1.2-.6 1.2-1.2-.6-1.3-1.2-1.3zm5.4 0c-.7 0-1.2.6-1.2 1.2s.6 1.3 1.2 1.3 1.2-.6 1.2-1.2-.5-1.3-1.2-1.3zm-2.7 8.5c5.1 0 6-5 6-5s-2 1-6 1l-6-1s1 5 6 5z" id="path770"/>
+    <path d="M19 6v11l3 3H5c-1.7 0-3-1.3-3-3V6h17zM7.8 8.5c-.7 0-1.2.6-1.2 1.2S7.1 11 7.8 11 9 10.4 9 9.8s-.6-1.3-1.2-1.3zm5.4 0c-.7 0-1.2.6-1.2 1.2s.6 1.3 1.2 1.3 1.2-.6 1.2-1.2-.5-1.3-1.2-1.3zM10.5 17c5.1 0 6-5 6-5s-2 1-6 1l-6-1s1 5 6 5z" id="path770"/>
 </svg>
index 14e435d..7c064cc 100644 (file)
@@ -2,8 +2,8 @@
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
     <g id="viewDetails">
         <circle cx="5.5" cy="8.5" r="2.5"/>
-        <path d="M10 6h12v1H10zM10 8h9v1h-9zM10 10h4v1h-4z"/>
+        <path d="M10 6h12v1H10zm0 2h9v1h-9zm0 2h4v1h-4z"/>
         <circle cx="5.5" cy="16.5" r="2.5"/>
-        <path d="M10 14h12v1H10zM10 16h9v1h-9zM10 18h4v1h-4z"/>
+        <path d="M10 14h12v1H10zm0 2h9v1h-9zm0 2h4v1h-4z"/>
     </g>
 </svg>
index 4f5f9b3..1a5092a 100644 (file)
@@ -2,8 +2,8 @@
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="viewDetails">
         <circle cx="5.5" cy="8.5" r="2.5"/>
-        <path d="M10 6h12v1H10zM10 8h9v1h-9zM10 10h4v1h-4z"/>
+        <path d="M10 6h12v1H10zm0 2h9v1h-9zm0 2h4v1h-4z"/>
         <circle cx="5.5" cy="16.5" r="2.5"/>
-        <path d="M10 14h12v1H10zM10 16h9v1h-9zM10 18h4v1h-4z"/>
+        <path d="M10 14h12v1H10zm0 2h9v1h-9zm0 2h4v1h-4z"/>
     </g>
 </svg>
index 6bbc2fa..8bfe43e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="g780">
-        <path d="M11 14h-5v1h5v-1zm0 3h-5v-1h5v1zm0 1h-5v1h5v-1zm1-5v3l5 3-1-6 4-3-6-1-2-5s-1.9 5-2 5l-6 1 4 3h4z" id="path782"/>
+        <path d="M11 14H6v1h5v-1zm0 3H6v-1h5v1zm0 1H6v1h5v-1zm1-5v3l5 3-1-6 4-3-6-1-2-5s-1.9 5-2 5l-6 1 4 3h4z" id="path782"/>
     </g>
 </svg>
index eebd9b1..ded0fe1 100644 (file)
@@ -7,9 +7,9 @@
         <path d="M18 5h-4v2h2v10h-2v2h4z"/>
     </g>
     <g>
-        <path d="M2 5h4v2h-2v10h2v2h-4z"/>
+        <path d="M2 5h4v2H4v10h2v2H2z"/>
     </g>
     <g>
-        <path d="M7 5h4v2h-2v10h2v2h-4z"/>
+        <path d="M7 5h4v2H9v10h2v2H7z"/>
     </g>
 </svg>
index 41743b3..db4b6a5 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.png differ
index c606bec..6dbe1b4 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g>
-        <path d="M15 9l.7-1.8c.9.4 1.8.7 2.4.9l-.6 1.7v.2l-2.5-1zm-4.3-1.9l.8-1.8c1.2.5 2.6 1.1 3 1.4l-.8 1.8-3-1.4zm-5.9-1c-.8 0-1.4.2-2 .6l-1.1-1.7c.9-.6 1.9-.9 3.1-.9v2zm-4.3.7l1.8.8c-.3.7-.3 1.3-.1 1.8l-1.9.7c-.3-1.2-.3-2.3.2-3.3zm4.2 5.4l-1.3 1.5c-1-1-1.7-1.6-2-2l1.5-1.3c.7.8 1.3 1.4 1.8 1.8zm7.3 4.3c0 1.9-1.6 3.5-3.5 3.5s-3.5-1.6-3.5-3.5 1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5z"/>
+        <path d="M15 9l.7-1.8c.9.4 1.8.7 2.4.9l-.6 1.7v.2L15 9zm-4.3-1.9l.8-1.8c1.2.5 2.6 1.1 3 1.4l-.8 1.8-3-1.4zm-5.9-1c-.8 0-1.4.2-2 .6L1.7 5c.9-.6 1.9-.9 3.1-.9v2zm-4.3.7l1.8.8c-.3.7-.3 1.3-.1 1.8l-1.9.7C0 8.9 0 7.8.5 6.8zm4.2 5.4l-1.3 1.5c-1-1-1.7-1.6-2-2l1.5-1.3c.7.8 1.3 1.4 1.8 1.8zm7.3 4.3c0 1.9-1.6 3.5-3.5 3.5S5 18.4 5 16.5 6.6 13 8.5 13s3.5 1.6 3.5 3.5z"/>
     </g>
-    <path d="M24 8l-1-1-1.5 1.5-1.5-1.5-1 1 1.5 1.5-1.5 1.5 1 1 1.5-1.5 1.5 1.5 1-1-1.5-1.5z"/>
+    <path d="M24 8l-1-1-1.5 1.5L20 7l-1 1 1.5 1.5L19 11l1 1 1.5-1.5L23 12l1-1-1.5-1.5z"/>
     <circle cx="8" cy="5" r="2"/>
 </svg>
index 0aeb616..a1d59d5 100644 (file)
@@ -1,7 +1,7 @@
 <?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>
     <g id="window">
-        <path id="title" d="M7 10h10v1h-10z"/>
-        <path id="frame" d="M16 19h-8c-2.206 0-4-1.794-4-4v-6c0-2.206 1.794-4 4-4h8c2.206 0 4 1.794 4 4v6c0 2.206-1.794 4-4 4zm-8-12c-1.103 0-2 .897-2 2v6c0 1.103.897 2 2 2h8c1.103 0 2-.897 2-2v-6c0-1.103-.897-2-2-2h-8z"/>
+        <path id="title" d="M7 10h10v1H7z"/>
+        <path id="frame" d="M16 19H8c-2.206 0-4-1.794-4-4V9c0-2.206 1.794-4 4-4h8c2.206 0 4 1.794 4 4v6c0 2.206-1.794 4-4 4zM8 7c-1.103 0-2 .897-2 2v6c0 1.103.897 2 2 2h8c1.103 0 2-.897 2-2V9c0-1.103-.897-2-2-2H8z"/>
     </g>
 </svg>
index cd3b76c..093c822 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="window">
-        <path id="title" d="M7 10h10v1h-10z"/>
-        <path id="frame" d="M16 19h-8c-2.206 0-4-1.794-4-4v-6c0-2.206 1.794-4 4-4h8c2.206 0 4 1.794 4 4v6c0 2.206-1.794 4-4 4zm-8-12c-1.103 0-2 .897-2 2v6c0 1.103.897 2 2 2h8c1.103 0 2-.897 2-2v-6c0-1.103-.897-2-2-2h-8z"/>
+        <path id="title" d="M7 10h10v1H7z"/>
+        <path id="frame" d="M16 19H8c-2.206 0-4-1.794-4-4V9c0-2.206 1.794-4 4-4h8c2.206 0 4 1.794 4 4v6c0 2.206-1.794 4-4 4zM8 7c-1.103 0-2 .897-2 2v6c0 1.103.897 2 2 2h8c1.103 0 2-.897 2-2V9c0-1.103-.897-2-2-2H8z"/>
     </g>
 </svg>
index cd66649..3207aaf 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><style>* { fill: #FFFFFF }</style>
     <g id="alert">
-        <path d="M6 12c-3.314 0-6-2.686-6-6s2.686-6 6-6 6 2.686 6 6-2.686 6-6 6zm-1-5h2v-5h-2zm0 3h2v-2h-2z"/>
+        <path d="M6 12c-3.314 0-6-2.686-6-6s2.686-6 6-6 6 2.686 6 6-2.686 6-6 6zM5 7h2V2H5zm0 3h2V8H5z"/>
     </g>
 </svg>
index d9dc6a8..cddc0db 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
     <g id="alert">
-        <path d="M6 12c-3.314 0-6-2.686-6-6s2.686-6 6-6 6 2.686 6 6-2.686 6-6 6zm-1-5h2v-5h-2zm0 3h2v-2h-2z"/>
+        <path d="M6 12c-3.314 0-6-2.686-6-6s2.686-6 6-6 6 2.686 6 6-2.686 6-6 6zM5 7h2V2H5zm0 3h2V8H5z"/>
     </g>
 </svg>
index 55f3d1f..f18841d 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-down-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-down-invert.png differ
index 6ee6803..6330d97 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><style>* { fill: #FFFFFF }</style>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><style>* { fill: #FFFFFF }</style>
     <g id="down">
-        <path id="arrow" d="M11 4l-.463-.467c-.45-.446-1.186-.445-1.637 0l-2.897 2.89-2.915-2.898c-.45-.446-1.176-.43-1.626.017L1 4l5.003 5v-.01V9L11 4"/>
+        <path id="arrow" d="M883.3 341H116.7L500 724.3 883.3 341"/>
     </g>
 </svg>
index db8c51d..15ec586 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-down.png and b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-down.png differ
index 0c0da8e..d8979ae 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000">
     <g id="down">
-        <path id="arrow" d="M11 4l-.463-.467c-.45-.446-1.186-.445-1.637 0l-2.897 2.89-2.915-2.898c-.45-.446-1.176-.43-1.626.017L1 4l5.003 5v-.01V9L11 4"/>
+        <path id="arrow" d="M883.3 341H116.7L500 724.3 883.3 341"/>
     </g>
 </svg>
index 9edc9de..22bf897 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-ltr-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-ltr-invert.png differ
index 64203e1..476dbcc 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><style>* { fill: #FFFFFF }</style>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-493 495 12 12"><style>* { fill: #FFFFFF }</style>
     <g id="ltr">
-        <path id="arrow" d="M4 1l-.47.463c-.444.45-.444 1.186 0 1.637L6.423 6l-2.9 2.91c-.444.45-.43 1.177.02 1.627L4 11l5-5h-.01H9L4 1"/>
+        <path id="arrow" d="M-489 496v10l5-5-5-5"/>
     </g>
 </svg>
index 19e9820..4440329 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-ltr.png differ
index 0d11e3e..d824ff1 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-493 495 12 12">
     <g id="ltr">
-        <path id="arrow" d="M4 1l-.47.463c-.444.45-.444 1.186 0 1.637L6.423 6l-2.9 2.91c-.444.45-.43 1.177.02 1.627L4 11l5-5h-.01H9L4 1"/>
+        <path id="arrow" d="M-489 496v10l5-5-5-5"/>
     </g>
 </svg>
index ac769a3..4f3c9d1 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-rtl-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-rtl-invert.png differ
index 3d36e4f..276052b 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><style>* { fill: #FFFFFF }</style>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-493 495 12 12"><style>* { fill: #FFFFFF }</style>
     <g id="rtl">
-        <path id="arrow" d="M8 11l.47-.463c.444-.45.444-1.186 0-1.637L5.576 6l2.9-2.91c.444-.45.43-1.177-.02-1.627L8 1 3 6h.01H3l5 5"/>
+        <path id="arrow" d="M-485 506v-10l-5 5 5 5"/>
     </g>
 </svg>
index d912a1b..5f1f868 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-rtl.png differ
index e4c04b8..88ad88b 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-493 495 12 12">
     <g id="rtl">
-        <path id="arrow" d="M8 11l.47-.463c.444-.45.444-1.186 0-1.637L5.576 6l2.9-2.91c.444-.45.43-1.177-.02-1.627L8 1 3 6h.01H3l5 5"/>
+        <path id="arrow" d="M-485 506v-10l-5 5 5 5"/>
     </g>
 </svg>
index c8f4402..e6fad56 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-up-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-up-invert.png differ
index 9bbde71..e33ba06 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><style>* { fill: #FFFFFF }</style>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-493 495 12 12"><style>* { fill: #FFFFFF }</style>
     <g id="up">
-        <path id="arrow" d="M1 8l.463.47c.45.444 1.186.444 1.637 0L6 5.567l2.91 2.91c.45.444 1.177.43 1.627-.02L11 8 6 2.99V3v-.01L1 8"/>
+        <path id="arrow" d="M-492 503h10l-5-5-5 5"/>
     </g>
 </svg>
index 214b12e..38d01c7 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-up.png and b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-up.png differ
index ad41a87..0640cc3 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-493 495 12 12">
     <g id="up">
-        <path id="arrow" d="M1 8l.463.47c.45.444 1.186.444 1.637 0L6 5.567l2.91 2.91c.45.444 1.177.43 1.627-.02L11 8 6 2.99V3v-.01L1 8"/>
+        <path id="arrow" d="M-492 503h10l-5-5-5 5"/>
     </g>
 </svg>
index 30baa50..0d2e79a 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><style>* { fill: #FFFFFF }</style>
     <g id="required">
-        <path d="M5 1h2v10h-2zM9.83 2.634l1 1.732-8.66 5-1-1.732zM1.17 4.366l1-1.732 8.66 5-1 1.732z"/>
+        <path d="M5 1h2v10H5zm4.83 1.634l1 1.732-8.66 5-1-1.732zM1.17 4.366l1-1.732 8.66 5-1 1.732z"/>
     </g>
 </svg>
index 969fa2d..051ed5f 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
     <g id="required">
-        <path d="M5 1h2v10h-2zM9.83 2.634l1 1.732-8.66 5-1-1.732zM1.17 4.366l1-1.732 8.66 5-1 1.732z"/>
+        <path d="M5 1h2v10H5zm4.83 1.634l1 1.732-8.66 5-1-1.732zM1.17 4.366l1-1.732 8.66 5-1 1.732z"/>
     </g>
 </svg>
index 2840bef..b04b92a 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr-invert.png differ
index f46b1ee..2348e8e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><style>* { fill: #FFFFFF }</style>
     <g id="search">
-        <path id="path3051" d="M10.369 9.474l-2.374-2.375-.169-.099c.403-.566.643-1.26.643-2.009-.001-1.92-1.558-3.477-3.477-3.477-1.921 0-3.478 1.557-3.478 3.478 0 1.92 1.557 3.477 3.478 3.477.749 0 1.442-.239 2.01-.643l.098.169 2.375 2.374c.19.189.543.143.79-.104s.293-.601.104-.791zm-5.377-2.27c-1.221 0-2.213-.991-2.213-2.213 0-1.221.992-2.213 2.213-2.213 1.222 0 2.213.992 2.213 2.213-.001 1.222-.992 2.213-2.213 2.213z"/>
+        <path id="path3051" d="M10.37 9.474L7.994 7.1l-.17-.1c.404-.566.644-1.26.644-2.01-.002-1.92-1.56-3.476-3.478-3.476-1.92 0-3.478 1.557-3.478 3.478 0 1.92 1.557 3.477 3.478 3.477.75 0 1.442-.24 2.01-.644l.098.17 2.375 2.373c.19.188.543.142.79-.105s.293-.6.104-.79zM4.99 7.204c-1.22 0-2.213-.99-2.213-2.213 0-1.22.99-2.212 2.212-2.212 1.222 0 2.213.992 2.213 2.213 0 1.223-.992 2.214-2.213 2.214z"/>
     </g>
 </svg>
index df1c61e..cc1f377 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr.png differ
index 266349e..9b49c4b 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
     <g id="search">
-        <path id="path3051" d="M10.369 9.474l-2.374-2.375-.169-.099c.403-.566.643-1.26.643-2.009-.001-1.92-1.558-3.477-3.477-3.477-1.921 0-3.478 1.557-3.478 3.478 0 1.92 1.557 3.477 3.478 3.477.749 0 1.442-.239 2.01-.643l.098.169 2.375 2.374c.19.189.543.143.79-.104s.293-.601.104-.791zm-5.377-2.27c-1.221 0-2.213-.991-2.213-2.213 0-1.221.992-2.213 2.213-2.213 1.222 0 2.213.992 2.213 2.213-.001 1.222-.992 2.213-2.213 2.213z"/>
+        <path id="path3051" d="M10.37 9.474L7.994 7.1l-.17-.1c.404-.566.644-1.26.644-2.01-.002-1.92-1.56-3.476-3.478-3.476-1.92 0-3.478 1.557-3.478 3.478 0 1.92 1.557 3.477 3.478 3.477.75 0 1.442-.24 2.01-.644l.098.17 2.375 2.373c.19.188.543.142.79-.105s.293-.6.104-.79zM4.99 7.204c-1.22 0-2.213-.99-2.213-2.213 0-1.22.99-2.212 2.212-2.212 1.222 0 2.213.992 2.213 2.213 0 1.223-.992 2.214-2.213 2.214z"/>
     </g>
 </svg>
index 665a088..acabbbd 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl-invert.png differ
index bd962d9..d57b976 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><style>* { fill: #FFFFFF }</style>
     <g id="search">
-        <path id="path3051" d="M1.631 9.474l2.374-2.375.169-.099c-.403-.566-.643-1.26-.643-2.009.001-1.92 1.558-3.477 3.477-3.477 1.921 0 3.478 1.557 3.478 3.478 0 1.92-1.557 3.477-3.478 3.477-.749 0-1.442-.239-2.01-.643l-.098.169-2.375 2.374c-.19.189-.543.143-.79-.104s-.293-.601-.104-.791zm5.377-2.27c1.221 0 2.213-.991 2.213-2.213 0-1.221-.992-2.213-2.213-2.213-1.222 0-2.213.992-2.213 2.213.001 1.222.992 2.213 2.213 2.213z"/>
+        <path id="path3051" d="M1.63 9.474L4.006 7.1l.17-.1c-.404-.566-.644-1.26-.644-2.01.002-1.92 1.56-3.476 3.478-3.476 1.92 0 3.478 1.557 3.478 3.478 0 1.92-1.557 3.477-3.478 3.477-.75 0-1.442-.24-2.01-.644l-.098.17-2.375 2.373c-.19.188-.543.142-.79-.105s-.293-.6-.104-.79zm5.378-2.27c1.22 0 2.213-.99 2.213-2.213 0-1.22-.99-2.212-2.212-2.212-1.222 0-2.213.992-2.213 2.213 0 1.223.992 2.214 2.213 2.214z"/>
     </g>
 </svg>
index c9443d7..5564b42 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl.png differ
index 5368fd7..3847af2 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
     <g id="search">
-        <path id="path3051" d="M1.631 9.474l2.374-2.375.169-.099c-.403-.566-.643-1.26-.643-2.009.001-1.92 1.558-3.477 3.477-3.477 1.921 0 3.478 1.557 3.478 3.478 0 1.92-1.557 3.477-3.478 3.477-.749 0-1.442-.239-2.01-.643l-.098.169-2.375 2.374c-.19.189-.543.143-.79-.104s-.293-.601-.104-.791zm5.377-2.27c1.221 0 2.213-.991 2.213-2.213 0-1.221-.992-2.213-2.213-2.213-1.222 0-2.213.992-2.213 2.213.001 1.222.992 2.213 2.213 2.213z"/>
+        <path id="path3051" d="M1.63 9.474L4.006 7.1l.17-.1c-.404-.566-.644-1.26-.644-2.01.002-1.92 1.56-3.476 3.478-3.476 1.92 0 3.478 1.557 3.478 3.478 0 1.92-1.557 3.477-3.478 3.477-.75 0-1.442-.24-2.01-.644l-.098.17-2.375 2.373c-.19.188-.543.142-.79-.105s-.293-.6-.104-.79zm5.378-2.27c1.22 0 2.213-.99 2.213-2.213 0-1.22-.99-2.212-2.212-2.212-1.222 0-2.213.992-2.213 2.213 0 1.223.992 2.214 2.213 2.214z"/>
     </g>
 </svg>
index 63a0b57..e413e75 100644 (file)
@@ -1,10 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="16" height="16" viewBox="0, 0, 16, 16">
-       <g id="transparency">
-               <path d="M0,0 L8,0 L8,8 L0,8 z" fill="#CCCCCC"/>
-               <path d="M8,8 L16,8 L16,16 L8,16 z" fill="#CCCCCC"/>
-               <path d="M8,0 L16,0 L16,8 L8,8 z" fill="#FFFFFF"/>
-               <path d="M0,8 L8,8 L8,16 L0,16 z" fill="#FFFFFF"/>
-       </g>
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0, 0, 16, 16">
+    <g id="transparency">
+        <path d="M0 0h8v8H0zm8 8h8v8H8z" fill="#ccc"/>
+        <path d="M8 0h8v8H8zM0 8h8v8H0z" fill="#fff"/>
+    </g>
 </svg>
diff --git a/resources/lib/phpjs-sha1/LICENSE.txt b/resources/lib/phpjs-sha1/LICENSE.txt
new file mode 100644 (file)
index 0000000..04caf53
--- /dev/null
@@ -0,0 +1,20 @@
+Copyright (c) 2013 Kevin van Zonneveld (http://kvz.io) 
+and Contributors (http://phpjs.org/authors)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/resources/lib/phpjs-sha1/sha1.js b/resources/lib/phpjs-sha1/sha1.js
new file mode 100644 (file)
index 0000000..93c533d
--- /dev/null
@@ -0,0 +1,147 @@
+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();
+}
diff --git a/resources/lib/sinonjs/sinon-1.10.3.js b/resources/lib/sinonjs/sinon-1.10.3.js
deleted file mode 100644 (file)
index 703414d..0000000
+++ /dev/null
@@ -1,5073 +0,0 @@
-/**
- * Sinon.JS 1.10.3, 2014/07/11
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @author Contributors: https://github.com/cjohansen/Sinon.JS/blob/master/AUTHORS
- *
- * (The BSD License)
- * 
- * Copyright (c) 2010-2014, Christian Johansen, christian@cjohansen.no
- * 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 Christian Johansen 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 HOLDER 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.
- */
-
-this.sinon = (function () {
-var samsam, formatio;
-function define(mod, deps, fn) { if (mod == "samsam") { samsam = deps(); } else if (typeof fn === "function") { formatio = fn(samsam); } }
-define.amd = {};
-((typeof define === "function" && define.amd && function (m) { define("samsam", m); }) ||
- (typeof module === "object" &&
-      function (m) { module.exports = m(); }) || // Node
- function (m) { this.samsam = m(); } // Browser globals
-)(function () {
-    var o = Object.prototype;
-    var div = typeof document !== "undefined" && document.createElement("div");
-
-    function isNaN(value) {
-        // Unlike global isNaN, this avoids type coercion
-        // typeof check avoids IE host object issues, hat tip to
-        // lodash
-        var val = value; // JsLint thinks value !== value is "weird"
-        return typeof value === "number" && value !== val;
-    }
-
-    function getClass(value) {
-        // Returns the internal [[Class]] by calling Object.prototype.toString
-        // with the provided value as this. Return value is a string, naming the
-        // internal class, e.g. "Array"
-        return o.toString.call(value).split(/[ \]]/)[1];
-    }
-
-    /**
-     * @name samsam.isArguments
-     * @param Object object
-     *
-     * Returns ``true`` if ``object`` is an ``arguments`` object,
-     * ``false`` otherwise.
-     */
-    function isArguments(object) {
-        if (typeof object !== "object" || typeof object.length !== "number" ||
-                getClass(object) === "Array") {
-            return false;
-        }
-        if (typeof object.callee == "function") { return true; }
-        try {
-            object[object.length] = 6;
-            delete object[object.length];
-        } catch (e) {
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * @name samsam.isElement
-     * @param Object object
-     *
-     * Returns ``true`` if ``object`` is a DOM element node. Unlike
-     * Underscore.js/lodash, this function will return ``false`` if ``object``
-     * is an *element-like* object, i.e. a regular object with a ``nodeType``
-     * property that holds the value ``1``.
-     */
-    function isElement(object) {
-        if (!object || object.nodeType !== 1 || !div) { return false; }
-        try {
-            object.appendChild(div);
-            object.removeChild(div);
-        } catch (e) {
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * @name samsam.keys
-     * @param Object object
-     *
-     * Return an array of own property names.
-     */
-    function keys(object) {
-        var ks = [], prop;
-        for (prop in object) {
-            if (o.hasOwnProperty.call(object, prop)) { ks.push(prop); }
-        }
-        return ks;
-    }
-
-    /**
-     * @name samsam.isDate
-     * @param Object value
-     *
-     * Returns true if the object is a ``Date``, or *date-like*. Duck typing
-     * of date objects work by checking that the object has a ``getTime``
-     * function whose return value equals the return value from the object's
-     * ``valueOf``.
-     */
-    function isDate(value) {
-        return typeof value.getTime == "function" &&
-            value.getTime() == value.valueOf();
-    }
-
-    /**
-     * @name samsam.isNegZero
-     * @param Object value
-     *
-     * Returns ``true`` if ``value`` is ``-0``.
-     */
-    function isNegZero(value) {
-        return value === 0 && 1 / value === -Infinity;
-    }
-
-    /**
-     * @name samsam.equal
-     * @param Object obj1
-     * @param Object obj2
-     *
-     * Returns ``true`` if two objects are strictly equal. Compared to
-     * ``===`` there are two exceptions:
-     *
-     *   - NaN is considered equal to NaN
-     *   - -0 and +0 are not considered equal
-     */
-    function identical(obj1, obj2) {
-        if (obj1 === obj2 || (isNaN(obj1) && isNaN(obj2))) {
-            return obj1 !== 0 || isNegZero(obj1) === isNegZero(obj2);
-        }
-    }
-
-
-    /**
-     * @name samsam.deepEqual
-     * @param Object obj1
-     * @param Object obj2
-     *
-     * Deep equal comparison. Two values are "deep equal" if:
-     *
-     *   - They are equal, according to samsam.identical
-     *   - They are both date objects representing the same time
-     *   - They are both arrays containing elements that are all deepEqual
-     *   - They are objects with the same set of properties, and each property
-     *     in ``obj1`` is deepEqual to the corresponding property in ``obj2``
-     *
-     * Supports cyclic objects.
-     */
-    function deepEqualCyclic(obj1, obj2) {
-
-        // used for cyclic comparison
-        // contain already visited objects
-        var objects1 = [],
-            objects2 = [],
-        // contain pathes (position in the object structure)
-        // of the already visited objects
-        // indexes same as in objects arrays
-            paths1 = [],
-            paths2 = [],
-        // contains combinations of already compared objects
-        // in the manner: { "$1['ref']$2['ref']": true }
-            compared = {};
-
-        /**
-         * used to check, if the value of a property is an object
-         * (cyclic logic is only needed for objects)
-         * only needed for cyclic logic
-         */
-        function isObject(value) {
-
-            if (typeof value === 'object' && value !== null &&
-                    !(value instanceof Boolean) &&
-                    !(value instanceof Date)    &&
-                    !(value instanceof Number)  &&
-                    !(value instanceof RegExp)  &&
-                    !(value instanceof String)) {
-
-                return true;
-            }
-
-            return false;
-        }
-
-        /**
-         * returns the index of the given object in the
-         * given objects array, -1 if not contained
-         * only needed for cyclic logic
-         */
-        function getIndex(objects, obj) {
-
-            var i;
-            for (i = 0; i < objects.length; i++) {
-                if (objects[i] === obj) {
-                    return i;
-                }
-            }
-
-            return -1;
-        }
-
-        // does the recursion for the deep equal check
-        return (function deepEqual(obj1, obj2, path1, path2) {
-            var type1 = typeof obj1;
-            var type2 = typeof obj2;
-
-            // == null also matches undefined
-            if (obj1 === obj2 ||
-                    isNaN(obj1) || isNaN(obj2) ||
-                    obj1 == null || obj2 == null ||
-                    type1 !== "object" || type2 !== "object") {
-
-                return identical(obj1, obj2);
-            }
-
-            // Elements are only equal if identical(expected, actual)
-            if (isElement(obj1) || isElement(obj2)) { return false; }
-
-            var isDate1 = isDate(obj1), isDate2 = isDate(obj2);
-            if (isDate1 || isDate2) {
-                if (!isDate1 || !isDate2 || obj1.getTime() !== obj2.getTime()) {
-                    return false;
-                }
-            }
-
-            if (obj1 instanceof RegExp && obj2 instanceof RegExp) {
-                if (obj1.toString() !== obj2.toString()) { return false; }
-            }
-
-            var class1 = getClass(obj1);
-            var class2 = getClass(obj2);
-            var keys1 = keys(obj1);
-            var keys2 = keys(obj2);
-
-            if (isArguments(obj1) || isArguments(obj2)) {
-                if (obj1.length !== obj2.length) { return false; }
-            } else {
-                if (type1 !== type2 || class1 !== class2 ||
-                        keys1.length !== keys2.length) {
-                    return false;
-                }
-            }
-
-            var key, i, l,
-                // following vars are used for the cyclic logic
-                value1, value2,
-                isObject1, isObject2,
-                index1, index2,
-                newPath1, newPath2;
-
-            for (i = 0, l = keys1.length; i < l; i++) {
-                key = keys1[i];
-                if (!o.hasOwnProperty.call(obj2, key)) {
-                    return false;
-                }
-
-                // Start of the cyclic logic
-
-                value1 = obj1[key];
-                value2 = obj2[key];
-
-                isObject1 = isObject(value1);
-                isObject2 = isObject(value2);
-
-                // determine, if the objects were already visited
-                // (it's faster to check for isObject first, than to
-                // get -1 from getIndex for non objects)
-                index1 = isObject1 ? getIndex(objects1, value1) : -1;
-                index2 = isObject2 ? getIndex(objects2, value2) : -1;
-
-                // determine the new pathes of the objects
-                // - for non cyclic objects the current path will be extended
-                //   by current property name
-                // - for cyclic objects the stored path is taken
-                newPath1 = index1 !== -1
-                    ? paths1[index1]
-                    : path1 + '[' + JSON.stringify(key) + ']';
-                newPath2 = index2 !== -1
-                    ? paths2[index2]
-                    : path2 + '[' + JSON.stringify(key) + ']';
-
-                // stop recursion if current objects are already compared
-                if (compared[newPath1 + newPath2]) {
-                    return true;
-                }
-
-                // remember the current objects and their pathes
-                if (index1 === -1 && isObject1) {
-                    objects1.push(value1);
-                    paths1.push(newPath1);
-                }
-                if (index2 === -1 && isObject2) {
-                    objects2.push(value2);
-                    paths2.push(newPath2);
-                }
-
-                // remember that the current objects are already compared
-                if (isObject1 && isObject2) {
-                    compared[newPath1 + newPath2] = true;
-                }
-
-                // End of cyclic logic
-
-                // neither value1 nor value2 is a cycle
-                // continue with next level
-                if (!deepEqual(value1, value2, newPath1, newPath2)) {
-                    return false;
-                }
-            }
-
-            return true;
-
-        }(obj1, obj2, '$1', '$2'));
-    }
-
-    var match;
-
-    function arrayContains(array, subset) {
-        if (subset.length === 0) { return true; }
-        var i, l, j, k;
-        for (i = 0, l = array.length; i < l; ++i) {
-            if (match(array[i], subset[0])) {
-                for (j = 0, k = subset.length; j < k; ++j) {
-                    if (!match(array[i + j], subset[j])) { return false; }
-                }
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * @name samsam.match
-     * @param Object object
-     * @param Object matcher
-     *
-     * Compare arbitrary value ``object`` with matcher.
-     */
-    match = function match(object, matcher) {
-        if (matcher && typeof matcher.test === "function") {
-            return matcher.test(object);
-        }
-
-        if (typeof matcher === "function") {
-            return matcher(object) === true;
-        }
-
-        if (typeof matcher === "string") {
-            matcher = matcher.toLowerCase();
-            var notNull = typeof object === "string" || !!object;
-            return notNull &&
-                (String(object)).toLowerCase().indexOf(matcher) >= 0;
-        }
-
-        if (typeof matcher === "number") {
-            return matcher === object;
-        }
-
-        if (typeof matcher === "boolean") {
-            return matcher === object;
-        }
-
-        if (getClass(object) === "Array" && getClass(matcher) === "Array") {
-            return arrayContains(object, matcher);
-        }
-
-        if (matcher && typeof matcher === "object") {
-            var prop;
-            for (prop in matcher) {
-                if (!match(object[prop], matcher[prop])) {
-                    return false;
-                }
-            }
-            return true;
-        }
-
-        throw new Error("Matcher was not a string, a number, a " +
-                        "function, a boolean or an object");
-    };
-
-    return {
-        isArguments: isArguments,
-        isElement: isElement,
-        isDate: isDate,
-        isNegZero: isNegZero,
-        identical: identical,
-        deepEqual: deepEqualCyclic,
-        match: match,
-        keys: keys
-    };
-});
-((typeof define === "function" && define.amd && function (m) {
-    define("formatio", ["samsam"], m);
-}) || (typeof module === "object" && function (m) {
-    module.exports = m(require("samsam"));
-}) || function (m) { this.formatio = m(this.samsam); }
-)(function (samsam) {
-    
-    var formatio = {
-        excludeConstructors: ["Object", /^.$/],
-        quoteStrings: true
-    };
-
-    var hasOwn = Object.prototype.hasOwnProperty;
-
-    var specialObjects = [];
-    if (typeof global !== "undefined") {
-        specialObjects.push({ object: global, value: "[object global]" });
-    }
-    if (typeof document !== "undefined") {
-        specialObjects.push({
-            object: document,
-            value: "[object HTMLDocument]"
-        });
-    }
-    if (typeof window !== "undefined") {
-        specialObjects.push({ object: window, value: "[object Window]" });
-    }
-
-    function functionName(func) {
-        if (!func) { return ""; }
-        if (func.displayName) { return func.displayName; }
-        if (func.name) { return func.name; }
-        var matches = func.toString().match(/function\s+([^\(]+)/m);
-        return (matches && matches[1]) || "";
-    }
-
-    function constructorName(f, object) {
-        var name = functionName(object && object.constructor);
-        var excludes = f.excludeConstructors ||
-                formatio.excludeConstructors || [];
-
-        var i, l;
-        for (i = 0, l = excludes.length; i < l; ++i) {
-            if (typeof excludes[i] === "string" && excludes[i] === name) {
-                return "";
-            } else if (excludes[i].test && excludes[i].test(name)) {
-                return "";
-            }
-        }
-
-        return name;
-    }
-
-    function isCircular(object, objects) {
-        if (typeof object !== "object") { return false; }
-        var i, l;
-        for (i = 0, l = objects.length; i < l; ++i) {
-            if (objects[i] === object) { return true; }
-        }
-        return false;
-    }
-
-    function ascii(f, object, processed, indent) {
-        if (typeof object === "string") {
-            var qs = f.quoteStrings;
-            var quote = typeof qs !== "boolean" || qs;
-            return processed || quote ? '"' + object + '"' : object;
-        }
-
-        if (typeof object === "function" && !(object instanceof RegExp)) {
-            return ascii.func(object);
-        }
-
-        processed = processed || [];
-
-        if (isCircular(object, processed)) { return "[Circular]"; }
-
-        if (Object.prototype.toString.call(object) === "[object Array]") {
-            return ascii.array.call(f, object, processed);
-        }
-
-        if (!object) { return String((1/object) === -Infinity ? "-0" : object); }
-        if (samsam.isElement(object)) { return ascii.element(object); }
-
-        if (typeof object.toString === "function" &&
-                object.toString !== Object.prototype.toString) {
-            return object.toString();
-        }
-
-        var i, l;
-        for (i = 0, l = specialObjects.length; i < l; i++) {
-            if (object === specialObjects[i].object) {
-                return specialObjects[i].value;
-            }
-        }
-
-        return ascii.object.call(f, object, processed, indent);
-    }
-
-    ascii.func = function (func) {
-        return "function " + functionName(func) + "() {}";
-    };
-
-    ascii.array = function (array, processed) {
-        processed = processed || [];
-        processed.push(array);
-        var i, l, pieces = [];
-        for (i = 0, l = array.length; i < l; ++i) {
-            pieces.push(ascii(this, array[i], processed));
-        }
-        return "[" + pieces.join(", ") + "]";
-    };
-
-    ascii.object = function (object, processed, indent) {
-        processed = processed || [];
-        processed.push(object);
-        indent = indent || 0;
-        var pieces = [], properties = samsam.keys(object).sort();
-        var length = 3;
-        var prop, str, obj, i, l;
-
-        for (i = 0, l = properties.length; i < l; ++i) {
-            prop = properties[i];
-            obj = object[prop];
-
-            if (isCircular(obj, processed)) {
-                str = "[Circular]";
-            } else {
-                str = ascii(this, obj, processed, indent + 2);
-            }
-
-            str = (/\s/.test(prop) ? '"' + prop + '"' : prop) + ": " + str;
-            length += str.length;
-            pieces.push(str);
-        }
-
-        var cons = constructorName(this, object);
-        var prefix = cons ? "[" + cons + "] " : "";
-        var is = "";
-        for (i = 0, l = indent; i < l; ++i) { is += " "; }
-
-        if (length + indent > 80) {
-            return prefix + "{\n  " + is + pieces.join(",\n  " + is) + "\n" +
-                is + "}";
-        }
-        return prefix + "{ " + pieces.join(", ") + " }";
-    };
-
-    ascii.element = function (element) {
-        var tagName = element.tagName.toLowerCase();
-        var attrs = element.attributes, attr, pairs = [], attrName, i, l, val;
-
-        for (i = 0, l = attrs.length; i < l; ++i) {
-            attr = attrs.item(i);
-            attrName = attr.nodeName.toLowerCase().replace("html:", "");
-            val = attr.nodeValue;
-            if (attrName !== "contenteditable" || val !== "inherit") {
-                if (!!val) { pairs.push(attrName + "=\"" + val + "\""); }
-            }
-        }
-
-        var formatted = "<" + tagName + (pairs.length > 0 ? " " : "");
-        var content = element.innerHTML;
-
-        if (content.length > 20) {
-            content = content.substr(0, 20) + "[...]";
-        }
-
-        var res = formatted + pairs.join(" ") + ">" + content +
-                "</" + tagName + ">";
-
-        return res.replace(/ contentEditable="inherit"/, "");
-    };
-
-    function Formatio(options) {
-        for (var opt in options) {
-            this[opt] = options[opt];
-        }
-    }
-
-    Formatio.prototype = {
-        functionName: functionName,
-
-        configure: function (options) {
-            return new Formatio(options);
-        },
-
-        constructorName: function (object) {
-            return constructorName(this, object);
-        },
-
-        ascii: function (object, processed, indent) {
-            return ascii(this, object, processed, indent);
-        }
-    };
-
-    return Formatio.prototype;
-});
-/*jslint eqeqeq: false, onevar: false, forin: true, nomen: false, regexp: false, plusplus: false*/
-/*global module, require, __dirname, document*/
-/**
- * Sinon core utilities. For internal use only.
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-var sinon = (function (formatio) {
-    var div = typeof document != "undefined" && document.createElement("div");
-    var hasOwn = Object.prototype.hasOwnProperty;
-
-    function isDOMNode(obj) {
-        var success = false;
-
-        try {
-            obj.appendChild(div);
-            success = div.parentNode == obj;
-        } catch (e) {
-            return false;
-        } finally {
-            try {
-                obj.removeChild(div);
-            } catch (e) {
-                // Remove failed, not much we can do about that
-            }
-        }
-
-        return success;
-    }
-
-    function isElement(obj) {
-        return div && obj && obj.nodeType === 1 && isDOMNode(obj);
-    }
-
-    function isFunction(obj) {
-        return typeof obj === "function" || !!(obj && obj.constructor && obj.call && obj.apply);
-    }
-
-    function isReallyNaN(val) {
-        return typeof val === 'number' && isNaN(val);
-    }
-
-    function mirrorProperties(target, source) {
-        for (var prop in source) {
-            if (!hasOwn.call(target, prop)) {
-                target[prop] = source[prop];
-            }
-        }
-    }
-
-    function isRestorable (obj) {
-        return typeof obj === "function" && typeof obj.restore === "function" && obj.restore.sinon;
-    }
-
-    var sinon = {
-        wrapMethod: function wrapMethod(object, property, method) {
-            if (!object) {
-                throw new TypeError("Should wrap property of object");
-            }
-
-            if (typeof method != "function") {
-                throw new TypeError("Method wrapper should be function");
-            }
-
-            var wrappedMethod = object[property],
-                error;
-
-            if (!isFunction(wrappedMethod)) {
-                error = new TypeError("Attempted to wrap " + (typeof wrappedMethod) + " property " +
-                                    property + " as function");
-            } else if (wrappedMethod.restore && wrappedMethod.restore.sinon) {
-                error = new TypeError("Attempted to wrap " + property + " which is already wrapped");
-            } else if (wrappedMethod.calledBefore) {
-                var verb = !!wrappedMethod.returns ? "stubbed" : "spied on";
-                error = new TypeError("Attempted to wrap " + property + " which is already " + verb);
-            }
-
-            if (error) {
-                if (wrappedMethod && wrappedMethod._stack) {
-                    error.stack += '\n--------------\n' + wrappedMethod._stack;
-                }
-                throw error;
-            }
-
-            // IE 8 does not support hasOwnProperty on the window object and Firefox has a problem
-            // when using hasOwn.call on objects from other frames.
-            var owned = object.hasOwnProperty ? object.hasOwnProperty(property) : hasOwn.call(object, property);
-            object[property] = method;
-            method.displayName = property;
-            // Set up a stack trace which can be used later to find what line of
-            // code the original method was created on.
-            method._stack = (new Error('Stack Trace for original')).stack;
-
-            method.restore = function () {
-                // For prototype properties try to reset by delete first.
-                // If this fails (ex: localStorage on mobile safari) then force a reset
-                // via direct assignment.
-                if (!owned) {
-                    delete object[property];
-                }
-                if (object[property] === method) {
-                    object[property] = wrappedMethod;
-                }
-            };
-
-            method.restore.sinon = true;
-            mirrorProperties(method, wrappedMethod);
-
-            return method;
-        },
-
-        extend: function extend(target) {
-            for (var i = 1, l = arguments.length; i < l; i += 1) {
-                for (var prop in arguments[i]) {
-                    if (arguments[i].hasOwnProperty(prop)) {
-                        target[prop] = arguments[i][prop];
-                    }
-
-                    // DONT ENUM bug, only care about toString
-                    if (arguments[i].hasOwnProperty("toString") &&
-                        arguments[i].toString != target.toString) {
-                        target.toString = arguments[i].toString;
-                    }
-                }
-            }
-
-            return target;
-        },
-
-        create: function create(proto) {
-            var F = function () {};
-            F.prototype = proto;
-            return new F();
-        },
-
-        deepEqual: function deepEqual(a, b) {
-            if (sinon.match && sinon.match.isMatcher(a)) {
-                return a.test(b);
-            }
-
-            if (typeof a != 'object' || typeof b != 'object') {
-                if (isReallyNaN(a) && isReallyNaN(b)) {
-                    return true;
-                } else {
-                    return a === b;
-                }
-            }
-
-            if (isElement(a) || isElement(b)) {
-                return a === b;
-            }
-
-            if (a === b) {
-                return true;
-            }
-
-            if ((a === null && b !== null) || (a !== null && b === null)) {
-                return false;
-            }
-
-            if (a instanceof RegExp && b instanceof RegExp) {
-              return (a.source === b.source) && (a.global === b.global) &&
-                (a.ignoreCase === b.ignoreCase) && (a.multiline === b.multiline);
-            }
-
-            var aString = Object.prototype.toString.call(a);
-            if (aString != Object.prototype.toString.call(b)) {
-                return false;
-            }
-
-            if (aString == "[object Date]") {
-                return a.valueOf() === b.valueOf();
-            }
-
-            var prop, aLength = 0, bLength = 0;
-
-            if (aString == "[object Array]" && a.length !== b.length) {
-                return false;
-            }
-
-            for (prop in a) {
-                aLength += 1;
-
-                if (!(prop in b)) {
-                    return false;
-                }
-
-                if (!deepEqual(a[prop], b[prop])) {
-                    return false;
-                }
-            }
-
-            for (prop in b) {
-                bLength += 1;
-            }
-
-            return aLength == bLength;
-        },
-
-        functionName: function functionName(func) {
-            var name = func.displayName || func.name;
-
-            // Use function decomposition as a last resort to get function
-            // name. Does not rely on function decomposition to work - if it
-            // doesn't debugging will be slightly less informative
-            // (i.e. toString will say 'spy' rather than 'myFunc').
-            if (!name) {
-                var matches = func.toString().match(/function ([^\s\(]+)/);
-                name = matches && matches[1];
-            }
-
-            return name;
-        },
-
-        functionToString: function toString() {
-            if (this.getCall && this.callCount) {
-                var thisValue, prop, i = this.callCount;
-
-                while (i--) {
-                    thisValue = this.getCall(i).thisValue;
-
-                    for (prop in thisValue) {
-                        if (thisValue[prop] === this) {
-                            return prop;
-                        }
-                    }
-                }
-            }
-
-            return this.displayName || "sinon fake";
-        },
-
-        getConfig: function (custom) {
-            var config = {};
-            custom = custom || {};
-            var defaults = sinon.defaultConfig;
-
-            for (var prop in defaults) {
-                if (defaults.hasOwnProperty(prop)) {
-                    config[prop] = custom.hasOwnProperty(prop) ? custom[prop] : defaults[prop];
-                }
-            }
-
-            return config;
-        },
-
-        format: function (val) {
-            return "" + val;
-        },
-
-        defaultConfig: {
-            injectIntoThis: true,
-            injectInto: null,
-            properties: ["spy", "stub", "mock", "clock", "server", "requests"],
-            useFakeTimers: true,
-            useFakeServer: true
-        },
-
-        timesInWords: function timesInWords(count) {
-            return count == 1 && "once" ||
-                count == 2 && "twice" ||
-                count == 3 && "thrice" ||
-                (count || 0) + " times";
-        },
-
-        calledInOrder: function (spies) {
-            for (var i = 1, l = spies.length; i < l; i++) {
-                if (!spies[i - 1].calledBefore(spies[i]) || !spies[i].called) {
-                    return false;
-                }
-            }
-
-            return true;
-        },
-
-        orderByFirstCall: function (spies) {
-            return spies.sort(function (a, b) {
-                // uuid, won't ever be equal
-                var aCall = a.getCall(0);
-                var bCall = b.getCall(0);
-                var aId = aCall && aCall.callId || -1;
-                var bId = bCall && bCall.callId || -1;
-
-                return aId < bId ? -1 : 1;
-            });
-        },
-
-        log: function () {},
-
-        logError: function (label, err) {
-            var msg = label + " threw exception: ";
-            sinon.log(msg + "[" + err.name + "] " + err.message);
-            if (err.stack) { sinon.log(err.stack); }
-
-            setTimeout(function () {
-                err.message = msg + err.message;
-                throw err;
-            }, 0);
-        },
-
-        typeOf: function (value) {
-            if (value === null) {
-                return "null";
-            }
-            else if (value === undefined) {
-                return "undefined";
-            }
-            var string = Object.prototype.toString.call(value);
-            return string.substring(8, string.length - 1).toLowerCase();
-        },
-
-        createStubInstance: function (constructor) {
-            if (typeof constructor !== "function") {
-                throw new TypeError("The constructor should be a function.");
-            }
-            return sinon.stub(sinon.create(constructor.prototype));
-        },
-
-        restore: function (object) {
-            if (object !== null && typeof object === "object") {
-                for (var prop in object) {
-                    if (isRestorable(object[prop])) {
-                        object[prop].restore();
-                    }
-                }
-            }
-            else if (isRestorable(object)) {
-                object.restore();
-            }
-        }
-    };
-
-    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
-    var isAMD = typeof define === 'function' && typeof define.amd === 'object' && define.amd;
-
-    function makePublicAPI(require, exports, module) {
-        module.exports = sinon;
-        sinon.spy = require("./sinon/spy");
-        sinon.spyCall = require("./sinon/call");
-        sinon.behavior = require("./sinon/behavior");
-        sinon.stub = require("./sinon/stub");
-        sinon.mock = require("./sinon/mock");
-        sinon.collection = require("./sinon/collection");
-        sinon.assert = require("./sinon/assert");
-        sinon.sandbox = require("./sinon/sandbox");
-        sinon.test = require("./sinon/test");
-        sinon.testCase = require("./sinon/test_case");
-        sinon.match = require("./sinon/match");
-    }
-
-    if (isAMD) {
-        define(makePublicAPI);
-    } else if (isNode) {
-        try {
-            formatio = require("formatio");
-        } catch (e) {}
-        makePublicAPI(require, exports, module);
-    }
-
-    if (formatio) {
-        var formatter = formatio.configure({ quoteStrings: false });
-        sinon.format = function () {
-            return formatter.ascii.apply(formatter, arguments);
-        };
-    } else if (isNode) {
-        try {
-            var util = require("util");
-            sinon.format = function (value) {
-                return typeof value == "object" && value.toString === Object.prototype.toString ? util.inspect(value) : value;
-            };
-        } catch (e) {
-            /* Node, but no util module - would be very old, but better safe than
-             sorry */
-        }
-    }
-
-    return sinon;
-}(typeof formatio == "object" && formatio));
-
-/* @depend ../sinon.js */
-/*jslint eqeqeq: false, onevar: false, plusplus: false*/
-/*global module, require, sinon*/
-/**
- * Match functions
- *
- * @author Maximilian Antoni (mail@maxantoni.de)
- * @license BSD
- *
- * Copyright (c) 2012 Maximilian Antoni
- */
-
-(function (sinon) {
-    var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
-
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon) {
-        return;
-    }
-
-    function assertType(value, type, name) {
-        var actual = sinon.typeOf(value);
-        if (actual !== type) {
-            throw new TypeError("Expected type of " + name + " to be " +
-                type + ", but was " + actual);
-        }
-    }
-
-    var matcher = {
-        toString: function () {
-            return this.message;
-        }
-    };
-
-    function isMatcher(object) {
-        return matcher.isPrototypeOf(object);
-    }
-
-    function matchObject(expectation, actual) {
-        if (actual === null || actual === undefined) {
-            return false;
-        }
-        for (var key in expectation) {
-            if (expectation.hasOwnProperty(key)) {
-                var exp = expectation[key];
-                var act = actual[key];
-                if (match.isMatcher(exp)) {
-                    if (!exp.test(act)) {
-                        return false;
-                    }
-                } else if (sinon.typeOf(exp) === "object") {
-                    if (!matchObject(exp, act)) {
-                        return false;
-                    }
-                } else if (!sinon.deepEqual(exp, act)) {
-                    return false;
-                }
-            }
-        }
-        return true;
-    }
-
-    matcher.or = function (m2) {
-        if (!arguments.length) {
-            throw new TypeError("Matcher expected");
-        } else if (!isMatcher(m2)) {
-            m2 = match(m2);
-        }
-        var m1 = this;
-        var or = sinon.create(matcher);
-        or.test = function (actual) {
-            return m1.test(actual) || m2.test(actual);
-        };
-        or.message = m1.message + ".or(" + m2.message + ")";
-        return or;
-    };
-
-    matcher.and = function (m2) {
-        if (!arguments.length) {
-            throw new TypeError("Matcher expected");
-        } else if (!isMatcher(m2)) {
-            m2 = match(m2);
-        }
-        var m1 = this;
-        var and = sinon.create(matcher);
-        and.test = function (actual) {
-            return m1.test(actual) && m2.test(actual);
-        };
-        and.message = m1.message + ".and(" + m2.message + ")";
-        return and;
-    };
-
-    var match = function (expectation, message) {
-        var m = sinon.create(matcher);
-        var type = sinon.typeOf(expectation);
-        switch (type) {
-        case "object":
-            if (typeof expectation.test === "function") {
-                m.test = function (actual) {
-                    return expectation.test(actual) === true;
-                };
-                m.message = "match(" + sinon.functionName(expectation.test) + ")";
-                return m;
-            }
-            var str = [];
-            for (var key in expectation) {
-                if (expectation.hasOwnProperty(key)) {
-                    str.push(key + ": " + expectation[key]);
-                }
-            }
-            m.test = function (actual) {
-                return matchObject(expectation, actual);
-            };
-            m.message = "match(" + str.join(", ") + ")";
-            break;
-        case "number":
-            m.test = function (actual) {
-                return expectation == actual;
-            };
-            break;
-        case "string":
-            m.test = function (actual) {
-                if (typeof actual !== "string") {
-                    return false;
-                }
-                return actual.indexOf(expectation) !== -1;
-            };
-            m.message = "match(\"" + expectation + "\")";
-            break;
-        case "regexp":
-            m.test = function (actual) {
-                if (typeof actual !== "string") {
-                    return false;
-                }
-                return expectation.test(actual);
-            };
-            break;
-        case "function":
-            m.test = expectation;
-            if (message) {
-                m.message = message;
-            } else {
-                m.message = "match(" + sinon.functionName(expectation) + ")";
-            }
-            break;
-        default:
-            m.test = function (actual) {
-              return sinon.deepEqual(expectation, actual);
-            };
-        }
-        if (!m.message) {
-            m.message = "match(" + expectation + ")";
-        }
-        return m;
-    };
-
-    match.isMatcher = isMatcher;
-
-    match.any = match(function () {
-        return true;
-    }, "any");
-
-    match.defined = match(function (actual) {
-        return actual !== null && actual !== undefined;
-    }, "defined");
-
-    match.truthy = match(function (actual) {
-        return !!actual;
-    }, "truthy");
-
-    match.falsy = match(function (actual) {
-        return !actual;
-    }, "falsy");
-
-    match.same = function (expectation) {
-        return match(function (actual) {
-            return expectation === actual;
-        }, "same(" + expectation + ")");
-    };
-
-    match.typeOf = function (type) {
-        assertType(type, "string", "type");
-        return match(function (actual) {
-            return sinon.typeOf(actual) === type;
-        }, "typeOf(\"" + type + "\")");
-    };
-
-    match.instanceOf = function (type) {
-        assertType(type, "function", "type");
-        return match(function (actual) {
-            return actual instanceof type;
-        }, "instanceOf(" + sinon.functionName(type) + ")");
-    };
-
-    function createPropertyMatcher(propertyTest, messagePrefix) {
-        return function (property, value) {
-            assertType(property, "string", "property");
-            var onlyProperty = arguments.length === 1;
-            var message = messagePrefix + "(\"" + property + "\"";
-            if (!onlyProperty) {
-                message += ", " + value;
-            }
-            message += ")";
-            return match(function (actual) {
-                if (actual === undefined || actual === null ||
-                        !propertyTest(actual, property)) {
-                    return false;
-                }
-                return onlyProperty || sinon.deepEqual(value, actual[property]);
-            }, message);
-        };
-    }
-
-    match.has = createPropertyMatcher(function (actual, property) {
-        if (typeof actual === "object") {
-            return property in actual;
-        }
-        return actual[property] !== undefined;
-    }, "has");
-
-    match.hasOwn = createPropertyMatcher(function (actual, property) {
-        return actual.hasOwnProperty(property);
-    }, "hasOwn");
-
-    match.bool = match.typeOf("boolean");
-    match.number = match.typeOf("number");
-    match.string = match.typeOf("string");
-    match.object = match.typeOf("object");
-    match.func = match.typeOf("function");
-    match.array = match.typeOf("array");
-    match.regexp = match.typeOf("regexp");
-    match.date = match.typeOf("date");
-
-    sinon.match = match;
-
-    if (typeof define === "function" && define.amd) {
-        define(["module"], function(module) { module.exports = match; });
-    } else if (commonJSModule) {
-        module.exports = match;
-    }
-}(typeof sinon == "object" && sinon || null));
-
-/**
-  * @depend ../sinon.js
-  * @depend match.js
-  */
-/*jslint eqeqeq: false, onevar: false, plusplus: false*/
-/*global module, require, sinon*/
-/**
-  * Spy calls
-  *
-  * @author Christian Johansen (christian@cjohansen.no)
-  * @author Maximilian Antoni (mail@maxantoni.de)
-  * @license BSD
-  *
-  * Copyright (c) 2010-2013 Christian Johansen
-  * Copyright (c) 2013 Maximilian Antoni
-  */
-
-(function (sinon) {
-    var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon) {
-        return;
-    }
-
-    function throwYieldError(proxy, text, args) {
-        var msg = sinon.functionName(proxy) + text;
-        if (args.length) {
-            msg += " Received [" + slice.call(args).join(", ") + "]";
-        }
-        throw new Error(msg);
-    }
-
-    var slice = Array.prototype.slice;
-
-    var callProto = {
-        calledOn: function calledOn(thisValue) {
-            if (sinon.match && sinon.match.isMatcher(thisValue)) {
-                return thisValue.test(this.thisValue);
-            }
-            return this.thisValue === thisValue;
-        },
-
-        calledWith: function calledWith() {
-            for (var i = 0, l = arguments.length; i < l; i += 1) {
-                if (!sinon.deepEqual(arguments[i], this.args[i])) {
-                    return false;
-                }
-            }
-
-            return true;
-        },
-
-        calledWithMatch: function calledWithMatch() {
-            for (var i = 0, l = arguments.length; i < l; i += 1) {
-                var actual = this.args[i];
-                var expectation = arguments[i];
-                if (!sinon.match || !sinon.match(expectation).test(actual)) {
-                    return false;
-                }
-            }
-            return true;
-        },
-
-        calledWithExactly: function calledWithExactly() {
-            return arguments.length == this.args.length &&
-                this.calledWith.apply(this, arguments);
-        },
-
-        notCalledWith: function notCalledWith() {
-            return !this.calledWith.apply(this, arguments);
-        },
-
-        notCalledWithMatch: function notCalledWithMatch() {
-            return !this.calledWithMatch.apply(this, arguments);
-        },
-
-        returned: function returned(value) {
-            return sinon.deepEqual(value, this.returnValue);
-        },
-
-        threw: function threw(error) {
-            if (typeof error === "undefined" || !this.exception) {
-                return !!this.exception;
-            }
-
-            return this.exception === error || this.exception.name === error;
-        },
-
-        calledWithNew: function calledWithNew() {
-            return this.proxy.prototype && this.thisValue instanceof this.proxy;
-        },
-
-        calledBefore: function (other) {
-            return this.callId < other.callId;
-        },
-
-        calledAfter: function (other) {
-            return this.callId > other.callId;
-        },
-
-        callArg: function (pos) {
-            this.args[pos]();
-        },
-
-        callArgOn: function (pos, thisValue) {
-            this.args[pos].apply(thisValue);
-        },
-
-        callArgWith: function (pos) {
-            this.callArgOnWith.apply(this, [pos, null].concat(slice.call(arguments, 1)));
-        },
-
-        callArgOnWith: function (pos, thisValue) {
-            var args = slice.call(arguments, 2);
-            this.args[pos].apply(thisValue, args);
-        },
-
-        "yield": function () {
-            this.yieldOn.apply(this, [null].concat(slice.call(arguments, 0)));
-        },
-
-        yieldOn: function (thisValue) {
-            var args = this.args;
-            for (var i = 0, l = args.length; i < l; ++i) {
-                if (typeof args[i] === "function") {
-                    args[i].apply(thisValue, slice.call(arguments, 1));
-                    return;
-                }
-            }
-            throwYieldError(this.proxy, " cannot yield since no callback was passed.", args);
-        },
-
-        yieldTo: function (prop) {
-            this.yieldToOn.apply(this, [prop, null].concat(slice.call(arguments, 1)));
-        },
-
-        yieldToOn: function (prop, thisValue) {
-            var args = this.args;
-            for (var i = 0, l = args.length; i < l; ++i) {
-                if (args[i] && typeof args[i][prop] === "function") {
-                    args[i][prop].apply(thisValue, slice.call(arguments, 2));
-                    return;
-                }
-            }
-            throwYieldError(this.proxy, " cannot yield to '" + prop +
-                "' since no callback was passed.", args);
-        },
-
-        toString: function () {
-            var callStr = this.proxy.toString() + "(";
-            var args = [];
-
-            for (var i = 0, l = this.args.length; i < l; ++i) {
-                args.push(sinon.format(this.args[i]));
-            }
-
-            callStr = callStr + args.join(", ") + ")";
-
-            if (typeof this.returnValue != "undefined") {
-                callStr += " => " + sinon.format(this.returnValue);
-            }
-
-            if (this.exception) {
-                callStr += " !" + this.exception.name;
-
-                if (this.exception.message) {
-                    callStr += "(" + this.exception.message + ")";
-                }
-            }
-
-            return callStr;
-        }
-    };
-
-    callProto.invokeCallback = callProto.yield;
-
-    function createSpyCall(spy, thisValue, args, returnValue, exception, id) {
-        if (typeof id !== "number") {
-            throw new TypeError("Call id is not a number");
-        }
-        var proxyCall = sinon.create(callProto);
-        proxyCall.proxy = spy;
-        proxyCall.thisValue = thisValue;
-        proxyCall.args = args;
-        proxyCall.returnValue = returnValue;
-        proxyCall.exception = exception;
-        proxyCall.callId = id;
-
-        return proxyCall;
-    }
-    createSpyCall.toString = callProto.toString; // used by mocks
-
-    sinon.spyCall = createSpyCall;
-
-    if (typeof define === "function" && define.amd) {
-        define(["module"], function(module) { module.exports = createSpyCall; });
-    } else if (commonJSModule) {
-        module.exports = createSpyCall;
-    }
-}(typeof sinon == "object" && sinon || null));
-
-
-/**
-  * @depend ../sinon.js
-  * @depend call.js
-  */
-/*jslint eqeqeq: false, onevar: false, plusplus: false*/
-/*global module, require, sinon*/
-/**
-  * Spy functions
-  *
-  * @author Christian Johansen (christian@cjohansen.no)
-  * @license BSD
-  *
-  * Copyright (c) 2010-2013 Christian Johansen
-  */
-
-(function (sinon) {
-    var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
-    var push = Array.prototype.push;
-    var slice = Array.prototype.slice;
-    var callId = 0;
-
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon) {
-        return;
-    }
-
-    function spy(object, property) {
-        if (!property && typeof object == "function") {
-            return spy.create(object);
-        }
-
-        if (!object && !property) {
-            return spy.create(function () { });
-        }
-
-        var method = object[property];
-        return sinon.wrapMethod(object, property, spy.create(method));
-    }
-
-    function matchingFake(fakes, args, strict) {
-        if (!fakes) {
-            return;
-        }
-
-        for (var i = 0, l = fakes.length; i < l; i++) {
-            if (fakes[i].matches(args, strict)) {
-                return fakes[i];
-            }
-        }
-    }
-
-    function incrementCallCount() {
-        this.called = true;
-        this.callCount += 1;
-        this.notCalled = false;
-        this.calledOnce = this.callCount == 1;
-        this.calledTwice = this.callCount == 2;
-        this.calledThrice = this.callCount == 3;
-    }
-
-    function createCallProperties() {
-        this.firstCall = this.getCall(0);
-        this.secondCall = this.getCall(1);
-        this.thirdCall = this.getCall(2);
-        this.lastCall = this.getCall(this.callCount - 1);
-    }
-
-    var vars = "a,b,c,d,e,f,g,h,i,j,k,l";
-    function createProxy(func) {
-        // Retain the function length:
-        var p;
-        if (func.length) {
-            eval("p = (function proxy(" + vars.substring(0, func.length * 2 - 1) +
-                ") { return p.invoke(func, this, slice.call(arguments)); });");
-        }
-        else {
-            p = function proxy() {
-                return p.invoke(func, this, slice.call(arguments));
-            };
-        }
-        return p;
-    }
-
-    var uuid = 0;
-
-    // Public API
-    var spyApi = {
-        reset: function () {
-            this.called = false;
-            this.notCalled = true;
-            this.calledOnce = false;
-            this.calledTwice = false;
-            this.calledThrice = false;
-            this.callCount = 0;
-            this.firstCall = null;
-            this.secondCall = null;
-            this.thirdCall = null;
-            this.lastCall = null;
-            this.args = [];
-            this.returnValues = [];
-            this.thisValues = [];
-            this.exceptions = [];
-            this.callIds = [];
-            if (this.fakes) {
-                for (var i = 0; i < this.fakes.length; i++) {
-                    this.fakes[i].reset();
-                }
-            }
-        },
-
-        create: function create(func) {
-            var name;
-
-            if (typeof func != "function") {
-                func = function () { };
-            } else {
-                name = sinon.functionName(func);
-            }
-
-            var proxy = createProxy(func);
-
-            sinon.extend(proxy, spy);
-            delete proxy.create;
-            sinon.extend(proxy, func);
-
-            proxy.reset();
-            proxy.prototype = func.prototype;
-            proxy.displayName = name || "spy";
-            proxy.toString = sinon.functionToString;
-            proxy._create = sinon.spy.create;
-            proxy.id = "spy#" + uuid++;
-
-            return proxy;
-        },
-
-        invoke: function invoke(func, thisValue, args) {
-            var matching = matchingFake(this.fakes, args);
-            var exception, returnValue;
-
-            incrementCallCount.call(this);
-            push.call(this.thisValues, thisValue);
-            push.call(this.args, args);
-            push.call(this.callIds, callId++);
-
-            // Make call properties available from within the spied function:
-            createCallProperties.call(this);
-
-            try {
-                if (matching) {
-                    returnValue = matching.invoke(func, thisValue, args);
-                } else {
-                    returnValue = (this.func || func).apply(thisValue, args);
-                }
-
-                var thisCall = this.getCall(this.callCount - 1);
-                if (thisCall.calledWithNew() && typeof returnValue !== 'object') {
-                    returnValue = thisValue;
-                }
-            } catch (e) {
-                exception = e;
-            }
-
-            push.call(this.exceptions, exception);
-            push.call(this.returnValues, returnValue);
-
-            // Make return value and exception available in the calls:
-            createCallProperties.call(this);
-
-            if (exception !== undefined) {
-                throw exception;
-            }
-
-            return returnValue;
-        },
-
-        named: function named(name) {
-            this.displayName = name;
-            return this;
-        },
-
-        getCall: function getCall(i) {
-            if (i < 0 || i >= this.callCount) {
-                return null;
-            }
-
-            return sinon.spyCall(this, this.thisValues[i], this.args[i],
-                                    this.returnValues[i], this.exceptions[i],
-                                    this.callIds[i]);
-        },
-
-        getCalls: function () {
-            var calls = [];
-            var i;
-
-            for (i = 0; i < this.callCount; i++) {
-                calls.push(this.getCall(i));
-            }
-
-            return calls;
-        },
-
-        calledBefore: function calledBefore(spyFn) {
-            if (!this.called) {
-                return false;
-            }
-
-            if (!spyFn.called) {
-                return true;
-            }
-
-            return this.callIds[0] < spyFn.callIds[spyFn.callIds.length - 1];
-        },
-
-        calledAfter: function calledAfter(spyFn) {
-            if (!this.called || !spyFn.called) {
-                return false;
-            }
-
-            return this.callIds[this.callCount - 1] > spyFn.callIds[spyFn.callCount - 1];
-        },
-
-        withArgs: function () {
-            var args = slice.call(arguments);
-
-            if (this.fakes) {
-                var match = matchingFake(this.fakes, args, true);
-
-                if (match) {
-                    return match;
-                }
-            } else {
-                this.fakes = [];
-            }
-
-            var original = this;
-            var fake = this._create();
-            fake.matchingAguments = args;
-            fake.parent = this;
-            push.call(this.fakes, fake);
-
-            fake.withArgs = function () {
-                return original.withArgs.apply(original, arguments);
-            };
-
-            for (var i = 0; i < this.args.length; i++) {
-                if (fake.matches(this.args[i])) {
-                    incrementCallCount.call(fake);
-                    push.call(fake.thisValues, this.thisValues[i]);
-                    push.call(fake.args, this.args[i]);
-                    push.call(fake.returnValues, this.returnValues[i]);
-                    push.call(fake.exceptions, this.exceptions[i]);
-                    push.call(fake.callIds, this.callIds[i]);
-                }
-            }
-            createCallProperties.call(fake);
-
-            return fake;
-        },
-
-        matches: function (args, strict) {
-            var margs = this.matchingAguments;
-
-            if (margs.length <= args.length &&
-                sinon.deepEqual(margs, args.slice(0, margs.length))) {
-                return !strict || margs.length == args.length;
-            }
-        },
-
-        printf: function (format) {
-            var spy = this;
-            var args = slice.call(arguments, 1);
-            var formatter;
-
-            return (format || "").replace(/%(.)/g, function (match, specifyer) {
-                formatter = spyApi.formatters[specifyer];
-
-                if (typeof formatter == "function") {
-                    return formatter.call(null, spy, args);
-                } else if (!isNaN(parseInt(specifyer, 10))) {
-                    return sinon.format(args[specifyer - 1]);
-                }
-
-                return "%" + specifyer;
-            });
-        }
-    };
-
-    function delegateToCalls(method, matchAny, actual, notCalled) {
-        spyApi[method] = function () {
-            if (!this.called) {
-                if (notCalled) {
-                    return notCalled.apply(this, arguments);
-                }
-                return false;
-            }
-
-            var currentCall;
-            var matches = 0;
-
-            for (var i = 0, l = this.callCount; i < l; i += 1) {
-                currentCall = this.getCall(i);
-
-                if (currentCall[actual || method].apply(currentCall, arguments)) {
-                    matches += 1;
-
-                    if (matchAny) {
-                        return true;
-                    }
-                }
-            }
-
-            return matches === this.callCount;
-        };
-    }
-
-    delegateToCalls("calledOn", true);
-    delegateToCalls("alwaysCalledOn", false, "calledOn");
-    delegateToCalls("calledWith", true);
-    delegateToCalls("calledWithMatch", true);
-    delegateToCalls("alwaysCalledWith", false, "calledWith");
-    delegateToCalls("alwaysCalledWithMatch", false, "calledWithMatch");
-    delegateToCalls("calledWithExactly", true);
-    delegateToCalls("alwaysCalledWithExactly", false, "calledWithExactly");
-    delegateToCalls("neverCalledWith", false, "notCalledWith",
-        function () { return true; });
-    delegateToCalls("neverCalledWithMatch", false, "notCalledWithMatch",
-        function () { return true; });
-    delegateToCalls("threw", true);
-    delegateToCalls("alwaysThrew", false, "threw");
-    delegateToCalls("returned", true);
-    delegateToCalls("alwaysReturned", false, "returned");
-    delegateToCalls("calledWithNew", true);
-    delegateToCalls("alwaysCalledWithNew", false, "calledWithNew");
-    delegateToCalls("callArg", false, "callArgWith", function () {
-        throw new Error(this.toString() + " cannot call arg since it was not yet invoked.");
-    });
-    spyApi.callArgWith = spyApi.callArg;
-    delegateToCalls("callArgOn", false, "callArgOnWith", function () {
-        throw new Error(this.toString() + " cannot call arg since it was not yet invoked.");
-    });
-    spyApi.callArgOnWith = spyApi.callArgOn;
-    delegateToCalls("yield", false, "yield", function () {
-        throw new Error(this.toString() + " cannot yield since it was not yet invoked.");
-    });
-    // "invokeCallback" is an alias for "yield" since "yield" is invalid in strict mode.
-    spyApi.invokeCallback = spyApi.yield;
-    delegateToCalls("yieldOn", false, "yieldOn", function () {
-        throw new Error(this.toString() + " cannot yield since it was not yet invoked.");
-    });
-    delegateToCalls("yieldTo", false, "yieldTo", function (property) {
-        throw new Error(this.toString() + " cannot yield to '" + property +
-            "' since it was not yet invoked.");
-    });
-    delegateToCalls("yieldToOn", false, "yieldToOn", function (property) {
-        throw new Error(this.toString() + " cannot yield to '" + property +
-            "' since it was not yet invoked.");
-    });
-
-    spyApi.formatters = {
-        "c": function (spy) {
-            return sinon.timesInWords(spy.callCount);
-        },
-
-        "n": function (spy) {
-            return spy.toString();
-        },
-
-        "C": function (spy) {
-            var calls = [];
-
-            for (var i = 0, l = spy.callCount; i < l; ++i) {
-                var stringifiedCall = "    " + spy.getCall(i).toString();
-                if (/\n/.test(calls[i - 1])) {
-                    stringifiedCall = "\n" + stringifiedCall;
-                }
-                push.call(calls, stringifiedCall);
-            }
-
-            return calls.length > 0 ? "\n" + calls.join("\n") : "";
-        },
-
-        "t": function (spy) {
-            var objects = [];
-
-            for (var i = 0, l = spy.callCount; i < l; ++i) {
-                push.call(objects, sinon.format(spy.thisValues[i]));
-            }
-
-            return objects.join(", ");
-        },
-
-        "*": function (spy, args) {
-            var formatted = [];
-
-            for (var i = 0, l = args.length; i < l; ++i) {
-                push.call(formatted, sinon.format(args[i]));
-            }
-
-            return formatted.join(", ");
-        }
-    };
-
-    sinon.extend(spy, spyApi);
-
-    spy.spyCall = sinon.spyCall;
-    sinon.spy = spy;
-
-    if (typeof define === "function" && define.amd) {
-        define(["module"], function(module) { module.exports = spy; });
-    } else if (commonJSModule) {
-        module.exports = spy;
-    }
-}(typeof sinon == "object" && sinon || null));
-
-/**
- * @depend ../sinon.js
- */
-/*jslint eqeqeq: false, onevar: false*/
-/*global module, require, sinon, process, setImmediate, setTimeout*/
-/**
- * Stub behavior
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @author Tim Fischbach (mail@timfischbach.de)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-(function (sinon) {
-    var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
-
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon) {
-        return;
-    }
-
-    var slice = Array.prototype.slice;
-    var join = Array.prototype.join;
-    var proto;
-
-    var nextTick = (function () {
-        if (typeof process === "object" && typeof process.nextTick === "function") {
-            return process.nextTick;
-        } else if (typeof setImmediate === "function") {
-            return setImmediate;
-        } else {
-            return function (callback) {
-                setTimeout(callback, 0);
-            };
-        }
-    })();
-
-    function throwsException(error, message) {
-        if (typeof error == "string") {
-            this.exception = new Error(message || "");
-            this.exception.name = error;
-        } else if (!error) {
-            this.exception = new Error("Error");
-        } else {
-            this.exception = error;
-        }
-
-        return this;
-    }
-
-    function getCallback(behavior, args) {
-        var callArgAt = behavior.callArgAt;
-
-        if (callArgAt < 0) {
-            var callArgProp = behavior.callArgProp;
-
-            for (var i = 0, l = args.length; i < l; ++i) {
-                if (!callArgProp && typeof args[i] == "function") {
-                    return args[i];
-                }
-
-                if (callArgProp && args[i] &&
-                    typeof args[i][callArgProp] == "function") {
-                    return args[i][callArgProp];
-                }
-            }
-
-            return null;
-        }
-
-        return args[callArgAt];
-    }
-
-    function getCallbackError(behavior, func, args) {
-        if (behavior.callArgAt < 0) {
-            var msg;
-
-            if (behavior.callArgProp) {
-                msg = sinon.functionName(behavior.stub) +
-                    " expected to yield to '" + behavior.callArgProp +
-                    "', but no object with such a property was passed.";
-            } else {
-                msg = sinon.functionName(behavior.stub) +
-                    " expected to yield, but no callback was passed.";
-            }
-
-            if (args.length > 0) {
-                msg += " Received [" + join.call(args, ", ") + "]";
-            }
-
-            return msg;
-        }
-
-        return "argument at index " + behavior.callArgAt + " is not a function: " + func;
-    }
-
-    function callCallback(behavior, args) {
-        if (typeof behavior.callArgAt == "number") {
-            var func = getCallback(behavior, args);
-
-            if (typeof func != "function") {
-                throw new TypeError(getCallbackError(behavior, func, args));
-            }
-
-            if (behavior.callbackAsync) {
-                nextTick(function() {
-                    func.apply(behavior.callbackContext, behavior.callbackArguments);
-                });
-            } else {
-                func.apply(behavior.callbackContext, behavior.callbackArguments);
-            }
-        }
-    }
-
-    proto = {
-        create: function(stub) {
-            var behavior = sinon.extend({}, sinon.behavior);
-            delete behavior.create;
-            behavior.stub = stub;
-
-            return behavior;
-        },
-
-        isPresent: function() {
-            return (typeof this.callArgAt == 'number' ||
-                    this.exception ||
-                    typeof this.returnArgAt == 'number' ||
-                    this.returnThis ||
-                    this.returnValueDefined);
-        },
-
-        invoke: function(context, args) {
-            callCallback(this, args);
-
-            if (this.exception) {
-                throw this.exception;
-            } else if (typeof this.returnArgAt == 'number') {
-                return args[this.returnArgAt];
-            } else if (this.returnThis) {
-                return context;
-            }
-
-            return this.returnValue;
-        },
-
-        onCall: function(index) {
-            return this.stub.onCall(index);
-        },
-
-        onFirstCall: function() {
-            return this.stub.onFirstCall();
-        },
-
-        onSecondCall: function() {
-            return this.stub.onSecondCall();
-        },
-
-        onThirdCall: function() {
-            return this.stub.onThirdCall();
-        },
-
-        withArgs: function(/* arguments */) {
-            throw new Error('Defining a stub by invoking "stub.onCall(...).withArgs(...)" is not supported. ' +
-                            'Use "stub.withArgs(...).onCall(...)" to define sequential behavior for calls with certain arguments.');
-        },
-
-        callsArg: function callsArg(pos) {
-            if (typeof pos != "number") {
-                throw new TypeError("argument index is not number");
-            }
-
-            this.callArgAt = pos;
-            this.callbackArguments = [];
-            this.callbackContext = undefined;
-            this.callArgProp = undefined;
-            this.callbackAsync = false;
-
-            return this;
-        },
-
-        callsArgOn: function callsArgOn(pos, context) {
-            if (typeof pos != "number") {
-                throw new TypeError("argument index is not number");
-            }
-            if (typeof context != "object") {
-                throw new TypeError("argument context is not an object");
-            }
-
-            this.callArgAt = pos;
-            this.callbackArguments = [];
-            this.callbackContext = context;
-            this.callArgProp = undefined;
-            this.callbackAsync = false;
-
-            return this;
-        },
-
-        callsArgWith: function callsArgWith(pos) {
-            if (typeof pos != "number") {
-                throw new TypeError("argument index is not number");
-            }
-
-            this.callArgAt = pos;
-            this.callbackArguments = slice.call(arguments, 1);
-            this.callbackContext = undefined;
-            this.callArgProp = undefined;
-            this.callbackAsync = false;
-
-            return this;
-        },
-
-        callsArgOnWith: function callsArgWith(pos, context) {
-            if (typeof pos != "number") {
-                throw new TypeError("argument index is not number");
-            }
-            if (typeof context != "object") {
-                throw new TypeError("argument context is not an object");
-            }
-
-            this.callArgAt = pos;
-            this.callbackArguments = slice.call(arguments, 2);
-            this.callbackContext = context;
-            this.callArgProp = undefined;
-            this.callbackAsync = false;
-
-            return this;
-        },
-
-        yields: function () {
-            this.callArgAt = -1;
-            this.callbackArguments = slice.call(arguments, 0);
-            this.callbackContext = undefined;
-            this.callArgProp = undefined;
-            this.callbackAsync = false;
-
-            return this;
-        },
-
-        yieldsOn: function (context) {
-            if (typeof context != "object") {
-                throw new TypeError("argument context is not an object");
-            }
-
-            this.callArgAt = -1;
-            this.callbackArguments = slice.call(arguments, 1);
-            this.callbackContext = context;
-            this.callArgProp = undefined;
-            this.callbackAsync = false;
-
-            return this;
-        },
-
-        yieldsTo: function (prop) {
-            this.callArgAt = -1;
-            this.callbackArguments = slice.call(arguments, 1);
-            this.callbackContext = undefined;
-            this.callArgProp = prop;
-            this.callbackAsync = false;
-
-            return this;
-        },
-
-        yieldsToOn: function (prop, context) {
-            if (typeof context != "object") {
-                throw new TypeError("argument context is not an object");
-            }
-
-            this.callArgAt = -1;
-            this.callbackArguments = slice.call(arguments, 2);
-            this.callbackContext = context;
-            this.callArgProp = prop;
-            this.callbackAsync = false;
-
-            return this;
-        },
-
-
-        "throws": throwsException,
-        throwsException: throwsException,
-
-        returns: function returns(value) {
-            this.returnValue = value;
-            this.returnValueDefined = true;
-
-            return this;
-        },
-
-        returnsArg: function returnsArg(pos) {
-            if (typeof pos != "number") {
-                throw new TypeError("argument index is not number");
-            }
-
-            this.returnArgAt = pos;
-
-            return this;
-        },
-
-        returnsThis: function returnsThis() {
-            this.returnThis = true;
-
-            return this;
-        }
-    };
-
-    // create asynchronous versions of callsArg* and yields* methods
-    for (var method in proto) {
-        // need to avoid creating anotherasync versions of the newly added async methods
-        if (proto.hasOwnProperty(method) &&
-            method.match(/^(callsArg|yields)/) &&
-            !method.match(/Async/)) {
-            proto[method + 'Async'] = (function (syncFnName) {
-                return function () {
-                    var result = this[syncFnName].apply(this, arguments);
-                    this.callbackAsync = true;
-                    return result;
-                };
-            })(method);
-        }
-    }
-
-    sinon.behavior = proto;
-
-    if (typeof define === "function" && define.amd) {
-        define(["module"], function(module) { module.exports = proto; });
-    } else if (commonJSModule) {
-        module.exports = proto;
-    }
-}(typeof sinon == "object" && sinon || null));
-
-/**
- * @depend ../sinon.js
- * @depend spy.js
- * @depend behavior.js
- */
-/*jslint eqeqeq: false, onevar: false*/
-/*global module, require, sinon*/
-/**
- * Stub functions
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-(function (sinon) {
-    var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
-
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon) {
-        return;
-    }
-
-    function stub(object, property, func) {
-        if (!!func && typeof func != "function") {
-            throw new TypeError("Custom stub should be function");
-        }
-
-        var wrapper;
-
-        if (func) {
-            wrapper = sinon.spy && sinon.spy.create ? sinon.spy.create(func) : func;
-        } else {
-            wrapper = stub.create();
-        }
-
-        if (!object && typeof property === "undefined") {
-            return sinon.stub.create();
-        }
-
-        if (typeof property === "undefined" && typeof object == "object") {
-            for (var prop in object) {
-                if (typeof object[prop] === "function") {
-                    stub(object, prop);
-                }
-            }
-
-            return object;
-        }
-
-        return sinon.wrapMethod(object, property, wrapper);
-    }
-
-    function getDefaultBehavior(stub) {
-        return stub.defaultBehavior || getParentBehaviour(stub) || sinon.behavior.create(stub);
-    }
-
-    function getParentBehaviour(stub) {
-        return (stub.parent && getCurrentBehavior(stub.parent));
-    }
-
-    function getCurrentBehavior(stub) {
-        var behavior = stub.behaviors[stub.callCount - 1];
-        return behavior && behavior.isPresent() ? behavior : getDefaultBehavior(stub);
-    }
-
-    var uuid = 0;
-
-    sinon.extend(stub, (function () {
-        var proto = {
-            create: function create() {
-                var functionStub = function () {
-                    return getCurrentBehavior(functionStub).invoke(this, arguments);
-                };
-
-                functionStub.id = "stub#" + uuid++;
-                var orig = functionStub;
-                functionStub = sinon.spy.create(functionStub);
-                functionStub.func = orig;
-
-                sinon.extend(functionStub, stub);
-                functionStub._create = sinon.stub.create;
-                functionStub.displayName = "stub";
-                functionStub.toString = sinon.functionToString;
-
-                functionStub.defaultBehavior = null;
-                functionStub.behaviors = [];
-
-                return functionStub;
-            },
-
-            resetBehavior: function () {
-                var i;
-
-                this.defaultBehavior = null;
-                this.behaviors = [];
-
-                delete this.returnValue;
-                delete this.returnArgAt;
-                this.returnThis = false;
-
-                if (this.fakes) {
-                    for (i = 0; i < this.fakes.length; i++) {
-                        this.fakes[i].resetBehavior();
-                    }
-                }
-            },
-
-            onCall: function(index) {
-                if (!this.behaviors[index]) {
-                    this.behaviors[index] = sinon.behavior.create(this);
-                }
-
-                return this.behaviors[index];
-            },
-
-            onFirstCall: function() {
-                return this.onCall(0);
-            },
-
-            onSecondCall: function() {
-                return this.onCall(1);
-            },
-
-            onThirdCall: function() {
-                return this.onCall(2);
-            }
-        };
-
-        for (var method in sinon.behavior) {
-            if (sinon.behavior.hasOwnProperty(method) &&
-                !proto.hasOwnProperty(method) &&
-                method != 'create' &&
-                method != 'withArgs' &&
-                method != 'invoke') {
-                proto[method] = (function(behaviorMethod) {
-                    return function() {
-                        this.defaultBehavior = this.defaultBehavior || sinon.behavior.create(this);
-                        this.defaultBehavior[behaviorMethod].apply(this.defaultBehavior, arguments);
-                        return this;
-                    };
-                }(method));
-            }
-        }
-
-        return proto;
-    }()));
-
-    sinon.stub = stub;
-
-    if (typeof define === "function" && define.amd) {
-        define(["module"], function(module) { module.exports = stub; });
-    } else if (commonJSModule) {
-        module.exports = stub;
-    }
-}(typeof sinon == "object" && sinon || null));
-
-/**
- * @depend ../sinon.js
- * @depend stub.js
- */
-/*jslint eqeqeq: false, onevar: false, nomen: false*/
-/*global module, require, sinon*/
-/**
- * Mock functions.
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-(function (sinon) {
-    var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
-    var push = [].push;
-    var match;
-
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon) {
-        return;
-    }
-
-    match = sinon.match;
-
-    if (!match && commonJSModule) {
-        match = require("./match");
-    }
-
-    function mock(object) {
-        if (!object) {
-            return sinon.expectation.create("Anonymous mock");
-        }
-
-        return mock.create(object);
-    }
-
-    sinon.mock = mock;
-
-    sinon.extend(mock, (function () {
-        function each(collection, callback) {
-            if (!collection) {
-                return;
-            }
-
-            for (var i = 0, l = collection.length; i < l; i += 1) {
-                callback(collection[i]);
-            }
-        }
-
-        return {
-            create: function create(object) {
-                if (!object) {
-                    throw new TypeError("object is null");
-                }
-
-                var mockObject = sinon.extend({}, mock);
-                mockObject.object = object;
-                delete mockObject.create;
-
-                return mockObject;
-            },
-
-            expects: function expects(method) {
-                if (!method) {
-                    throw new TypeError("method is falsy");
-                }
-
-                if (!this.expectations) {
-                    this.expectations = {};
-                    this.proxies = [];
-                }
-
-                if (!this.expectations[method]) {
-                    this.expectations[method] = [];
-                    var mockObject = this;
-
-                    sinon.wrapMethod(this.object, method, function () {
-                        return mockObject.invokeMethod(method, this, arguments);
-                    });
-
-                    push.call(this.proxies, method);
-                }
-
-                var expectation = sinon.expectation.create(method);
-                push.call(this.expectations[method], expectation);
-
-                return expectation;
-            },
-
-            restore: function restore() {
-                var object = this.object;
-
-                each(this.proxies, function (proxy) {
-                    if (typeof object[proxy].restore == "function") {
-                        object[proxy].restore();
-                    }
-                });
-            },
-
-            verify: function verify() {
-                var expectations = this.expectations || {};
-                var messages = [], met = [];
-
-                each(this.proxies, function (proxy) {
-                    each(expectations[proxy], function (expectation) {
-                        if (!expectation.met()) {
-                            push.call(messages, expectation.toString());
-                        } else {
-                            push.call(met, expectation.toString());
-                        }
-                    });
-                });
-
-                this.restore();
-
-                if (messages.length > 0) {
-                    sinon.expectation.fail(messages.concat(met).join("\n"));
-                } else {
-                    sinon.expectation.pass(messages.concat(met).join("\n"));
-                }
-
-                return true;
-            },
-
-            invokeMethod: function invokeMethod(method, thisValue, args) {
-                var expectations = this.expectations && this.expectations[method];
-                var length = expectations && expectations.length || 0, i;
-
-                for (i = 0; i < length; i += 1) {
-                    if (!expectations[i].met() &&
-                        expectations[i].allowsCall(thisValue, args)) {
-                        return expectations[i].apply(thisValue, args);
-                    }
-                }
-
-                var messages = [], available, exhausted = 0;
-
-                for (i = 0; i < length; i += 1) {
-                    if (expectations[i].allowsCall(thisValue, args)) {
-                        available = available || expectations[i];
-                    } else {
-                        exhausted += 1;
-                    }
-                    push.call(messages, "    " + expectations[i].toString());
-                }
-
-                if (exhausted === 0) {
-                    return available.apply(thisValue, args);
-                }
-
-                messages.unshift("Unexpected call: " + sinon.spyCall.toString.call({
-                    proxy: method,
-                    args: args
-                }));
-
-                sinon.expectation.fail(messages.join("\n"));
-            }
-        };
-    }()));
-
-    var times = sinon.timesInWords;
-
-    sinon.expectation = (function () {
-        var slice = Array.prototype.slice;
-        var _invoke = sinon.spy.invoke;
-
-        function callCountInWords(callCount) {
-            if (callCount == 0) {
-                return "never called";
-            } else {
-                return "called " + times(callCount);
-            }
-        }
-
-        function expectedCallCountInWords(expectation) {
-            var min = expectation.minCalls;
-            var max = expectation.maxCalls;
-
-            if (typeof min == "number" && typeof max == "number") {
-                var str = times(min);
-
-                if (min != max) {
-                    str = "at least " + str + " and at most " + times(max);
-                }
-
-                return str;
-            }
-
-            if (typeof min == "number") {
-                return "at least " + times(min);
-            }
-
-            return "at most " + times(max);
-        }
-
-        function receivedMinCalls(expectation) {
-            var hasMinLimit = typeof expectation.minCalls == "number";
-            return !hasMinLimit || expectation.callCount >= expectation.minCalls;
-        }
-
-        function receivedMaxCalls(expectation) {
-            if (typeof expectation.maxCalls != "number") {
-                return false;
-            }
-
-            return expectation.callCount == expectation.maxCalls;
-        }
-
-        function verifyMatcher(possibleMatcher, arg){
-            if (match && match.isMatcher(possibleMatcher)) {
-                return possibleMatcher.test(arg);
-            } else {
-                return true;
-            }
-        }
-
-        return {
-            minCalls: 1,
-            maxCalls: 1,
-
-            create: function create(methodName) {
-                var expectation = sinon.extend(sinon.stub.create(), sinon.expectation);
-                delete expectation.create;
-                expectation.method = methodName;
-
-                return expectation;
-            },
-
-            invoke: function invoke(func, thisValue, args) {
-                this.verifyCallAllowed(thisValue, args);
-
-                return _invoke.apply(this, arguments);
-            },
-
-            atLeast: function atLeast(num) {
-                if (typeof num != "number") {
-                    throw new TypeError("'" + num + "' is not number");
-                }
-
-                if (!this.limitsSet) {
-                    this.maxCalls = null;
-                    this.limitsSet = true;
-                }
-
-                this.minCalls = num;
-
-                return this;
-            },
-
-            atMost: function atMost(num) {
-                if (typeof num != "number") {
-                    throw new TypeError("'" + num + "' is not number");
-                }
-
-                if (!this.limitsSet) {
-                    this.minCalls = null;
-                    this.limitsSet = true;
-                }
-
-                this.maxCalls = num;
-
-                return this;
-            },
-
-            never: function never() {
-                return this.exactly(0);
-            },
-
-            once: function once() {
-                return this.exactly(1);
-            },
-
-            twice: function twice() {
-                return this.exactly(2);
-            },
-
-            thrice: function thrice() {
-                return this.exactly(3);
-            },
-
-            exactly: function exactly(num) {
-                if (typeof num != "number") {
-                    throw new TypeError("'" + num + "' is not a number");
-                }
-
-                this.atLeast(num);
-                return this.atMost(num);
-            },
-
-            met: function met() {
-                return !this.failed && receivedMinCalls(this);
-            },
-
-            verifyCallAllowed: function verifyCallAllowed(thisValue, args) {
-                if (receivedMaxCalls(this)) {
-                    this.failed = true;
-                    sinon.expectation.fail(this.method + " already called " + times(this.maxCalls));
-                }
-
-                if ("expectedThis" in this && this.expectedThis !== thisValue) {
-                    sinon.expectation.fail(this.method + " called with " + thisValue + " as thisValue, expected " +
-                        this.expectedThis);
-                }
-
-                if (!("expectedArguments" in this)) {
-                    return;
-                }
-
-                if (!args) {
-                    sinon.expectation.fail(this.method + " received no arguments, expected " +
-                        sinon.format(this.expectedArguments));
-                }
-
-                if (args.length < this.expectedArguments.length) {
-                    sinon.expectation.fail(this.method + " received too few arguments (" + sinon.format(args) +
-                        "), expected " + sinon.format(this.expectedArguments));
-                }
-
-                if (this.expectsExactArgCount &&
-                    args.length != this.expectedArguments.length) {
-                    sinon.expectation.fail(this.method + " received too many arguments (" + sinon.format(args) +
-                        "), expected " + sinon.format(this.expectedArguments));
-                }
-
-                for (var i = 0, l = this.expectedArguments.length; i < l; i += 1) {
-
-                    if (!verifyMatcher(this.expectedArguments[i],args[i])) {
-                        sinon.expectation.fail(this.method + " received wrong arguments " + sinon.format(args) +
-                            ", didn't match " + this.expectedArguments.toString());
-                    }
-
-                    if (!sinon.deepEqual(this.expectedArguments[i], args[i])) {
-                        sinon.expectation.fail(this.method + " received wrong arguments " + sinon.format(args) +
-                            ", expected " + sinon.format(this.expectedArguments));
-                    }
-                }
-            },
-
-            allowsCall: function allowsCall(thisValue, args) {
-                if (this.met() && receivedMaxCalls(this)) {
-                    return false;
-                }
-
-                if ("expectedThis" in this && this.expectedThis !== thisValue) {
-                    return false;
-                }
-
-                if (!("expectedArguments" in this)) {
-                    return true;
-                }
-
-                args = args || [];
-
-                if (args.length < this.expectedArguments.length) {
-                    return false;
-                }
-
-                if (this.expectsExactArgCount &&
-                    args.length != this.expectedArguments.length) {
-                    return false;
-                }
-
-                for (var i = 0, l = this.expectedArguments.length; i < l; i += 1) {
-                    if (!verifyMatcher(this.expectedArguments[i],args[i])) {
-                        return false;
-                    }
-
-                    if (!sinon.deepEqual(this.expectedArguments[i], args[i])) {
-                        return false;
-                    }
-                }
-
-                return true;
-            },
-
-            withArgs: function withArgs() {
-                this.expectedArguments = slice.call(arguments);
-                return this;
-            },
-
-            withExactArgs: function withExactArgs() {
-                this.withArgs.apply(this, arguments);
-                this.expectsExactArgCount = true;
-                return this;
-            },
-
-            on: function on(thisValue) {
-                this.expectedThis = thisValue;
-                return this;
-            },
-
-            toString: function () {
-                var args = (this.expectedArguments || []).slice();
-
-                if (!this.expectsExactArgCount) {
-                    push.call(args, "[...]");
-                }
-
-                var callStr = sinon.spyCall.toString.call({
-                    proxy: this.method || "anonymous mock expectation",
-                    args: args
-                });
-
-                var message = callStr.replace(", [...", "[, ...") + " " +
-                    expectedCallCountInWords(this);
-
-                if (this.met()) {
-                    return "Expectation met: " + message;
-                }
-
-                return "Expected " + message + " (" +
-                    callCountInWords(this.callCount) + ")";
-            },
-
-            verify: function verify() {
-                if (!this.met()) {
-                    sinon.expectation.fail(this.toString());
-                } else {
-                    sinon.expectation.pass(this.toString());
-                }
-
-                return true;
-            },
-
-            pass: function(message) {
-              sinon.assert.pass(message);
-            },
-            fail: function (message) {
-                var exception = new Error(message);
-                exception.name = "ExpectationError";
-
-                throw exception;
-            }
-        };
-    }());
-
-    sinon.mock = mock;
-
-    if (typeof define === "function" && define.amd) {
-        define(["module"], function(module) { module.exports = mock; });
-    } else if (commonJSModule) {
-        module.exports = mock;
-    }
-}(typeof sinon == "object" && sinon || null));
-
-/**
- * @depend ../sinon.js
- * @depend stub.js
- * @depend mock.js
- */
-/*jslint eqeqeq: false, onevar: false, forin: true*/
-/*global module, require, sinon*/
-/**
- * Collections of stubs, spies and mocks.
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-(function (sinon) {
-    var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
-    var push = [].push;
-    var hasOwnProperty = Object.prototype.hasOwnProperty;
-
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon) {
-        return;
-    }
-
-    function getFakes(fakeCollection) {
-        if (!fakeCollection.fakes) {
-            fakeCollection.fakes = [];
-        }
-
-        return fakeCollection.fakes;
-    }
-
-    function each(fakeCollection, method) {
-        var fakes = getFakes(fakeCollection);
-
-        for (var i = 0, l = fakes.length; i < l; i += 1) {
-            if (typeof fakes[i][method] == "function") {
-                fakes[i][method]();
-            }
-        }
-    }
-
-    function compact(fakeCollection) {
-        var fakes = getFakes(fakeCollection);
-        var i = 0;
-        while (i < fakes.length) {
-          fakes.splice(i, 1);
-        }
-    }
-
-    var collection = {
-        verify: function resolve() {
-            each(this, "verify");
-        },
-
-        restore: function restore() {
-            each(this, "restore");
-            compact(this);
-        },
-
-        verifyAndRestore: function verifyAndRestore() {
-            var exception;
-
-            try {
-                this.verify();
-            } catch (e) {
-                exception = e;
-            }
-
-            this.restore();
-
-            if (exception) {
-                throw exception;
-            }
-        },
-
-        add: function add(fake) {
-            push.call(getFakes(this), fake);
-            return fake;
-        },
-
-        spy: function spy() {
-            return this.add(sinon.spy.apply(sinon, arguments));
-        },
-
-        stub: function stub(object, property, value) {
-            if (property) {
-                var original = object[property];
-
-                if (typeof original != "function") {
-                    if (!hasOwnProperty.call(object, property)) {
-                        throw new TypeError("Cannot stub non-existent own property " + property);
-                    }
-
-                    object[property] = value;
-
-                    return this.add({
-                        restore: function () {
-                            object[property] = original;
-                        }
-                    });
-                }
-            }
-            if (!property && !!object && typeof object == "object") {
-                var stubbedObj = sinon.stub.apply(sinon, arguments);
-
-                for (var prop in stubbedObj) {
-                    if (typeof stubbedObj[prop] === "function") {
-                        this.add(stubbedObj[prop]);
-                    }
-                }
-
-                return stubbedObj;
-            }
-
-            return this.add(sinon.stub.apply(sinon, arguments));
-        },
-
-        mock: function mock() {
-            return this.add(sinon.mock.apply(sinon, arguments));
-        },
-
-        inject: function inject(obj) {
-            var col = this;
-
-            obj.spy = function () {
-                return col.spy.apply(col, arguments);
-            };
-
-            obj.stub = function () {
-                return col.stub.apply(col, arguments);
-            };
-
-            obj.mock = function () {
-                return col.mock.apply(col, arguments);
-            };
-
-            return obj;
-        }
-    };
-
-    sinon.collection = collection;
-
-    if (typeof define === "function" && define.amd) {
-        define(["module"], function(module) { module.exports = collection; });
-    } else if (commonJSModule) {
-        module.exports = collection;
-    }
-}(typeof sinon == "object" && sinon || null));
-
-/*jslint eqeqeq: false, plusplus: false, evil: true, onevar: false, browser: true, forin: false*/
-/*global module, require, window*/
-/**
- * Fake timer API
- * setTimeout
- * setInterval
- * clearTimeout
- * clearInterval
- * tick
- * reset
- * Date
- *
- * Inspired by jsUnitMockTimeOut from JsUnit
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-if (typeof sinon == "undefined") {
-    var sinon = {};
-}
-
-(function (global) {
-    // node expects setTimeout/setInterval to return a fn object w/ .ref()/.unref()
-    // browsers, a number.
-    // see https://github.com/cjohansen/Sinon.JS/pull/436
-    var timeoutResult = setTimeout(function() {}, 0);
-    var addTimerReturnsObject = typeof timeoutResult === 'object';
-    clearTimeout(timeoutResult);
-
-    var id = 1;
-
-    function addTimer(args, recurring) {
-        if (args.length === 0) {
-            throw new Error("Function requires at least 1 parameter");
-        }
-
-        if (typeof args[0] === "undefined") {
-            throw new Error("Callback must be provided to timer calls");
-        }
-
-        var toId = id++;
-        var delay = args[1] || 0;
-
-        if (!this.timeouts) {
-            this.timeouts = {};
-        }
-
-        this.timeouts[toId] = {
-            id: toId,
-            func: args[0],
-            callAt: this.now + delay,
-            invokeArgs: Array.prototype.slice.call(args, 2)
-        };
-
-        if (recurring === true) {
-            this.timeouts[toId].interval = delay;
-        }
-
-        if (addTimerReturnsObject) {
-            return {
-                id: toId,
-                ref: function() {},
-                unref: function() {}
-            };
-        }
-        else {
-            return toId;
-        }
-    }
-
-    function parseTime(str) {
-        if (!str) {
-            return 0;
-        }
-
-        var strings = str.split(":");
-        var l = strings.length, i = l;
-        var ms = 0, parsed;
-
-        if (l > 3 || !/^(\d\d:){0,2}\d\d?$/.test(str)) {
-            throw new Error("tick only understands numbers and 'h:m:s'");
-        }
-
-        while (i--) {
-            parsed = parseInt(strings[i], 10);
-
-            if (parsed >= 60) {
-                throw new Error("Invalid time " + str);
-            }
-
-            ms += parsed * Math.pow(60, (l - i - 1));
-        }
-
-        return ms * 1000;
-    }
-
-    function createObject(object) {
-        var newObject;
-
-        if (Object.create) {
-            newObject = Object.create(object);
-        } else {
-            var F = function () {};
-            F.prototype = object;
-            newObject = new F();
-        }
-
-        newObject.Date.clock = newObject;
-        return newObject;
-    }
-
-    sinon.clock = {
-        now: 0,
-
-        create: function create(now) {
-            var clock = createObject(this);
-
-            if (typeof now == "number") {
-                clock.now = now;
-            }
-
-            if (!!now && typeof now == "object") {
-                throw new TypeError("now should be milliseconds since UNIX epoch");
-            }
-
-            return clock;
-        },
-
-        setTimeout: function setTimeout(callback, timeout) {
-            return addTimer.call(this, arguments, false);
-        },
-
-        clearTimeout: function clearTimeout(timerId) {
-            if (!timerId) {
-                // null appears to be allowed in most browsers, and appears to be relied upon by some libraries, like Bootstrap carousel
-                return;
-            }
-            if (!this.timeouts) {
-                this.timeouts = [];
-            }
-            // in Node, timerId is an object with .ref()/.unref(), and
-            // its .id field is the actual timer id.
-            if (typeof timerId === 'object') {
-              timerId = timerId.id
-            }
-            if (timerId in this.timeouts) {
-                delete this.timeouts[timerId];
-            }
-        },
-
-        setInterval: function setInterval(callback, timeout) {
-            return addTimer.call(this, arguments, true);
-        },
-
-        clearInterval: function clearInterval(timerId) {
-            this.clearTimeout(timerId);
-        },
-
-        setImmediate: function setImmediate(callback) {
-            var passThruArgs = Array.prototype.slice.call(arguments, 1);
-
-            return addTimer.call(this, [callback, 0].concat(passThruArgs), false);
-        },
-
-        clearImmediate: function clearImmediate(timerId) {
-            this.clearTimeout(timerId);
-        },
-
-        tick: function tick(ms) {
-            ms = typeof ms == "number" ? ms : parseTime(ms);
-            var tickFrom = this.now, tickTo = this.now + ms, previous = this.now;
-            var timer = this.firstTimerInRange(tickFrom, tickTo);
-
-            var firstException;
-            while (timer && tickFrom <= tickTo) {
-                if (this.timeouts[timer.id]) {
-                    tickFrom = this.now = timer.callAt;
-                    try {
-                      this.callTimer(timer);
-                    } catch (e) {
-                      firstException = firstException || e;
-                    }
-                }
-
-                timer = this.firstTimerInRange(previous, tickTo);
-                previous = tickFrom;
-            }
-
-            this.now = tickTo;
-
-            if (firstException) {
-              throw firstException;
-            }
-
-            return this.now;
-        },
-
-        firstTimerInRange: function (from, to) {
-            var timer, smallest = null, originalTimer;
-
-            for (var id in this.timeouts) {
-                if (this.timeouts.hasOwnProperty(id)) {
-                    if (this.timeouts[id].callAt < from || this.timeouts[id].callAt > to) {
-                        continue;
-                    }
-
-                    if (smallest === null || this.timeouts[id].callAt < smallest) {
-                        originalTimer = this.timeouts[id];
-                        smallest = this.timeouts[id].callAt;
-
-                        timer = {
-                            func: this.timeouts[id].func,
-                            callAt: this.timeouts[id].callAt,
-                            interval: this.timeouts[id].interval,
-                            id: this.timeouts[id].id,
-                            invokeArgs: this.timeouts[id].invokeArgs
-                        };
-                    }
-                }
-            }
-
-            return timer || null;
-        },
-
-        callTimer: function (timer) {
-            if (typeof timer.interval == "number") {
-                this.timeouts[timer.id].callAt += timer.interval;
-            } else {
-                delete this.timeouts[timer.id];
-            }
-
-            try {
-                if (typeof timer.func == "function") {
-                    timer.func.apply(null, timer.invokeArgs);
-                } else {
-                    eval(timer.func);
-                }
-            } catch (e) {
-              var exception = e;
-            }
-
-            if (!this.timeouts[timer.id]) {
-                if (exception) {
-                  throw exception;
-                }
-                return;
-            }
-
-            if (exception) {
-              throw exception;
-            }
-        },
-
-        reset: function reset() {
-            this.timeouts = {};
-        },
-
-        Date: (function () {
-            var NativeDate = Date;
-
-            function ClockDate(year, month, date, hour, minute, second, ms) {
-                // Defensive and verbose to avoid potential harm in passing
-                // explicit undefined when user does not pass argument
-                switch (arguments.length) {
-                case 0:
-                    return new NativeDate(ClockDate.clock.now);
-                case 1:
-                    return new NativeDate(year);
-                case 2:
-                    return new NativeDate(year, month);
-                case 3:
-                    return new NativeDate(year, month, date);
-                case 4:
-                    return new NativeDate(year, month, date, hour);
-                case 5:
-                    return new NativeDate(year, month, date, hour, minute);
-                case 6:
-                    return new NativeDate(year, month, date, hour, minute, second);
-                default:
-                    return new NativeDate(year, month, date, hour, minute, second, ms);
-                }
-            }
-
-            return mirrorDateProperties(ClockDate, NativeDate);
-        }())
-    };
-
-    function mirrorDateProperties(target, source) {
-        if (source.now) {
-            target.now = function now() {
-                return target.clock.now;
-            };
-        } else {
-            delete target.now;
-        }
-
-        if (source.toSource) {
-            target.toSource = function toSource() {
-                return source.toSource();
-            };
-        } else {
-            delete target.toSource;
-        }
-
-        target.toString = function toString() {
-            return source.toString();
-        };
-
-        target.prototype = source.prototype;
-        target.parse = source.parse;
-        target.UTC = source.UTC;
-        target.prototype.toUTCString = source.prototype.toUTCString;
-
-        for (var prop in source) {
-            if (source.hasOwnProperty(prop)) {
-                target[prop] = source[prop];
-            }
-        }
-
-        return target;
-    }
-
-    var methods = ["Date", "setTimeout", "setInterval",
-                   "clearTimeout", "clearInterval"];
-
-    if (typeof global.setImmediate !== "undefined") {
-        methods.push("setImmediate");
-    }
-
-    if (typeof global.clearImmediate !== "undefined") {
-        methods.push("clearImmediate");
-    }
-
-    function restore() {
-        var method;
-
-        for (var i = 0, l = this.methods.length; i < l; i++) {
-            method = this.methods[i];
-
-            if (global[method].hadOwnProperty) {
-                global[method] = this["_" + method];
-            } else {
-                try {
-                    delete global[method];
-                } catch (e) {}
-            }
-        }
-
-        // Prevent multiple executions which will completely remove these props
-        this.methods = [];
-    }
-
-    function stubGlobal(method, clock) {
-        clock[method].hadOwnProperty = Object.prototype.hasOwnProperty.call(global, method);
-        clock["_" + method] = global[method];
-
-        if (method == "Date") {
-            var date = mirrorDateProperties(clock[method], global[method]);
-            global[method] = date;
-        } else {
-            global[method] = function () {
-                return clock[method].apply(clock, arguments);
-            };
-
-            for (var prop in clock[method]) {
-                if (clock[method].hasOwnProperty(prop)) {
-                    global[method][prop] = clock[method][prop];
-                }
-            }
-        }
-
-        global[method].clock = clock;
-    }
-
-    sinon.useFakeTimers = function useFakeTimers(now) {
-        var clock = sinon.clock.create(now);
-        clock.restore = restore;
-        clock.methods = Array.prototype.slice.call(arguments,
-                                                   typeof now == "number" ? 1 : 0);
-
-        if (clock.methods.length === 0) {
-            clock.methods = methods;
-        }
-
-        for (var i = 0, l = clock.methods.length; i < l; i++) {
-            stubGlobal(clock.methods[i], clock);
-        }
-
-        return clock;
-    };
-}(typeof global != "undefined" && typeof global !== "function" ? global : this));
-
-sinon.timers = {
-    setTimeout: setTimeout,
-    clearTimeout: clearTimeout,
-    setImmediate: (typeof setImmediate !== "undefined" ? setImmediate : undefined),
-    clearImmediate: (typeof clearImmediate !== "undefined" ? clearImmediate: undefined),
-    setInterval: setInterval,
-    clearInterval: clearInterval,
-    Date: Date
-};
-
-if (typeof module !== 'undefined' && module.exports) {
-    module.exports = sinon;
-}
-
-/*jslint eqeqeq: false, onevar: false*/
-/*global sinon, module, require, ActiveXObject, XMLHttpRequest, DOMParser*/
-/**
- * Minimal Event interface implementation
- *
- * Original implementation by Sven Fuchs: https://gist.github.com/995028
- * Modifications and tests by Christian Johansen.
- *
- * @author Sven Fuchs (svenfuchs@artweb-design.de)
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2011 Sven Fuchs, Christian Johansen
- */
-
-if (typeof sinon == "undefined") {
-    this.sinon = {};
-}
-
-(function () {
-    var push = [].push;
-
-    sinon.Event = function Event(type, bubbles, cancelable, target) {
-        this.initEvent(type, bubbles, cancelable, target);
-    };
-
-    sinon.Event.prototype = {
-        initEvent: function(type, bubbles, cancelable, target) {
-            this.type = type;
-            this.bubbles = bubbles;
-            this.cancelable = cancelable;
-            this.target = target;
-        },
-
-        stopPropagation: function () {},
-
-        preventDefault: function () {
-            this.defaultPrevented = true;
-        }
-    };
-
-    sinon.ProgressEvent = function ProgressEvent(type, progressEventRaw, target) {
-        this.initEvent(type, false, false, target);
-        this.loaded = progressEventRaw.loaded || null;
-        this.total = progressEventRaw.total || null;
-    };
-
-    sinon.ProgressEvent.prototype = new sinon.Event();
-
-    sinon.ProgressEvent.prototype.constructor =  sinon.ProgressEvent;
-
-    sinon.CustomEvent = function CustomEvent(type, customData, target) {
-        this.initEvent(type, false, false, target);
-        this.detail = customData.detail || null;
-    };
-
-    sinon.CustomEvent.prototype = new sinon.Event();
-
-    sinon.CustomEvent.prototype.constructor =  sinon.CustomEvent;
-
-    sinon.EventTarget = {
-        addEventListener: function addEventListener(event, listener) {
-            this.eventListeners = this.eventListeners || {};
-            this.eventListeners[event] = this.eventListeners[event] || [];
-            push.call(this.eventListeners[event], listener);
-        },
-
-        removeEventListener: function removeEventListener(event, listener) {
-            var listeners = this.eventListeners && this.eventListeners[event] || [];
-
-            for (var i = 0, l = listeners.length; i < l; ++i) {
-                if (listeners[i] == listener) {
-                    return listeners.splice(i, 1);
-                }
-            }
-        },
-
-        dispatchEvent: function dispatchEvent(event) {
-            var type = event.type;
-            var listeners = this.eventListeners && this.eventListeners[type] || [];
-
-            for (var i = 0; i < listeners.length; i++) {
-                if (typeof listeners[i] == "function") {
-                    listeners[i].call(this, event);
-                } else {
-                    listeners[i].handleEvent(event);
-                }
-            }
-
-            return !!event.defaultPrevented;
-        }
-    };
-}());
-
-/**
- * @depend ../../sinon.js
- * @depend event.js
- */
-/*jslint eqeqeq: false, onevar: false*/
-/*global sinon, module, require, ActiveXObject, XMLHttpRequest, DOMParser*/
-/**
- * Fake XMLHttpRequest object
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-// wrapper for global
-(function(global) {
-    if (typeof sinon === "undefined") {
-        global.sinon = {};
-    }
-
-    var supportsProgress = typeof ProgressEvent !== "undefined";
-    var supportsCustomEvent = typeof CustomEvent !== "undefined";
-    sinon.xhr = { XMLHttpRequest: global.XMLHttpRequest };
-    var xhr = sinon.xhr;
-    xhr.GlobalXMLHttpRequest = global.XMLHttpRequest;
-    xhr.GlobalActiveXObject = global.ActiveXObject;
-    xhr.supportsActiveX = typeof xhr.GlobalActiveXObject != "undefined";
-    xhr.supportsXHR = typeof xhr.GlobalXMLHttpRequest != "undefined";
-    xhr.workingXHR = xhr.supportsXHR ? xhr.GlobalXMLHttpRequest : xhr.supportsActiveX
-                                     ? function() { return new xhr.GlobalActiveXObject("MSXML2.XMLHTTP.3.0") } : false;
-    xhr.supportsCORS = xhr.supportsXHR && 'withCredentials' in (new sinon.xhr.GlobalXMLHttpRequest());
-
-    /*jsl:ignore*/
-    var unsafeHeaders = {
-        "Accept-Charset": true,
-        "Accept-Encoding": true,
-        "Connection": true,
-        "Content-Length": true,
-        "Cookie": true,
-        "Cookie2": true,
-        "Content-Transfer-Encoding": true,
-        "Date": true,
-        "Expect": true,
-        "Host": true,
-        "Keep-Alive": true,
-        "Referer": true,
-        "TE": true,
-        "Trailer": true,
-        "Transfer-Encoding": true,
-        "Upgrade": true,
-        "User-Agent": true,
-        "Via": true
-    };
-    /*jsl:end*/
-
-    function FakeXMLHttpRequest() {
-        this.readyState = FakeXMLHttpRequest.UNSENT;
-        this.requestHeaders = {};
-        this.requestBody = null;
-        this.status = 0;
-        this.statusText = "";
-        this.upload = new UploadProgress();
-        if (sinon.xhr.supportsCORS) {
-            this.withCredentials = false;
-        }
-
-
-        var xhr = this;
-        var events = ["loadstart", "load", "abort", "loadend"];
-
-        function addEventListener(eventName) {
-            xhr.addEventListener(eventName, function (event) {
-                var listener = xhr["on" + eventName];
-
-                if (listener && typeof listener == "function") {
-                    listener.call(this, event);
-                }
-            });
-        }
-
-        for (var i = events.length - 1; i >= 0; i--) {
-            addEventListener(events[i]);
-        }
-
-        if (typeof FakeXMLHttpRequest.onCreate == "function") {
-            FakeXMLHttpRequest.onCreate(this);
-        }
-    }
-
-    // An upload object is created for each
-    // FakeXMLHttpRequest and allows upload
-    // events to be simulated using uploadProgress
-    // and uploadError.
-    function UploadProgress() {
-        this.eventListeners = {
-            "progress": [],
-            "load": [],
-            "abort": [],
-            "error": []
-        }
-    }
-
-    UploadProgress.prototype.addEventListener = function(event, listener) {
-        this.eventListeners[event].push(listener);
-    };
-
-    UploadProgress.prototype.removeEventListener = function(event, listener) {
-        var listeners = this.eventListeners[event] || [];
-
-        for (var i = 0, l = listeners.length; i < l; ++i) {
-            if (listeners[i] == listener) {
-                return listeners.splice(i, 1);
-            }
-        }
-    };
-
-    UploadProgress.prototype.dispatchEvent = function(event) {
-        var listeners = this.eventListeners[event.type] || [];
-
-        for (var i = 0, listener; (listener = listeners[i]) != null; i++) {
-            listener(event);
-        }
-    };
-
-    function verifyState(xhr) {
-        if (xhr.readyState !== FakeXMLHttpRequest.OPENED) {
-            throw new Error("INVALID_STATE_ERR");
-        }
-
-        if (xhr.sendFlag) {
-            throw new Error("INVALID_STATE_ERR");
-        }
-    }
-
-    // filtering to enable a white-list version of Sinon FakeXhr,
-    // where whitelisted requests are passed through to real XHR
-    function each(collection, callback) {
-        if (!collection) return;
-        for (var i = 0, l = collection.length; i < l; i += 1) {
-            callback(collection[i]);
-        }
-    }
-    function some(collection, callback) {
-        for (var index = 0; index < collection.length; index++) {
-            if(callback(collection[index]) === true) return true;
-        }
-        return false;
-    }
-    // largest arity in XHR is 5 - XHR#open
-    var apply = function(obj,method,args) {
-        switch(args.length) {
-        case 0: return obj[method]();
-        case 1: return obj[method](args[0]);
-        case 2: return obj[method](args[0],args[1]);
-        case 3: return obj[method](args[0],args[1],args[2]);
-        case 4: return obj[method](args[0],args[1],args[2],args[3]);
-        case 5: return obj[method](args[0],args[1],args[2],args[3],args[4]);
-        }
-    };
-
-    FakeXMLHttpRequest.filters = [];
-    FakeXMLHttpRequest.addFilter = function(fn) {
-        this.filters.push(fn)
-    };
-    var IE6Re = /MSIE 6/;
-    FakeXMLHttpRequest.defake = function(fakeXhr,xhrArgs) {
-        var xhr = new sinon.xhr.workingXHR();
-        each(["open","setRequestHeader","send","abort","getResponseHeader",
-              "getAllResponseHeaders","addEventListener","overrideMimeType","removeEventListener"],
-             function(method) {
-                 fakeXhr[method] = function() {
-                   return apply(xhr,method,arguments);
-                 };
-             });
-
-        var copyAttrs = function(args) {
-            each(args, function(attr) {
-              try {
-                fakeXhr[attr] = xhr[attr]
-              } catch(e) {
-                if(!IE6Re.test(navigator.userAgent)) throw e;
-              }
-            });
-        };
-
-        var stateChange = function() {
-            fakeXhr.readyState = xhr.readyState;
-            if(xhr.readyState >= FakeXMLHttpRequest.HEADERS_RECEIVED) {
-                copyAttrs(["status","statusText"]);
-            }
-            if(xhr.readyState >= FakeXMLHttpRequest.LOADING) {
-                copyAttrs(["responseText"]);
-            }
-            if(xhr.readyState === FakeXMLHttpRequest.DONE) {
-                copyAttrs(["responseXML"]);
-            }
-            if(fakeXhr.onreadystatechange) fakeXhr.onreadystatechange.call(fakeXhr, { target: fakeXhr });
-        };
-        if(xhr.addEventListener) {
-          for(var event in fakeXhr.eventListeners) {
-              if(fakeXhr.eventListeners.hasOwnProperty(event)) {
-                  each(fakeXhr.eventListeners[event],function(handler) {
-                      xhr.addEventListener(event, handler);
-                  });
-              }
-          }
-          xhr.addEventListener("readystatechange",stateChange);
-        } else {
-          xhr.onreadystatechange = stateChange;
-        }
-        apply(xhr,"open",xhrArgs);
-    };
-    FakeXMLHttpRequest.useFilters = false;
-
-    function verifyRequestOpened(xhr) {
-        if (xhr.readyState != FakeXMLHttpRequest.OPENED) {
-            throw new Error("INVALID_STATE_ERR - " + xhr.readyState);
-        }
-    }
-
-    function verifyRequestSent(xhr) {
-        if (xhr.readyState == FakeXMLHttpRequest.DONE) {
-            throw new Error("Request done");
-        }
-    }
-
-    function verifyHeadersReceived(xhr) {
-        if (xhr.async && xhr.readyState != FakeXMLHttpRequest.HEADERS_RECEIVED) {
-            throw new Error("No headers received");
-        }
-    }
-
-    function verifyResponseBodyType(body) {
-        if (typeof body != "string") {
-            var error = new Error("Attempted to respond to fake XMLHttpRequest with " +
-                                 body + ", which is not a string.");
-            error.name = "InvalidBodyException";
-            throw error;
-        }
-    }
-
-    sinon.extend(FakeXMLHttpRequest.prototype, sinon.EventTarget, {
-        async: true,
-
-        open: function open(method, url, async, username, password) {
-            this.method = method;
-            this.url = url;
-            this.async = typeof async == "boolean" ? async : true;
-            this.username = username;
-            this.password = password;
-            this.responseText = null;
-            this.responseXML = null;
-            this.requestHeaders = {};
-            this.sendFlag = false;
-            if(sinon.FakeXMLHttpRequest.useFilters === true) {
-                var xhrArgs = arguments;
-                var defake = some(FakeXMLHttpRequest.filters,function(filter) {
-                    return filter.apply(this,xhrArgs)
-                });
-                if (defake) {
-                  return sinon.FakeXMLHttpRequest.defake(this,arguments);
-                }
-            }
-            this.readyStateChange(FakeXMLHttpRequest.OPENED);
-        },
-
-        readyStateChange: function readyStateChange(state) {
-            this.readyState = state;
-
-            if (typeof this.onreadystatechange == "function") {
-                try {
-                    this.onreadystatechange();
-                } catch (e) {
-                    sinon.logError("Fake XHR onreadystatechange handler", e);
-                }
-            }
-
-            this.dispatchEvent(new sinon.Event("readystatechange"));
-
-            switch (this.readyState) {
-                case FakeXMLHttpRequest.DONE:
-                    this.dispatchEvent(new sinon.Event("load", false, false, this));
-                    this.dispatchEvent(new sinon.Event("loadend", false, false, this));
-                    this.upload.dispatchEvent(new sinon.Event("load", false, false, this));
-                    if (supportsProgress) {
-                        this.upload.dispatchEvent(new sinon.ProgressEvent('progress', {loaded: 100, total: 100}));
-                    }
-                    break;
-            }
-        },
-
-        setRequestHeader: function setRequestHeader(header, value) {
-            verifyState(this);
-
-            if (unsafeHeaders[header] || /^(Sec-|Proxy-)/.test(header)) {
-                throw new Error("Refused to set unsafe header \"" + header + "\"");
-            }
-
-            if (this.requestHeaders[header]) {
-                this.requestHeaders[header] += "," + value;
-            } else {
-                this.requestHeaders[header] = value;
-            }
-        },
-
-        // Helps testing
-        setResponseHeaders: function setResponseHeaders(headers) {
-            verifyRequestOpened(this);
-            this.responseHeaders = {};
-
-            for (var header in headers) {
-                if (headers.hasOwnProperty(header)) {
-                    this.responseHeaders[header] = headers[header];
-                }
-            }
-
-            if (this.async) {
-                this.readyStateChange(FakeXMLHttpRequest.HEADERS_RECEIVED);
-            } else {
-                this.readyState = FakeXMLHttpRequest.HEADERS_RECEIVED;
-            }
-        },
-
-        // Currently treats ALL data as a DOMString (i.e. no Document)
-        send: function send(data) {
-            verifyState(this);
-
-            if (!/^(get|head)$/i.test(this.method)) {
-                if (this.requestHeaders["Content-Type"]) {
-                    var value = this.requestHeaders["Content-Type"].split(";");
-                    this.requestHeaders["Content-Type"] = value[0] + ";charset=utf-8";
-                } else {
-                    this.requestHeaders["Content-Type"] = "text/plain;charset=utf-8";
-                }
-
-                this.requestBody = data;
-            }
-
-            this.errorFlag = false;
-            this.sendFlag = this.async;
-            this.readyStateChange(FakeXMLHttpRequest.OPENED);
-
-            if (typeof this.onSend == "function") {
-                this.onSend(this);
-            }
-
-            this.dispatchEvent(new sinon.Event("loadstart", false, false, this));
-        },
-
-        abort: function abort() {
-            this.aborted = true;
-            this.responseText = null;
-            this.errorFlag = true;
-            this.requestHeaders = {};
-
-            if (this.readyState > sinon.FakeXMLHttpRequest.UNSENT && this.sendFlag) {
-                this.readyStateChange(sinon.FakeXMLHttpRequest.DONE);
-                this.sendFlag = false;
-            }
-
-            this.readyState = sinon.FakeXMLHttpRequest.UNSENT;
-
-            this.dispatchEvent(new sinon.Event("abort", false, false, this));
-
-            this.upload.dispatchEvent(new sinon.Event("abort", false, false, this));
-
-            if (typeof this.onerror === "function") {
-                this.onerror();
-            }
-        },
-
-        getResponseHeader: function getResponseHeader(header) {
-            if (this.readyState < FakeXMLHttpRequest.HEADERS_RECEIVED) {
-                return null;
-            }
-
-            if (/^Set-Cookie2?$/i.test(header)) {
-                return null;
-            }
-
-            header = header.toLowerCase();
-
-            for (var h in this.responseHeaders) {
-                if (h.toLowerCase() == header) {
-                    return this.responseHeaders[h];
-                }
-            }
-
-            return null;
-        },
-
-        getAllResponseHeaders: function getAllResponseHeaders() {
-            if (this.readyState < FakeXMLHttpRequest.HEADERS_RECEIVED) {
-                return "";
-            }
-
-            var headers = "";
-
-            for (var header in this.responseHeaders) {
-                if (this.responseHeaders.hasOwnProperty(header) &&
-                    !/^Set-Cookie2?$/i.test(header)) {
-                    headers += header + ": " + this.responseHeaders[header] + "\r\n";
-                }
-            }
-
-            return headers;
-        },
-
-        setResponseBody: function setResponseBody(body) {
-            verifyRequestSent(this);
-            verifyHeadersReceived(this);
-            verifyResponseBodyType(body);
-
-            var chunkSize = this.chunkSize || 10;
-            var index = 0;
-            this.responseText = "";
-
-            do {
-                if (this.async) {
-                    this.readyStateChange(FakeXMLHttpRequest.LOADING);
-                }
-
-                this.responseText += body.substring(index, index + chunkSize);
-                index += chunkSize;
-            } while (index < body.length);
-
-            var type = this.getResponseHeader("Content-Type");
-
-            if (this.responseText &&
-                (!type || /(text\/xml)|(application\/xml)|(\+xml)/.test(type))) {
-                try {
-                    this.responseXML = FakeXMLHttpRequest.parseXML(this.responseText);
-                } catch (e) {
-                    // Unable to parse XML - no biggie
-                }
-            }
-
-            if (this.async) {
-                this.readyStateChange(FakeXMLHttpRequest.DONE);
-            } else {
-                this.readyState = FakeXMLHttpRequest.DONE;
-            }
-        },
-
-        respond: function respond(status, headers, body) {
-            this.status = typeof status == "number" ? status : 200;
-            this.statusText = FakeXMLHttpRequest.statusCodes[this.status];
-            this.setResponseHeaders(headers || {});
-            this.setResponseBody(body || "");
-        },
-
-        uploadProgress: function uploadProgress(progressEventRaw) {
-            if (supportsProgress) {
-                this.upload.dispatchEvent(new sinon.ProgressEvent("progress", progressEventRaw));
-            }
-        },
-
-        uploadError: function uploadError(error) {
-            if (supportsCustomEvent) {
-                this.upload.dispatchEvent(new sinon.CustomEvent("error", {"detail": error}));
-            }
-        }
-    });
-
-    sinon.extend(FakeXMLHttpRequest, {
-        UNSENT: 0,
-        OPENED: 1,
-        HEADERS_RECEIVED: 2,
-        LOADING: 3,
-        DONE: 4
-    });
-
-    // Borrowed from JSpec
-    FakeXMLHttpRequest.parseXML = function parseXML(text) {
-        var xmlDoc;
-
-        if (typeof DOMParser != "undefined") {
-            var parser = new DOMParser();
-            xmlDoc = parser.parseFromString(text, "text/xml");
-        } else {
-            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
-            xmlDoc.async = "false";
-            xmlDoc.loadXML(text);
-        }
-
-        return xmlDoc;
-    };
-
-    FakeXMLHttpRequest.statusCodes = {
-        100: "Continue",
-        101: "Switching Protocols",
-        200: "OK",
-        201: "Created",
-        202: "Accepted",
-        203: "Non-Authoritative Information",
-        204: "No Content",
-        205: "Reset Content",
-        206: "Partial Content",
-        300: "Multiple Choice",
-        301: "Moved Permanently",
-        302: "Found",
-        303: "See Other",
-        304: "Not Modified",
-        305: "Use Proxy",
-        307: "Temporary Redirect",
-        400: "Bad Request",
-        401: "Unauthorized",
-        402: "Payment Required",
-        403: "Forbidden",
-        404: "Not Found",
-        405: "Method Not Allowed",
-        406: "Not Acceptable",
-        407: "Proxy Authentication Required",
-        408: "Request Timeout",
-        409: "Conflict",
-        410: "Gone",
-        411: "Length Required",
-        412: "Precondition Failed",
-        413: "Request Entity Too Large",
-        414: "Request-URI Too Long",
-        415: "Unsupported Media Type",
-        416: "Requested Range Not Satisfiable",
-        417: "Expectation Failed",
-        422: "Unprocessable Entity",
-        500: "Internal Server Error",
-        501: "Not Implemented",
-        502: "Bad Gateway",
-        503: "Service Unavailable",
-        504: "Gateway Timeout",
-        505: "HTTP Version Not Supported"
-    };
-
-    sinon.useFakeXMLHttpRequest = function () {
-        sinon.FakeXMLHttpRequest.restore = function restore(keepOnCreate) {
-            if (xhr.supportsXHR) {
-                global.XMLHttpRequest = xhr.GlobalXMLHttpRequest;
-            }
-
-            if (xhr.supportsActiveX) {
-                global.ActiveXObject = xhr.GlobalActiveXObject;
-            }
-
-            delete sinon.FakeXMLHttpRequest.restore;
-
-            if (keepOnCreate !== true) {
-                delete sinon.FakeXMLHttpRequest.onCreate;
-            }
-        };
-        if (xhr.supportsXHR) {
-            global.XMLHttpRequest = sinon.FakeXMLHttpRequest;
-        }
-
-        if (xhr.supportsActiveX) {
-            global.ActiveXObject = function ActiveXObject(objId) {
-                if (objId == "Microsoft.XMLHTTP" || /^Msxml2\.XMLHTTP/i.test(objId)) {
-
-                    return new sinon.FakeXMLHttpRequest();
-                }
-
-                return new xhr.GlobalActiveXObject(objId);
-            };
-        }
-
-        return sinon.FakeXMLHttpRequest;
-    };
-
-    sinon.FakeXMLHttpRequest = FakeXMLHttpRequest;
-
-})((function(){ return typeof global === "object" ? global : this; })());
-
-if (typeof module !== 'undefined' && module.exports) {
-    module.exports = sinon;
-}
-
-/**
- * @depend fake_xml_http_request.js
- */
-/*jslint eqeqeq: false, onevar: false, regexp: false, plusplus: false*/
-/*global module, require, window*/
-/**
- * The Sinon "server" mimics a web server that receives requests from
- * sinon.FakeXMLHttpRequest and provides an API to respond to those requests,
- * both synchronously and asynchronously. To respond synchronuously, canned
- * answers have to be provided upfront.
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-if (typeof sinon == "undefined") {
-    var sinon = {};
-}
-
-sinon.fakeServer = (function () {
-    var push = [].push;
-    function F() {}
-
-    function create(proto) {
-        F.prototype = proto;
-        return new F();
-    }
-
-    function responseArray(handler) {
-        var response = handler;
-
-        if (Object.prototype.toString.call(handler) != "[object Array]") {
-            response = [200, {}, handler];
-        }
-
-        if (typeof response[2] != "string") {
-            throw new TypeError("Fake server response body should be string, but was " +
-                                typeof response[2]);
-        }
-
-        return response;
-    }
-
-    var wloc = typeof window !== "undefined" ? window.location : {};
-    var rCurrLoc = new RegExp("^" + wloc.protocol + "//" + wloc.host);
-
-    function matchOne(response, reqMethod, reqUrl) {
-        var rmeth = response.method;
-        var matchMethod = !rmeth || rmeth.toLowerCase() == reqMethod.toLowerCase();
-        var url = response.url;
-        var matchUrl = !url || url == reqUrl || (typeof url.test == "function" && url.test(reqUrl));
-
-        return matchMethod && matchUrl;
-    }
-
-    function match(response, request) {
-        var requestUrl = request.url;
-
-        if (!/^https?:\/\//.test(requestUrl) || rCurrLoc.test(requestUrl)) {
-            requestUrl = requestUrl.replace(rCurrLoc, "");
-        }
-
-        if (matchOne(response, this.getHTTPMethod(request), requestUrl)) {
-            if (typeof response.response == "function") {
-                var ru = response.url;
-                var args = [request].concat(ru && typeof ru.exec == "function" ? ru.exec(requestUrl).slice(1) : []);
-                return response.response.apply(response, args);
-            }
-
-            return true;
-        }
-
-        return false;
-    }
-
-    return {
-        create: function () {
-            var server = create(this);
-            this.xhr = sinon.useFakeXMLHttpRequest();
-            server.requests = [];
-
-            this.xhr.onCreate = function (xhrObj) {
-                server.addRequest(xhrObj);
-            };
-
-            return server;
-        },
-
-        addRequest: function addRequest(xhrObj) {
-            var server = this;
-            push.call(this.requests, xhrObj);
-
-            xhrObj.onSend = function () {
-                server.handleRequest(this);
-
-                if (server.autoRespond && !server.responding) {
-                    setTimeout(function () {
-                        server.responding = false;
-                        server.respond();
-                    }, server.autoRespondAfter || 10);
-
-                    server.responding = true;
-                }
-            };
-        },
-
-        getHTTPMethod: function getHTTPMethod(request) {
-            if (this.fakeHTTPMethods && /post/i.test(request.method)) {
-                var matches = (request.requestBody || "").match(/_method=([^\b;]+)/);
-                return !!matches ? matches[1] : request.method;
-            }
-
-            return request.method;
-        },
-
-        handleRequest: function handleRequest(xhr) {
-            if (xhr.async) {
-                if (!this.queue) {
-                    this.queue = [];
-                }
-
-                push.call(this.queue, xhr);
-            } else {
-                this.processRequest(xhr);
-            }
-        },
-
-        log: function(response, request) {
-            var str;
-
-            str =  "Request:\n"  + sinon.format(request)  + "\n\n";
-            str += "Response:\n" + sinon.format(response) + "\n\n";
-
-            sinon.log(str);
-        },
-
-        respondWith: function respondWith(method, url, body) {
-            if (arguments.length == 1 && typeof method != "function") {
-                this.response = responseArray(method);
-                return;
-            }
-
-            if (!this.responses) { this.responses = []; }
-
-            if (arguments.length == 1) {
-                body = method;
-                url = method = null;
-            }
-
-            if (arguments.length == 2) {
-                body = url;
-                url = method;
-                method = null;
-            }
-
-            push.call(this.responses, {
-                method: method,
-                url: url,
-                response: typeof body == "function" ? body : responseArray(body)
-            });
-        },
-
-        respond: function respond() {
-            if (arguments.length > 0) this.respondWith.apply(this, arguments);
-            var queue = this.queue || [];
-            var requests = queue.splice(0, queue.length);
-            var request;
-
-            while(request = requests.shift()) {
-                this.processRequest(request);
-            }
-        },
-
-        processRequest: function processRequest(request) {
-            try {
-                if (request.aborted) {
-                    return;
-                }
-
-                var response = this.response || [404, {}, ""];
-
-                if (this.responses) {
-                    for (var l = this.responses.length, i = l - 1; i >= 0; i--) {
-                        if (match.call(this, this.responses[i], request)) {
-                            response = this.responses[i].response;
-                            break;
-                        }
-                    }
-                }
-
-                if (request.readyState != 4) {
-                    sinon.fakeServer.log(response, request);
-
-                    request.respond(response[0], response[1], response[2]);
-                }
-            } catch (e) {
-                sinon.logError("Fake server request processing", e);
-            }
-        },
-
-        restore: function restore() {
-            return this.xhr.restore && this.xhr.restore.apply(this.xhr, arguments);
-        }
-    };
-}());
-
-if (typeof module !== 'undefined' && module.exports) {
-    module.exports = sinon;
-}
-
-/**
- * @depend fake_server.js
- * @depend fake_timers.js
- */
-/*jslint browser: true, eqeqeq: false, onevar: false*/
-/*global sinon*/
-/**
- * Add-on for sinon.fakeServer that automatically handles a fake timer along with
- * the FakeXMLHttpRequest. The direct inspiration for this add-on is jQuery
- * 1.3.x, which does not use xhr object's onreadystatehandler at all - instead,
- * it polls the object for completion with setInterval. Dispite the direct
- * motivation, there is nothing jQuery-specific in this file, so it can be used
- * in any environment where the ajax implementation depends on setInterval or
- * setTimeout.
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-(function () {
-    function Server() {}
-    Server.prototype = sinon.fakeServer;
-
-    sinon.fakeServerWithClock = new Server();
-
-    sinon.fakeServerWithClock.addRequest = function addRequest(xhr) {
-        if (xhr.async) {
-            if (typeof setTimeout.clock == "object") {
-                this.clock = setTimeout.clock;
-            } else {
-                this.clock = sinon.useFakeTimers();
-                this.resetClock = true;
-            }
-
-            if (!this.longestTimeout) {
-                var clockSetTimeout = this.clock.setTimeout;
-                var clockSetInterval = this.clock.setInterval;
-                var server = this;
-
-                this.clock.setTimeout = function (fn, timeout) {
-                    server.longestTimeout = Math.max(timeout, server.longestTimeout || 0);
-
-                    return clockSetTimeout.apply(this, arguments);
-                };
-
-                this.clock.setInterval = function (fn, timeout) {
-                    server.longestTimeout = Math.max(timeout, server.longestTimeout || 0);
-
-                    return clockSetInterval.apply(this, arguments);
-                };
-            }
-        }
-
-        return sinon.fakeServer.addRequest.call(this, xhr);
-    };
-
-    sinon.fakeServerWithClock.respond = function respond() {
-        var returnVal = sinon.fakeServer.respond.apply(this, arguments);
-
-        if (this.clock) {
-            this.clock.tick(this.longestTimeout || 0);
-            this.longestTimeout = 0;
-
-            if (this.resetClock) {
-                this.clock.restore();
-                this.resetClock = false;
-            }
-        }
-
-        return returnVal;
-    };
-
-    sinon.fakeServerWithClock.restore = function restore() {
-        if (this.clock) {
-            this.clock.restore();
-        }
-
-        return sinon.fakeServer.restore.apply(this, arguments);
-    };
-}());
-
-/**
- * @depend ../sinon.js
- * @depend collection.js
- * @depend util/fake_timers.js
- * @depend util/fake_server_with_clock.js
- */
-/*jslint eqeqeq: false, onevar: false, plusplus: false*/
-/*global require, module*/
-/**
- * Manages fake collections as well as fake utilities such as Sinon's
- * timers and fake XHR implementation in one convenient object.
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-if (typeof module !== "undefined" && module.exports && typeof require == "function") {
-    var sinon = require("../sinon");
-    sinon.extend(sinon, require("./util/fake_timers"));
-}
-
-(function () {
-    var push = [].push;
-
-    function exposeValue(sandbox, config, key, value) {
-        if (!value) {
-            return;
-        }
-
-        if (config.injectInto && !(key in config.injectInto)) {
-            config.injectInto[key] = value;
-            sandbox.injectedKeys.push(key);
-        } else {
-            push.call(sandbox.args, value);
-        }
-    }
-
-    function prepareSandboxFromConfig(config) {
-        var sandbox = sinon.create(sinon.sandbox);
-
-        if (config.useFakeServer) {
-            if (typeof config.useFakeServer == "object") {
-                sandbox.serverPrototype = config.useFakeServer;
-            }
-
-            sandbox.useFakeServer();
-        }
-
-        if (config.useFakeTimers) {
-            if (typeof config.useFakeTimers == "object") {
-                sandbox.useFakeTimers.apply(sandbox, config.useFakeTimers);
-            } else {
-                sandbox.useFakeTimers();
-            }
-        }
-
-        return sandbox;
-    }
-
-    sinon.sandbox = sinon.extend(sinon.create(sinon.collection), {
-        useFakeTimers: function useFakeTimers() {
-            this.clock = sinon.useFakeTimers.apply(sinon, arguments);
-
-            return this.add(this.clock);
-        },
-
-        serverPrototype: sinon.fakeServer,
-
-        useFakeServer: function useFakeServer() {
-            var proto = this.serverPrototype || sinon.fakeServer;
-
-            if (!proto || !proto.create) {
-                return null;
-            }
-
-            this.server = proto.create();
-            return this.add(this.server);
-        },
-
-        inject: function (obj) {
-            sinon.collection.inject.call(this, obj);
-
-            if (this.clock) {
-                obj.clock = this.clock;
-            }
-
-            if (this.server) {
-                obj.server = this.server;
-                obj.requests = this.server.requests;
-            }
-
-            return obj;
-        },
-
-        restore: function () {
-            sinon.collection.restore.apply(this, arguments);
-            this.restoreContext();
-        },
-
-        restoreContext: function () {
-            if (this.injectedKeys) {
-                for (var i = 0, j = this.injectedKeys.length; i < j; i++) {
-                    delete this.injectInto[this.injectedKeys[i]];
-                }
-                this.injectedKeys = [];
-            }
-        },
-
-        create: function (config) {
-            if (!config) {
-                return sinon.create(sinon.sandbox);
-            }
-
-            var sandbox = prepareSandboxFromConfig(config);
-            sandbox.args = sandbox.args || [];
-            sandbox.injectedKeys = [];
-            sandbox.injectInto = config.injectInto;
-            var prop, value, exposed = sandbox.inject({});
-
-            if (config.properties) {
-                for (var i = 0, l = config.properties.length; i < l; i++) {
-                    prop = config.properties[i];
-                    value = exposed[prop] || prop == "sandbox" && sandbox;
-                    exposeValue(sandbox, config, prop, value);
-                }
-            } else {
-                exposeValue(sandbox, config, "sandbox", value);
-            }
-
-            return sandbox;
-        }
-    });
-
-    sinon.sandbox.useFakeXMLHttpRequest = sinon.sandbox.useFakeServer;
-
-    if (typeof define === "function" && define.amd) {
-        define(["module"], function(module) { module.exports = sinon.sandbox; });
-    } else if (typeof module !== 'undefined' && module.exports) {
-        module.exports = sinon.sandbox;
-    }
-}());
-
-/**
- * @depend ../sinon.js
- * @depend stub.js
- * @depend mock.js
- * @depend sandbox.js
- */
-/*jslint eqeqeq: false, onevar: false, forin: true, plusplus: false*/
-/*global module, require, sinon*/
-/**
- * Test function, sandboxes fakes
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-(function (sinon) {
-    var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
-
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon) {
-        return;
-    }
-
-    function test(callback) {
-        var type = typeof callback;
-
-        if (type != "function") {
-            throw new TypeError("sinon.test needs to wrap a test function, got " + type);
-        }
-
-        function sinonSandboxedTest() {
-            var config = sinon.getConfig(sinon.config);
-            config.injectInto = config.injectIntoThis && this || config.injectInto;
-            var sandbox = sinon.sandbox.create(config);
-            var exception, result;
-            var args = Array.prototype.slice.call(arguments).concat(sandbox.args);
-
-            try {
-                result = callback.apply(this, args);
-            } catch (e) {
-                exception = e;
-            }
-
-            if (typeof exception !== "undefined") {
-                sandbox.restore();
-                throw exception;
-            }
-            else {
-                sandbox.verifyAndRestore();
-            }
-
-            return result;
-        };
-
-        if (callback.length) {
-            return function sinonAsyncSandboxedTest(callback) {
-                return sinonSandboxedTest.apply(this, arguments);
-            };
-        }
-
-        return sinonSandboxedTest;
-    }
-
-    test.config = {
-        injectIntoThis: true,
-        injectInto: null,
-        properties: ["spy", "stub", "mock", "clock", "server", "requests"],
-        useFakeTimers: true,
-        useFakeServer: true
-    };
-
-    sinon.test = test;
-
-    if (typeof define === "function" && define.amd) {
-        define(["module"], function(module) { module.exports = test; });
-    } else if (commonJSModule) {
-        module.exports = test;
-    }
-}(typeof sinon == "object" && sinon || null));
-
-/**
- * @depend ../sinon.js
- * @depend test.js
- */
-/*jslint eqeqeq: false, onevar: false, eqeqeq: false*/
-/*global module, require, sinon*/
-/**
- * Test case, sandboxes all test functions
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-(function (sinon) {
-    var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
-
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon || !Object.prototype.hasOwnProperty) {
-        return;
-    }
-
-    function createTest(property, setUp, tearDown) {
-        return function () {
-            if (setUp) {
-                setUp.apply(this, arguments);
-            }
-
-            var exception, result;
-
-            try {
-                result = property.apply(this, arguments);
-            } catch (e) {
-                exception = e;
-            }
-
-            if (tearDown) {
-                tearDown.apply(this, arguments);
-            }
-
-            if (exception) {
-                throw exception;
-            }
-
-            return result;
-        };
-    }
-
-    function testCase(tests, prefix) {
-        /*jsl:ignore*/
-        if (!tests || typeof tests != "object") {
-            throw new TypeError("sinon.testCase needs an object with test functions");
-        }
-        /*jsl:end*/
-
-        prefix = prefix || "test";
-        var rPrefix = new RegExp("^" + prefix);
-        var methods = {}, testName, property, method;
-        var setUp = tests.setUp;
-        var tearDown = tests.tearDown;
-
-        for (testName in tests) {
-            if (tests.hasOwnProperty(testName)) {
-                property = tests[testName];
-
-                if (/^(setUp|tearDown)$/.test(testName)) {
-                    continue;
-                }
-
-                if (typeof property == "function" && rPrefix.test(testName)) {
-                    method = property;
-
-                    if (setUp || tearDown) {
-                        method = createTest(property, setUp, tearDown);
-                    }
-
-                    methods[testName] = sinon.test(method);
-                } else {
-                    methods[testName] = tests[testName];
-                }
-            }
-        }
-
-        return methods;
-    }
-
-    sinon.testCase = testCase;
-
-    if (typeof define === "function" && define.amd) {
-        define(["module"], function(module) { module.exports = testCase; });
-    } else if (commonJSModule) {
-        module.exports = testCase;
-    }
-}(typeof sinon == "object" && sinon || null));
-
-/**
- * @depend ../sinon.js
- * @depend stub.js
- */
-/*jslint eqeqeq: false, onevar: false, nomen: false, plusplus: false*/
-/*global module, require, sinon*/
-/**
- * Assertions matching the test spy retrieval interface.
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-(function (sinon, global) {
-    var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
-    var slice = Array.prototype.slice;
-    var assert;
-
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon) {
-        return;
-    }
-
-    function verifyIsStub() {
-        var method;
-
-        for (var i = 0, l = arguments.length; i < l; ++i) {
-            method = arguments[i];
-
-            if (!method) {
-                assert.fail("fake is not a spy");
-            }
-
-            if (typeof method != "function") {
-                assert.fail(method + " is not a function");
-            }
-
-            if (typeof method.getCall != "function") {
-                assert.fail(method + " is not stubbed");
-            }
-        }
-    }
-
-    function failAssertion(object, msg) {
-        object = object || global;
-        var failMethod = object.fail || assert.fail;
-        failMethod.call(object, msg);
-    }
-
-    function mirrorPropAsAssertion(name, method, message) {
-        if (arguments.length == 2) {
-            message = method;
-            method = name;
-        }
-
-        assert[name] = function (fake) {
-            verifyIsStub(fake);
-
-            var args = slice.call(arguments, 1);
-            var failed = false;
-
-            if (typeof method == "function") {
-                failed = !method(fake);
-            } else {
-                failed = typeof fake[method] == "function" ?
-                    !fake[method].apply(fake, args) : !fake[method];
-            }
-
-            if (failed) {
-                failAssertion(this, fake.printf.apply(fake, [message].concat(args)));
-            } else {
-                assert.pass(name);
-            }
-        };
-    }
-
-    function exposedName(prefix, prop) {
-        return !prefix || /^fail/.test(prop) ? prop :
-            prefix + prop.slice(0, 1).toUpperCase() + prop.slice(1);
-    }
-
-    assert = {
-        failException: "AssertError",
-
-        fail: function fail(message) {
-            var error = new Error(message);
-            error.name = this.failException || assert.failException;
-
-            throw error;
-        },
-
-        pass: function pass(assertion) {},
-
-        callOrder: function assertCallOrder() {
-            verifyIsStub.apply(null, arguments);
-            var expected = "", actual = "";
-
-            if (!sinon.calledInOrder(arguments)) {
-                try {
-                    expected = [].join.call(arguments, ", ");
-                    var calls = slice.call(arguments);
-                    var i = calls.length;
-                    while (i) {
-                        if (!calls[--i].called) {
-                            calls.splice(i, 1);
-                        }
-                    }
-                    actual = sinon.orderByFirstCall(calls).join(", ");
-                } catch (e) {
-                    // If this fails, we'll just fall back to the blank string
-                }
-
-                failAssertion(this, "expected " + expected + " to be " +
-                              "called in order but were called as " + actual);
-            } else {
-                assert.pass("callOrder");
-            }
-        },
-
-        callCount: function assertCallCount(method, count) {
-            verifyIsStub(method);
-
-            if (method.callCount != count) {
-                var msg = "expected %n to be called " + sinon.timesInWords(count) +
-                    " but was called %c%C";
-                failAssertion(this, method.printf(msg));
-            } else {
-                assert.pass("callCount");
-            }
-        },
-
-        expose: function expose(target, options) {
-            if (!target) {
-                throw new TypeError("target is null or undefined");
-            }
-
-            var o = options || {};
-            var prefix = typeof o.prefix == "undefined" && "assert" || o.prefix;
-            var includeFail = typeof o.includeFail == "undefined" || !!o.includeFail;
-
-            for (var method in this) {
-                if (method != "export" && (includeFail || !/^(fail)/.test(method))) {
-                    target[exposedName(prefix, method)] = this[method];
-                }
-            }
-
-            return target;
-        },
-
-        match: function match(actual, expectation) {
-            var matcher = sinon.match(expectation);
-            if (matcher.test(actual)) {
-                assert.pass("match");
-            } else {
-                var formatted = [
-                    "expected value to match",
-                    "    expected = " + sinon.format(expectation),
-                    "    actual = " + sinon.format(actual)
-                ]
-                failAssertion(this, formatted.join("\n"));
-            }
-        }
-    };
-
-    mirrorPropAsAssertion("called", "expected %n to have been called at least once but was never called");
-    mirrorPropAsAssertion("notCalled", function (spy) { return !spy.called; },
-                          "expected %n to not have been called but was called %c%C");
-    mirrorPropAsAssertion("calledOnce", "expected %n to be called once but was called %c%C");
-    mirrorPropAsAssertion("calledTwice", "expected %n to be called twice but was called %c%C");
-    mirrorPropAsAssertion("calledThrice", "expected %n to be called thrice but was called %c%C");
-    mirrorPropAsAssertion("calledOn", "expected %n to be called with %1 as this but was called with %t");
-    mirrorPropAsAssertion("alwaysCalledOn", "expected %n to always be called with %1 as this but was called with %t");
-    mirrorPropAsAssertion("calledWithNew", "expected %n to be called with new");
-    mirrorPropAsAssertion("alwaysCalledWithNew", "expected %n to always be called with new");
-    mirrorPropAsAssertion("calledWith", "expected %n to be called with arguments %*%C");
-    mirrorPropAsAssertion("calledWithMatch", "expected %n to be called with match %*%C");
-    mirrorPropAsAssertion("alwaysCalledWith", "expected %n to always be called with arguments %*%C");
-    mirrorPropAsAssertion("alwaysCalledWithMatch", "expected %n to always be called with match %*%C");
-    mirrorPropAsAssertion("calledWithExactly", "expected %n to be called with exact arguments %*%C");
-    mirrorPropAsAssertion("alwaysCalledWithExactly", "expected %n to always be called with exact arguments %*%C");
-    mirrorPropAsAssertion("neverCalledWith", "expected %n to never be called with arguments %*%C");
-    mirrorPropAsAssertion("neverCalledWithMatch", "expected %n to never be called with match %*%C");
-    mirrorPropAsAssertion("threw", "%n did not throw exception%C");
-    mirrorPropAsAssertion("alwaysThrew", "%n did not always throw exception%C");
-
-    sinon.assert = assert;
-
-    if (typeof define === "function" && define.amd) {
-        define(["module"], function(module) { module.exports = assert; });
-    } else if (commonJSModule) {
-        module.exports = assert;
-    }
-}(typeof sinon == "object" && sinon || null, typeof window != "undefined" ? window : (typeof self != "undefined") ? self : global));
-
-/**
- * @depend ../../sinon.js
- * @depend event.js
- */
-/*jslint eqeqeq: false, onevar: false*/
-/*global sinon, module, require, XDomainRequest*/
-/**
- * Fake XDomainRequest object
- */
-
-if (typeof sinon == "undefined") {
-    this.sinon = {};
-}
-sinon.xdr = { XDomainRequest: this.XDomainRequest };
-
-// wrapper for global
-(function (global) {
-    var xdr = sinon.xdr;
-    xdr.GlobalXDomainRequest = global.XDomainRequest;
-    xdr.supportsXDR = typeof xdr.GlobalXDomainRequest != "undefined";
-    xdr.workingXDR = xdr.supportsXDR ? xdr.GlobalXDomainRequest :  false;
-
-    function FakeXDomainRequest() {
-        this.readyState = FakeXDomainRequest.UNSENT;
-        this.requestBody = null;
-        this.requestHeaders = {};
-        this.status = 0;
-        this.timeout = null;
-
-        if (typeof FakeXDomainRequest.onCreate == "function") {
-            FakeXDomainRequest.onCreate(this);
-        }
-    }
-
-    function verifyState(xdr) {
-        if (xdr.readyState !== FakeXDomainRequest.OPENED) {
-            throw new Error("INVALID_STATE_ERR");
-        }
-
-        if (xdr.sendFlag) {
-            throw new Error("INVALID_STATE_ERR");
-        }
-    }
-
-    function verifyRequestSent(xdr) {
-        if (xdr.readyState == FakeXDomainRequest.UNSENT) {
-            throw new Error("Request not sent");
-        }
-        if (xdr.readyState == FakeXDomainRequest.DONE) {
-            throw new Error("Request done");
-        }
-    }
-
-    function verifyResponseBodyType(body) {
-        if (typeof body != "string") {
-            var error = new Error("Attempted to respond to fake XDomainRequest with " +
-                                  body + ", which is not a string.");
-            error.name = "InvalidBodyException";
-            throw error;
-        }
-    }
-
-    sinon.extend(FakeXDomainRequest.prototype, sinon.EventTarget, {
-        open: function open(method, url) {
-            this.method = method;
-            this.url = url;
-
-            this.responseText = null;
-            this.sendFlag = false;
-
-            this.readyStateChange(FakeXDomainRequest.OPENED);
-        },
-
-        readyStateChange: function readyStateChange(state) {
-            this.readyState = state;
-            var eventName = '';
-            switch (this.readyState) {
-            case FakeXDomainRequest.UNSENT:
-                break;
-            case FakeXDomainRequest.OPENED:
-                break;
-            case FakeXDomainRequest.LOADING:
-                if (this.sendFlag){
-                    //raise the progress event
-                    eventName = 'onprogress';
-                }
-                break;
-            case FakeXDomainRequest.DONE:
-                if (this.isTimeout){
-                    eventName = 'ontimeout'
-                }
-                else if (this.errorFlag || (this.status < 200 || this.status > 299)) {
-                    eventName = 'onerror';
-                }
-                else {
-                    eventName = 'onload'
-                }
-                break;
-            }
-
-            // raising event (if defined)
-            if (eventName) {
-                if (typeof this[eventName] == "function") {
-                    try {
-                        this[eventName]();
-                    } catch (e) {
-                        sinon.logError("Fake XHR " + eventName + " handler", e);
-                    }
-                }
-            }
-        },
-
-        send: function send(data) {
-            verifyState(this);
-
-            if (!/^(get|head)$/i.test(this.method)) {
-                this.requestBody = data;
-            }
-            this.requestHeaders["Content-Type"] = "text/plain;charset=utf-8";
-
-            this.errorFlag = false;
-            this.sendFlag = true;
-            this.readyStateChange(FakeXDomainRequest.OPENED);
-
-            if (typeof this.onSend == "function") {
-                this.onSend(this);
-            }
-        },
-
-        abort: function abort() {
-            this.aborted = true;
-            this.responseText = null;
-            this.errorFlag = true;
-
-            if (this.readyState > sinon.FakeXDomainRequest.UNSENT && this.sendFlag) {
-                this.readyStateChange(sinon.FakeXDomainRequest.DONE);
-                this.sendFlag = false;
-            }
-        },
-
-        setResponseBody: function setResponseBody(body) {
-            verifyRequestSent(this);
-            verifyResponseBodyType(body);
-
-            var chunkSize = this.chunkSize || 10;
-            var index = 0;
-            this.responseText = "";
-
-            do {
-                this.readyStateChange(FakeXDomainRequest.LOADING);
-                this.responseText += body.substring(index, index + chunkSize);
-                index += chunkSize;
-            } while (index < body.length);
-
-            this.readyStateChange(FakeXDomainRequest.DONE);
-        },
-
-        respond: function respond(status, contentType, body) {
-            // content-type ignored, since XDomainRequest does not carry this
-            // we keep the same syntax for respond(...) as for FakeXMLHttpRequest to ease
-            // test integration across browsers
-            this.status = typeof status == "number" ? status : 200;
-            this.setResponseBody(body || "");
-        },
-
-        simulatetimeout: function(){
-            this.status = 0;
-            this.isTimeout = true;
-            // Access to this should actually throw an error
-            this.responseText = undefined;
-            this.readyStateChange(FakeXDomainRequest.DONE);
-        }
-    });
-
-    sinon.extend(FakeXDomainRequest, {
-        UNSENT: 0,
-        OPENED: 1,
-        LOADING: 3,
-        DONE: 4
-    });
-
-    sinon.useFakeXDomainRequest = function () {
-        sinon.FakeXDomainRequest.restore = function restore(keepOnCreate) {
-            if (xdr.supportsXDR) {
-                global.XDomainRequest = xdr.GlobalXDomainRequest;
-            }
-
-            delete sinon.FakeXDomainRequest.restore;
-
-            if (keepOnCreate !== true) {
-                delete sinon.FakeXDomainRequest.onCreate;
-            }
-        };
-        if (xdr.supportsXDR) {
-            global.XDomainRequest = sinon.FakeXDomainRequest;
-        }
-        return sinon.FakeXDomainRequest;
-    };
-
-    sinon.FakeXDomainRequest = FakeXDomainRequest;
-})(this);
-
-if (typeof module == "object" && typeof require == "function") {
-    module.exports = sinon;
-}
-
-return sinon;}.call(typeof window != 'undefined' && window || {}));
diff --git a/resources/lib/sinonjs/sinon-1.15.0.js b/resources/lib/sinonjs/sinon-1.15.0.js
new file mode 100644 (file)
index 0000000..8add41d
--- /dev/null
@@ -0,0 +1,5939 @@
+/**
+ * Sinon.JS 1.15.0, 2015/05/30
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @author Contributors: https://github.com/cjohansen/Sinon.JS/blob/master/AUTHORS
+ *
+ * (The BSD License)
+ * 
+ * Copyright (c) 2010-2014, Christian Johansen, christian@cjohansen.no
+ * 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 Christian Johansen 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 HOLDER 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.
+ */
+
+(function (root, factory) {
+  'use strict';
+  if (typeof define === 'function' && define.amd) {
+    define('sinon', [], function () {
+      return (root.sinon = factory());
+    });
+  } else if (typeof exports === 'object') {
+    module.exports = factory();
+  } else {
+    root.sinon = factory();
+  }
+}(this, function () {
+  'use strict';
+  var samsam, formatio, lolex;
+  (function () {
+                function define(mod, deps, fn) {
+                  if (mod == "samsam") {
+                    samsam = deps();
+                  } else if (typeof deps === "function" && mod.length === 0) {
+                    lolex = deps();
+                  } else if (typeof fn === "function") {
+                    formatio = fn(samsam);
+                  }
+                }
+    define.amd = {};
+((typeof define === "function" && define.amd && function (m) { define("samsam", m); }) ||
+ (typeof module === "object" &&
+      function (m) { module.exports = m(); }) || // Node
+ function (m) { this.samsam = m(); } // Browser globals
+)(function () {
+    var o = Object.prototype;
+    var div = typeof document !== "undefined" && document.createElement("div");
+
+    function isNaN(value) {
+        // Unlike global isNaN, this avoids type coercion
+        // typeof check avoids IE host object issues, hat tip to
+        // lodash
+        var val = value; // JsLint thinks value !== value is "weird"
+        return typeof value === "number" && value !== val;
+    }
+
+    function getClass(value) {
+        // Returns the internal [[Class]] by calling Object.prototype.toString
+        // with the provided value as this. Return value is a string, naming the
+        // internal class, e.g. "Array"
+        return o.toString.call(value).split(/[ \]]/)[1];
+    }
+
+    /**
+     * @name samsam.isArguments
+     * @param Object object
+     *
+     * Returns ``true`` if ``object`` is an ``arguments`` object,
+     * ``false`` otherwise.
+     */
+    function isArguments(object) {
+        if (getClass(object) === 'Arguments') { return true; }
+        if (typeof object !== "object" || typeof object.length !== "number" ||
+                getClass(object) === "Array") {
+            return false;
+        }
+        if (typeof object.callee == "function") { return true; }
+        try {
+            object[object.length] = 6;
+            delete object[object.length];
+        } catch (e) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * @name samsam.isElement
+     * @param Object object
+     *
+     * Returns ``true`` if ``object`` is a DOM element node. Unlike
+     * Underscore.js/lodash, this function will return ``false`` if ``object``
+     * is an *element-like* object, i.e. a regular object with a ``nodeType``
+     * property that holds the value ``1``.
+     */
+    function isElement(object) {
+        if (!object || object.nodeType !== 1 || !div) { return false; }
+        try {
+            object.appendChild(div);
+            object.removeChild(div);
+        } catch (e) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * @name samsam.keys
+     * @param Object object
+     *
+     * Return an array of own property names.
+     */
+    function keys(object) {
+        var ks = [], prop;
+        for (prop in object) {
+            if (o.hasOwnProperty.call(object, prop)) { ks.push(prop); }
+        }
+        return ks;
+    }
+
+    /**
+     * @name samsam.isDate
+     * @param Object value
+     *
+     * Returns true if the object is a ``Date``, or *date-like*. Duck typing
+     * of date objects work by checking that the object has a ``getTime``
+     * function whose return value equals the return value from the object's
+     * ``valueOf``.
+     */
+    function isDate(value) {
+        return typeof value.getTime == "function" &&
+            value.getTime() == value.valueOf();
+    }
+
+    /**
+     * @name samsam.isNegZero
+     * @param Object value
+     *
+     * Returns ``true`` if ``value`` is ``-0``.
+     */
+    function isNegZero(value) {
+        return value === 0 && 1 / value === -Infinity;
+    }
+
+    /**
+     * @name samsam.equal
+     * @param Object obj1
+     * @param Object obj2
+     *
+     * Returns ``true`` if two objects are strictly equal. Compared to
+     * ``===`` there are two exceptions:
+     *
+     *   - NaN is considered equal to NaN
+     *   - -0 and +0 are not considered equal
+     */
+    function identical(obj1, obj2) {
+        if (obj1 === obj2 || (isNaN(obj1) && isNaN(obj2))) {
+            return obj1 !== 0 || isNegZero(obj1) === isNegZero(obj2);
+        }
+    }
+
+
+    /**
+     * @name samsam.deepEqual
+     * @param Object obj1
+     * @param Object obj2
+     *
+     * Deep equal comparison. Two values are "deep equal" if:
+     *
+     *   - They are equal, according to samsam.identical
+     *   - They are both date objects representing the same time
+     *   - They are both arrays containing elements that are all deepEqual
+     *   - They are objects with the same set of properties, and each property
+     *     in ``obj1`` is deepEqual to the corresponding property in ``obj2``
+     *
+     * Supports cyclic objects.
+     */
+    function deepEqualCyclic(obj1, obj2) {
+
+        // used for cyclic comparison
+        // contain already visited objects
+        var objects1 = [],
+            objects2 = [],
+        // contain pathes (position in the object structure)
+        // of the already visited objects
+        // indexes same as in objects arrays
+            paths1 = [],
+            paths2 = [],
+        // contains combinations of already compared objects
+        // in the manner: { "$1['ref']$2['ref']": true }
+            compared = {};
+
+        /**
+         * used to check, if the value of a property is an object
+         * (cyclic logic is only needed for objects)
+         * only needed for cyclic logic
+         */
+        function isObject(value) {
+
+            if (typeof value === 'object' && value !== null &&
+                    !(value instanceof Boolean) &&
+                    !(value instanceof Date)    &&
+                    !(value instanceof Number)  &&
+                    !(value instanceof RegExp)  &&
+                    !(value instanceof String)) {
+
+                return true;
+            }
+
+            return false;
+        }
+
+        /**
+         * returns the index of the given object in the
+         * given objects array, -1 if not contained
+         * only needed for cyclic logic
+         */
+        function getIndex(objects, obj) {
+
+            var i;
+            for (i = 0; i < objects.length; i++) {
+                if (objects[i] === obj) {
+                    return i;
+                }
+            }
+
+            return -1;
+        }
+
+        // does the recursion for the deep equal check
+        return (function deepEqual(obj1, obj2, path1, path2) {
+            var type1 = typeof obj1;
+            var type2 = typeof obj2;
+
+            // == null also matches undefined
+            if (obj1 === obj2 ||
+                    isNaN(obj1) || isNaN(obj2) ||
+                    obj1 == null || obj2 == null ||
+                    type1 !== "object" || type2 !== "object") {
+
+                return identical(obj1, obj2);
+            }
+
+            // Elements are only equal if identical(expected, actual)
+            if (isElement(obj1) || isElement(obj2)) { return false; }
+
+            var isDate1 = isDate(obj1), isDate2 = isDate(obj2);
+            if (isDate1 || isDate2) {
+                if (!isDate1 || !isDate2 || obj1.getTime() !== obj2.getTime()) {
+                    return false;
+                }
+            }
+
+            if (obj1 instanceof RegExp && obj2 instanceof RegExp) {
+                if (obj1.toString() !== obj2.toString()) { return false; }
+            }
+
+            var class1 = getClass(obj1);
+            var class2 = getClass(obj2);
+            var keys1 = keys(obj1);
+            var keys2 = keys(obj2);
+
+            if (isArguments(obj1) || isArguments(obj2)) {
+                if (obj1.length !== obj2.length) { return false; }
+            } else {
+                if (type1 !== type2 || class1 !== class2 ||
+                        keys1.length !== keys2.length) {
+                    return false;
+                }
+            }
+
+            var key, i, l,
+                // following vars are used for the cyclic logic
+                value1, value2,
+                isObject1, isObject2,
+                index1, index2,
+                newPath1, newPath2;
+
+            for (i = 0, l = keys1.length; i < l; i++) {
+                key = keys1[i];
+                if (!o.hasOwnProperty.call(obj2, key)) {
+                    return false;
+                }
+
+                // Start of the cyclic logic
+
+                value1 = obj1[key];
+                value2 = obj2[key];
+
+                isObject1 = isObject(value1);
+                isObject2 = isObject(value2);
+
+                // determine, if the objects were already visited
+                // (it's faster to check for isObject first, than to
+                // get -1 from getIndex for non objects)
+                index1 = isObject1 ? getIndex(objects1, value1) : -1;
+                index2 = isObject2 ? getIndex(objects2, value2) : -1;
+
+                // determine the new pathes of the objects
+                // - for non cyclic objects the current path will be extended
+                //   by current property name
+                // - for cyclic objects the stored path is taken
+                newPath1 = index1 !== -1
+                    ? paths1[index1]
+                    : path1 + '[' + JSON.stringify(key) + ']';
+                newPath2 = index2 !== -1
+                    ? paths2[index2]
+                    : path2 + '[' + JSON.stringify(key) + ']';
+
+                // stop recursion if current objects are already compared
+                if (compared[newPath1 + newPath2]) {
+                    return true;
+                }
+
+                // remember the current objects and their pathes
+                if (index1 === -1 && isObject1) {
+                    objects1.push(value1);
+                    paths1.push(newPath1);
+                }
+                if (index2 === -1 && isObject2) {
+                    objects2.push(value2);
+                    paths2.push(newPath2);
+                }
+
+                // remember that the current objects are already compared
+                if (isObject1 && isObject2) {
+                    compared[newPath1 + newPath2] = true;
+                }
+
+                // End of cyclic logic
+
+                // neither value1 nor value2 is a cycle
+                // continue with next level
+                if (!deepEqual(value1, value2, newPath1, newPath2)) {
+                    return false;
+                }
+            }
+
+            return true;
+
+        }(obj1, obj2, '$1', '$2'));
+    }
+
+    var match;
+
+    function arrayContains(array, subset) {
+        if (subset.length === 0) { return true; }
+        var i, l, j, k;
+        for (i = 0, l = array.length; i < l; ++i) {
+            if (match(array[i], subset[0])) {
+                for (j = 0, k = subset.length; j < k; ++j) {
+                    if (!match(array[i + j], subset[j])) { return false; }
+                }
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * @name samsam.match
+     * @param Object object
+     * @param Object matcher
+     *
+     * Compare arbitrary value ``object`` with matcher.
+     */
+    match = function match(object, matcher) {
+        if (matcher && typeof matcher.test === "function") {
+            return matcher.test(object);
+        }
+
+        if (typeof matcher === "function") {
+            return matcher(object) === true;
+        }
+
+        if (typeof matcher === "string") {
+            matcher = matcher.toLowerCase();
+            var notNull = typeof object === "string" || !!object;
+            return notNull &&
+                (String(object)).toLowerCase().indexOf(matcher) >= 0;
+        }
+
+        if (typeof matcher === "number") {
+            return matcher === object;
+        }
+
+        if (typeof matcher === "boolean") {
+            return matcher === object;
+        }
+
+        if (typeof(matcher) === "undefined") {
+            return typeof(object) === "undefined";
+        }
+
+        if (matcher === null) {
+            return object === null;
+        }
+
+        if (getClass(object) === "Array" && getClass(matcher) === "Array") {
+            return arrayContains(object, matcher);
+        }
+
+        if (matcher && typeof matcher === "object") {
+            if (matcher === object) {
+                return true;
+            }
+            var prop;
+            for (prop in matcher) {
+                var value = object[prop];
+                if (typeof value === "undefined" &&
+                        typeof object.getAttribute === "function") {
+                    value = object.getAttribute(prop);
+                }
+                if (matcher[prop] === null || typeof matcher[prop] === 'undefined') {
+                    if (value !== matcher[prop]) {
+                        return false;
+                    }
+                } else if (typeof  value === "undefined" || !match(value, matcher[prop])) {
+                    return false;
+                }
+            }
+            return true;
+        }
+
+        throw new Error("Matcher was not a string, a number, a " +
+                        "function, a boolean or an object");
+    };
+
+    return {
+        isArguments: isArguments,
+        isElement: isElement,
+        isDate: isDate,
+        isNegZero: isNegZero,
+        identical: identical,
+        deepEqual: deepEqualCyclic,
+        match: match,
+        keys: keys
+    };
+});
+((typeof define === "function" && define.amd && function (m) {
+    define("formatio", ["samsam"], m);
+}) || (typeof module === "object" && function (m) {
+    module.exports = m(require("samsam"));
+}) || function (m) { this.formatio = m(this.samsam); }
+)(function (samsam) {
+    
+    var formatio = {
+        excludeConstructors: ["Object", /^.$/],
+        quoteStrings: true,
+        limitChildrenCount: 0
+    };
+
+    var hasOwn = Object.prototype.hasOwnProperty;
+
+    var specialObjects = [];
+    if (typeof global !== "undefined") {
+        specialObjects.push({ object: global, value: "[object global]" });
+    }
+    if (typeof document !== "undefined") {
+        specialObjects.push({
+            object: document,
+            value: "[object HTMLDocument]"
+        });
+    }
+    if (typeof window !== "undefined") {
+        specialObjects.push({ object: window, value: "[object Window]" });
+    }
+
+    function functionName(func) {
+        if (!func) { return ""; }
+        if (func.displayName) { return func.displayName; }
+        if (func.name) { return func.name; }
+        var matches = func.toString().match(/function\s+([^\(]+)/m);
+        return (matches && matches[1]) || "";
+    }
+
+    function constructorName(f, object) {
+        var name = functionName(object && object.constructor);
+        var excludes = f.excludeConstructors ||
+                formatio.excludeConstructors || [];
+
+        var i, l;
+        for (i = 0, l = excludes.length; i < l; ++i) {
+            if (typeof excludes[i] === "string" && excludes[i] === name) {
+                return "";
+            } else if (excludes[i].test && excludes[i].test(name)) {
+                return "";
+            }
+        }
+
+        return name;
+    }
+
+    function isCircular(object, objects) {
+        if (typeof object !== "object") { return false; }
+        var i, l;
+        for (i = 0, l = objects.length; i < l; ++i) {
+            if (objects[i] === object) { return true; }
+        }
+        return false;
+    }
+
+    function ascii(f, object, processed, indent) {
+        if (typeof object === "string") {
+            var qs = f.quoteStrings;
+            var quote = typeof qs !== "boolean" || qs;
+            return processed || quote ? '"' + object + '"' : object;
+        }
+
+        if (typeof object === "function" && !(object instanceof RegExp)) {
+            return ascii.func(object);
+        }
+
+        processed = processed || [];
+
+        if (isCircular(object, processed)) { return "[Circular]"; }
+
+        if (Object.prototype.toString.call(object) === "[object Array]") {
+            return ascii.array.call(f, object, processed);
+        }
+
+        if (!object) { return String((1/object) === -Infinity ? "-0" : object); }
+        if (samsam.isElement(object)) { return ascii.element(object); }
+
+        if (typeof object.toString === "function" &&
+                object.toString !== Object.prototype.toString) {
+            return object.toString();
+        }
+
+        var i, l;
+        for (i = 0, l = specialObjects.length; i < l; i++) {
+            if (object === specialObjects[i].object) {
+                return specialObjects[i].value;
+            }
+        }
+
+        return ascii.object.call(f, object, processed, indent);
+    }
+
+    ascii.func = function (func) {
+        return "function " + functionName(func) + "() {}";
+    };
+
+    ascii.array = function (array, processed) {
+        processed = processed || [];
+        processed.push(array);
+        var pieces = [];
+        var i, l;
+        l = (this.limitChildrenCount > 0) ? 
+            Math.min(this.limitChildrenCount, array.length) : array.length;
+
+        for (i = 0; i < l; ++i) {
+            pieces.push(ascii(this, array[i], processed));
+        }
+
+        if(l < array.length)
+            pieces.push("[... " + (array.length - l) + " more elements]");
+
+        return "[" + pieces.join(", ") + "]";
+    };
+
+    ascii.object = function (object, processed, indent) {
+        processed = processed || [];
+        processed.push(object);
+        indent = indent || 0;
+        var pieces = [], properties = samsam.keys(object).sort();
+        var length = 3;
+        var prop, str, obj, i, k, l;
+        l = (this.limitChildrenCount > 0) ? 
+            Math.min(this.limitChildrenCount, properties.length) : properties.length;
+
+        for (i = 0; i < l; ++i) {
+            prop = properties[i];
+            obj = object[prop];
+
+            if (isCircular(obj, processed)) {
+                str = "[Circular]";
+            } else {
+                str = ascii(this, obj, processed, indent + 2);
+            }
+
+            str = (/\s/.test(prop) ? '"' + prop + '"' : prop) + ": " + str;
+            length += str.length;
+            pieces.push(str);
+        }
+
+        var cons = constructorName(this, object);
+        var prefix = cons ? "[" + cons + "] " : "";
+        var is = "";
+        for (i = 0, k = indent; i < k; ++i) { is += " "; }
+
+        if(l < properties.length)
+            pieces.push("[... " + (properties.length - l) + " more elements]");
+
+        if (length + indent > 80) {
+            return prefix + "{\n  " + is + pieces.join(",\n  " + is) + "\n" +
+                is + "}";
+        }
+        return prefix + "{ " + pieces.join(", ") + " }";
+    };
+
+    ascii.element = function (element) {
+        var tagName = element.tagName.toLowerCase();
+        var attrs = element.attributes, attr, pairs = [], attrName, i, l, val;
+
+        for (i = 0, l = attrs.length; i < l; ++i) {
+            attr = attrs.item(i);
+            attrName = attr.nodeName.toLowerCase().replace("html:", "");
+            val = attr.nodeValue;
+            if (attrName !== "contenteditable" || val !== "inherit") {
+                if (!!val) { pairs.push(attrName + "=\"" + val + "\""); }
+            }
+        }
+
+        var formatted = "<" + tagName + (pairs.length > 0 ? " " : "");
+        var content = element.innerHTML;
+
+        if (content.length > 20) {
+            content = content.substr(0, 20) + "[...]";
+        }
+
+        var res = formatted + pairs.join(" ") + ">" + content +
+                "</" + tagName + ">";
+
+        return res.replace(/ contentEditable="inherit"/, "");
+    };
+
+    function Formatio(options) {
+        for (var opt in options) {
+            this[opt] = options[opt];
+        }
+    }
+
+    Formatio.prototype = {
+        functionName: functionName,
+
+        configure: function (options) {
+            return new Formatio(options);
+        },
+
+        constructorName: function (object) {
+            return constructorName(this, object);
+        },
+
+        ascii: function (object, processed, indent) {
+            return ascii(this, object, processed, indent);
+        }
+    };
+
+    return Formatio.prototype;
+});
+!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.lolex=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+(function (global){
+/*jslint eqeqeq: false, plusplus: false, evil: true, onevar: false, browser: true, forin: false*/
+/*global global*/
+/**
+ * @author Christian Johansen (christian@cjohansen.no) and contributors
+ * @license BSD
+ *
+ * Copyright (c) 2010-2014 Christian Johansen
+ */
+
+// node expects setTimeout/setInterval to return a fn object w/ .ref()/.unref()
+// browsers, a number.
+// see https://github.com/cjohansen/Sinon.JS/pull/436
+var timeoutResult = setTimeout(function() {}, 0);
+var addTimerReturnsObject = typeof timeoutResult === "object";
+clearTimeout(timeoutResult);
+
+var NativeDate = Date;
+var id = 1;
+
+/**
+ * Parse strings like "01:10:00" (meaning 1 hour, 10 minutes, 0 seconds) into
+ * number of milliseconds. This is used to support human-readable strings passed
+ * to clock.tick()
+ */
+function parseTime(str) {
+    if (!str) {
+        return 0;
+    }
+
+    var strings = str.split(":");
+    var l = strings.length, i = l;
+    var ms = 0, parsed;
+
+    if (l > 3 || !/^(\d\d:){0,2}\d\d?$/.test(str)) {
+        throw new Error("tick only understands numbers and 'h:m:s'");
+    }
+
+    while (i--) {
+        parsed = parseInt(strings[i], 10);
+
+        if (parsed >= 60) {
+            throw new Error("Invalid time " + str);
+        }
+
+        ms += parsed * Math.pow(60, (l - i - 1));
+    }
+
+    return ms * 1000;
+}
+
+/**
+ * Used to grok the `now` parameter to createClock.
+ */
+function getEpoch(epoch) {
+    if (!epoch) { return 0; }
+    if (typeof epoch.getTime === "function") { return epoch.getTime(); }
+    if (typeof epoch === "number") { return epoch; }
+    throw new TypeError("now should be milliseconds since UNIX epoch");
+}
+
+function inRange(from, to, timer) {
+    return timer && timer.callAt >= from && timer.callAt <= to;
+}
+
+function mirrorDateProperties(target, source) {
+    if (source.now) {
+        target.now = function now() {
+            return target.clock.now;
+        };
+    } else {
+        delete target.now;
+    }
+
+    if (source.toSource) {
+        target.toSource = function toSource() {
+            return source.toSource();
+        };
+    } else {
+        delete target.toSource;
+    }
+
+    target.toString = function toString() {
+        return source.toString();
+    };
+
+    target.prototype = source.prototype;
+    target.parse = source.parse;
+    target.UTC = source.UTC;
+    target.prototype.toUTCString = source.prototype.toUTCString;
+
+    for (var prop in source) {
+        if (source.hasOwnProperty(prop)) {
+            target[prop] = source[prop];
+        }
+    }
+
+    return target;
+}
+
+function createDate() {
+    function ClockDate(year, month, date, hour, minute, second, ms) {
+        // Defensive and verbose to avoid potential harm in passing
+        // explicit undefined when user does not pass argument
+        switch (arguments.length) {
+        case 0:
+            return new NativeDate(ClockDate.clock.now);
+        case 1:
+            return new NativeDate(year);
+        case 2:
+            return new NativeDate(year, month);
+        case 3:
+            return new NativeDate(year, month, date);
+        case 4:
+            return new NativeDate(year, month, date, hour);
+        case 5:
+            return new NativeDate(year, month, date, hour, minute);
+        case 6:
+            return new NativeDate(year, month, date, hour, minute, second);
+        default:
+            return new NativeDate(year, month, date, hour, minute, second, ms);
+        }
+    }
+
+    return mirrorDateProperties(ClockDate, NativeDate);
+}
+
+function addTimer(clock, timer) {
+    if (typeof timer.func === "undefined") {
+        throw new Error("Callback must be provided to timer calls");
+    }
+
+    if (!clock.timers) {
+        clock.timers = {};
+    }
+
+    timer.id = id++;
+    timer.createdAt = clock.now;
+    timer.callAt = clock.now + (timer.delay || 0);
+
+    clock.timers[timer.id] = timer;
+
+    if (addTimerReturnsObject) {
+        return {
+            id: timer.id,
+            ref: function() {},
+            unref: function() {}
+        };
+    }
+    else {
+        return timer.id;
+    }
+}
+
+function firstTimerInRange(clock, from, to) {
+    var timers = clock.timers, timer = null;
+
+    for (var id in timers) {
+        if (!inRange(from, to, timers[id])) {
+            continue;
+        }
+
+        if (!timer || ~compareTimers(timer, timers[id])) {
+            timer = timers[id];
+        }
+    }
+
+    return timer;
+}
+
+function compareTimers(a, b) {
+    // Sort first by absolute timing
+    if (a.callAt < b.callAt) {
+        return -1;
+    }
+    if (a.callAt > b.callAt) {
+        return 1;
+    }
+
+    // Sort next by immediate, immediate timers take precedence
+    if (a.immediate && !b.immediate) {
+        return -1;
+    }
+    if (!a.immediate && b.immediate) {
+        return 1;
+    }
+
+    // Sort next by creation time, earlier-created timers take precedence
+    if (a.createdAt < b.createdAt) {
+        return -1;
+    }
+    if (a.createdAt > b.createdAt) {
+        return 1;
+    }
+
+    // Sort next by id, lower-id timers take precedence
+    if (a.id < b.id) {
+        return -1;
+    }
+    if (a.id > b.id) {
+        return 1;
+    }
+
+    // As timer ids are unique, no fallback `0` is necessary
+}
+
+function callTimer(clock, timer) {
+    if (typeof timer.interval == "number") {
+        clock.timers[timer.id].callAt += timer.interval;
+    } else {
+        delete clock.timers[timer.id];
+    }
+
+    try {
+        if (typeof timer.func == "function") {
+            timer.func.apply(null, timer.args);
+        } else {
+            eval(timer.func);
+        }
+    } catch (e) {
+        var exception = e;
+    }
+
+    if (!clock.timers[timer.id]) {
+        if (exception) {
+            throw exception;
+        }
+        return;
+    }
+
+    if (exception) {
+        throw exception;
+    }
+}
+
+function uninstall(clock, target) {
+    var method;
+
+    for (var i = 0, l = clock.methods.length; i < l; i++) {
+        method = clock.methods[i];
+
+        if (target[method].hadOwnProperty) {
+            target[method] = clock["_" + method];
+        } else {
+            try {
+                delete target[method];
+            } catch (e) {}
+        }
+    }
+
+    // Prevent multiple executions which will completely remove these props
+    clock.methods = [];
+}
+
+function hijackMethod(target, method, clock) {
+    clock[method].hadOwnProperty = Object.prototype.hasOwnProperty.call(target, method);
+    clock["_" + method] = target[method];
+
+    if (method == "Date") {
+        var date = mirrorDateProperties(clock[method], target[method]);
+        target[method] = date;
+    } else {
+        target[method] = function () {
+            return clock[method].apply(clock, arguments);
+        };
+
+        for (var prop in clock[method]) {
+            if (clock[method].hasOwnProperty(prop)) {
+                target[method][prop] = clock[method][prop];
+            }
+        }
+    }
+
+    target[method].clock = clock;
+}
+
+var timers = {
+    setTimeout: setTimeout,
+    clearTimeout: clearTimeout,
+    setImmediate: (typeof setImmediate !== "undefined" ? setImmediate : undefined),
+    clearImmediate: (typeof clearImmediate !== "undefined" ? clearImmediate: undefined),
+    setInterval: setInterval,
+    clearInterval: clearInterval,
+    Date: Date
+};
+
+var keys = Object.keys || function (obj) {
+    var ks = [];
+    for (var key in obj) {
+        ks.push(key);
+    }
+    return ks;
+};
+
+exports.timers = timers;
+
+var createClock = exports.createClock = function (now) {
+    var clock = {
+        now: getEpoch(now),
+        timeouts: {},
+        Date: createDate()
+    };
+
+    clock.Date.clock = clock;
+
+    clock.setTimeout = function setTimeout(func, timeout) {
+        return addTimer(clock, {
+            func: func,
+            args: Array.prototype.slice.call(arguments, 2),
+            delay: timeout
+        });
+    };
+
+    clock.clearTimeout = function clearTimeout(timerId) {
+        if (!timerId) {
+            // null appears to be allowed in most browsers, and appears to be
+            // relied upon by some libraries, like Bootstrap carousel
+            return;
+        }
+        if (!clock.timers) {
+            clock.timers = [];
+        }
+        // in Node, timerId is an object with .ref()/.unref(), and
+        // its .id field is the actual timer id.
+        if (typeof timerId === "object") {
+            timerId = timerId.id
+        }
+        if (timerId in clock.timers) {
+            delete clock.timers[timerId];
+        }
+    };
+
+    clock.setInterval = function setInterval(func, timeout) {
+        return addTimer(clock, {
+            func: func,
+            args: Array.prototype.slice.call(arguments, 2),
+            delay: timeout,
+            interval: timeout
+        });
+    };
+
+    clock.clearInterval = function clearInterval(timerId) {
+        clock.clearTimeout(timerId);
+    };
+
+    clock.setImmediate = function setImmediate(func) {
+        return addTimer(clock, {
+            func: func,
+            args: Array.prototype.slice.call(arguments, 1),
+            immediate: true
+        });
+    };
+
+    clock.clearImmediate = function clearImmediate(timerId) {
+        clock.clearTimeout(timerId);
+    };
+
+    clock.tick = function tick(ms) {
+        ms = typeof ms == "number" ? ms : parseTime(ms);
+        var tickFrom = clock.now, tickTo = clock.now + ms, previous = clock.now;
+        var timer = firstTimerInRange(clock, tickFrom, tickTo);
+
+        var firstException;
+        while (timer && tickFrom <= tickTo) {
+            if (clock.timers[timer.id]) {
+                tickFrom = clock.now = timer.callAt;
+                try {
+                    callTimer(clock, timer);
+                } catch (e) {
+                    firstException = firstException || e;
+                }
+            }
+
+            timer = firstTimerInRange(clock, previous, tickTo);
+            previous = tickFrom;
+        }
+
+        clock.now = tickTo;
+
+        if (firstException) {
+            throw firstException;
+        }
+
+        return clock.now;
+    };
+
+    clock.reset = function reset() {
+        clock.timers = {};
+    };
+
+    return clock;
+};
+
+exports.install = function install(target, now, toFake) {
+    if (typeof target === "number") {
+        toFake = now;
+        now = target;
+        target = null;
+    }
+
+    if (!target) {
+        target = global;
+    }
+
+    var clock = createClock(now);
+
+    clock.uninstall = function () {
+        uninstall(clock, target);
+    };
+
+    clock.methods = toFake || [];
+
+    if (clock.methods.length === 0) {
+        clock.methods = keys(timers);
+    }
+
+    for (var i = 0, l = clock.methods.length; i < l; i++) {
+        hijackMethod(target, clock.methods[i], clock);
+    }
+
+    return clock;
+};
+
+}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{}]},{},[1])(1)
+});
+  })();
+  var define;
+/**
+ * Sinon core utilities. For internal use only.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+var sinon = (function () {
+"use strict";
+
+    var sinon;
+    var isNode = typeof module !== "undefined" && module.exports && typeof require === "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    function loadDependencies(require, exports, module) {
+        sinon = module.exports = require("./sinon/util/core");
+        require("./sinon/extend");
+        require("./sinon/typeOf");
+        require("./sinon/times_in_words");
+        require("./sinon/spy");
+        require("./sinon/call");
+        require("./sinon/behavior");
+        require("./sinon/stub");
+        require("./sinon/mock");
+        require("./sinon/collection");
+        require("./sinon/assert");
+        require("./sinon/sandbox");
+        require("./sinon/test");
+        require("./sinon/test_case");
+        require("./sinon/match");
+        require("./sinon/format");
+        require("./sinon/log_error");
+    }
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+        sinon = module.exports;
+    } else {
+        sinon = {};
+    }
+
+    return sinon;
+}());
+
+/**
+ * @depend ../../sinon.js
+ */
+/**
+ * Sinon core utilities. For internal use only.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon) {
+    var div = typeof document != "undefined" && document.createElement("div");
+    var hasOwn = Object.prototype.hasOwnProperty;
+
+    function isDOMNode(obj) {
+        var success = false;
+
+        try {
+            obj.appendChild(div);
+            success = div.parentNode == obj;
+        } catch (e) {
+            return false;
+        } finally {
+            try {
+                obj.removeChild(div);
+            } catch (e) {
+                // Remove failed, not much we can do about that
+            }
+        }
+
+        return success;
+    }
+
+    function isElement(obj) {
+        return div && obj && obj.nodeType === 1 && isDOMNode(obj);
+    }
+
+    function isFunction(obj) {
+        return typeof obj === "function" || !!(obj && obj.constructor && obj.call && obj.apply);
+    }
+
+    function isReallyNaN(val) {
+        return typeof val === "number" && isNaN(val);
+    }
+
+    function mirrorProperties(target, source) {
+        for (var prop in source) {
+            if (!hasOwn.call(target, prop)) {
+                target[prop] = source[prop];
+            }
+        }
+    }
+
+    function isRestorable(obj) {
+        return typeof obj === "function" && typeof obj.restore === "function" && obj.restore.sinon;
+    }
+
+    // Cheap way to detect if we have ES5 support.
+    var hasES5Support = "keys" in Object;
+
+    function makeApi(sinon) {
+        sinon.wrapMethod = function wrapMethod(object, property, method) {
+            if (!object) {
+                throw new TypeError("Should wrap property of object");
+            }
+
+            if (typeof method != "function" && typeof method != "object") {
+                throw new TypeError("Method wrapper should be a function or a property descriptor");
+            }
+
+            function checkWrappedMethod(wrappedMethod) {
+                if (!isFunction(wrappedMethod)) {
+                    error = new TypeError("Attempted to wrap " + (typeof wrappedMethod) + " property " +
+                                        property + " as function");
+                } else if (wrappedMethod.restore && wrappedMethod.restore.sinon) {
+                    error = new TypeError("Attempted to wrap " + property + " which is already wrapped");
+                } else if (wrappedMethod.calledBefore) {
+                    var verb = !!wrappedMethod.returns ? "stubbed" : "spied on";
+                    error = new TypeError("Attempted to wrap " + property + " which is already " + verb);
+                }
+
+                if (error) {
+                    if (wrappedMethod && wrappedMethod.stackTrace) {
+                        error.stack += "\n--------------\n" + wrappedMethod.stackTrace;
+                    }
+                    throw error;
+                }
+            }
+
+            var error, wrappedMethod;
+
+            // IE 8 does not support hasOwnProperty on the window object and Firefox has a problem
+            // when using hasOwn.call on objects from other frames.
+            var owned = object.hasOwnProperty ? object.hasOwnProperty(property) : hasOwn.call(object, property);
+
+            if (hasES5Support) {
+                var methodDesc = (typeof method == "function") ? {value: method} : method,
+                    wrappedMethodDesc = sinon.getPropertyDescriptor(object, property),
+                    i;
+
+                if (!wrappedMethodDesc) {
+                    error = new TypeError("Attempted to wrap " + (typeof wrappedMethod) + " property " +
+                                        property + " as function");
+                } else if (wrappedMethodDesc.restore && wrappedMethodDesc.restore.sinon) {
+                    error = new TypeError("Attempted to wrap " + property + " which is already wrapped");
+                }
+                if (error) {
+                    if (wrappedMethodDesc && wrappedMethodDesc.stackTrace) {
+                        error.stack += "\n--------------\n" + wrappedMethodDesc.stackTrace;
+                    }
+                    throw error;
+                }
+
+                var types = sinon.objectKeys(methodDesc);
+                for (i = 0; i < types.length; i++) {
+                    wrappedMethod = wrappedMethodDesc[types[i]];
+                    checkWrappedMethod(wrappedMethod);
+                }
+
+                mirrorProperties(methodDesc, wrappedMethodDesc);
+                for (i = 0; i < types.length; i++) {
+                    mirrorProperties(methodDesc[types[i]], wrappedMethodDesc[types[i]]);
+                }
+                Object.defineProperty(object, property, methodDesc);
+            } else {
+                wrappedMethod = object[property];
+                checkWrappedMethod(wrappedMethod);
+                object[property] = method;
+                method.displayName = property;
+            }
+
+            method.displayName = property;
+
+            // Set up a stack trace which can be used later to find what line of
+            // code the original method was created on.
+            method.stackTrace = (new Error("Stack Trace for original")).stack;
+
+            method.restore = function () {
+                // For prototype properties try to reset by delete first.
+                // If this fails (ex: localStorage on mobile safari) then force a reset
+                // via direct assignment.
+                if (!owned) {
+                    // In some cases `delete` may throw an error
+                    try {
+                        delete object[property];
+                    } catch (e) {}
+                    // For native code functions `delete` fails without throwing an error
+                    // on Chrome < 43, PhantomJS, etc.
+                } else if (hasES5Support) {
+                    Object.defineProperty(object, property, wrappedMethodDesc);
+                }
+
+                // Use strict equality comparison to check failures then force a reset
+                // via direct assignment.
+                if (object[property] === method) {
+                    object[property] = wrappedMethod;
+                }
+            };
+
+            method.restore.sinon = true;
+
+            if (!hasES5Support) {
+                mirrorProperties(method, wrappedMethod);
+            }
+
+            return method;
+        };
+
+        sinon.create = function create(proto) {
+            var F = function () {};
+            F.prototype = proto;
+            return new F();
+        };
+
+        sinon.deepEqual = function deepEqual(a, b) {
+            if (sinon.match && sinon.match.isMatcher(a)) {
+                return a.test(b);
+            }
+
+            if (typeof a != "object" || typeof b != "object") {
+                if (isReallyNaN(a) && isReallyNaN(b)) {
+                    return true;
+                } else {
+                    return a === b;
+                }
+            }
+
+            if (isElement(a) || isElement(b)) {
+                return a === b;
+            }
+
+            if (a === b) {
+                return true;
+            }
+
+            if ((a === null && b !== null) || (a !== null && b === null)) {
+                return false;
+            }
+
+            if (a instanceof RegExp && b instanceof RegExp) {
+                return (a.source === b.source) && (a.global === b.global) &&
+                    (a.ignoreCase === b.ignoreCase) && (a.multiline === b.multiline);
+            }
+
+            var aString = Object.prototype.toString.call(a);
+            if (aString != Object.prototype.toString.call(b)) {
+                return false;
+            }
+
+            if (aString == "[object Date]") {
+                return a.valueOf() === b.valueOf();
+            }
+
+            var prop, aLength = 0, bLength = 0;
+
+            if (aString == "[object Array]" && a.length !== b.length) {
+                return false;
+            }
+
+            for (prop in a) {
+                aLength += 1;
+
+                if (!(prop in b)) {
+                    return false;
+                }
+
+                if (!deepEqual(a[prop], b[prop])) {
+                    return false;
+                }
+            }
+
+            for (prop in b) {
+                bLength += 1;
+            }
+
+            return aLength == bLength;
+        };
+
+        sinon.functionName = function functionName(func) {
+            var name = func.displayName || func.name;
+
+            // Use function decomposition as a last resort to get function
+            // name. Does not rely on function decomposition to work - if it
+            // doesn't debugging will be slightly less informative
+            // (i.e. toString will say 'spy' rather than 'myFunc').
+            if (!name) {
+                var matches = func.toString().match(/function ([^\s\(]+)/);
+                name = matches && matches[1];
+            }
+
+            return name;
+        };
+
+        sinon.functionToString = function toString() {
+            if (this.getCall && this.callCount) {
+                var thisValue, prop, i = this.callCount;
+
+                while (i--) {
+                    thisValue = this.getCall(i).thisValue;
+
+                    for (prop in thisValue) {
+                        if (thisValue[prop] === this) {
+                            return prop;
+                        }
+                    }
+                }
+            }
+
+            return this.displayName || "sinon fake";
+        };
+
+        sinon.objectKeys = function objectKeys(obj) {
+            if (obj !== Object(obj)) {
+                throw new TypeError("sinon.objectKeys called on a non-object");
+            }
+
+            var keys = [];
+            var key;
+            for (key in obj) {
+                if (hasOwn.call(obj, key)) {
+                    keys.push(key);
+                }
+            }
+
+            return keys;
+        };
+
+        sinon.getPropertyDescriptor = function getPropertyDescriptor(object, property) {
+            var proto = object, descriptor;
+            while (proto && !(descriptor = Object.getOwnPropertyDescriptor(proto, property))) {
+                proto = Object.getPrototypeOf(proto);
+            }
+            return descriptor;
+        }
+
+        sinon.getConfig = function (custom) {
+            var config = {};
+            custom = custom || {};
+            var defaults = sinon.defaultConfig;
+
+            for (var prop in defaults) {
+                if (defaults.hasOwnProperty(prop)) {
+                    config[prop] = custom.hasOwnProperty(prop) ? custom[prop] : defaults[prop];
+                }
+            }
+
+            return config;
+        };
+
+        sinon.defaultConfig = {
+            injectIntoThis: true,
+            injectInto: null,
+            properties: ["spy", "stub", "mock", "clock", "server", "requests"],
+            useFakeTimers: true,
+            useFakeServer: true
+        };
+
+        sinon.timesInWords = function timesInWords(count) {
+            return count == 1 && "once" ||
+                count == 2 && "twice" ||
+                count == 3 && "thrice" ||
+                (count || 0) + " times";
+        };
+
+        sinon.calledInOrder = function (spies) {
+            for (var i = 1, l = spies.length; i < l; i++) {
+                if (!spies[i - 1].calledBefore(spies[i]) || !spies[i].called) {
+                    return false;
+                }
+            }
+
+            return true;
+        };
+
+        sinon.orderByFirstCall = function (spies) {
+            return spies.sort(function (a, b) {
+                // uuid, won't ever be equal
+                var aCall = a.getCall(0);
+                var bCall = b.getCall(0);
+                var aId = aCall && aCall.callId || -1;
+                var bId = bCall && bCall.callId || -1;
+
+                return aId < bId ? -1 : 1;
+            });
+        };
+
+        sinon.createStubInstance = function (constructor) {
+            if (typeof constructor !== "function") {
+                throw new TypeError("The constructor should be a function.");
+            }
+            return sinon.stub(sinon.create(constructor.prototype));
+        };
+
+        sinon.restore = function (object) {
+            if (object !== null && typeof object === "object") {
+                for (var prop in object) {
+                    if (isRestorable(object[prop])) {
+                        object[prop].restore();
+                    }
+                }
+            } else if (isRestorable(object)) {
+                object.restore();
+            }
+        };
+
+        return sinon;
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    function loadDependencies(require, exports) {
+        makeApi(exports);
+    }
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports);
+    } else if (!sinon) {
+        return;
+    } else {
+        makeApi(sinon);
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend util/core.js
+ */
+
+(function (sinon) {
+    function makeApi(sinon) {
+
+        // Adapted from https://developer.mozilla.org/en/docs/ECMAScript_DontEnum_attribute#JScript_DontEnum_Bug
+        var hasDontEnumBug = (function () {
+            var obj = {
+                constructor: function () {
+                    return "0";
+                },
+                toString: function () {
+                    return "1";
+                },
+                valueOf: function () {
+                    return "2";
+                },
+                toLocaleString: function () {
+                    return "3";
+                },
+                prototype: function () {
+                    return "4";
+                },
+                isPrototypeOf: function () {
+                    return "5";
+                },
+                propertyIsEnumerable: function () {
+                    return "6";
+                },
+                hasOwnProperty: function () {
+                    return "7";
+                },
+                length: function () {
+                    return "8";
+                },
+                unique: function () {
+                    return "9"
+                }
+            };
+
+            var result = [];
+            for (var prop in obj) {
+                result.push(obj[prop]());
+            }
+            return result.join("") !== "0123456789";
+        })();
+
+        /* Public: Extend target in place with all (own) properties from sources in-order. Thus, last source will
+         *         override properties in previous sources.
+         *
+         * target - The Object to extend
+         * sources - Objects to copy properties from.
+         *
+         * Returns the extended target
+         */
+        function extend(target /*, sources */) {
+            var sources = Array.prototype.slice.call(arguments, 1),
+                source, i, prop;
+
+            for (i = 0; i < sources.length; i++) {
+                source = sources[i];
+
+                for (prop in source) {
+                    if (source.hasOwnProperty(prop)) {
+                        target[prop] = source[prop];
+                    }
+                }
+
+                // Make sure we copy (own) toString method even when in JScript with DontEnum bug
+                // See https://developer.mozilla.org/en/docs/ECMAScript_DontEnum_attribute#JScript_DontEnum_Bug
+                if (hasDontEnumBug && source.hasOwnProperty("toString") && source.toString !== target.toString) {
+                    target.toString = source.toString;
+                }
+            }
+
+            return target;
+        };
+
+        sinon.extend = extend;
+        return sinon.extend;
+    }
+
+    function loadDependencies(require, exports, module) {
+        var sinon = require("./util/core");
+        module.exports = makeApi(sinon);
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+    } else if (!sinon) {
+        return;
+    } else {
+        makeApi(sinon);
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend util/core.js
+ */
+
+(function (sinon) {
+    function makeApi(sinon) {
+
+        function timesInWords(count) {
+            switch (count) {
+                case 1:
+                    return "once";
+                case 2:
+                    return "twice";
+                case 3:
+                    return "thrice";
+                default:
+                    return (count || 0) + " times";
+            }
+        }
+
+        sinon.timesInWords = timesInWords;
+        return sinon.timesInWords;
+    }
+
+    function loadDependencies(require, exports, module) {
+        var sinon = require("./util/core");
+        module.exports = makeApi(sinon);
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+    } else if (!sinon) {
+        return;
+    } else {
+        makeApi(sinon);
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend util/core.js
+ */
+/**
+ * Format functions
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2014 Christian Johansen
+ */
+
+(function (sinon, formatio) {
+    function makeApi(sinon) {
+        function typeOf(value) {
+            if (value === null) {
+                return "null";
+            } else if (value === undefined) {
+                return "undefined";
+            }
+            var string = Object.prototype.toString.call(value);
+            return string.substring(8, string.length - 1).toLowerCase();
+        };
+
+        sinon.typeOf = typeOf;
+        return sinon.typeOf;
+    }
+
+    function loadDependencies(require, exports, module) {
+        var sinon = require("./util/core");
+        module.exports = makeApi(sinon);
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+    } else if (!sinon) {
+        return;
+    } else {
+        makeApi(sinon);
+    }
+}(
+    (typeof sinon == "object" && sinon || null),
+    (typeof formatio == "object" && formatio)
+));
+
+/**
+ * @depend util/core.js
+ * @depend typeOf.js
+ */
+/*jslint eqeqeq: false, onevar: false, plusplus: false*/
+/*global module, require, sinon*/
+/**
+ * Match functions
+ *
+ * @author Maximilian Antoni (mail@maxantoni.de)
+ * @license BSD
+ *
+ * Copyright (c) 2012 Maximilian Antoni
+ */
+
+(function (sinon) {
+    function makeApi(sinon) {
+        function assertType(value, type, name) {
+            var actual = sinon.typeOf(value);
+            if (actual !== type) {
+                throw new TypeError("Expected type of " + name + " to be " +
+                    type + ", but was " + actual);
+            }
+        }
+
+        var matcher = {
+            toString: function () {
+                return this.message;
+            }
+        };
+
+        function isMatcher(object) {
+            return matcher.isPrototypeOf(object);
+        }
+
+        function matchObject(expectation, actual) {
+            if (actual === null || actual === undefined) {
+                return false;
+            }
+            for (var key in expectation) {
+                if (expectation.hasOwnProperty(key)) {
+                    var exp = expectation[key];
+                    var act = actual[key];
+                    if (match.isMatcher(exp)) {
+                        if (!exp.test(act)) {
+                            return false;
+                        }
+                    } else if (sinon.typeOf(exp) === "object") {
+                        if (!matchObject(exp, act)) {
+                            return false;
+                        }
+                    } else if (!sinon.deepEqual(exp, act)) {
+                        return false;
+                    }
+                }
+            }
+            return true;
+        }
+
+        matcher.or = function (m2) {
+            if (!arguments.length) {
+                throw new TypeError("Matcher expected");
+            } else if (!isMatcher(m2)) {
+                m2 = match(m2);
+            }
+            var m1 = this;
+            var or = sinon.create(matcher);
+            or.test = function (actual) {
+                return m1.test(actual) || m2.test(actual);
+            };
+            or.message = m1.message + ".or(" + m2.message + ")";
+            return or;
+        };
+
+        matcher.and = function (m2) {
+            if (!arguments.length) {
+                throw new TypeError("Matcher expected");
+            } else if (!isMatcher(m2)) {
+                m2 = match(m2);
+            }
+            var m1 = this;
+            var and = sinon.create(matcher);
+            and.test = function (actual) {
+                return m1.test(actual) && m2.test(actual);
+            };
+            and.message = m1.message + ".and(" + m2.message + ")";
+            return and;
+        };
+
+        var match = function (expectation, message) {
+            var m = sinon.create(matcher);
+            var type = sinon.typeOf(expectation);
+            switch (type) {
+            case "object":
+                if (typeof expectation.test === "function") {
+                    m.test = function (actual) {
+                        return expectation.test(actual) === true;
+                    };
+                    m.message = "match(" + sinon.functionName(expectation.test) + ")";
+                    return m;
+                }
+                var str = [];
+                for (var key in expectation) {
+                    if (expectation.hasOwnProperty(key)) {
+                        str.push(key + ": " + expectation[key]);
+                    }
+                }
+                m.test = function (actual) {
+                    return matchObject(expectation, actual);
+                };
+                m.message = "match(" + str.join(", ") + ")";
+                break;
+            case "number":
+                m.test = function (actual) {
+                    return expectation == actual;
+                };
+                break;
+            case "string":
+                m.test = function (actual) {
+                    if (typeof actual !== "string") {
+                        return false;
+                    }
+                    return actual.indexOf(expectation) !== -1;
+                };
+                m.message = "match(\"" + expectation + "\")";
+                break;
+            case "regexp":
+                m.test = function (actual) {
+                    if (typeof actual !== "string") {
+                        return false;
+                    }
+                    return expectation.test(actual);
+                };
+                break;
+            case "function":
+                m.test = expectation;
+                if (message) {
+                    m.message = message;
+                } else {
+                    m.message = "match(" + sinon.functionName(expectation) + ")";
+                }
+                break;
+            default:
+                m.test = function (actual) {
+                    return sinon.deepEqual(expectation, actual);
+                };
+            }
+            if (!m.message) {
+                m.message = "match(" + expectation + ")";
+            }
+            return m;
+        };
+
+        match.isMatcher = isMatcher;
+
+        match.any = match(function () {
+            return true;
+        }, "any");
+
+        match.defined = match(function (actual) {
+            return actual !== null && actual !== undefined;
+        }, "defined");
+
+        match.truthy = match(function (actual) {
+            return !!actual;
+        }, "truthy");
+
+        match.falsy = match(function (actual) {
+            return !actual;
+        }, "falsy");
+
+        match.same = function (expectation) {
+            return match(function (actual) {
+                return expectation === actual;
+            }, "same(" + expectation + ")");
+        };
+
+        match.typeOf = function (type) {
+            assertType(type, "string", "type");
+            return match(function (actual) {
+                return sinon.typeOf(actual) === type;
+            }, "typeOf(\"" + type + "\")");
+        };
+
+        match.instanceOf = function (type) {
+            assertType(type, "function", "type");
+            return match(function (actual) {
+                return actual instanceof type;
+            }, "instanceOf(" + sinon.functionName(type) + ")");
+        };
+
+        function createPropertyMatcher(propertyTest, messagePrefix) {
+            return function (property, value) {
+                assertType(property, "string", "property");
+                var onlyProperty = arguments.length === 1;
+                var message = messagePrefix + "(\"" + property + "\"";
+                if (!onlyProperty) {
+                    message += ", " + value;
+                }
+                message += ")";
+                return match(function (actual) {
+                    if (actual === undefined || actual === null ||
+                            !propertyTest(actual, property)) {
+                        return false;
+                    }
+                    return onlyProperty || sinon.deepEqual(value, actual[property]);
+                }, message);
+            };
+        }
+
+        match.has = createPropertyMatcher(function (actual, property) {
+            if (typeof actual === "object") {
+                return property in actual;
+            }
+            return actual[property] !== undefined;
+        }, "has");
+
+        match.hasOwn = createPropertyMatcher(function (actual, property) {
+            return actual.hasOwnProperty(property);
+        }, "hasOwn");
+
+        match.bool = match.typeOf("boolean");
+        match.number = match.typeOf("number");
+        match.string = match.typeOf("string");
+        match.object = match.typeOf("object");
+        match.func = match.typeOf("function");
+        match.array = match.typeOf("array");
+        match.regexp = match.typeOf("regexp");
+        match.date = match.typeOf("date");
+
+        sinon.match = match;
+        return match;
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    function loadDependencies(require, exports, module) {
+        var sinon = require("./util/core");
+        require("./typeOf");
+        module.exports = makeApi(sinon);
+    }
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+    } else if (!sinon) {
+        return;
+    } else {
+        makeApi(sinon);
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend util/core.js
+ */
+/**
+ * Format functions
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2014 Christian Johansen
+ */
+
+(function (sinon, formatio) {
+    function makeApi(sinon) {
+        function valueFormatter(value) {
+            return "" + value;
+        }
+
+        function getFormatioFormatter() {
+            var formatter = formatio.configure({
+                    quoteStrings: false,
+                    limitChildrenCount: 250
+                });
+
+            function format() {
+                return formatter.ascii.apply(formatter, arguments);
+            };
+
+            return format;
+        }
+
+        function getNodeFormatter(value) {
+            function format(value) {
+                return typeof value == "object" && value.toString === Object.prototype.toString ? util.inspect(value) : value;
+            };
+
+            try {
+                var util = require("util");
+            } catch (e) {
+                /* Node, but no util module - would be very old, but better safe than sorry */
+            }
+
+            return util ? format : valueFormatter;
+        }
+
+        var isNode = typeof module !== "undefined" && module.exports && typeof require == "function",
+            formatter;
+
+        if (isNode) {
+            try {
+                formatio = require("formatio");
+            } catch (e) {}
+        }
+
+        if (formatio) {
+            formatter = getFormatioFormatter()
+        } else if (isNode) {
+            formatter = getNodeFormatter();
+        } else {
+            formatter = valueFormatter;
+        }
+
+        sinon.format = formatter;
+        return sinon.format;
+    }
+
+    function loadDependencies(require, exports, module) {
+        var sinon = require("./util/core");
+        module.exports = makeApi(sinon);
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+    } else if (!sinon) {
+        return;
+    } else {
+        makeApi(sinon);
+    }
+}(
+    (typeof sinon == "object" && sinon || null),
+    (typeof formatio == "object" && formatio)
+));
+
+/**
+  * @depend util/core.js
+  * @depend match.js
+  * @depend format.js
+  */
+/**
+  * Spy calls
+  *
+  * @author Christian Johansen (christian@cjohansen.no)
+  * @author Maximilian Antoni (mail@maxantoni.de)
+  * @license BSD
+  *
+  * Copyright (c) 2010-2013 Christian Johansen
+  * Copyright (c) 2013 Maximilian Antoni
+  */
+
+(function (sinon) {
+    function makeApi(sinon) {
+        function throwYieldError(proxy, text, args) {
+            var msg = sinon.functionName(proxy) + text;
+            if (args.length) {
+                msg += " Received [" + slice.call(args).join(", ") + "]";
+            }
+            throw new Error(msg);
+        }
+
+        var slice = Array.prototype.slice;
+
+        var callProto = {
+            calledOn: function calledOn(thisValue) {
+                if (sinon.match && sinon.match.isMatcher(thisValue)) {
+                    return thisValue.test(this.thisValue);
+                }
+                return this.thisValue === thisValue;
+            },
+
+            calledWith: function calledWith() {
+                var l = arguments.length;
+                if (l > this.args.length) {
+                    return false;
+                }
+                for (var i = 0; i < l; i += 1) {
+                    if (!sinon.deepEqual(arguments[i], this.args[i])) {
+                        return false;
+                    }
+                }
+
+                return true;
+            },
+
+            calledWithMatch: function calledWithMatch() {
+                var l = arguments.length;
+                if (l > this.args.length) {
+                    return false;
+                }
+                for (var i = 0; i < l; i += 1) {
+                    var actual = this.args[i];
+                    var expectation = arguments[i];
+                    if (!sinon.match || !sinon.match(expectation).test(actual)) {
+                        return false;
+                    }
+                }
+                return true;
+            },
+
+            calledWithExactly: function calledWithExactly() {
+                return arguments.length == this.args.length &&
+                    this.calledWith.apply(this, arguments);
+            },
+
+            notCalledWith: function notCalledWith() {
+                return !this.calledWith.apply(this, arguments);
+            },
+
+            notCalledWithMatch: function notCalledWithMatch() {
+                return !this.calledWithMatch.apply(this, arguments);
+            },
+
+            returned: function returned(value) {
+                return sinon.deepEqual(value, this.returnValue);
+            },
+
+            threw: function threw(error) {
+                if (typeof error === "undefined" || !this.exception) {
+                    return !!this.exception;
+                }
+
+                return this.exception === error || this.exception.name === error;
+            },
+
+            calledWithNew: function calledWithNew() {
+                return this.proxy.prototype && this.thisValue instanceof this.proxy;
+            },
+
+            calledBefore: function (other) {
+                return this.callId < other.callId;
+            },
+
+            calledAfter: function (other) {
+                return this.callId > other.callId;
+            },
+
+            callArg: function (pos) {
+                this.args[pos]();
+            },
+
+            callArgOn: function (pos, thisValue) {
+                this.args[pos].apply(thisValue);
+            },
+
+            callArgWith: function (pos) {
+                this.callArgOnWith.apply(this, [pos, null].concat(slice.call(arguments, 1)));
+            },
+
+            callArgOnWith: function (pos, thisValue) {
+                var args = slice.call(arguments, 2);
+                this.args[pos].apply(thisValue, args);
+            },
+
+            yield: function () {
+                this.yieldOn.apply(this, [null].concat(slice.call(arguments, 0)));
+            },
+
+            yieldOn: function (thisValue) {
+                var args = this.args;
+                for (var i = 0, l = args.length; i < l; ++i) {
+                    if (typeof args[i] === "function") {
+                        args[i].apply(thisValue, slice.call(arguments, 1));
+                        return;
+                    }
+                }
+                throwYieldError(this.proxy, " cannot yield since no callback was passed.", args);
+            },
+
+            yieldTo: function (prop) {
+                this.yieldToOn.apply(this, [prop, null].concat(slice.call(arguments, 1)));
+            },
+
+            yieldToOn: function (prop, thisValue) {
+                var args = this.args;
+                for (var i = 0, l = args.length; i < l; ++i) {
+                    if (args[i] && typeof args[i][prop] === "function") {
+                        args[i][prop].apply(thisValue, slice.call(arguments, 2));
+                        return;
+                    }
+                }
+                throwYieldError(this.proxy, " cannot yield to '" + prop +
+                    "' since no callback was passed.", args);
+            },
+
+            toString: function () {
+                var callStr = this.proxy.toString() + "(";
+                var args = [];
+
+                for (var i = 0, l = this.args.length; i < l; ++i) {
+                    args.push(sinon.format(this.args[i]));
+                }
+
+                callStr = callStr + args.join(", ") + ")";
+
+                if (typeof this.returnValue != "undefined") {
+                    callStr += " => " + sinon.format(this.returnValue);
+                }
+
+                if (this.exception) {
+                    callStr += " !" + this.exception.name;
+
+                    if (this.exception.message) {
+                        callStr += "(" + this.exception.message + ")";
+                    }
+                }
+
+                return callStr;
+            }
+        };
+
+        callProto.invokeCallback = callProto.yield;
+
+        function createSpyCall(spy, thisValue, args, returnValue, exception, id) {
+            if (typeof id !== "number") {
+                throw new TypeError("Call id is not a number");
+            }
+            var proxyCall = sinon.create(callProto);
+            proxyCall.proxy = spy;
+            proxyCall.thisValue = thisValue;
+            proxyCall.args = args;
+            proxyCall.returnValue = returnValue;
+            proxyCall.exception = exception;
+            proxyCall.callId = id;
+
+            return proxyCall;
+        }
+        createSpyCall.toString = callProto.toString; // used by mocks
+
+        sinon.spyCall = createSpyCall;
+        return createSpyCall;
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    function loadDependencies(require, exports, module) {
+        var sinon = require("./util/core");
+        require("./match");
+        require("./format");
+        module.exports = makeApi(sinon);
+    }
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+    } else if (!sinon) {
+        return;
+    } else {
+        makeApi(sinon);
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+  * @depend times_in_words.js
+  * @depend util/core.js
+  * @depend extend.js
+  * @depend call.js
+  * @depend format.js
+  */
+/**
+  * Spy functions
+  *
+  * @author Christian Johansen (christian@cjohansen.no)
+  * @license BSD
+  *
+  * Copyright (c) 2010-2013 Christian Johansen
+  */
+
+(function (sinon) {
+
+    function makeApi(sinon) {
+        var push = Array.prototype.push;
+        var slice = Array.prototype.slice;
+        var callId = 0;
+
+        function spy(object, property, types) {
+            if (!property && typeof object == "function") {
+                return spy.create(object);
+            }
+
+            if (!object && !property) {
+                return spy.create(function () { });
+            }
+
+            if (types) {
+                var methodDesc = sinon.getPropertyDescriptor(object, property);
+                for (var i = 0; i < types.length; i++) {
+                    methodDesc[types[i]] = spy.create(methodDesc[types[i]]);
+                }
+                return sinon.wrapMethod(object, property, methodDesc);
+            } else {
+                var method = object[property];
+                return sinon.wrapMethod(object, property, spy.create(method));
+            }
+        }
+
+        function matchingFake(fakes, args, strict) {
+            if (!fakes) {
+                return;
+            }
+
+            for (var i = 0, l = fakes.length; i < l; i++) {
+                if (fakes[i].matches(args, strict)) {
+                    return fakes[i];
+                }
+            }
+        }
+
+        function incrementCallCount() {
+            this.called = true;
+            this.callCount += 1;
+            this.notCalled = false;
+            this.calledOnce = this.callCount == 1;
+            this.calledTwice = this.callCount == 2;
+            this.calledThrice = this.callCount == 3;
+        }
+
+        function createCallProperties() {
+            this.firstCall = this.getCall(0);
+            this.secondCall = this.getCall(1);
+            this.thirdCall = this.getCall(2);
+            this.lastCall = this.getCall(this.callCount - 1);
+        }
+
+        var vars = "a,b,c,d,e,f,g,h,i,j,k,l";
+        function createProxy(func, proxyLength) {
+            // Retain the function length:
+            var p;
+            if (proxyLength) {
+                eval("p = (function proxy(" + vars.substring(0, proxyLength * 2 - 1) +
+                    ") { return p.invoke(func, this, slice.call(arguments)); });");
+            } else {
+                p = function proxy() {
+                    return p.invoke(func, this, slice.call(arguments));
+                };
+            }
+            p.isSinonProxy = true;
+            return p;
+        }
+
+        var uuid = 0;
+
+        // Public API
+        var spyApi = {
+            reset: function () {
+                if (this.invoking) {
+                    var err = new Error("Cannot reset Sinon function while invoking it. " +
+                                        "Move the call to .reset outside of the callback.");
+                    err.name = "InvalidResetException";
+                    throw err;
+                }
+
+                this.called = false;
+                this.notCalled = true;
+                this.calledOnce = false;
+                this.calledTwice = false;
+                this.calledThrice = false;
+                this.callCount = 0;
+                this.firstCall = null;
+                this.secondCall = null;
+                this.thirdCall = null;
+                this.lastCall = null;
+                this.args = [];
+                this.returnValues = [];
+                this.thisValues = [];
+                this.exceptions = [];
+                this.callIds = [];
+                if (this.fakes) {
+                    for (var i = 0; i < this.fakes.length; i++) {
+                        this.fakes[i].reset();
+                    }
+                }
+
+                return this;
+            },
+
+            create: function create(func, spyLength) {
+                var name;
+
+                if (typeof func != "function") {
+                    func = function () { };
+                } else {
+                    name = sinon.functionName(func);
+                }
+
+                if (!spyLength) {
+                    spyLength = func.length;
+                }
+
+                var proxy = createProxy(func, spyLength);
+
+                sinon.extend(proxy, spy);
+                delete proxy.create;
+                sinon.extend(proxy, func);
+
+                proxy.reset();
+                proxy.prototype = func.prototype;
+                proxy.displayName = name || "spy";
+                proxy.toString = sinon.functionToString;
+                proxy.instantiateFake = sinon.spy.create;
+                proxy.id = "spy#" + uuid++;
+
+                return proxy;
+            },
+
+            invoke: function invoke(func, thisValue, args) {
+                var matching = matchingFake(this.fakes, args);
+                var exception, returnValue;
+
+                incrementCallCount.call(this);
+                push.call(this.thisValues, thisValue);
+                push.call(this.args, args);
+                push.call(this.callIds, callId++);
+
+                // Make call properties available from within the spied function:
+                createCallProperties.call(this);
+
+                try {
+                    this.invoking = true;
+
+                    if (matching) {
+                        returnValue = matching.invoke(func, thisValue, args);
+                    } else {
+                        returnValue = (this.func || func).apply(thisValue, args);
+                    }
+
+                    var thisCall = this.getCall(this.callCount - 1);
+                    if (thisCall.calledWithNew() && typeof returnValue !== "object") {
+                        returnValue = thisValue;
+                    }
+                } catch (e) {
+                    exception = e;
+                } finally {
+                    delete this.invoking;
+                }
+
+                push.call(this.exceptions, exception);
+                push.call(this.returnValues, returnValue);
+
+                // Make return value and exception available in the calls:
+                createCallProperties.call(this);
+
+                if (exception !== undefined) {
+                    throw exception;
+                }
+
+                return returnValue;
+            },
+
+            named: function named(name) {
+                this.displayName = name;
+                return this;
+            },
+
+            getCall: function getCall(i) {
+                if (i < 0 || i >= this.callCount) {
+                    return null;
+                }
+
+                return sinon.spyCall(this, this.thisValues[i], this.args[i],
+                                        this.returnValues[i], this.exceptions[i],
+                                        this.callIds[i]);
+            },
+
+            getCalls: function () {
+                var calls = [];
+                var i;
+
+                for (i = 0; i < this.callCount; i++) {
+                    calls.push(this.getCall(i));
+                }
+
+                return calls;
+            },
+
+            calledBefore: function calledBefore(spyFn) {
+                if (!this.called) {
+                    return false;
+                }
+
+                if (!spyFn.called) {
+                    return true;
+                }
+
+                return this.callIds[0] < spyFn.callIds[spyFn.callIds.length - 1];
+            },
+
+            calledAfter: function calledAfter(spyFn) {
+                if (!this.called || !spyFn.called) {
+                    return false;
+                }
+
+                return this.callIds[this.callCount - 1] > spyFn.callIds[spyFn.callCount - 1];
+            },
+
+            withArgs: function () {
+                var args = slice.call(arguments);
+
+                if (this.fakes) {
+                    var match = matchingFake(this.fakes, args, true);
+
+                    if (match) {
+                        return match;
+                    }
+                } else {
+                    this.fakes = [];
+                }
+
+                var original = this;
+                var fake = this.instantiateFake();
+                fake.matchingAguments = args;
+                fake.parent = this;
+                push.call(this.fakes, fake);
+
+                fake.withArgs = function () {
+                    return original.withArgs.apply(original, arguments);
+                };
+
+                for (var i = 0; i < this.args.length; i++) {
+                    if (fake.matches(this.args[i])) {
+                        incrementCallCount.call(fake);
+                        push.call(fake.thisValues, this.thisValues[i]);
+                        push.call(fake.args, this.args[i]);
+                        push.call(fake.returnValues, this.returnValues[i]);
+                        push.call(fake.exceptions, this.exceptions[i]);
+                        push.call(fake.callIds, this.callIds[i]);
+                    }
+                }
+                createCallProperties.call(fake);
+
+                return fake;
+            },
+
+            matches: function (args, strict) {
+                var margs = this.matchingAguments;
+
+                if (margs.length <= args.length &&
+                    sinon.deepEqual(margs, args.slice(0, margs.length))) {
+                    return !strict || margs.length == args.length;
+                }
+            },
+
+            printf: function (format) {
+                var spy = this;
+                var args = slice.call(arguments, 1);
+                var formatter;
+
+                return (format || "").replace(/%(.)/g, function (match, specifyer) {
+                    formatter = spyApi.formatters[specifyer];
+
+                    if (typeof formatter == "function") {
+                        return formatter.call(null, spy, args);
+                    } else if (!isNaN(parseInt(specifyer, 10))) {
+                        return sinon.format(args[specifyer - 1]);
+                    }
+
+                    return "%" + specifyer;
+                });
+            }
+        };
+
+        function delegateToCalls(method, matchAny, actual, notCalled) {
+            spyApi[method] = function () {
+                if (!this.called) {
+                    if (notCalled) {
+                        return notCalled.apply(this, arguments);
+                    }
+                    return false;
+                }
+
+                var currentCall;
+                var matches = 0;
+
+                for (var i = 0, l = this.callCount; i < l; i += 1) {
+                    currentCall = this.getCall(i);
+
+                    if (currentCall[actual || method].apply(currentCall, arguments)) {
+                        matches += 1;
+
+                        if (matchAny) {
+                            return true;
+                        }
+                    }
+                }
+
+                return matches === this.callCount;
+            };
+        }
+
+        delegateToCalls("calledOn", true);
+        delegateToCalls("alwaysCalledOn", false, "calledOn");
+        delegateToCalls("calledWith", true);
+        delegateToCalls("calledWithMatch", true);
+        delegateToCalls("alwaysCalledWith", false, "calledWith");
+        delegateToCalls("alwaysCalledWithMatch", false, "calledWithMatch");
+        delegateToCalls("calledWithExactly", true);
+        delegateToCalls("alwaysCalledWithExactly", false, "calledWithExactly");
+        delegateToCalls("neverCalledWith", false, "notCalledWith", function () {
+            return true;
+        });
+        delegateToCalls("neverCalledWithMatch", false, "notCalledWithMatch", function () {
+            return true;
+        });
+        delegateToCalls("threw", true);
+        delegateToCalls("alwaysThrew", false, "threw");
+        delegateToCalls("returned", true);
+        delegateToCalls("alwaysReturned", false, "returned");
+        delegateToCalls("calledWithNew", true);
+        delegateToCalls("alwaysCalledWithNew", false, "calledWithNew");
+        delegateToCalls("callArg", false, "callArgWith", function () {
+            throw new Error(this.toString() + " cannot call arg since it was not yet invoked.");
+        });
+        spyApi.callArgWith = spyApi.callArg;
+        delegateToCalls("callArgOn", false, "callArgOnWith", function () {
+            throw new Error(this.toString() + " cannot call arg since it was not yet invoked.");
+        });
+        spyApi.callArgOnWith = spyApi.callArgOn;
+        delegateToCalls("yield", false, "yield", function () {
+            throw new Error(this.toString() + " cannot yield since it was not yet invoked.");
+        });
+        // "invokeCallback" is an alias for "yield" since "yield" is invalid in strict mode.
+        spyApi.invokeCallback = spyApi.yield;
+        delegateToCalls("yieldOn", false, "yieldOn", function () {
+            throw new Error(this.toString() + " cannot yield since it was not yet invoked.");
+        });
+        delegateToCalls("yieldTo", false, "yieldTo", function (property) {
+            throw new Error(this.toString() + " cannot yield to '" + property +
+                "' since it was not yet invoked.");
+        });
+        delegateToCalls("yieldToOn", false, "yieldToOn", function (property) {
+            throw new Error(this.toString() + " cannot yield to '" + property +
+                "' since it was not yet invoked.");
+        });
+
+        spyApi.formatters = {
+            c: function (spy) {
+                return sinon.timesInWords(spy.callCount);
+            },
+
+            n: function (spy) {
+                return spy.toString();
+            },
+
+            C: function (spy) {
+                var calls = [];
+
+                for (var i = 0, l = spy.callCount; i < l; ++i) {
+                    var stringifiedCall = "    " + spy.getCall(i).toString();
+                    if (/\n/.test(calls[i - 1])) {
+                        stringifiedCall = "\n" + stringifiedCall;
+                    }
+                    push.call(calls, stringifiedCall);
+                }
+
+                return calls.length > 0 ? "\n" + calls.join("\n") : "";
+            },
+
+            t: function (spy) {
+                var objects = [];
+
+                for (var i = 0, l = spy.callCount; i < l; ++i) {
+                    push.call(objects, sinon.format(spy.thisValues[i]));
+                }
+
+                return objects.join(", ");
+            },
+
+            "*": function (spy, args) {
+                var formatted = [];
+
+                for (var i = 0, l = args.length; i < l; ++i) {
+                    push.call(formatted, sinon.format(args[i]));
+                }
+
+                return formatted.join(", ");
+            }
+        };
+
+        sinon.extend(spy, spyApi);
+
+        spy.spyCall = sinon.spyCall;
+        sinon.spy = spy;
+
+        return spy;
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    function loadDependencies(require, exports, module) {
+        var sinon = require("./util/core");
+        require("./call");
+        require("./extend");
+        require("./times_in_words");
+        require("./format");
+        module.exports = makeApi(sinon);
+    }
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+    } else if (!sinon) {
+        return;
+    } else {
+        makeApi(sinon);
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend util/core.js
+ * @depend extend.js
+ */
+/**
+ * Stub behavior
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @author Tim Fischbach (mail@timfischbach.de)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon) {
+    var slice = Array.prototype.slice;
+    var join = Array.prototype.join;
+    var useLeftMostCallback = -1;
+    var useRightMostCallback = -2;
+
+    var nextTick = (function () {
+        if (typeof process === "object" && typeof process.nextTick === "function") {
+            return process.nextTick;
+        } else if (typeof setImmediate === "function") {
+            return setImmediate;
+        } else {
+            return function (callback) {
+                setTimeout(callback, 0);
+            };
+        }
+    })();
+
+    function throwsException(error, message) {
+        if (typeof error == "string") {
+            this.exception = new Error(message || "");
+            this.exception.name = error;
+        } else if (!error) {
+            this.exception = new Error("Error");
+        } else {
+            this.exception = error;
+        }
+
+        return this;
+    }
+
+    function getCallback(behavior, args) {
+        var callArgAt = behavior.callArgAt;
+
+        if (callArgAt >= 0) {
+            return args[callArgAt];
+        }
+
+        var argumentList;
+
+        if (callArgAt === useLeftMostCallback) {
+            argumentList = args;
+        }
+
+        if (callArgAt === useRightMostCallback) {
+            argumentList = slice.call(args).reverse();
+        }
+
+        var callArgProp = behavior.callArgProp;
+
+        for (var i = 0, l = argumentList.length; i < l; ++i) {
+            if (!callArgProp && typeof argumentList[i] == "function") {
+                return argumentList[i];
+            }
+
+            if (callArgProp && argumentList[i] &&
+                typeof argumentList[i][callArgProp] == "function") {
+                return argumentList[i][callArgProp];
+            }
+        }
+
+        return null;
+    }
+
+    function makeApi(sinon) {
+        function getCallbackError(behavior, func, args) {
+            if (behavior.callArgAt < 0) {
+                var msg;
+
+                if (behavior.callArgProp) {
+                    msg = sinon.functionName(behavior.stub) +
+                        " expected to yield to '" + behavior.callArgProp +
+                        "', but no object with such a property was passed.";
+                } else {
+                    msg = sinon.functionName(behavior.stub) +
+                        " expected to yield, but no callback was passed.";
+                }
+
+                if (args.length > 0) {
+                    msg += " Received [" + join.call(args, ", ") + "]";
+                }
+
+                return msg;
+            }
+
+            return "argument at index " + behavior.callArgAt + " is not a function: " + func;
+        }
+
+        function callCallback(behavior, args) {
+            if (typeof behavior.callArgAt == "number") {
+                var func = getCallback(behavior, args);
+
+                if (typeof func != "function") {
+                    throw new TypeError(getCallbackError(behavior, func, args));
+                }
+
+                if (behavior.callbackAsync) {
+                    nextTick(function () {
+                        func.apply(behavior.callbackContext, behavior.callbackArguments);
+                    });
+                } else {
+                    func.apply(behavior.callbackContext, behavior.callbackArguments);
+                }
+            }
+        }
+
+        var proto = {
+            create: function create(stub) {
+                var behavior = sinon.extend({}, sinon.behavior);
+                delete behavior.create;
+                behavior.stub = stub;
+
+                return behavior;
+            },
+
+            isPresent: function isPresent() {
+                return (typeof this.callArgAt == "number" ||
+                        this.exception ||
+                        typeof this.returnArgAt == "number" ||
+                        this.returnThis ||
+                        this.returnValueDefined);
+            },
+
+            invoke: function invoke(context, args) {
+                callCallback(this, args);
+
+                if (this.exception) {
+                    throw this.exception;
+                } else if (typeof this.returnArgAt == "number") {
+                    return args[this.returnArgAt];
+                } else if (this.returnThis) {
+                    return context;
+                }
+
+                return this.returnValue;
+            },
+
+            onCall: function onCall(index) {
+                return this.stub.onCall(index);
+            },
+
+            onFirstCall: function onFirstCall() {
+                return this.stub.onFirstCall();
+            },
+
+            onSecondCall: function onSecondCall() {
+                return this.stub.onSecondCall();
+            },
+
+            onThirdCall: function onThirdCall() {
+                return this.stub.onThirdCall();
+            },
+
+            withArgs: function withArgs(/* arguments */) {
+                throw new Error("Defining a stub by invoking \"stub.onCall(...).withArgs(...)\" is not supported. " +
+                                "Use \"stub.withArgs(...).onCall(...)\" to define sequential behavior for calls with certain arguments.");
+            },
+
+            callsArg: function callsArg(pos) {
+                if (typeof pos != "number") {
+                    throw new TypeError("argument index is not number");
+                }
+
+                this.callArgAt = pos;
+                this.callbackArguments = [];
+                this.callbackContext = undefined;
+                this.callArgProp = undefined;
+                this.callbackAsync = false;
+
+                return this;
+            },
+
+            callsArgOn: function callsArgOn(pos, context) {
+                if (typeof pos != "number") {
+                    throw new TypeError("argument index is not number");
+                }
+                if (typeof context != "object") {
+                    throw new TypeError("argument context is not an object");
+                }
+
+                this.callArgAt = pos;
+                this.callbackArguments = [];
+                this.callbackContext = context;
+                this.callArgProp = undefined;
+                this.callbackAsync = false;
+
+                return this;
+            },
+
+            callsArgWith: function callsArgWith(pos) {
+                if (typeof pos != "number") {
+                    throw new TypeError("argument index is not number");
+                }
+
+                this.callArgAt = pos;
+                this.callbackArguments = slice.call(arguments, 1);
+                this.callbackContext = undefined;
+                this.callArgProp = undefined;
+                this.callbackAsync = false;
+
+                return this;
+            },
+
+            callsArgOnWith: function callsArgWith(pos, context) {
+                if (typeof pos != "number") {
+                    throw new TypeError("argument index is not number");
+                }
+                if (typeof context != "object") {
+                    throw new TypeError("argument context is not an object");
+                }
+
+                this.callArgAt = pos;
+                this.callbackArguments = slice.call(arguments, 2);
+                this.callbackContext = context;
+                this.callArgProp = undefined;
+                this.callbackAsync = false;
+
+                return this;
+            },
+
+            yields: function () {
+                this.callArgAt = useLeftMostCallback;
+                this.callbackArguments = slice.call(arguments, 0);
+                this.callbackContext = undefined;
+                this.callArgProp = undefined;
+                this.callbackAsync = false;
+
+                return this;
+            },
+
+            yieldsRight: function () {
+                this.callArgAt = useRightMostCallback;
+                this.callbackArguments = slice.call(arguments, 0);
+                this.callbackContext = undefined;
+                this.callArgProp = undefined;
+                this.callbackAsync = false;
+
+                return this;
+            },
+
+            yieldsOn: function (context) {
+                if (typeof context != "object") {
+                    throw new TypeError("argument context is not an object");
+                }
+
+                this.callArgAt = useLeftMostCallback;
+                this.callbackArguments = slice.call(arguments, 1);
+                this.callbackContext = context;
+                this.callArgProp = undefined;
+                this.callbackAsync = false;
+
+                return this;
+            },
+
+            yieldsTo: function (prop) {
+                this.callArgAt = useLeftMostCallback;
+                this.callbackArguments = slice.call(arguments, 1);
+                this.callbackContext = undefined;
+                this.callArgProp = prop;
+                this.callbackAsync = false;
+
+                return this;
+            },
+
+            yieldsToOn: function (prop, context) {
+                if (typeof context != "object") {
+                    throw new TypeError("argument context is not an object");
+                }
+
+                this.callArgAt = useLeftMostCallback;
+                this.callbackArguments = slice.call(arguments, 2);
+                this.callbackContext = context;
+                this.callArgProp = prop;
+                this.callbackAsync = false;
+
+                return this;
+            },
+
+            throws: throwsException,
+            throwsException: throwsException,
+
+            returns: function returns(value) {
+                this.returnValue = value;
+                this.returnValueDefined = true;
+
+                return this;
+            },
+
+            returnsArg: function returnsArg(pos) {
+                if (typeof pos != "number") {
+                    throw new TypeError("argument index is not number");
+                }
+
+                this.returnArgAt = pos;
+
+                return this;
+            },
+
+            returnsThis: function returnsThis() {
+                this.returnThis = true;
+
+                return this;
+            }
+        };
+
+        // create asynchronous versions of callsArg* and yields* methods
+        for (var method in proto) {
+            // need to avoid creating anotherasync versions of the newly added async methods
+            if (proto.hasOwnProperty(method) &&
+                method.match(/^(callsArg|yields)/) &&
+                !method.match(/Async/)) {
+                proto[method + "Async"] = (function (syncFnName) {
+                    return function () {
+                        var result = this[syncFnName].apply(this, arguments);
+                        this.callbackAsync = true;
+                        return result;
+                    };
+                })(method);
+            }
+        }
+
+        sinon.behavior = proto;
+        return proto;
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    function loadDependencies(require, exports, module) {
+        var sinon = require("./util/core");
+        require("./extend");
+        module.exports = makeApi(sinon);
+    }
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+    } else if (!sinon) {
+        return;
+    } else {
+        makeApi(sinon);
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend util/core.js
+ * @depend extend.js
+ * @depend spy.js
+ * @depend behavior.js
+ */
+/**
+ * Stub functions
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon) {
+    function makeApi(sinon) {
+        function stub(object, property, func) {
+            if (!!func && typeof func != "function" && typeof func != "object") {
+                throw new TypeError("Custom stub should be a function or a property descriptor");
+            }
+
+            var wrapper;
+
+            if (func) {
+                if (typeof func == "function") {
+                    wrapper = sinon.spy && sinon.spy.create ? sinon.spy.create(func) : func;
+                } else {
+                    wrapper = func;
+                    if (sinon.spy && sinon.spy.create) {
+                        var types = sinon.objectKeys(wrapper);
+                        for (var i = 0; i < types.length; i++) {
+                            wrapper[types[i]] = sinon.spy.create(wrapper[types[i]]);
+                        }
+                    }
+                }
+            } else {
+                var stubLength = 0;
+                if (typeof object == "object" && typeof object[property] == "function") {
+                    stubLength = object[property].length;
+                }
+                wrapper = stub.create(stubLength);
+            }
+
+            if (!object && typeof property === "undefined") {
+                return sinon.stub.create();
+            }
+
+            if (typeof property === "undefined" && typeof object == "object") {
+                for (var prop in object) {
+                    if (typeof sinon.getPropertyDescriptor(object, prop).value === "function") {
+                        stub(object, prop);
+                    }
+                }
+
+                return object;
+            }
+
+            return sinon.wrapMethod(object, property, wrapper);
+        }
+
+        function getDefaultBehavior(stub) {
+            return stub.defaultBehavior || getParentBehaviour(stub) || sinon.behavior.create(stub);
+        }
+
+        function getParentBehaviour(stub) {
+            return (stub.parent && getCurrentBehavior(stub.parent));
+        }
+
+        function getCurrentBehavior(stub) {
+            var behavior = stub.behaviors[stub.callCount - 1];
+            return behavior && behavior.isPresent() ? behavior : getDefaultBehavior(stub);
+        }
+
+        var uuid = 0;
+
+        var proto = {
+            create: function create(stubLength) {
+                var functionStub = function () {
+                    return getCurrentBehavior(functionStub).invoke(this, arguments);
+                };
+
+                functionStub.id = "stub#" + uuid++;
+                var orig = functionStub;
+                functionStub = sinon.spy.create(functionStub, stubLength);
+                functionStub.func = orig;
+
+                sinon.extend(functionStub, stub);
+                functionStub.instantiateFake = sinon.stub.create;
+                functionStub.displayName = "stub";
+                functionStub.toString = sinon.functionToString;
+
+                functionStub.defaultBehavior = null;
+                functionStub.behaviors = [];
+
+                return functionStub;
+            },
+
+            resetBehavior: function () {
+                var i;
+
+                this.defaultBehavior = null;
+                this.behaviors = [];
+
+                delete this.returnValue;
+                delete this.returnArgAt;
+                this.returnThis = false;
+
+                if (this.fakes) {
+                    for (i = 0; i < this.fakes.length; i++) {
+                        this.fakes[i].resetBehavior();
+                    }
+                }
+            },
+
+            onCall: function onCall(index) {
+                if (!this.behaviors[index]) {
+                    this.behaviors[index] = sinon.behavior.create(this);
+                }
+
+                return this.behaviors[index];
+            },
+
+            onFirstCall: function onFirstCall() {
+                return this.onCall(0);
+            },
+
+            onSecondCall: function onSecondCall() {
+                return this.onCall(1);
+            },
+
+            onThirdCall: function onThirdCall() {
+                return this.onCall(2);
+            }
+        };
+
+        for (var method in sinon.behavior) {
+            if (sinon.behavior.hasOwnProperty(method) &&
+                !proto.hasOwnProperty(method) &&
+                method != "create" &&
+                method != "withArgs" &&
+                method != "invoke") {
+                proto[method] = (function (behaviorMethod) {
+                    return function () {
+                        this.defaultBehavior = this.defaultBehavior || sinon.behavior.create(this);
+                        this.defaultBehavior[behaviorMethod].apply(this.defaultBehavior, arguments);
+                        return this;
+                    };
+                }(method));
+            }
+        }
+
+        sinon.extend(stub, proto);
+        sinon.stub = stub;
+
+        return stub;
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    function loadDependencies(require, exports, module) {
+        var sinon = require("./util/core");
+        require("./behavior");
+        require("./spy");
+        require("./extend");
+        module.exports = makeApi(sinon);
+    }
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+    } else if (!sinon) {
+        return;
+    } else {
+        makeApi(sinon);
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend times_in_words.js
+ * @depend util/core.js
+ * @depend call.js
+ * @depend extend.js
+ * @depend match.js
+ * @depend spy.js
+ * @depend stub.js
+ * @depend format.js
+ */
+/**
+ * Mock functions.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon) {
+    function makeApi(sinon) {
+        var push = [].push;
+        var match = sinon.match;
+
+        function mock(object) {
+            if (typeof console !== undefined && console.warn) {
+                console.warn("mock will be removed from Sinon.JS v2.0");
+            }
+
+            if (!object) {
+                return sinon.expectation.create("Anonymous mock");
+            }
+
+            return mock.create(object);
+        }
+
+        function each(collection, callback) {
+            if (!collection) {
+                return;
+            }
+
+            for (var i = 0, l = collection.length; i < l; i += 1) {
+                callback(collection[i]);
+            }
+        }
+
+        sinon.extend(mock, {
+            create: function create(object) {
+                if (!object) {
+                    throw new TypeError("object is null");
+                }
+
+                var mockObject = sinon.extend({}, mock);
+                mockObject.object = object;
+                delete mockObject.create;
+
+                return mockObject;
+            },
+
+            expects: function expects(method) {
+                if (!method) {
+                    throw new TypeError("method is falsy");
+                }
+
+                if (!this.expectations) {
+                    this.expectations = {};
+                    this.proxies = [];
+                }
+
+                if (!this.expectations[method]) {
+                    this.expectations[method] = [];
+                    var mockObject = this;
+
+                    sinon.wrapMethod(this.object, method, function () {
+                        return mockObject.invokeMethod(method, this, arguments);
+                    });
+
+                    push.call(this.proxies, method);
+                }
+
+                var expectation = sinon.expectation.create(method);
+                push.call(this.expectations[method], expectation);
+
+                return expectation;
+            },
+
+            restore: function restore() {
+                var object = this.object;
+
+                each(this.proxies, function (proxy) {
+                    if (typeof object[proxy].restore == "function") {
+                        object[proxy].restore();
+                    }
+                });
+            },
+
+            verify: function verify() {
+                var expectations = this.expectations || {};
+                var messages = [], met = [];
+
+                each(this.proxies, function (proxy) {
+                    each(expectations[proxy], function (expectation) {
+                        if (!expectation.met()) {
+                            push.call(messages, expectation.toString());
+                        } else {
+                            push.call(met, expectation.toString());
+                        }
+                    });
+                });
+
+                this.restore();
+
+                if (messages.length > 0) {
+                    sinon.expectation.fail(messages.concat(met).join("\n"));
+                } else if (met.length > 0) {
+                    sinon.expectation.pass(messages.concat(met).join("\n"));
+                }
+
+                return true;
+            },
+
+            invokeMethod: function invokeMethod(method, thisValue, args) {
+                var expectations = this.expectations && this.expectations[method];
+                var length = expectations && expectations.length || 0, i;
+
+                for (i = 0; i < length; i += 1) {
+                    if (!expectations[i].met() &&
+                        expectations[i].allowsCall(thisValue, args)) {
+                        return expectations[i].apply(thisValue, args);
+                    }
+                }
+
+                var messages = [], available, exhausted = 0;
+
+                for (i = 0; i < length; i += 1) {
+                    if (expectations[i].allowsCall(thisValue, args)) {
+                        available = available || expectations[i];
+                    } else {
+                        exhausted += 1;
+                    }
+                    push.call(messages, "    " + expectations[i].toString());
+                }
+
+                if (exhausted === 0) {
+                    return available.apply(thisValue, args);
+                }
+
+                messages.unshift("Unexpected call: " + sinon.spyCall.toString.call({
+                    proxy: method,
+                    args: args
+                }));
+
+                sinon.expectation.fail(messages.join("\n"));
+            }
+        });
+
+        var times = sinon.timesInWords;
+        var slice = Array.prototype.slice;
+
+        function callCountInWords(callCount) {
+            if (callCount == 0) {
+                return "never called";
+            } else {
+                return "called " + times(callCount);
+            }
+        }
+
+        function expectedCallCountInWords(expectation) {
+            var min = expectation.minCalls;
+            var max = expectation.maxCalls;
+
+            if (typeof min == "number" && typeof max == "number") {
+                var str = times(min);
+
+                if (min != max) {
+                    str = "at least " + str + " and at most " + times(max);
+                }
+
+                return str;
+            }
+
+            if (typeof min == "number") {
+                return "at least " + times(min);
+            }
+
+            return "at most " + times(max);
+        }
+
+        function receivedMinCalls(expectation) {
+            var hasMinLimit = typeof expectation.minCalls == "number";
+            return !hasMinLimit || expectation.callCount >= expectation.minCalls;
+        }
+
+        function receivedMaxCalls(expectation) {
+            if (typeof expectation.maxCalls != "number") {
+                return false;
+            }
+
+            return expectation.callCount == expectation.maxCalls;
+        }
+
+        function verifyMatcher(possibleMatcher, arg) {
+            if (match && match.isMatcher(possibleMatcher)) {
+                return possibleMatcher.test(arg);
+            } else {
+                return true;
+            }
+        }
+
+        sinon.expectation = {
+            minCalls: 1,
+            maxCalls: 1,
+
+            create: function create(methodName) {
+                var expectation = sinon.extend(sinon.stub.create(), sinon.expectation);
+                delete expectation.create;
+                expectation.method = methodName;
+
+                return expectation;
+            },
+
+            invoke: function invoke(func, thisValue, args) {
+                this.verifyCallAllowed(thisValue, args);
+
+                return sinon.spy.invoke.apply(this, arguments);
+            },
+
+            atLeast: function atLeast(num) {
+                if (typeof num != "number") {
+                    throw new TypeError("'" + num + "' is not number");
+                }
+
+                if (!this.limitsSet) {
+                    this.maxCalls = null;
+                    this.limitsSet = true;
+                }
+
+                this.minCalls = num;
+
+                return this;
+            },
+
+            atMost: function atMost(num) {
+                if (typeof num != "number") {
+                    throw new TypeError("'" + num + "' is not number");
+                }
+
+                if (!this.limitsSet) {
+                    this.minCalls = null;
+                    this.limitsSet = true;
+                }
+
+                this.maxCalls = num;
+
+                return this;
+            },
+
+            never: function never() {
+                return this.exactly(0);
+            },
+
+            once: function once() {
+                return this.exactly(1);
+            },
+
+            twice: function twice() {
+                return this.exactly(2);
+            },
+
+            thrice: function thrice() {
+                return this.exactly(3);
+            },
+
+            exactly: function exactly(num) {
+                if (typeof num != "number") {
+                    throw new TypeError("'" + num + "' is not a number");
+                }
+
+                this.atLeast(num);
+                return this.atMost(num);
+            },
+
+            met: function met() {
+                return !this.failed && receivedMinCalls(this);
+            },
+
+            verifyCallAllowed: function verifyCallAllowed(thisValue, args) {
+                if (receivedMaxCalls(this)) {
+                    this.failed = true;
+                    sinon.expectation.fail(this.method + " already called " + times(this.maxCalls));
+                }
+
+                if ("expectedThis" in this && this.expectedThis !== thisValue) {
+                    sinon.expectation.fail(this.method + " called with " + thisValue + " as thisValue, expected " +
+                        this.expectedThis);
+                }
+
+                if (!("expectedArguments" in this)) {
+                    return;
+                }
+
+                if (!args) {
+                    sinon.expectation.fail(this.method + " received no arguments, expected " +
+                        sinon.format(this.expectedArguments));
+                }
+
+                if (args.length < this.expectedArguments.length) {
+                    sinon.expectation.fail(this.method + " received too few arguments (" + sinon.format(args) +
+                        "), expected " + sinon.format(this.expectedArguments));
+                }
+
+                if (this.expectsExactArgCount &&
+                    args.length != this.expectedArguments.length) {
+                    sinon.expectation.fail(this.method + " received too many arguments (" + sinon.format(args) +
+                        "), expected " + sinon.format(this.expectedArguments));
+                }
+
+                for (var i = 0, l = this.expectedArguments.length; i < l; i += 1) {
+
+                    if (!verifyMatcher(this.expectedArguments[i], args[i])) {
+                        sinon.expectation.fail(this.method + " received wrong arguments " + sinon.format(args) +
+                            ", didn't match " + this.expectedArguments.toString());
+                    }
+
+                    if (!sinon.deepEqual(this.expectedArguments[i], args[i])) {
+                        sinon.expectation.fail(this.method + " received wrong arguments " + sinon.format(args) +
+                            ", expected " + sinon.format(this.expectedArguments));
+                    }
+                }
+            },
+
+            allowsCall: function allowsCall(thisValue, args) {
+                if (this.met() && receivedMaxCalls(this)) {
+                    return false;
+                }
+
+                if ("expectedThis" in this && this.expectedThis !== thisValue) {
+                    return false;
+                }
+
+                if (!("expectedArguments" in this)) {
+                    return true;
+                }
+
+                args = args || [];
+
+                if (args.length < this.expectedArguments.length) {
+                    return false;
+                }
+
+                if (this.expectsExactArgCount &&
+                    args.length != this.expectedArguments.length) {
+                    return false;
+                }
+
+                for (var i = 0, l = this.expectedArguments.length; i < l; i += 1) {
+                    if (!verifyMatcher(this.expectedArguments[i], args[i])) {
+                        return false;
+                    }
+
+                    if (!sinon.deepEqual(this.expectedArguments[i], args[i])) {
+                        return false;
+                    }
+                }
+
+                return true;
+            },
+
+            withArgs: function withArgs() {
+                this.expectedArguments = slice.call(arguments);
+                return this;
+            },
+
+            withExactArgs: function withExactArgs() {
+                this.withArgs.apply(this, arguments);
+                this.expectsExactArgCount = true;
+                return this;
+            },
+
+            on: function on(thisValue) {
+                this.expectedThis = thisValue;
+                return this;
+            },
+
+            toString: function () {
+                var args = (this.expectedArguments || []).slice();
+
+                if (!this.expectsExactArgCount) {
+                    push.call(args, "[...]");
+                }
+
+                var callStr = sinon.spyCall.toString.call({
+                    proxy: this.method || "anonymous mock expectation",
+                    args: args
+                });
+
+                var message = callStr.replace(", [...", "[, ...") + " " +
+                    expectedCallCountInWords(this);
+
+                if (this.met()) {
+                    return "Expectation met: " + message;
+                }
+
+                return "Expected " + message + " (" +
+                    callCountInWords(this.callCount) + ")";
+            },
+
+            verify: function verify() {
+                if (!this.met()) {
+                    sinon.expectation.fail(this.toString());
+                } else {
+                    sinon.expectation.pass(this.toString());
+                }
+
+                return true;
+            },
+
+            pass: function pass(message) {
+                sinon.assert.pass(message);
+            },
+
+            fail: function fail(message) {
+                var exception = new Error(message);
+                exception.name = "ExpectationError";
+
+                throw exception;
+            }
+        };
+
+        sinon.mock = mock;
+        return mock;
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    function loadDependencies(require, exports, module) {
+        var sinon = require("./util/core");
+        require("./times_in_words");
+        require("./call");
+        require("./extend");
+        require("./match");
+        require("./spy");
+        require("./stub");
+        require("./format");
+
+        module.exports = makeApi(sinon);
+    }
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+    } else if (!sinon) {
+        return;
+    } else {
+        makeApi(sinon);
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend util/core.js
+ * @depend spy.js
+ * @depend stub.js
+ * @depend mock.js
+ */
+/**
+ * Collections of stubs, spies and mocks.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon) {
+    var push = [].push;
+    var hasOwnProperty = Object.prototype.hasOwnProperty;
+
+    function getFakes(fakeCollection) {
+        if (!fakeCollection.fakes) {
+            fakeCollection.fakes = [];
+        }
+
+        return fakeCollection.fakes;
+    }
+
+    function each(fakeCollection, method) {
+        var fakes = getFakes(fakeCollection);
+
+        for (var i = 0, l = fakes.length; i < l; i += 1) {
+            if (typeof fakes[i][method] == "function") {
+                fakes[i][method]();
+            }
+        }
+    }
+
+    function compact(fakeCollection) {
+        var fakes = getFakes(fakeCollection);
+        var i = 0;
+        while (i < fakes.length) {
+            fakes.splice(i, 1);
+        }
+    }
+
+    function makeApi(sinon) {
+        var collection = {
+            verify: function resolve() {
+                each(this, "verify");
+            },
+
+            restore: function restore() {
+                each(this, "restore");
+                compact(this);
+            },
+
+            reset: function restore() {
+                each(this, "reset");
+            },
+
+            verifyAndRestore: function verifyAndRestore() {
+                var exception;
+
+                try {
+                    this.verify();
+                } catch (e) {
+                    exception = e;
+                }
+
+                this.restore();
+
+                if (exception) {
+                    throw exception;
+                }
+            },
+
+            add: function add(fake) {
+                push.call(getFakes(this), fake);
+                return fake;
+            },
+
+            spy: function spy() {
+                return this.add(sinon.spy.apply(sinon, arguments));
+            },
+
+            stub: function stub(object, property, value) {
+                if (property) {
+                    var original = object[property];
+
+                    if (typeof original != "function") {
+                        if (!hasOwnProperty.call(object, property)) {
+                            throw new TypeError("Cannot stub non-existent own property " + property);
+                        }
+
+                        object[property] = value;
+
+                        return this.add({
+                            restore: function () {
+                                object[property] = original;
+                            }
+                        });
+                    }
+                }
+                if (!property && !!object && typeof object == "object") {
+                    var stubbedObj = sinon.stub.apply(sinon, arguments);
+
+                    for (var prop in stubbedObj) {
+                        if (typeof stubbedObj[prop] === "function") {
+                            this.add(stubbedObj[prop]);
+                        }
+                    }
+
+                    return stubbedObj;
+                }
+
+                return this.add(sinon.stub.apply(sinon, arguments));
+            },
+
+            mock: function mock() {
+                return this.add(sinon.mock.apply(sinon, arguments));
+            },
+
+            inject: function inject(obj) {
+                var col = this;
+
+                obj.spy = function () {
+                    return col.spy.apply(col, arguments);
+                };
+
+                obj.stub = function () {
+                    return col.stub.apply(col, arguments);
+                };
+
+                obj.mock = function () {
+                    return col.mock.apply(col, arguments);
+                };
+
+                return obj;
+            }
+        };
+
+        sinon.collection = collection;
+        return collection;
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    function loadDependencies(require, exports, module) {
+        var sinon = require("./util/core");
+        require("./mock");
+        require("./spy");
+        require("./stub");
+        module.exports = makeApi(sinon);
+    }
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+    } else if (!sinon) {
+        return;
+    } else {
+        makeApi(sinon);
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/*global lolex */
+
+/**
+ * Fake timer API
+ * setTimeout
+ * setInterval
+ * clearTimeout
+ * clearInterval
+ * tick
+ * reset
+ * Date
+ *
+ * Inspired by jsUnitMockTimeOut from JsUnit
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+if (typeof sinon == "undefined") {
+    var sinon = {};
+}
+
+(function (global) {
+    function makeApi(sinon, lol) {
+        var llx = typeof lolex !== "undefined" ? lolex : lol;
+
+        sinon.useFakeTimers = function () {
+            var now, methods = Array.prototype.slice.call(arguments);
+
+            if (typeof methods[0] === "string") {
+                now = 0;
+            } else {
+                now = methods.shift();
+            }
+
+            var clock = llx.install(now || 0, methods);
+            clock.restore = clock.uninstall;
+            return clock;
+        };
+
+        sinon.clock = {
+            create: function (now) {
+                return llx.createClock(now);
+            }
+        };
+
+        sinon.timers = {
+            setTimeout: setTimeout,
+            clearTimeout: clearTimeout,
+            setImmediate: (typeof setImmediate !== "undefined" ? setImmediate : undefined),
+            clearImmediate: (typeof clearImmediate !== "undefined" ? clearImmediate : undefined),
+            setInterval: setInterval,
+            clearInterval: clearInterval,
+            Date: Date
+        };
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    function loadDependencies(require, epxorts, module, lolex) {
+        var sinon = require("./core");
+        makeApi(sinon, lolex);
+        module.exports = sinon;
+    }
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module, require("lolex"));
+    } else {
+        makeApi(sinon);
+    }
+}(typeof global != "undefined" && typeof global !== "function" ? global : this));
+
+/**
+ * Minimal Event interface implementation
+ *
+ * Original implementation by Sven Fuchs: https://gist.github.com/995028
+ * Modifications and tests by Christian Johansen.
+ *
+ * @author Sven Fuchs (svenfuchs@artweb-design.de)
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2011 Sven Fuchs, Christian Johansen
+ */
+
+if (typeof sinon == "undefined") {
+    this.sinon = {};
+}
+
+(function () {
+    var push = [].push;
+
+    function makeApi(sinon) {
+        sinon.Event = function Event(type, bubbles, cancelable, target) {
+            this.initEvent(type, bubbles, cancelable, target);
+        };
+
+        sinon.Event.prototype = {
+            initEvent: function (type, bubbles, cancelable, target) {
+                this.type = type;
+                this.bubbles = bubbles;
+                this.cancelable = cancelable;
+                this.target = target;
+            },
+
+            stopPropagation: function () {},
+
+            preventDefault: function () {
+                this.defaultPrevented = true;
+            }
+        };
+
+        sinon.ProgressEvent = function ProgressEvent(type, progressEventRaw, target) {
+            this.initEvent(type, false, false, target);
+            this.loaded = progressEventRaw.loaded || null;
+            this.total = progressEventRaw.total || null;
+            this.lengthComputable = !!progressEventRaw.total;
+        };
+
+        sinon.ProgressEvent.prototype = new sinon.Event();
+
+        sinon.ProgressEvent.prototype.constructor =  sinon.ProgressEvent;
+
+        sinon.CustomEvent = function CustomEvent(type, customData, target) {
+            this.initEvent(type, false, false, target);
+            this.detail = customData.detail || null;
+        };
+
+        sinon.CustomEvent.prototype = new sinon.Event();
+
+        sinon.CustomEvent.prototype.constructor =  sinon.CustomEvent;
+
+        sinon.EventTarget = {
+            addEventListener: function addEventListener(event, listener) {
+                this.eventListeners = this.eventListeners || {};
+                this.eventListeners[event] = this.eventListeners[event] || [];
+                push.call(this.eventListeners[event], listener);
+            },
+
+            removeEventListener: function removeEventListener(event, listener) {
+                var listeners = this.eventListeners && this.eventListeners[event] || [];
+
+                for (var i = 0, l = listeners.length; i < l; ++i) {
+                    if (listeners[i] == listener) {
+                        return listeners.splice(i, 1);
+                    }
+                }
+            },
+
+            dispatchEvent: function dispatchEvent(event) {
+                var type = event.type;
+                var listeners = this.eventListeners && this.eventListeners[type] || [];
+
+                for (var i = 0; i < listeners.length; i++) {
+                    if (typeof listeners[i] == "function") {
+                        listeners[i].call(this, event);
+                    } else {
+                        listeners[i].handleEvent(event);
+                    }
+                }
+
+                return !!event.defaultPrevented;
+            }
+        };
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    function loadDependencies(require) {
+        var sinon = require("./core");
+        makeApi(sinon);
+    }
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require);
+    } else {
+        makeApi(sinon);
+    }
+}());
+
+/**
+ * @depend util/core.js
+ */
+/**
+ * Logs errors
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2014 Christian Johansen
+ */
+
+(function (sinon) {
+    // cache a reference to setTimeout, so that our reference won't be stubbed out
+    // when using fake timers and errors will still get logged
+    // https://github.com/cjohansen/Sinon.JS/issues/381
+    var realSetTimeout = setTimeout;
+
+    function makeApi(sinon) {
+
+        function log() {}
+
+        function logError(label, err) {
+            var msg = label + " threw exception: ";
+
+            sinon.log(msg + "[" + err.name + "] " + err.message);
+
+            if (err.stack) {
+                sinon.log(err.stack);
+            }
+
+            logError.setTimeout(function () {
+                err.message = msg + err.message;
+                throw err;
+            }, 0);
+        };
+
+        // wrap realSetTimeout with something we can stub in tests
+        logError.setTimeout = function (func, timeout) {
+            realSetTimeout(func, timeout);
+        }
+
+        var exports = {};
+        exports.log = sinon.log = log;
+        exports.logError = sinon.logError = logError;
+
+        return exports;
+    }
+
+    function loadDependencies(require, exports, module) {
+        var sinon = require("./util/core");
+        module.exports = makeApi(sinon);
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+    } else if (!sinon) {
+        return;
+    } else {
+        makeApi(sinon);
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend core.js
+ * @depend ../extend.js
+ * @depend event.js
+ * @depend ../log_error.js
+ */
+/**
+ * Fake XDomainRequest object
+ */
+
+if (typeof sinon == "undefined") {
+    this.sinon = {};
+}
+
+// wrapper for global
+(function (global) {
+    var xdr = { XDomainRequest: global.XDomainRequest };
+    xdr.GlobalXDomainRequest = global.XDomainRequest;
+    xdr.supportsXDR = typeof xdr.GlobalXDomainRequest != "undefined";
+    xdr.workingXDR = xdr.supportsXDR ? xdr.GlobalXDomainRequest :  false;
+
+    function makeApi(sinon) {
+        sinon.xdr = xdr;
+
+        function FakeXDomainRequest() {
+            this.readyState = FakeXDomainRequest.UNSENT;
+            this.requestBody = null;
+            this.requestHeaders = {};
+            this.status = 0;
+            this.timeout = null;
+
+            if (typeof FakeXDomainRequest.onCreate == "function") {
+                FakeXDomainRequest.onCreate(this);
+            }
+        }
+
+        function verifyState(xdr) {
+            if (xdr.readyState !== FakeXDomainRequest.OPENED) {
+                throw new Error("INVALID_STATE_ERR");
+            }
+
+            if (xdr.sendFlag) {
+                throw new Error("INVALID_STATE_ERR");
+            }
+        }
+
+        function verifyRequestSent(xdr) {
+            if (xdr.readyState == FakeXDomainRequest.UNSENT) {
+                throw new Error("Request not sent");
+            }
+            if (xdr.readyState == FakeXDomainRequest.DONE) {
+                throw new Error("Request done");
+            }
+        }
+
+        function verifyResponseBodyType(body) {
+            if (typeof body != "string") {
+                var error = new Error("Attempted to respond to fake XDomainRequest with " +
+                                    body + ", which is not a string.");
+                error.name = "InvalidBodyException";
+                throw error;
+            }
+        }
+
+        sinon.extend(FakeXDomainRequest.prototype, sinon.EventTarget, {
+            open: function open(method, url) {
+                this.method = method;
+                this.url = url;
+
+                this.responseText = null;
+                this.sendFlag = false;
+
+                this.readyStateChange(FakeXDomainRequest.OPENED);
+            },
+
+            readyStateChange: function readyStateChange(state) {
+                this.readyState = state;
+                var eventName = "";
+                switch (this.readyState) {
+                case FakeXDomainRequest.UNSENT:
+                    break;
+                case FakeXDomainRequest.OPENED:
+                    break;
+                case FakeXDomainRequest.LOADING:
+                    if (this.sendFlag) {
+                        //raise the progress event
+                        eventName = "onprogress";
+                    }
+                    break;
+                case FakeXDomainRequest.DONE:
+                    if (this.isTimeout) {
+                        eventName = "ontimeout"
+                    } else if (this.errorFlag || (this.status < 200 || this.status > 299)) {
+                        eventName = "onerror";
+                    } else {
+                        eventName = "onload"
+                    }
+                    break;
+                }
+
+                // raising event (if defined)
+                if (eventName) {
+                    if (typeof this[eventName] == "function") {
+                        try {
+                            this[eventName]();
+                        } catch (e) {
+                            sinon.logError("Fake XHR " + eventName + " handler", e);
+                        }
+                    }
+                }
+            },
+
+            send: function send(data) {
+                verifyState(this);
+
+                if (!/^(get|head)$/i.test(this.method)) {
+                    this.requestBody = data;
+                }
+                this.requestHeaders["Content-Type"] = "text/plain;charset=utf-8";
+
+                this.errorFlag = false;
+                this.sendFlag = true;
+                this.readyStateChange(FakeXDomainRequest.OPENED);
+
+                if (typeof this.onSend == "function") {
+                    this.onSend(this);
+                }
+            },
+
+            abort: function abort() {
+                this.aborted = true;
+                this.responseText = null;
+                this.errorFlag = true;
+
+                if (this.readyState > sinon.FakeXDomainRequest.UNSENT && this.sendFlag) {
+                    this.readyStateChange(sinon.FakeXDomainRequest.DONE);
+                    this.sendFlag = false;
+                }
+            },
+
+            setResponseBody: function setResponseBody(body) {
+                verifyRequestSent(this);
+                verifyResponseBodyType(body);
+
+                var chunkSize = this.chunkSize || 10;
+                var index = 0;
+                this.responseText = "";
+
+                do {
+                    this.readyStateChange(FakeXDomainRequest.LOADING);
+                    this.responseText += body.substring(index, index + chunkSize);
+                    index += chunkSize;
+                } while (index < body.length);
+
+                this.readyStateChange(FakeXDomainRequest.DONE);
+            },
+
+            respond: function respond(status, contentType, body) {
+                // content-type ignored, since XDomainRequest does not carry this
+                // we keep the same syntax for respond(...) as for FakeXMLHttpRequest to ease
+                // test integration across browsers
+                this.status = typeof status == "number" ? status : 200;
+                this.setResponseBody(body || "");
+            },
+
+            simulatetimeout: function simulatetimeout() {
+                this.status = 0;
+                this.isTimeout = true;
+                // Access to this should actually throw an error
+                this.responseText = undefined;
+                this.readyStateChange(FakeXDomainRequest.DONE);
+            }
+        });
+
+        sinon.extend(FakeXDomainRequest, {
+            UNSENT: 0,
+            OPENED: 1,
+            LOADING: 3,
+            DONE: 4
+        });
+
+        sinon.useFakeXDomainRequest = function useFakeXDomainRequest() {
+            sinon.FakeXDomainRequest.restore = function restore(keepOnCreate) {
+                if (xdr.supportsXDR) {
+                    global.XDomainRequest = xdr.GlobalXDomainRequest;
+                }
+
+                delete sinon.FakeXDomainRequest.restore;
+
+                if (keepOnCreate !== true) {
+                    delete sinon.FakeXDomainRequest.onCreate;
+                }
+            };
+            if (xdr.supportsXDR) {
+                global.XDomainRequest = sinon.FakeXDomainRequest;
+            }
+            return sinon.FakeXDomainRequest;
+        };
+
+        sinon.FakeXDomainRequest = FakeXDomainRequest;
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    function loadDependencies(require, exports, module) {
+        var sinon = require("./core");
+        require("../extend");
+        require("./event");
+        require("../log_error");
+        makeApi(sinon);
+        module.exports = sinon;
+    }
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+    } else {
+        makeApi(sinon);
+    }
+})(typeof global !== "undefined" ? global : self);
+
+/**
+ * @depend core.js
+ * @depend ../extend.js
+ * @depend event.js
+ * @depend ../log_error.js
+ */
+/**
+ * Fake XMLHttpRequest object
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (global) {
+
+    var supportsProgress = typeof ProgressEvent !== "undefined";
+    var supportsCustomEvent = typeof CustomEvent !== "undefined";
+    var supportsFormData = typeof FormData !== "undefined";
+    var sinonXhr = { XMLHttpRequest: global.XMLHttpRequest };
+    sinonXhr.GlobalXMLHttpRequest = global.XMLHttpRequest;
+    sinonXhr.GlobalActiveXObject = global.ActiveXObject;
+    sinonXhr.supportsActiveX = typeof sinonXhr.GlobalActiveXObject != "undefined";
+    sinonXhr.supportsXHR = typeof sinonXhr.GlobalXMLHttpRequest != "undefined";
+    sinonXhr.workingXHR = sinonXhr.supportsXHR ? sinonXhr.GlobalXMLHttpRequest : sinonXhr.supportsActiveX
+                                     ? function () {
+                                        return new sinonXhr.GlobalActiveXObject("MSXML2.XMLHTTP.3.0")
+                                    } : false;
+    sinonXhr.supportsCORS = sinonXhr.supportsXHR && "withCredentials" in (new sinonXhr.GlobalXMLHttpRequest());
+
+    /*jsl:ignore*/
+    var unsafeHeaders = {
+        "Accept-Charset": true,
+        "Accept-Encoding": true,
+        Connection: true,
+        "Content-Length": true,
+        Cookie: true,
+        Cookie2: true,
+        "Content-Transfer-Encoding": true,
+        Date: true,
+        Expect: true,
+        Host: true,
+        "Keep-Alive": true,
+        Referer: true,
+        TE: true,
+        Trailer: true,
+        "Transfer-Encoding": true,
+        Upgrade: true,
+        "User-Agent": true,
+        Via: true
+    };
+    /*jsl:end*/
+
+    function FakeXMLHttpRequest() {
+        this.readyState = FakeXMLHttpRequest.UNSENT;
+        this.requestHeaders = {};
+        this.requestBody = null;
+        this.status = 0;
+        this.statusText = "";
+        this.upload = new UploadProgress();
+        if (sinonXhr.supportsCORS) {
+            this.withCredentials = false;
+        }
+
+        var xhr = this;
+        var events = ["loadstart", "load", "abort", "loadend"];
+
+        function addEventListener(eventName) {
+            xhr.addEventListener(eventName, function (event) {
+                var listener = xhr["on" + eventName];
+
+                if (listener && typeof listener == "function") {
+                    listener.call(this, event);
+                }
+            });
+        }
+
+        for (var i = events.length - 1; i >= 0; i--) {
+            addEventListener(events[i]);
+        }
+
+        if (typeof FakeXMLHttpRequest.onCreate == "function") {
+            FakeXMLHttpRequest.onCreate(this);
+        }
+    }
+
+    // An upload object is created for each
+    // FakeXMLHttpRequest and allows upload
+    // events to be simulated using uploadProgress
+    // and uploadError.
+    function UploadProgress() {
+        this.eventListeners = {
+            progress: [],
+            load: [],
+            abort: [],
+            error: []
+        }
+    }
+
+    UploadProgress.prototype.addEventListener = function addEventListener(event, listener) {
+        this.eventListeners[event].push(listener);
+    };
+
+    UploadProgress.prototype.removeEventListener = function removeEventListener(event, listener) {
+        var listeners = this.eventListeners[event] || [];
+
+        for (var i = 0, l = listeners.length; i < l; ++i) {
+            if (listeners[i] == listener) {
+                return listeners.splice(i, 1);
+            }
+        }
+    };
+
+    UploadProgress.prototype.dispatchEvent = function dispatchEvent(event) {
+        var listeners = this.eventListeners[event.type] || [];
+
+        for (var i = 0, listener; (listener = listeners[i]) != null; i++) {
+            listener(event);
+        }
+    };
+
+    function verifyState(xhr) {
+        if (xhr.readyState !== FakeXMLHttpRequest.OPENED) {
+            throw new Error("INVALID_STATE_ERR");
+        }
+
+        if (xhr.sendFlag) {
+            throw new Error("INVALID_STATE_ERR");
+        }
+    }
+
+    function getHeader(headers, header) {
+        header = header.toLowerCase();
+
+        for (var h in headers) {
+            if (h.toLowerCase() == header) {
+                return h;
+            }
+        }
+
+        return null;
+    }
+
+    // filtering to enable a white-list version of Sinon FakeXhr,
+    // where whitelisted requests are passed through to real XHR
+    function each(collection, callback) {
+        if (!collection) {
+            return;
+        }
+
+        for (var i = 0, l = collection.length; i < l; i += 1) {
+            callback(collection[i]);
+        }
+    }
+    function some(collection, callback) {
+        for (var index = 0; index < collection.length; index++) {
+            if (callback(collection[index]) === true) {
+                return true;
+            }
+        }
+        return false;
+    }
+    // largest arity in XHR is 5 - XHR#open
+    var apply = function (obj, method, args) {
+        switch (args.length) {
+        case 0: return obj[method]();
+        case 1: return obj[method](args[0]);
+        case 2: return obj[method](args[0], args[1]);
+        case 3: return obj[method](args[0], args[1], args[2]);
+        case 4: return obj[method](args[0], args[1], args[2], args[3]);
+        case 5: return obj[method](args[0], args[1], args[2], args[3], args[4]);
+        }
+    };
+
+    FakeXMLHttpRequest.filters = [];
+    FakeXMLHttpRequest.addFilter = function addFilter(fn) {
+        this.filters.push(fn)
+    };
+    var IE6Re = /MSIE 6/;
+    FakeXMLHttpRequest.defake = function defake(fakeXhr, xhrArgs) {
+        var xhr = new sinonXhr.workingXHR();
+        each([
+            "open",
+            "setRequestHeader",
+            "send",
+            "abort",
+            "getResponseHeader",
+            "getAllResponseHeaders",
+            "addEventListener",
+            "overrideMimeType",
+            "removeEventListener"
+        ], function (method) {
+            fakeXhr[method] = function () {
+                return apply(xhr, method, arguments);
+            };
+        });
+
+        var copyAttrs = function (args) {
+            each(args, function (attr) {
+                try {
+                    fakeXhr[attr] = xhr[attr]
+                } catch (e) {
+                    if (!IE6Re.test(navigator.userAgent)) {
+                        throw e;
+                    }
+                }
+            });
+        };
+
+        var stateChange = function stateChange() {
+            fakeXhr.readyState = xhr.readyState;
+            if (xhr.readyState >= FakeXMLHttpRequest.HEADERS_RECEIVED) {
+                copyAttrs(["status", "statusText"]);
+            }
+            if (xhr.readyState >= FakeXMLHttpRequest.LOADING) {
+                copyAttrs(["responseText", "response"]);
+            }
+            if (xhr.readyState === FakeXMLHttpRequest.DONE) {
+                copyAttrs(["responseXML"]);
+            }
+            if (fakeXhr.onreadystatechange) {
+                fakeXhr.onreadystatechange.call(fakeXhr, { target: fakeXhr });
+            }
+        };
+
+        if (xhr.addEventListener) {
+            for (var event in fakeXhr.eventListeners) {
+                if (fakeXhr.eventListeners.hasOwnProperty(event)) {
+                    each(fakeXhr.eventListeners[event], function (handler) {
+                        xhr.addEventListener(event, handler);
+                    });
+                }
+            }
+            xhr.addEventListener("readystatechange", stateChange);
+        } else {
+            xhr.onreadystatechange = stateChange;
+        }
+        apply(xhr, "open", xhrArgs);
+    };
+    FakeXMLHttpRequest.useFilters = false;
+
+    function verifyRequestOpened(xhr) {
+        if (xhr.readyState != FakeXMLHttpRequest.OPENED) {
+            throw new Error("INVALID_STATE_ERR - " + xhr.readyState);
+        }
+    }
+
+    function verifyRequestSent(xhr) {
+        if (xhr.readyState == FakeXMLHttpRequest.DONE) {
+            throw new Error("Request done");
+        }
+    }
+
+    function verifyHeadersReceived(xhr) {
+        if (xhr.async && xhr.readyState != FakeXMLHttpRequest.HEADERS_RECEIVED) {
+            throw new Error("No headers received");
+        }
+    }
+
+    function verifyResponseBodyType(body) {
+        if (typeof body != "string") {
+            var error = new Error("Attempted to respond to fake XMLHttpRequest with " +
+                                 body + ", which is not a string.");
+            error.name = "InvalidBodyException";
+            throw error;
+        }
+    }
+
+    FakeXMLHttpRequest.parseXML = function parseXML(text) {
+        var xmlDoc;
+
+        if (typeof DOMParser != "undefined") {
+            var parser = new DOMParser();
+            xmlDoc = parser.parseFromString(text, "text/xml");
+        } else {
+            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
+            xmlDoc.async = "false";
+            xmlDoc.loadXML(text);
+        }
+
+        return xmlDoc;
+    };
+
+    FakeXMLHttpRequest.statusCodes = {
+        100: "Continue",
+        101: "Switching Protocols",
+        200: "OK",
+        201: "Created",
+        202: "Accepted",
+        203: "Non-Authoritative Information",
+        204: "No Content",
+        205: "Reset Content",
+        206: "Partial Content",
+        207: "Multi-Status",
+        300: "Multiple Choice",
+        301: "Moved Permanently",
+        302: "Found",
+        303: "See Other",
+        304: "Not Modified",
+        305: "Use Proxy",
+        307: "Temporary Redirect",
+        400: "Bad Request",
+        401: "Unauthorized",
+        402: "Payment Required",
+        403: "Forbidden",
+        404: "Not Found",
+        405: "Method Not Allowed",
+        406: "Not Acceptable",
+        407: "Proxy Authentication Required",
+        408: "Request Timeout",
+        409: "Conflict",
+        410: "Gone",
+        411: "Length Required",
+        412: "Precondition Failed",
+        413: "Request Entity Too Large",
+        414: "Request-URI Too Long",
+        415: "Unsupported Media Type",
+        416: "Requested Range Not Satisfiable",
+        417: "Expectation Failed",
+        422: "Unprocessable Entity",
+        500: "Internal Server Error",
+        501: "Not Implemented",
+        502: "Bad Gateway",
+        503: "Service Unavailable",
+        504: "Gateway Timeout",
+        505: "HTTP Version Not Supported"
+    };
+
+    function makeApi(sinon) {
+        sinon.xhr = sinonXhr;
+
+        sinon.extend(FakeXMLHttpRequest.prototype, sinon.EventTarget, {
+            async: true,
+
+            open: function open(method, url, async, username, password) {
+                this.method = method;
+                this.url = url;
+                this.async = typeof async == "boolean" ? async : true;
+                this.username = username;
+                this.password = password;
+                this.responseText = null;
+                this.responseXML = null;
+                this.requestHeaders = {};
+                this.sendFlag = false;
+
+                if (FakeXMLHttpRequest.useFilters === true) {
+                    var xhrArgs = arguments;
+                    var defake = some(FakeXMLHttpRequest.filters, function (filter) {
+                        return filter.apply(this, xhrArgs)
+                    });
+                    if (defake) {
+                        return FakeXMLHttpRequest.defake(this, arguments);
+                    }
+                }
+                this.readyStateChange(FakeXMLHttpRequest.OPENED);
+            },
+
+            readyStateChange: function readyStateChange(state) {
+                this.readyState = state;
+
+                if (typeof this.onreadystatechange == "function") {
+                    try {
+                        this.onreadystatechange();
+                    } catch (e) {
+                        sinon.logError("Fake XHR onreadystatechange handler", e);
+                    }
+                }
+
+                switch (this.readyState) {
+                    case FakeXMLHttpRequest.DONE:
+                        if (supportsProgress) {
+                            this.upload.dispatchEvent(new sinon.ProgressEvent("progress", {loaded: 100, total: 100}));
+                            this.dispatchEvent(new sinon.ProgressEvent("progress", {loaded: 100, total: 100}));
+                        }
+                        this.upload.dispatchEvent(new sinon.Event("load", false, false, this));
+                        this.dispatchEvent(new sinon.Event("load", false, false, this));
+                        this.dispatchEvent(new sinon.Event("loadend", false, false, this));
+                        break;
+                }
+
+                this.dispatchEvent(new sinon.Event("readystatechange"));
+            },
+
+            setRequestHeader: function setRequestHeader(header, value) {
+                verifyState(this);
+
+                if (unsafeHeaders[header] || /^(Sec-|Proxy-)/.test(header)) {
+                    throw new Error("Refused to set unsafe header \"" + header + "\"");
+                }
+
+                if (this.requestHeaders[header]) {
+                    this.requestHeaders[header] += "," + value;
+                } else {
+                    this.requestHeaders[header] = value;
+                }
+            },
+
+            // Helps testing
+            setResponseHeaders: function setResponseHeaders(headers) {
+                verifyRequestOpened(this);
+                this.responseHeaders = {};
+
+                for (var header in headers) {
+                    if (headers.hasOwnProperty(header)) {
+                        this.responseHeaders[header] = headers[header];
+                    }
+                }
+
+                if (this.async) {
+                    this.readyStateChange(FakeXMLHttpRequest.HEADERS_RECEIVED);
+                } else {
+                    this.readyState = FakeXMLHttpRequest.HEADERS_RECEIVED;
+                }
+            },
+
+            // Currently treats ALL data as a DOMString (i.e. no Document)
+            send: function send(data) {
+                verifyState(this);
+
+                if (!/^(get|head)$/i.test(this.method)) {
+                    var contentType = getHeader(this.requestHeaders, "Content-Type");
+                    if (this.requestHeaders[contentType]) {
+                        var value = this.requestHeaders[contentType].split(";");
+                        this.requestHeaders[contentType] = value[0] + ";charset=utf-8";
+                    } else if (supportsFormData && !(data instanceof FormData)) {
+                        this.requestHeaders["Content-Type"] = "text/plain;charset=utf-8";
+                    }
+
+                    this.requestBody = data;
+                }
+
+                this.errorFlag = false;
+                this.sendFlag = this.async;
+                this.readyStateChange(FakeXMLHttpRequest.OPENED);
+
+                if (typeof this.onSend == "function") {
+                    this.onSend(this);
+                }
+
+                this.dispatchEvent(new sinon.Event("loadstart", false, false, this));
+            },
+
+            abort: function abort() {
+                this.aborted = true;
+                this.responseText = null;
+                this.errorFlag = true;
+                this.requestHeaders = {};
+                this.responseHeaders = {};
+
+                if (this.readyState > FakeXMLHttpRequest.UNSENT && this.sendFlag) {
+                    this.readyStateChange(FakeXMLHttpRequest.DONE);
+                    this.sendFlag = false;
+                }
+
+                this.readyState = FakeXMLHttpRequest.UNSENT;
+
+                this.dispatchEvent(new sinon.Event("abort", false, false, this));
+
+                this.upload.dispatchEvent(new sinon.Event("abort", false, false, this));
+
+                if (typeof this.onerror === "function") {
+                    this.onerror();
+                }
+            },
+
+            getResponseHeader: function getResponseHeader(header) {
+                if (this.readyState < FakeXMLHttpRequest.HEADERS_RECEIVED) {
+                    return null;
+                }
+
+                if (/^Set-Cookie2?$/i.test(header)) {
+                    return null;
+                }
+
+                header = getHeader(this.responseHeaders, header);
+
+                return this.responseHeaders[header] || null;
+            },
+
+            getAllResponseHeaders: function getAllResponseHeaders() {
+                if (this.readyState < FakeXMLHttpRequest.HEADERS_RECEIVED) {
+                    return "";
+                }
+
+                var headers = "";
+
+                for (var header in this.responseHeaders) {
+                    if (this.responseHeaders.hasOwnProperty(header) &&
+                        !/^Set-Cookie2?$/i.test(header)) {
+                        headers += header + ": " + this.responseHeaders[header] + "\r\n";
+                    }
+                }
+
+                return headers;
+            },
+
+            setResponseBody: function setResponseBody(body) {
+                verifyRequestSent(this);
+                verifyHeadersReceived(this);
+                verifyResponseBodyType(body);
+
+                var chunkSize = this.chunkSize || 10;
+                var index = 0;
+                this.responseText = "";
+
+                do {
+                    if (this.async) {
+                        this.readyStateChange(FakeXMLHttpRequest.LOADING);
+                    }
+
+                    this.responseText += body.substring(index, index + chunkSize);
+                    index += chunkSize;
+                } while (index < body.length);
+
+                var type = this.getResponseHeader("Content-Type");
+
+                if (this.responseText &&
+                    (!type || /(text\/xml)|(application\/xml)|(\+xml)/.test(type))) {
+                    try {
+                        this.responseXML = FakeXMLHttpRequest.parseXML(this.responseText);
+                    } catch (e) {
+                        // Unable to parse XML - no biggie
+                    }
+                }
+
+                this.readyStateChange(FakeXMLHttpRequest.DONE);
+            },
+
+            respond: function respond(status, headers, body) {
+                this.status = typeof status == "number" ? status : 200;
+                this.statusText = FakeXMLHttpRequest.statusCodes[this.status];
+                this.setResponseHeaders(headers || {});
+                this.setResponseBody(body || "");
+            },
+
+            uploadProgress: function uploadProgress(progressEventRaw) {
+                if (supportsProgress) {
+                    this.upload.dispatchEvent(new sinon.ProgressEvent("progress", progressEventRaw));
+                }
+            },
+
+            downloadProgress: function downloadProgress(progressEventRaw) {
+                if (supportsProgress) {
+                    this.dispatchEvent(new sinon.ProgressEvent("progress", progressEventRaw));
+                }
+            },
+
+            uploadError: function uploadError(error) {
+                if (supportsCustomEvent) {
+                    this.upload.dispatchEvent(new sinon.CustomEvent("error", {detail: error}));
+                }
+            }
+        });
+
+        sinon.extend(FakeXMLHttpRequest, {
+            UNSENT: 0,
+            OPENED: 1,
+            HEADERS_RECEIVED: 2,
+            LOADING: 3,
+            DONE: 4
+        });
+
+        sinon.useFakeXMLHttpRequest = function () {
+            FakeXMLHttpRequest.restore = function restore(keepOnCreate) {
+                if (sinonXhr.supportsXHR) {
+                    global.XMLHttpRequest = sinonXhr.GlobalXMLHttpRequest;
+                }
+
+                if (sinonXhr.supportsActiveX) {
+                    global.ActiveXObject = sinonXhr.GlobalActiveXObject;
+                }
+
+                delete FakeXMLHttpRequest.restore;
+
+                if (keepOnCreate !== true) {
+                    delete FakeXMLHttpRequest.onCreate;
+                }
+            };
+            if (sinonXhr.supportsXHR) {
+                global.XMLHttpRequest = FakeXMLHttpRequest;
+            }
+
+            if (sinonXhr.supportsActiveX) {
+                global.ActiveXObject = function ActiveXObject(objId) {
+                    if (objId == "Microsoft.XMLHTTP" || /^Msxml2\.XMLHTTP/i.test(objId)) {
+
+                        return new FakeXMLHttpRequest();
+                    }
+
+                    return new sinonXhr.GlobalActiveXObject(objId);
+                };
+            }
+
+            return FakeXMLHttpRequest;
+        };
+
+        sinon.FakeXMLHttpRequest = FakeXMLHttpRequest;
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    function loadDependencies(require, exports, module) {
+        var sinon = require("./core");
+        require("../extend");
+        require("./event");
+        require("../log_error");
+        makeApi(sinon);
+        module.exports = sinon;
+    }
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+    } else if (typeof sinon === "undefined") {
+        return;
+    } else {
+        makeApi(sinon);
+    }
+
+})(typeof global !== "undefined" ? global : self);
+
+/**
+ * @depend fake_xdomain_request.js
+ * @depend fake_xml_http_request.js
+ * @depend ../format.js
+ * @depend ../log_error.js
+ */
+/**
+ * The Sinon "server" mimics a web server that receives requests from
+ * sinon.FakeXMLHttpRequest and provides an API to respond to those requests,
+ * both synchronously and asynchronously. To respond synchronuously, canned
+ * answers have to be provided upfront.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+if (typeof sinon == "undefined") {
+    var sinon = {};
+}
+
+(function () {
+    var push = [].push;
+    function F() {}
+
+    function create(proto) {
+        F.prototype = proto;
+        return new F();
+    }
+
+    function responseArray(handler) {
+        var response = handler;
+
+        if (Object.prototype.toString.call(handler) != "[object Array]") {
+            response = [200, {}, handler];
+        }
+
+        if (typeof response[2] != "string") {
+            throw new TypeError("Fake server response body should be string, but was " +
+                                typeof response[2]);
+        }
+
+        return response;
+    }
+
+    var wloc = typeof window !== "undefined" ? window.location : {};
+    var rCurrLoc = new RegExp("^" + wloc.protocol + "//" + wloc.host);
+
+    function matchOne(response, reqMethod, reqUrl) {
+        var rmeth = response.method;
+        var matchMethod = !rmeth || rmeth.toLowerCase() == reqMethod.toLowerCase();
+        var url = response.url;
+        var matchUrl = !url || url == reqUrl || (typeof url.test == "function" && url.test(reqUrl));
+
+        return matchMethod && matchUrl;
+    }
+
+    function match(response, request) {
+        var requestUrl = request.url;
+
+        if (!/^https?:\/\//.test(requestUrl) || rCurrLoc.test(requestUrl)) {
+            requestUrl = requestUrl.replace(rCurrLoc, "");
+        }
+
+        if (matchOne(response, this.getHTTPMethod(request), requestUrl)) {
+            if (typeof response.response == "function") {
+                var ru = response.url;
+                var args = [request].concat(ru && typeof ru.exec == "function" ? ru.exec(requestUrl).slice(1) : []);
+                return response.response.apply(response, args);
+            }
+
+            return true;
+        }
+
+        return false;
+    }
+
+    function makeApi(sinon) {
+        sinon.fakeServer = {
+            create: function () {
+                var server = create(this);
+                if (!sinon.xhr.supportsCORS) {
+                    this.xhr = sinon.useFakeXDomainRequest();
+                } else {
+                    this.xhr = sinon.useFakeXMLHttpRequest();
+                }
+                server.requests = [];
+
+                this.xhr.onCreate = function (xhrObj) {
+                    server.addRequest(xhrObj);
+                };
+
+                return server;
+            },
+
+            addRequest: function addRequest(xhrObj) {
+                var server = this;
+                push.call(this.requests, xhrObj);
+
+                xhrObj.onSend = function () {
+                    server.handleRequest(this);
+
+                    if (server.respondImmediately) {
+                        server.respond();
+                    } else if (server.autoRespond && !server.responding) {
+                        setTimeout(function () {
+                            server.responding = false;
+                            server.respond();
+                        }, server.autoRespondAfter || 10);
+
+                        server.responding = true;
+                    }
+                };
+            },
+
+            getHTTPMethod: function getHTTPMethod(request) {
+                if (this.fakeHTTPMethods && /post/i.test(request.method)) {
+                    var matches = (request.requestBody || "").match(/_method=([^\b;]+)/);
+                    return !!matches ? matches[1] : request.method;
+                }
+
+                return request.method;
+            },
+
+            handleRequest: function handleRequest(xhr) {
+                if (xhr.async) {
+                    if (!this.queue) {
+                        this.queue = [];
+                    }
+
+                    push.call(this.queue, xhr);
+                } else {
+                    this.processRequest(xhr);
+                }
+            },
+
+            log: function log(response, request) {
+                var str;
+
+                str =  "Request:\n"  + sinon.format(request)  + "\n\n";
+                str += "Response:\n" + sinon.format(response) + "\n\n";
+
+                sinon.log(str);
+            },
+
+            respondWith: function respondWith(method, url, body) {
+                if (arguments.length == 1 && typeof method != "function") {
+                    this.response = responseArray(method);
+                    return;
+                }
+
+                if (!this.responses) {
+                    this.responses = [];
+                }
+
+                if (arguments.length == 1) {
+                    body = method;
+                    url = method = null;
+                }
+
+                if (arguments.length == 2) {
+                    body = url;
+                    url = method;
+                    method = null;
+                }
+
+                push.call(this.responses, {
+                    method: method,
+                    url: url,
+                    response: typeof body == "function" ? body : responseArray(body)
+                });
+            },
+
+            respond: function respond() {
+                if (arguments.length > 0) {
+                    this.respondWith.apply(this, arguments);
+                }
+
+                var queue = this.queue || [];
+                var requests = queue.splice(0, queue.length);
+                var request;
+
+                while (request = requests.shift()) {
+                    this.processRequest(request);
+                }
+            },
+
+            processRequest: function processRequest(request) {
+                try {
+                    if (request.aborted) {
+                        return;
+                    }
+
+                    var response = this.response || [404, {}, ""];
+
+                    if (this.responses) {
+                        for (var l = this.responses.length, i = l - 1; i >= 0; i--) {
+                            if (match.call(this, this.responses[i], request)) {
+                                response = this.responses[i].response;
+                                break;
+                            }
+                        }
+                    }
+
+                    if (request.readyState != 4) {
+                        this.log(response, request);
+
+                        request.respond(response[0], response[1], response[2]);
+                    }
+                } catch (e) {
+                    sinon.logError("Fake server request processing", e);
+                }
+            },
+
+            restore: function restore() {
+                return this.xhr.restore && this.xhr.restore.apply(this.xhr, arguments);
+            }
+        };
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    function loadDependencies(require, exports, module) {
+        var sinon = require("./core");
+        require("./fake_xdomain_request");
+        require("./fake_xml_http_request");
+        require("../format");
+        makeApi(sinon);
+        module.exports = sinon;
+    }
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+    } else {
+        makeApi(sinon);
+    }
+}());
+
+/**
+ * @depend fake_server.js
+ * @depend fake_timers.js
+ */
+/**
+ * Add-on for sinon.fakeServer that automatically handles a fake timer along with
+ * the FakeXMLHttpRequest. The direct inspiration for this add-on is jQuery
+ * 1.3.x, which does not use xhr object's onreadystatehandler at all - instead,
+ * it polls the object for completion with setInterval. Dispite the direct
+ * motivation, there is nothing jQuery-specific in this file, so it can be used
+ * in any environment where the ajax implementation depends on setInterval or
+ * setTimeout.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function () {
+    function makeApi(sinon) {
+        function Server() {}
+        Server.prototype = sinon.fakeServer;
+
+        sinon.fakeServerWithClock = new Server();
+
+        sinon.fakeServerWithClock.addRequest = function addRequest(xhr) {
+            if (xhr.async) {
+                if (typeof setTimeout.clock == "object") {
+                    this.clock = setTimeout.clock;
+                } else {
+                    this.clock = sinon.useFakeTimers();
+                    this.resetClock = true;
+                }
+
+                if (!this.longestTimeout) {
+                    var clockSetTimeout = this.clock.setTimeout;
+                    var clockSetInterval = this.clock.setInterval;
+                    var server = this;
+
+                    this.clock.setTimeout = function (fn, timeout) {
+                        server.longestTimeout = Math.max(timeout, server.longestTimeout || 0);
+
+                        return clockSetTimeout.apply(this, arguments);
+                    };
+
+                    this.clock.setInterval = function (fn, timeout) {
+                        server.longestTimeout = Math.max(timeout, server.longestTimeout || 0);
+
+                        return clockSetInterval.apply(this, arguments);
+                    };
+                }
+            }
+
+            return sinon.fakeServer.addRequest.call(this, xhr);
+        };
+
+        sinon.fakeServerWithClock.respond = function respond() {
+            var returnVal = sinon.fakeServer.respond.apply(this, arguments);
+
+            if (this.clock) {
+                this.clock.tick(this.longestTimeout || 0);
+                this.longestTimeout = 0;
+
+                if (this.resetClock) {
+                    this.clock.restore();
+                    this.resetClock = false;
+                }
+            }
+
+            return returnVal;
+        };
+
+        sinon.fakeServerWithClock.restore = function restore() {
+            if (this.clock) {
+                this.clock.restore();
+            }
+
+            return sinon.fakeServer.restore.apply(this, arguments);
+        };
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    function loadDependencies(require) {
+        var sinon = require("./core");
+        require("./fake_server");
+        require("./fake_timers");
+        makeApi(sinon);
+    }
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require);
+    } else {
+        makeApi(sinon);
+    }
+}());
+
+/**
+ * @depend util/core.js
+ * @depend extend.js
+ * @depend collection.js
+ * @depend util/fake_timers.js
+ * @depend util/fake_server_with_clock.js
+ */
+/**
+ * Manages fake collections as well as fake utilities such as Sinon's
+ * timers and fake XHR implementation in one convenient object.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function () {
+    function makeApi(sinon) {
+        var push = [].push;
+
+        function exposeValue(sandbox, config, key, value) {
+            if (!value) {
+                return;
+            }
+
+            if (config.injectInto && !(key in config.injectInto)) {
+                config.injectInto[key] = value;
+                sandbox.injectedKeys.push(key);
+            } else {
+                push.call(sandbox.args, value);
+            }
+        }
+
+        function prepareSandboxFromConfig(config) {
+            var sandbox = sinon.create(sinon.sandbox);
+
+            if (config.useFakeServer) {
+                if (typeof config.useFakeServer == "object") {
+                    sandbox.serverPrototype = config.useFakeServer;
+                }
+
+                sandbox.useFakeServer();
+            }
+
+            if (config.useFakeTimers) {
+                if (typeof config.useFakeTimers == "object") {
+                    sandbox.useFakeTimers.apply(sandbox, config.useFakeTimers);
+                } else {
+                    sandbox.useFakeTimers();
+                }
+            }
+
+            return sandbox;
+        }
+
+        sinon.sandbox = sinon.extend(sinon.create(sinon.collection), {
+            useFakeTimers: function useFakeTimers() {
+                this.clock = sinon.useFakeTimers.apply(sinon, arguments);
+
+                return this.add(this.clock);
+            },
+
+            serverPrototype: sinon.fakeServer,
+
+            useFakeServer: function useFakeServer() {
+                var proto = this.serverPrototype || sinon.fakeServer;
+
+                if (!proto || !proto.create) {
+                    return null;
+                }
+
+                this.server = proto.create();
+                return this.add(this.server);
+            },
+
+            inject: function (obj) {
+                sinon.collection.inject.call(this, obj);
+
+                if (this.clock) {
+                    obj.clock = this.clock;
+                }
+
+                if (this.server) {
+                    obj.server = this.server;
+                    obj.requests = this.server.requests;
+                }
+
+                obj.match = sinon.match;
+
+                return obj;
+            },
+
+            restore: function () {
+                sinon.collection.restore.apply(this, arguments);
+                this.restoreContext();
+            },
+
+            restoreContext: function () {
+                if (this.injectedKeys) {
+                    for (var i = 0, j = this.injectedKeys.length; i < j; i++) {
+                        delete this.injectInto[this.injectedKeys[i]];
+                    }
+                    this.injectedKeys = [];
+                }
+            },
+
+            create: function (config) {
+                if (!config) {
+                    return sinon.create(sinon.sandbox);
+                }
+
+                var sandbox = prepareSandboxFromConfig(config);
+                sandbox.args = sandbox.args || [];
+                sandbox.injectedKeys = [];
+                sandbox.injectInto = config.injectInto;
+                var prop, value, exposed = sandbox.inject({});
+
+                if (config.properties) {
+                    for (var i = 0, l = config.properties.length; i < l; i++) {
+                        prop = config.properties[i];
+                        value = exposed[prop] || prop == "sandbox" && sandbox;
+                        exposeValue(sandbox, config, prop, value);
+                    }
+                } else {
+                    exposeValue(sandbox, config, "sandbox", value);
+                }
+
+                return sandbox;
+            },
+
+            match: sinon.match
+        });
+
+        sinon.sandbox.useFakeXMLHttpRequest = sinon.sandbox.useFakeServer;
+
+        return sinon.sandbox;
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    function loadDependencies(require, exports, module) {
+        var sinon = require("./util/core");
+        require("./extend");
+        require("./util/fake_server_with_clock");
+        require("./util/fake_timers");
+        require("./collection");
+        module.exports = makeApi(sinon);
+    }
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+    } else if (!sinon) {
+        return;
+    } else {
+        makeApi(sinon);
+    }
+}());
+
+/**
+ * @depend util/core.js
+ * @depend sandbox.js
+ */
+/**
+ * Test function, sandboxes fakes
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon) {
+    function makeApi(sinon) {
+        var slice = Array.prototype.slice;
+
+        function test(callback) {
+            var type = typeof callback;
+
+            if (type != "function") {
+                throw new TypeError("sinon.test needs to wrap a test function, got " + type);
+            }
+
+            function sinonSandboxedTest() {
+                var config = sinon.getConfig(sinon.config);
+                config.injectInto = config.injectIntoThis && this || config.injectInto;
+                var sandbox = sinon.sandbox.create(config);
+                var args = slice.call(arguments);
+                var oldDone = args.length && args[args.length - 1];
+                var exception, result;
+
+                if (typeof oldDone == "function") {
+                    args[args.length - 1] = function sinonDone(result) {
+                        if (result) {
+                            sandbox.restore();
+                            throw exception;
+                        } else {
+                            sandbox.verifyAndRestore();
+                        }
+                        oldDone(result);
+                    };
+                }
+
+                try {
+                    result = callback.apply(this, args.concat(sandbox.args));
+                } catch (e) {
+                    exception = e;
+                }
+
+                if (typeof oldDone != "function") {
+                    if (typeof exception !== "undefined") {
+                        sandbox.restore();
+                        throw exception;
+                    } else {
+                        sandbox.verifyAndRestore();
+                    }
+                }
+
+                return result;
+            }
+
+            if (callback.length) {
+                return function sinonAsyncSandboxedTest(callback) {
+                    return sinonSandboxedTest.apply(this, arguments);
+                };
+            }
+
+            return sinonSandboxedTest;
+        }
+
+        test.config = {
+            injectIntoThis: true,
+            injectInto: null,
+            properties: ["spy", "stub", "mock", "clock", "server", "requests"],
+            useFakeTimers: true,
+            useFakeServer: true
+        };
+
+        sinon.test = test;
+        return test;
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    function loadDependencies(require, exports, module) {
+        var sinon = require("./util/core");
+        require("./sandbox");
+        module.exports = makeApi(sinon);
+    }
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+    } else if (sinon) {
+        makeApi(sinon);
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend util/core.js
+ * @depend test.js
+ */
+/**
+ * Test case, sandboxes all test functions
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon) {
+    function createTest(property, setUp, tearDown) {
+        return function () {
+            if (setUp) {
+                setUp.apply(this, arguments);
+            }
+
+            var exception, result;
+
+            try {
+                result = property.apply(this, arguments);
+            } catch (e) {
+                exception = e;
+            }
+
+            if (tearDown) {
+                tearDown.apply(this, arguments);
+            }
+
+            if (exception) {
+                throw exception;
+            }
+
+            return result;
+        };
+    }
+
+    function makeApi(sinon) {
+        function testCase(tests, prefix) {
+            if (!tests || typeof tests != "object") {
+                throw new TypeError("sinon.testCase needs an object with test functions");
+            }
+
+            prefix = prefix || "test";
+            var rPrefix = new RegExp("^" + prefix);
+            var methods = {}, testName, property, method;
+            var setUp = tests.setUp;
+            var tearDown = tests.tearDown;
+
+            for (testName in tests) {
+                if (tests.hasOwnProperty(testName) && !/^(setUp|tearDown)$/.test(testName)) {
+                    property = tests[testName];
+
+                    if (typeof property == "function" && rPrefix.test(testName)) {
+                        method = property;
+
+                        if (setUp || tearDown) {
+                            method = createTest(property, setUp, tearDown);
+                        }
+
+                        methods[testName] = sinon.test(method);
+                    } else {
+                        methods[testName] = tests[testName];
+                    }
+                }
+            }
+
+            return methods;
+        }
+
+        sinon.testCase = testCase;
+        return testCase;
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    function loadDependencies(require, exports, module) {
+        var sinon = require("./util/core");
+        require("./test");
+        module.exports = makeApi(sinon);
+    }
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+    } else if (!sinon) {
+        return;
+    } else {
+        makeApi(sinon);
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend times_in_words.js
+ * @depend util/core.js
+ * @depend match.js
+ * @depend format.js
+ */
+/**
+ * Assertions matching the test spy retrieval interface.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon, global) {
+    var slice = Array.prototype.slice;
+
+    function makeApi(sinon) {
+        var assert;
+
+        function verifyIsStub() {
+            var method;
+
+            for (var i = 0, l = arguments.length; i < l; ++i) {
+                method = arguments[i];
+
+                if (!method) {
+                    assert.fail("fake is not a spy");
+                }
+
+                if (method.proxy && method.proxy.isSinonProxy) {
+                    verifyIsStub(method.proxy);
+                } else {
+                    if (typeof method != "function") {
+                        assert.fail(method + " is not a function");
+                    }
+
+                    if (typeof method.getCall != "function") {
+                        assert.fail(method + " is not stubbed");
+                    }
+                }
+
+            }
+        }
+
+        function failAssertion(object, msg) {
+            object = object || global;
+            var failMethod = object.fail || assert.fail;
+            failMethod.call(object, msg);
+        }
+
+        function mirrorPropAsAssertion(name, method, message) {
+            if (arguments.length == 2) {
+                message = method;
+                method = name;
+            }
+
+            assert[name] = function (fake) {
+                verifyIsStub(fake);
+
+                var args = slice.call(arguments, 1);
+                var failed = false;
+
+                if (typeof method == "function") {
+                    failed = !method(fake);
+                } else {
+                    failed = typeof fake[method] == "function" ?
+                        !fake[method].apply(fake, args) : !fake[method];
+                }
+
+                if (failed) {
+                    failAssertion(this, (fake.printf || fake.proxy.printf).apply(fake, [message].concat(args)));
+                } else {
+                    assert.pass(name);
+                }
+            };
+        }
+
+        function exposedName(prefix, prop) {
+            return !prefix || /^fail/.test(prop) ? prop :
+                prefix + prop.slice(0, 1).toUpperCase() + prop.slice(1);
+        }
+
+        assert = {
+            failException: "AssertError",
+
+            fail: function fail(message) {
+                var error = new Error(message);
+                error.name = this.failException || assert.failException;
+
+                throw error;
+            },
+
+            pass: function pass(assertion) {},
+
+            callOrder: function assertCallOrder() {
+                verifyIsStub.apply(null, arguments);
+                var expected = "", actual = "";
+
+                if (!sinon.calledInOrder(arguments)) {
+                    try {
+                        expected = [].join.call(arguments, ", ");
+                        var calls = slice.call(arguments);
+                        var i = calls.length;
+                        while (i) {
+                            if (!calls[--i].called) {
+                                calls.splice(i, 1);
+                            }
+                        }
+                        actual = sinon.orderByFirstCall(calls).join(", ");
+                    } catch (e) {
+                        // If this fails, we'll just fall back to the blank string
+                    }
+
+                    failAssertion(this, "expected " + expected + " to be " +
+                                "called in order but were called as " + actual);
+                } else {
+                    assert.pass("callOrder");
+                }
+            },
+
+            callCount: function assertCallCount(method, count) {
+                verifyIsStub(method);
+
+                if (method.callCount != count) {
+                    var msg = "expected %n to be called " + sinon.timesInWords(count) +
+                        " but was called %c%C";
+                    failAssertion(this, method.printf(msg));
+                } else {
+                    assert.pass("callCount");
+                }
+            },
+
+            expose: function expose(target, options) {
+                if (!target) {
+                    throw new TypeError("target is null or undefined");
+                }
+
+                var o = options || {};
+                var prefix = typeof o.prefix == "undefined" && "assert" || o.prefix;
+                var includeFail = typeof o.includeFail == "undefined" || !!o.includeFail;
+
+                for (var method in this) {
+                    if (method != "expose" && (includeFail || !/^(fail)/.test(method))) {
+                        target[exposedName(prefix, method)] = this[method];
+                    }
+                }
+
+                return target;
+            },
+
+            match: function match(actual, expectation) {
+                var matcher = sinon.match(expectation);
+                if (matcher.test(actual)) {
+                    assert.pass("match");
+                } else {
+                    var formatted = [
+                        "expected value to match",
+                        "    expected = " + sinon.format(expectation),
+                        "    actual = " + sinon.format(actual)
+                    ]
+                    failAssertion(this, formatted.join("\n"));
+                }
+            }
+        };
+
+        mirrorPropAsAssertion("called", "expected %n to have been called at least once but was never called");
+        mirrorPropAsAssertion("notCalled", function (spy) {
+            return !spy.called;
+        }, "expected %n to not have been called but was called %c%C");
+        mirrorPropAsAssertion("calledOnce", "expected %n to be called once but was called %c%C");
+        mirrorPropAsAssertion("calledTwice", "expected %n to be called twice but was called %c%C");
+        mirrorPropAsAssertion("calledThrice", "expected %n to be called thrice but was called %c%C");
+        mirrorPropAsAssertion("calledOn", "expected %n to be called with %1 as this but was called with %t");
+        mirrorPropAsAssertion("alwaysCalledOn", "expected %n to always be called with %1 as this but was called with %t");
+        mirrorPropAsAssertion("calledWithNew", "expected %n to be called with new");
+        mirrorPropAsAssertion("alwaysCalledWithNew", "expected %n to always be called with new");
+        mirrorPropAsAssertion("calledWith", "expected %n to be called with arguments %*%C");
+        mirrorPropAsAssertion("calledWithMatch", "expected %n to be called with match %*%C");
+        mirrorPropAsAssertion("alwaysCalledWith", "expected %n to always be called with arguments %*%C");
+        mirrorPropAsAssertion("alwaysCalledWithMatch", "expected %n to always be called with match %*%C");
+        mirrorPropAsAssertion("calledWithExactly", "expected %n to be called with exact arguments %*%C");
+        mirrorPropAsAssertion("alwaysCalledWithExactly", "expected %n to always be called with exact arguments %*%C");
+        mirrorPropAsAssertion("neverCalledWith", "expected %n to never be called with arguments %*%C");
+        mirrorPropAsAssertion("neverCalledWithMatch", "expected %n to never be called with match %*%C");
+        mirrorPropAsAssertion("threw", "%n did not throw exception%C");
+        mirrorPropAsAssertion("alwaysThrew", "%n did not always throw exception%C");
+
+        sinon.assert = assert;
+        return assert;
+    }
+
+    var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
+    var isAMD = typeof define === "function" && typeof define.amd === "object" && define.amd;
+
+    function loadDependencies(require, exports, module) {
+        var sinon = require("./util/core");
+        require("./match");
+        require("./format");
+        module.exports = makeApi(sinon);
+    }
+
+    if (isAMD) {
+        define(loadDependencies);
+    } else if (isNode) {
+        loadDependencies(require, module.exports, module);
+    } else if (!sinon) {
+        return;
+    } else {
+        makeApi(sinon);
+    }
+
+}(typeof sinon == "object" && sinon || null, typeof window != "undefined" ? window : (typeof self != "undefined") ? self : global));
+
+  return sinon;
+}));
diff --git a/resources/lib/sinonjs/sinon-ie-1.10.3.js b/resources/lib/sinonjs/sinon-ie-1.10.3.js
deleted file mode 100644 (file)
index de8c23d..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-/**
- * Sinon.JS 1.10.3, 2014/07/11
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @author Contributors: https://github.com/cjohansen/Sinon.JS/blob/master/AUTHORS
- *
- * (The BSD License)
- * 
- * Copyright (c) 2010-2014, Christian Johansen, christian@cjohansen.no
- * 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 Christian Johansen 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 HOLDER 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.
- */
-
-/*global sinon, setTimeout, setInterval, clearTimeout, clearInterval, Date*/
-/**
- * Helps IE run the fake timers. By defining global functions, IE allows
- * them to be overwritten at a later point. If these are not defined like
- * this, overwriting them will result in anything from an exception to browser
- * crash.
- *
- * If you don't require fake timers to work in IE, don't include this file.
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-function setTimeout() {}
-function clearTimeout() {}
-function setImmediate() {}
-function clearImmediate() {}
-function setInterval() {}
-function clearInterval() {}
-function Date() {}
-
-// Reassign the original functions. Now their writable attribute
-// should be true. Hackish, I know, but it works.
-setTimeout = sinon.timers.setTimeout;
-clearTimeout = sinon.timers.clearTimeout;
-setImmediate = sinon.timers.setImmediate;
-clearImmediate = sinon.timers.clearImmediate;
-setInterval = sinon.timers.setInterval;
-clearInterval = sinon.timers.clearInterval;
-Date = sinon.timers.Date;
-
-/*global sinon*/
-/**
- * Helps IE run the fake XMLHttpRequest. By defining global functions, IE allows
- * them to be overwritten at a later point. If these are not defined like
- * this, overwriting them will result in anything from an exception to browser
- * crash.
- *
- * If you don't require fake XHR to work in IE, don't include this file.
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-function XMLHttpRequest() {}
-
-// Reassign the original function. Now its writable attribute
-// should be true. Hackish, I know, but it works.
-XMLHttpRequest = sinon.xhr.XMLHttpRequest || undefined;
-/*global sinon*/
-/**
- * Helps IE run the fake XDomainRequest. By defining global functions, IE allows
- * them to be overwritten at a later point. If these are not defined like
- * this, overwriting them will result in anything from an exception to browser
- * crash.
- *
- * If you don't require fake XDR to work in IE, don't include this file.
- */
-function XDomainRequest() {}
-
-// Reassign the original function. Now its writable attribute
-// should be true. Hackish, I know, but it works.
-XDomainRequest = sinon.xdr.XDomainRequest || undefined;
diff --git a/resources/lib/sinonjs/sinon-ie-1.15.0.js b/resources/lib/sinonjs/sinon-ie-1.15.0.js
new file mode 100644 (file)
index 0000000..2756321
--- /dev/null
@@ -0,0 +1,103 @@
+/**
+ * Sinon.JS 1.15.0, 2015/05/30
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @author Contributors: https://github.com/cjohansen/Sinon.JS/blob/master/AUTHORS
+ *
+ * (The BSD License)
+ * 
+ * Copyright (c) 2010-2014, Christian Johansen, christian@cjohansen.no
+ * 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 Christian Johansen 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 HOLDER 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.
+ */
+
+/**
+ * Helps IE run the fake timers. By defining global functions, IE allows
+ * them to be overwritten at a later point. If these are not defined like
+ * this, overwriting them will result in anything from an exception to browser
+ * crash.
+ *
+ * If you don't require fake timers to work in IE, don't include this file.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+if (typeof window !== "undefined") {
+    function setTimeout() {}
+    function clearTimeout() {}
+    function setImmediate() {}
+    function clearImmediate() {}
+    function setInterval() {}
+    function clearInterval() {}
+    function Date() {}
+
+    // Reassign the original functions. Now their writable attribute
+    // should be true. Hackish, I know, but it works.
+    setTimeout = sinon.timers.setTimeout;
+    clearTimeout = sinon.timers.clearTimeout;
+    setImmediate = sinon.timers.setImmediate;
+    clearImmediate = sinon.timers.clearImmediate;
+    setInterval = sinon.timers.setInterval;
+    clearInterval = sinon.timers.clearInterval;
+    Date = sinon.timers.Date;
+}
+
+/**
+ * Helps IE run the fake XMLHttpRequest. By defining global functions, IE allows
+ * them to be overwritten at a later point. If these are not defined like
+ * this, overwriting them will result in anything from an exception to browser
+ * crash.
+ *
+ * If you don't require fake XHR to work in IE, don't include this file.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+if (typeof window !== "undefined") {
+    function XMLHttpRequest() {}
+
+    // Reassign the original function. Now its writable attribute
+    // should be true. Hackish, I know, but it works.
+    XMLHttpRequest = sinon.xhr.XMLHttpRequest || undefined;
+}
+/**
+ * Helps IE run the fake XDomainRequest. By defining global functions, IE allows
+ * them to be overwritten at a later point. If these are not defined like
+ * this, overwriting them will result in anything from an exception to browser
+ * crash.
+ *
+ * If you don't require fake XDR to work in IE, don't include this file.
+ */
+if (typeof window !== "undefined") {
+    function XDomainRequest() {}
+
+    // Reassign the original function. Now its writable attribute
+    // should be true. Hackish, I know, but it works.
+    XDomainRequest = sinon.xdr.XDomainRequest || undefined;
+}
index 2a37fa8..29b7490 100644 (file)
@@ -16,6 +16,7 @@
         this.$element = $(element);
         this.options = options;
         this.enabled = true;
+        this.keyHandler = $.proxy( this.closeOnEsc, this );
         this.fixTitle();
     }
 
                 if (this.options.className) {
                     $tip.addClass(maybeCall(this.options.className, this.$element[0]));
                 }
-                $tip.remove().css({top: 0, left: 0, visibility: 'hidden', display: 'block'}).appendTo(document.body);
+                $tip.remove()
+                    .css({top: 0, left: 0, visibility: 'hidden', display: 'block'})
+                    .attr( 'aria-hidden', 'true' )
+                    .appendTo(document.body);
 
                 var pos = $.extend({}, this.$element.offset(), {
                     width: this.$element[0].offsetWidth,
                 }
                 $tip.css(tp);
 
+                $( document ).on( 'keydown', this.keyHandler );
                 if (this.options.fade) {
-                    $tip.stop().css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: this.options.opacity}, 100);
+                    $tip.stop()
+                        .css({opacity: 0, display: 'block', visibility: 'visible'})
+                        .attr( 'aria-hidden', 'false' )
+                        .animate({opacity: this.options.opacity}, 100);
                 } else {
-                    $tip.css({visibility: 'visible', opacity: this.options.opacity});
+                    $tip
+                        .css({visibility: 'visible', opacity: this.options.opacity})
+                        .attr( 'aria-hidden', 'false' );
                 }
             }
         },
 
         hide: function() {
+            $( document ).off( 'keydown', this.keyHandler );
             if (this.options.fade) {
                 this.tip().stop().fadeOut(100, function() { $(this).remove(); });
             } else {
 
         tip: function() {
             if (!this.$tip) {
-                this.$tip = $('<div class="tipsy"></div>').html('<div class="tipsy-arrow"></div><div class="tipsy-inner"></div>');
+                this.$tip = $('<div class="tipsy" role="tooltip"></div>').html('<div class="tipsy-arrow"></div><div class="tipsy-inner"></div>');
             }
             return this.$tip;
         },
             }
         },
 
+        // $.proxy event handler
+        closeOnEsc: function ( e ) {
+            if ( e.keyCode === 27 ) {
+                this.hide();
+            }
+        },
+
         enable: function() { this.enabled = true; },
         disable: function() { this.enabled = false; },
         toggleEnabled: function() { this.enabled = !this.enabled; }
         if (!options.live) this.each(function() { get(this); });
 
         if ( options.trigger != 'manual' ) {
-            var eventIn  = options.trigger == 'hover' ? 'mouseenter' : 'focus',
-                eventOut = options.trigger == 'hover' ? 'mouseleave' : 'blur';
+            var eventIn  = options.trigger == 'hover' ? 'mouseenter focus' : 'focus',
+                eventOut = options.trigger == 'hover' ? 'mouseleave blur' : 'blur';
             if ( options.live ) {
                 mw.track( 'mw.deprecate', 'tipsy-live' );
                 mw.log.warn( 'Use of the "live" option of jquery.tipsy is deprecated.' );
index 7ae51ab..e181472 100644 (file)
@@ -1,27 +1,28 @@
-jQuery( document ).ready( function ( $ ) {
-       var collapsibleLists, i, handleOne;
+( function ( mw ) {
+       var collapsibleLists, handleOne;
 
        // Collapsible lists of categories and templates
        collapsibleLists = [
                {
-                       $list: $( '.templatesUsed ul' ),
-                       $toggler: $( '.mw-templatesUsedExplanation' ),
+                       listSel: '.templatesUsed ul',
+                       togglerSel: '.mw-templatesUsedExplanation',
                        cookieName: 'templates-used-list'
                },
                {
-                       $list: $( '.hiddencats ul' ),
-                       $toggler: $( '.mw-hiddenCategoriesExplanation' ),
+                       listSel: '.hiddencats ul',
+                       togglerSel: '.mw-hiddenCategoriesExplanation',
                        cookieName: 'hidden-categories-list'
                },
                {
-                       $list: $( '.preview-limit-report-wrapper' ),
-                       $toggler: $( '.mw-limitReportExplanation' ),
+                       listSel: '.preview-limit-report-wrapper',
+                       togglerSel: '.mw-limitReportExplanation',
                        cookieName: 'preview-limit-report'
                }
        ];
 
        handleOne = function ( $list, $toggler, cookieName ) {
-               var isCollapsed = $.cookie( cookieName ) !== 'expanded';
+               // Collapsed by default
+               var isCollapsed = mw.cookie.get( cookieName ) !== 'expanded';
 
                // Style the toggler with an arrow icon and add a tabIndex and a role for accessibility
                $toggler.addClass( 'mw-editfooter-toggler' ).prop( 'tabIndex', 0 ).attr( 'role', 'button' );
@@ -38,17 +39,24 @@ jQuery( document ).ready( function ( $ ) {
 
                $list.on( 'beforeExpand.mw-collapsible', function () {
                        $toggler.removeClass( 'mw-icon-arrow-collapsed' ).addClass( 'mw-icon-arrow-expanded' );
-                       $.cookie( cookieName, 'expanded' );
+                       mw.cookie.set( cookieName, 'expanded' );
                } );
 
                $list.on( 'beforeCollapse.mw-collapsible', function () {
                        $toggler.removeClass( 'mw-icon-arrow-expanded' ).addClass( 'mw-icon-arrow-collapsed' );
-                       $.cookie( cookieName, 'collapsed' );
+                       mw.cookie.set( cookieName, 'collapsed' );
                } );
        };
 
-       for ( i = 0; i < collapsibleLists.length; i++ ) {
-               // Pass to a function for iteration-local variables
-               handleOne( collapsibleLists[i].$list, collapsibleLists[i].$toggler, collapsibleLists[i].cookieName );
-       }
-} );
+       mw.hook( 'wikipage.editform' ).add( function ( $editForm ) {
+               var i;
+               for ( i = 0; i < collapsibleLists.length; i++ ) {
+                       // Pass to a function for iteration-local variables
+                       handleOne(
+                               $editForm.find( collapsibleLists[i].listSel ),
+                               $editForm.find( collapsibleLists[i].togglerSel ),
+                               collapsibleLists[i].cookieName
+                       );
+               }
+       } );
+}( mediaWiki ) );
index 6b33012..56dba70 100644 (file)
@@ -35,7 +35,7 @@
 
                // Add form submission handler
                $( '#editform' ).submit( function () {
-                       allowCloseWindow();
+                       allowCloseWindow.release();
                } );
        } );
 
index 01a25f3..c9834f0 100644 (file)
@@ -1,23 +1,40 @@
 /*!
  * Scripts for action=edit at domready
  */
-jQuery( function ( $ ) {
-       var editBox, scrollTop, $editForm;
+( function ( mw, $ ) {
+       'use strict';
 
-       // Make sure edit summary does not exceed byte limit
-       $( '#wpSummary' ).byteLimit( 255 );
+       /**
+        * Fired when the editform is added to the edit page
+        *
+        * Similar to the {@link mw.hook#event-wikipage_content wikipage.content hook}
+        * $editForm can still be detached when this hook is fired.
+        *
+        * @event wikipage_editform
+        * @member mw.hook
+        * @param {jQuery} $editForm The most appropriate element containing the
+        *   editform, usually #editform.
+        */
 
-       // Restore the edit box scroll state following a preview operation,
-       // and set up a form submission handler to remember this state.
-       editBox = document.getElementById( 'wpTextbox1' );
-       scrollTop = document.getElementById( 'wpScrolltop' );
-       $editForm = $( '#editform' );
-       if ( $editForm.length && editBox && scrollTop ) {
-               if ( scrollTop.value ) {
-                       editBox.scrollTop = scrollTop.value;
+       $( function () {
+               var editBox, scrollTop, $editForm;
+
+               // Make sure edit summary does not exceed byte limit
+               $( '#wpSummary' ).byteLimit( 255 );
+
+               // Restore the edit box scroll state following a preview operation,
+               // and set up a form submission handler to remember this state.
+               editBox = document.getElementById( 'wpTextbox1' );
+               scrollTop = document.getElementById( 'wpScrolltop' );
+               $editForm = $( '#editform' );
+               mw.hook( 'wikipage.editform' ).fire( $editForm );
+               if ( $editForm.length && editBox && scrollTop ) {
+                       if ( scrollTop.value ) {
+                               editBox.scrollTop = scrollTop.value;
+                       }
+                       $editForm.submit( function () {
+                               scrollTop.value = editBox.scrollTop;
+                       } );
                }
-               $editForm.submit( function () {
-                       scrollTop.value = editBox.scrollTop;
-               } );
-       }
-} );
+       } );
+}( mediaWiki, jQuery ) );
index f24703a..5f1058f 100644 (file)
                        $.extend( postData, {
                                pst: '',
                                preview: '',
-                               prop: 'text|displaytitle|modules|categorieshtml|templates|langlinks|limitreporthtml',
+                               prop: 'text|displaytitle|modules|jsconfigvars|categorieshtml|templates|langlinks|limitreporthtml',
                                disableeditsection: true
                        } );
                        request = api.post( postData );
                        request.done( function ( response ) {
                                var li, newList, $displaytitle, $content, $parent, $list;
+                               if ( response.parse.jsconfigvars ) {
+                                       mw.config.set( response.parse.jsconfigvars );
+                               }
                                if ( response.parse.modules ) {
                                        mw.loader.load( response.parse.modules.concat(
                                                response.parse.modulescripts,
                }
                request.done( function ( response ) {
                        var isSubject = ( section === 'new' ),
-                               summaryMsg = isSubject ? 'subject-preview' : 'summary-preview';
-                       if ( response.parse.parsedsummary ) {
-                               $editform.find( '.mw-summary-preview' )
-                                       .empty()
-                                       .append(
-                                               mw.message( summaryMsg ).parse(),
-                                               ' ',
-                                               $( '<span>' ).addClass( 'comment' ).html(
-                                                       // There is no equivalent to rawParams
-                                                       mw.message( 'parentheses' ).escaped()
-                                                               .replace( '$1', response.parse.parsedsummary['*'] )
-                                               )
-                                       );
+                               summaryMsg = isSubject ? 'subject-preview' : 'summary-preview',
+                               $summaryPreview = $editform.find( '.mw-summary-preview' ).empty();
+                       if ( response.parse.parsedsummary && response.parse.parsedsummary['*'] !== '' ) {
+                               $summaryPreview.append(
+                                       mw.message( summaryMsg ).parse(),
+                                       ' ',
+                                       $( '<span>' ).addClass( 'comment' ).html(
+                                               // There is no equivalent to rawParams
+                                               mw.message( 'parentheses' ).escaped()
+                                                       .replace( '$1', response.parse.parsedsummary['*'] )
+                                       )
+                               );
                        }
+                       mw.hook( 'wikipage.editform' ).fire( $editform );
                } );
                request.always( function () {
                        $spinner.remove();
index 29c533d..8e7b168 100644 (file)
                        data = {},
                        timer = null;
 
-               function stashEdit( token ) {
-                       data = $form.serializeObject();
-
-                       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
-                       } );
-               }
-
                /* Has the edit body text changed since the last stashEdit() call? */
                function isChanged() {
                        // Normalize line endings to CRLF, like $.fn.serializeObject does.
                                pending.abort();
                        }
 
-                       api.getToken( 'edit' ).then( stashEdit );
+                       data = $form.serializeObject();
+                       pending = api.postWithToken( 'edit', {
+                               action: 'stashedit',
+                               title: mw.config.get( 'wgPageName' ),
+                               section: data.wpSection,
+                               sectiontitle: '',
+                               text: data.wpTextbox1,
+                               contentmodel: data.model,
+                               contentformat: data.format,
+                               baserevid: data.parentRevId
+                       } );
                }
 
                function onKeyPress( e ) {
index c7f150f..3c13055 100644 (file)
                                transformTable = tmp;
                                numberString = String( num );
                        } else {
+                               // Ignore transform table if wgTranslateNumerals is false
+                               if ( !mw.config.get( 'wgTranslateNumerals' ) ) {
+                                       transformTable = [];
+                               }
                                numberString = mw.language.commafy( num, pattern );
                        }
 
index e91302b..f6bf382 100644 (file)
@@ -60,3 +60,8 @@
 
 // Global border radius to be used to buttons and inputs
 @borderRadius: 2px;
+
+
+// Icon related variables
+@iconSize: 1.4em;
+@iconGutterWidth: 1em;
index eb57abb..9c59fc1 100644 (file)
@@ -141,7 +141,6 @@ h5 {
 
 p {
        margin: .4em 0 .5em 0;
-       line-height: 1.5em;
 }
 
 p img {
@@ -149,14 +148,12 @@ p img {
 }
 
 ul {
-       line-height: 1.5em;
        list-style-type: square;
        margin: .3em 0 0 1.6em;
        padding: 0;
 }
 
 ol {
-       line-height: 1.5em;
        margin: .3em 0 0 3.2em;
        padding: 0;
        list-style-image: none;
@@ -177,7 +174,6 @@ dl {
 }
 
 dd {
-       line-height: 1.5em;
        margin-left: 1.6em;
        margin-bottom: .1em;
 }
@@ -215,7 +211,6 @@ fieldset {
        border: 1px solid #2f6fab;
        margin: 1em 0 1em 0;
        padding: 0 1em 1em;
-       line-height: 1.5em;
 }
 
 fieldset.nested {
@@ -242,10 +237,6 @@ textarea {
        box-sizing: border-box;
 }
 
-select {
-       vertical-align: top;
-}
-
 /* Emulate Center */
 .center {
        width: 100%;
index 16fdf38..bdae0dd 100644 (file)
@@ -7,9 +7,11 @@
 }
 
 /*
- * Titles, including username links, are especially prone for getting jumbled up
+ * Titles, including username links, and also tag names
+ * are prone to getting jumbled up
  * with other titles, usernames, etc. in mixed RTL-LTR environment.
  */
+.mw-changeslist .mw-tag-marker,
 .mw-changeslist .mw-title {
        unicode-bidi: embed;
 }
index c9e5511..f217bf5 100644 (file)
@@ -3,23 +3,22 @@
  */
 
 /* Remember the collapse state of the legend on recent changes and watchlist pages. */
-jQuery( document ).ready( function ( $ ) {
+( function ( mw, $ ) {
        var
                cookieName = 'changeslist-state',
-               cookieOptions = {
-                       expires: 30,
-                       path: '/'
-               },
-               isCollapsed = $.cookie( cookieName ) === 'collapsed';
+               // Expanded by default
+               isCollapsed = mw.cookie.get( cookieName ) === 'collapsed';
 
-       $( '.mw-changeslist-legend' )
-               .makeCollapsible( {
-                       collapsed: isCollapsed
-               } )
-               .on( 'beforeExpand.mw-collapsible', function () {
-                       $.cookie( cookieName, 'expanded', cookieOptions );
-               } )
-               .on( 'beforeCollapse.mw-collapsible', function () {
-                       $.cookie( cookieName, 'collapsed', cookieOptions );
-               } );
-} );
+       $( function () {
+               $( '.mw-changeslist-legend' )
+                       .makeCollapsible( {
+                               collapsed: isCollapsed
+                       } )
+                       .on( 'beforeExpand.mw-collapsible', function () {
+                               mw.cookie.set( cookieName, 'expanded' );
+                       } )
+                       .on( 'beforeCollapse.mw-collapsible', function () {
+                               mw.cookie.set( cookieName, 'collapsed' );
+                       } );
+       } );
+}( mediaWiki, jQuery ) );
index 4bd747b..fa9e452 100644 (file)
@@ -5,7 +5,7 @@ jQuery( function ( $ ) {
        var $preftoc, $preferences, $fieldsets, $legends,
                hash, labelFunc,
                $tzSelect, $tzTextbox, $localtimeHolder, servertime,
-               $checkBoxes, allowCloseWindowFn;
+               $checkBoxes, allowCloseWindow;
 
        labelFunc = function () {
                return this.id.replace( /^mw-prefsection/g, 'preftab' );
@@ -266,7 +266,7 @@ jQuery( function ( $ ) {
        // Set up a message to notify users if they try to leave the page without
        // saving.
        $( '#mw-prefs-form' ).data( 'origdata', $( '#mw-prefs-form' ).serialize() );
-       allowCloseWindowFn = mediaWiki.confirmCloseWindow( {
+       allowCloseWindow = mediaWiki.confirmCloseWindow( {
                test: function () {
                        return $( '#mw-prefs-form' ).serialize() !== $( '#mw-prefs-form' ).data( 'origdata' );
                },
@@ -274,6 +274,6 @@ jQuery( function ( $ ) {
                message: mediaWiki.msg( 'prefswarning-warning', mediaWiki.msg( 'saveprefs' ) ),
                namespace: 'prefswarning'
        } );
-       $( '#mw-prefs-form' ).submit( allowCloseWindowFn );
-       $( '#mw-prefs-restoreprefs' ).click( allowCloseWindowFn );
+       $( '#mw-prefs-form' ).submit( $.proxy( allowCloseWindow, 'release' ) );
+       $( '#mw-prefs-restoreprefs' ).click( $.proxy( allowCloseWindow, 'release' ) );
 } );
index eeccda5..d0dfb28 100644 (file)
                } );
 
                $uploadForm.submit( function () {
-                       allowCloseWindow();
+                       allowCloseWindow.release();
                } );
        } );
 }( mediaWiki, jQuery ) );
index 4829f5f..ac5becb 100644 (file)
@@ -54,6 +54,9 @@
                // we hide the input element as instead we will style the label that follows
                // we use opacity so that VoiceOver software can still identify it
                opacity: 0;
+               // Render "on top of" the label, so that it's still clickable (T98905)
+               z-index: 1;
+               position: relative;
                // ensure the invisible checkbox takes up the required width
                width: @checkboxSize;
                height: @checkboxSize;
index ad951b0..d9e8c42 100644 (file)
@@ -1,13 +1,9 @@
 @import "mediawiki.mixins";
-
-// Variables
-@iconSize: 1.4em;
-@gutterWidth: 1em;
+@import "mediawiki.ui/variables";
 
 // Mixins
 .mixin-mw-ui-icon-bgimage(@iconSvg, @iconPng) {
        &.mw-ui-icon {
-               &:after,
                &:before {
                        .background-image-svg(@iconSvg, @iconPng);
                }
@@ -42,7 +38,7 @@
        //
        // Styleguide 6.1.1.
        &.mw-ui-icon-element {
-               @width: @iconSize + ( 2 * @gutterWidth );
+               @width: @iconSize + ( 2 * @iconGutterWidth );
 
                text-indent: -999px;
                overflow: hidden;
                        left: 0;
                        right: 0;
                        position: absolute;
-                       margin: 0 @gutterWidth;
+                       margin: 0 @iconGutterWidth;
                }
        }
 
-       &.mw-ui-icon-after:after,
        &.mw-ui-icon-before:before,
        &.mw-ui-icon-element:before {
                background-position: 50% 50%;
                &:before {
                        position: relative;
                        width: @iconSize;
-                       margin-right: @gutterWidth;
-               }
-       }
-
-       // Icons with text before
-       //
-       // Markup:
-       // <div class="mw-ui-icon mw-ui-icon-after mw-ui-icon-ok mw-ui-progressive mw-ui-button">OK</div>
-       //
-       // Styleguide 6.1.3
-       &.mw-ui-icon-after {
-               &:after {
-                       position: relative;
-                       float: right;
-                       width: @iconSize;
-                       margin-left: @gutterWidth;
+                       margin-right: @iconGutterWidth;
                }
        }
 }
-
-// Icons
-.mw-ui-icon-ok {
-       .mixin-mw-ui-icon-bgimage('images/ok.svg', 'images/ok.png');
-}
diff --git a/resources/src/mediawiki.ui/components/images/ok.png b/resources/src/mediawiki.ui/components/images/ok.png
deleted file mode 100644 (file)
index 1ea6aa2..0000000
Binary files a/resources/src/mediawiki.ui/components/images/ok.png and /dev/null differ
diff --git a/resources/src/mediawiki.ui/components/images/ok.svg b/resources/src/mediawiki.ui/components/images/ok.svg
deleted file mode 100644 (file)
index a3d3058..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="22" height="22"><path d="M18.125 1.813l-10.5 10.75-3.844-3.75L0 12.719l7.72 7.452L22 5.625z" fill="#f0f0f0"/></svg>
diff --git a/resources/src/mediawiki.widgets/AUTHORS.txt b/resources/src/mediawiki.widgets/AUTHORS.txt
new file mode 100644 (file)
index 0000000..10064b2
--- /dev/null
@@ -0,0 +1,10 @@
+Authors (alphabetically)
+
+Alex Monk <krenair@wikimedia.org>
+Bartosz Dziewoński <bdziewonski@wikimedia.org>
+Ed Sanders <esanders@wikimedia.org>
+James D. Forrester <jforrester@wikimedia.org>
+Roan Kattouw <roan@wikimedia.org>
+Sucheta Ghoshal <sghoshal@wikimedia.org>
+Timo Tijhof <timo@wikimedia.org>
+Trevor Parscal <trevor@wikimedia.org>
diff --git a/resources/src/mediawiki.widgets/LICENSE.txt b/resources/src/mediawiki.widgets/LICENSE.txt
new file mode 100644 (file)
index 0000000..b03ca80
--- /dev/null
@@ -0,0 +1,25 @@
+Copyright (c) 2011-2015 MediaWiki Widgets Team and others under the
+terms of The MIT License (MIT), as follows:
+
+This software consists of voluntary contributions made by many
+individuals (AUTHORS.txt) For exact contribution history, see the
+revision history and logs, available at https://gerrit.wikimedia.org
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.css b/resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.css
new file mode 100644 (file)
index 0000000..0065f70
--- /dev/null
@@ -0,0 +1,10 @@
+/*!
+ * MediaWiki Widgets – TitleInputWidget styles.
+ *
+ * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+.mw-widget-TitleInputWidget {
+       width: 30em;
+}
diff --git a/resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js b/resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js
new file mode 100644 (file)
index 0000000..1bc1d3d
--- /dev/null
@@ -0,0 +1,132 @@
+/*!
+ * MediaWiki Widgets – TitleInputWidget class.
+ *
+ * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+( function ( $, mw ) {
+       /**
+        * Creates an mw.widgets.TitleInputWidget object.
+        *
+        * @class
+        * @extends OO.ui.TextInputWidget
+        * @mixins OO.ui.mixin.LookupElement
+        *
+        * @constructor
+        * @param {Object} [config] Configuration options
+        * @cfg {number} [namespace] Namespace to prepend to queries
+        */
+       mw.widgets.TitleInputWidget = function MWWTitleInputWidget( config ) {
+               // Config initialization
+               config = config || {};
+
+               // Parent constructor
+               OO.ui.TextInputWidget.call( this, config );
+
+               // Mixin constructors
+               OO.ui.mixin.LookupElement.call( this, config );
+
+               // Properties
+               this.namespace = config.namespace || null;
+
+               // Initialization
+               this.$element.addClass( 'mw-widget-TitleInputWidget' );
+               this.lookupMenu.$element.addClass( 'mw-widget-TitleInputWidget-menu' );
+       };
+
+       /* Inheritance */
+
+       OO.inheritClass( mw.widgets.TitleInputWidget, OO.ui.TextInputWidget );
+
+       OO.mixinClass( mw.widgets.TitleInputWidget, OO.ui.mixin.LookupElement );
+
+       /* Methods */
+
+       /**
+        * @inheritdoc
+        */
+       mw.widgets.TitleInputWidget.prototype.onLookupMenuItemChoose = function ( item ) {
+               this.closeLookupMenu();
+               this.setLookupsDisabled( true );
+               this.setValue( item.getData() );
+               this.setLookupsDisabled( false );
+       };
+
+       /**
+        * @inheritdoc
+        */
+       mw.widgets.TitleInputWidget.prototype.getLookupRequest = function () {
+               var value = this.value;
+
+               // Prefix with default namespace name
+               if ( this.namespace !== null && mw.Title.newFromText( value, this.namespace ) ) {
+                       value = mw.Title.newFromText( value, this.namespace ).getPrefixedText();
+               }
+
+               // Dont send leading ':' to open search
+               if ( value.charAt( 0 ) === ':' ) {
+                       value = value.slice( 1 );
+               }
+
+               return new mw.Api().get( {
+                       action: 'opensearch',
+                       search: value,
+                       suggest: ''
+               } );
+       };
+
+       /**
+        * @inheritdoc
+        */
+       mw.widgets.TitleInputWidget.prototype.getLookupCacheDataFromResponse = function ( data ) {
+               return data[1] || [];
+       };
+
+       /**
+        * @inheritdoc
+        */
+       mw.widgets.TitleInputWidget.prototype.getLookupMenuOptionsFromData = function ( data ) {
+               var i, len, title, value,
+                       items = [],
+                       matchingPages = data;
+
+               // Matching pages
+               if ( matchingPages && matchingPages.length ) {
+                       for ( i = 0, len = matchingPages.length; i < len; i++ ) {
+                               title = new mw.Title( matchingPages[i] );
+                               if ( this.namespace !== null ) {
+                                       value = title.getRelativeText( this.namespace );
+                               } else {
+                                       value = title.getPrefixedText();
+                               }
+                               items.push( new OO.ui.MenuOptionWidget( {
+                                       data: value,
+                                       label: value
+                               } ) );
+                       }
+               }
+
+               return items;
+       };
+
+       /**
+        * Get title object corresponding to #getValue
+        *
+        * @returns {mw.Title|null} Title object, or null if value is invalid
+        */
+       mw.widgets.TitleInputWidget.prototype.getTitle = function () {
+               var title = this.getValue(),
+                       // mw.Title doesn't handle null well
+                       titleObj = mw.Title.newFromText( title, this.namespace !== null ? this.namespace : undefined );
+
+               return titleObj;
+       };
+
+       /**
+        * @inheritdoc
+        */
+       mw.widgets.TitleInputWidget.prototype.isValid = function () {
+               return $.Deferred().resolve( !!this.getTitle() ).promise();
+       };
+
+}( jQuery, mediaWiki ) );
diff --git a/resources/src/mediawiki.widgets/mw.widgets.js b/resources/src/mediawiki.widgets/mw.widgets.js
new file mode 100644 (file)
index 0000000..dc8b0cf
--- /dev/null
@@ -0,0 +1 @@
+mediaWiki.widgets = {};
index 7fc5c42..8d1faa6 100644 (file)
@@ -1,3 +1,4 @@
+/* jshint devel: true */
 ( function ( mw, $ ) {
        /**
         * @method confirmCloseWindow
@@ -7,11 +8,22 @@
         * work in most browsers.)
         *
         * This supersedes any previous onbeforeunload handler. If there was a handler before, it is
-        * restored when you execute the returned function.
+        * restored when you execute the returned release() function.
         *
         *     var allowCloseWindow = mw.confirmCloseWindow();
         *     // ... do stuff that can't be interrupted ...
-        *     allowCloseWindow();
+        *     allowCloseWindow.release();
+        *
+        * The second function returned is a trigger function to trigger the check and an alert
+        * window manually, e.g.:
+        *
+        *     var allowCloseWindow = mw.confirmCloseWindow();
+        *     // ... do stuff that can't be interrupted ...
+        *     if ( allowCloseWindow.trigger() ) {
+        *         // don't do anything (e.g. destroy the input field)
+        *     } else {
+        *         // do whatever you wanted to do
+        *     }
         *
         * @param {Object} [options]
         * @param {string} [options.namespace] Namespace for the event registration
         * @param {string} options.message.return The string message to show in the confirm dialog.
         * @param {Function} [options.test]
         * @param {boolean} [options.test.return=true] Whether to show the dialog to the user.
-        * @return {Function} Execute this when you want to allow the user to close the window
+        * @return {Object} An object of functions to work with this module
         */
        mw.confirmCloseWindow = function ( options ) {
                var savedUnloadHandler,
                        mainEventName = 'beforeunload',
-                       showEventName = 'pageshow';
+                       showEventName = 'pageshow',
+                       message;
 
                options = $.extend( {
                        message: mw.message( 'mwe-prevent-close' ).text(),
                        showEventName += '.' + options.namespace;
                }
 
+               if ( $.isFunction( options.message ) ) {
+                       message = options.message();
+               } else {
+                       message = options.message;
+               }
+
                $( window ).on( mainEventName, function () {
                        if ( options.test() ) {
                                // remove the handler while the alert is showing - otherwise breaks caching in Firefox (3?).
                                }, 1 );
 
                                // show an alert with this message
-                               if ( $.isFunction( options.message ) ) {
-                                       return options.message();
-                               } else {
-                                       return options.message;
-                               }
+                               return message;
                        }
                } ).on( showEventName, function () {
                        // Re-add onbeforeunload handler
                        }
                } );
 
-               // return the function they can use to stop this
-               return function () {
-                       $( window ).off( mainEventName + ' ' + showEventName );
+               /**
+                * Return the object with functions to release and manually trigger the confirm alert
+                * @ignore
+                */
+               return {
+                       /**
+                        * Remove all event listeners and don't show an alert anymore, if the user wants to leave
+                        * the page.
+                        * @ignore
+                        */
+                       release: function () {
+                               $( window ).off( mainEventName + ' ' + showEventName );
+                       },
+                       /**
+                        * Trigger the module's function manually: Check, if options.test() returns true and show
+                        * an alert to the user if he/she want to leave this page. Returns false, if options.test() returns
+                        * false or the user cancelled the alert window (~don't leave the page), true otherwise.
+                        * @ignore
+                        * @return boolean
+                        */
+                       trigger: function () {
+                               // use confirm to show the message to the user (if options.text() is true)
+                               if ( options.test() && !confirm( message ) ) {
+                                       // the user want to keep the actual page
+                                       return false;
+                               }
+                               // otherwise return true
+                               return true;
+                       }
                };
        };
 } )( mediaWiki, jQuery );
index 8f091e4..d260fca 100644 (file)
@@ -16,7 +16,7 @@
        mw.cookie = {
 
                /**
-                * Sets or deletes a cookie.
+                * Set or delete a cookie.
                 *
                 * While this is natural in JavaScript, contrary to `WebResponse#setcookie` in PHP, the
                 * default values for the `options` properties only apply if that property isn't set
                },
 
                /**
-                * Gets the value of a cookie.
+                * Get the value of a cookie.
                 *
                 * @param {string} key
                 * @param {string} [prefix=wgCookiePrefix] The prefix of the key. If `prefix` is
                 *   `undefined` or `null`, then `wgCookiePrefix` is used
                 * @param {Mixed} [defaultValue=null]
-                * @return {string} If the cookie exists, then the value of the
+                * @return {string|null|Mixed} If the cookie exists, then the value of the
                 *   cookie, otherwise `defaultValue`
                 */
                get: function ( key, prefix, defaultValue ) {
diff --git a/resources/src/mediawiki/mediawiki.htmlform.ooui.css b/resources/src/mediawiki/mediawiki.htmlform.ooui.css
new file mode 100644 (file)
index 0000000..92294c9
--- /dev/null
@@ -0,0 +1,20 @@
+/* OOUIHTMLForm styles */
+
+.mw-htmlform-ooui {
+       width: 50em;
+}
+
+.mw-htmlform-ooui .mw-htmlform-submit-buttons {
+       margin-top: 1em;
+}
+
+.mw-htmlform-ooui .mw-htmlform-field-HTMLCheckMatrix,
+.mw-htmlform-ooui .mw-htmlform-matrix,
+.mw-htmlform-ooui .mw-htmlform-matrix tr {
+       width: 100%;
+}
+
+.mw-htmlform-ooui .mw-htmlform-matrix tr td.first {
+       margin-right: 5%;
+       width: 39%;
+}
diff --git a/resources/src/mediawiki/mediawiki.htmlform.ooui.js b/resources/src/mediawiki/mediawiki.htmlform.ooui.js
new file mode 100644 (file)
index 0000000..48b8a87
--- /dev/null
@@ -0,0 +1,9 @@
+/*global OO */
+jQuery( function ( $ ) {
+
+       // Infuse everything with JavaScript widgets
+       $( '.mw-htmlform-ooui [data-ooui]' ).each( function () {
+               OO.ui.infuse( this.id );
+       } );
+
+} );
index 79939f6..66d560e 100644 (file)
                        magic: {
                                'SITENAME': mw.config.get( 'wgSiteName' )
                        },
-                       // This is a whitelist based on, but simpler than, Sanitizer.php.
+                       // Whitelist for allowed HTML elements in wikitext.
                        // Self-closing tags are not currently supported.
-                       allowedHtmlElements: [
-                               'b',
-                               'i'
-                       ],
+                       // Can be populated via setPrivateData().
+                       allowedHtmlElements: [],
                        // Key tag name, value allowed attributes for that tag.
                        // See Sanitizer::setupAttributeWhitelist
                        allowedHtmlCommonAttributes: [
 
        mw.jqueryMsg = {};
 
+       /**
+        * Initialize parser defaults.
+        *
+        * ResourceLoaderJqueryMsgModule calls this to provide default values from
+        * Sanitizer.php for allowed HTML elements. To override this data for individual
+        * parsers, pass the relevant options to mw.jqueryMsg.parser.
+        *
+        * @private
+        * @param {Object} data
+        */
+       mw.jqueryMsg.setParserDefaults = function ( data ) {
+               if ( data.allowedHtmlElements ) {
+                       parserDefaults.allowedHtmlElements = data.allowedHtmlElements;
+               }
+       };
+
        /**
         * Returns a function suitable for use as a global, to construct strings from the message key (and optional replacements).
         * e.g.
index e556ed8..ec3c0c3 100644 (file)
@@ -7,6 +7,7 @@
  * @alternateClassName mediaWiki
  * @singleton
  */
+/*global sha1 */
 ( function ( $ ) {
        'use strict';
 
                         *     {
                         *         'moduleName': {
                         *             // From startup mdoule
-                        *             'version': ############## (unix timestamp)
+                        *             'version': '################' (Hash)
                         *             'dependencies': ['required.foo', 'bar.also', ...], (or) function () {}
                         *             'group': 'somegroup', (or) null
                         *             'source': 'local', (or) 'anotherwiki'
                        }
 
                        /**
-                        * Zero-pad three numbers.
-                        *
-                        * @private
-                        * @param {number} a
-                        * @param {number} b
-                        * @param {number} c
-                        * @return {string}
-                        */
-                       function pad( a, b, c ) {
-                               return (
-                                       ( a < 10 ? '0' : '' ) + a +
-                                       ( b < 10 ? '0' : '' ) + b +
-                                       ( c < 10 ? '0' : '' ) + c
-                               );
-                       }
-
-                       /**
-                        * Convert UNIX timestamp to ISO8601 format.
-                        *
-                        * @private
-                        * @param {number} timestamp UNIX timestamp
+                        * @since 1.26
+                        * @param {Array} modules List of module names
+                        * @return {string} Hash of concatenated version hashes.
                         */
-                       function formatVersionNumber( timestamp ) {
-                               var     d = new Date();
-                               d.setTime( timestamp * 1000 );
-                               return [
-                                       pad( d.getUTCFullYear(), d.getUTCMonth() + 1, d.getUTCDate() ),
-                                       'T',
-                                       pad( d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds() ),
-                                       'Z'
-                               ].join( '' );
+                       function getCombinedVersion( modules ) {
+                               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 );
                        }
 
                        /**
                                 */
                                work: function () {
                                        var     reqBase, splits, maxQueryLength, q, b, bSource, bGroup, bSourceGroup,
-                                               source, concatSource, origBatch, group, g, i, modules, maxVersion, sourceLoadScript,
+                                               source, concatSource, origBatch, group, i, modules, sourceLoadScript,
                                                currReqBase, currReqBaseLength, moduleMap, l,
                                                lastDotIndex, prefix, suffix, bytesAdded, async;
 
                                                        // modules for this group from this source.
                                                        modules = splits[source][group];
 
-                                                       // Calculate the highest timestamp
-                                                       maxVersion = 0;
-                                                       for ( g = 0; g < modules.length; g += 1 ) {
-                                                               if ( registry[modules[g]].version > maxVersion ) {
-                                                                       maxVersion = registry[modules[g]].version;
-                                                               }
-                                                       }
-
-                                                       currReqBase = $.extend( { version: formatVersionNumber( maxVersion ) }, reqBase );
+                                                       currReqBase = $.extend( {
+                                                               version: getCombinedVersion( modules )
+                                                       }, reqBase );
                                                        // For user modules append a user name to the request.
                                                        if ( group === 'user' && mw.config.get( 'wgUserName' ) !== null ) {
                                                                currReqBase.user = mw.config.get( 'wgUserName' );
                                },
 
                                /**
-                                * Register a module, letting the system know about it and its
-                                * properties. Startup modules contain calls to this function.
+                                * Register a module, letting the system know about it and its properties.
+                                *
+                                * The startup modules contain calls to this method.
                                 *
                                 * When using multiple module registration by passing an array, dependencies that
                                 * are specified as references to modules within the array will be resolved before
                                 *
                                 * @param {string|Array} module Module name or array of arrays, each containing
                                 *  a list of arguments compatible with this method
-                                * @param {number} version Module version number as a timestamp (falls backs to 0)
+                                * @param {string|number} version Module version hash (falls backs to empty string)
+                                *  Can also be a number (timestamp) for compatibility with MediaWiki 1.25 and earlier.
                                 * @param {string|Array|Function} dependencies One string or array of strings of module
                                 *  names on which this module depends, or a function that returns that array.
                                 * @param {string} [group=null] Group which the module is in
                                        }
                                        // List the module as registered
                                        registry[module] = {
-                                               version: version !== undefined ? parseInt( version, 10 ) : 0,
+                                               version: version !== undefined ? String( version ) : '',
                                                dependencies: [],
                                                group: typeof group === 'string' ? group : null,
                                                source: typeof source === 'string' ? source : 'local',
                                        if ( !hasOwn.call( registry, module ) || registry[module].version === undefined ) {
                                                return null;
                                        }
-                                       return formatVersionNumber( registry[module].version );
+                                       return registry[module].version;
                                },
 
                                /**
                                        // Whether the store is in use on this page.
                                        enabled: null,
 
+                                       // Modules whose string representation exceeds 100 kB are ineligible
+                                       // for storage due to bug T66721.
+                                       MODULE_SIZE_MAX: 100000,
+
                                        // The contents of the store, mapping '[module name]@[version]' keys
                                        // to module implementations.
                                        items: {},
                                         * @param {Object} descriptor The module's descriptor as set in the registry
                                         */
                                        set: function ( module, descriptor ) {
-                                               var args, key;
+                                               var args, key, src;
 
                                                if ( !mw.loader.store.enabled ) {
                                                        return false;
                                                        return;
                                                }
 
-                                               mw.loader.store.items[key] = 'mw.loader.implement(' + args.join( ',' ) + ');';
+                                               src = 'mw.loader.implement(' + args.join( ',' ) + ');';
+                                               if ( src.length > mw.loader.store.MODULE_SIZE_MAX ) {
+                                                       return false;
+                                               }
+                                               mw.loader.store.items[key] = src;
                                                mw.loader.store.update();
                                        },
 
                                                        if ( mw.loader.store.getModuleKey( module ) !== key ) {
                                                                mw.loader.store.stats.expired++;
                                                                delete mw.loader.store.items[key];
+                                                       } else if ( mw.loader.store.items[key].length > mw.loader.store.MODULE_SIZE_MAX ) {
+                                                               // This value predates the enforcement of a size limit on cached modules.
+                                                               delete mw.loader.store.items[key];
                                                        }
                                                }
                                        },
diff --git a/resources/src/mediawiki/mediawiki.notification.common.css b/resources/src/mediawiki/mediawiki.notification.common.css
new file mode 100644 (file)
index 0000000..a1309c2
--- /dev/null
@@ -0,0 +1,7 @@
+.mw-notification-area {
+       position: absolute;
+}
+
+.mw-notification-area-floating {
+       position: fixed;
+}
index ae399ce..954de22 100644 (file)
@@ -1,5 +1,4 @@
 .mw-notification-area {
-       position: absolute;
        top: 0;
        right: 0;
        padding: 1em 1em 0 0;
@@ -8,10 +7,6 @@
        z-index: 10000;
 }
 
-.mw-notification-area-floating {
-       position: fixed;
-}
-
 .mw-notification {
        padding: 0.25em 1em;
        margin-bottom: 0.5em;
index f981b90..1f3b123 100644 (file)
                        $region: $searchRegion
                } );
 
-               // If the form includes any fallback fulltext search buttons, remove them
-               $searchInput.closest( 'form' ).find( '.mw-fallbackSearchButton' ).remove();
+               $searchInput.closest( 'form' )
+                       // track the form submit event
+                       .on( 'submit', function () {
+                               var context = $searchInput.data( 'suggestionsContext' );
+                               mw.track( 'mediawiki.searchSuggest', {
+                                       action: 'submit-form',
+                                       numberOfResults: context.config.suggestions.length
+                               } );
+                       } )
+                       // If the form includes any fallback fulltext search buttons, remove them
+                       .find( '.mw-fallbackSearchButton' ).remove();
        } );
 
 }( mediaWiki, jQuery ) );
index dcc3842..624986a 100644 (file)
@@ -5,7 +5,7 @@
                compile: function ( src ) {
                        return {
                                render: function ( data ) {
-                                       return $.parseHTML( Mustache.render( src, data ) );
+                                       return $( $.parseHTML( Mustache.render( src, data ) ) );
                                }
                        };
                }
index 45338ea..78627fc 100644 (file)
                                $tocList.slideDown( 'fast' );
                                $tocToggleLink.text( mw.msg( 'hidetoc' ) );
                                $toc.removeClass( 'tochidden' );
-                               $.cookie( 'mw_hidetoc', null, {
-                                       expires: 30,
-                                       path: '/'
-                               } );
+                               mw.cookie.set( 'hidetoc', null );
                        } else {
                                $tocList.slideUp( 'fast' );
                                $tocToggleLink.text( mw.msg( 'showtoc' ) );
                                $toc.addClass( 'tochidden' );
-                               $.cookie( 'mw_hidetoc', '1', {
-                                       expires: 30,
-                                       path: '/'
-                               } );
+                               mw.cookie.set( 'hidetoc', '1' );
                        }
                }
 
                // Only add it if there is a complete TOC and it doesn't
                // have a toggle added already
                if ( $toc.length && $tocTitle.length && $tocList.length && !$tocToggleLink.length ) {
-                       hideToc = $.cookie( 'mw_hidetoc' ) === '1';
+                       hideToc = mw.cookie.get( 'hidetoc' ) === '1';
 
                        $tocToggleLink = $( '<a href="#" id="togglelink"></a>' )
                                .text( hideToc ? mw.msg( 'showtoc' ) : mw.msg( 'hidetoc' ) )
index 817c856..ec34ce6 100644 (file)
                 * @return {string} Random session ID
                 */
                sessionId: function () {
-                       var sessionId = $.cookie( 'mediaWiki.user.sessionId' );
-                       if ( sessionId === undefined || sessionId === null ) {
+                       var sessionId = mw.cookie.get( 'mwuser-sessionId' );
+                       if ( sessionId === null ) {
                                sessionId = mw.user.generateRandomSessionId();
-                               $.cookie( 'mediaWiki.user.sessionId', sessionId, { expires: null, path: '/' } );
+                               mw.cookie.set( 'mwuser-sessionId', sessionId, { expires: null } );
                        }
                        return sessionId;
                },
                                expires: 30
                        }, options || {} );
 
-                       cookie = $.cookie( 'mediaWiki.user.bucket:' + key );
+                       cookie = mw.cookie.get( 'mwuser-bucket:' + key );
 
                        // Bucket information is stored as 2 integers, together as version:bucket like: "1:2"
                        if ( typeof cookie === 'string' && cookie.length > 2 && cookie.indexOf( ':' ) !== -1 ) {
                                        }
                                }
 
-                               $.cookie(
-                                       'mediaWiki.user.bucket:' + key,
+                               mw.cookie.set(
+                                       'mwuser-bucket:' + key,
                                        version + ':' + bucket,
-                                       { path: '/', expires: Number( options.expires ) }
+                                       { expires: Number( options.expires ) * 86400 }
                                );
                        }
 
index a62cc9d..80cc7d9 100644 (file)
@@ -52,6 +52,8 @@ function isCompatible( ua ) {
                ua.match( /Opera Mini/ ) ||
                // Nokia's Ovi Browser
                ua.match( /S40OviBrowser/ ) ||
+               // MeeGo's browser
+               ua.match( /MeeGo/ ) ||
                // Google Glass browser groks JS but UI is too limited
                ( ua.match( /Glass/ ) && ua.match( /Android/ ) )
        );
index 0b4e83a..35df8b4 100644 (file)
@@ -10,3 +10,8 @@ Feature: Create account
     | Special:CreateAccount         |
     | Special:UserLogin/signup      |
     | Special:UserLogin?type=signup |
+
+  Scenario: If no username is entered then an error is displayed
+    Given I go to Create account page at Special:CreateAccount
+    When I submit the form
+    Then an error message is displayed
index 03bff66..3d312f7 100644 (file)
@@ -16,3 +16,11 @@ end
 Then(/^form has Create account button$/) do
   expect(on(CreateAccountPage).create_account_element).to exist
 end
+
+When(/^I submit the form$/) do
+  on(CreateAccountPage).create_account
+end
+
+Then(/^an error message is displayed$/) do
+  expect(on(CreateAccountPage).error_message_element.class_name).to eq "errorbox"
+end
index 98b893a..9aa00cd 100644 (file)
@@ -15,4 +15,5 @@ class CreateAccountPage
   page_url '<%=params[:page_title]%>'
 
   button(:create_account, id: 'wpCreateaccount')
+  div(:error_message, id: 'mw-createacct-status-area')
 end
index 1cffa20..cc0df7a 100644 (file)
@@ -155,7 +155,7 @@ class ParserTest {
 
        static function setUp() {
                global $wgParser, $wgParserConf, $IP, $messageMemc, $wgMemc,
-                       $wgUser, $wgLang, $wgOut, $wgRequest, $wgStyleDirectory, $wgEnableParserCache,
+                       $wgUser, $wgLang, $wgOut, $wgRequest, $wgStyleDirectory,
                        $wgExtraNamespaces, $wgNamespaceAliases, $wgNamespaceProtection, $wgLocalFileRepo,
                        $wgExtraInterlanguageLinkPrefixes, $wgLocalInterwikis,
                        $parserMemc, $wgThumbnailScriptPath, $wgScriptPath,
@@ -211,7 +211,6 @@ class ParserTest {
                        $wgParserCacheType = CACHE_NONE;
                }
 
-               $wgEnableParserCache = false;
                DeferredUpdates::clearPendingUpdates();
                $wgMemc = wfGetMainCache(); // checks $wgMainCacheType
                $messageMemc = wfGetMessageCacheStorage();
index e965352..18d9aa8 100644 (file)
@@ -18293,6 +18293,61 @@ Raw: -{R|zh:China;zh-tw:Taiwan}-
 </p>
 !! end
 
+!! test
+Strings evaluating false shouldn't be ignored by Language converter (T51072)
+!! options
+language=zh variant=zh-cn
+!! input
+-{zh-cn:0;zh-sg:1;zh-tw:2;zh-hk:3}-
+!! result
+<p>0
+</p>
+!! end
+
+!! test
+Conversion rules from [numeric-only string] to [something else] (T48634)
+!! options
+language=zh variant=zh-cn
+!! input
+-{H|0=>zh-cn:B}--{H|0=>zh-cn:C;0=>zh-cn:D}--{H|0=>zh-hans:A}-012345-{A|zh-tw:0;zh-cn:E;}-012345
+!! result
+<p>D12345EE12345
+</p>
+!! end
+
+!! test
+Bidirectional converter rule entries with an empty value should be ignored (T53551)
+!! options
+language=zh variant=zh-cn
+!! input
+-{H|zh-cn:foo;zh-tw:;}-foobar
+!! result
+<p>foobar
+</p>
+!! end
+
+!! test
+Unidirectional converter rule entries with an empty "from" string should be ignored (T53551)
+!! options
+language=zh variant=zh-cn
+!! input
+-{H|=>zh-cn:foo;}-foobar
+!! result
+<p>foobar
+</p>
+!! end
+
+!! test
+Empty converter rule entries shouldn't be inserted into the conversion table (T53551)
+!! options
+language=zh variant=zh-cn
+!! input
+-{H|}-foobar
+!! result
+<p>foobar
+</p>
+!! end
+
 !! test
 Nested using of manual convert syntax
 !! options
index 5d21319..4d84025 100644 (file)
@@ -80,7 +80,7 @@ if ( isset( $options['file'] ) ) {
 }
 
 # Print out software version to assist with locating regressions
-$version = SpecialVersion::getVersion();
+$version = SpecialVersion::getVersion( 'nodb' );
 echo "This is MediaWiki version {$version}.\n\n";
 
 if ( isset( $options['fuzz'] ) ) {
index 72cac05..0ce056f 100644 (file)
@@ -716,9 +716,9 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
         * @param string $function
         */
        public function hideDeprecated( $function ) {
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                wfDeprecated( $function );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
        }
 
        /**
@@ -1002,9 +1002,9 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
 
                # This check may also protect against code injection in
                # case of broken installations.
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $haveDiff3 = $wgDiff3 && file_exists( $wgDiff3 );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( !$haveDiff3 ) {
                        $this->markTestSkipped( "Skip test, since diff3 is not configured" );
index deecb31..223019c 100644 (file)
@@ -25,27 +25,35 @@ abstract class ResourceLoaderTestCase extends MediaWikiTestCase {
                return $ctx;
        }
 
-       protected function setUp() {
-               parent::setUp();
-
-               ResourceLoader::clearCache();
-
-               $this->setMwGlobals( array(
+       public static function getSettings() {
+               return array(
                        // For ResourceLoader::inDebugMode since it doesn't have context
-                       'wgResourceLoaderDebug' => true,
+                       'ResourceLoaderDebug' => true,
 
                        // Avoid influence from wgInvalidateCacheOnLocalSettingsChange
-                       'wgCacheEpoch' => '20140101000000',
+                       'CacheEpoch' => '20140101000000',
 
                        // For ResourceLoader::__construct()
-                       'wgResourceLoaderSources' => array(),
+                       'ResourceLoaderSources' => array(),
 
                        // For wfScript()
-                       'wgScriptPath' => '/w',
-                       'wgScriptExtension' => '.php',
-                       'wgScript' => '/w/index.php',
-                       'wgLoadScript' => '/w/load.php',
-               ) );
+                       'ScriptPath' => '/w',
+                       'ScriptExtension' => '.php',
+                       'Script' => '/w/index.php',
+                       'LoadScript' => '/w/load.php',
+               );
+       }
+
+       protected function setUp() {
+               parent::setUp();
+
+               ResourceLoader::clearCache();
+
+               $globals = array();
+               foreach ( self::getSettings() as $key => $value ) {
+                       $globals[ 'wg' . $key ] = $value;
+               }
+               $this->setMwGlobals( $globals );
        }
 }
 
@@ -68,14 +76,14 @@ class ResourceLoaderTestModule extends ResourceLoaderModule {
        }
 
        public function getScript( ResourceLoaderContext $context ) {
-               return $this->script;
+               return $this->validateScriptFile( 'input', $this->script );
        }
 
        public function getStyles( ResourceLoaderContext $context ) {
                return array( '' => $this->styles );
        }
 
-       public function getDependencies() {
+       public function getDependencies( ResourceLoaderContext $context = null ) {
                return $this->dependencies;
        }
 
diff --git a/tests/phpunit/data/import/ImportLinkCacheIntegrationTest.xml b/tests/phpunit/data/import/ImportLinkCacheIntegrationTest.xml
new file mode 100644 (file)
index 0000000..8949f40
--- /dev/null
@@ -0,0 +1,43 @@
+<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.6/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.6/ http://www.mediawiki.org/xml/export-0.6.xsd" version="0.6" xml:lang="en-gb">
+  <siteinfo>
+    <sitename>MW-19</sitename>
+    <base>http://localhost:8080/w/index.php/Main_Page</base>
+    <generator>MediaWiki 1.19.7</generator>
+    <case>first-letter</case>
+  </siteinfo>
+  <page>
+    <title>Lorem ipsum</title>
+    <ns>0</ns>
+    <id>493</id>
+      <sha1>94lztkh4kgb0mvjr87iyjfq4iv7ltlh</sha1>
+    <revision>
+      <id>1358</id>
+      <timestamp>2014-04-04T22:55:04Z</timestamp>
+      <contributor>
+        <username>Tester</username>
+        <id>1</id>
+      </contributor>
+      <text xml:space="preserve" bytes="979">[[Has text::Lorem ipsum dolor sit amet consectetuer Maecenas adipiscing Pellentesque id sem]]. [[Has page::Elit Aliquam urna interdum]] morbi faucibus id tellus ipsum semper wisi. [[Has page::Platea enim hendrerit]] pellentesque consectetuer scelerisque Sed est felis felis quis. Auctor Proin In dolor id et ipsum vel at vitae ut. Praesent elit convallis Praesent aliquet pellentesque vel dolor pellentesque lacinia vitae. At tortor lacus Sed In interdum pulvinar et.
+
+[[Has number::1001]] [[Has quantity::10.25 km²]] [[Has date::1 Jan 2014]] [[Has Url::http://loremipsum.org/]] [[Has annotation uri::http://loremipsum.org/foaf.rdf]] [[Has email::Lorem@ipsum.org]] [[Has temperature::100 Â°C]] [[Has boolean::true]]
+
+[[Category:Lorem ipsum]]</text>
+    </revision>
+  </page>
+  <page>
+    <title>Category:Lorem ipsum</title>
+    <ns>14</ns>
+    <id>496</id>
+      <sha1>sir97j6uzt9ev2uyhaz1aj4i3spogih</sha1>
+    <revision>
+      <id>1355</id>
+      <timestamp>2014-04-04T22:29:18Z</timestamp>
+      <contributor>
+        <username>Tester</username>
+        <id>1</id>
+      </contributor>
+      <text xml:space="preserve" bytes="17">[[Category:Main]]</text>
+    </revision>
+  </page>
+</mediawiki>
+
index 745a5b4..eca5b39 100644 (file)
@@ -6,13 +6,18 @@ class FauxRequestTest extends MediaWikiTestCase {
         * @covers FauxRequest::getHeader
         */
        public function testGetSetHeader() {
-               $value = 'test/test';
+               $value = 'text/plain, text/html';
 
                $request = new FauxRequest();
-               $request->setHeader( 'Content-Type', $value );
+               $request->setHeader( 'Accept', $value );
 
-               $this->assertEquals( $request->getHeader( 'Content-Type' ), $value );
-               $this->assertEquals( $request->getHeader( 'CONTENT-TYPE' ), $value );
-               $this->assertEquals( $request->getHeader( 'content-type' ), $value );
+               $this->assertEquals( $request->getHeader( 'Nonexistent' ), false );
+               $this->assertEquals( $request->getHeader( 'Accept' ), $value );
+               $this->assertEquals( $request->getHeader( 'ACCEPT' ), $value );
+               $this->assertEquals( $request->getHeader( 'accept' ), $value );
+               $this->assertEquals(
+                       $request->getHeader( 'Accept', WebRequest::GETHEADER_LIST ),
+                       array( 'text/plain', 'text/html' )
+               );
        }
 }
index 4a974ba..39a0eff 100644 (file)
@@ -108,6 +108,13 @@ class FauxResponseTest extends MediaWikiTestCase {
                        'Third parameter overrides the HTTP/... header'
                );
 
+               $this->response->statusHeader( 210 );
+               $this->assertEquals(
+                       210,
+                       $this->response->getStatusCode(),
+                       'Handle statusHeader method'
+               );
+
                $this->response->header( 'Location: http://localhost/', false, 206 );
                $this->assertEquals(
                        206,
index 1e30273..5c28ece 100644 (file)
@@ -666,9 +666,9 @@ class GlobalTest extends MediaWikiTestCase {
        public function testWfMkdirParents() {
                // Should not return true if file exists instead of directory
                $fname = $this->getNewTempFile();
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $ok = wfMkdirParents( $fname );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                $this->assertFalse( $ok );
        }
 
diff --git a/tests/phpunit/includes/ImportLinkCacheIntegrationTest.php b/tests/phpunit/includes/ImportLinkCacheIntegrationTest.php
new file mode 100644 (file)
index 0000000..1433b89
--- /dev/null
@@ -0,0 +1,112 @@
+<?php
+/**
+ * Integration test that checks import success and
+ * LinkCache integration.
+ *
+ * @group medium
+ * @group Database
+ *
+ * @author mwjames
+ */
+class ImportLinkCacheIntegrationTest extends MediaWikiTestCase {
+
+       private $importStreamSource;
+
+       protected function setUp() {
+               parent::setUp();
+
+               $file = dirname( __DIR__ ) . '/data/import/ImportLinkCacheIntegrationTest.xml';
+
+               $this->importStreamSource = ImportStreamSource::newFromFile( $file );
+
+               if ( !$this->importStreamSource->isGood() ) {
+                       throw new Exception( "Import source for {$file} failed" );
+               }
+       }
+
+       public function testImportForImportSource() {
+
+               $this->doImport( $this->importStreamSource );
+
+               // Imported title
+               $loremIpsum = Title::newFromText( 'Lorem ipsum' );
+
+               $this->assertSame(
+                       $loremIpsum->getArticleID(),
+                       $loremIpsum->getArticleID( Title::GAID_FOR_UPDATE )
+               );
+
+               $categoryLoremIpsum = Title::newFromText( 'Category:Lorem ipsum' );
+
+               $this->assertSame(
+                       $categoryLoremIpsum->getArticleID(),
+                       $categoryLoremIpsum->getArticleID( Title::GAID_FOR_UPDATE )
+               );
+
+               $page = new WikiPage( $loremIpsum );
+               $page->doDeleteArticle( 'import test: delete page' );
+
+               $page = new WikiPage( $categoryLoremIpsum );
+               $page->doDeleteArticle( 'import test: delete page' );
+       }
+
+       /**
+        * @depends testImportForImportSource
+        */
+       public function testReImportForImportSource() {
+
+               $this->doImport( $this->importStreamSource );
+
+               // ReImported title
+               $loremIpsum = Title::newFromText( 'Lorem ipsum' );
+
+               $this->assertSame(
+                       $loremIpsum->getArticleID(),
+                       $loremIpsum->getArticleID( Title::GAID_FOR_UPDATE )
+               );
+
+               $categoryLoremIpsum = Title::newFromText( 'Category:Lorem ipsum' );
+
+               $this->assertSame(
+                       $categoryLoremIpsum->getArticleID(),
+                       $categoryLoremIpsum->getArticleID( Title::GAID_FOR_UPDATE )
+               );
+       }
+
+       private function doImport( $importStreamSource ) {
+
+               $importer = new WikiImporter(
+                       $importStreamSource->value,
+                       ConfigFactory::getDefaultInstance()->makeConfig( 'main' )
+               );
+               $importer->setDebug( true );
+
+               $reporter = new ImportReporter(
+                       $importer,
+                       false,
+                       '',
+                       false
+               );
+
+               $reporter->setContext( new RequestContext() );
+               $reporter->open();
+               $exception = false;
+
+               try {
+                       $importer->doImport();
+               } catch ( Exception $e ) {
+                       $exception = $e;
+               }
+
+               $result = $reporter->close();
+
+               $this->assertFalse(
+                       $exception
+               );
+
+               $this->assertTrue(
+                       $result->isGood()
+               );
+       }
+
+}
index 742d382..3c45f30 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-class MimeMagicTest extends MediaWikiTestCase {
+class MimeMagicTest extends PHPUnit_Framework_TestCase {
 
        /** @var MimeMagic */
        private $mimeMagic;
index 14911f0..f47e74e 100644 (file)
@@ -5,7 +5,7 @@
  * @todo all test methods in this class should be refactored and...
  *    use a single test method and a single data provider...
  */
-class SanitizerValidateEmailTest extends MediaWikiTestCase {
+class SanitizerValidateEmailTest extends PHPUnit_Framework_TestCase {
 
        private function checkEmail( $addr, $expected = true, $msg = '' ) {
                if ( $msg == '' ) {
index 0f7069a..6654a5b 100644 (file)
@@ -4,7 +4,7 @@
  * @author Adam Shorland
  * @covers TitleArrayFromResult
  */
-class TitleArrayFromResultTest extends MediaWikiTestCase {
+class TitleArrayFromResultTest extends PHPUnit_Framework_TestCase {
 
        private function getMockResultWrapper( $row = null, $numRows = 1 ) {
                $resultWrapper = $this->getMockBuilder( 'ResultWrapper' )
index bcdb45a..e186438 100644 (file)
@@ -323,4 +323,17 @@ class TitleMethodsTest extends MediaWikiLangTestCase {
                $title = Title::newFromText( $text );
                $this->assertEquals( $expected, $title->getOtherPage()->getPrefixedText() );
        }
+
+       public function testClearCaches() {
+               $linkCache = LinkCache::singleton();
+
+               $title1 = Title::newFromText( 'Foo' );
+               $linkCache->addGoodLinkObj( 23, $title1 );
+
+               Title::clearCaches();
+
+               $title2 = Title::newFromText( 'Foo' );
+               $this->assertNotSame( $title1, $title2, 'title cache should be empty' );
+               $this->assertEquals( 0, $linkCache->getGoodLinkID( 'Foo' ), 'link cache should be empty' );
+       }
 }
index 370b5b2..a1f8361 100644 (file)
@@ -307,9 +307,30 @@ class UserTest extends MediaWikiTestCase {
         */
        public function testCheckPasswordValidity() {
                $this->setMwGlobals( array(
-                       'wgMinimalPasswordLength' => 6,
-                       'wgMaximalPasswordLength' => 30,
+                       'wgPasswordPolicy' => array(
+                               'policies' => array(
+                                       'sysop' => array(
+                                               'MinimalPasswordLength' => 8,
+                                               'MinimumPasswordLengthToLogin' => 1,
+                                               'PasswordCannotMatchUsername' => 1,
+                                       ),
+                                       'default' => array(
+                                               'MinimalPasswordLength' => 6,
+                                               'PasswordCannotMatchUsername' => true,
+                                               'PasswordCannotMatchBlacklist' => true,
+                                               'MaximalPasswordLength' => 30,
+                                       ),
+                               ),
+                               'checks' => array(
+                                       'MinimalPasswordLength' => 'PasswordPolicyChecks::checkMinimalPasswordLength',
+                                       'MinimumPasswordLengthToLogin' => 'PasswordPolicyChecks::checkMinimumPasswordLengthToLogin',
+                                       'PasswordCannotMatchUsername' => 'PasswordPolicyChecks::checkPasswordCannotMatchUsername',
+                                       'PasswordCannotMatchBlacklist' => 'PasswordPolicyChecks::checkPasswordCannotMatchBlacklist',
+                                       'MaximalPasswordLength' => 'PasswordPolicyChecks::checkMaximalPasswordLength',
+                               ),
+                       ),
                ) );
+
                $user = User::newFromName( 'Useruser' );
                // Sanity
                $this->assertTrue( $user->isValidPassword( 'Password1234' ) );
index 0dbb010..21819b7 100644 (file)
@@ -3,7 +3,7 @@
 /**
  * @group Xml
  */
-class XmlJs extends MediaWikiTestCase {
+class XmlJs extends PHPUnit_Framework_TestCase {
 
        /**
         * @covers XmlJsCode::__construct
index f0d8455..1ed571c 100644 (file)
@@ -1124,6 +1124,76 @@ class ApiResultTest extends MediaWikiTestCase {
                $data[ApiResult::META_CONTENT] = 'bar';
        }
 
+       /**
+        * @covers ApiResult
+        */
+       public function testAddMetadataToResultVars() {
+               $arr = array(
+                       'a' => "foo",
+                       'b' => false,
+                       'c' => 10,
+                       'sequential_numeric_keys' => array( 'a', 'b', 'c' ),
+                       'non_sequential_numeric_keys' => array( 'a', 'b', 4 => 'c' ),
+                       'string_keys' => array(
+                               'one' => 1,
+                               'two' => 2
+                       ),
+                       'object_sequential_keys' => (object)array( 'a', 'b', 'c' ),
+                       '_type' => "should be overwritten in result",
+               );
+               $this->assertSame( array(
+                       ApiResult::META_TYPE => 'kvp',
+                       ApiResult::META_KVP_KEY_NAME => 'key',
+                       ApiResult::META_PRESERVE_KEYS => array(
+                               'a', 'b', 'c',
+                               'sequential_numeric_keys', 'non_sequential_numeric_keys',
+                               'string_keys', 'object_sequential_keys'
+                       ),
+                       ApiResult::META_BC_BOOLS => array( 'b' ),
+                       ApiResult::META_INDEXED_TAG_NAME => 'var',
+                       'a' => "foo",
+                       'b' => false,
+                       'c' => 10,
+                       'sequential_numeric_keys' => array(
+                               ApiResult::META_TYPE => 'array',
+                               ApiResult::META_BC_BOOLS => array(),
+                               ApiResult::META_INDEXED_TAG_NAME => 'value',
+                               0 => 'a',
+                               1 => 'b',
+                               2 => 'c',
+                       ),
+                       'non_sequential_numeric_keys' => array(
+                               ApiResult::META_TYPE => 'kvp',
+                               ApiResult::META_KVP_KEY_NAME => 'key',
+                               ApiResult::META_PRESERVE_KEYS => array( 0, 1, 4 ),
+                               ApiResult::META_BC_BOOLS => array(),
+                               ApiResult::META_INDEXED_TAG_NAME => 'var',
+                               0 => 'a',
+                               1 => 'b',
+                               4 => 'c',
+                       ),
+                       'string_keys' => array(
+                               ApiResult::META_TYPE => 'kvp',
+                               ApiResult::META_KVP_KEY_NAME => 'key',
+                               ApiResult::META_PRESERVE_KEYS => array( 'one', 'two' ),
+                               ApiResult::META_BC_BOOLS => array(),
+                               ApiResult::META_INDEXED_TAG_NAME => 'var',
+                               'one' => 1,
+                               'two' => 2,
+                       ),
+                       'object_sequential_keys' => array(
+                               ApiResult::META_TYPE => 'kvp',
+                               ApiResult::META_KVP_KEY_NAME => 'key',
+                               ApiResult::META_PRESERVE_KEYS => array( 0, 1, 2 ),
+                               ApiResult::META_BC_BOOLS => array(),
+                               ApiResult::META_INDEXED_TAG_NAME => 'var',
+                               0 => 'a',
+                               1 => 'b',
+                               2 => 'c',
+                       ),
+               ), ApiResult::addMetadataToResultVars( $arr ) );
+       }
+
        /**
         * @covers ApiResult
         */
index da62bb0..21345ac 100644 (file)
@@ -105,6 +105,7 @@ abstract class ApiTestCase extends MediaWikiLangTestCase {
 
                $wgRequest = new FauxRequest( $params, true, $session );
                RequestContext::getMain()->setRequest( $wgRequest );
+               RequestContext::getMain()->setUser( $wgUser );
 
                // set up local environment
                $context = $this->apiContext->newTestContext( $wgRequest, $wgUser );
index f74fc35..b7f7d10 100644 (file)
@@ -451,9 +451,9 @@ class ApiUploadTest extends ApiTestCaseUpload {
                $chunkSessionKey = false;
                $resultOffset = 0;
                // Open the file:
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $handle = fopen( $filePath, "r" );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
 
                if ( $handle === false ) {
                        $this->markTestIncomplete( "could not open file: $filePath" );
@@ -461,9 +461,9 @@ class ApiUploadTest extends ApiTestCaseUpload {
 
                while ( !feof( $handle ) ) {
                        // Get the current chunk
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $chunkData = fread( $handle, $chunkSize );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
 
                        // Upload the current chunk into the $_FILE object:
                        $this->fakeUploadChunk( 'chunk', 'blob', $mimeType, $chunkData );
index 442e9f9..9c59e65 100644 (file)
@@ -52,7 +52,7 @@ class MessageCacheTest extends MediaWikiLangTestCase {
                $this->makePage( 'MessageCacheTest-FullKeyTest', 'ru' );
 
                // In content language -- get base if no derivative
-               $this->makePage( 'FallbackLanguageTest-NoDervContLang', 'de', 'de/none', false );
+               $this->makePage( 'FallbackLanguageTest-NoDervContLang', 'de', 'de/none' );
        }
 
        /**
@@ -61,15 +61,14 @@ class MessageCacheTest extends MediaWikiLangTestCase {
         * @param string $title Title of page to be created
         * @param string $lang Language and content of the created page
         * @param string|null $content Content of the created page, or null for a generic string
-        * @param bool $createSubPage Set to false if a root page should be created
         */
-       protected function makePage( $title, $lang, $content = null, $createSubPage = true ) {
+       protected function makePage( $title, $lang, $content = null ) {
                global $wgContLang;
 
                if ( $content === null ) {
                        $content = $lang;
                }
-               if ( $lang !== $wgContLang->getCode() || $createSubPage ) {
+               if ( $lang !== $wgContLang->getCode() ) {
                        $title = "$title/$lang";
                }
 
index e39c382..ab35453 100644 (file)
@@ -297,16 +297,22 @@ class RecentChangeTest extends MediaWikiTestCase {
                $sep = $this->context->msg( 'colon-separator' )->text();
 
                # import/upload
+               $msg = $this->context->msg( 'import-logentry-upload', 'SomeTitle' )->plain() .
+                       $sep .
+                       $this->user_comment;
                $this->assertIRCComment(
-                       $this->context->msg( 'import-logentry-upload', 'SomeTitle' )->plain() . $sep . $this->user_comment,
+                       $msg,
                        'import', 'upload',
                        array(),
                        $this->user_comment
                );
 
                # import/interwiki
+               $msg = $this->context->msg( 'import-logentry-interwiki', 'SomeTitle' )->plain() .
+                       $sep .
+                       $this->user_comment;
                $this->assertIRCComment(
-                       $this->context->msg( 'import-logentry-interwiki', 'SomeTitle' )->plain() . $sep . $this->user_comment,
+                       $msg,
                        'import', 'interwiki',
                        array(),
                        $this->user_comment
@@ -336,6 +342,51 @@ class RecentChangeTest extends MediaWikiTestCase {
        }
        */
 
+       /**
+        * @covers RecentChange::parseParams
+        */
+       public function testParseParams() {
+               $params = array(
+                       'root' => array(
+                               'A' => 1,
+                               'B' => 'two'
+                       )
+               );
+
+               $this->assertParseParams(
+                       $params,
+                       'a:1:{s:4:"root";a:2:{s:1:"A";i:1;s:1:"B";s:3:"two";}}'
+               );
+
+               $this->assertParseParams(
+                       null,
+                       null
+               );
+
+               $this->assertParseParams(
+                       null,
+                       serialize( false )
+               );
+
+               $this->assertParseParams(
+                       null,
+                       'not-an-array'
+               );
+       }
+
+       /**
+        * @param array $expectedParseParams
+        * @param string|null $rawRcParams
+        */
+       protected function assertParseParams( $expectedParseParams, $rawRcParams ) {
+               $rc = new RecentChange;
+               $rc->setAttribs( array( 'rc_params' => $rawRcParams ) );
+
+               $actualParseParams = $rc->parseParams();
+
+               $this->assertEquals( $expectedParseParams, $actualParseParams );
+       }
+
        /**
         * @param string $expected Expected IRC text without colors codes
         * @param string $type Log type (move, delete, suppress, patrol ...)
index 63743eb..8178c12 100644 (file)
@@ -22,6 +22,7 @@ class ContentHandlerTest extends MediaWikiTestCase {
                        'wgContentHandlers' => array(
                                CONTENT_MODEL_WIKITEXT => 'WikitextContentHandler',
                                CONTENT_MODEL_JAVASCRIPT => 'JavaScriptContentHandler',
+                               CONTENT_MODEL_JSON => 'JsonContentHandler',
                                CONTENT_MODEL_CSS => 'CssContentHandler',
                                CONTENT_MODEL_TEXT => 'TextContentHandler',
                                'testing' => 'DummyContentHandlerForTesting',
@@ -51,19 +52,27 @@ class ContentHandlerTest extends MediaWikiTestCase {
                return array(
                        array( 'Help:Foo', CONTENT_MODEL_WIKITEXT ),
                        array( 'Help:Foo.js', CONTENT_MODEL_WIKITEXT ),
+                       array( 'Help:Foo.css', CONTENT_MODEL_WIKITEXT ),
+                       array( 'Help:Foo.json', CONTENT_MODEL_WIKITEXT ),
                        array( 'Help:Foo/bar.js', CONTENT_MODEL_WIKITEXT ),
                        array( 'User:Foo', CONTENT_MODEL_WIKITEXT ),
                        array( 'User:Foo.js', CONTENT_MODEL_WIKITEXT ),
+                       array( 'User:Foo.css', CONTENT_MODEL_WIKITEXT ),
+                       array( 'User:Foo.json', CONTENT_MODEL_WIKITEXT ),
                        array( 'User:Foo/bar.js', CONTENT_MODEL_JAVASCRIPT ),
                        array( 'User:Foo/bar.css', CONTENT_MODEL_CSS ),
+                       array( 'User:Foo/bar.json', CONTENT_MODEL_JSON ),
+                       array( 'User:Foo/bar.json.nope', CONTENT_MODEL_WIKITEXT ),
                        array( 'User talk:Foo/bar.css', CONTENT_MODEL_WIKITEXT ),
                        array( 'User:Foo/bar.js.xxx', CONTENT_MODEL_WIKITEXT ),
                        array( 'User:Foo/bar.xxx', CONTENT_MODEL_WIKITEXT ),
                        array( 'MediaWiki:Foo.js', CONTENT_MODEL_JAVASCRIPT ),
-                       array( 'MediaWiki:Foo.css', CONTENT_MODEL_CSS ),
                        array( 'MediaWiki:Foo.JS', CONTENT_MODEL_WIKITEXT ),
-                       array( 'MediaWiki:Foo.CSS', CONTENT_MODEL_WIKITEXT ),
+                       array( 'MediaWiki:Foo.css', CONTENT_MODEL_CSS ),
                        array( 'MediaWiki:Foo.css.xxx', CONTENT_MODEL_WIKITEXT ),
+                       array( 'MediaWiki:Foo.CSS', CONTENT_MODEL_WIKITEXT ),
+                       array( 'MediaWiki:Foo.json', CONTENT_MODEL_JSON ),
+                       array( 'MediaWiki:Foo.JSON', CONTENT_MODEL_WIKITEXT ),
                );
        }
 
index 1abb47e..7280a97 100644 (file)
@@ -12,11 +12,11 @@ class MWDebugTest extends MediaWikiTestCase {
                }
                /** Clear log before each test */
                MWDebug::clearLog();
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
        }
 
        protected function tearDown() {
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                parent::tearDown();
        }
 
index 5348c85..df4213a 100644 (file)
@@ -1,8 +1,9 @@
 <?php
 
 class DeferredUpdatesTest extends MediaWikiTestCase {
+       public function testDoUpdatesWeb() {
+               $this->setMwGlobals( 'wgCommandLineMode', false );
 
-       public function testDoUpdates() {
                $updates = array(
                        '1' => 'deferred update 1',
                        '2' => 'deferred update 2',
@@ -35,4 +36,38 @@ class DeferredUpdatesTest extends MediaWikiTestCase {
                DeferredUpdates::doUpdates();
        }
 
+       public function testDoUpdatesCLI() {
+               $this->setMwGlobals( 'wgCommandLineMode', true );
+
+               $updates = array(
+                       '1' => 'deferred update 1',
+                       '2' => 'deferred update 2',
+                       '2-1' => 'deferred update 1 within deferred update 2',
+                       '3' => 'deferred update 3',
+               );
+               DeferredUpdates::addCallableUpdate(
+                       function () use ( $updates ) {
+                               echo $updates['1'];
+                       }
+               );
+               DeferredUpdates::addCallableUpdate(
+                       function () use ( $updates ) {
+                               echo $updates['2'];
+                               DeferredUpdates::addCallableUpdate(
+                                       function () use ( $updates ) {
+                                               echo $updates['2-1'];
+                                       }
+                               );
+                       }
+               );
+               DeferredUpdates::addCallableUpdate(
+                       function () use ( $updates ) {
+                               echo $updates[3];
+                       }
+               );
+
+               $this->expectOutputString( implode( '', $updates ) );
+
+               DeferredUpdates::doUpdates();
+       }
 }
diff --git a/tests/phpunit/includes/exception/HttpErrorTest.php b/tests/phpunit/includes/exception/HttpErrorTest.php
new file mode 100644 (file)
index 0000000..66fe90c
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+
+/**
+ * @todo tests for HttpError::report
+ *
+ * @covers HttpError
+ */
+class HttpErrorTest extends MediaWikiTestCase {
+
+       public function testIsLoggable() {
+               $httpError = new HttpError( 500, 'server error!' );
+               $this->assertFalse( $httpError->isLoggable(), 'http error is not loggable' );
+       }
+
+       public function testGetStatusCode() {
+               $httpError = new HttpError( 500, 'server error!' );
+               $this->assertEquals( 500, $httpError->getStatusCode() );
+       }
+
+       /**
+        * @dataProvider getHtmlProvider
+        */
+       public function testGetHtml( array $expected, $content, $header ) {
+               $httpError = new HttpError( 500, $content, $header );
+               $errorHtml = $httpError->getHtml();
+
+               foreach ( $expected as $key => $html ) {
+                       $this->assertContains( $html, $errorHtml, $key );
+               }
+       }
+
+       public function getHtmlProvider() {
+               return array(
+                       array(
+                               array(
+                                       'head html' => '<head><title>Server Error 123</title></head>',
+                                       'body html' => '<body><h1>Server Error 123</h1>'
+                                               . '<p>a server error!</p></body>'
+                               ),
+                               'a server error!',
+                               'Server Error 123'
+                       ),
+                       array(
+                               array(
+                                       'head html' => '<head><title>loginerror</title></head>',
+                                       'body html' => '<body><h1>loginerror</h1>'
+                                       . '<p>suspicious-userlogout</p></body>'
+                               ),
+                               new RawMessage( 'suspicious-userlogout' ),
+                               new RawMessage( 'loginerror' )
+                       ),
+                       array(
+                               array(
+                                       'head html' => '<html><head><title>Internal Server Error</title></head>',
+                                       'body html' => '<body><h1>Internal Server Error</h1>'
+                                               . '<p>a server error!</p></body></html>'
+                               ),
+                               'a server error!',
+                               null
+                       )
+               );
+       }
+
+
+}
index b5ea7b7..a91cc95 100644 (file)
@@ -23,11 +23,11 @@ class ArrayUtilsTest extends PHPUnit_Framework_TestCase {
        }
 
        function provideFindLowerBound() {
-               $self = $this;
-               $indexValueCallback = function ( $size ) use ( $self ) {
-                       return function ( $val ) use ( $self, $size ) {
-                               $self->assertTrue( $val >= 0 );
-                               $self->assertTrue( $val < $size );
+               $that = $this;
+               $indexValueCallback = function ( $size ) use ( $that ) {
+                       return function ( $val ) use ( $that, $size ) {
+                               $that->assertTrue( $val >= 0 );
+                               $that->assertTrue( $val < $size );
                                return $val;
                        };
                };
index 149a28c..13908b9 100644 (file)
@@ -152,9 +152,9 @@ class JavaScriptMinifierTest extends PHPUnit_Framework_TestCase {
 
                // JSMin+'s parser will throw an exception if output is not valid JS.
                // suppression of warnings needed for stupid crap
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $parser = new JSParser();
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                $parser->parse( $minified, 'minify-test.js', 1 );
 
                $this->assertEquals(
index 4300197..cec662a 100644 (file)
@@ -70,7 +70,7 @@ class ProcessCacheLRUTest extends PHPUnit_Framework_TestCase {
 
        /**
         * @dataProvider provideInvalidConstructorArg
-        * @expectedException UnexpectedValueException
+        * @expectedException Wikimedia\Assert\ParameterAssertionException
         * @covers ProcessCacheLRU::__construct
         */
        public function testConstructorGivenInvalidValue( $maxSize ) {
index e58711f..cab6794 100644 (file)
@@ -17,7 +17,7 @@ abstract class LogFormatterTestCase extends MediaWikiLangTestCase {
                        'Action text is equal to expected text'
                );
 
-               $this->assertEquals(
+               $this->assertSame( // ensure types and array key order
                        $extra['api'],
                        self::removeApiMetaData( $formatter->formatParametersForApi() ),
                        'Api log params is equal to expected array'
index 5a0b906..2ff0ddf 100644 (file)
@@ -25,9 +25,9 @@ class MergeLogFormatterTest extends LogFormatterTestCase {
                                array(
                                        'text' => 'User merged OldPage into NewPage (revisions up to 16:07, 4 August 2014)',
                                        'api' => array(
-                                               'mergepoint' => '2014-08-04T16:07:10Z',
                                                'dest_ns' => 0,
                                                'dest_title' => 'NewPage',
+                                               'mergepoint' => '2014-08-04T16:07:10Z',
                                        ),
                                ),
                        ),
@@ -49,9 +49,9 @@ class MergeLogFormatterTest extends LogFormatterTestCase {
                                        'legacy' => true,
                                        'text' => 'User merged OldPage into NewPage (revisions up to 16:07, 4 August 2014)',
                                        'api' => array(
-                                               'mergepoint' => '2014-08-04T16:07:10Z',
                                                'dest_ns' => 0,
                                                'dest_title' => 'NewPage',
+                                               'mergepoint' => '2014-08-04T16:07:10Z',
                                        ),
                                ),
                        ),
index 13dd839..5b03370 100644 (file)
@@ -71,7 +71,7 @@ class NewUsersLogFormatterTest extends LogFormatterTestCase {
                                        'namespace' => NS_USER,
                                        'title' => 'New user',
                                        'params' => array(
-                                               '4::userid' => '1',
+                                               '4::userid' => 1,
                                        ),
                                ),
                                array(
@@ -109,7 +109,7 @@ class NewUsersLogFormatterTest extends LogFormatterTestCase {
                                        'namespace' => NS_USER,
                                        'title' => 'UTSysop',
                                        'params' => array(
-                                               '4::userid' => '1',
+                                               '4::userid' => 1,
                                        ),
                                ),
                                array(
@@ -147,7 +147,7 @@ class NewUsersLogFormatterTest extends LogFormatterTestCase {
                                        'namespace' => NS_USER,
                                        'title' => 'UTSysop',
                                        'params' => array(
-                                               '4::userid' => '1',
+                                               '4::userid' => 1,
                                        ),
                                ),
                                array(
@@ -185,7 +185,7 @@ class NewUsersLogFormatterTest extends LogFormatterTestCase {
                                        'namespace' => NS_USER,
                                        'title' => 'New user',
                                        'params' => array(
-                                               '4::userid' => '1',
+                                               '4::userid' => 1,
                                        ),
                                ),
                                array(
index ebec8f6..53671d4 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 
+use Psr\Log\NullLogger;
+
 /**
  * @group Media
  */
@@ -11,7 +13,8 @@ class XMPValidateTest extends MediaWikiTestCase {
         */
        public function testValidateDate( $value, $expected ) {
                // The method should modify $value.
-               XMPValidate::validateDate( array(), $value, true );
+               $validate = new XMPValidate( new NullLogger() );
+               $validate->validateDate( array(), $value, true );
                $this->assertEquals( $expected, $value );
        }
 
index 3161d18..3e284c8 100644 (file)
@@ -86,13 +86,22 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                $cKey2 = wfRandomString();
 
                $wasSet = 0;
-               $func = function() use ( &$wasSet, $value ) { ++$wasSet; return $value; };
+               $func = function( $old, &$ttl ) use ( &$wasSet, $value ) {
+                       ++$wasSet;
+                       $ttl = 20; // override with another value
+                       return $value;
+               };
 
                $wasSet = 0;
                $v = $cache->getWithSetCallback( $key, $func, 30, array(), array( 'lockTSE' => 5 ) );
                $this->assertEquals( $v, $value );
                $this->assertEquals( 1, $wasSet, "Value regenerated" );
 
+               $curTTL = null;
+               $v = $cache->get( $key, $curTTL );
+               $this->assertLessThanOrEqual( 20, $curTTL, 'Current TTL between 19-20 (overriden)' );
+               $this->assertGreaterThanOrEqual( 19, $curTTL, 'Current TTL between 19-20 (overriden)' );
+
                $wasSet = 0;
                $v = $cache->getWithSetCallback( $key, $func, 30, array(), array( 'lockTSE' => 5 ) );
                $this->assertEquals( $v, $value );
index 91aad10..c7a3103 100644 (file)
@@ -91,7 +91,7 @@ class NewParserTest extends MediaWikiTestCase {
                );
                $tmpGlobals['wgForeignFileRepos'] = array();
                $tmpGlobals['wgDefaultExternalStore'] = array();
-               $tmpGlobals['wgEnableParserCache'] = false;
+               $tmpGlobals['wgParserCacheType'] = CACHE_NONE;
                $tmpGlobals['wgCapitalLinks'] = true;
                $tmpGlobals['wgNoFollowLinks'] = true;
                $tmpGlobals['wgNoFollowDomainExceptions'] = array();
diff --git a/tests/phpunit/includes/password/PasswordPolicyChecksTest.php b/tests/phpunit/includes/password/PasswordPolicyChecksTest.php
new file mode 100644 (file)
index 0000000..af34282
--- /dev/null
@@ -0,0 +1,136 @@
+<?php
+/**
+ * Testing password-policy check functions
+ *
+ * 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 PasswordPolicyChecksTest extends MediaWikiTestCase {
+
+       /**
+        * @covers PasswordPolicyChecks::checkMinimalPasswordLength
+        */
+       public function testCheckMinimalPasswordLength() {
+               $statusOK = PasswordPolicyChecks::checkMinimalPasswordLength(
+                       3, // policy value
+                       User::newFromName( 'user' ), // User
+                       'password'  // password
+               );
+               $this->assertTrue( $statusOK->isGood(), 'Password is longer than minimal policy' );
+               $statusShort = PasswordPolicyChecks::checkMinimalPasswordLength(
+                       10, // policy value
+                       User::newFromName( 'user' ), // User
+                       'password'  // password
+               );
+               $this->assertFalse(
+                       $statusShort->isGood(),
+                       'Password is shorter than minimal policy'
+               );
+               $this->assertTrue(
+                       $statusShort->isOk(),
+                       'Password is shorter than minimal policy, not fatal'
+               );
+       }
+
+       /**
+        * @covers PasswordPolicyChecks::checkMinimumPasswordLengthToLogin
+        */
+       public function testCheckMinimumPasswordLengthToLogin() {
+               $statusOK = PasswordPolicyChecks::checkMinimumPasswordLengthToLogin(
+                       3, // policy value
+                       User::newFromName( 'user' ), // User
+                       'password'  // password
+               );
+               $this->assertTrue( $statusOK->isGood(), 'Password is longer than minimal policy' );
+               $statusShort = PasswordPolicyChecks::checkMinimumPasswordLengthToLogin(
+                       10, // policy value
+                       User::newFromName( 'user' ), // User
+                       'password'  // password
+               );
+               $this->assertFalse(
+                       $statusShort->isGood(),
+                       'Password is shorter than minimum login policy'
+               );
+               $this->assertFalse(
+                       $statusShort->isOk(),
+                       'Password is shorter than minimum login policy, fatal'
+               );
+       }
+
+       /**
+        * @covers PasswordPolicyChecks::checkMaximalPasswordLength
+        */
+       public function testCheckMaximalPasswordLength() {
+               $statusOK = PasswordPolicyChecks::checkMaximalPasswordLength(
+                       100, // policy value
+                       User::newFromName( 'user' ), // User
+                       'password'  // password
+               );
+               $this->assertTrue( $statusOK->isGood(), 'Password is shorter than maximal policy' );
+               $statusLong = PasswordPolicyChecks::checkMaximalPasswordLength(
+                       4, // policy value
+                       User::newFromName( 'user' ), // User
+                       'password'  // password
+               );
+               $this->assertFalse( $statusLong->isGood(),
+                       'Password is longer than maximal policy'
+               );
+               $this->assertFalse( $statusLong->isOk(),
+                       'Password is longer than maximal policy, fatal'
+               );
+       }
+
+       /**
+        * @covers PasswordPolicyChecks::checkPasswordCannotMatchUsername
+        */
+       public function testCheckPasswordCannotMatchUsername() {
+               $statusOK = PasswordPolicyChecks::checkPasswordCannotMatchUsername(
+                       1, // policy value
+                       User::newFromName( 'user' ), // User
+                       'password'  // password
+               );
+               $this->assertTrue( $statusOK->isGood(), 'Password does not match username' );
+               $statusLong = PasswordPolicyChecks::checkPasswordCannotMatchUsername(
+                       1, // policy value
+                       User::newFromName( 'user' ), // User
+                       'user'  // password
+               );
+               $this->assertFalse( $statusLong->isGood(), 'Password matches username' );
+               $this->assertTrue( $statusLong->isOk(), 'Password matches username, not fatal' );
+       }
+
+       /**
+        * @covers PasswordPolicyChecks::checkPasswordCannotMatchBlacklist
+        */
+       public function testCheckPasswordCannotMatchBlacklist() {
+               $statusOK = PasswordPolicyChecks::checkPasswordCannotMatchBlacklist(
+                       true, // policy value
+                       User::newFromName( 'Username' ), // User
+                       'AUniquePassword'  // password
+               );
+               $this->assertTrue( $statusOK->isGood(), 'Password is not on blacklist' );
+               $statusLong = PasswordPolicyChecks::checkPasswordCannotMatchBlacklist(
+                       true, // policy value
+                       User::newFromName( 'Useruser1' ), // User
+                       'Passpass1'  // password
+               );
+               $this->assertFalse( $statusLong->isGood(), 'Password matches blacklist' );
+               $this->assertTrue( $statusLong->isOk(), 'Password matches blacklist, not fatal' );
+       }
+
+}
diff --git a/tests/phpunit/includes/password/UserPasswordPolicyTest.php b/tests/phpunit/includes/password/UserPasswordPolicyTest.php
new file mode 100644 (file)
index 0000000..ce4e30a
--- /dev/null
@@ -0,0 +1,234 @@
+<?php
+/**
+ * Testing for password-policy enforcement, based on a user's groups.
+ *
+ * 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 UserPasswordPolicyTest extends MediaWikiTestCase {
+
+       protected $policies = array(
+               'checkuser' => array(
+                       'MinimalPasswordLength' => 10,
+                       'MinimumPasswordLengthToLogin' => 6,
+                       'PasswordCannotMatchUsername' => true,
+               ),
+               'sysop' => array(
+                       'MinimalPasswordLength' => 8,
+                       'MinimumPasswordLengthToLogin' => 1,
+                       'PasswordCannotMatchUsername' => true,
+               ),
+               'default' => array(
+                       'MinimalPasswordLength' => 4,
+                       'MinimumPasswordLengthToLogin' => 1,
+                       'PasswordCannotMatchBlacklist' => true,
+                       'MaximalPasswordLength' => 4096,
+               ),
+       );
+
+       protected $checks = array(
+               'MinimalPasswordLength' => 'PasswordPolicyChecks::checkMinimalPasswordLength',
+               'MinimumPasswordLengthToLogin' => 'PasswordPolicyChecks::checkMinimumPasswordLengthToLogin',
+               'PasswordCannotMatchUsername' => 'PasswordPolicyChecks::checkPasswordCannotMatchUsername',
+               'PasswordCannotMatchBlacklist' => 'PasswordPolicyChecks::checkPasswordCannotMatchBlacklist',
+               'MaximalPasswordLength' => 'PasswordPolicyChecks::checkMaximalPasswordLength',
+       );
+
+       private function getUserPasswordPolicy() {
+               return new UserPasswordPolicy( $this->policies, $this->checks );
+       }
+
+       /**
+        * @covers UserPasswordPolicy::getPoliciesForUser
+        */
+       public function testGetPoliciesForUser() {
+
+               $upp = $this->getUserPasswordPolicy();
+
+               $user = User::newFromName( 'TestUserPolicy' );
+               $user->addGroup( 'sysop' );
+
+               $this->assertArrayEquals(
+                       array(
+                               'MinimalPasswordLength' => 8,
+                               'MinimumPasswordLengthToLogin' => 1,
+                               'PasswordCannotMatchUsername' => 1,
+                               'PasswordCannotMatchBlacklist' => true,
+                               'MaximalPasswordLength' => 4096,
+                       ),
+                       $upp->getPoliciesForUser( $user )
+               );
+       }
+
+       /**
+        * @covers UserPasswordPolicy::getPoliciesForGroups
+        */
+       public function testGetPoliciesForGroups() {
+               $effective = UserPasswordPolicy::getPoliciesForGroups(
+                       $this->policies,
+                       array( 'user', 'checkuser' ),
+                       $this->policies['default']
+               );
+
+               $this->assertArrayEquals(
+                       array(
+                               'MinimalPasswordLength' => 10,
+                               'MinimumPasswordLengthToLogin' => 6,
+                               'PasswordCannotMatchUsername' => true,
+                               'PasswordCannotMatchBlacklist' => true,
+                               'MaximalPasswordLength' => 4096,
+                       ),
+                       $effective
+               );
+       }
+
+       /**
+        * @dataProvider provideCheckUserPassword
+        * @covers UserPasswordPolicy::checkUserPassword
+        */
+       public function testCheckUserPassword( $username, $groups, $password, $valid, $ok, $msg ) {
+
+               $upp = $this->getUserPasswordPolicy();
+
+               $user = User::newFromName( $username );
+               foreach ( $groups as $group ) {
+                       $user->addGroup( $group );
+               }
+
+               $status = $upp->checkUserPassword( $user, $password );
+               $this->assertSame( $valid, $status->isGood(), $msg . ' - password valid' );
+               $this->assertSame( $ok, $status->isOk(), $msg . ' - can login' );
+       }
+
+       public function provideCheckUserPassword() {
+               return array(
+                       array(
+                               'PassPolicyUser',
+                               array(),
+                               '',
+                               false,
+                               false,
+                               'No groups, default policy, password too short to login'
+                       ),
+                       array(
+                               'PassPolicyUser',
+                               array( 'user' ),
+                               'aaa',
+                               false,
+                               true,
+                               'Default policy, short password'
+                       ),
+                       array(
+                               'PassPolicyUser',
+                               array( 'sysop' ),
+                               'abcdabcdabcd',
+                               true,
+                               true,
+                               'Sysop with good password'
+                       ),
+                       array(
+                               'PassPolicyUser',
+                               array( 'sysop' ),
+                               'abcd',
+                               false,
+                               true,
+                               'Sysop with short password'
+                       ),
+                       array(
+                               'PassPolicyUser',
+                               array( 'sysop', 'checkuser' ),
+                               'abcdabcd',
+                               false,
+                               true,
+                               'Checkuser with short password'
+                       ),
+                       array(
+                               'PassPolicyUser',
+                               array( 'sysop', 'checkuser' ),
+                               'abcd',
+                               false,
+                               false,
+                               'Checkuser with too short password to login'
+                       ),
+                       array(
+                               'Useruser',
+                               array( 'user' ),
+                               'Passpass',
+                               false,
+                               true,
+                               'Username & password on blacklist'
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideMaxOfPolicies
+        * @covers UserPasswordPolicy::maxOfPolicies
+        */
+       public function testMaxOfPolicies( $p1, $p2, $max, $msg ) {
+               $this->assertArrayEquals(
+                       $max,
+                       UserPasswordPolicy::maxOfPolicies( $p1, $p2 ),
+                       $msg
+               );
+       }
+
+       public function provideMaxOfPolicies() {
+               return array(
+                       array(
+                               array( 'MinimalPasswordLength' => 8 ), //p1
+                               array( 'MinimalPasswordLength' => 2 ), //p2
+                               array( 'MinimalPasswordLength' => 8 ), //max
+                               'Basic max in p1'
+                       ),
+                       array(
+                               array( 'MinimalPasswordLength' => 2 ), //p1
+                               array( 'MinimalPasswordLength' => 8 ), //p2
+                               array( 'MinimalPasswordLength' => 8 ), //max
+                               'Basic max in p2'
+                       ),
+                       array(
+                               array( 'MinimalPasswordLength' => 8 ), //p1
+                               array(
+                                       'MinimalPasswordLength' => 2,
+                                       'PasswordCannotMatchUsername' => 1,
+                               ), //p2
+                               array(
+                                       'MinimalPasswordLength' => 8,
+                                       'PasswordCannotMatchUsername' => 1,
+                               ), //max
+                               'Missing items in p1'
+                       ),
+                       array(
+                               array(
+                                       'MinimalPasswordLength' => 8,
+                                       'PasswordCannotMatchUsername' => 1,
+                               ), //p1
+                               array(
+                                       'MinimalPasswordLength' => 2,
+                               ), //p2
+                               array(
+                                       'MinimalPasswordLength' => 8,
+                                       'PasswordCannotMatchUsername' => 1,
+                               ), //max
+                               'Missing items in p2'
+                       ),
+               );
+       }
+
+}
index b95316c..2df5568 100644 (file)
@@ -27,15 +27,21 @@ class ExtensionProcessorTest extends MediaWikiTestCase {
                $processor->extractInfo( $this->dir, self::$default + array(
                        '@metadata' => array( 'foobarbaz' ),
                        'AnAttribute' => array( 'omg' ),
-               ) );
+                       'AutoloadClasses' => array( 'FooBar' => 'includes/FooBar.php' ),
+               ), 1 );
 
                $extracted = $processor->getExtractedInfo();
                $attributes = $extracted['attributes'];
                $this->assertArrayHasKey( 'AnAttribute', $attributes );
                $this->assertArrayNotHasKey( '@metadata', $attributes );
+               $this->assertArrayNotHasKey( 'AutoloadClasses', $attributes );
        }
 
        public static function provideRegisterHooks() {
+               // Format:
+               // Current $wgHooks
+               // Content in extension.json
+               // Expected value of $wgHooks
                return array(
                        // No hooks
                        array(
@@ -64,6 +70,22 @@ class ExtensionProcessorTest extends MediaWikiTestCase {
                                        'FooBaz' => array( 'FooBazCallback' ),
                                ),
                        ),
+                       // Callbacks for FooBaz wrapped in an array
+                       array(
+                               array(),
+                               array( 'Hooks' => array( 'FooBaz' => array( 'Callback1' ) ) ) + self::$default,
+                               array(
+                                       'FooBaz' => array( 'Callback1' ),
+                               ),
+                       ),
+                       // Multiple callbacks for FooBaz hook
+                       array(
+                               array(),
+                               array( 'Hooks' => array( 'FooBaz' => array( 'Callback1', 'Callback2' ) ) ) + self::$default,
+                               array(
+                                       'FooBaz' => array( 'Callback1', 'Callback2' ),
+                               ),
+                       ),
                );
        }
 
@@ -73,7 +95,7 @@ class ExtensionProcessorTest extends MediaWikiTestCase {
         */
        public function testRegisterHooks( $pre, $info, $expected ) {
                $processor = new MockExtensionProcessor( array( 'wgHooks' => $pre ) );
-               $processor->extractInfo( $this->dir, $info );
+               $processor->extractInfo( $this->dir, $info, 1 );
                $extracted = $processor->getExtractedInfo();
                $this->assertEquals( $expected, $extracted['globals']['wgHooks'] );
        }
@@ -90,7 +112,7 @@ class ExtensionProcessorTest extends MediaWikiTestCase {
                                '@IGNORED' => 'yes',
                        ),
                ) + self::$default;
-               $processor->extractInfo( $this->dir, $info );
+               $processor->extractInfo( $this->dir, $info, 1 );
                $extracted = $processor->getExtractedInfo();
                $this->assertEquals( 'somevalue', $extracted['globals']['wgBar'] );
                $this->assertEquals( 10, $extracted['globals']['wgFoo'] );
@@ -127,7 +149,7 @@ class ExtensionProcessorTest extends MediaWikiTestCase {
         */
        public function testExtracttExtensionMessagesFiles( $input, $expected ) {
                $processor = new ExtensionProcessor();
-               $processor->extractInfo( $this->dir, $input + self::$default );
+               $processor->extractInfo( $this->dir, $input + self::$default, 1 );
                $out = $processor->getExtractedInfo();
                foreach ( $expected as $key => $value ) {
                        $this->assertEquals( $value, $out['globals'][$key] );
@@ -155,7 +177,7 @@ class ExtensionProcessorTest extends MediaWikiTestCase {
         */
        public function testExtractMessagesDirs( $input, $expected ) {
                $processor = new ExtensionProcessor();
-               $processor->extractInfo( $this->dir, $input + self::$default );
+               $processor->extractInfo( $this->dir, $input + self::$default, 1 );
                $out = $processor->getExtractedInfo();
                foreach ( $expected as $key => $value ) {
                        $this->assertEquals( $value, $out['globals'][$key] );
@@ -168,7 +190,7 @@ class ExtensionProcessorTest extends MediaWikiTestCase {
         */
        public function testExtractResourceLoaderModules( $input, $expected ) {
                $processor = new ExtensionProcessor();
-               $processor->extractInfo( $this->dir, $input + self::$default );
+               $processor->extractInfo( $this->dir, $input + self::$default, 1 );
                $out = $processor->getExtractedInfo();
                foreach ( $expected as $key => $value ) {
                        $this->assertEquals( $value, $out['globals'][$key] );
index 1b24628..515ce11 100644 (file)
@@ -172,6 +172,7 @@ class ExtensionRegistryTest extends MediaWikiTestCase {
                                                'user' => array(
                                                        'right' => true,
                                                        'somethingtwo' => false,
+                                                       'nonduplicated' => true,
                                                )
                                        ),
                                ),
@@ -186,10 +187,23 @@ class ExtensionRegistryTest extends MediaWikiTestCase {
                                                'user' => array(
                                                        'somethingtwo' => true,
                                                        'right' => true,
+                                                       'nonduplicated' => true,
                                                )
                                        ),
                                ),
-                       )
+                       ),
+                       array(
+                               'False local setting should not be overridden (T100767)',
+                               array(
+                                       'mwtestT100767' => false,
+                               ),
+                               array(
+                                       'mwtestT100767' => true,
+                               ),
+                               array(
+                                       'mwtestT100767' => false,
+                               ),
+                       ),
                );
        }
 }
index e1197df..358d2a1 100644 (file)
@@ -226,23 +226,4 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase {
 
                $this->assertEquals( $rl->getTemplates(), $expected );
        }
-
-       public static function providerGetModifiedTime() {
-               $modules = self::getModules();
-
-               return array(
-                       // Check the default value when no templates present in module is 1
-                       array( $modules['noTemplateModule'], 1 ),
-               );
-       }
-
-       /**
-        * @dataProvider providerGetModifiedTime
-        * @covers ResourceLoaderFileModule::getModifiedTime
-        */
-       public function testGetModifiedTime( $module, $expected ) {
-               $rl = new ResourceLoaderFileModule( $module );
-               $ts = $rl->getModifiedTime( $this->getResourceLoaderContext() );
-               $this->assertEquals( $ts, $expected );
-       }
 }
index 6d1ed4e..136ca6e 100644 (file)
@@ -70,4 +70,29 @@ class ResourceLoaderModuleTest extends ResourceLoaderTestCase {
                        'Class is significant'
                );
        }
+
+       /**
+        * @covers ResourceLoaderModule::validateScriptFile
+        */
+       public function testValidateScriptFile() {
+               $context = $this->getResourceLoaderContext();
+
+               $module = new ResourceLoaderTestModule( array(
+                       'script' => "var a = 'this is';\n {\ninvalid"
+               ) );
+               $this->assertEquals(
+                       $module->getScript( $context ),
+                       'mw.log.error("JavaScript parse error: Parse error: Unexpected token; token } expected in file \'input\' on line 3");',
+                       'Replace invalid syntax with error logging'
+               );
+
+               $module = new ResourceLoaderTestModule( array(
+                       'script' => "\n'valid';"
+               ) );
+               $this->assertEquals(
+                       $module->getScript( $context ),
+                       "\n'valid';",
+                       'Leave valid scripts as-is'
+               );
+       }
 }
index 7f3506c..72a2d6a 100644 (file)
@@ -23,7 +23,7 @@ mw.loader.addSource( {
 } );mw.loader.register( [
     [
         "test.blank",
-        1388534400
+        "XyCC+PSK"
     ]
 ] );',
                        ) ),
@@ -40,17 +40,17 @@ mw.loader.addSource( {
 } );mw.loader.register( [
     [
         "test.blank",
-        1388534400
+        "XyCC+PSK"
     ],
     [
         "test.group.foo",
-        1388534400,
+        "XyCC+PSK",
         [],
         "x-foo"
     ],
     [
         "test.group.bar",
-        1388534400,
+        "XyCC+PSK",
         [],
         "x-bar"
     ]
@@ -68,7 +68,7 @@ mw.loader.addSource( {
 } );mw.loader.register( [
     [
         "test.blank",
-        1388534400
+        "XyCC+PSK"
     ]
 ] );'
                        ) ),
@@ -90,7 +90,7 @@ mw.loader.addSource( {
 } );mw.loader.register( [
     [
         "test.blank",
-        1388534400,
+        "XyCC+PSK",
         [],
         null,
         "example"
@@ -126,11 +126,11 @@ mw.loader.addSource( {
 } );mw.loader.register( [
     [
         "test.x.core",
-        1388534400
+        "XyCC+PSK"
     ],
     [
         "test.x.polyfill",
-        1388534400,
+        "XyCC+PSK",
         [],
         null,
         null,
@@ -138,7 +138,7 @@ mw.loader.addSource( {
     ],
     [
         "test.y.polyfill",
-        1388534400,
+        "XyCC+PSK",
         [],
         null,
         null,
@@ -146,7 +146,7 @@ mw.loader.addSource( {
     ],
     [
         "test.z.foo",
-        1388534400,
+        "XyCC+PSK",
         [
             0,
             1,
@@ -222,36 +222,36 @@ mw.loader.addSource( {
 } );mw.loader.register( [
     [
         "test.blank",
-        1388534400
+        "XyCC+PSK"
     ],
     [
         "test.x.core",
-        1388534400
+        "XyCC+PSK"
     ],
     [
         "test.x.util",
-        1388534400,
+        "XyCC+PSK",
         [
             1
         ]
     ],
     [
         "test.x.foo",
-        1388534400,
+        "XyCC+PSK",
         [
             1
         ]
     ],
     [
         "test.x.bar",
-        1388534400,
+        "XyCC+PSK",
         [
             2
         ]
     ],
     [
         "test.x.quux",
-        1388534400,
+        "XyCC+PSK",
         [
             3,
             4,
@@ -260,25 +260,25 @@ mw.loader.addSource( {
     ],
     [
         "test.group.foo.1",
-        1388534400,
+        "XyCC+PSK",
         [],
         "x-foo"
     ],
     [
         "test.group.foo.2",
-        1388534400,
+        "XyCC+PSK",
         [],
         "x-foo"
     ],
     [
         "test.group.bar.1",
-        1388534400,
+        "XyCC+PSK",
         [],
         "x-bar"
     ],
     [
         "test.group.bar.2",
-        1388534400,
+        "XyCC+PSK",
         [],
         "x-bar",
         "example"
@@ -344,8 +344,8 @@ mw.loader.addSource( {
                $this->assertEquals(
 'mw.loader.addSource({"local":"/w/load.php"});'
 . 'mw.loader.register(['
-. '["test.blank",1388534400],'
-. '["test.min",1388534400,[0],null,null,'
+. '["test.blank","XyCC+PSK"],'
+. '["test.min","XyCC+PSK",[0],null,null,'
 . '"return!!(window.JSON\u0026\u0026JSON.parse\u0026\u0026JSON.stringify);"'
 . ']]);',
                        $module->getModuleRegistrations( $context ),
@@ -367,11 +367,11 @@ mw.loader.addSource( {
 } );mw.loader.register( [
     [
         "test.blank",
-        1388534400
+        "XyCC+PSK"
     ],
     [
         "test.min",
-        1388534400,
+        "XyCC+PSK",
         [
             0
         ],
index 93a3ebb..8cefec7 100644 (file)
@@ -31,16 +31,15 @@ class ResourceLoaderWikiModuleTest extends ResourceLoaderTestCase {
                $module = new ResourceLoaderWikiModule( $params );
                $module->setConfig( $config );
 
-               // Use getDefinitionSummary because getPages is protected
-               $summary = $module->getDefinitionSummary( ResourceLoaderContext::newDummyContext() );
-               $this->assertEquals(
-                       $expected,
-                       $summary['pages']
-               );
+               // Because getPages is protected..
+               $getPages = new ReflectionMethod( $module, 'getPages' );
+               $getPages->setAccessible( true );
+               $out = $getPages->invoke( $module, ResourceLoaderContext::newDummyContext() );
+               $this->assertEquals( $expected, $out );
        }
 
        public static function provideGetPages() {
-               $settings = array(
+               $settings = self::getSettings() + array(
                        'UseSiteJs' => true,
                        'UseSiteCss' => true,
                );
@@ -110,39 +109,27 @@ class ResourceLoaderWikiModuleTest extends ResourceLoaderTestCase {
                        array( array(), 'test1', true ),
                        // 'site' module with a non-empty page
                        array(
-                               array(
-                                       'MediaWiki:Common.js' => array(
-                                               'timestamp' => 123456789,
-                                               'length' => 1234
-                                       )
-                               ), 'site', false,
+                               array( 'MediaWiki:Common.js' => array( 'rev_sha1' => 'dmh6qn', 'rev_len' => 1234 ) ),
+                               'site',
+                               false,
                        ),
                        // 'site' module with an empty page
                        array(
-                               array(
-                                       'MediaWiki:Monobook.js' => array(
-                                               'timestamp' => 987654321,
-                                               'length' => 0,
-                                       ),
-                               ), 'site', false,
+                               array( 'MediaWiki:Foo.js' => array( 'rev_sha1' => 'phoi', 'rev_len' => 0 ) ),
+                               'site',
+                               false,
                        ),
                        // 'user' module with a non-empty page
                        array(
-                               array(
-                                       'User:FooBar/common.js' => array(
-                                               'timestamp' => 246813579,
-                                               'length' => 25,
-                                       ),
-                               ), 'user', false,
+                               array( 'User:Example/common.js' => array( 'rev_sha1' => 'j7ssba', 'rev_len' => 25 ) ),
+                               'user',
+                               false,
                        ),
                        // 'user' module with an empty page
                        array(
-                               array(
-                                       'User:FooBar/monobook.js' => array(
-                                               'timestamp' => 1357924680,
-                                               'length' => 0,
-                                       ),
-                               ), 'user', true,
+                               array( 'User:Example/foo.js' => array( 'rev_sha1' => 'phoi', 'rev_len' => 0 ) ),
+                               'user',
+                               true,
                        ),
                );
        }
index d0a7980..4305ceb 100644 (file)
@@ -96,17 +96,17 @@ class CachingSiteStoreTest extends MediaWikiTestCase {
                        ->getMock();
 
                // php 5.3 compatibility!
-               $self = $this;
+               $that = $this;
 
                $dbSiteStore->expects( $this->any() )
                        ->method( 'getSite' )
-                       ->will( $this->returnValue( $self->getTestSite() ) );
+                       ->will( $this->returnValue( $that->getTestSite() ) );
 
                $dbSiteStore->expects( $this->any() )
                        ->method( 'getSites' )
-                       ->will( $this->returnCallback( function() use( $self ) {
+                       ->will( $this->returnCallback( function() use ( $that ) {
                                $siteList = new SiteList();
-                               $siteList->setSite( $self->getTestSite() );
+                               $siteList->setSite( $that->getTestSite() );
 
                                return $siteList;
                        } ) );
index cb0316a..64b195d 100644 (file)
@@ -34,11 +34,11 @@ class SiteImporterTest extends PHPUnit_Framework_TestCase {
        private function newSiteImporter( array $expectedSites, $errorCount ) {
                $store = $this->getMock( 'SiteStore' );
 
-               $self = $this;
+               $that = $this;
                $store->expects( $this->once() )
                        ->method( 'saveSites' )
-                       ->will( $this->returnCallback( function ( $sites ) use ( $expectedSites, $self ) {
-                               $self->assertSitesEqual( $expectedSites, $sites );
+                       ->will( $this->returnCallback( function ( $sites ) use ( $expectedSites, $that ) {
+                               $that->assertSitesEqual( $expectedSites, $sites );
                        } ) );
 
                $store->expects( $this->any() )
index acc9dfc..65464c4 100644 (file)
@@ -130,7 +130,7 @@ class IPTest extends PHPUnit_Framework_TestCase {
                        array( ':', 'A colon is not an IP' ),
                        array( '124.24.52', 'IPv4 not enough quads' ),
                        array( '24.324.52.13', 'IPv4 out of range' ),
-                       array( '.24.52.13', 'IPv4 starts with period' ),                
+                       array( '.24.52.13', 'IPv4 starts with period' ),
                );
        }
 
@@ -347,16 +347,31 @@ class IPTest extends PHPUnit_Framework_TestCase {
 
        /**
         * @covers IP::isPublic
+        * @dataProvider provideIsPublic
         */
-       public function testPrivateIPs() {
-               $private = array( 'fc00::3', 'fc00::ff', '::1', '10.0.0.1', '172.16.0.1', '192.168.0.1' );
-               foreach ( $private as $p ) {
-                       $this->assertFalse( IP::isPublic( $p ), "$p is not a public IP address" );
-               }
-               $public = array( '2001:5c0:1000:a::133', 'fc::3', '00FC::' );
-               foreach ( $public as $p ) {
-                       $this->assertTrue( IP::isPublic( $p ), "$p is a public IP address" );
-               }
+       public function testIsPublic( $expected, $input ) {
+               $result = IP::isPublic( $input );
+               $this->assertEquals( $expected, $result );
+       }
+
+       /**
+        * Provider for IP::testIsPublic()
+        */
+       public static function provideIsPublic() {
+               return array(
+                       array( false, 'fc00::3' ), # RFC 4193 (local)
+                       array( false, 'fc00::ff'), # RFC 4193 (local)
+                       array( false, '127.1.2.3'), # loopback
+                       array( false, '::1'), # loopback
+                       array( false, 'fe80::1'), # link-local
+                       array( false, '169.254.1.1'), # link-local
+                       array( false, '10.0.0.1'), # RFC 1918 (private)
+                       array( false, '172.16.0.1'), # RFC 1918 (private)
+                       array( false, '192.168.0.1'), # RFC 1918 (private)
+                       array( true, '2001:5c0:1000:a::133'), # public
+                       array( true, 'fc::3'), # public
+                       array( true, '00FC::') # public
+               );
        }
 
        // Private wrapper used to test CIDR Parsing.
diff --git a/tests/phpunit/includes/utils/MWFunctionTest.php b/tests/phpunit/includes/utils/MWFunctionTest.php
deleted file mode 100644 (file)
index f4d1799..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/**
- * @covers MWFunction
- */
-class MWFunctionTest extends MediaWikiTestCase {
-       public function testNewObjFunction() {
-               $arg1 = 'Foo';
-               $arg2 = 'Bar';
-               $arg3 = array( 'Baz' );
-               $arg4 = new ExampleObject;
-
-               $args = array( $arg1, $arg2, $arg3, $arg4 );
-
-               $newObject = new MWBlankClass( $arg1, $arg2, $arg3, $arg4 );
-               $this->hideDeprecated( 'MWFunction::newObj' );
-               $this->assertEquals(
-                       MWFunction::newObj( 'MWBlankClass', $args )->args,
-                       $newObject->args
-               );
-       }
-}
-
-class MWBlankClass {
-
-       public $args = array();
-
-       function __construct( $arg1, $arg2, $arg3, $arg4 ) {
-               $this->args = array( $arg1, $arg2, $arg3, $arg4 );
-       }
-}
-
-class ExampleObject {
-}
index cff2e8f..faa30c3 100644 (file)
@@ -1412,6 +1412,77 @@ class LanguageTest extends LanguageClassesTestCase {
                );
        }
 
+       /**
+        * @dataProvider provideHebrewNumeralsData
+        * @covers Language::hebrewNumeral
+        */
+       public function testHebrewNumeral( $num, $numerals ) {
+               $this->assertEquals(
+                       $numerals,
+                       Language::hebrewNumeral( $num ),
+                       "hebrewNumeral('$num')"
+               );
+       }
+
+       public static function provideHebrewNumeralsData() {
+               return array(
+                       array( -1, -1 ),
+                       array( 0, 0 ),
+                       array( 1, "א'" ),
+                       array( 2, "ב'" ),
+                       array( 3, "ג'" ),
+                       array( 4, "ד'" ),
+                       array( 5, "ה'" ),
+                       array( 6, "ו'" ),
+                       array( 7, "ז'" ),
+                       array( 8, "ח'" ),
+                       array( 9, "ט'" ),
+                       array( 10, "י'" ),
+                       array( 11, 'י"א' ),
+                       array( 14, 'י"ד' ),
+                       array( 15, 'ט"ו' ),
+                       array( 16, 'ט"ז' ),
+                       array( 17, 'י"ז' ),
+                       array( 20, "כ'" ),
+                       array( 21, 'כ"א' ),
+                       array( 30, "ל'" ),
+                       array( 40, "מ'" ),
+                       array( 50, "נ'" ),
+                       array( 60, "ס'" ),
+                       array( 70, "ע'" ),
+                       array( 80, "פ'" ),
+                       array( 90, "צ'" ),
+                       array( 99, 'צ"ט' ),
+                       array( 100, "ק'" ),
+                       array( 101, 'ק"א' ),
+                       array( 110, 'ק"י' ),
+                       array( 200, "ר'" ),
+                       array( 300, "ש'" ),
+                       array( 400, "ת'" ),
+                       array( 500, 'ת"ק' ),
+                       array( 800, 'ת"ת' ),
+                       array( 1000, "א' אלף" ),
+                       array( 1001, "א'א'" ),
+                       array( 1012, "א'י\"ב" ),
+                       array( 1020, "א'ך'" ),
+                       array( 1030, "א'ל'" ),
+                       array( 1081, "א'פ\"א" ),
+                       array( 2000, "ב' אלפים" ),
+                       array( 2016, "ב'ט\"ז" ),
+                       array( 3000, "ג' אלפים" ),
+                       array( 4000, "ד' אלפים" ),
+                       array( 4904, "ד'תתק\"ד" ),
+                       array( 5000, "ה' אלפים" ),
+                       array( 5680, "ה'תר\"ף" ),
+                       array( 5690, "ה'תר\"ץ" ),
+                       array( 5708, "ה'תש\"ח" ),
+                       array( 5720, "ה'תש\"ך" ),
+                       array( 5740, "ה'תש\"ם" ),
+                       array( 5750, "ה'תש\"ן" ),
+                       array( 5775, "ה'תשע\"ה" ),
+               );
+       }
+
        /**
         * @dataProvider providePluralData
         * @covers Language::convertPlural
index cde6547..8674329 100644 (file)
@@ -58,9 +58,9 @@ class AutoLoaderTest extends MediaWikiTestCase {
                                continue;
                        }
 
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        $contents = file_get_contents( $filePath );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
 
                        if ( $contents === false ) {
                                $actual[$class] = "[couldn't read file '$filePath']";
index d2b699d..9178bdb 100644 (file)
@@ -36,6 +36,14 @@ class ResourcesTest extends MediaWikiTestCase {
                );
        }
 
+       public function testVersionHash() {
+               $data = self::getAllModules();
+               foreach ( $data['modules'] as $moduleName => $module ) {
+                       $version = $module->getVersionHash( $data['context'] );
+                       $this->assertEquals( 8, strlen( $version ), "$moduleName must use ResourceLoader::makeHash" );
+               }
+       }
+
        /**
         * Verify that nothing explicitly depends on the 'jquery' and 'mediawiki' modules.
         * They are always loaded, depending on them is unsupported and leads to unexpected behaviour.
index d4a7bd3..e867250 100644 (file)
@@ -18,7 +18,7 @@ class UploadFromUrlTestSuite extends PHPUnit_Framework_TestSuite {
        protected function setUp() {
                global $wgParser, $wgParserConf, $IP, $messageMemc, $wgMemc, $wgUser,
                        $wgLang, $wgOut, $wgRequest, $wgStyleDirectory,
-                       $wgEnableParserCache, $wgNamespaceAliases, $wgNamespaceProtection,
+                       $wgParserCacheType, $wgNamespaceAliases, $wgNamespaceProtection,
                        $parserMemc;
 
                $tmpGlobals = array();
@@ -56,7 +56,7 @@ class UploadFromUrlTestSuite extends PHPUnit_Framework_TestSuite {
                $wgNamespaceAliases['Image'] = NS_FILE;
                $wgNamespaceAliases['Image_talk'] = NS_FILE_TALK;
 
-               $wgEnableParserCache = false;
+               $wgParserCacheType = CACHE_NONE;
                DeferredUpdates::clearPendingUpdates();
                $wgMemc = wfGetMainCache();
                $messageMemc = wfGetMessageCacheStorage();
index 17b8b63..9093797 100644 (file)
@@ -8,14 +8,14 @@ return array(
 
        'test.sinonjs' => array(
                'scripts' => array(
-                       'resources/lib/sinonjs/sinon-1.10.3.js',
+                       'resources/lib/sinonjs/sinon-1.15.0.js',
                        // We want tests to work in IE, but can't include this as it
                        // will break the placeholders in Sinon because the hack it uses
                        // to hijack IE globals relies on running in the global scope
                        // and in ResourceLoader this won't be running in the global scope.
                        // Including it results (among other things) in sandboxed timers
                        // being broken due to Date inheritance being undefined.
-                       // 'resources/lib/sinonjs/sinon-ie-1.10.3.js',
+                       // 'resources/lib/sinonjs/sinon-ie-1.15.0.js',
                ),
                'targets' => array( 'desktop', 'mobile' ),
        ),
index e43516b..89eb45f 100644 (file)
@@ -1,7 +1,7 @@
 ( function ( mw, $ ) {
        QUnit.module( 'mediawiki.toc', QUnit.newMwEnvironment( {
                setup: function () {
-                       // Prevent live cookies like mw_hidetoc=1 from interferring with the test
+                       // Prevent live cookies from interferring with the test
                        this.stub( $, 'cookie' ).returns( null );
                }
        } ) );
index 6011961..5ea7a81 100644 (file)
@@ -86,7 +86,9 @@
                        'Mozilla/5.0 (Series40; NokiaX3-02/05.60; Profile/MIDP-2.1 Configuration/CLDC-1.1) Gecko/20100401 S40OviBrowser/3.2.0.0.6',
                        'Mozilla/5.0 (Series40; Nokia305/05.92; Profile/MIDP-2.1 Configuration/CLDC-1.1) Gecko/20100401 S40OviBrowser/3.7.0.0.11',
                        // Google Glass
-                       'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Glass 1 Build/IMM76L; XE11) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'
+                       'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Glass 1 Build/IMM76L; XE11) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
+                       // MeeGo
+                       'Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13'
                ],
                // No explicit support for or against these browsers, they're given a shot at Grade A.
                gradeX: [
index 2079a64..40f3754 100644 (file)
--- a/thumb.php
+++ b/thumb.php
@@ -35,11 +35,8 @@ if ( defined( 'THUMB_HANDLER' ) ) {
        wfStreamThumb( $_GET );
 }
 
-wfLogProfilingData();
-// Commit and close up!
-$factory = wfGetLBFactory();
-$factory->commitMasterChanges();
-$factory->shutdown();
+$mediawiki = new MediaWiki();
+$mediawiki->doPostOutputShutdown( 'fast' );
 
 //--------------------------------------------------------------------------
 
@@ -207,7 +204,7 @@ function wfStreamThumb( array $params ) {
                if ( $redirectedLocation ) {
                        // File has been moved. Give redirect.
                        $response = RequestContext::getMain()->getRequest()->response();
-                       $response->header( "HTTP/1.1 302 " . HttpStatus::getMessage( 302 ) );
+                       $response->statusHeader( 302 );
                        $response->header( 'Location: ' . $redirectedLocation );
                        $response->header( 'Expires: ' .
                                gmdate( 'D, d M Y H:i:s', time() + 12 * 3600 ) . ' GMT' );
@@ -234,11 +231,11 @@ function wfStreamThumb( array $params ) {
                // Fix IE brokenness
                $imsString = preg_replace( '/;.*$/', '', $_SERVER["HTTP_IF_MODIFIED_SINCE"] );
                // Calculate time
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $imsUnix = strtotime( $imsString );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                if ( wfTimestamp( TS_UNIX, $img->getTimestamp() ) <= $imsUnix ) {
-                       header( 'HTTP/1.1 304 Not Modified' );
+                       HttpStatus::header( 304  );
                        return;
                }
        }
@@ -273,7 +270,7 @@ function wfStreamThumb( array $params ) {
                } elseif ( rawurldecode( $rel404 ) === $img->getThumbRel( $thumbName2 ) ) {
                        // Request for the "long" thumbnail name; redirect to canonical name
                        $response = RequestContext::getMain()->getRequest()->response();
-                       $response->header( "HTTP/1.1 301 " . HttpStatus::getMessage( 301 ) );
+                       $response->statusHeader( 301 );
                        $response->header( 'Location: ' .
                                wfExpandUrl( $img->getThumbUrl( $thumbName ), PROTO_CURRENT ) );
                        $response->header( 'Expires: ' .
@@ -557,14 +554,14 @@ function wfThumbError( $status, $msg ) {
        header( 'Cache-Control: no-cache' );
        header( 'Content-Type: text/html; charset=utf-8' );
        if ( $status == 400 ) {
-               header( 'HTTP/1.1 400 Bad request' );
+               HttpStatus::header( 400 );
        } elseif ( $status == 404 ) {
-               header( 'HTTP/1.1 404 Not found' );
+               HttpStatus::header( 404 );
        } elseif ( $status == 403 ) {
-               header( 'HTTP/1.1 403 Forbidden' );
+               HttpStatus::header( 403 );
                header( 'Vary: Cookie' );
        } else {
-               header( 'HTTP/1.1 500 Internal server error' );
+               HttpStatus::header( 500 );
        }
        if ( $wgShowHostnames ) {
                header( 'X-MW-Thumbnail-Renderer: ' . wfHostname() );